From f90544bc591db25d961eb769a59766583fb6b10e Mon Sep 17 00:00:00 2001 From: wrx <88384874@qq.com> Date: Wed, 15 May 2024 09:22:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=A1=91=E5=96=B7=E6=B6=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBMPTMes/BBMPT.sln | 50 + BBMPTMes/InjectionPC/2.ico | Bin 0 -> 100030 bytes BBMPTMes/InjectionPC/App.config | 55 + BBMPTMes/InjectionPC/AutoUpdater.cs | 136 + BBMPTMes/InjectionPC/Form1.Designer.cs | 71 + BBMPTMes/InjectionPC/Form1.cs | 28 + BBMPTMes/InjectionPC/Form1.resx | 120 + BBMPTMes/InjectionPC/FrmBarCode.Designer.cs | 619 + BBMPTMes/InjectionPC/FrmBarCode.cs | 1560 ++ BBMPTMes/InjectionPC/FrmBarCode.resx | 484 + BBMPTMes/InjectionPC/FrmDown.Designer.cs | 435 + BBMPTMes/InjectionPC/FrmDown.cs | 343 + BBMPTMes/InjectionPC/FrmDown.resx | 481 + BBMPTMes/InjectionPC/FrmLogin.Designer.cs | 149 + BBMPTMes/InjectionPC/FrmLogin.cs | 211 + BBMPTMes/InjectionPC/FrmLogin.resx | 713 + BBMPTMes/InjectionPC/FrmQuality.Designer.cs | 403 + BBMPTMes/InjectionPC/FrmQuality.cs | 597 + BBMPTMes/InjectionPC/FrmQuality.resx | 484 + BBMPTMes/InjectionPC/GlacialList.dll | Bin 0 -> 94208 bytes BBMPTMes/InjectionPC/InjectionPC.csproj | 230 + .../InjectionPC/Interop.TaskScheduler.dll | Bin 0 -> 49152 bytes BBMPTMes/InjectionPC/LogHelper.cs | 76 + BBMPTMes/InjectionPC/Logo.png | Bin 0 -> 19961 bytes BBMPTMes/InjectionPC/Picture/V&W205-AMG-F.jpg | Bin 0 -> 69179 bytes BBMPTMes/InjectionPC/Program.cs | 93 + .../InjectionPC/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + .../InjectionPC/Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 26 + .../InjectionPC/Properties/Settings.settings | 7 + BBMPTMes/InjectionPC/ReportHelper.cs | 99 + BBMPTMes/InjectionPC/SchTaskExtAPI.dll | Bin 0 -> 8704 bytes BBMPTMes/InjectionPC/Upload.cs | 99 + BBMPTMes/InjectionPC/北汽模塑.png | Bin 0 -> 31389 bytes BBMPTMes/MESClassLibrary/App.config | 20 + .../BLL/Andon/AndonButtonRecordBLL.cs | 42 + .../BLL/Andon/AndonButtonTypeBLL.cs | 31 + BBMPTMes/MESClassLibrary/BLL/BasicBLL.cs | 178 + .../BLL/BasicInfo/BadInjectionBLL.cs | 44 + .../BLL/BasicInfo/BarCodeBLL.cs | 174 + .../MESClassLibrary/BLL/BasicInfo/BomBLL.cs | 271 + .../BLL/BasicInfo/BucketInfoBLL.cs | 184 + .../BLL/BasicInfo/CheckItemBLL.cs | 198 + .../MESClassLibrary/BLL/BasicInfo/ColorBLL.cs | 214 + .../BLL/BasicInfo/DefectBLL.cs | 181 + .../MESClassLibrary/BLL/BasicInfo/DeptBLL.cs | 144 + .../BLL/BasicInfo/DeviceBLL.cs | 251 + .../BLL/BasicInfo/FactoryBLL.cs | 148 + .../BLL/BasicInfo/ImgVideoBLL.cs | 141 + .../BLL/BasicInfo/InjectionPlanBLL.cs | 419 + .../MESClassLibrary/BLL/BasicInfo/LineBLL.cs | 170 + .../BLL/BasicInfo/LocationBLL.cs | 149 + .../BLL/BasicInfo/MachineBLL.cs | 184 + .../BLL/BasicInfo/ModelInfoBLL.cs | 208 + .../BLL/BasicInfo/ModelUpdateBLL.cs | 137 + .../BLL/BasicInfo/OperatorBLL.cs | 185 + .../BLL/BasicInfo/PaintInfoBLL.cs | 335 + .../MESClassLibrary/BLL/BasicInfo/PlaceBLL.cs | 165 + .../BLL/BasicInfo/PlasticBLL.cs | 238 + .../BLL/BasicInfo/ProductBLL.cs | 486 + .../BLL/BasicInfo/ProductOfInjectionBLL.cs | 83 + .../BLL/BasicInfo/ProductTypeBLL.cs | 182 + .../BLL/BasicInfo/ProjectBLL.cs | 197 + .../BLL/BasicInfo/StationBLL.cs | 195 + .../BLL/Check/InspectResultBLL.cs | 1504 ++ .../BLL/ExchangeCenter/GetNewTasksBLL.cs | 29 + .../BLL/ExchangeCenter/PartMstrBLL.cs | 29 + .../BLL/ExchangeCenter/PartRecordBLL.cs | 29 + .../BLL/ExchangeCenter/TESBomBLL.cs | 58 + .../BLL/ExchangeCenter/TESPartDetBLL.cs | 28 + .../BLL/Hybrid/HybridPlanBLL.cs | 83 + .../BLL/Hybrid/HybridScanRecordBLL.cs | 45 + .../BLL/Injection/DownReasonBLL.cs | 29 + .../BLL/Injection/InjectionDownRecordBLL.cs | 891 + .../BLL/Injection/InjectionRecordBLL.cs | 1992 ++ .../BLL/Inspection/CommonlyInspectionBLL.cs | 596 + .../CommonlyInspectionVersionBLL.cs | 208 + .../BLL/Mistake243/Assembly243BLL.cs | 57 + .../BLL/Mistake243/Box243BLL.cs | 71 + .../BLL/Mistake243/Mistake243BLL.cs | 56 + .../BLL/Mistake243/Plan243BLL.cs | 56 + .../BLL/Mistake243/Record243BLL.cs | 11 + .../BLL/Mistake243/RecordBLL.cs | 155 + .../BLL/Mistake247/AssemblyBLL.cs | 218 + .../MESClassLibrary/BLL/Mistake247/BoxBLL.cs | 86 + .../BLL/Mistake247/MistakeBLL.cs | 118 + .../BLL/Mistake247/Plan247BLL.cs | 118 + .../BLL/Mistake247/RecordBLL.cs | 352 + .../BLL/Mistake247/ToVisualBLL.cs | 56 + .../BLL/MistakeGratings/GratingsBll.cs | 169 + .../BLL/PaintDown/PaintDownBll.cs | 28 + .../BLL/Painting/InspectResultBLL.cs | 58 + .../BLL/Painting/NotStockBarCodeBll.cs | 27 + .../BLL/Painting/NotUpBarCodeBll.cs | 29 + .../BLL/Painting/PaintBarCodeBLL.cs | 72 + .../BLL/Painting/PaintPersonBLL.cs | 29 + .../BLL/Painting/PaintReasonBLL.cs | 30 + .../BLL/Painting/PunchNotStockBarCodeBll.cs | 28 + .../BLL/Painting/ScanRecordBLL.cs | 48 + .../BLL/Painting/StockInBLL.cs | 114 + .../BLL/Painting/TmpBarCodeBll.cs | 56 + .../MESClassLibrary/BLL/Plan243/Plan243BLL.cs | 416 + .../MESClassLibrary/BLL/Plan247/Plan247BLL.cs | 399 + .../BLL/PunchAndWeld/PlanPunchBLL.cs | 443 + .../BLL/PunchAndWeld/PlanPunchNewBLL.cs | 364 + .../BLL/PunchAndWeld/PunchAdressBLL.cs | 29 + .../BLL/PunchAndWeld/PunchAndStationBLL.cs | 262 + .../BLL/PunchAndWeld/PunchDeviceBLL.cs | 42 + .../BLL/PunchAndWeld/PunchPartBLL.cs | 29 + .../BLL/PunchAndWeld/PunchPlanBLL.cs | 94 + .../BLL/PunchAndWeld/PunchPlanMFABLL.cs | 100 + .../BLL/PunchAndWeld/PunchRecordBLL.cs | 44 + .../BLL/PunchAndWeld/PunchValueRecordBLL.cs | 29 + .../BLL/Record243/Record243BLL.cs | 79 + .../BLL/Record247/Record247BLL.cs | 81 + .../BLL/Report/FiveScreenBLL.cs | 190 + .../BLL/Report/FiveScreenLastBLL.cs | 153 + .../BLL/Report/FiveScreenStandardBLL.cs | 161 + .../MESClassLibrary/BLL/Show/AnalysisBLL.cs | 57 + .../BLL/Stock/AppendColorBLL.cs | 109 + .../MESClassLibrary/BLL/Stock/StockInBLL.cs | 189 + .../BLL/User/Sys_ButtonsService.cs | 45 + .../BLL/User/Sys_NavMenuService.cs | 84 + BBMPTMes/MESClassLibrary/BLL/User/UserBLL.cs | 304 + .../DAL/Andon/AndonButtonRecordDAL.cs | 68 + .../DAL/Andon/AndonButtonTypeDAL.cs | 34 + BBMPTMes/MESClassLibrary/DAL/BaseDAL.cs | 199 + BBMPTMes/MESClassLibrary/DAL/BasicDAL.cs | 51 + .../DAL/BasicInfo/BadInjectionDAL.cs | 92 + .../DAL/BasicInfo/BarCodeDAl.cs | 449 + .../MESClassLibrary/DAL/BasicInfo/BomDAL.cs | 150 + .../MESClassLibrary/DAL/BasicInfo/ColorDAL.cs | 55 + .../DAL/BasicInfo/DefectDAL.cs | 35 + .../DAL/BasicInfo/InjectionPlanDAL.cs | 210 + .../DAL/BasicInfo/OperatorDAL.cs | 73 + .../DAL/BasicInfo/ProductDAL.cs | 245 + .../DAL/BasicInfo/ProductOfInjectionDAL.cs | 265 + .../DAL/BasicInfo/ProductTypeDAL.cs | 210 + .../DAL/BasicInfo/ProjectDAL.cs | 28 + .../DAL/BasicInfo/StationDAL.cs | 38 + .../DAL/Check/InspectResultDAL.cs | 398 + .../MESClassLibrary/DAL/DataTableExtend.cs | 80 + .../DAL/ExchangeCenter/GetNewTasksDAL.cs | 123 + .../DAL/ExchangeCenter/PartMstrDAL.cs | 110 + .../DAL/ExchangeCenter/PartRecordDAL.cs | 46 + .../DAL/ExchangeCenter/TESBomDAL.cs | 177 + .../DAL/ExchangeCenter/TESPartDetDAL.cs | 93 + .../DAL/Hybrid/HybridPlanDAL.cs | 144 + .../DAL/Hybrid/HybridScanRecordDAL.cs | 55 + .../DAL/Injection/DownReasonDAL.cs | 31 + .../DAL/Injection/InjectionDownRecordDAL.cs | 159 + .../DAL/Injection/InjectionRecordDAL.cs | 126 + .../DAL/Mistake243/Assembly243DAL.cs | 137 + .../DAL/Mistake243/Box243DAL.cs | 144 + .../DAL/Mistake243/Mistake243DAL.cs | 82 + .../DAL/Mistake243/Plan243DAL.cs | 106 + .../DAL/Mistake243/RecordDAL.cs | 281 + .../DAL/Mistake247/AssemblyDAL.cs | 402 + .../MESClassLibrary/DAL/Mistake247/BoxDAL.cs | 169 + .../DAL/Mistake247/MistakeDAL.cs | 176 + .../DAL/Mistake247/Plan247DAL.cs | 250 + .../DAL/Mistake247/RecordDAL.cs | 610 + .../DAL/Mistake247/ToVisualDAL.cs | 69 + .../DAL/PaintDown/PaintDownDal.cs | 64 + .../MESClassLibrary/DAL/Plan243/Plan243DAL.cs | 64 + .../MESClassLibrary/DAL/Plan247/Plan247DAL.cs | 13 + .../DAL/PunchAndWeld/PunchAdressDAL.cs | 37 + .../DAL/PunchAndWeld/PunchAndStationDAL.cs | 68 + .../DAL/PunchAndWeld/PunchDeviceDAL.cs | 51 + .../DAL/PunchAndWeld/PunchPartDAL.cs | 29 + .../DAL/PunchAndWeld/PunchPlanDAL.cs | 172 + .../DAL/PunchAndWeld/PunchPlanMFADAL.cs | 386 + .../DAL/PunchAndWeld/PunchRecordDAL.cs | 64 + .../DAL/PunchAndWeld/PunchValueRecordDAL.cs | 52 + BBMPTMes/MESClassLibrary/DAL/SqlHelper.cs | 2508 +++ .../DAL/User/Sys_ButtonsData.cs | 75 + .../DAL/User/Sys_NavMenuData.cs | 107 + BBMPTMes/MESClassLibrary/DAL/User/UserDAL.cs | 421 + .../DAL/painting/InspectResultDAL.cs | 138 + .../DAL/painting/NotStockBarCodeDal.cs | 43 + .../DAL/painting/NotUpBarCodeDal.cs | 34 + .../DAL/painting/PaintBarCodeDAL.cs | 189 + .../DAL/painting/PaintPersonDAL.cs | 28 + .../DAL/painting/PaintReasonDAL.cs | 28 + .../DAL/painting/PunchNotStockBarCodeDal.cs | 40 + .../DAL/painting/StockInDAL.cs | 366 + .../DAL/painting/TmpBarCodeDal.cs | 67 + .../MESClassLibrary/EFModel/BBMPT.Context.cs | 274 + .../MESClassLibrary/EFModel/BBMPT.Context.tt | 636 + .../MESClassLibrary/EFModel/BBMPT.Designer.cs | 10 + BBMPTMes/MESClassLibrary/EFModel/BBMPT.cs | 9 + BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx | 12032 ++++++++++ .../EFModel/BBMPT.edmx.diagram | 257 + BBMPTMes/MESClassLibrary/EFModel/BBMPT.tt | 733 + BBMPTMes/MESClassLibrary/EFModel/LogErr.cs | 22 + BBMPTMes/MESClassLibrary/EFModel/LogSys.cs | 22 + .../EFModel/LogSys_202001_04.cs | 22 + .../MESClassLibrary/EFModel/LogSys_202003.cs | 22 + .../MESClassLibrary/EFModel/LogSys_202004.cs | 22 + .../MESClassLibrary/EFModel/LogSys_202005.cs | 22 + .../EFModel/LogSys_20200605.cs | 22 + .../EFModel/LogSys_20200610.cs | 22 + .../MESClassLibrary/EFModel/LogSys_202008.cs | 22 + .../EFModel/LogSys_20210322.cs | 22 + .../EFModel/QRTZ_BLOB_TRIGGERS.cs | 22 + .../MESClassLibrary/EFModel/QRTZ_CALENDARS.cs | 21 + .../EFModel/QRTZ_CRON_TRIGGERS.cs | 23 + .../EFModel/QRTZ_FIRED_TRIGGERS.cs | 31 + .../EFModel/QRTZ_JOB_DETAILS.cs | 28 + .../MESClassLibrary/EFModel/QRTZ_LOCKS.cs | 20 + .../EFModel/QRTZ_PAUSED_TRIGGER_GRPS.cs | 20 + .../EFModel/QRTZ_SCHEDULER_STATE.cs | 22 + .../EFModel/QRTZ_SIMPLE_TRIGGERS.cs | 24 + .../EFModel/QRTZ_SIMPROP_TRIGGERS.cs | 32 + .../MESClassLibrary/EFModel/QRTZ_TRIGGERS.cs | 35 + BBMPTMes/MESClassLibrary/EFModel/TA_DEPT.cs | 30 + BBMPTMes/MESClassLibrary/EFModel/TES_BOM.cs | 45 + .../MESClassLibrary/EFModel/TES_PART_MSTR.cs | 36 + .../MESClassLibrary/EFModel/T_PaintInfo.cs | 26 + .../MESClassLibrary/EFModel/T_Sys_Buttons.cs | 26 + .../MESClassLibrary/EFModel/T_Sys_NavMenu.cs | 26 + .../MESClassLibrary/EFModel/T_Sys_Power.cs | 32 + .../MESClassLibrary/EFModel/T_Sys_Role.cs | 23 + .../EFModel/T_Sys_RoleLinkPower.cs | 24 + .../MESClassLibrary/EFModel/T_Sys_UserRole.cs | 22 + .../MESClassLibrary/EFModel/T_Sys_Users.cs | 31 + .../EFModel/T_Sys_Users_NavMenu.cs | 21 + .../MESClassLibrary/EFModel/fine_authority.cs | 25 + .../EFModel/fine_authority_object.cs | 31 + .../EFModel/fine_backup_node.cs | 25 + .../EFModel/fine_base_message.cs | 29 + .../EFModel/fine_base_output.cs | 24 + .../MESClassLibrary/EFModel/fine_block_ip.cs | 22 + .../EFModel/fine_conf_classname.cs | 20 + .../EFModel/fine_conf_entity.cs | 20 + .../EFModel/fine_conf_xmlentity.cs | 20 + .../EFModel/fine_custom_role.cs | 25 + .../MESClassLibrary/EFModel/fine_dep_role.cs | 24 + .../EFModel/fine_department.cs | 27 + .../EFModel/fine_extra_property.cs | 23 + .../EFModel/fine_favorite_entry.cs | 22 + .../EFModel/fine_homepage_expand.cs | 25 + .../EFModel/fine_international.cs | 23 + .../EFModel/fine_last_login.cs | 23 + .../EFModel/fine_login_lock.cs | 26 + .../EFModel/fine_mobile_device.cs | 25 + .../EFModel/fine_mobile_push_message.cs | 24 + .../EFModel/fine_output_class.cs | 20 + .../EFModel/fine_output_client_notice.cs | 27 + .../EFModel/fine_output_email.cs | 29 + .../EFModel/fine_output_ftp.cs | 25 + .../EFModel/fine_output_mount.cs | 23 + .../EFModel/fine_output_platform_msg.cs | 22 + .../EFModel/fine_output_print.cs | 20 + .../EFModel/fine_output_sftp.cs | 25 + .../EFModel/fine_output_sms.cs | 21 + .../EFModel/fine_param_template.cs | 22 + BBMPTMes/MESClassLibrary/EFModel/fine_post.cs | 25 + .../EFModel/fine_print_offset.cs | 24 + .../EFModel/fine_print_offset_ip_relate.cs | 21 + .../EFModel/fine_process_expand.cs | 20 + .../EFModel/fine_process_message.cs | 23 + .../EFModel/fine_remote_design_auth.cs | 24 + .../EFModel/fine_report_expand.cs | 21 + .../EFModel/fine_schedule_output.cs | 22 + .../EFModel/fine_schedule_record.cs | 29 + .../EFModel/fine_schedule_task.cs | 41 + .../EFModel/fine_schedule_task_param.cs | 22 + .../EFModel/fine_swift_cluster_size.cs | 21 + .../EFModel/fine_swift_col_idx_conf.cs | 22 + .../EFModel/fine_swift_config_entity.cs | 20 + .../EFModel/fine_swift_metadata.cs | 24 + .../EFModel/fine_swift_seg_location.cs | 21 + .../EFModel/fine_swift_segments.cs | 24 + .../EFModel/fine_swift_service_info.cs | 23 + .../EFModel/fine_swift_tab_idx_conf.cs | 20 + .../EFModel/fine_swift_table_path.cs | 23 + .../EFModel/fine_system_message.cs | 21 + BBMPTMes/MESClassLibrary/EFModel/fine_user.cs | 34 + .../EFModel/fine_user_role_middle.cs | 22 + BBMPTMes/MESClassLibrary/EFModel/fine_vcs.cs | 25 + .../MESClassLibrary/EFModel/fine_workflow.cs | 24 + .../EFModel/fine_workflow_log.cs | 24 + .../EFModel/fine_workflow_node.cs | 27 + .../EFModel/fine_workflow_stash_data.cs | 23 + .../EFModel/fine_workflow_task.cs | 32 + .../EFModel/fine_workflow_task_impl.cs | 41 + .../EFModel/fine_write_stash.cs | 22 + .../EFModel/tb_AndonButtonType.cs | 21 + .../MESClassLibrary/EFModel/tb_AndonRecord.cs | 23 + .../EFModel/tb_Assembly_243.cs | 34 + .../EFModel/tb_Assembly_247.cs | 36 + .../EFModel/tb_Assembly_254.cs | 33 + .../EFModel/tb_Bad_Injection.cs | 24 + .../MESClassLibrary/EFModel/tb_BarCode.cs | 31 + BBMPTMes/MESClassLibrary/EFModel/tb_Bom.cs | 21 + .../EFModel/tb_Bom_20190726.cs | 21 + .../MESClassLibrary/EFModel/tb_Box_243.cs | 30 + .../MESClassLibrary/EFModel/tb_Box_247.cs | 30 + .../MESClassLibrary/EFModel/tb_Box_Record.cs | 22 + .../EFModel/tb_Box_WheelBrow.cs | 27 + .../MESClassLibrary/EFModel/tb_BucketInfo.cs | 23 + .../MESClassLibrary/EFModel/tb_CheckItem.cs | 22 + BBMPTMes/MESClassLibrary/EFModel/tb_Color.cs | 28 + .../EFModel/tb_Color_20191008.cs | 24 + .../EFModel/tb_Color_20201101.cs | 28 + .../EFModel/tb_CommonlyInspection.cs | 28 + .../EFModel/tb_CommonlyInspectionRecord.cs | 38 + .../EFModel/tb_CommonlyInspectionVersion.cs | 30 + BBMPTMes/MESClassLibrary/EFModel/tb_Config.cs | 25 + .../MESClassLibrary/EFModel/tb_Cylinder.cs | 21 + .../EFModel/tb_CylinderAndRaw.cs | 25 + BBMPTMes/MESClassLibrary/EFModel/tb_Defect.cs | 22 + .../MESClassLibrary/EFModel/tb_Defect_bak.cs | 22 + BBMPTMes/MESClassLibrary/EFModel/tb_Device.cs | 25 + .../MESClassLibrary/EFModel/tb_Factory.cs | 21 + .../EFModel/tb_FinishProduct.cs | 22 + .../MESClassLibrary/EFModel/tb_HybridPlan.cs | 25 + .../EFModel/tb_HybridScanRecord.cs | 21 + .../MESClassLibrary/EFModel/tb_ImgVideo.cs | 24 + .../EFModel/tb_Inhection_DownReason.cs | 21 + .../EFModel/tb_InjectPlanReport.cs | 25 + .../EFModel/tb_InjectionPlan.cs | 33 + .../EFModel/tb_Injection_DownRecord.cs | 30 + .../EFModel/tb_Injection_DownTime.cs | 27 + .../EFModel/tb_Injection_DownType.cs | 21 + .../EFModel/tb_Injection_Record.cs | 27 + .../EFModel/tb_InspectResult.cs | 35 + .../EFModel/tb_InspectResult_20190902.cs | 35 + .../EFModel/tb_InspectResult_20200717.cs | 35 + .../EFModel/tb_InspectResult_20201021.cs | 35 + .../EFModel/tb_InspectResult_20210322.cs | 35 + .../MESClassLibrary/EFModel/tb_LayerAndBC.cs | 23 + BBMPTMes/MESClassLibrary/EFModel/tb_Line.cs | 22 + .../MESClassLibrary/EFModel/tb_Location.cs | 21 + .../MESClassLibrary/EFModel/tb_Machine.cs | 21 + .../MESClassLibrary/EFModel/tb_Mistake_243.cs | 25 + .../EFModel/tb_Mistake_243_bak.cs | 25 + .../MESClassLibrary/EFModel/tb_Mistake_247.cs | 25 + .../EFModel/tb_Mistake_247_bak.cs | 25 + .../EFModel/tb_Mistake_Gratings.cs | 23 + .../MESClassLibrary/EFModel/tb_ModelCount.cs | 24 + .../MESClassLibrary/EFModel/tb_ModelInfo.cs | 33 + .../EFModel/tb_Model_Product.cs | 21 + .../EFModel/tb_Model_Update.cs | 25 + .../MESClassLibrary/EFModel/tb_Operator.cs | 24 + .../EFModel/tb_PaintBarCode.cs | 32 + .../MESClassLibrary/EFModel/tb_PaintInfo.cs | 26 + .../MESClassLibrary/EFModel/tb_PaintPerson.cs | 20 + .../MESClassLibrary/EFModel/tb_PaintReason.cs | 20 + .../EFModel/tb_PaintScanRecord.cs | 23 + .../EFModel/tb_Paint_Bucket.cs | 21 + .../MESClassLibrary/EFModel/tb_PartRecord.cs | 23 + BBMPTMes/MESClassLibrary/EFModel/tb_Place.cs | 22 + .../EFModel/tb_PlanScreenConfig.cs | 22 + .../MESClassLibrary/EFModel/tb_Plan_243.cs | 31 + .../MESClassLibrary/EFModel/tb_Plan_247.cs | 31 + .../MESClassLibrary/EFModel/tb_Plan_Punch.cs | 29 + .../EFModel/tb_Plan_Punch_20200509.cs | 29 + .../EFModel/tb_Plan_Punch_214.cs | 30 + .../MESClassLibrary/EFModel/tb_Plastic.cs | 24 + .../MESClassLibrary/EFModel/tb_PrintConfig.cs | 21 + .../MESClassLibrary/EFModel/tb_PrintRecord.cs | 28 + .../MESClassLibrary/EFModel/tb_Product.cs | 36 + .../MESClassLibrary/EFModel/tb_Product0912.cs | 34 + .../EFModel/tb_Product20200802.cs | 33 + .../EFModel/tb_Product20201016.cs | 34 + .../EFModel/tb_ProductSotckIn.cs | 22 + .../MESClassLibrary/EFModel/tb_ProductType.cs | 22 + .../EFModel/tb_Product_20200513.cs | 31 + .../EFModel/tb_Product_20201110.cs | 35 + .../EFModel/tb_Product_20230901.cs | 36 + .../EFModel/tb_Product_Injection.cs | 27 + .../EFModel/tb_Product_Injection_20190726.cs | 26 + .../EFModel/tb_Product_Injection_w.cs | 22 + .../MESClassLibrary/EFModel/tb_Project.cs | 22 + .../EFModel/tb_PunchAddress.cs | 23 + .../EFModel/tb_PunchAndStation.cs | 53 + .../EFModel/tb_PunchAndStation_bak.cs | 53 + .../MESClassLibrary/EFModel/tb_PunchDevice.cs | 22 + .../EFModel/tb_PunchMFAPlan.cs | 34 + .../EFModel/tb_PunchNGCCPlan.cs | 34 + .../MESClassLibrary/EFModel/tb_PunchPlan.cs | 26 + .../MESClassLibrary/EFModel/tb_PunchRecord.cs | 21 + .../MESClassLibrary/EFModel/tb_PunchResult.cs | 27 + .../EFModel/tb_PunchValueRecord.cs | 23 + .../EFModel/tb_Punch_Code_Record.cs | 39 + .../EFModel/tb_Punch_Code_Record2.cs | 23 + .../EFModel/tb_Punch_Code_Record_20200721.cs | 26 + .../EFModel/tb_Punch_Code_Record_20200907.cs | 26 + .../EFModel/tb_Punch_Code_Record_20221231.cs | 37 + .../EFModel/tb_Punch_Code_Record_20230630.cs | 39 + .../EFModel/tb_Punch_Code_Record_BF.cs | 26 + .../EFModel/tb_Punch_Code_Record_Del.cs | 37 + .../tb_Punch_Code_Record_DoorSill_214.cs | 40 + .../EFModel/tb_Punch_Proucting.cs | 21 + .../MESClassLibrary/EFModel/tb_Record_243.cs | 27 + .../EFModel/tb_Record_243_20220517.cs | 27 + .../MESClassLibrary/EFModel/tb_Record_247.cs | 30 + .../EFModel/tb_Record_Gratings.cs | 24 + .../MESClassLibrary/EFModel/tb_ReportA1.cs | 33 + .../MESClassLibrary/EFModel/tb_ReportF1.cs | 32 + .../MESClassLibrary/EFModel/tb_ReportF3.cs | 23 + .../MESClassLibrary/EFModel/tb_ReportG1.cs | 32 + .../MESClassLibrary/EFModel/tb_ReportH1.cs | 32 + .../EFModel/tb_ReportPaintingScreen.cs | 25 + .../EFModel/tb_ReportPaintingScreen_bak.cs | 25 + .../EFModel/tb_ReportPaintingScreen_pg.cs | 32 + .../EFModel/tb_ReportPaintingScreen_pg_bak.cs | 32 + .../MESClassLibrary/EFModel/tb_ReportTest.cs | 30 + .../EFModel/tb_Report_FiveScreen.cs | 65 + .../EFModel/tb_Report_FiveScreenConfig.cs | 24 + .../EFModel/tb_Report_FiveScreenLast.cs | 25 + .../EFModel/tb_Report_FiveScreenStandard.cs | 34 + .../EFModel/tb_Report_FiveScreen_20191011.cs | 65 + .../EFModel/tb_Report_FiveScreen_20191014.cs | 65 + .../EFModel/tb_ScanAnalysis.cs | 28 + .../EFModel/tb_ScanRecord_Laser.cs | 21 + .../MESClassLibrary/EFModel/tb_SkidInfo.cs | 49 + .../EFModel/tb_SkidInfo_20200904.cs | 49 + .../EFModel/tb_SpcialNotFacStockNo.cs | 20 + .../EFModel/tb_SpcialStockNo.cs | 20 + .../EFModel/tb_SpecialHybrid.cs | 21 + .../EFModel/tb_SpecialVisual.cs | 20 + .../MESClassLibrary/EFModel/tb_Station.cs | 22 + .../EFModel/tb_StationAndCylinder.cs | 23 + .../MESClassLibrary/EFModel/tb_StockIn.cs | 24 + .../EFModel/tb_StockInColor.cs | 23 + .../EFModel/tb_StockIn_20200511.cs | 24 + .../EFModel/tb_StockIn_20210322.cs | 24 + .../EFModel/tb_StockIn_beif.cs | 22 + .../EFModel/tb_ToVisual_WheelBrow_243.cs | 23 + .../EFModel/tb_ToVisual_WheelBrow_247.cs | 23 + .../MESClassLibrary/EFModel/tb_ToWmsRecord.cs | 21 + BBMPTMes/MESClassLibrary/EFModel/tb_aa.cs | 24 + .../MESClassLibrary/EFModel/tb_reportA2.cs | 33 + BBMPTMes/MESClassLibrary/EFModel/tb_test.cs | 21 + BBMPTMes/MESClassLibrary/EFModel/test1.cs | 29 + BBMPTMes/MESClassLibrary/EFModel/test2.cs | 24 + .../EncryptedDLL/MESClassLibrary.dll | Bin 0 -> 721920 bytes BBMPTMes/MESClassLibrary/JSONTools.cs | 85 + BBMPTMes/MESClassLibrary/LambdaHelper.cs | 220 + .../MESClassLibrary/MESClassLibrary.csproj | 1071 + .../MESClassLibrary/Model/AnalysisBarModel.cs | 16 + .../MESClassLibrary/Model/AnalysisPieModel.cs | 14 + .../Model/AndonButtonTypeModel.cs | 15 + .../MESClassLibrary/Model/AndonRecordModel.cs | 18 + .../MESClassLibrary/Model/Assembly243Model.cs | 37 + .../MESClassLibrary/Model/AssemblyModel.cs | 40 + .../Model/BadInjectionModel.cs | 17 + .../MESClassLibrary/Model/BarCodeModel.cs | 30 + BBMPTMes/MESClassLibrary/Model/BasicModel.cs | 20 + BBMPTMes/MESClassLibrary/Model/BomModel.cs | 16 + BBMPTMes/MESClassLibrary/Model/BoxModel.cs | 35 + .../MESClassLibrary/Model/CheckItemModel.cs | 14 + .../MESClassLibrary/Model/ChildTreeModel.cs | 16 + BBMPTMes/MESClassLibrary/Model/ColorModel.cs | 16 + .../Model/CommonlyInspectionModel.cs | 14 + .../Model/CommonlyInspectionVersionModel.cs | 17 + BBMPTMes/MESClassLibrary/Model/DefectModel.cs | 14 + BBMPTMes/MESClassLibrary/Model/DeviceModel.cs | 14 + .../MESClassLibrary/Model/DownRecordVO.cs | 28 + .../MESClassLibrary/Model/EcharBarModel.cs | 15 + .../MESClassLibrary/Model/GetNewTasksModel.cs | 51 + .../MESClassLibrary/Model/HybridPlanModel.cs | 20 + .../Model/HybridScanRecordModel.cs | 14 + .../Model/InjectionBadReasonModel.cs | 14 + .../Model/InjectionDownReason.cs | 15 + .../Model/InjectionDownRecordModel.cs | 20 + .../Model/InjectionPlanModel.cs | 22 + .../Model/InjectionRecordDownReasonModel.cs | 15 + .../Model/Injection_DownRecordModel.cs | 18 + .../Model/Injection_RecordModel.cs | 14 + .../Model/InspectResultGroup.cs | 34 + .../Model/InspectResultModel.cs | 27 + .../MESClassLibrary/Model/JsonDataModel.cs | 14 + BBMPTMes/MESClassLibrary/Model/LineModel.cs | 14 + BBMPTMes/MESClassLibrary/Model/LogErrModel.cs | 20 + BBMPTMes/MESClassLibrary/Model/LogSysModel.cs | 19 + .../MESClassLibrary/Model/OperationModel.cs | 42 + .../MESClassLibrary/Model/OperatorModel.cs | 14 + .../Model/PaintBarCodeModel.cs | 30 + .../Model/Paint_BucketModel.cs | 17 + .../MESClassLibrary/Model/PartDetModel.cs | 30 + .../MESClassLibrary/Model/PartMstrModel.cs | 60 + .../MESClassLibrary/Model/PartRecordModel.cs | 17 + .../MESClassLibrary/Model/PieDataModel.cs | 14 + BBMPTMes/MESClassLibrary/Model/PlaceModel.cs | 14 + .../MESClassLibrary/Model/PlasticModel.cs | 16 + .../Model/ProductInjectionModel.cs | 16 + .../MESClassLibrary/Model/ProductModel.cs | 16 + .../Model/ProductOfInjectionModel.cs | 25 + .../MESClassLibrary/Model/ProductTypeModel.cs | 21 + .../MESClassLibrary/Model/ProjectModel.cs | 13 + .../Model/PunchAndStationModel.cs | 23 + .../Model/PunchAndStationModel1.cs | 70 + .../MESClassLibrary/Model/PunchMFAModel.cs | 36 + .../MESClassLibrary/Model/PunchPlanModel.cs | 19 + .../MESClassLibrary/Model/PunchRecordModel.cs | 14 + .../Model/PunchValueRecordModel.cs | 18 + .../Model/QualifiedDayModel.cs | 15 + .../Model/QualifiedMonthModel.cs | 15 + BBMPTMes/MESClassLibrary/Model/RecordModel.cs | 30 + BBMPTMes/MESClassLibrary/Model/SelectModel.cs | 14 + .../MESClassLibrary/Model/StationModel.cs | 14 + .../MESClassLibrary/Model/StockInModel.cs | 15 + BBMPTMes/MESClassLibrary/Model/Sys_Buttons.cs | 51 + .../MESClassLibrary/Model/Sys_NavMenuInfo.cs | 71 + BBMPTMes/MESClassLibrary/Model/TESBomModel.cs | 63 + .../MESClassLibrary/Model/TESPartDetModel.cs | 143 + BBMPTMes/MESClassLibrary/Model/TreeModel.cs | 16 + BBMPTMes/MESClassLibrary/Model/UserModel.cs | 21 + BBMPTMes/MESClassLibrary/Model/partModel.cs | 12 + .../MESClassLibrary/Model/tb_Plan_243Model.cs | 13 + .../MESClassLibrary/Model/tb_Plan_247Model.cs | 13 + .../Model/tb_Plan_PunchModel.cs | 13 + .../Model/tb_Plan_PunchNewModel.cs | 17 + .../Properties/AssemblyInfo.cs | 36 + BBMPTMes/MESClassLibrary/Tool.cs | 271 + BBMPTMes/MESClassLibrary/packages.config | 5 + BBMPTMes/MESWebSite/CSS/Basics.css | 251 + .../CommonClass/ExportHeaderAttribute.cs | 13 + .../MESWebSite/CommonClass/JEasyUIHelper.cs | 93 + BBMPTMes/MESWebSite/CommonClass/JSONHelper.cs | 117 + BBMPTMes/MESWebSite/CommonClass/SQLHelper.cs | 207 + BBMPTMes/MESWebSite/DLL/Newtonsoft.Json.dll | Bin 0 -> 428544 bytes BBMPTMes/MESWebSite/DLL/org.in2bits.MyXls.dll | Bin 0 -> 114176 bytes .../Excel/243生产计划导入模板.xls | Bin 0 -> 18944 bytes .../MESWebSite/Excel/产品信息模板.xls | Bin 0 -> 18944 bytes .../Excel/冲孔装配计划导入模板.xls | Bin 0 -> 18944 bytes .../Excel/生产计划导入模板.xls | Bin 0 -> 18944 bytes .../Excel/装配总成bom模板.xls | Bin 0 -> 18944 bytes BBMPTMes/MESWebSite/HelperTools.cs | 69 + .../HttpHandlers/AppendColorHandler.ashx | 1 + .../HttpHandlers/AppendColorHandler.ashx.cs | 107 + .../MESWebSite/HttpHandlers/BomHandler.ashx | 1 + .../HttpHandlers/BomHandler.ashx.cs | 112 + .../HttpHandlers/BucketInfoHandler.ashx | 1 + .../HttpHandlers/BucketInfoHandler.ashx.cs | 126 + .../HttpHandlers/CheckItemHandler.ashx | 1 + .../HttpHandlers/CheckItemHandler.ashx.cs | 138 + .../MESWebSite/HttpHandlers/ColorHandler.ashx | 1 + .../HttpHandlers/ColorHandler.ashx.cs | 128 + .../CommonlyInspectionHandler.ashx | 1 + .../CommonlyInspectionHandler.ashx.cs | 107 + .../CommonlyInspectionVersionHandler.ashx | 1 + .../CommonlyInspectionVersionHandler.ashx.cs | 339 + .../HttpHandlers/DefectHandler.ashx | 1 + .../HttpHandlers/DefectHandler.ashx.cs | 125 + .../MESWebSite/HttpHandlers/DeptHandler.ashx | 1 + .../HttpHandlers/DeptHandler.ashx.cs | 122 + .../HttpHandlers/DeviceHandler.ashx | 1 + .../HttpHandlers/DeviceHandler.ashx.cs | 169 + .../HttpHandlers/FactoryHandler.ashx | 1 + .../HttpHandlers/FactoryHandler.ashx.cs | 122 + .../HttpHandlers/FiveScreenHandler.ashx | 1 + .../HttpHandlers/FiveScreenHandler.ashx.cs | 198 + .../HttpHandlers/FiveScreenLastHandler.ashx | 1 + .../FiveScreenLastHandler.ashx.cs | 117 + .../FiveScreenStandardHandler.ashx | 1 + .../FiveScreenStandardHandler.ashx.cs | 134 + .../HttpHandlers/ImgVideoHandler.ashx | 1 + .../HttpHandlers/ImgVideoHandler.ashx.cs | 172 + .../MESWebSite/HttpHandlers/IndexHandler.ashx | 1 + .../HttpHandlers/IndexHandler.ashx.cs | 65 + .../HttpHandlers/InjectionDownDayHandler.ashx | 1 + .../InjectionDownDayHandler.ashx.cs | 95 + .../InjectionDownMonthHandler.ashx | 1 + .../InjectionDownMonthHandler.ashx.cs | 95 + .../InjectionDownMonthTimesHandler.ashx | 1 + .../InjectionDownMonthTimesHandler.ashx.cs | 95 + .../InjectionDownRecordHandler.ashx | 1 + .../InjectionDownRecordHandler.ashx.cs | 158 + .../HttpHandlers/InjectionPlanHandler.ashx | 1 + .../HttpHandlers/InjectionPlanHandler.ashx.cs | 252 + .../HttpHandlers/InjectionRecordHandler.ashx | 1 + .../InjectionRecordHandler.ashx.cs | 133 + .../InjectionWasteRecordHandler.ashx | 1 + .../InjectionWasteRecordHandler.ashx.cs | 100 + .../MESWebSite/HttpHandlers/LineHandler.ashx | 1 + .../HttpHandlers/LineHandler.ashx.cs | 132 + .../HttpHandlers/LocationHandler.ashx | 1 + .../HttpHandlers/LocationHandler.ashx.cs | 118 + .../HttpHandlers/MachineHandler.ashx | 1 + .../HttpHandlers/MachineHandler.ashx.cs | 122 + .../MaterialAvailabilityDayHandler.ashx | 1 + .../MaterialAvailabilityDayHandler.ashx.cs | 95 + .../MaterialAvailabilityMonthHandler.ashx | 1 + .../MaterialAvailabilityMonthHandler.ashx.cs | 95 + .../ModelChangeRecordHandler.ashx | 1 + .../ModelChangeRecordHandler.ashx.cs | 97 + .../HttpHandlers/ModelInfoHandler.ashx | 1 + .../HttpHandlers/ModelInfoHandler.ashx.cs | 211 + .../HttpHandlers/OperatorHandler.ashx | 1 + .../HttpHandlers/OperatorHandler.ashx.cs | 119 + .../HttpHandlers/PaintInfoHandler.ashx | 1 + .../HttpHandlers/PaintInfoHandler.ashx.cs | 130 + .../HttpHandlers/Paint_BucketHandler.ashx | 1 + .../HttpHandlers/Paint_BucketHandler.ashx.cs | 111 + .../PaintingInspectionRepair.ashx | 1 + .../PaintingInspectionRepair.ashx.cs | 116 + .../MESWebSite/HttpHandlers/PlaceHandler.ashx | 1 + .../HttpHandlers/PlaceHandler.ashx.cs | 124 + .../PlaitingInspectionRepairHandler.ashx | 1 + .../PlaitingInspectionRepairHandler.ashx.cs | 99 + .../HttpHandlers/Plan_243Handler.ashx | 1 + .../HttpHandlers/Plan_243Handler.ashx.cs | 286 + .../HttpHandlers/Plan_247Handler.ashx | 1 + .../HttpHandlers/Plan_247Handler.ashx.cs | 292 + .../HttpHandlers/Plan_PunchHandler.ashx | 1 + .../HttpHandlers/Plan_PunchHandler.ashx.cs | 290 + .../HttpHandlers/Plan_PunchNewHandler.ashx | 1 + .../HttpHandlers/Plan_PunchNewHandler.ashx.cs | 288 + .../HttpHandlers/PlasticHandler.ashx | 1 + .../HttpHandlers/PlasticHandler.ashx.cs | 150 + .../PlatingInspectionHandler.ashx | 1 + .../PlatingInspectionHandler.ashx.cs | 452 + .../HttpHandlers/PlatingPolishHandler.ashx | 1 + .../HttpHandlers/PlatingPolishHandler.ashx.cs | 109 + .../HttpHandlers/PlatingScrapHandler.ashx | 1 + .../HttpHandlers/PlatingScrapHandler.ashx.cs | 100 + .../HttpHandlers/ProductHandler.ashx | 1 + .../HttpHandlers/ProductHandler.ashx.cs | 193 + .../HttpHandlers/ProductTypeHandler.ashx | 1 + .../HttpHandlers/ProductTypeHandler.ashx.cs | 121 + .../ProductionRecordsHandler.ashx | 1 + .../ProductionRecordsHandler.ashx.cs | 96 + .../HttpHandlers/ProjectHandler.ashx | 1 + .../HttpHandlers/ProjectHandler.ashx.cs | 134 + .../HttpHandlers/PunchBomHandler.ashx | 1 + .../HttpHandlers/PunchBomHandler.ashx.cs | 290 + .../HttpHandlers/QualifiedDayHandler.ashx | 1 + .../HttpHandlers/QualifiedDayHandler.ashx.cs | 95 + .../HttpHandlers/QualifiedMonthHandler.ashx | 1 + .../QualifiedMonthHandler.ashx.cs | 95 + .../QualifiedTrendExcelHandler.ashx | 1 + .../QualifiedTrendExcelHandler.ashx.cs | 120 + .../HttpHandlers/Record_243Handler.ashx | 1 + .../HttpHandlers/Record_243Handler.ashx.cs | 71 + .../HttpHandlers/Record_247Handler.ashx | 1 + .../HttpHandlers/Record_247Handler.ashx.cs | 72 + .../HttpHandlers/RepairRecordHandler.ashx | 1 + .../HttpHandlers/RepairRecordHandler.ashx.cs | 81 + .../HttpHandlers/StationHandler.ashx | 1 + .../HttpHandlers/StationHandler.ashx.cs | 127 + .../HttpHandlers/StockInHandler.ashx | 1 + .../HttpHandlers/StockInHandler.ashx.cs | 253 + .../MESWebSite/HttpHandlers/UserHandler.ashx | 1 + .../HttpHandlers/UserHandler.ashx.cs | 259 + BBMPTMes/MESWebSite/Login.aspx | 65 + BBMPTMes/MESWebSite/Login.aspx.cs | 109 + BBMPTMes/MESWebSite/Login.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/MESWebSite.csproj | 1808 ++ BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx | 88 + .../MESWebSite/Manage/AnalysisApi.aspx.cs | 364 + .../Manage/AnalysisApi.aspx.designer.cs | 25 + .../MESWebSite/Manage/AppendColorSearch.aspx | 180 + .../Manage/AppendColorSearch.aspx.cs | 17 + .../Manage/AppendColorSearch.aspx.designer.cs | 33 + BBMPTMes/MESWebSite/Manage/Bom.aspx | 341 + BBMPTMes/MESWebSite/Manage/Bom.aspx.cs | 17 + .../MESWebSite/Manage/Bom.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/BucketInfo.aspx | 371 + BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.cs | 17 + .../Manage/BucketInfo.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/CheckItem.aspx | 362 + BBMPTMes/MESWebSite/Manage/CheckItem.aspx.cs | 17 + .../Manage/CheckItem.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Color.aspx | 374 + BBMPTMes/MESWebSite/Manage/Color.aspx.cs | 17 + .../MESWebSite/Manage/Color.aspx.designer.cs | 42 + .../MESWebSite/Manage/CommonlyInspection.aspx | 484 + .../Manage/CommonlyInspection.aspx.cs | 77 + .../CommonlyInspection.aspx.designer.cs | 33 + .../Manage/CommonlyInspectionVersion.aspx | 550 + .../Manage/CommonlyInspectionVersion.aspx.cs | 24 + ...CommonlyInspectionVersion.aspx.designer.cs | 33 + BBMPTMes/MESWebSite/Manage/Defect.aspx | 361 + BBMPTMes/MESWebSite/Manage/Defect.aspx.cs | 17 + .../MESWebSite/Manage/Defect.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Dept.aspx | 131 + BBMPTMes/MESWebSite/Manage/Dept.aspx.cs | 17 + .../MESWebSite/Manage/Dept.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/Device.aspx | 407 + BBMPTMes/MESWebSite/Manage/Device.aspx.cs | 17 + .../MESWebSite/Manage/Device.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Factory.aspx | 328 + BBMPTMes/MESWebSite/Manage/Factory.aspx.cs | 17 + .../Manage/Factory.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/FiveScreen.aspx | 946 + BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.cs | 38 + .../Manage/FiveScreen.aspx.designer.cs | 42 + .../MESWebSite/Manage/FiveScreenLast.aspx | 349 + .../MESWebSite/Manage/FiveScreenLast.aspx.cs | 17 + .../Manage/FiveScreenLast.aspx.designer.cs | 42 + .../MESWebSite/Manage/FiveScreenStandard.aspx | 485 + .../Manage/FiveScreenStandard.aspx.cs | 17 + .../FiveScreenStandard.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/ImgVideo.aspx | 464 + BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.cs | 25 + .../Manage/ImgVideo.aspx.designer.cs | 60 + BBMPTMes/MESWebSite/Manage/Index.aspx | 478 + BBMPTMes/MESWebSite/Manage/Index.aspx.cs | 77 + .../MESWebSite/Manage/Index.aspx.designer.cs | 60 + .../MESWebSite/Manage/InjectionDownDay.aspx | 231 + .../Manage/InjectionDownDay.aspx.cs | 36 + .../Manage/InjectionDownDay.aspx.designer.cs | 24 + .../MESWebSite/Manage/InjectionDownMonth.aspx | 230 + .../Manage/InjectionDownMonth.aspx.cs | 35 + .../InjectionDownMonth.aspx.designer.cs | 24 + .../Manage/InjectionDownMonthTimes.aspx | 230 + .../Manage/InjectionDownMonthTimes.aspx.cs | 36 + .../InjectionDownMonthTimes.aspx.designer.cs | 24 + .../Manage/InjectionDownRecord.aspx | 1125 + .../Manage/InjectionDownRecord.aspx.cs | 41 + .../InjectionDownRecord.aspx.designer.cs | 87 + BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx | 552 + .../MESWebSite/Manage/InjectionPlan.aspx.cs | 17 + .../Manage/InjectionPlan.aspx.designer.cs | 42 + .../MESWebSite/Manage/InjectionRecord.aspx | 517 + .../MESWebSite/Manage/InjectionRecord.aspx.cs | 17 + .../Manage/InjectionRecord.aspx.designer.cs | 51 + .../Manage/InjectionWasteRecord.aspx | 429 + .../Manage/InjectionWasteRecord.aspx.cs | 17 + .../InjectionWasteRecord.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Line.aspx | 360 + BBMPTMes/MESWebSite/Manage/Line.aspx.cs | 17 + .../MESWebSite/Manage/Line.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Location.aspx | 310 + BBMPTMes/MESWebSite/Manage/Location.aspx.cs | 17 + .../Manage/Location.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Machine.aspx | 323 + BBMPTMes/MESWebSite/Manage/Machine.aspx.cs | 17 + .../Manage/Machine.aspx.designer.cs | 42 + .../Manage/MaterialAvailabilityDay.aspx | 354 + .../Manage/MaterialAvailabilityDay.aspx.cs | 56 + .../MaterialAvailabilityDay.aspx.designer.cs | 24 + .../Manage/MaterialAvailabilityMonth.aspx | 354 + .../Manage/MaterialAvailabilityMonth.aspx.cs | 54 + ...MaterialAvailabilityMonth.aspx.designer.cs | 24 + .../MESWebSite/Manage/ModelChangeRecord.aspx | 197 + .../Manage/ModelChangeRecord.aspx.cs | 36 + .../Manage/ModelChangeRecord.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ModelInfo.aspx | 731 + BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.cs | 17 + .../Manage/ModelInfo.aspx.designer.cs | 51 + BBMPTMes/MESWebSite/Manage/Operator.aspx | 391 + BBMPTMes/MESWebSite/Manage/Operator.aspx.cs | 17 + .../Manage/Operator.aspx.designer.cs | 42 + .../MESWebSite/Manage/PaintBarCodeSearch.aspx | 17 + .../Manage/PaintBarCodeSearch.aspx.cs | 17 + .../PaintBarCodeSearch.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/PaintInfo.aspx | 415 + BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.cs | 17 + .../Manage/PaintInfo.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx | 356 + .../MESWebSite/Manage/Paint_Bucket.aspx.cs | 17 + .../Manage/Paint_Bucket.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Place.aspx | 361 + BBMPTMes/MESWebSite/Manage/Place.aspx.cs | 17 + .../MESWebSite/Manage/Place.aspx.designer.cs | 42 + .../Manage/PlaitingInspectionRepair.aspx | 219 + .../Manage/PlaitingInspectionRepair.aspx.cs | 17 + .../PlaitingInspectionRepair.aspx.designer.cs | 33 + BBMPTMes/MESWebSite/Manage/Plan_243.aspx | 1004 + BBMPTMes/MESWebSite/Manage/Plan_243.aspx.cs | 252 + .../Manage/Plan_243.aspx.designer.cs | 60 + BBMPTMes/MESWebSite/Manage/Plan_247.aspx | 1003 + BBMPTMes/MESWebSite/Manage/Plan_247.aspx.cs | 253 + .../Manage/Plan_247.aspx.designer.cs | 62 + BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx | 1084 + BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.cs | 297 + .../Manage/Plan_Punch.aspx.designer.cs | 60 + .../MESWebSite/Manage/Plan_Punch_new.aspx | 1122 + .../MESWebSite/Manage/Plan_Punch_new.aspx.cs | 280 + .../Manage/Plan_Punch_new.aspx.designer.cs | 60 + BBMPTMes/MESWebSite/Manage/Plastic.aspx | 441 + BBMPTMes/MESWebSite/Manage/Plastic.aspx.cs | 17 + .../Manage/Plastic.aspx.designer.cs | 42 + .../MESWebSite/Manage/PlatingInspection.aspx | 257 + .../Manage/PlatingInspection.aspx.cs | 17 + .../Manage/PlatingInspection.aspx.designer.cs | 33 + .../Manage/PlatingInspectionNew.aspx | 14 + .../Manage/PlatingInspectionNew.aspx.cs | 17 + .../PlatingInspectionNew.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx | 206 + .../MESWebSite/Manage/PlatingPolish.aspx.cs | 31 + .../Manage/PlatingPolish.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx | 209 + .../MESWebSite/Manage/PlatingScrap.aspx.cs | 32 + .../Manage/PlatingScrap.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/Product.aspx | 629 + BBMPTMes/MESWebSite/Manage/Product.aspx.cs | 256 + .../Manage/Product.aspx.designer.cs | 87 + BBMPTMes/MESWebSite/Manage/ProductType.aspx | 335 + .../MESWebSite/Manage/ProductType.aspx.cs | 17 + .../Manage/ProductType.aspx.designer.cs | 42 + .../MESWebSite/Manage/ProductionRecords.aspx | 197 + .../Manage/ProductionRecords.aspx.cs | 36 + .../Manage/ProductionRecords.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/Project.aspx | 347 + BBMPTMes/MESWebSite/Manage/Project.aspx.cs | 17 + .../Manage/Project.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/PunchBom.aspx | 801 + BBMPTMes/MESWebSite/Manage/PunchBom.aspx.cs | 442 + .../Manage/PunchBom.aspx.designer.cs | 60 + BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx | 360 + .../MESWebSite/Manage/QualifiedDay.aspx.cs | 52 + .../Manage/QualifiedDay.aspx.designer.cs | 24 + .../MESWebSite/Manage/QualifiedMonth.aspx | 360 + .../MESWebSite/Manage/QualifiedMonth.aspx.cs | 57 + .../Manage/QualifiedMonth.aspx.designer.cs | 24 + .../Manage/QualifiedTrendExcel.aspx | 201 + .../Manage/QualifiedTrendExcel.aspx.cs | 37 + .../QualifiedTrendExcel.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/Record_243.aspx | 198 + BBMPTMes/MESWebSite/Manage/Record_243.aspx.cs | 17 + .../Manage/Record_243.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/Record_247.aspx | 198 + BBMPTMes/MESWebSite/Manage/Record_247.aspx.cs | 17 + .../Manage/Record_247.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/RepairRecord.aspx | 194 + .../MESWebSite/Manage/RepairRecord.aspx.cs | 36 + .../Manage/RepairRecord.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportA.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportA.aspx.cs | 17 + .../Manage/ReportA.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportA_H.aspx | 17 + BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.cs | 17 + .../Manage/ReportA_H.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportB.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportB.aspx.cs | 17 + .../Manage/ReportB.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportB_H.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.cs | 17 + .../Manage/ReportB_H.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx | 15 + .../MESWebSite/Manage/ReportBaofei.aspx.cs | 17 + .../Manage/ReportBaofei.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportC.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportC.aspx.cs | 17 + .../Manage/ReportC.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportC_H.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.cs | 17 + .../Manage/ReportC_H.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportJ.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportJ.aspx.cs | 17 + .../Manage/ReportJ.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.cs | 17 + .../Manage/ReportJ_H.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportK.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportK.aspx.cs | 17 + .../Manage/ReportK.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportK_H.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.cs | 17 + .../Manage/ReportK_H.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportL.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportL.aspx.cs | 17 + .../Manage/ReportL.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/ReportL_H.aspx | 15 + BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.cs | 17 + .../Manage/ReportL_H.aspx.designer.cs | 24 + BBMPTMes/MESWebSite/Manage/Station.aspx | 361 + BBMPTMes/MESWebSite/Manage/Station.aspx.cs | 17 + .../Manage/Station.aspx.designer.cs | 42 + BBMPTMes/MESWebSite/Manage/StockIn.aspx | 272 + BBMPTMes/MESWebSite/Manage/StockIn.aspx.cs | 17 + .../Manage/StockIn.aspx.designer.cs | 33 + BBMPTMes/MESWebSite/Manage/User.aspx | 440 + BBMPTMes/MESWebSite/Manage/User.aspx.cs | 17 + .../MESWebSite/Manage/User.aspx.designer.cs | 33 + BBMPTMes/MESWebSite/PDF/20210527104331937.png | Bin 0 -> 63812 bytes BBMPTMes/MESWebSite/PDF/20210527110934964.png | Bin 0 -> 63812 bytes .../MESWebSite/Properties/AssemblyInfo.cs | 35 + .../Properties/PublishProfiles/WebSite.pubxml | 17 + .../MESWebSite/Scripts/EasyUI/changelog.txt | 388 + .../EasyUI/demo/accordion/_content.html | 18 + .../EasyUI/demo/accordion/actions.html | 51 + .../Scripts/EasyUI/demo/accordion/ajax.html | 28 + .../Scripts/EasyUI/demo/accordion/basic.html | 52 + .../EasyUI/demo/accordion/datagrid_data1.json | 12 + .../EasyUI/demo/accordion/expandable.html | 33 + .../EasyUI/demo/accordion/multiple.html | 34 + .../Scripts/EasyUI/demo/accordion/tools.html | 48 + .../Scripts/EasyUI/demo/calendar/basic.html | 19 + .../Scripts/EasyUI/demo/calendar/custom.html | 46 + .../EasyUI/demo/calendar/disabledate.html | 28 + .../EasyUI/demo/calendar/firstday.html | 30 + .../Scripts/EasyUI/demo/combo/basic.html | 42 + .../Scripts/EasyUI/demo/combobox/actions.html | 86 + .../Scripts/EasyUI/demo/combobox/basic.html | 71 + .../EasyUI/demo/combobox/combobox_data1.json | 22 + .../EasyUI/demo/combobox/combobox_data2.json | 47 + .../EasyUI/demo/combobox/customformat.html | 33 + .../EasyUI/demo/combobox/dynamicdata.html | 23 + .../Scripts/EasyUI/demo/combobox/group.html | 26 + .../EasyUI/demo/combobox/multiple.html | 29 + .../EasyUI/demo/combobox/navigation.html | 73 + .../EasyUI/demo/combobox/remotedata.html | 27 + .../EasyUI/demo/combobox/remotejsonp.html | 51 + .../EasyUI/demo/combogrid/actions.html | 53 + .../Scripts/EasyUI/demo/combogrid/basic.html | 34 + .../EasyUI/demo/combogrid/datagrid_data1.json | 12 + .../EasyUI/demo/combogrid/initvalue.html | 33 + .../EasyUI/demo/combogrid/multiple.html | 37 + .../EasyUI/demo/combogrid/navigation.html | 38 + .../EasyUI/demo/combotree/actions.html | 39 + .../Scripts/EasyUI/demo/combotree/basic.html | 19 + .../EasyUI/demo/combotree/initvalue.html | 19 + .../EasyUI/demo/combotree/multiple.html | 22 + .../EasyUI/demo/combotree/tree_data1.json | 49 + .../EasyUI/demo/datagrid/aligncolumns.html | 32 + .../Scripts/EasyUI/demo/datagrid/basic.html | 32 + .../EasyUI/demo/datagrid/cellediting.html | 79 + .../EasyUI/demo/datagrid/cellstyle.html | 42 + .../EasyUI/demo/datagrid/checkbox.html | 42 + .../demo/datagrid/clientpagination.html | 89 + .../EasyUI/demo/datagrid/columngroup.html | 34 + .../EasyUI/demo/datagrid/complextoolbar.html | 52 + .../EasyUI/demo/datagrid/contextmenu.html | 81 + .../EasyUI/demo/datagrid/custompager.html | 53 + .../EasyUI/demo/datagrid/datagrid_data1.json | 12 + .../EasyUI/demo/datagrid/datagrid_data2.json | 15 + .../Scripts/EasyUI/demo/datagrid/footer.html | 38 + .../EasyUI/demo/datagrid/formatcolumns.html | 39 + .../EasyUI/demo/datagrid/frozencolumns.html | 35 + .../EasyUI/demo/datagrid/frozenrows.html | 44 + .../EasyUI/demo/datagrid/mergecells.html | 58 + .../EasyUI/demo/datagrid/multisorting.html | 37 + .../EasyUI/demo/datagrid/products.json | 9 + .../EasyUI/demo/datagrid/rowborder.html | 60 + .../EasyUI/demo/datagrid/rowediting.html | 113 + .../EasyUI/demo/datagrid/rowstyle.html | 41 + .../EasyUI/demo/datagrid/selection.html | 57 + .../EasyUI/demo/datagrid/simpletoolbar.html | 45 + .../EasyUI/demo/datagrid/transform.html | 46 + .../Scripts/EasyUI/demo/datebox/basic.html | 18 + .../Scripts/EasyUI/demo/datebox/buttons.html | 28 + .../EasyUI/demo/datebox/dateformat.html | 39 + .../Scripts/EasyUI/demo/datebox/events.html | 27 + .../EasyUI/demo/datebox/sharedcalendar.html | 30 + .../Scripts/EasyUI/demo/datebox/validate.html | 30 + .../EasyUI/demo/datetimebox/basic.html | 18 + .../EasyUI/demo/datetimebox/initvalue.html | 19 + .../EasyUI/demo/datetimebox/showseconds.html | 22 + .../MESWebSite/Scripts/EasyUI/demo/demo.css | 21 + .../Scripts/EasyUI/demo/dialog/basic.html | 23 + .../EasyUI/demo/dialog/complextoolbar.html | 46 + .../EasyUI/demo/dialog/toolbarbuttons.html | 52 + .../Scripts/EasyUI/demo/draggable/basic.html | 21 + .../EasyUI/demo/draggable/constain.html | 35 + .../Scripts/EasyUI/demo/draggable/snap.html | 37 + .../Scripts/EasyUI/demo/droppable/accept.html | 78 + .../Scripts/EasyUI/demo/droppable/basic.html | 77 + .../Scripts/EasyUI/demo/droppable/sort.html | 71 + .../Scripts/EasyUI/demo/easyloader/basic.html | 75 + .../Scripts/EasyUI/demo/form/basic.html | 67 + .../Scripts/EasyUI/demo/form/form_data1.json | 7 + .../Scripts/EasyUI/demo/form/load.html | 76 + .../Scripts/EasyUI/demo/layout/_content.html | 18 + .../Scripts/EasyUI/demo/layout/addremove.html | 53 + .../EasyUI/demo/layout/autoheight.html | 58 + .../Scripts/EasyUI/demo/layout/basic.html | 39 + .../Scripts/EasyUI/demo/layout/complex.html | 57 + .../EasyUI/demo/layout/datagrid_data1.json | 12 + .../Scripts/EasyUI/demo/layout/full.html | 19 + .../EasyUI/demo/layout/nestedlayout.html | 31 + .../EasyUI/demo/layout/nocollapsible.html | 34 + .../demo/layout/propertygrid_data1.json | 20 + .../EasyUI/demo/layout/tree_data1.json | 49 + .../Scripts/EasyUI/demo/linkbutton/basic.html | 33 + .../Scripts/EasyUI/demo/linkbutton/group.html | 33 + .../EasyUI/demo/linkbutton/iconalign.html | 32 + .../Scripts/EasyUI/demo/linkbutton/plain.html | 28 + .../Scripts/EasyUI/demo/linkbutton/size.html | 34 + .../EasyUI/demo/linkbutton/toggle.html | 25 + .../Scripts/EasyUI/demo/menu/basic.html | 68 + .../Scripts/EasyUI/demo/menu/customitem.html | 55 + .../Scripts/EasyUI/demo/menu/events.html | 40 + .../EasyUI/demo/menubutton/actions.html | 58 + .../EasyUI/demo/menubutton/alignment.html | 69 + .../Scripts/EasyUI/demo/menubutton/basic.html | 54 + .../Scripts/EasyUI/demo/messager/alert.html | 40 + .../Scripts/EasyUI/demo/messager/basic.html | 56 + .../EasyUI/demo/messager/interactive.html | 36 + .../EasyUI/demo/messager/position.html | 140 + .../Scripts/EasyUI/demo/numberbox/basic.html | 24 + .../Scripts/EasyUI/demo/numberbox/format.html | 40 + .../Scripts/EasyUI/demo/numberbox/range.html | 25 + .../EasyUI/demo/numberspinner/basic.html | 25 + .../EasyUI/demo/numberspinner/increment.html | 18 + .../EasyUI/demo/numberspinner/range.html | 18 + .../EasyUI/demo/pagination/attaching.html | 32 + .../Scripts/EasyUI/demo/pagination/basic.html | 20 + .../EasyUI/demo/pagination/custombuttons.html | 38 + .../EasyUI/demo/pagination/layout.html | 62 + .../Scripts/EasyUI/demo/pagination/links.html | 23 + .../EasyUI/demo/pagination/simple.html | 25 + .../Scripts/EasyUI/demo/panel/_content.html | 18 + .../Scripts/EasyUI/demo/panel/basic.html | 31 + .../EasyUI/demo/panel/customtools.html | 35 + .../EasyUI/demo/panel/loadcontent.html | 27 + .../EasyUI/demo/panel/nestedpanel.html | 30 + .../Scripts/EasyUI/demo/panel/paneltools.html | 37 + .../EasyUI/demo/progressbar/basic.html | 30 + .../EasyUI/demo/propertygrid/basic.html | 61 + .../demo/propertygrid/customcolumns.html | 31 + .../EasyUI/demo/propertygrid/groupformat.html | 30 + .../demo/propertygrid/propertygrid_data1.json | 20 + .../Scripts/EasyUI/demo/resizable/basic.html | 24 + .../Scripts/EasyUI/demo/searchbox/basic.html | 23 + .../EasyUI/demo/searchbox/category.html | 28 + .../Scripts/EasyUI/demo/slider/basic.html | 18 + .../Scripts/EasyUI/demo/slider/formattip.html | 28 + .../Scripts/EasyUI/demo/slider/nonlinear.html | 58 + .../Scripts/EasyUI/demo/slider/rule.html | 21 + .../Scripts/EasyUI/demo/slider/vertical.html | 25 + .../EasyUI/demo/splitbutton/actions.html | 64 + .../EasyUI/demo/splitbutton/basic.html | 61 + .../Scripts/EasyUI/demo/tabs/_content.html | 18 + .../Scripts/EasyUI/demo/tabs/autoheight.html | 36 + .../Scripts/EasyUI/demo/tabs/basic.html | 36 + .../Scripts/EasyUI/demo/tabs/dropdown.html | 55 + .../Scripts/EasyUI/demo/tabs/fixedwidth.html | 37 + .../Scripts/EasyUI/demo/tabs/hover.html | 46 + .../Scripts/EasyUI/demo/tabs/images/modem.png | Bin 0 -> 1633 bytes .../Scripts/EasyUI/demo/tabs/images/pda.png | Bin 0 -> 1787 bytes .../EasyUI/demo/tabs/images/scanner.png | Bin 0 -> 2600 bytes .../EasyUI/demo/tabs/images/tablet.png | Bin 0 -> 2505 bytes .../Scripts/EasyUI/demo/tabs/nestedtabs.html | 54 + .../Scripts/EasyUI/demo/tabs/striptools.html | 39 + .../Scripts/EasyUI/demo/tabs/tabimage.html | 41 + .../Scripts/EasyUI/demo/tabs/tabposition.html | 45 + .../Scripts/EasyUI/demo/tabs/tabstools.html | 41 + .../Scripts/EasyUI/demo/tabs/tree_data1.json | 49 + .../EasyUI/demo/timespinner/actions.html | 38 + .../EasyUI/demo/timespinner/basic.html | 18 + .../EasyUI/demo/timespinner/range.html | 20 + .../Scripts/EasyUI/demo/tooltip/_content.html | 18 + .../Scripts/EasyUI/demo/tooltip/_dialog.html | 23 + .../Scripts/EasyUI/demo/tooltip/ajax.html | 32 + .../Scripts/EasyUI/demo/tooltip/basic.html | 20 + .../EasyUI/demo/tooltip/customcontent.html | 32 + .../EasyUI/demo/tooltip/customstyle.html | 52 + .../Scripts/EasyUI/demo/tooltip/position.html | 34 + .../Scripts/EasyUI/demo/tooltip/toolbar.html | 40 + .../EasyUI/demo/tooltip/tooltipdialog.html | 44 + .../Scripts/EasyUI/demo/tree/actions.html | 47 + .../Scripts/EasyUI/demo/tree/animation.html | 20 + .../Scripts/EasyUI/demo/tree/basic.html | 53 + .../Scripts/EasyUI/demo/tree/checkbox.html | 37 + .../Scripts/EasyUI/demo/tree/contextmenu.html | 65 + .../Scripts/EasyUI/demo/tree/dnd.html | 20 + .../Scripts/EasyUI/demo/tree/editable.html | 27 + .../Scripts/EasyUI/demo/tree/formatting.html | 32 + .../Scripts/EasyUI/demo/tree/icons.html | 20 + .../Scripts/EasyUI/demo/tree/lazyload.html | 82 + .../Scripts/EasyUI/demo/tree/lines.html | 20 + .../Scripts/EasyUI/demo/tree/tree_data1.json | 49 + .../Scripts/EasyUI/demo/tree/tree_data2.json | 61 + .../Scripts/EasyUI/demo/treegrid/actions.html | 64 + .../Scripts/EasyUI/demo/treegrid/basic.html | 34 + .../demo/treegrid/clientpagination.html | 92 + .../EasyUI/demo/treegrid/contextmenu.html | 104 + .../EasyUI/demo/treegrid/editable.html | 93 + .../Scripts/EasyUI/demo/treegrid/footer.html | 55 + .../Scripts/EasyUI/demo/treegrid/reports.html | 49 + .../EasyUI/demo/treegrid/treegrid_data1.json | 73 + .../EasyUI/demo/treegrid/treegrid_data2.json | 11 + .../EasyUI/demo/treegrid/treegrid_data3.json | 13 + .../EasyUI/demo/validatebox/basic.html | 50 + .../demo/validatebox/customtooltip.html | 95 + .../Scripts/EasyUI/demo/window/basic.html | 23 + .../EasyUI/demo/window/customtools.html | 30 + .../EasyUI/demo/window/inlinewindow.html | 26 + .../EasyUI/demo/window/modalwindow.html | 24 + .../EasyUI/demo/window/windowlayout.html | 33 + .../MESWebSite/Scripts/EasyUI/easyloader.js | 190 + .../Scripts/EasyUI/jquery-1.8.0.min.js | 2 + .../Scripts/EasyUI/jquery.easyui.min.js | 12873 +++++++++++ .../MESWebSite/Scripts/EasyUI/jquery.min.js | 6 + .../MESWebSite/Scripts/EasyUI/licence_gpl.txt | 674 + .../Scripts/EasyUI/license_commercial.txt | 16 + .../Scripts/EasyUI/locale/easyui-lang-af.js | 51 + .../Scripts/EasyUI/locale/easyui-lang-ar.js | 52 + .../Scripts/EasyUI/locale/easyui-lang-bg.js | 51 + .../Scripts/EasyUI/locale/easyui-lang-ca.js | 51 + .../Scripts/EasyUI/locale/easyui-lang-cs.js | 51 + .../Scripts/EasyUI/locale/easyui-lang-cz.js | 51 + .../Scripts/EasyUI/locale/easyui-lang-da.js | 51 + .../Scripts/EasyUI/locale/easyui-lang-de.js | 70 + .../Scripts/EasyUI/locale/easyui-lang-el.js | 52 + .../Scripts/EasyUI/locale/easyui-lang-en.js | 52 + .../Scripts/EasyUI/locale/easyui-lang-es.js | 52 + .../Scripts/EasyUI/locale/easyui-lang-fr.js | 51 + .../Scripts/EasyUI/locale/easyui-lang-it.js | 52 + .../Scripts/EasyUI/locale/easyui-lang-jp.js | 52 + .../Scripts/EasyUI/locale/easyui-lang-nl.js | 51 + .../Scripts/EasyUI/locale/easyui-lang-pl.js | 52 + .../EasyUI/locale/easyui-lang-pt_BR.js | 52 + .../Scripts/EasyUI/locale/easyui-lang-ru.js | 53 + .../EasyUI/locale/easyui-lang-sv_SE.js | 52 + .../Scripts/EasyUI/locale/easyui-lang-tr.js | 66 + .../EasyUI/locale/easyui-lang-zh_CN.js | 70 + .../EasyUI/locale/easyui-lang-zh_TW.js | 52 + .../EasyUI/plugins/jquery.accordion.js | 320 + .../Scripts/EasyUI/plugins/jquery.calendar.js | 379 + .../Scripts/EasyUI/plugins/jquery.combo.js | 461 + .../Scripts/EasyUI/plugins/jquery.combobox.js | 443 + .../EasyUI/plugins/jquery.combogrid.js | 263 + .../EasyUI/plugins/jquery.combotree.js | 173 + .../Scripts/EasyUI/plugins/jquery.datagrid.js | 2403 ++ .../Scripts/EasyUI/plugins/jquery.datebox.js | 177 + .../EasyUI/plugins/jquery.datetimebox.js | 164 + .../Scripts/EasyUI/plugins/jquery.dialog.js | 139 + .../EasyUI/plugins/jquery.draggable.js | 283 + .../EasyUI/plugins/jquery.droppable.js | 62 + .../Scripts/EasyUI/plugins/jquery.form.js | 297 + .../Scripts/EasyUI/plugins/jquery.layout.js | 432 + .../EasyUI/plugins/jquery.linkbutton.js | 145 + .../Scripts/EasyUI/plugins/jquery.menu.js | 437 + .../EasyUI/plugins/jquery.menubutton.js | 134 + .../Scripts/EasyUI/plugins/jquery.messager.js | 215 + .../EasyUI/plugins/jquery.numberbox.js | 243 + .../EasyUI/plugins/jquery.numberspinner.js | 73 + .../EasyUI/plugins/jquery.pagination.js | 282 + .../Scripts/EasyUI/plugins/jquery.panel.js | 541 + .../Scripts/EasyUI/plugins/jquery.parser.js | 216 + .../EasyUI/plugins/jquery.progressbar.js | 78 + .../EasyUI/plugins/jquery.propertygrid.js | 235 + .../EasyUI/plugins/jquery.resizable.js | 170 + .../EasyUI/plugins/jquery.searchbox.js | 228 + .../Scripts/EasyUI/plugins/jquery.slider.js | 278 + .../Scripts/EasyUI/plugins/jquery.spinner.js | 171 + .../EasyUI/plugins/jquery.splitbutton.js | 49 + .../Scripts/EasyUI/plugins/jquery.tabs.js | 608 + .../EasyUI/plugins/jquery.timespinner.js | 185 + .../Scripts/EasyUI/plugins/jquery.tooltip.js | 202 + .../Scripts/EasyUI/plugins/jquery.tree.js | 1172 + .../Scripts/EasyUI/plugins/jquery.treegrid.js | 1075 + .../EasyUI/plugins/jquery.validatebox.js | 224 + .../Scripts/EasyUI/plugins/jquery.window.js | 276 + BBMPTMes/MESWebSite/Scripts/EasyUI/readme.txt | 4 + .../Scripts/EasyUI/src/easyloader.js | 407 + .../Scripts/EasyUI/src/jquery.accordion.js | 412 + .../Scripts/EasyUI/src/jquery.calendar.js | 450 + .../Scripts/EasyUI/src/jquery.combobox.js | 553 + .../Scripts/EasyUI/src/jquery.datebox.js | 253 + .../Scripts/EasyUI/src/jquery.draggable.js | 420 + .../Scripts/EasyUI/src/jquery.droppable.js | 81 + .../Scripts/EasyUI/src/jquery.form.js | 392 + .../Scripts/EasyUI/src/jquery.linkbutton.js | 194 + .../Scripts/EasyUI/src/jquery.menu.js | 559 + .../Scripts/EasyUI/src/jquery.parser.js | 265 + .../Scripts/EasyUI/src/jquery.progressbar.js | 101 + .../Scripts/EasyUI/src/jquery.propertygrid.js | 317 + .../Scripts/EasyUI/src/jquery.resizable.js | 247 + .../Scripts/EasyUI/src/jquery.slider.js | 404 + .../Scripts/EasyUI/src/jquery.tabs.js | 792 + .../Scripts/EasyUI/src/jquery.window.js | 412 + .../Scripts/EasyUI/themes/black/accordion.css | 41 + .../Scripts/EasyUI/themes/black/calendar.css | 197 + .../Scripts/EasyUI/themes/black/combo.css | 58 + .../Scripts/EasyUI/themes/black/combobox.css | 24 + .../Scripts/EasyUI/themes/black/datagrid.css | 260 + .../Scripts/EasyUI/themes/black/datebox.css | 36 + .../Scripts/EasyUI/themes/black/dialog.css | 30 + .../Scripts/EasyUI/themes/black/easyui.css | 2403 ++ .../themes/black/images/accordion_arrows.png | Bin 0 -> 122 bytes .../EasyUI/themes/black/images/blank.gif | Bin 0 -> 43 bytes .../themes/black/images/calendar_arrows.png | Bin 0 -> 173 bytes .../themes/black/images/combo_arrow.png | Bin 0 -> 100 bytes .../themes/black/images/datagrid_icons.png | Bin 0 -> 210 bytes .../themes/black/images/datebox_arrow.png | Bin 0 -> 626 bytes .../themes/black/images/layout_arrows.png | Bin 0 -> 179 bytes .../themes/black/images/linkbutton_bg.png | Bin 0 -> 1274 bytes .../EasyUI/themes/black/images/loading.gif | Bin 0 -> 1737 bytes .../themes/black/images/menu_arrows.png | Bin 0 -> 134 bytes .../themes/black/images/messager_icons.png | Bin 0 -> 6116 bytes .../themes/black/images/pagination_icons.png | Bin 0 -> 339 bytes .../themes/black/images/panel_tools.png | Bin 0 -> 184 bytes .../themes/black/images/searchbox_button.png | Bin 0 -> 813 bytes .../themes/black/images/slider_handle.png | Bin 0 -> 863 bytes .../themes/black/images/spinner_arrows.png | Bin 0 -> 112 bytes .../EasyUI/themes/black/images/tabs_icons.png | Bin 0 -> 144 bytes .../EasyUI/themes/black/images/tree_icons.png | Bin 0 -> 3086 bytes .../black/images/validatebox_arrows.png | Bin 0 -> 166 bytes .../black/images/validatebox_warning.png | Bin 0 -> 921 bytes .../Scripts/EasyUI/themes/black/layout.css | 91 + .../EasyUI/themes/black/linkbutton.css | 197 + .../Scripts/EasyUI/themes/black/menu.css | 109 + .../EasyUI/themes/black/menubutton.css | 94 + .../Scripts/EasyUI/themes/black/messager.css | 40 + .../Scripts/EasyUI/themes/black/numberbox.css | 6 + .../EasyUI/themes/black/pagination.css | 71 + .../Scripts/EasyUI/themes/black/panel.css | 131 + .../EasyUI/themes/black/progressbar.css | 32 + .../EasyUI/themes/black/propertygrid.css | 28 + .../Scripts/EasyUI/themes/black/searchbox.css | 75 + .../Scripts/EasyUI/themes/black/slider.css | 100 + .../Scripts/EasyUI/themes/black/spinner.css | 59 + .../EasyUI/themes/black/splitbutton.css | 12 + .../Scripts/EasyUI/themes/black/tabs.css | 356 + .../Scripts/EasyUI/themes/black/textbox.css | 4 + .../Scripts/EasyUI/themes/black/tooltip.css | 100 + .../Scripts/EasyUI/themes/black/tree.css | 157 + .../EasyUI/themes/black/validatebox.css | 8 + .../Scripts/EasyUI/themes/black/window.css | 87 + .../EasyUI/themes/bootstrap/accordion.css | 41 + .../EasyUI/themes/bootstrap/calendar.css | 197 + .../Scripts/EasyUI/themes/bootstrap/combo.css | 58 + .../EasyUI/themes/bootstrap/combobox.css | 24 + .../EasyUI/themes/bootstrap/datagrid.css | 260 + .../EasyUI/themes/bootstrap/datebox.css | 36 + .../EasyUI/themes/bootstrap/dialog.css | 30 + .../EasyUI/themes/bootstrap/easyui.css | 2422 ++ .../bootstrap/images/accordion_arrows.png | Bin 0 -> 2855 bytes .../EasyUI/themes/bootstrap/images/blank.gif | Bin 0 -> 43 bytes .../bootstrap/images/calendar_arrows.png | Bin 0 -> 173 bytes .../themes/bootstrap/images/combo_arrow.png | Bin 0 -> 117 bytes .../bootstrap/images/datagrid_icons.png | Bin 0 -> 220 bytes .../themes/bootstrap/images/datebox_arrow.png | Bin 0 -> 626 bytes .../themes/bootstrap/images/layout_arrows.png | Bin 0 -> 319 bytes .../themes/bootstrap/images/linkbutton_bg.png | Bin 0 -> 1274 bytes .../themes/bootstrap/images/loading.gif | Bin 0 -> 1737 bytes .../themes/bootstrap/images/menu_arrows.png | Bin 0 -> 160 bytes .../bootstrap/images/messager_icons.png | Bin 0 -> 6116 bytes .../bootstrap/images/pagination_icons.png | Bin 0 -> 628 bytes .../themes/bootstrap/images/panel_tools.png | Bin 0 -> 194 bytes .../bootstrap/images/searchbox_button.png | Bin 0 -> 813 bytes .../themes/bootstrap/images/slider_handle.png | Bin 0 -> 863 bytes .../bootstrap/images/spinner_arrows.png | Bin 0 -> 115 bytes .../themes/bootstrap/images/tabs_icons.png | Bin 0 -> 150 bytes .../themes/bootstrap/images/tree_icons.png | Bin 0 -> 3115 bytes .../bootstrap/images/validatebox_arrows.png | Bin 0 -> 166 bytes .../bootstrap/images/validatebox_warning.png | Bin 0 -> 921 bytes .../EasyUI/themes/bootstrap/layout.css | 91 + .../EasyUI/themes/bootstrap/linkbutton.css | 197 + .../Scripts/EasyUI/themes/bootstrap/menu.css | 109 + .../EasyUI/themes/bootstrap/menubutton.css | 94 + .../EasyUI/themes/bootstrap/messager.css | 40 + .../EasyUI/themes/bootstrap/numberbox.css | 6 + .../EasyUI/themes/bootstrap/pagination.css | 71 + .../Scripts/EasyUI/themes/bootstrap/panel.css | 131 + .../EasyUI/themes/bootstrap/progressbar.css | 32 + .../EasyUI/themes/bootstrap/propertygrid.css | 28 + .../EasyUI/themes/bootstrap/searchbox.css | 75 + .../EasyUI/themes/bootstrap/slider.css | 100 + .../EasyUI/themes/bootstrap/spinner.css | 59 + .../EasyUI/themes/bootstrap/splitbutton.css | 12 + .../Scripts/EasyUI/themes/bootstrap/tabs.css | 356 + .../EasyUI/themes/bootstrap/textbox.css | 4 + .../EasyUI/themes/bootstrap/tooltip.css | 100 + .../Scripts/EasyUI/themes/bootstrap/tree.css | 157 + .../EasyUI/themes/bootstrap/validatebox.css | 8 + .../EasyUI/themes/bootstrap/window.css | 87 + .../EasyUI/themes/default/accordion.css | 41 + .../EasyUI/themes/default/calendar.css | 197 + .../Scripts/EasyUI/themes/default/combo.css | 58 + .../EasyUI/themes/default/combobox.css | 24 + .../EasyUI/themes/default/datagrid.css | 260 + .../Scripts/EasyUI/themes/default/datebox.css | 36 + .../Scripts/EasyUI/themes/default/dialog.css | 30 + .../Scripts/EasyUI/themes/default/easyui.css | 2415 ++ .../default/images/accordion_arrows.png | Bin 0 -> 2880 bytes .../EasyUI/themes/default/images/blank.gif | Bin 0 -> 43 bytes .../themes/default/images/calendar_arrows.png | Bin 0 -> 173 bytes .../themes/default/images/combo_arrow.png | Bin 0 -> 117 bytes .../themes/default/images/datagrid_icons.png | Bin 0 -> 220 bytes .../themes/default/images/datebox_arrow.png | Bin 0 -> 626 bytes .../EasyUI/themes/default/images/doct.png | Bin 0 -> 3285 bytes .../themes/default/images/layout_arrows.png | Bin 0 -> 2921 bytes .../themes/default/images/linkbutton_bg.png | Bin 0 -> 1274 bytes .../EasyUI/themes/default/images/loading.gif | Bin 0 -> 1737 bytes .../themes/default/images/menu_arrows.png | Bin 0 -> 160 bytes .../themes/default/images/messager_icons.png | Bin 0 -> 6116 bytes .../EasyUI/themes/default/images/org.gif | Bin 0 -> 233 bytes .../default/images/pagination_icons.png | Bin 0 -> 628 bytes .../themes/default/images/panel_tools.png | Bin 0 -> 852 bytes .../default/images/searchbox_button.png | Bin 0 -> 813 bytes .../themes/default/images/slider_handle.png | Bin 0 -> 863 bytes .../themes/default/images/spinner_arrows.png | Bin 0 -> 115 bytes .../themes/default/images/tabs_icons.png | Bin 0 -> 2901 bytes .../themes/default/images/tree_icons.png | Bin 0 -> 3115 bytes .../default/images/validatebox_arrows.png | Bin 0 -> 166 bytes .../default/images/validatebox_warning.png | Bin 0 -> 921 bytes .../Scripts/EasyUI/themes/default/layout.css | 91 + .../EasyUI/themes/default/linkbutton.css | 197 + .../Scripts/EasyUI/themes/default/menu.css | 109 + .../EasyUI/themes/default/menubutton.css | 94 + .../EasyUI/themes/default/messager.css | 40 + .../EasyUI/themes/default/numberbox.css | 6 + .../EasyUI/themes/default/pagination.css | 71 + .../Scripts/EasyUI/themes/default/panel.css | 131 + .../EasyUI/themes/default/progressbar.css | 32 + .../EasyUI/themes/default/propertygrid.css | 28 + .../EasyUI/themes/default/searchbox.css | 75 + .../Scripts/EasyUI/themes/default/slider.css | 100 + .../Scripts/EasyUI/themes/default/spinner.css | 59 + .../EasyUI/themes/default/splitbutton.css | 12 + .../Scripts/EasyUI/themes/default/tabs.css | 356 + .../Scripts/EasyUI/themes/default/textbox.css | 4 + .../Scripts/EasyUI/themes/default/tooltip.css | 100 + .../Scripts/EasyUI/themes/default/tree.css | 157 + .../EasyUI/themes/default/validatebox.css | 8 + .../Scripts/EasyUI/themes/default/window.css | 87 + .../Scripts/EasyUI/themes/gray/accordion.css | 41 + .../Scripts/EasyUI/themes/gray/calendar.css | 197 + .../Scripts/EasyUI/themes/gray/combo.css | 58 + .../Scripts/EasyUI/themes/gray/combobox.css | 24 + .../Scripts/EasyUI/themes/gray/datagrid.css | 260 + .../Scripts/EasyUI/themes/gray/datebox.css | 36 + .../Scripts/EasyUI/themes/gray/dialog.css | 30 + .../Scripts/EasyUI/themes/gray/easyui.css | 2403 ++ .../themes/gray/images/accordion_arrows.png | Bin 0 -> 125 bytes .../EasyUI/themes/gray/images/blank.gif | Bin 0 -> 43 bytes .../themes/gray/images/calendar_arrows.png | Bin 0 -> 173 bytes .../EasyUI/themes/gray/images/combo_arrow.png | Bin 0 -> 103 bytes .../themes/gray/images/datagrid_icons.png | Bin 0 -> 243 bytes .../themes/gray/images/datebox_arrow.png | Bin 0 -> 626 bytes .../themes/gray/images/layout_arrows.png | Bin 0 -> 181 bytes .../themes/gray/images/linkbutton_bg.png | Bin 0 -> 1274 bytes .../EasyUI/themes/gray/images/loading.gif | Bin 0 -> 1737 bytes .../EasyUI/themes/gray/images/menu_arrows.png | Bin 0 -> 160 bytes .../themes/gray/images/messager_icons.png | Bin 0 -> 6116 bytes .../themes/gray/images/pagination_icons.png | Bin 0 -> 466 bytes .../EasyUI/themes/gray/images/panel_tools.png | Bin 0 -> 191 bytes .../themes/gray/images/searchbox_button.png | Bin 0 -> 813 bytes .../themes/gray/images/slider_handle.png | Bin 0 -> 863 bytes .../themes/gray/images/spinner_arrows.png | Bin 0 -> 141 bytes .../EasyUI/themes/gray/images/tabs_icons.png | Bin 0 -> 144 bytes .../EasyUI/themes/gray/images/tree_icons.png | Bin 0 -> 3115 bytes .../themes/gray/images/validatebox_arrows.png | Bin 0 -> 166 bytes .../gray/images/validatebox_warning.png | Bin 0 -> 921 bytes .../Scripts/EasyUI/themes/gray/layout.css | 91 + .../Scripts/EasyUI/themes/gray/linkbutton.css | 197 + .../Scripts/EasyUI/themes/gray/menu.css | 109 + .../Scripts/EasyUI/themes/gray/menubutton.css | 94 + .../Scripts/EasyUI/themes/gray/messager.css | 40 + .../Scripts/EasyUI/themes/gray/numberbox.css | 6 + .../Scripts/EasyUI/themes/gray/pagination.css | 71 + .../Scripts/EasyUI/themes/gray/panel.css | 131 + .../EasyUI/themes/gray/progressbar.css | 32 + .../EasyUI/themes/gray/propertygrid.css | 28 + .../Scripts/EasyUI/themes/gray/searchbox.css | 75 + .../Scripts/EasyUI/themes/gray/slider.css | 100 + .../Scripts/EasyUI/themes/gray/spinner.css | 59 + .../EasyUI/themes/gray/splitbutton.css | 12 + .../Scripts/EasyUI/themes/gray/tabs.css | 356 + .../Scripts/EasyUI/themes/gray/textbox.css | 4 + .../Scripts/EasyUI/themes/gray/tooltip.css | 100 + .../Scripts/EasyUI/themes/gray/tree.css | 157 + .../EasyUI/themes/gray/validatebox.css | 8 + .../Scripts/EasyUI/themes/gray/window.css | 87 + .../MESWebSite/Scripts/EasyUI/themes/icon.css | 103 + .../Scripts/EasyUI/themes/icons/01.png | Bin 0 -> 2018 bytes .../Scripts/EasyUI/themes/icons/02.png | Bin 0 -> 1185 bytes .../Scripts/EasyUI/themes/icons/03.png | Bin 0 -> 1834 bytes .../Scripts/EasyUI/themes/icons/04.png | Bin 0 -> 2350 bytes .../Scripts/EasyUI/themes/icons/05.png | Bin 0 -> 1507 bytes .../Scripts/EasyUI/themes/icons/back.png | Bin 0 -> 912 bytes .../Scripts/EasyUI/themes/icons/blank.gif | Bin 0 -> 43 bytes .../Scripts/EasyUI/themes/icons/cancel.png | Bin 0 -> 1133 bytes .../Scripts/EasyUI/themes/icons/cut.png | Bin 0 -> 1024 bytes .../Scripts/EasyUI/themes/icons/edit_add.png | Bin 0 -> 1088 bytes .../EasyUI/themes/icons/edit_remove.png | Bin 0 -> 625 bytes .../Scripts/EasyUI/themes/icons/filesave.png | Bin 0 -> 898 bytes .../Scripts/EasyUI/themes/icons/filter.png | Bin 0 -> 305 bytes .../Scripts/EasyUI/themes/icons/help.png | Bin 0 -> 1187 bytes .../EasyUI/themes/icons/large_chart.png | Bin 0 -> 1669 bytes .../EasyUI/themes/icons/large_clipart.png | Bin 0 -> 1727 bytes .../EasyUI/themes/icons/large_picture.png | Bin 0 -> 1667 bytes .../EasyUI/themes/icons/large_shapes.png | Bin 0 -> 1318 bytes .../EasyUI/themes/icons/large_smartart.png | Bin 0 -> 1336 bytes .../Scripts/EasyUI/themes/icons/mini_add.png | Bin 0 -> 244 bytes .../Scripts/EasyUI/themes/icons/mini_edit.png | Bin 0 -> 161 bytes .../EasyUI/themes/icons/mini_refresh.png | Bin 0 -> 160 bytes .../EasyUI/themes/icons/mysearch-2.png | Bin 0 -> 3416 bytes .../EasyUI/themes/icons/mysearch-3.png | Bin 0 -> 3198 bytes .../Scripts/EasyUI/themes/icons/mysearch.png | Bin 0 -> 3380 bytes .../Scripts/EasyUI/themes/icons/no.png | Bin 0 -> 922 bytes .../Scripts/EasyUI/themes/icons/ok.png | Bin 0 -> 883 bytes .../Scripts/EasyUI/themes/icons/pencil.png | Bin 0 -> 713 bytes .../Scripts/EasyUI/themes/icons/print.png | Bin 0 -> 1057 bytes .../Scripts/EasyUI/themes/icons/redo.png | Bin 0 -> 708 bytes .../Scripts/EasyUI/themes/icons/reload.png | Bin 0 -> 1045 bytes .../Scripts/EasyUI/themes/icons/search-2.png | Bin 0 -> 813 bytes .../Scripts/EasyUI/themes/icons/search.png | Bin 0 -> 813 bytes .../Scripts/EasyUI/themes/icons/sum.png | Bin 0 -> 289 bytes .../Scripts/EasyUI/themes/icons/tip.png | Bin 0 -> 743 bytes .../Scripts/EasyUI/themes/icons/undo.png | Bin 0 -> 707 bytes .../Scripts/EasyUI/themes/metro/accordion.css | 41 + .../Scripts/EasyUI/themes/metro/calendar.css | 197 + .../Scripts/EasyUI/themes/metro/combo.css | 58 + .../Scripts/EasyUI/themes/metro/combobox.css | 24 + .../Scripts/EasyUI/themes/metro/datagrid.css | 254 + .../Scripts/EasyUI/themes/metro/datebox.css | 36 + .../Scripts/EasyUI/themes/metro/dialog.css | 30 + .../Scripts/EasyUI/themes/metro/easyui.css | 2349 ++ .../themes/metro/images/accordion_arrows.png | Bin 0 -> 2855 bytes .../EasyUI/themes/metro/images/blank.gif | Bin 0 -> 43 bytes .../themes/metro/images/calendar_arrows.png | Bin 0 -> 173 bytes .../themes/metro/images/combo_arrow.png | Bin 0 -> 117 bytes .../themes/metro/images/datagrid_icons.png | Bin 0 -> 220 bytes .../themes/metro/images/datebox_arrow.png | Bin 0 -> 626 bytes .../themes/metro/images/layout_arrows.png | Bin 0 -> 319 bytes .../themes/metro/images/linkbutton_bg.png | Bin 0 -> 1274 bytes .../EasyUI/themes/metro/images/loading.gif | Bin 0 -> 1737 bytes .../themes/metro/images/menu_arrows.png | Bin 0 -> 160 bytes .../themes/metro/images/messager_icons.png | Bin 0 -> 6116 bytes .../themes/metro/images/pagination_icons.png | Bin 0 -> 628 bytes .../themes/metro/images/panel_tools.png | Bin 0 -> 194 bytes .../themes/metro/images/searchbox_button.png | Bin 0 -> 813 bytes .../themes/metro/images/slider_handle.png | Bin 0 -> 863 bytes .../themes/metro/images/spinner_arrows.png | Bin 0 -> 115 bytes .../EasyUI/themes/metro/images/tabs_icons.png | Bin 0 -> 150 bytes .../EasyUI/themes/metro/images/tree_icons.png | Bin 0 -> 3115 bytes .../metro/images/validatebox_arrows.png | Bin 0 -> 166 bytes .../metro/images/validatebox_warning.png | Bin 0 -> 921 bytes .../Scripts/EasyUI/themes/metro/layout.css | 91 + .../EasyUI/themes/metro/linkbutton.css | 197 + .../Scripts/EasyUI/themes/metro/menu.css | 109 + .../EasyUI/themes/metro/menubutton.css | 94 + .../Scripts/EasyUI/themes/metro/messager.css | 40 + .../Scripts/EasyUI/themes/metro/numberbox.css | 6 + .../EasyUI/themes/metro/pagination.css | 71 + .../Scripts/EasyUI/themes/metro/panel.css | 125 + .../EasyUI/themes/metro/progressbar.css | 32 + .../EasyUI/themes/metro/propertygrid.css | 28 + .../Scripts/EasyUI/themes/metro/searchbox.css | 75 + .../Scripts/EasyUI/themes/metro/slider.css | 100 + .../Scripts/EasyUI/themes/metro/spinner.css | 59 + .../EasyUI/themes/metro/splitbutton.css | 12 + .../Scripts/EasyUI/themes/metro/tabs.css | 320 + .../Scripts/EasyUI/themes/metro/textbox.css | 4 + .../Scripts/EasyUI/themes/metro/tooltip.css | 100 + .../Scripts/EasyUI/themes/metro/tree.css | 157 + .../EasyUI/themes/metro/validatebox.css | 8 + .../Scripts/EasyUI/themes/metro/window.css | 81 + BBMPTMes/MESWebSite/Scripts/MyJs.js | 13 + BBMPTMes/MESWebSite/Scripts/cart.json | 49 + BBMPTMes/MESWebSite/Scripts/exporting.js | 27 + BBMPTMes/MESWebSite/Scripts/highcharts.js | 402 + .../Scripts/jquery-1.7.1.intellisense.js | 2521 +++ BBMPTMes/MESWebSite/Scripts/jquery-1.7.1.js | 9266 ++++++++ .../MESWebSite/Scripts/jquery-1.7.1.min.js | 4 + .../MESWebSite/Scripts/jquery-1.8.0.min.js | 5 + .../jquery-easyui-1.4.3/datagrid-dnd.js | 180 + .../jquery-easyui-1.4.3/jquery.easyui.min.js | 18583 ++++++++++++++++ .../jquery-easyui-1.4.3/jquery.edatagrid.js | 514 + .../Scripts/jquery-easyui-1.4.3/jquery.min.js | 3177 +++ .../locale/easyui-lang-zh_CN.js | 66 + .../jquery-easyui-1.4.3/themes/color.css | 112 + .../jquery-easyui-1.4.3/themes/icon.css | 118 + .../themes/icons/accordion_arrows.png | Bin 0 -> 122 bytes .../jquery-easyui-1.4.3/themes/icons/back.png | Bin 0 -> 912 bytes .../themes/icons/blank.gif | Bin 0 -> 43 bytes .../themes/icons/brick_16px.png | Bin 0 -> 14982 bytes .../themes/icons/calendar_arrows.png | Bin 0 -> 173 bytes .../themes/icons/cancel.png | Bin 0 -> 1133 bytes .../themes/icons/clear.png | Bin 0 -> 779 bytes .../themes/icons/combo_arrow.png | Bin 0 -> 100 bytes .../themes/icons/computer_17.png | Bin 0 -> 1611 bytes .../jquery-easyui-1.4.3/themes/icons/cut.png | Bin 0 -> 1024 bytes .../themes/icons/datagrid_icons.png | Bin 0 -> 210 bytes .../themes/icons/datebox_arrow.png | Bin 0 -> 626 bytes .../themes/icons/dialog_shutdown_16px.png | Bin 0 -> 1445 bytes .../themes/icons/dialog_shutdown_16px1.png | Bin 0 -> 1774 bytes .../themes/icons/edit_add.png | Bin 0 -> 1088 bytes .../themes/icons/edit_remove.png | Bin 0 -> 625 bytes .../themes/icons/filesave.png | Bin 0 -> 898 bytes .../themes/icons/filter.png | Bin 0 -> 305 bytes .../themes/icons/folder_edit_16px.png | Bin 0 -> 1680 bytes .../jquery-easyui-1.4.3/themes/icons/help.png | Bin 0 -> 1187 bytes .../themes/icons/large_chart.png | Bin 0 -> 1669 bytes .../themes/icons/large_clipart.png | Bin 0 -> 1727 bytes .../themes/icons/large_picture.png | Bin 0 -> 1667 bytes .../themes/icons/large_shapes.png | Bin 0 -> 1318 bytes .../themes/icons/large_smartart.png | Bin 0 -> 1336 bytes .../themes/icons/layout_arrows.png | Bin 0 -> 179 bytes .../themes/icons/linkbutton_bg.png | Bin 0 -> 1274 bytes .../themes/icons/list_12.png | Bin 0 -> 1202 bytes .../themes/icons/loading.gif | Bin 0 -> 1737 bytes .../jquery-easyui-1.4.3/themes/icons/lock.png | Bin 0 -> 311 bytes .../jquery-easyui-1.4.3/themes/icons/man.png | Bin 0 -> 244 bytes .../themes/icons/menu_arrows.png | Bin 0 -> 134 bytes .../themes/icons/messager_icons.png | Bin 0 -> 6116 bytes .../themes/icons/mini_add.png | Bin 0 -> 244 bytes .../themes/icons/mini_edit.png | Bin 0 -> 161 bytes .../themes/icons/mini_refresh.png | Bin 0 -> 160 bytes .../jquery-easyui-1.4.3/themes/icons/more.png | Bin 0 -> 110 bytes .../jquery-easyui-1.4.3/themes/icons/no.png | Bin 0 -> 922 bytes .../jquery-easyui-1.4.3/themes/icons/ok.png | Bin 0 -> 883 bytes .../themes/icons/pagination_icons.png | Bin 0 -> 339 bytes .../themes/icons/panel_tools.png | Bin 0 -> 184 bytes .../themes/icons/pencil.png | Bin 0 -> 713 bytes .../themes/icons/print.png | Bin 0 -> 1057 bytes .../themes/icons/puzzle_15.png | Bin 0 -> 1299 bytes .../jquery-easyui-1.4.3/themes/icons/redo.png | Bin 0 -> 708 bytes .../themes/icons/reload.png | Bin 0 -> 1045 bytes .../themes/icons/search.png | Bin 0 -> 813 bytes .../themes/icons/searchbox_button.png | Bin 0 -> 813 bytes .../themes/icons/slider_handle.png | Bin 0 -> 863 bytes .../themes/icons/spinner_arrows.png | Bin 0 -> 112 bytes .../jquery-easyui-1.4.3/themes/icons/sum.png | Bin 0 -> 289 bytes .../themes/icons/tabs_icons.png | Bin 0 -> 144 bytes .../jquery-easyui-1.4.3/themes/icons/tip.png | Bin 0 -> 743 bytes .../themes/icons/tree_icons.png | Bin 0 -> 3086 bytes .../jquery-easyui-1.4.3/themes/icons/undo.png | Bin 0 -> 707 bytes .../themes/icons/validatebox_warning.png | Bin 0 -> 921 bytes .../themes/metro/easyui.css | 2807 +++ .../themes/metro/images/accordion_arrows.png | Bin 0 -> 125 bytes .../themes/metro/images/blank.gif | Bin 0 -> 43 bytes .../themes/metro/images/calendar_arrows.png | Bin 0 -> 173 bytes .../themes/metro/images/combo_arrow.png | Bin 0 -> 103 bytes .../themes/metro/images/datagrid_icons.png | Bin 0 -> 243 bytes .../themes/metro/images/datebox_arrow.png | Bin 0 -> 626 bytes .../themes/metro/images/layout_arrows.png | Bin 0 -> 181 bytes .../themes/metro/images/linkbutton_bg.png | Bin 0 -> 1274 bytes .../themes/metro/images/loading.gif | Bin 0 -> 1737 bytes .../themes/metro/images/menu_arrows.png | Bin 0 -> 160 bytes .../themes/metro/images/messager_icons.png | Bin 0 -> 6116 bytes .../themes/metro/images/pagination_icons.png | Bin 0 -> 466 bytes .../themes/metro/images/panel_tools.png | Bin 0 -> 191 bytes .../themes/metro/images/searchbox_button.png | Bin 0 -> 813 bytes .../themes/metro/images/slider_handle.png | Bin 0 -> 863 bytes .../themes/metro/images/spinner_arrows.png | Bin 0 -> 141 bytes .../themes/metro/images/tabs_icons.png | Bin 0 -> 144 bytes .../themes/metro/images/tree_icons.png | Bin 0 -> 3115 bytes .../metro/images/validatebox_warning.png | Bin 0 -> 921 bytes .../MESWebSite/Scripts/jquery.easyui.min.js | 11379 ++++++++++ .../MESWebSite/Service/SystemManager.ashx | 1 + .../MESWebSite/Service/SystemManager.ashx.cs | 65 + BBMPTMes/MESWebSite/Show/analysis.html | 1243 ++ .../Show/bootstrap/css/bootstrap-theme.css | 587 + .../bootstrap/css/bootstrap-theme.css.map | 1 + .../bootstrap/css/bootstrap-theme.min.css | 6 + .../bootstrap/css/bootstrap-theme.min.css.map | 1 + .../Show/bootstrap/css/bootstrap.css | 6757 ++++++ .../Show/bootstrap/css/bootstrap.css.map | 1 + .../Show/bootstrap/css/bootstrap.min.css | 6 + .../Show/bootstrap/css/bootstrap.min.css.map | 1 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../MESWebSite/Show/bootstrap/js/bootstrap.js | 2377 ++ .../Show/bootstrap/js/bootstrap.min.js | 7 + BBMPTMes/MESWebSite/Show/bootstrap/js/npm.js | 13 + BBMPTMes/MESWebSite/Show/echar/echarts.min.js | 45 + BBMPTMes/MESWebSite/SysImages/Basics/1.png | Bin 0 -> 17808 bytes BBMPTMes/MESWebSite/SysImages/Basics/15.gif | Bin 0 -> 10835 bytes BBMPTMes/MESWebSite/SysImages/Basics/2.png | Bin 0 -> 17831 bytes BBMPTMes/MESWebSite/SysImages/Basics/3.png | Bin 0 -> 17868 bytes BBMPTMes/MESWebSite/SysImages/Basics/4.png | Bin 0 -> 17871 bytes .../SysImages/Basics/5-121204193R1-50.gif | Bin 0 -> 2969 bytes BBMPTMes/MESWebSite/SysImages/Basics/5.png | Bin 0 -> 17857 bytes BBMPTMes/MESWebSite/SysImages/Basics/6.png | Bin 0 -> 2920 bytes BBMPTMes/MESWebSite/SysImages/Basics/7.png | Bin 0 -> 2976 bytes BBMPTMes/MESWebSite/SysImages/Basics/8.png | Bin 0 -> 2976 bytes BBMPTMes/MESWebSite/SysImages/Basics/9.png | Bin 0 -> 3014 bytes .../MESWebSite/SysImages/Basics/Dashboard.png | Bin 0 -> 9380 bytes .../MESWebSite/SysImages/Basics/Delete.png | Bin 0 -> 884 bytes .../MESWebSite/SysImages/Basics/Excel.png | Bin 0 -> 1449 bytes BBMPTMes/MESWebSite/SysImages/Basics/OK.png | Bin 0 -> 1634 bytes BBMPTMes/MESWebSite/SysImages/Basics/PDF.png | Bin 0 -> 1521 bytes .../MESWebSite/SysImages/Basics/Search.png | Bin 0 -> 1193 bytes .../MESWebSite/SysImages/Basics/Search1.png | Bin 0 -> 15610 bytes BBMPTMes/MESWebSite/SysImages/Basics/add.png | Bin 0 -> 1308 bytes .../MESWebSite/SysImages/Basics/archives.png | Bin 0 -> 1222 bytes .../MESWebSite/SysImages/Basics/banner.png | Bin 0 -> 2926 bytes .../MESWebSite/SysImages/Basics/broom.png | Bin 0 -> 1450 bytes .../MESWebSite/SysImages/Basics/camera.png | Bin 0 -> 7068 bytes .../SysImages/Basics/chukoucate.png | Bin 0 -> 3149 bytes .../SysImages/Basics/chukoulist.png | Bin 0 -> 3204 bytes .../MESWebSite/SysImages/Basics/delete1.png | Bin 0 -> 1202 bytes BBMPTMes/MESWebSite/SysImages/Basics/key.png | Bin 0 -> 2872 bytes .../MESWebSite/SysImages/Basics/listArt.png | Bin 0 -> 1152 bytes .../SysImages/Basics/loading-line.gif | Bin 0 -> 1900 bytes .../SysImages/Basics/loading-ring.gif | Bin 0 -> 1787 bytes .../SysImages/Basics/meirongcate.png | Bin 0 -> 3185 bytes .../SysImages/Basics/meironglist.png | Bin 0 -> 3189 bytes BBMPTMes/MESWebSite/SysImages/Basics/pen.png | Bin 0 -> 1466 bytes .../MESWebSite/SysImages/Basics/remai.png | Bin 0 -> 2916 bytes BBMPTMes/MESWebSite/SysImages/Basics/save.png | Bin 0 -> 867 bytes .../MESWebSite/SysImages/Basics/share.png | Bin 0 -> 900 bytes .../MESWebSite/SysImages/Basics/shejiao.png | Bin 0 -> 2918 bytes .../MESWebSite/SysImages/Basics/singleArt.png | Bin 0 -> 1134 bytes .../SysImages/Basics/system_run.png | Bin 0 -> 14779 bytes BBMPTMes/MESWebSite/SysImages/Basics/text.png | Bin 0 -> 317 bytes BBMPTMes/MESWebSite/SysImages/Basics/undo.png | Bin 0 -> 1261 bytes .../MESWebSite/SysImages/Basics/upload.png | Bin 0 -> 1359 bytes .../MESWebSite/SysImages/Basics/user_male.png | Bin 0 -> 7393 bytes .../MESWebSite/SysImages/Basics/yejiao.png | Bin 0 -> 2913 bytes .../SysImages/Basics/yiliaocate.png | Bin 0 -> 3276 bytes .../SysImages/Basics/yiliaolist.png | Bin 0 -> 3274 bytes BBMPTMes/MESWebSite/SysImages/Css/css.css | 41 + BBMPTMes/MESWebSite/SysImages/Css/style.css | 894 + .../MESWebSite/SysImages/Login/signin.gif | Bin 0 -> 2262 bytes .../MESWebSite/SysImages/Login/主页面.jpg | Bin 0 -> 48266 bytes .../SysImages/Login/登录界面副本.jpg | Bin 0 -> 118342 bytes .../SysImages/Login/登录界面副本123.jpg | Bin 0 -> 245479 bytes .../MESWebSite/SysImages/MainIcon/icon.css | 84 + BBMPTMes/MESWebSite/SysImages/Text16.gif | Bin 0 -> 600 bytes BBMPTMes/MESWebSite/SysImages/cx-1.gif | Bin 0 -> 3091 bytes BBMPTMes/MESWebSite/SysImages/cx-2.gif | Bin 0 -> 2121 bytes BBMPTMes/MESWebSite/SysImages/error.png | Bin 0 -> 146 bytes BBMPTMes/MESWebSite/SysImages/images/1.png | Bin 0 -> 5744 bytes BBMPTMes/MESWebSite/SysImages/images/22.png | Bin 0 -> 157907 bytes .../SysImages/images/accordion_arrows.png | Bin 0 -> 125 bytes .../SysImages/images/ajax-loader.gif | Bin 0 -> 847 bytes .../SysImages/images/backgroundsize.htc | 514 + .../SysImages/images/backgroundsize.min.htc | 12 + BBMPTMes/MESWebSite/SysImages/images/bird.png | Bin 0 -> 4539 bytes .../MESWebSite/SysImages/images/config.png | Bin 0 -> 3024 bytes BBMPTMes/MESWebSite/SysImages/images/cstb.jpg | Bin 0 -> 1574 bytes BBMPTMes/MESWebSite/SysImages/images/cstb.png | Bin 0 -> 1471 bytes BBMPTMes/MESWebSite/SysImages/images/cx.png | Bin 0 -> 3091 bytes .../MESWebSite/SysImages/images/dd_bg.png | Bin 0 -> 1079 bytes BBMPTMes/MESWebSite/SysImages/images/ddbg.jpg | Bin 0 -> 1704 bytes .../MESWebSite/SysImages/images/ddbg1.jpg | Bin 0 -> 2185 bytes .../MESWebSite/SysImages/images/dt_bg.jpg | Bin 0 -> 1211 bytes BBMPTMes/MESWebSite/SysImages/images/exit.png | Bin 0 -> 1839 bytes .../MESWebSite/SysImages/images/footer_bg.jpg | Bin 0 -> 1229 bytes .../MESWebSite/SysImages/images/grd_alt.png | Bin 0 -> 190 bytes .../MESWebSite/SysImages/images/grd_head.png | Bin 0 -> 2801 bytes .../MESWebSite/SysImages/images/grd_pgr.png | Bin 0 -> 2799 bytes BBMPTMes/MESWebSite/SysImages/images/help.png | Bin 0 -> 1890 bytes BBMPTMes/MESWebSite/SysImages/images/jbxx.png | Bin 0 -> 1696 bytes .../MESWebSite/SysImages/images/log_bg.jpg | Bin 0 -> 210157 bytes .../MESWebSite/SysImages/images/logk_bg.png | Bin 0 -> 42570 bytes BBMPTMes/MESWebSite/SysImages/images/logo.png | Bin 0 -> 6316 bytes .../MESWebSite/SysImages/images/main_bg.jpg | Bin 0 -> 98987 bytes .../MESWebSite/SysImages/images/menu_bg.jpg | Bin 0 -> 1212 bytes .../MESWebSite/SysImages/images/menu_bg.png | Bin 0 -> 999 bytes .../MESWebSite/SysImages/images/sdtbg.jpg | Bin 0 -> 1222 bytes .../MESWebSite/SysImages/images/sellan.png | Bin 0 -> 2710 bytes BBMPTMes/MESWebSite/SysImages/images/szan.jpg | Bin 0 -> 1251 bytes .../MESWebSite/SysImages/images/szan1.jpg | Bin 0 -> 1251 bytes BBMPTMes/MESWebSite/SysImages/images/top.jpg | Bin 0 -> 3117 bytes .../MESWebSite/SysImages/images/top_bg.jpg | Bin 0 -> 44126 bytes .../MESWebSite/SysImages/images/top_bg1.jpg | Bin 0 -> 15627 bytes .../MESWebSite/SysImages/images/topmes_bg.png | Bin 0 -> 4816 bytes .../MESWebSite/SysImages/images/tposition.jpg | Bin 0 -> 4084 bytes .../SysImages/images/tposition1.jpg | Bin 0 -> 7148 bytes .../MESWebSite/SysImages/images/username.png | Bin 0 -> 1866 bytes BBMPTMes/MESWebSite/SysImages/images/wzk.png | Bin 0 -> 1096 bytes BBMPTMes/MESWebSite/SysImages/images/xlan.png | Bin 0 -> 1429 bytes BBMPTMes/MESWebSite/SysImages/images/zk.png | Bin 0 -> 1117 bytes .../images/下件工位初始状态3.jpg | Bin 0 -> 160601 bytes .../MESWebSite/SysImages/images/查询.png | Bin 0 -> 1472 bytes .../images/百分比新的界面.png | Bin 0 -> 26378 bytes .../MESWebSite/SysImages/images/试试.png | Bin 0 -> 9299 bytes BBMPTMes/MESWebSite/SysImages/jisuanji095.bmp | Bin 0 -> 822 bytes BBMPTMes/MESWebSite/SysImages/jk-1.gif | Bin 0 -> 2171 bytes BBMPTMes/MESWebSite/SysImages/jk-2.gif | Bin 0 -> 2119 bytes BBMPTMes/MESWebSite/SysImages/ok.png | Bin 0 -> 224 bytes BBMPTMes/MESWebSite/SysImages/repair.png | Bin 0 -> 382 bytes .../MESWebSite/SysImages/sysico/Text16.gif | Bin 0 -> 600 bytes .../SysImages/sysico/jisuanji095.bmp | Bin 0 -> 822 bytes BBMPTMes/MESWebSite/SysImages/sz-1.gif | Bin 0 -> 2123 bytes BBMPTMes/MESWebSite/SysImages/sz-2.gif | Bin 0 -> 2142 bytes BBMPTMes/MESWebSite/SysImages/显示.png | Bin 0 -> 435 bytes .../MESWebSite/SysImages/权限设置.png | Bin 0 -> 2967 bytes BBMPTMes/MESWebSite/SysImages/查询.png | Bin 0 -> 3160 bytes .../MESWebSite/SysImages/用户设置.png | Bin 0 -> 2962 bytes BBMPTMes/MESWebSite/SysImages/监控.png | Bin 0 -> 3172 bytes BBMPTMes/MESWebSite/SysImages/设置.png | Bin 0 -> 3073 bytes BBMPTMes/MESWebSite/SysImages/隐藏.png | Bin 0 -> 540 bytes BBMPTMes/MESWebSite/Tool/ExcelTool.cs | 140 + BBMPTMes/MESWebSite/Tool/JSONTools.cs | 95 + BBMPTMes/MESWebSite/Web.Debug.config | 31 + BBMPTMes/MESWebSite/Web.Release.config | 32 + BBMPTMes/MESWebSite/Web.config | 36 + BBMPTMes/MESWebSite/packages.config | 7 + 1678 files changed, 232032 insertions(+) create mode 100644 BBMPTMes/BBMPT.sln create mode 100644 BBMPTMes/InjectionPC/2.ico create mode 100644 BBMPTMes/InjectionPC/App.config create mode 100644 BBMPTMes/InjectionPC/AutoUpdater.cs create mode 100644 BBMPTMes/InjectionPC/Form1.Designer.cs create mode 100644 BBMPTMes/InjectionPC/Form1.cs create mode 100644 BBMPTMes/InjectionPC/Form1.resx create mode 100644 BBMPTMes/InjectionPC/FrmBarCode.Designer.cs create mode 100644 BBMPTMes/InjectionPC/FrmBarCode.cs create mode 100644 BBMPTMes/InjectionPC/FrmBarCode.resx create mode 100644 BBMPTMes/InjectionPC/FrmDown.Designer.cs create mode 100644 BBMPTMes/InjectionPC/FrmDown.cs create mode 100644 BBMPTMes/InjectionPC/FrmDown.resx create mode 100644 BBMPTMes/InjectionPC/FrmLogin.Designer.cs create mode 100644 BBMPTMes/InjectionPC/FrmLogin.cs create mode 100644 BBMPTMes/InjectionPC/FrmLogin.resx create mode 100644 BBMPTMes/InjectionPC/FrmQuality.Designer.cs create mode 100644 BBMPTMes/InjectionPC/FrmQuality.cs create mode 100644 BBMPTMes/InjectionPC/FrmQuality.resx create mode 100644 BBMPTMes/InjectionPC/GlacialList.dll create mode 100644 BBMPTMes/InjectionPC/InjectionPC.csproj create mode 100644 BBMPTMes/InjectionPC/Interop.TaskScheduler.dll create mode 100644 BBMPTMes/InjectionPC/LogHelper.cs create mode 100644 BBMPTMes/InjectionPC/Logo.png create mode 100644 BBMPTMes/InjectionPC/Picture/V&W205-AMG-F.jpg create mode 100644 BBMPTMes/InjectionPC/Program.cs create mode 100644 BBMPTMes/InjectionPC/Properties/AssemblyInfo.cs create mode 100644 BBMPTMes/InjectionPC/Properties/Resources.Designer.cs create mode 100644 BBMPTMes/InjectionPC/Properties/Resources.resx create mode 100644 BBMPTMes/InjectionPC/Properties/Settings.Designer.cs create mode 100644 BBMPTMes/InjectionPC/Properties/Settings.settings create mode 100644 BBMPTMes/InjectionPC/ReportHelper.cs create mode 100644 BBMPTMes/InjectionPC/SchTaskExtAPI.dll create mode 100644 BBMPTMes/InjectionPC/Upload.cs create mode 100644 BBMPTMes/InjectionPC/北汽模塑.png create mode 100644 BBMPTMes/MESClassLibrary/App.config create mode 100644 BBMPTMes/MESClassLibrary/BLL/Andon/AndonButtonRecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Andon/AndonButtonTypeBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/BadInjectionBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/BarCodeBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/BomBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/BucketInfoBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/CheckItemBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/ColorBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/DefectBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/DeptBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/DeviceBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/FactoryBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/ImgVideoBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/InjectionPlanBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/LineBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/LocationBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/MachineBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/ModelInfoBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/ModelUpdateBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/OperatorBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/PaintInfoBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/PlaceBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/PlasticBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductOfInjectionBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductTypeBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProjectBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/BasicInfo/StationBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Check/InspectResultBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/GetNewTasksBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/PartMstrBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/PartRecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/TESBomBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/TESPartDetBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Hybrid/HybridPlanBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Hybrid/HybridScanRecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Injection/DownReasonBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Injection/InjectionDownRecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Injection/InjectionRecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Inspection/CommonlyInspectionBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Inspection/CommonlyInspectionVersionBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake243/Assembly243BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake243/Box243BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake243/Mistake243BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake243/Plan243BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake243/Record243BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake243/RecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake247/AssemblyBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake247/BoxBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake247/MistakeBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake247/Plan247BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake247/RecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Mistake247/ToVisualBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/MistakeGratings/GratingsBll.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PaintDown/PaintDownBll.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/InspectResultBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/NotStockBarCodeBll.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/NotUpBarCodeBll.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/PaintBarCodeBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/PaintPersonBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/PaintReasonBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/PunchNotStockBarCodeBll.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/ScanRecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/StockInBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Painting/TmpBarCodeBll.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Plan243/Plan243BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Plan247/Plan247BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PlanPunchBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PlanPunchNewBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchAdressBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchAndStationBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchDeviceBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPartBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPlanBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPlanMFABLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchRecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchValueRecordBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Record243/Record243BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Record247/Record247BLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenLastBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenStandardBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Show/AnalysisBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Stock/AppendColorBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/Stock/StockInBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/User/Sys_ButtonsService.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/User/Sys_NavMenuService.cs create mode 100644 BBMPTMes/MESClassLibrary/BLL/User/UserBLL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Andon/AndonButtonRecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Andon/AndonButtonTypeDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BaseDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/BadInjectionDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/BarCodeDAl.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/BomDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/ColorDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/DefectDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/InjectionPlanDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/OperatorDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductOfInjectionDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductTypeDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProjectDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/BasicInfo/StationDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Check/InspectResultDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/DataTableExtend.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/GetNewTasksDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/PartMstrDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/PartRecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/TESBomDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/TESPartDetDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Hybrid/HybridPlanDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Hybrid/HybridScanRecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Injection/DownReasonDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Injection/InjectionDownRecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Injection/InjectionRecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake243/Assembly243DAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake243/Box243DAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake243/Mistake243DAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake243/Plan243DAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake243/RecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake247/AssemblyDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake247/BoxDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake247/MistakeDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake247/Plan247DAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake247/RecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Mistake247/ToVisualDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PaintDown/PaintDownDal.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Plan243/Plan243DAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/Plan247/Plan247DAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchAdressDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchAndStationDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchDeviceDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPartDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPlanDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPlanMFADAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchRecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchValueRecordDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/SqlHelper.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/User/Sys_ButtonsData.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/User/Sys_NavMenuData.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/User/UserDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/InspectResultDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/NotStockBarCodeDal.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/NotUpBarCodeDal.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/PaintBarCodeDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/PaintPersonDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/PaintReasonDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/PunchNotStockBarCodeDal.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/StockInDAL.cs create mode 100644 BBMPTMes/MESClassLibrary/DAL/painting/TmpBarCodeDal.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/BBMPT.Context.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/BBMPT.Context.tt create mode 100644 BBMPTMes/MESClassLibrary/EFModel/BBMPT.Designer.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/BBMPT.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx create mode 100644 BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx.diagram create mode 100644 BBMPTMes/MESClassLibrary/EFModel/BBMPT.tt create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogErr.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys_202001_04.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys_202003.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys_202004.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys_202005.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys_20200605.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys_20200610.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys_202008.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/LogSys_20210322.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_BLOB_TRIGGERS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_CALENDARS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_CRON_TRIGGERS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_FIRED_TRIGGERS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_JOB_DETAILS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_LOCKS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_PAUSED_TRIGGER_GRPS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_SCHEDULER_STATE.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_SIMPLE_TRIGGERS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_SIMPROP_TRIGGERS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/QRTZ_TRIGGERS.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/TA_DEPT.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/TES_BOM.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/TES_PART_MSTR.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_PaintInfo.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_Sys_Buttons.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_Sys_NavMenu.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_Sys_Power.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_Sys_Role.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_Sys_RoleLinkPower.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_Sys_UserRole.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_Sys_Users.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/T_Sys_Users_NavMenu.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_authority.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_authority_object.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_backup_node.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_base_message.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_base_output.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_block_ip.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_conf_classname.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_conf_entity.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_conf_xmlentity.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_custom_role.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_dep_role.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_department.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_extra_property.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_favorite_entry.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_homepage_expand.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_international.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_last_login.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_login_lock.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_mobile_device.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_mobile_push_message.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_class.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_client_notice.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_email.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_ftp.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_mount.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_platform_msg.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_print.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_sftp.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_output_sms.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_param_template.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_post.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_print_offset.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_print_offset_ip_relate.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_process_expand.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_process_message.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_remote_design_auth.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_report_expand.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_schedule_output.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_schedule_record.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_schedule_task.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_schedule_task_param.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_cluster_size.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_col_idx_conf.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_config_entity.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_metadata.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_seg_location.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_segments.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_service_info.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_tab_idx_conf.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_swift_table_path.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_system_message.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_user.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_user_role_middle.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_vcs.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_workflow.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_workflow_log.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_workflow_node.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_workflow_stash_data.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_workflow_task.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_workflow_task_impl.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/fine_write_stash.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_AndonButtonType.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_AndonRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_243.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_247.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_254.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Bad_Injection.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_BarCode.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Bom.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Bom_20190726.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Box_243.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Box_247.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Box_Record.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Box_WheelBrow.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_BucketInfo.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_CheckItem.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Color.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Color_20191008.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Color_20201101.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspection.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspectionRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspectionVersion.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Config.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Cylinder.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_CylinderAndRaw.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Defect.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Defect_bak.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Device.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Factory.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_FinishProduct.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_HybridPlan.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_HybridScanRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ImgVideo.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Inhection_DownReason.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_InjectPlanReport.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_InjectionPlan.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownTime.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownType.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Injection_Record.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20190902.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20200717.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20201021.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20210322.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_LayerAndBC.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Line.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Location.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Machine.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_243.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_243_bak.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_247.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_247_bak.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_Gratings.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ModelCount.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ModelInfo.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Model_Product.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Model_Update.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Operator.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PaintBarCode.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PaintInfo.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PaintPerson.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PaintReason.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PaintScanRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Paint_Bucket.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PartRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Place.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PlanScreenConfig.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Plan_243.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Plan_247.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch_20200509.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch_214.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Plastic.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PrintConfig.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PrintRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product0912.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product20200802.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product20201016.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ProductSotckIn.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ProductType.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product_20200513.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product_20201110.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product_20230901.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection_20190726.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection_w.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Project.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchAddress.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchAndStation.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchAndStation_bak.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchDevice.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchMFAPlan.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchNGCCPlan.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchPlan.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchResult.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_PunchValueRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record2.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20200721.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20200907.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20221231.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20230630.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_BF.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_Del.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_DoorSill_214.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Proucting.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Record_243.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Record_243_20220517.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Record_247.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Record_Gratings.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportA1.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportF1.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportF3.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportG1.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportH1.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_bak.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_pg.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_pg_bak.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ReportTest.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenConfig.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenLast.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenStandard.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen_20191011.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen_20191014.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ScanAnalysis.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ScanRecord_Laser.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_SkidInfo.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_SkidInfo_20200904.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_SpcialNotFacStockNo.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_SpcialStockNo.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_SpecialHybrid.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_SpecialVisual.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_Station.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_StationAndCylinder.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_StockIn.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_StockInColor.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_20200511.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_20210322.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_beif.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ToVisual_WheelBrow_243.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ToVisual_WheelBrow_247.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_ToWmsRecord.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_aa.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_reportA2.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/tb_test.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/test1.cs create mode 100644 BBMPTMes/MESClassLibrary/EFModel/test2.cs create mode 100644 BBMPTMes/MESClassLibrary/EncryptedDLL/MESClassLibrary.dll create mode 100644 BBMPTMes/MESClassLibrary/JSONTools.cs create mode 100644 BBMPTMes/MESClassLibrary/LambdaHelper.cs create mode 100644 BBMPTMes/MESClassLibrary/MESClassLibrary.csproj create mode 100644 BBMPTMes/MESClassLibrary/Model/AnalysisBarModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/AnalysisPieModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/AndonButtonTypeModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/AndonRecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/Assembly243Model.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/AssemblyModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/BadInjectionModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/BarCodeModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/BasicModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/BomModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/BoxModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/CheckItemModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/ChildTreeModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/ColorModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/CommonlyInspectionModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/CommonlyInspectionVersionModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/DefectModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/DeviceModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/DownRecordVO.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/EcharBarModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/GetNewTasksModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/HybridPlanModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/HybridScanRecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/InjectionBadReasonModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/InjectionDownReason.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/InjectionDownRecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/InjectionPlanModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/InjectionRecordDownReasonModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/Injection_DownRecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/Injection_RecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/InspectResultGroup.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/InspectResultModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/JsonDataModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/LineModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/LogErrModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/LogSysModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/OperationModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/OperatorModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PaintBarCodeModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/Paint_BucketModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PartDetModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PartMstrModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PartRecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PieDataModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PlaceModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PlasticModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/ProductInjectionModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/ProductModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/ProductOfInjectionModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/ProductTypeModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/ProjectModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PunchAndStationModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PunchAndStationModel1.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PunchMFAModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PunchPlanModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PunchRecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/PunchValueRecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/QualifiedDayModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/QualifiedMonthModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/RecordModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/SelectModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/StationModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/StockInModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/Sys_Buttons.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/Sys_NavMenuInfo.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/TESBomModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/TESPartDetModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/TreeModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/UserModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/partModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/tb_Plan_243Model.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/tb_Plan_247Model.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/tb_Plan_PunchModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Model/tb_Plan_PunchNewModel.cs create mode 100644 BBMPTMes/MESClassLibrary/Properties/AssemblyInfo.cs create mode 100644 BBMPTMes/MESClassLibrary/Tool.cs create mode 100644 BBMPTMes/MESClassLibrary/packages.config create mode 100644 BBMPTMes/MESWebSite/CSS/Basics.css create mode 100644 BBMPTMes/MESWebSite/CommonClass/ExportHeaderAttribute.cs create mode 100644 BBMPTMes/MESWebSite/CommonClass/JEasyUIHelper.cs create mode 100644 BBMPTMes/MESWebSite/CommonClass/JSONHelper.cs create mode 100644 BBMPTMes/MESWebSite/CommonClass/SQLHelper.cs create mode 100644 BBMPTMes/MESWebSite/DLL/Newtonsoft.Json.dll create mode 100644 BBMPTMes/MESWebSite/DLL/org.in2bits.MyXls.dll create mode 100644 BBMPTMes/MESWebSite/Excel/243生产计划导入模板.xls create mode 100644 BBMPTMes/MESWebSite/Excel/产品信息模板.xls create mode 100644 BBMPTMes/MESWebSite/Excel/冲孔装配计划导入模板.xls create mode 100644 BBMPTMes/MESWebSite/Excel/生产计划导入模板.xls create mode 100644 BBMPTMes/MESWebSite/Excel/装配总成bom模板.xls create mode 100644 BBMPTMes/MESWebSite/HelperTools.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/AppendColorHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/AppendColorHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/BomHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/BomHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/BucketInfoHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/BucketInfoHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/CheckItemHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/CheckItemHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ColorHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ColorHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/CommonlyInspectionHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/CommonlyInspectionHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/CommonlyInspectionVersionHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/CommonlyInspectionVersionHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/DefectHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/DefectHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/DeptHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/DeptHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/DeviceHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/DeviceHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/FactoryHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/FactoryHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/FiveScreenHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/FiveScreenHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/FiveScreenLastHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/FiveScreenLastHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/FiveScreenStandardHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/FiveScreenStandardHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ImgVideoHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ImgVideoHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/IndexHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/IndexHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionDownDayHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionDownDayHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionDownMonthHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionDownMonthHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionDownMonthTimesHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionDownMonthTimesHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionDownRecordHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionDownRecordHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionPlanHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionPlanHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionRecordHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionRecordHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionWasteRecordHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/InjectionWasteRecordHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/LineHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/LineHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/LocationHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/LocationHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/MachineHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/MachineHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/MaterialAvailabilityDayHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/MaterialAvailabilityDayHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/MaterialAvailabilityMonthHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/MaterialAvailabilityMonthHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ModelChangeRecordHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ModelChangeRecordHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ModelInfoHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ModelInfoHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/OperatorHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/OperatorHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PaintInfoHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PaintInfoHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Paint_BucketHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Paint_BucketHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PaintingInspectionRepair.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PaintingInspectionRepair.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlaceHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlaceHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlaitingInspectionRepairHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlaitingInspectionRepairHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Plan_243Handler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Plan_243Handler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Plan_247Handler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Plan_247Handler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Plan_PunchHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Plan_PunchHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Plan_PunchNewHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Plan_PunchNewHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlasticHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlasticHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlatingInspectionHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlatingInspectionHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlatingPolishHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlatingPolishHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlatingScrapHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PlatingScrapHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ProductHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ProductHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ProductTypeHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ProductTypeHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ProductionRecordsHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ProductionRecordsHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ProjectHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/ProjectHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PunchBomHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/PunchBomHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/QualifiedDayHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/QualifiedDayHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/QualifiedMonthHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/QualifiedMonthHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/QualifiedTrendExcelHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/QualifiedTrendExcelHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Record_243Handler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Record_243Handler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Record_247Handler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/Record_247Handler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/RepairRecordHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/RepairRecordHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/StationHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/StationHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/StockInHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/StockInHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/UserHandler.ashx create mode 100644 BBMPTMes/MESWebSite/HttpHandlers/UserHandler.ashx.cs create mode 100644 BBMPTMes/MESWebSite/Login.aspx create mode 100644 BBMPTMes/MESWebSite/Login.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Login.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/MESWebSite.csproj create mode 100644 BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Bom.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Bom.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Bom.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/BucketInfo.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/CheckItem.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/CheckItem.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/CheckItem.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Color.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Color.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Color.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Defect.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Defect.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Defect.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Dept.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Dept.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Dept.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Device.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Device.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Device.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Factory.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Factory.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Factory.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreen.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ImgVideo.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Index.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Index.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Index.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Line.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Line.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Line.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Location.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Location.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Location.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Machine.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Machine.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Machine.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ModelInfo.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Operator.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Operator.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Operator.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PaintInfo.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Place.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Place.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Place.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_243.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_243.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_243.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_247.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_247.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_247.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plastic.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Plastic.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Plastic.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Product.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Product.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Product.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ProductType.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ProductType.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ProductType.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Project.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Project.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Project.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PunchBom.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/PunchBom.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/PunchBom.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Record_243.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Record_243.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Record_243.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Record_247.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Record_247.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Record_247.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/RepairRecord.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/RepairRecord.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/RepairRecord.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportA.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportA.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportA.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportA_H.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportB.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportB.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportB.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportB_H.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportC.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportC.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportC.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportC_H.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportJ.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportJ.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportJ.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportK.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportK.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportK.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportK_H.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportL.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportL.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportL.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportL_H.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Station.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/Station.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/Station.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/StockIn.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/StockIn.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/StockIn.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/Manage/User.aspx create mode 100644 BBMPTMes/MESWebSite/Manage/User.aspx.cs create mode 100644 BBMPTMes/MESWebSite/Manage/User.aspx.designer.cs create mode 100644 BBMPTMes/MESWebSite/PDF/20210527104331937.png create mode 100644 BBMPTMes/MESWebSite/PDF/20210527110934964.png create mode 100644 BBMPTMes/MESWebSite/Properties/AssemblyInfo.cs create mode 100644 BBMPTMes/MESWebSite/Properties/PublishProfiles/WebSite.pubxml create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/changelog.txt create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/_content.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/ajax.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/datagrid_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/expandable.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/multiple.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/tools.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/custom.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/disabledate.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/firstday.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combo/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/combobox_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/combobox_data2.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/customformat.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/dynamicdata.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/group.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/multiple.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/navigation.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/remotedata.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/remotejsonp.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/datagrid_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/initvalue.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/multiple.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/navigation.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/initvalue.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/multiple.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/tree_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/aligncolumns.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/cellediting.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/cellstyle.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/checkbox.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/clientpagination.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/columngroup.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/complextoolbar.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/contextmenu.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/custompager.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/datagrid_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/datagrid_data2.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/footer.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/formatcolumns.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/frozencolumns.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/frozenrows.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/mergecells.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/multisorting.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/products.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowborder.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowediting.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowstyle.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/selection.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/simpletoolbar.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/transform.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/buttons.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/dateformat.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/events.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/sharedcalendar.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/validate.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/initvalue.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/showseconds.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/demo.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/complextoolbar.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/toolbarbuttons.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/constain.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/snap.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/accept.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/sort.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/easyloader/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/form_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/load.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/_content.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/addremove.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/autoheight.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/complex.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/datagrid_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/full.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/nestedlayout.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/nocollapsible.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/propertygrid_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/tree_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/group.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/iconalign.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/plain.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/size.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/toggle.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/customitem.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/events.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/alignment.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/alert.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/interactive.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/position.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/format.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/range.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/increment.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/range.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/attaching.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/custombuttons.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/layout.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/links.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/simple.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/_content.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/customtools.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/loadcontent.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/nestedpanel.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/paneltools.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/progressbar/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/customcolumns.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/groupformat.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/propertygrid_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/resizable/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/searchbox/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/searchbox/category.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/formattip.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/nonlinear.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/rule.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/vertical.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/splitbutton/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/splitbutton/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/_content.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/autoheight.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/dropdown.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/fixedwidth.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/hover.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/images/modem.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/images/pda.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/images/scanner.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/images/tablet.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/nestedtabs.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/striptools.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabimage.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabposition.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabstools.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tree_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/range.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/_content.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/_dialog.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/ajax.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/customcontent.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/customstyle.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/position.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/toolbar.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/tooltipdialog.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/animation.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/checkbox.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/contextmenu.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/dnd.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/editable.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/formatting.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/icons.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/lazyload.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/lines.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/tree_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/tree_data2.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/actions.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/clientpagination.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/contextmenu.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/editable.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/footer.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/reports.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data1.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data2.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data3.json create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/validatebox/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/validatebox/customtooltip.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/basic.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/customtools.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/inlinewindow.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/modalwindow.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/windowlayout.html create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/easyloader.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/jquery-1.8.0.min.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/jquery.easyui.min.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/jquery.min.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/licence_gpl.txt create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/license_commercial.txt create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-af.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-ar.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-bg.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-ca.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-cs.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-cz.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-da.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-de.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-el.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-en.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-es.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-fr.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-it.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-jp.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-nl.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-pl.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-pt_BR.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-ru.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-sv_SE.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-tr.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-zh_CN.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/locale/easyui-lang-zh_TW.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.accordion.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.calendar.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.combo.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.combobox.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.combogrid.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.combotree.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.datagrid.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.datebox.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.datetimebox.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.dialog.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.draggable.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.droppable.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.form.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.layout.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.linkbutton.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.menu.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.menubutton.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.messager.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.numberbox.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.numberspinner.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.pagination.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.panel.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.parser.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.progressbar.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.propertygrid.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.resizable.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.searchbox.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.slider.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.spinner.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.splitbutton.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tabs.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.timespinner.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tooltip.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tree.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.treegrid.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.validatebox.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.window.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/readme.txt create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/easyloader.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.accordion.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.calendar.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.combobox.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.datebox.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.draggable.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.droppable.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.form.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.linkbutton.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.menu.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.parser.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.progressbar.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.propertygrid.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.resizable.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.slider.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.tabs.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.window.js create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/accordion.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/calendar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/combo.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/combobox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/datagrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/datebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/dialog.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/easyui.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/accordion_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/blank.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/calendar_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/combo_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/datagrid_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/datebox_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/layout_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/linkbutton_bg.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/loading.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/menu_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/messager_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/pagination_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/panel_tools.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/searchbox_button.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/slider_handle.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/spinner_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/tabs_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/tree_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/validatebox_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/validatebox_warning.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/layout.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/linkbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/menu.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/menubutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/messager.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/numberbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/pagination.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/panel.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/progressbar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/propertygrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/searchbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/slider.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/spinner.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/splitbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/tabs.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/textbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/tooltip.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/tree.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/validatebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/window.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/accordion.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/calendar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/combo.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/combobox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/datagrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/datebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/dialog.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/easyui.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/accordion_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/blank.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/calendar_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/combo_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/datagrid_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/datebox_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/layout_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/linkbutton_bg.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/loading.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/menu_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/messager_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/pagination_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/panel_tools.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/searchbox_button.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/slider_handle.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/spinner_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/tabs_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/tree_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/validatebox_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/validatebox_warning.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/layout.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/linkbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/menu.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/menubutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/messager.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/numberbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/pagination.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/panel.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/progressbar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/propertygrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/searchbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/slider.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/spinner.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/splitbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/tabs.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/textbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/tooltip.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/tree.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/validatebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/window.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/accordion.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/calendar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/combo.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/combobox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/datagrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/datebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/dialog.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/easyui.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/accordion_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/blank.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/calendar_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/combo_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/datagrid_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/datebox_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/doct.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/layout_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/linkbutton_bg.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/loading.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/menu_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/messager_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/org.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/pagination_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/panel_tools.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/searchbox_button.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/slider_handle.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/spinner_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/tabs_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/tree_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/validatebox_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/validatebox_warning.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/layout.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/linkbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/menu.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/menubutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/messager.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/numberbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/pagination.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/panel.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/progressbar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/propertygrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/searchbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/slider.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/spinner.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/splitbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/tabs.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/textbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/tooltip.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/tree.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/validatebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/window.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/accordion.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/calendar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/combo.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/combobox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/datagrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/datebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/dialog.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/easyui.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/accordion_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/blank.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/calendar_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/combo_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/datagrid_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/datebox_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/layout_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/linkbutton_bg.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/loading.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/menu_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/messager_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/pagination_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/panel_tools.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/searchbox_button.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/slider_handle.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/spinner_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/tabs_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/tree_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/validatebox_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/validatebox_warning.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/layout.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/linkbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/menu.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/menubutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/messager.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/numberbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/pagination.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/panel.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/progressbar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/propertygrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/searchbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/slider.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/spinner.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/splitbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/tabs.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/textbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/tooltip.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/tree.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/validatebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/window.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icon.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/01.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/02.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/03.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/04.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/05.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/back.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/blank.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/cancel.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/cut.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/edit_add.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/edit_remove.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/filesave.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/filter.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/help.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_chart.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_clipart.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_picture.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_shapes.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_smartart.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/mini_add.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/mini_edit.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/mini_refresh.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/mysearch-2.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/mysearch-3.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/mysearch.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/no.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/ok.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/pencil.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/print.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/redo.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/reload.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/search-2.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/search.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/sum.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/tip.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/undo.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/accordion.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/calendar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/combo.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/combobox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/datagrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/datebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/dialog.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/easyui.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/accordion_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/blank.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/calendar_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/combo_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/datagrid_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/datebox_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/layout_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/linkbutton_bg.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/loading.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/menu_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/messager_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/pagination_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/panel_tools.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/searchbox_button.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/slider_handle.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/spinner_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/tabs_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/tree_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/validatebox_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/validatebox_warning.png create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/layout.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/linkbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/menu.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/menubutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/messager.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/numberbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/pagination.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/panel.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/progressbar.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/propertygrid.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/searchbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/slider.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/spinner.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/splitbutton.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/tabs.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/textbox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/tooltip.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/tree.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/validatebox.css create mode 100644 BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/window.css create mode 100644 BBMPTMes/MESWebSite/Scripts/MyJs.js create mode 100644 BBMPTMes/MESWebSite/Scripts/cart.json create mode 100644 BBMPTMes/MESWebSite/Scripts/exporting.js create mode 100644 BBMPTMes/MESWebSite/Scripts/highcharts.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-1.7.1.intellisense.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-1.7.1.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-1.7.1.min.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-1.8.0.min.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/datagrid-dnd.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/jquery.easyui.min.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/jquery.edatagrid.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/jquery.min.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/locale/easyui-lang-zh_CN.js create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/color.css create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icon.css create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/accordion_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/back.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/blank.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/brick_16px.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/calendar_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/cancel.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/clear.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/combo_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/computer_17.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/cut.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/datagrid_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/datebox_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/dialog_shutdown_16px.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/dialog_shutdown_16px1.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/edit_add.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/edit_remove.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/filesave.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/filter.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/folder_edit_16px.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/help.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/large_chart.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/large_clipart.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/large_picture.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/large_shapes.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/large_smartart.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/layout_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/linkbutton_bg.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/list_12.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/loading.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/lock.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/man.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/menu_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/messager_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/mini_add.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/mini_edit.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/mini_refresh.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/more.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/no.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/ok.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/pagination_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/panel_tools.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/pencil.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/print.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/puzzle_15.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/redo.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/reload.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/search.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/searchbox_button.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/slider_handle.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/spinner_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/sum.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/tabs_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/tip.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/tree_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/undo.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/icons/validatebox_warning.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/easyui.css create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/accordion_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/blank.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/calendar_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/combo_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/datagrid_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/datebox_arrow.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/layout_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/linkbutton_bg.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/loading.gif create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/menu_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/messager_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/pagination_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/panel_tools.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/searchbox_button.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/slider_handle.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/spinner_arrows.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/tabs_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/tree_icons.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery-easyui-1.4.3/themes/metro/images/validatebox_warning.png create mode 100644 BBMPTMes/MESWebSite/Scripts/jquery.easyui.min.js create mode 100644 BBMPTMes/MESWebSite/Service/SystemManager.ashx create mode 100644 BBMPTMes/MESWebSite/Service/SystemManager.ashx.cs create mode 100644 BBMPTMes/MESWebSite/Show/analysis.html create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.css create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.css.map create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.min.css create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.min.css.map create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.css create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.css.map create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.min.css create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.min.css.map create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/fonts/glyphicons-halflings-regular.eot create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/fonts/glyphicons-halflings-regular.svg create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/fonts/glyphicons-halflings-regular.ttf create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/fonts/glyphicons-halflings-regular.woff create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/fonts/glyphicons-halflings-regular.woff2 create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/js/bootstrap.js create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/js/bootstrap.min.js create mode 100644 BBMPTMes/MESWebSite/Show/bootstrap/js/npm.js create mode 100644 BBMPTMes/MESWebSite/Show/echar/echarts.min.js create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/1.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/15.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/2.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/3.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/4.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/5-121204193R1-50.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/5.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/6.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/7.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/8.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/9.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/Dashboard.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/Delete.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/Excel.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/OK.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/PDF.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/Search.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/Search1.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/add.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/archives.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/banner.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/broom.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/camera.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/chukoucate.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/chukoulist.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/delete1.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/key.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/listArt.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/loading-line.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/loading-ring.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/meirongcate.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/meironglist.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/pen.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/remai.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/save.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/share.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/shejiao.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/singleArt.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/system_run.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/text.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/undo.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/upload.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/user_male.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/yejiao.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/yiliaocate.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Basics/yiliaolist.png create mode 100644 BBMPTMes/MESWebSite/SysImages/Css/css.css create mode 100644 BBMPTMes/MESWebSite/SysImages/Css/style.css create mode 100644 BBMPTMes/MESWebSite/SysImages/Login/signin.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/Login/主页面.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/Login/登录界面副本.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/Login/登录界面副本123.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/MainIcon/icon.css create mode 100644 BBMPTMes/MESWebSite/SysImages/Text16.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/cx-1.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/cx-2.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/error.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/1.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/22.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/accordion_arrows.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/ajax-loader.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/images/backgroundsize.htc create mode 100644 BBMPTMes/MESWebSite/SysImages/images/backgroundsize.min.htc create mode 100644 BBMPTMes/MESWebSite/SysImages/images/bird.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/config.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/cstb.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/cstb.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/cx.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/dd_bg.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/ddbg.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/ddbg1.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/dt_bg.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/exit.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/footer_bg.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/grd_alt.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/grd_head.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/grd_pgr.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/help.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/jbxx.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/log_bg.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/logk_bg.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/logo.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/main_bg.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/menu_bg.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/menu_bg.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/sdtbg.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/sellan.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/szan.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/szan1.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/top.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/top_bg.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/top_bg1.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/topmes_bg.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/tposition.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/tposition1.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/username.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/wzk.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/xlan.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/zk.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/下件工位初始状态3.jpg create mode 100644 BBMPTMes/MESWebSite/SysImages/images/查询.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/百分比新的界面.png create mode 100644 BBMPTMes/MESWebSite/SysImages/images/试试.png create mode 100644 BBMPTMes/MESWebSite/SysImages/jisuanji095.bmp create mode 100644 BBMPTMes/MESWebSite/SysImages/jk-1.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/jk-2.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/ok.png create mode 100644 BBMPTMes/MESWebSite/SysImages/repair.png create mode 100644 BBMPTMes/MESWebSite/SysImages/sysico/Text16.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/sysico/jisuanji095.bmp create mode 100644 BBMPTMes/MESWebSite/SysImages/sz-1.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/sz-2.gif create mode 100644 BBMPTMes/MESWebSite/SysImages/显示.png create mode 100644 BBMPTMes/MESWebSite/SysImages/权限设置.png create mode 100644 BBMPTMes/MESWebSite/SysImages/查询.png create mode 100644 BBMPTMes/MESWebSite/SysImages/用户设置.png create mode 100644 BBMPTMes/MESWebSite/SysImages/监控.png create mode 100644 BBMPTMes/MESWebSite/SysImages/设置.png create mode 100644 BBMPTMes/MESWebSite/SysImages/隐藏.png create mode 100644 BBMPTMes/MESWebSite/Tool/ExcelTool.cs create mode 100644 BBMPTMes/MESWebSite/Tool/JSONTools.cs create mode 100644 BBMPTMes/MESWebSite/Web.Debug.config create mode 100644 BBMPTMes/MESWebSite/Web.Release.config create mode 100644 BBMPTMes/MESWebSite/Web.config create mode 100644 BBMPTMes/MESWebSite/packages.config diff --git a/BBMPTMes/BBMPT.sln b/BBMPTMes/BBMPT.sln new file mode 100644 index 0000000..7e0e804 --- /dev/null +++ b/BBMPTMes/BBMPT.sln @@ -0,0 +1,50 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34330.188 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MESWebSite", "MESWebSite\MESWebSite.csproj", "{B1DEC82C-3F33-4FC9-A37B-9527315E2C5E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MESClassLibrary", "MESClassLibrary\MESClassLibrary.csproj", "{867989D8-6837-41DC-9BF1-4658F5D6CFEF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InjectionPC", "InjectionPC\InjectionPC.csproj", "{0FDBFD8E-C694-45C2-89B2-BC3120B944BF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0D128182-FB8C-4E0B-A42F-DF3767E4DE39}" + ProjectSection(SolutionItems) = preProject + 数据结构修改记录.txt = 数据结构修改记录.txt + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B1DEC82C-3F33-4FC9-A37B-9527315E2C5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1DEC82C-3F33-4FC9-A37B-9527315E2C5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1DEC82C-3F33-4FC9-A37B-9527315E2C5E}.Debug|x86.ActiveCfg = Debug|Any CPU + {B1DEC82C-3F33-4FC9-A37B-9527315E2C5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1DEC82C-3F33-4FC9-A37B-9527315E2C5E}.Release|Any CPU.Build.0 = Release|Any CPU + {B1DEC82C-3F33-4FC9-A37B-9527315E2C5E}.Release|x86.ActiveCfg = Release|Any CPU + {867989D8-6837-41DC-9BF1-4658F5D6CFEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {867989D8-6837-41DC-9BF1-4658F5D6CFEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {867989D8-6837-41DC-9BF1-4658F5D6CFEF}.Debug|x86.ActiveCfg = Debug|Any CPU + {867989D8-6837-41DC-9BF1-4658F5D6CFEF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {867989D8-6837-41DC-9BF1-4658F5D6CFEF}.Release|Any CPU.Build.0 = Release|Any CPU + {867989D8-6837-41DC-9BF1-4658F5D6CFEF}.Release|x86.ActiveCfg = Release|Any CPU + {0FDBFD8E-C694-45C2-89B2-BC3120B944BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0FDBFD8E-C694-45C2-89B2-BC3120B944BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0FDBFD8E-C694-45C2-89B2-BC3120B944BF}.Debug|x86.ActiveCfg = Debug|Any CPU + {0FDBFD8E-C694-45C2-89B2-BC3120B944BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0FDBFD8E-C694-45C2-89B2-BC3120B944BF}.Release|Any CPU.Build.0 = Release|Any CPU + {0FDBFD8E-C694-45C2-89B2-BC3120B944BF}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {52EF8F7E-6AC9-4400-82F1-31F70143C867} + EndGlobalSection +EndGlobal diff --git a/BBMPTMes/InjectionPC/2.ico b/BBMPTMes/InjectionPC/2.ico new file mode 100644 index 0000000000000000000000000000000000000000..c51e8dd7d2dba2511a0a8c4c81413267f4bd02cd GIT binary patch literal 100030 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 cy^7`ecxUFGP&S?Nz0~LG-YSk literal 0 HcmV?d00001 diff --git a/BBMPTMes/InjectionPC/App.config b/BBMPTMes/InjectionPC/App.config new file mode 100644 index 0000000..e5a0489 --- /dev/null +++ b/BBMPTMes/InjectionPC/App.config @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBMPTMes/InjectionPC/AutoUpdater.cs b/BBMPTMes/InjectionPC/AutoUpdater.cs new file mode 100644 index 0000000..d9aaba3 --- /dev/null +++ b/BBMPTMes/InjectionPC/AutoUpdater.cs @@ -0,0 +1,136 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Xml; + +namespace InjectionPC +{ + public class AutoUpdater + { + private string _serverUrl; + private string _softwareName; + private string _newVersion; + private string _filePath; + private string _fileName; + private string _lastUpdateTime; + private string _desc; + + public bool CheckUpdateLoad(string serverUrl, string updateXmlFileName) + { + bool result = false; + _serverUrl = serverUrl; + try + { + if (CheckUpdate(serverUrl,updateXmlFileName)) + { + var sb = new StringBuilder(); + sb.AppendLine("当前版本:" + Assembly.LoadFrom(_softwareName).GetName().Version); + sb.AppendLine("检查到新版本:" + _newVersion); + sb.AppendLine("更新时间:" + _lastUpdateTime); + sb.AppendLine("更新说明:" + _desc); + sb.AppendLine(); + sb.AppendLine("是否更新?"); + //var form = new FormFoundUpdate(sb.ToString()); + DialogResult result1 = MessageBox.Show("是否更新程序!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); + if (result1 == DialogResult.Yes) + { + var path = Application.StartupPath; + var args = new StringBuilder(); + args.Append("\'"+_serverUrl+"\',"); + args.Append("\'" + _softwareName + "\',"); + args.Append("\'" + _newVersion + "\',"); + args.Append("\'" + _filePath + "\',"); + args.Append("\'" + _fileName + "\',"); + args.Append("\'" + _lastUpdateTime + "\',"); + args.Append("\'" + _desc + "\',"); + //args.Append("\'{_softwareName}\',"); + //args.Append("\'{_newVersion}\',"); + //args.Append("\'{_filePath}\',"); + //args.Append("\'{_fileName}\',"); + //args.Append("\'{_lastUpdateTime}\',"); + //args.Append("\'{_desc}\'"); + + var process = new System.Diagnostics.Process + { + StartInfo = + { + FileName = "Updater.exe", + WorkingDirectory = path, + CreateNoWindow = true, + Arguments = args.ToString(), + } + }; +// MessageBox.Show(process.StartInfo.FileName+" "+process.StartInfo.Arguments); + process.Start(); + result = true; + } + } + + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + result = false; + } + return result; + } + + private bool CheckUpdate(string serverUrl, string updateXmlFileName) + { + + var fullFileName = serverUrl + updateXmlFileName; + try + { + var wc = new WebClient(); + var stream = wc.OpenRead(fullFileName); + //http://127.0.0.1/PcUpdate.xml + var xmlDoc = new XmlDocument(); + if (stream != null) xmlDoc.Load(stream); + XmlNode rootNode = xmlDoc.SelectSingleNode("AutoUpdate"); + if (rootNode != null) + foreach (XmlNode node in rootNode.ChildNodes.Cast().Where(node => node.Name == "SoftWare")) + { + if (node.Attributes != null) _softwareName = node.Attributes["Name"].Value; + foreach (XmlNode n in node.ChildNodes) + { + switch (n.Name) + { + case "Version": + _newVersion = n.InnerText; + break; + case "FilePath": + _filePath = n.InnerText; + break; + case "FileName": + _fileName = n.InnerText; + break; + case "LastUpdateTime": + _lastUpdateTime = n.InnerText; + break; + case "Desc": + _desc = n.InnerText; + break; + } + } + } + + + Version newVersion = new Version(_newVersion); + Version oldVersion = Assembly.LoadFrom(_softwareName).GetName().Version; + var tm = oldVersion.CompareTo(newVersion); + + var hasUpdate = tm < 0; + return hasUpdate; + } + catch (Exception ex) + { + throw new Exception("更新出现错误,请确认网络连接无误后重试!\n{fullFileName}\n{ex.Message}"); + } + } + } +} diff --git a/BBMPTMes/InjectionPC/Form1.Designer.cs b/BBMPTMes/InjectionPC/Form1.Designer.cs new file mode 100644 index 0000000..202da78 --- /dev/null +++ b/BBMPTMes/InjectionPC/Form1.Designer.cs @@ -0,0 +1,71 @@ +namespace InjectionPC +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(30, 33); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(228, 21); + this.textBox1.TabIndex = 0; + this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(80, 149); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(41, 12); + this.label1.TabIndex = 1; + this.label1.Text = "label1"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 261); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox1); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/Form1.cs b/BBMPTMes/InjectionPC/Form1.cs new file mode 100644 index 0000000..bb79a27 --- /dev/null +++ b/BBMPTMes/InjectionPC/Form1.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace InjectionPC +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void textBox1_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode==Keys.Enter) + { + textBox1.Text = "1"; + } + } + } +} diff --git a/BBMPTMes/InjectionPC/Form1.resx b/BBMPTMes/InjectionPC/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/BBMPTMes/InjectionPC/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/FrmBarCode.Designer.cs b/BBMPTMes/InjectionPC/FrmBarCode.Designer.cs new file mode 100644 index 0000000..1917c26 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmBarCode.Designer.cs @@ -0,0 +1,619 @@ +namespace InjectionPC +{ + partial class FrmBarCode + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmBarCode)); + GlacialComponents.Controls.GLColumn glColumn5 = new GlacialComponents.Controls.GLColumn(); + GlacialComponents.Controls.GLColumn glColumn6 = new GlacialComponents.Controls.GLColumn(); + GlacialComponents.Controls.GLColumn glColumn7 = new GlacialComponents.Controls.GLColumn(); + GlacialComponents.Controls.GLColumn glColumn8 = new GlacialComponents.Controls.GLColumn(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label2 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.glacialList1 = new GlacialComponents.Controls.GlacialList(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label17 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.label14 = new System.Windows.Forms.Label(); + this.label18 = new System.Windows.Forms.Label(); + this.label19 = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.panel3 = new System.Windows.Forms.Panel(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.label22 = new System.Windows.Forms.Label(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panel2.SuspendLayout(); + this.panel3.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.pictureBox1); + this.panel1.Controls.Add(this.label1); + this.panel1.Location = new System.Drawing.Point(1, 1); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1275, 91); + this.panel1.TabIndex = 0; + // + // label2 + // + this.label2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label2.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label2.Location = new System.Drawing.Point(1080, 5); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(192, 84); + this.label2.TabIndex = 3; + this.label2.Text = "2019-05-29 10:30:31"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label2.Click += new System.EventHandler(this.label2_Click); + // + // pictureBox1 + // + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(4, 4); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(169, 84); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 2; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label1.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label1.Location = new System.Drawing.Point(172, 5); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(911, 84); + this.label1.TabIndex = 1; + this.label1.Text = "注塑车间条码打印"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label3.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label3.Location = new System.Drawing.Point(5, 89); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(169, 52); + this.label3.TabIndex = 1; + this.label3.Text = "用户信息:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label4.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label4.Location = new System.Drawing.Point(174, 89); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(110, 52); + this.label4.TabIndex = 2; + this.label4.Text = "班组:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // comboBox1 + // + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.Font = new System.Drawing.Font("宋体", 32F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "A班", + "B班"}); + this.comboBox1.Location = new System.Drawing.Point(284, 91); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(136, 51); + this.comboBox1.TabIndex = 3; + // + // label5 + // + this.label5.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label5.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label5.Location = new System.Drawing.Point(419, 91); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(110, 52); + this.label5.TabIndex = 4; + this.label5.Text = "工位:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label6 + // + this.label6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label6.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label6.Location = new System.Drawing.Point(529, 93); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(145, 52); + this.label6.TabIndex = 5; + this.label6.Text = "IM01"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label7 + // + this.label7.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label7.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label7.Location = new System.Drawing.Point(675, 93); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(110, 52); + this.label7.TabIndex = 6; + this.label7.Text = "用户:"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label8 + // + this.label8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label8.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label8.Location = new System.Drawing.Point(784, 93); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(123, 52); + this.label8.TabIndex = 7; + this.label8.Text = "cy"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label9 + // + this.label9.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label9.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label9.Location = new System.Drawing.Point(904, 93); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(180, 52); + this.label9.TabIndex = 8; + this.label9.Text = "质量录入"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label9.Click += new System.EventHandler(this.label9_Click); + // + // label10 + // + this.label10.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label10.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label10.Location = new System.Drawing.Point(5, 141); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(169, 622); + this.label10.TabIndex = 9; + this.label10.Text = "打印记录:"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // glacialList1 + // + this.glacialList1.AllowColumnResize = true; + this.glacialList1.AllowMultiselect = false; + this.glacialList1.AlternateBackground = System.Drawing.Color.DarkGreen; + this.glacialList1.AlternatingColors = false; + this.glacialList1.AutoHeight = true; + this.glacialList1.BackColor = System.Drawing.SystemColors.ControlLightLight; + this.glacialList1.BackgroundStretchToFit = true; + glColumn5.ActivatedEmbeddedType = GlacialComponents.Controls.GLActivatedEmbeddedTypes.None; + glColumn5.CheckBoxes = false; + glColumn5.ImageIndex = -1; + glColumn5.Name = "Column1"; + glColumn5.NumericSort = false; + glColumn5.Text = "条码"; + glColumn5.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + glColumn5.Width = 350; + glColumn6.ActivatedEmbeddedType = GlacialComponents.Controls.GLActivatedEmbeddedTypes.None; + glColumn6.CheckBoxes = false; + glColumn6.ImageIndex = -1; + glColumn6.Name = "Column2"; + glColumn6.NumericSort = false; + glColumn6.Text = "产品名称"; + glColumn6.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + glColumn6.Width = 320; + glColumn7.ActivatedEmbeddedType = GlacialComponents.Controls.GLActivatedEmbeddedTypes.None; + glColumn7.CheckBoxes = false; + glColumn7.ImageIndex = -1; + glColumn7.Name = "Column3"; + glColumn7.NumericSort = false; + glColumn7.Text = "打印方式"; + glColumn7.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + glColumn7.Width = 150; + glColumn8.ActivatedEmbeddedType = GlacialComponents.Controls.GLActivatedEmbeddedTypes.None; + glColumn8.CheckBoxes = false; + glColumn8.ImageIndex = -1; + glColumn8.Name = "Column4"; + glColumn8.NumericSort = false; + glColumn8.Text = "打印时间"; + glColumn8.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + glColumn8.Width = 270; + this.glacialList1.Columns.AddRange(new GlacialComponents.Controls.GLColumn[] { + glColumn5, + glColumn6, + glColumn7, + glColumn8}); + this.glacialList1.ControlStyle = GlacialComponents.Controls.GLControlStyles.Normal; + this.glacialList1.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.glacialList1.FullRowSelect = true; + this.glacialList1.GridColor = System.Drawing.Color.DeepSkyBlue; + this.glacialList1.GridLines = GlacialComponents.Controls.GLGridLines.gridBoth; + this.glacialList1.GridLineStyle = GlacialComponents.Controls.GLGridLineStyles.gridSolid; + this.glacialList1.GridTypes = GlacialComponents.Controls.GLGridTypes.gridNormal; + this.glacialList1.HeaderHeight = 40; + this.glacialList1.HeaderVisible = true; + this.glacialList1.HeaderWordWrap = false; + this.glacialList1.HotColumnTracking = false; + this.glacialList1.HotItemTracking = false; + this.glacialList1.HotTrackingColor = System.Drawing.Color.LightGray; + this.glacialList1.HoverEvents = false; + this.glacialList1.HoverTime = 1; + this.glacialList1.ImageList = null; + this.glacialList1.ItemHeight = 30; + this.glacialList1.ItemWordWrap = false; + this.glacialList1.Location = new System.Drawing.Point(173, 142); + this.glacialList1.Name = "glacialList1"; + this.glacialList1.Selectable = true; + this.glacialList1.SelectedTextColor = System.Drawing.Color.White; + this.glacialList1.SelectionColor = System.Drawing.Color.Lime; + this.glacialList1.ShowBorder = true; + this.glacialList1.ShowFocusRect = false; + this.glacialList1.Size = new System.Drawing.Size(1100, 621); + this.glacialList1.SortType = GlacialComponents.Controls.SortTypes.InsertionSort; + this.glacialList1.SuperFlatHeaderColor = System.Drawing.Color.White; + this.glacialList1.TabIndex = 10; + this.glacialList1.Text = "glacialList1"; + this.glacialList1.Click += new System.EventHandler(this.glacialList1_Click); + // + // label11 + // + this.label11.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label11.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label11.Location = new System.Drawing.Point(5, 763); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(169, 252); + this.label11.TabIndex = 11; + this.label11.Text = "打印信息:"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label12 + // + this.label12.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label12.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label12.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label12.Location = new System.Drawing.Point(173, 763); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(73, 252); + this.label12.TabIndex = 12; + this.label12.Text = "暂停打印"; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label12.Click += new System.EventHandler(this.label12_Click); + // + // label13 + // + this.label13.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label13.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label13.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label13.Location = new System.Drawing.Point(245, 763); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(73, 252); + this.label13.TabIndex = 13; + this.label13.Text = "下一计划"; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label13.Click += new System.EventHandler(this.label13_Click); + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.Aquamarine; + this.panel2.Controls.Add(this.textBox2); + this.panel2.Controls.Add(this.label17); + this.panel2.Controls.Add(this.label16); + this.panel2.Controls.Add(this.textBox1); + this.panel2.Controls.Add(this.label15); + this.panel2.Controls.Add(this.comboBox2); + this.panel2.Controls.Add(this.label14); + this.panel2.Location = new System.Drawing.Point(318, 763); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(737, 252); + this.panel2.TabIndex = 14; + // + // textBox2 + // + this.textBox2.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.textBox2.Location = new System.Drawing.Point(167, 150); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(167, 41); + this.textBox2.TabIndex = 6; + this.textBox2.Click += new System.EventHandler(this.textBox2_Click); + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label17.Location = new System.Drawing.Point(37, 156); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(103, 29); + this.label17.TabIndex = 5; + this.label17.Text = "数量:"; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label16.Location = new System.Drawing.Point(378, 84); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(141, 29); + this.label16.TabIndex = 4; + this.label16.Text = "(yyMMdd)"; + // + // textBox1 + // + this.textBox1.Enabled = false; + this.textBox1.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.textBox1.Location = new System.Drawing.Point(168, 81); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(166, 41); + this.textBox1.TabIndex = 3; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label15.Location = new System.Drawing.Point(38, 89); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(103, 29); + this.label15.TabIndex = 2; + this.label15.Text = "批次:"; + // + // comboBox2 + // + this.comboBox2.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Location = new System.Drawing.Point(168, 19); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(481, 37); + this.comboBox2.TabIndex = 1; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label14.Location = new System.Drawing.Point(38, 23); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(103, 29); + this.label14.TabIndex = 0; + this.label14.Text = "产品:"; + // + // label18 + // + this.label18.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label18.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label18.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label18.Location = new System.Drawing.Point(1129, 763); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(73, 252); + this.label18.TabIndex = 15; + this.label18.Text = "补打"; + this.label18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label18.Visible = false; + this.label18.Click += new System.EventHandler(this.label18_Click); + // + // label19 + // + this.label19.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label19.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label19.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label19.Location = new System.Drawing.Point(1056, 763); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(73, 252); + this.label19.TabIndex = 16; + this.label19.Text = "手工打印"; + this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label19.Click += new System.EventHandler(this.label19_Click); + // + // label20 + // + this.label20.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label20.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label20.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label20.Location = new System.Drawing.Point(1202, 763); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(73, 252); + this.label20.TabIndex = 17; + this.label20.Text = "删除条码"; + this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label20.Visible = false; + this.label20.Click += new System.EventHandler(this.label20_Click); + // + // label21 + // + this.label21.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label21.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label21.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label21.Location = new System.Drawing.Point(1081, 93); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(192, 50); + this.label21.TabIndex = 18; + this.label21.Text = "停机录入"; + this.label21.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label21.Click += new System.EventHandler(this.label21_Click); + // + // timer1 + // + this.timer1.Enabled = true; + this.timer1.Interval = 5000; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // panel3 + // + this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel3.Controls.Add(this.button2); + this.panel3.Controls.Add(this.button1); + this.panel3.Controls.Add(this.textBox3); + this.panel3.Controls.Add(this.label22); + this.panel3.Location = new System.Drawing.Point(512, 555); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(527, 56); + this.panel3.TabIndex = 19; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(417, 20); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 23); + this.button2.TabIndex = 3; + this.button2.Text = "取消"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(309, 20); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 2; + this.button1.Text = "确定"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(81, 20); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(176, 21); + this.textBox3.TabIndex = 1; + this.textBox3.UseSystemPasswordChar = true; + this.textBox3.Click += new System.EventHandler(this.textBox3_Click); + this.textBox3.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox3_KeyDown); + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(26, 24); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(41, 12); + this.label22.TabIndex = 0; + this.label22.Text = "密码:"; + // + // FrmBarCode + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1280, 1024); + this.Controls.Add(this.panel3); + this.Controls.Add(this.label21); + this.Controls.Add(this.label20); + this.Controls.Add(this.label19); + this.Controls.Add(this.label18); + this.Controls.Add(this.panel2); + this.Controls.Add(this.label13); + this.Controls.Add(this.label12); + this.Controls.Add(this.label11); + this.Controls.Add(this.glacialList1); + this.Controls.Add(this.label10); + this.Controls.Add(this.label9); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.panel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "FrmBarCode"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.FrmBarCode_Load); + this.panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private GlacialComponents.Controls.GlacialList glacialList1; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.Label label22; + + } +} + diff --git a/BBMPTMes/InjectionPC/FrmBarCode.cs b/BBMPTMes/InjectionPC/FrmBarCode.cs new file mode 100644 index 0000000..96d3271 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmBarCode.cs @@ -0,0 +1,1560 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Configuration; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using MESClassLibrary.BLL.BasicInfo; +using System.Net.NetworkInformation; +using System.IO; +using GlacialComponents.Controls; +using MESClassLibrary.Model; +using grdesLib; +using grproLib; +using System.Configuration; +using System.Diagnostics; +using System.Diagnostics.Eventing.Reader; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Threading; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.EFModel; + +namespace InjectionPC +{ + public partial class FrmBarCode : Form + { + public FrmBarCode() + { + InitializeComponent(); + } + + public string oldTime = "", newTime = "",tempTime=""; + public static bool IsStart = true; + public string planID = ""; + public static string code_g = ""; + + private void FrmBarCode_Load(object sender, EventArgs e) + { + try + { + var serverUrl = "http://10.60.101.10:8013/"; + var updateXmlFileName = "InjectionUpdate.xml"; + var updater = new AutoUpdater(); + if (updater.CheckUpdateLoad(serverUrl, updateXmlFileName)) + { + Environment.Exit(0); + } + + Control.CheckForIllegalCrossThreadCalls = false; + Thread t = new Thread(new ThreadStart(TimeGo)); + t.Start(); + timer1.Interval = Program.interVal; + ; + label6.Text = Program.station; + label8.Text = Program.OperatorName; + panel3.Visible = false; + textBox3.Text = ""; + //comboBox1.Text = "A班"; + initProduct(); + + initBarCode(); + DateTime aa = GetDateTime(); + + if (aa.Hour >= 8 && aa.Hour < 20) + { + Program.Shift = "A班"; + Program.ProductDate = aa.ToString("yyyy-MM-dd"); + } + else + { + Program.Shift = "B班"; + if (aa.Hour >= 0 && aa.Hour < 8) + { + Program.ProductDate =aa.AddDays(-1).ToString("yyyy-MM-dd"); + //Program.ProductDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"); + } + else + { + Program.ProductDate = aa.ToString("yyyy-MM-dd"); + //Program.ProductDate = DateTime.Now.ToString("yyyy-MM-dd"); + } + } + comboBox1.Text = Program.Shift; + + textBox1.Text = Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + + Program.ProductDate.Substring(8, 2); + if (IsStart == false) + { + timer1.Enabled = false; + label12.Text = "开始打印"; + label12.BackColor = System.Drawing.Color.Gray; + } + + else + { + timer1.Enabled = true; + label12.Text = "暂停打印"; + label12.BackColor = System.Drawing.Color.DeepSkyBlue; + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + } + + } + + private void initProduct() + { + comboBox2.Items.Clear(); + + ProductBLL bll=new ProductBLL(); + + DataTable dt = bll.SearchInfoByType("2000", Program.station); + if (dt != null && dt.Rows.Count > 0) + { + for (int i = 0; i < dt.Rows.Count; i++) + { + comboBox2.Items.Add(dt.Rows[i]["ProductName"].ToString()); + } + } + dt.Dispose(); + } + + private void initBarCode () + { + BarCodeBLL bll=new BarCodeBLL(); + + glacialList1.Items.Clear(); + DataTable dt = bll.SearchInfo(Program.station); + if (dt != null && dt.Rows.Count > 0) + { + for (int i = 0; i < dt.Rows.Count; i++) + { + glacialList1.Items.Add(i.ToString()); + glacialList1.Items[i].SubItems[0].Text = dt.Rows[i]["BarCode"].ToString(); + glacialList1.Items[i].SubItems[1].Text = dt.Rows[i]["ProductName"].ToString(); + glacialList1.Items[i].SubItems[2].Text = dt.Rows[i]["PrintType"].ToString(); + glacialList1.Items[i].SubItems[3].Text = dt.Rows[i]["CreateTime"].ToString() == "" ? "" : Convert.ToDateTime(dt.Rows[i]["CreateTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + //glacialList1.Items[i].SubItems[3].Text = dt.Rows[i]["CreateTime"].ToString() == "" ? "" : dt.Rows[i]["CreateTime"].ToString("yyyy-MM-dd HH:mm:ss.fff"); + //glacialList1.Refresh(); + } + } + } + /// + /// 质量录入 + /// + /// + /// + private void label9_Click(object sender, EventArgs e) + { + //this.Hide(); + Form fr=new FrmQuality(); + fr.Show(); + } + + private void TimeGo() + { + System.Timers.Timer timer = new System.Timers.Timer(); + timer.Interval = 1000; + timer.Enabled = true; + timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick); + } + + private void timer_Tick(object sender, EventArgs e) + { + label2.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + Thread.Sleep(500); + } + + private void timer1_Tick(object sender, EventArgs e) + { + BarCodeBLL Barbll = new BarCodeBLL(); + BarCodeModel md = new BarCodeModel(); + timer1.Stop(); + Ping p1 = new Ping(); + bool status = false; + string code = "",OneCode=""; + string newcode = "", newcode1 = "", NewOneCode = "", NewOneCode1 = "", printerName = "", rfilename = "", reportName=""; + string[] part=new string[3]; + GridppReport report = new GridppReport(); + long a = 0; + + ProductOfInjectionBLL pbll = new ProductOfInjectionBLL(); + ProductOfInjectionModel pmd = new ProductOfInjectionModel(); + InjectionPlanBLL bll = new InjectionPlanBLL(); + BarCodeBLL brbll = new BarCodeBLL(); + ProductBLL productBll =new ProductBLL(); + + DataTable pdt3 = null; + + + DateTime aa = GetDateTime(); + + if (aa.Hour >= 8 && aa.Hour < 20) + { + Program.Shift = "A班"; + Program.ProductDate = aa.ToString("yyyy-MM-dd"); + } + else + { + Program.Shift = "B班"; + if (aa.Hour >= 0 && aa.Hour < 8) + { + Program.ProductDate = aa.AddDays(-1).ToString("yyyy-MM-dd"); + //Program.ProductDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"); + } + else + { + Program.ProductDate = aa.ToString("yyyy-MM-dd"); + //Program.ProductDate = DateTime.Now.ToString("yyyy-MM-dd"); + } + } + //if (GetDateTime().Hour >= 8 && GetDateTime().Hour < 20) + //{ + // Program.Shift = "A班"; + // Program.ProductDate = DateTime.Now.ToString("yyyy-MM-dd"); + //} + //else + //{ + // Program.Shift = "B班"; + // if (GetDateTime().Hour >= 0 && GetDateTime().Hour < 8) + // { + // Program.ProductDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"); + // } + // else + // { + // Program.ProductDate = DateTime.Now.ToString("yyyy-MM-dd"); + // } + //} + + //班组 + comboBox1.Text = Program.Shift; + //批次 + textBox1.Text = Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + + Program.ProductDate.Substring(8, 2); + LogHelper.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + try + { + PingReply reply = p1.Send(Program.IP); //发送主机名或Ip地址 + StringBuilder sbuilder; + if (reply.Status == IPStatus.Success) + { + //读取称重文件 + //status = Upload.DoConnComputer(Program.IP, Program.WeightFolder, Program.WeightUser, Program.WeightPsw); + status = true; + if (status) + { + //DirectoryInfo theFolder = new DirectoryInfo(@"\\192.168.1.16\aa"); + //DirectoryInfo theFolder = new DirectoryInfo(@"\\" + Program.IP + "\\UserData"); + DirectoryInfo theFolder = new DirectoryInfo(@"\\" + Program.IP + "\\" + Program.WeightFolder); + //string filename = theFolder.ToString() + "\\ProdHisFile.csv"; + string filename = theFolder.ToString() + "\\" + Program.WeightFile; + + FileInfo fl = new FileInfo(filename); + + + if (oldTime == "" || oldTime == "none") + { + oldTime = fl.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss"); + tempTime = oldTime; + } + else + { + newTime = fl.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss"); + tempTime=newTime; + TimeSpan s = Convert.ToDateTime(tempTime) - Convert.ToDateTime(oldTime); + if (s.TotalSeconds<50) + { + timer1.Interval = Program.interVal; + timer1.Start(); + return; + } + else + { + if (newTime != oldTime) + { + #region 生成打印条码 1、当前计划的存货代码2、barcode表根据存货代码查找今天的流水 + + DataTable dt = bll.SearchInfoByName(Program.station); + if (dt != null && dt.Rows.Count > 0) + { + planID = dt.Rows[0]["InjectionPlanID"].ToString(); + DataTable dt2 = null; + if (dt.Rows[0]["ProductName"].ToString().IndexOf("门槛") != -1) + { + //插入两条数据,一个左门槛,一个右门槛 + dt2 = brbll.SearchInfoByStock(dt.Rows[0]["StockNo"].ToString().Trim()); + if (dt2 != null && dt2.Rows.Count > 0) + { + code = dt2.Rows[0]["BarCode"].ToString().Trim(); + newcode = code.Substring(0, code.Length - 4) + + (Convert.ToInt32(code.Substring(code.Length - 4, 4)) + 1).ToString() + .PadLeft(4, '0'); + OneCode = dt2.Rows[0]["OneBarCode"].ToString().Trim(); + NewOneCode = OneCode.Substring(0, OneCode.Length - 4) + (Convert.ToInt32(OneCode.Substring(OneCode.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); + } + else + { + //按照二维码的生成规则 + newcode = dt.Rows[0]["PartNo"].ToString().Trim() + "." + Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + Program.ProductDate.Substring(8, 2) + "." + "0001"; + NewOneCode = dt.Rows[0]["StockNo"].ToString().Trim() + Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + Program.ProductDate.Substring(8, 2) + "0001"; + } + + ProductBLL prbll = new ProductBLL(); + DataTable prdt = null; + if (dt.Rows[0]["ProductName"].ToString().IndexOf("左") != -1) + { + #region 计划为左门槛 + + prdt = prbll.SearchInfoByProductName( + dt.Rows[0]["ProductName"].ToString().TrimEnd() + .Substring(0, dt.Rows[0]["ProductName"].ToString().TrimEnd().Length - 3) + "右门槛"); + if (prdt != null && prdt.Rows.Count > 0) + { + dt2 = brbll.SearchInfoByStock(prdt.Rows[0]["StockNo"].ToString().Trim()); + if (dt2 != null && dt2.Rows.Count > 0) + { + code = dt2.Rows[0]["BarCode"].ToString().Trim(); + newcode1 = code.Substring(0, code.Length - 4) + + (Convert.ToInt32(code.Substring(code.Length - 4, 4)) + 1).ToString() + .PadLeft(4, '0'); + OneCode = dt2.Rows[0]["OneBarCode"].ToString().Trim(); + NewOneCode1 = OneCode.Substring(0, OneCode.Length - 4) + (Convert.ToInt32(OneCode.Substring(OneCode.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); + } + else + { + //按照二维码的生成规则 + newcode1 = prdt.Rows[0]["PartNo"].ToString().Trim() + "." + Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + Program.ProductDate.Substring(8, 2) + "." + "0001"; + NewOneCode1 = prdt.Rows[0]["StockNo"].ToString().Trim() + Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + Program.ProductDate.Substring(8, 2) + "0001"; + } + + #region 如果顺序号不一致取最大的 + if (Convert.ToInt32(newcode.Substring(newcode.Length - 4, 4)) != + Convert.ToInt32(newcode1.Substring(newcode1.Length - 4, 4))) + { + if (Convert.ToInt32(newcode.Substring(newcode.Length - 4, 4)) > Convert.ToInt32(newcode1.Substring(newcode1.Length - 4, 4))) + { + newcode1 = newcode1.Substring(0, newcode1.Length - 4) + + newcode.Substring(newcode.Length - 4, 4); + NewOneCode1 = NewOneCode1.Substring(0, NewOneCode1.Length - 4) + newcode.Substring(newcode.Length - 4, 4); + } + else + { + newcode = newcode.Substring(0, newcode.Length - 4) + newcode1.Substring(newcode1.Length - 4, 4); + NewOneCode = NewOneCode.Substring(0, NewOneCode.Length - 4) + newcode1.Substring(newcode1.Length - 4, 4); + } + } + #endregion + + #region 插入tb_barcode表记录 + + part = newcode.Split('.'); + md.ID = Guid.NewGuid().ToString(); + md.StationID = dt.Rows[0]["StationID"].ToString(); + md.OneBarCode = NewOneCode; + md.BarCode = newcode; + md.StockNo = dt.Rows[0]["StockNo"].ToString(); + md.PrintType = 0; + md.PlanID = planID; + md.BatchNo = textBox1.Text; + + DataTable pdt = productBll.SearchIsImportByStockNo(NewOneCode.Substring(0, 10)); + if (pdt != null && pdt.Rows.Count > 0) + { + if (pdt.Rows[0]["isImport"].ToString() == "1") + { + md.Import = "国产料Kingfa"; + } + else + { + md.Import = ""; + } + } + + if (Barbll.Add_Info(md)) + { + #region 打印条码 左 + + filename = @"D:\111 - 副本.grf"; + DataTable headTable = new DataTable(); + headTable.Columns.Add("StationNo"); + headTable.Columns.Add("OneBarCode"); + headTable.Columns.Add("BarCode"); + headTable.Columns.Add("ProductName"); + headTable.Columns.Add("IsImport"); + DataRow row = headTable.NewRow(); + row["StationNo"] = Program.station; + + row["OneBarCode"] = NewOneCode; + row["BarCode"] = newcode; + row["ProductName"] = dt.Rows[0]["ProductName"]; + row["IsImport"] = md.Import; + reportName = ConfigurationManager.AppSettings["Printer1"]; + headTable.Rows.Add(row); + + ReportHelper rp = new ReportHelper(filename, headTable, null, + (int)GRPaperOrientation.grpoDefault, 1, reportName); + rp.Report.Print(false); + + #endregion + + LogHelper.WriteLog("打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ";" + NewOneCode); + + Barbll.Update_Info(md); + } + else + { + MessageBox.Show("连接数据库超时!"); + timer1.Interval = Program.interVal; + timer1.Start(); + return; + } + + #endregion + + #region 插入tb_barcode表记录 + + part = newcode.Split('.'); + md.ID = Guid.NewGuid().ToString(); + md.StationID = dt.Rows[0]["StationID"].ToString(); + md.OneBarCode = NewOneCode1; + md.BarCode = newcode1; + md.StockNo = prdt.Rows[0]["StockNo"].ToString().Trim(); + md.PrintType = 0; + md.PlanID = planID; + md.BatchNo = textBox1.Text; + + DataTable pdt1 = productBll.SearchIsImportByStockNo(NewOneCode.Substring(0, 10)); + if (pdt1 != null && pdt1.Rows.Count > 0) + { + if (pdt1.Rows[0]["isImport"].ToString() == "1") + { + md.Import = "国产料Kingfa"; + } + else + { + md.Import = ""; + } + } + + if (Barbll.Add_Info(md)) + { + #region 打印条码 右 + + filename = @"D:\111 - 副本.grf"; + DataTable headTable1 = new DataTable(); + headTable1.Columns.Add("StationNo"); + headTable1.Columns.Add("OneBarCode"); + headTable1.Columns.Add("BarCode"); + headTable1.Columns.Add("ProductName"); + headTable1.Columns.Add("IsImport"); + DataRow row1 = headTable1.NewRow(); + row1["StationNo"] = Program.station; + row1["OneBarCode"] = NewOneCode1; + row1["BarCode"] = newcode1; + row1["ProductName"] = dt.Rows[0]["ProductName"].ToString().TrimEnd() + .Substring(0, dt.Rows[0]["ProductName"].ToString().TrimEnd().Length - 3) + "右门槛"; + row1["IsImport"] = md.Import; + reportName = ConfigurationManager.AppSettings["Printer2"]; + headTable1.Rows.Add(row1); + + ReportHelper rp1 = new ReportHelper(filename, headTable1, null, + (int)GRPaperOrientation.grpoDefault, 1, reportName); + rp1.Report.Print(false); + + #endregion + + LogHelper.WriteLog("打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ";" + NewOneCode1); + + Barbll.Update_Info(md); + } + else + { + MessageBox.Show("连接数据库超时!"); + timer1.Interval = Program.interVal; + timer1.Start(); + return; + } + + #endregion + } + #endregion + } + + else + { + #region 计划为右门槛 + + prdt = prbll.SearchInfoByProductName( + dt.Rows[0]["ProductName"].ToString().TrimEnd() + .Substring(0, dt.Rows[0]["ProductName"].ToString().TrimEnd().Length - 3) + "左"); + if (prdt != null && prdt.Rows.Count > 0) + { + dt2 = brbll.SearchInfoByStock(prdt.Rows[0]["StockNo"].ToString().Trim()); + if (dt2 != null && dt2.Rows.Count > 0) + { + code = dt2.Rows[0]["BarCode"].ToString().Trim(); + newcode1 = code.Substring(0, code.Length - 4) + + (Convert.ToInt32(code.Substring(code.Length - 4, 4)) + 1).ToString() + .PadLeft(4, '0'); + OneCode = dt2.Rows[0]["OneBarCode"].ToString().Trim(); + NewOneCode1 = OneCode.Substring(0, OneCode.Length - 4) + (Convert.ToInt32(OneCode.Substring(OneCode.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); + } + else + { + //按照二维码的生成规则 + newcode1 = prdt.Rows[0]["PartNo"].ToString().Trim() + "." + Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + Program.ProductDate.Substring(8, 2) + "." + "0001"; + NewOneCode1 = prdt.Rows[0]["StockNo"].ToString().Trim() + Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + Program.ProductDate.Substring(8, 2) + "0001"; + } + + #region 如果顺序号不一致取最大的 + if (Convert.ToInt32(newcode.Substring(newcode.Length - 4, 4)) != + Convert.ToInt32(newcode1.Substring(newcode1.Length - 4, 4))) + { + if (Convert.ToInt32(newcode.Substring(newcode.Length - 4, 4)) > Convert.ToInt32(newcode1.Substring(newcode1.Length - 4, 4))) + { + newcode1 = newcode1.Substring(0, newcode1.Length - 4) + + newcode.Substring(newcode.Length - 4, 4); + NewOneCode1 = NewOneCode1.Substring(0, NewOneCode1.Length - 4) + newcode.Substring(newcode.Length - 4, 4); + } + else + { + newcode = newcode.Substring(0, newcode.Length - 4) + newcode1.Substring(newcode1.Length - 4, 4); + NewOneCode = NewOneCode.Substring(0, NewOneCode.Length - 4) + newcode1.Substring(newcode1.Length - 4, 4); + } + } + #endregion + + #region 插入tb_barcode表记录 + + part = newcode.Split('.'); + md.ID = Guid.NewGuid().ToString(); + md.StationID = dt.Rows[0]["StationID"].ToString(); + md.OneBarCode = NewOneCode; + md.BarCode = newcode; + md.StockNo = dt.Rows[0]["StockNo"].ToString(); + md.PrintType = 0; + md.PlanID = planID; + md.BatchNo = textBox1.Text; + + DataTable pdt = productBll.SearchIsImportByStockNo(NewOneCode.Substring(0, 10)); + if (pdt != null && pdt.Rows.Count > 0) + { + if (pdt.Rows[0]["isImport"].ToString() == "1") + { + md.Import = "国产料Kingfa"; + } + else + { + md.Import = ""; + } + } + + if (Barbll.Add_Info(md)) + { + #region 打印条码 右 + + filename = @"D:\111 - 副本.grf"; + DataTable headTable = new DataTable(); + headTable.Columns.Add("StationNo"); + headTable.Columns.Add("OneBarCode"); + headTable.Columns.Add("newcode"); + headTable.Columns.Add("ProductName"); + headTable.Columns.Add("IsImport"); + DataRow row = headTable.NewRow(); + row["StationNo"] = Program.station; + row["OneBarCode"] = NewOneCode; + row["BarCode"] = newcode; + row["ProductName"] = dt.Rows[0]["ProductName"].ToString(); + row["IsImport"] = md.Import; + reportName = ConfigurationManager.AppSettings["Printer2"]; + headTable.Rows.Add(row); + + ReportHelper rp = new ReportHelper(filename, headTable, null, + (int)GRPaperOrientation.grpoDefault, 1, reportName); + rp.Report.Print(false); + + #endregion + + LogHelper.WriteLog("打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ";" + NewOneCode); + + Barbll.Update_Info(md); + } + else + { + MessageBox.Show("连接数据库超时!"); + timer1.Interval = Program.interVal; + timer1.Start(); + return; + } + + #endregion + + #region 插入tb_barcode表记录 + + part = newcode.Split('.'); + md.ID = Guid.NewGuid().ToString(); + md.StationID = dt.Rows[0]["StationID"].ToString(); + md.OneBarCode = NewOneCode1; + md.BarCode = newcode1; + md.StockNo = prdt.Rows[0]["StockNo"].ToString(); + md.PrintType = 0; + md.PlanID = planID; + md.BatchNo = textBox1.Text; + + DataTable pdt2 = productBll.SearchIsImportByStockNo(NewOneCode.Substring(0, 10)); + if (pdt2 != null && pdt2.Rows.Count > 0) + { + if (pdt2.Rows[0]["isImport"].ToString() == "1") + { + md.Import = "国产料Kingfa"; + } + else + { + md.Import = ""; + } + } + + if (Barbll.Add_Info(md)) + { + #region 打印条码 左 + + filename = @"D:\111 - 副本.grf"; + DataTable headTable1 = new DataTable(); + headTable1.Columns.Add("StationNo"); + headTable1.Columns.Add("OneBarCode"); + headTable1.Columns.Add("newcode"); + headTable1.Columns.Add("ProductName"); + headTable1.Columns.Add("IsImport"); + DataRow row1 = headTable1.NewRow(); + row1["StationNo"] = Program.station; + row1["OneBarCode"] = NewOneCode1; + row1["BarCode"] = newcode1; + row1["ProductName"] = dt.Rows[0]["ProductName"].ToString().TrimEnd() + .Substring(0, dt.Rows[0]["ProductName"].ToString().TrimEnd().Length - 3) + "左门槛"; + row1["IsImport"] = md.Import; + reportName = ConfigurationManager.AppSettings["Printer1"]; + headTable1.Rows.Add(row1); + + ReportHelper rp1 = new ReportHelper(filename, headTable1, null, + (int)GRPaperOrientation.grpoDefault, 1, reportName); + rp1.Report.Print(false); + + #endregion + + LogHelper.WriteLog("打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ";" + NewOneCode1); + + Barbll.Update_Info(md); + } + else + { + MessageBox.Show("连接数据库超时!"); + timer1.Interval = Program.interVal; + timer1.Start(); + return; + } + + #endregion + + } + #endregion + } + } + else + { + #region 不是门槛 + + dt2 = brbll.SearchInfoByStock(dt.Rows[0]["StockNo"].ToString().Trim()); + if (dt2 != null && dt2.Rows.Count > 0) + { + code = dt2.Rows[0]["BarCode"].ToString().Trim(); + newcode = code.Substring(0, code.Length - 4) + + (Convert.ToInt32(code.Substring(code.Length - 4, 4)) + 1).ToString() + .PadLeft(4, '0'); + OneCode = dt2.Rows[0]["OneBarCode"].ToString().Trim(); + NewOneCode = OneCode.Substring(0, OneCode.Length - 4) + (Convert.ToInt32(OneCode.Substring(OneCode.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); + } + else + { + //按照二维码的生成规则 + newcode = dt.Rows[0]["PartNo"].ToString().Trim() + "." + Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + Program.ProductDate.Substring(8, 2) + "." + "0001"; + NewOneCode = dt.Rows[0]["StockNo"].ToString().Trim() + Program.ProductDate.Substring(2, 2) + Program.ProductDate.Substring(5, 2) + Program.ProductDate.Substring(8, 2) + "0001"; + } + //dt2.Dispose(); + //插入tb_barcode表记录 + + part = newcode.Split('.'); + md.ID = Guid.NewGuid().ToString(); + md.StationID = dt.Rows[0]["StationID"].ToString(); + md.OneBarCode = NewOneCode; + md.BarCode = newcode; + md.StockNo = dt.Rows[0]["StockNo"].ToString(); + md.PrintType = 0; + md.PlanID = planID; + md.BatchNo = textBox1.Text; + + DataTable pdt = productBll.SearchIsImportByStockNo(NewOneCode.Substring(0, 10)); + if (pdt != null && pdt.Rows.Count > 0) + { + if (pdt.Rows[0]["isImport"].ToString() == "1") + { + md.Import = "国产料Kingfa"; + } + else + { + md.Import = ""; + } + } + if (Barbll.Add_Info(md)) + { + #region 打印条码 + + filename = @"D:\111 - 副本.grf"; + DataTable headTable = new DataTable(); + headTable.Columns.Add("StationNo"); + headTable.Columns.Add("OneBarCode"); + headTable.Columns.Add("BarCode"); + headTable.Columns.Add("ProductName"); + headTable.Columns.Add("IsImport"); + DataRow row = headTable.NewRow(); + row["StationNo"] = Program.station; + + row["OneBarCode"] = NewOneCode; + row["BarCode"] = newcode; + row["ProductName"] = dt.Rows[0]["ProductName"]; + row["IsImport"] = md.Import; + reportName = ConfigurationManager.AppSettings["Printer1"]; + headTable.Rows.Add(row); + + ReportHelper rp = new ReportHelper(filename, headTable, null, + (int)GRPaperOrientation.grpoDefault, 1, reportName); + rp.Report.Print(false); + + #endregion + + LogHelper.WriteLog("打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ";" + NewOneCode); + + Barbll.Update_Info(md); + } + else + { + MessageBox.Show("连接数据库超时!"); + timer1.Interval = Program.interVal; + timer1.Start(); + return; + } + + #endregion + } + } + + #endregion + oldTime = newTime; + } + } + } + + initBarCode(); + + } + else + { + MessageBox.Show("连接称重仪失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + timer1.Interval = Program.interVal; + timer1.Start(); + } + } + else + { + MessageBox.Show("连接称重仪失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + timer1.Interval = Program.interVal; + timer1.Start(); + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + MessageBox.Show(ex.ToString(), "提示", MessageBoxButtons.OK); + + //MessageBox.Show("数据库连接失败!", "提示", MessageBoxButtons.OK); + timer1.Interval = Program.interVal; + timer1.Start(); + + } + timer1.Interval = Program.interVal; + timer1.Start(); + } + + + private void label12_Click(object sender, EventArgs e) + { + try + { + if (label12.Text == "暂停打印") + { + DialogResult result = MessageBox.Show("确认暂停打印?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); + if (result == DialogResult.OK) + { + timer1.Stop(); + IsStart = false; + label12.Text = "开始打印"; + label12.BackColor = System.Drawing.Color.Gray; + } + else + { + return; + } + } + + else + { + DialogResult result = MessageBox.Show("确认开始打印?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); + if (result == DialogResult.OK) + { + IsStart = true; + timer1.Start(); + label12.Text = "暂停打印"; + label12.BackColor = System.Drawing.Color.DeepSkyBlue; + } + else + { + return; + } + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + + /// + /// 手工打印 + /// + /// + /// + private void label19_Click(object sender, EventArgs e) + { + string code = "",stationID="",OneCode=""; + string newcode = "", partNo = "", stockNo = "", NewOneCode = "", filename = "", reportName = "", ProductName=""; + + try + { + #region 数据合法性判断 + + if (comboBox2.Text.Trim() == "") + { + MessageBox.Show("请选择产品!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (textBox1.Text.Trim() == "") + { + MessageBox.Show("请输入批次!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (textBox1.Text.Trim().Length != 6) + { + MessageBox.Show("批次格式不正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (textBox2.Text.Trim() == "") + { + MessageBox.Show("请输入数量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (!IsNumeric(textBox2.Text.Trim())) + { + MessageBox.Show("数量格式不正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (Convert.ToInt32(textBox2.Text.Trim()) > 10) + { + MessageBox.Show("数量不能大于10!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + #endregion + + #region 获取工位编号 + + StationBLL sbll = new StationBLL(); + DataTable sdt = sbll.SearchInfoByNo(Program.station); + if (sdt != null && sdt.Rows.Count > 0) + { + stationID = sdt.Rows[0]["StationID"].ToString(); + } + sdt.Dispose(); + #endregion + + DialogResult result = MessageBox.Show("确定手工打印条码?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); + if (result == DialogResult.OK) + { + #region 生成条码 + + ProductBLL pbll = new ProductBLL(); + + //查询零件号 + DataTable pdt = pbll.SearchInfoByName(comboBox2.Text, "2000"); + if (pdt != null && pdt.Rows.Count > 0) + { + partNo = pdt.Rows[0]["PartNo"].ToString().Trim(); + stockNo = pdt.Rows[0]["StockNo"].ToString().Trim(); + //ProductName = pdt.Rows[0]["ProductName"].ToString().Trim(); + } + + pdt.Dispose(); + + //根据零件号、批次号查找 + + BarCodeBLL bll = new BarCodeBLL(); + BarCodeModel md = new BarCodeModel(); + + DataTable dt = bll.SearchSerialNoByBarCode(stockNo, textBox1.Text.Trim()); + if (dt != null && dt.Rows.Count > 0) + { + OneCode = dt.Rows[0]["OneBarCode"].ToString().Trim(); + code = dt.Rows[0]["BarCode"].ToString().TrimEnd(); + for (int i = 1; i <= Convert.ToInt32(textBox2.Text.Trim()); i++) + { + newcode = code.Substring(0, code.Length - 4) + + (Convert.ToInt32(code.Substring(code.Length - 4, 4)) + i) + .ToString() + .PadLeft(4, '0'); + NewOneCode = OneCode.Substring(0, OneCode.Length - 4) + + (Convert.ToInt32(OneCode.Substring(OneCode.Length - 4, 4)) + i).ToString() + .PadLeft(4, '0'); + string[] part = newcode.Split('.'); + //存入tb_BarCode表 + md.ID = Guid.NewGuid().ToString(); + md.StationID = stationID; + md.OneBarCode = NewOneCode; + md.BarCode = newcode; + + md.StockNo = stockNo; + md.PrintType = 1; + md.BatchNo=textBox1.Text.Trim(); + + DataTable pdt1 = pbll.SearchIsImportByStockNo(NewOneCode.Substring(0, 10)); + if (pdt1 != null && pdt1.Rows.Count > 0) + { + if (pdt1.Rows[0]["isImport"].ToString() == "1") + { + md.Import = "国产料Kingfa"; + } + else + { + md.Import = ""; + } + } + + if ( bll.Add_Info(md)) + { + #region 打印条码 + + filename = @"D:\111 - 副本.grf"; + DataTable headTable = new DataTable(); + headTable.Columns.Add("StationNo"); + headTable.Columns.Add("OneBarCode"); + headTable.Columns.Add("BarCode"); + headTable.Columns.Add("ProductName"); + headTable.Columns.Add("IsImport"); + DataRow row = headTable.NewRow(); + row["StationNo"] = Program.station; + + row["OneBarCode"] = NewOneCode; + row["BarCode"] = newcode; + row["ProductName"] = comboBox2.Text; + row["IsImport"] = md.Import; + if (comboBox2.Text.Contains("右")) + { + reportName = ConfigurationManager.AppSettings["Printer2"]; + } + else + { + reportName = ConfigurationManager.AppSettings["Printer1"]; + } + + headTable.Rows.Add(row); + + ReportHelper rp = new ReportHelper(filename, headTable, null, + (int)GRPaperOrientation.grpoDefault, 1, reportName); + rp.Report.Print(false); + + #endregion + + LogHelper.WriteLog("打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ";" + NewOneCode); + + bll.Update_Info(md); + } + else + { + MessageBox.Show("连接数据库超时!"); + return; + } + + #region 更新产量表、计划表 + + //ProductOfInjectionBLL InjectionBll = new ProductOfInjectionBLL(); + //ProductOfInjectionModel pmd = new ProductOfInjectionModel(); + + + //pmd.ID = Guid.NewGuid().ToString(); + //pmd.StationID = md.StationID; + //pmd.ProductDate = Program.ProductDate; + //pmd.ClassName = Program.Shift; + //pmd.StockNo = md.StockNo; + //pmd.PartNo = part[0]; + //pmd.ProductCount = 1; + //pmd.BadCount = 0; + //pmd.PlanID = planID; + //DataTable pdt1 = InjectionBll.SearchCountByInfo(md.StationID, Program.ProductDate, comboBox1.Text, + // md.StockNo, part[0]); + + //if (pdt1 != null && pdt1.Rows.Count > 0) + //{ + // //跟新 + // InjectionBll.Update_Info(pmd); + //} + //else + //{ + + // //插入 + // InjectionBll.Add_Info(pmd); + //} + //pdt1.Dispose(); + + #region 注释掉 + + //InjectionPlanBLL ibll = new InjectionPlanBLL(); + //InjectionPlanModel imd = new InjectionPlanModel(); + + //imd.CompleteCount = 1; + //imd.StationID = md.StationID; + //imd.StockNo = md.StockNo; + //ibll.UpdateCount(imd); + + #endregion + + #endregion + } + } + else + { + for (int i = 1; i <= Convert.ToInt32(textBox2.Text.Trim()); i++) + { + newcode = partNo + "." + textBox1.Text.Trim() + "." + i.ToString().PadLeft(4, '0'); + NewOneCode = stockNo + textBox1.Text.Trim() + i.ToString().PadLeft(4, '0'); + string[] part = newcode.Split('.'); + //存入tb_BarCode表 + md.ID = Guid.NewGuid().ToString(); + md.StationID = stationID; + md.StockNo = stockNo; + md.OneBarCode = NewOneCode; + md.BarCode = newcode; + md.PrintType = 1; + md.BatchNo = textBox1.Text; + + DataTable pdt1 = pbll.SearchIsImportByStockNo(NewOneCode.Substring(0, 10)); + if (pdt1 != null && pdt1.Rows.Count > 0) + { + if (pdt1.Rows[0]["isImport"].ToString() == "1") + { + md.Import = "国产料Kingfa"; + } + else + { + md.Import = ""; + } + } + + if ( bll.Add_Info(md)) + { + #region 打印条码 + + filename = @"D:\111 - 副本.grf"; + DataTable headTable = new DataTable(); + headTable.Columns.Add("StationNo"); + headTable.Columns.Add("OneBarCode"); + headTable.Columns.Add("BarCode"); + headTable.Columns.Add("ProductName"); + headTable.Columns.Add("IsImport"); + DataRow row = headTable.NewRow(); + row["StationNo"] = Program.station; + + row["OneBarCode"] = NewOneCode; + row["BarCode"] = newcode; + row["ProductName"] = comboBox2.Text; + row["IsImport"] = md.Import; + if (comboBox2.Text.Contains("右")) + { + reportName = ConfigurationManager.AppSettings["Printer2"]; + } + else + { + reportName = ConfigurationManager.AppSettings["Printer1"]; + } + + headTable.Rows.Add(row); + + ReportHelper rp = new ReportHelper(filename, headTable, null, + (int)GRPaperOrientation.grpoDefault, 1, reportName); + rp.Report.Print(false); + + #endregion + + LogHelper.WriteLog("打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ";" + NewOneCode); + + bll.Update_Info(md); + } + else + { + MessageBox.Show("连接数据库超时!"); + return; + } + + #region 更新产量表、计划表 + + //ProductOfInjectionBLL InjectionBll = new ProductOfInjectionBLL(); + //ProductOfInjectionModel pmd = new ProductOfInjectionModel(); + + //pmd.ID = Guid.NewGuid().ToString(); + //pmd.StationID = md.StationID; + //pmd.ProductDate = Program.ProductDate; + //pmd.ClassName = Program.Shift; + //pmd.StockNo = md.StockNo; + //pmd.PartNo = part[0]; + //pmd.ProductCount = 1; + //pmd.BadCount = 0; + //pmd.PlanID = planID; + //DataTable pdt1 = InjectionBll.SearchCountByInfo(md.StationID, Program.ProductDate, comboBox1.Text, + // md.StockNo, part[0]); + + //if (pdt1 != null && pdt1.Rows.Count > 0) + //{ + // //跟新 + // InjectionBll.Update_Info(pmd); + //} + //else + //{ + + // //插入 + // InjectionBll.Add_Info(pmd); + //} + //pdt1.Dispose(); + + #region 注释掉 + + //InjectionPlanBLL ibll = new InjectionPlanBLL(); + //InjectionPlanModel imd = new InjectionPlanModel(); + + //imd.CompleteCount = 1; + //imd.StationID = md.StationID; + //imd.StockNo = md.StockNo; + //ibll.UpdateCount(imd); + + #endregion + + #endregion + + } + } + + #endregion + + initBarCode(); + } + else + { + return; + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + } + + private static bool IsNumeric(string str) + { + System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[0-9]\d*$"); + return reg1.IsMatch(str); + } + + /// + /// 补打条码 + /// + /// + /// + private void label18_Click(object sender, EventArgs e) + { + textBox3.Text = ""; + panel3.Visible = true; + } + + + public DateTime GetDateTime() + { + string sql = ""; + DateTime time; + DataTable dt; + try + { + sql = @"select convert(char(23),getdate(),121) as time"; + + dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + //time = Convert.ToDateTime(dt.Rows[0]["time"].ToString()); + time = DateTime.ParseExact(dt.Rows[0]["time"].ToString(), "yyyy-MM-dd HH:mm:ss.fff", + System.Globalization.CultureInfo.CurrentCulture); + + } + else + { + time = DateTime.Now; + } + return time; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return DateTime.Now; + } + } + + private void ReportInitialize() + { + + } + + private void ReportFetchRecord() + { + + } + + /// + /// 切换一下计划 + /// + /// + /// + private void label13_Click(object sender, EventArgs e) + { + string stationID = "",nextPlan=""; + InjectionPlanBLL bll = new InjectionPlanBLL(); + InjectionPlanModel md = new InjectionPlanModel(); + + try + { + #region 获取下一计划 + + DataTable dt = bll.NextSearchInfoByName(Program.station); + if (dt != null && dt.Rows.Count > 1) + { + nextPlan = dt.Rows[1]["ProductName"].ToString(); + } + else + { + nextPlan = "暂无下一计划,请联系计划员"; + } + + #endregion + DialogResult result = MessageBox.Show("确定切换下一计划:"+nextPlan, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); + if (result == DialogResult.OK) + { + #region 获取工位编号 + + StationBLL sbll = new StationBLL(); + DataTable sdt = sbll.SearchInfoByNo(Program.station); + if (sdt != null && sdt.Rows.Count > 0) + { + stationID = sdt.Rows[0]["StationID"].ToString(); + } + sdt.Dispose(); + + #endregion + + #region 更新计划完成 + + md.StationID = stationID; + bll.UpdateFinish(md); + + #endregion + MessageBox.Show("操作成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("取消操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + + } + + /// + /// 手动删除 + /// + /// + /// + private void label20_Click(object sender, EventArgs e) + { + BarCodeBLL bll=new BarCodeBLL(); + BarCodeModel md=new BarCodeModel(); + + try + { + if (glacialList1.SelectedItems.Count == 0) + { + MessageBox.Show("请选择要补打的条码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + else + { + GlacialComponents.Controls.GLItem gv; + gv = glacialList1.SelectedItems[0] as GlacialComponents.Controls.GLItem; + md.BarCode = gv.Text; + + bll.DelBarCode(md); + initBarCode(); + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + } + + private void label21_Click(object sender, EventArgs e) + { + Form fr=new FrmDown(); + fr.Show(); + //this.Hide(); + } + + private void label2_Click(object sender, EventArgs e) + { + Environment.Exit(0); + } + + private void textBox2_Click(object sender, EventArgs e) + { + //Process.Start(@"C:\windows\system32\osk.exe"); + ShowInputPanel(); + } + + private const Int32 WM_SYSCOMMAND = 274; + + private const UInt32 SC_CLOSE = 61536; + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); + + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + + private static extern int RegisterWindowMessage(string lpString); + + + + //显示屏幕键盘 + + public static int ShowInputPanel() + { + + try + { + + dynamic file = "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe"; + + if (!System.IO.File.Exists(file)) + + return -1; + + Process.Start(file); + + //return SetUnDock(); //不知SetUnDock()是什么,所以直接注释返回1 + + return 1; + + } + + catch (Exception) + { + + return 255; + + } + + } + + private void button1_Click(object sender, EventArgs e) + { + if (textBox3.Text.Trim() != ConfigurationManager.AppSettings["Psw"]) + { + MessageBox.Show("密码不正确!", "提示", MessageBoxButtons.OK); + textBox3.SelectAll(); + return; + } + else + { + panel3.Visible = false; + textBox3.Text = ""; + string code = "",productName="", reportName=""; + BarCodeModel md = new BarCodeModel(); + BarCodeBLL bll = new BarCodeBLL(); + ProductBLL pbll = new ProductBLL(); + try + { + if (code_g=="") + { + MessageBox.Show("请选择要补打的条码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + else + { + //GlacialComponents.Controls.GLItem gv; + //gv = glacialList1.SelectedItems[0] as GlacialComponents.Controls.GLItem; + //code = gv.Text; + + DataTable dt = bll.SearchInfoByBarCode(code_g); + if (dt != null && dt.Rows.Count > 0) + { + md.ID = Guid.NewGuid().ToString(); + md.BarCode = code_g; + md.StationID = dt.Rows[0]["StationID"].ToString(); + md.StockNo = dt.Rows[0]["StockNo"].ToString(); + md.OneBarCode = dt.Rows[0]["OneBarCode"].ToString(); + md.PrintType = 2; + //md.CreateTime = GetDateTime(); + + DataTable pdt = pbll.SearchIsImportByStockNo(md.StockNo); + if (pdt != null && pdt.Rows.Count > 0) + { + productName = pdt.Rows[0]["ProductName"].ToString(); + if (pdt.Rows[0]["isImport"].ToString() == "1") + { + md.Import = "国产料Kingfa"; + } + else + { + md.Import = ""; + } + } + + } + dt.Dispose(); + if (bll.Add_Info(md)) + { + #region 打印条码 + + string filename = @"D:\111 - 副本.grf"; + DataTable headTable = new DataTable(); + headTable.Columns.Add("StationNo"); + headTable.Columns.Add("OneBarCode"); + headTable.Columns.Add("BarCode"); + headTable.Columns.Add("ProductName"); + headTable.Columns.Add("IsImport"); + DataRow row = headTable.NewRow(); + row["StationNo"] = Program.station; + row["OneBarCode"] = md.OneBarCode; + row["BarCode"] = code_g; + row["ProductName"] = productName; + row["IsImport"] = md.Import; + if (productName.Contains("右")) + { + reportName = ConfigurationManager.AppSettings["Printer2"]; + } + else + { + reportName = ConfigurationManager.AppSettings["Printer1"]; + } + + headTable.Rows.Add(row); + + ReportHelper rp = new ReportHelper(filename, headTable, null, + (int)GRPaperOrientation.grpoDefault, 1, reportName); + rp.Report.Print(false); + + #endregion + + bll.Update_Info(md); + } + else + { + MessageBox.Show("连接数据库超时!"); + return; + } + + glacialList1.SelectedItems.Clear(); + initBarCode(); + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + } + + private void button2_Click(object sender, EventArgs e) + { + textBox3.Text = ""; + panel3.Visible = false; + } + + private void textBox3_Click(object sender, EventArgs e) + { + ShowInputPanel(); + } + + private void glacialList1_Click(object sender, EventArgs e) + { + code_g = ""; + if (glacialList1.SelectedItems.Count == 0) + { + code_g = ""; + } + else + { + GlacialComponents.Controls.GLItem gv; + gv = glacialList1.SelectedItems[0] as GlacialComponents.Controls.GLItem; + code_g = gv.Text; + } + } + + private void textBox3_KeyDown(object sender, KeyEventArgs e) + { + + } + + } +} diff --git a/BBMPTMes/InjectionPC/FrmBarCode.resx b/BBMPTMes/InjectionPC/FrmBarCode.resx new file mode 100644 index 0000000..2648706 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmBarCode.resx @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + q22C8fY24wAAAABJRU5ErkJggg== + + + + 17, 17 + + \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/FrmDown.Designer.cs b/BBMPTMes/InjectionPC/FrmDown.Designer.cs new file mode 100644 index 0000000..be26395 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmDown.Designer.cs @@ -0,0 +1,435 @@ +namespace InjectionPC +{ + partial class FrmDown + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmDown)); + this.panel1 = new System.Windows.Forms.Panel(); + this.label2 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.button1 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panel3.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.pictureBox1); + this.panel1.Controls.Add(this.label1); + this.panel1.Location = new System.Drawing.Point(3, 3); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1276, 91); + this.panel1.TabIndex = 18; + // + // label2 + // + this.label2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label2.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label2.Location = new System.Drawing.Point(1087, 4); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(187, 84); + this.label2.TabIndex = 3; + this.label2.Text = "2019-05-29 10:30:31"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label2.Click += new System.EventHandler(this.label2_Click); + // + // pictureBox1 + // + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(4, 4); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(169, 84); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 2; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label1.Font = new System.Drawing.Font("宋体", 28F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label1.Location = new System.Drawing.Point(172, 4); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(917, 84); + this.label1.TabIndex = 1; + this.label1.Text = "注塑车间质量信息录入"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label8 + // + this.label8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label8.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label8.Location = new System.Drawing.Point(806, 90); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(184, 52); + this.label8.TabIndex = 32; + this.label8.Text = "cy"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label7 + // + this.label7.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label7.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label7.Location = new System.Drawing.Point(700, 90); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(110, 52); + this.label7.TabIndex = 31; + this.label7.Text = "用户:"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label6 + // + this.label6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label6.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label6.Location = new System.Drawing.Point(545, 91); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(155, 52); + this.label6.TabIndex = 30; + this.label6.Text = "IM01"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label5 + // + this.label5.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label5.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label5.Location = new System.Drawing.Point(436, 91); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(110, 52); + this.label5.TabIndex = 29; + this.label5.Text = "工位:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // comboBox1 + // + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.Font = new System.Drawing.Font("宋体", 32F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "A班", + "B班"}); + this.comboBox1.Location = new System.Drawing.Point(284, 91); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(152, 51); + this.comboBox1.TabIndex = 28; + // + // label4 + // + this.label4.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label4.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label4.Location = new System.Drawing.Point(175, 91); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(110, 52); + this.label4.TabIndex = 27; + this.label4.Text = "班组:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label3 + // + this.label3.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label3.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label3.Location = new System.Drawing.Point(7, 91); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(169, 52); + this.label3.TabIndex = 26; + this.label3.Text = "用户信息:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label9 + // + this.label9.BackColor = System.Drawing.Color.SpringGreen; + this.label9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label9.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label9.Location = new System.Drawing.Point(990, 90); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(289, 52); + this.label9.TabIndex = 33; + this.label9.Text = "切换到:条码打印"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label9.Click += new System.EventHandler(this.label9_Click); + // + // label22 + // + this.label22.BackColor = System.Drawing.SystemColors.Control; + this.label22.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label22.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label22.Location = new System.Drawing.Point(545, 142); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(445, 52); + this.label22.TabIndex = 39; + this.label22.Text = "停机"; + this.label22.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label22.Click += new System.EventHandler(this.label22_Click); + // + // label21 + // + this.label21.BackColor = System.Drawing.Color.SpringGreen; + this.label21.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label21.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label21.Location = new System.Drawing.Point(175, 142); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(371, 52); + this.label21.TabIndex = 38; + this.label21.Text = "开机"; + this.label21.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label21.Click += new System.EventHandler(this.label21_Click); + // + // label20 + // + this.label20.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label20.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label20.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label20.Location = new System.Drawing.Point(7, 142); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(169, 52); + this.label20.TabIndex = 37; + this.label20.Text = "当前状态:"; + this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label10 + // + this.label10.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label10.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label10.Location = new System.Drawing.Point(7, 193); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(169, 52); + this.label10.TabIndex = 40; + this.label10.Text = "设备状态:"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label11 + // + this.label11.BackColor = System.Drawing.Color.SpringGreen; + this.label11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label11.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label11.Location = new System.Drawing.Point(175, 193); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(261, 52); + this.label11.TabIndex = 41; + this.label11.Text = "开机运行"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label11.Click += new System.EventHandler(this.label11_Click); + // + // label12 + // + this.label12.BackColor = System.Drawing.SystemColors.Control; + this.label12.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label12.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label12.Location = new System.Drawing.Point(435, 193); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(261, 52); + this.label12.TabIndex = 42; + this.label12.Text = "开始换模"; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label12.Click += new System.EventHandler(this.label12_Click); + // + // label13 + // + this.label13.BackColor = System.Drawing.SystemColors.Control; + this.label13.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label13.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label13.Location = new System.Drawing.Point(695, 193); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(261, 52); + this.label13.TabIndex = 43; + this.label13.Text = "计划停机"; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label13.Click += new System.EventHandler(this.label13_Click); + // + // label14 + // + this.label14.BackColor = System.Drawing.SystemColors.Control; + this.label14.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label14.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label14.Location = new System.Drawing.Point(953, 193); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(261, 52); + this.label14.TabIndex = 44; + this.label14.Text = "故障停机"; + this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label14.Click += new System.EventHandler(this.label14_Click); + // + // label15 + // + this.label15.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label15.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label15.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label15.Location = new System.Drawing.Point(7, 245); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(169, 473); + this.label15.TabIndex = 45; + this.label15.Text = "停机原因:"; + this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label16 + // + this.label16.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label16.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label16.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label16.Location = new System.Drawing.Point(7, 718); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(169, 302); + this.label16.TabIndex = 46; + this.label16.Text = "备注:"; + this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel2.Location = new System.Drawing.Point(175, 245); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(1104, 473); + this.panel2.TabIndex = 47; + // + // panel3 + // + this.panel3.Controls.Add(this.button1); + this.panel3.Controls.Add(this.textBox1); + this.panel3.Location = new System.Drawing.Point(175, 718); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(1104, 302); + this.panel3.TabIndex = 48; + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.SpringGreen; + this.button1.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.button1.Location = new System.Drawing.Point(1027, 6); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(77, 296); + this.button1.TabIndex = 1; + this.button1.Text = "保存"; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.textBox1.Location = new System.Drawing.Point(3, 3); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(1018, 302); + this.textBox1.TabIndex = 0; + this.textBox1.Click += new System.EventHandler(this.textBox1_Click); + // + // FrmDown + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1280, 1024); + this.Controls.Add(this.panel3); + this.Controls.Add(this.panel2); + this.Controls.Add(this.label16); + this.Controls.Add(this.label15); + this.Controls.Add(this.label14); + this.Controls.Add(this.label13); + this.Controls.Add(this.label12); + this.Controls.Add(this.label11); + this.Controls.Add(this.label10); + this.Controls.Add(this.label22); + this.Controls.Add(this.label21); + this.Controls.Add(this.label20); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label9); + this.Controls.Add(this.panel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "FrmDown"; + this.Text = "FrmDown"; + this.Load += new System.EventHandler(this.FrmDown_Load); + this.panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/FrmDown.cs b/BBMPTMes/InjectionPC/FrmDown.cs new file mode 100644 index 0000000..bf07f24 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmDown.cs @@ -0,0 +1,343 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using MESClassLibrary.BLL.BasicInfo; +using MESClassLibrary.Model; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.Injection; + +namespace InjectionPC +{ + public partial class FrmDown : Form + { + private static string reason = "",downType=""; + public FrmDown() + { + InitializeComponent(); + } + + private void label22_Click(object sender, EventArgs e) + { + label21.BackColor = System.Drawing.Color.Gray; + label22.BackColor = System.Drawing.Color.Chartreuse; + label11.BackColor = System.Drawing.Color.Gray; + } + + void dLbRoom_Click(object sender, EventArgs e) + { + Label a = (Label)sender; + + if (a.BackColor == Color.Transparent) + { + a.BackColor = Color.FromArgb(150, Color.Chartreuse); + reason += a.Text + ";"; + } + else + { + reason = reason.Replace(a.Text + ";", ""); + a.BackColor = Color.Transparent; + } + } + + private void FrmDown_Load(object sender, EventArgs e) + { + Control.CheckForIllegalCrossThreadCalls = false; + label6.Text = Program.station; + label8.Text = Program.OperatorName; + comboBox1.Text = Program.Shift; + label13.BackColor = System.Drawing.Color.Gray; + label14.BackColor = System.Drawing.Color.Gray; + label12.BackColor = System.Drawing.Color.Gray; + label22.BackColor = System.Drawing.Color.Gray; + Thread t = new Thread(new ThreadStart(TimeGo)); + t.Start(); + } + + private void TimeGo() + { + System.Timers.Timer timer = new System.Timers.Timer(); + timer.Interval = 1000; + timer.Enabled = true; + timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick); + } + + private void timer_Tick(object sender, EventArgs e) + { + label2.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + Thread.Sleep(500); + } + + private void button1_Click(object sender, EventArgs e) + { + string stationID=""; + InjectionDownRecordBLL bll=new InjectionDownRecordBLL(); + InjectionDownRecordModel md=new InjectionDownRecordModel(); + + #region 获取工位编号 + + StationBLL sbll=new StationBLL(); + DataTable sdt = sbll.SearchInfoByNo(Program.station); + if (sdt != null && sdt.Rows.Count > 0) + { + stationID = sdt.Rows[0]["StationID"].ToString(); + sdt.Dispose(); + } + + #endregion + + if (downType == "") + { + MessageBox.Show("请选择停线类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (reason == "") + { + MessageBox.Show("请选择停线原因!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (reason != "") + { + //md.ID = Guid.NewGuid().ToString(); + md.StationID = stationID; + md.DownType = downType; + md.DownReason = reason; + md.Des = textBox1.Text; + //md.StartTime = DateTime.Now; + + bool flag=bll.UpdateInfo(md); + if (flag == true) + { + MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("保存失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + reason = ""; + downType = ""; + } + } + + private void label12_Click(object sender, EventArgs e) + { + label11.BackColor = System.Drawing.Color.Gray; + label12.BackColor = System.Drawing.Color.Chartreuse; + label13.BackColor = System.Drawing.Color.Gray; + label14.BackColor = System.Drawing.Color.Gray; + downType = label12.Text; + panel2.Visible = false; + } + + private void label13_Click(object sender, EventArgs e) + { + label11.BackColor = System.Drawing.Color.Gray; + label12.BackColor = System.Drawing.Color.Gray; + label13.BackColor = System.Drawing.Color.Chartreuse; + label14.BackColor = System.Drawing.Color.Gray; + panel2.Visible = true; + downType = label13.Text; + + DownReasonBLL bll = new DownReasonBLL(); + + int drow = 0, dcol = 4; + + DataTable dt = bll.SearchReason(); + if (dt != null && dt.Rows.Count > 0) + { + drow = Convert.ToInt32(Math.Ceiling((double)dt.Rows.Count / dcol)); + Label[] dLb = new Label[7]; + string[] dstr = new string[dt.Rows.Count]; + + + for (int i = 0; i < dt.Rows.Count; i++) + { + dstr[i] = dt.Rows[i]["Reason"].ToString(); + } + + for (int i = 0; i < dcol; i++) //列 + { + for (int j = 0; j < drow; j++) //行 + { + dLb[i] = new Label(); + if ((i + dcol * j) < dstr.Length) + { + dLb[i].Text = dstr[i + dcol * j].ToString(); + dLb[i].Font = new Font(dLb[i].Font.FontFamily, 20, FontStyle.Bold); + + dLb[i].Size = new Size(250, 50); + dLb[i].Location = new Point(20 + i * (dLb[i].Size.Width + 25), + 5 + j * (dLb[i].Size.Height + 20)); + dLb[i].BorderStyle = BorderStyle.FixedSingle; + dLb[i].BackColor = Color.Transparent; + dLb[i].TextAlign = ContentAlignment.MiddleCenter; + panel2.Controls.Add(dLb[i]); + dLb[i].Click += new EventHandler(dLbRoom_Click); + } + } + } + dt.Dispose(); + } + } + + private void label14_Click(object sender, EventArgs e) + { + label11.BackColor = System.Drawing.Color.Gray; + label12.BackColor = System.Drawing.Color.Gray; + label13.BackColor = System.Drawing.Color.Gray; + label14.BackColor = System.Drawing.Color.Chartreuse; + downType = label14.Text; + panel2.Visible = true; + DownReasonBLL bll = new DownReasonBLL(); + + int drow = 0, dcol = 4; + + DataTable dt = bll.SearchReason(); + if (dt != null && dt.Rows.Count > 0) + { + drow = Convert.ToInt32(Math.Ceiling((double)dt.Rows.Count / dcol)); + Label[] dLb = new Label[7]; + string[] dstr = new string[dt.Rows.Count]; + + + for (int i = 0; i < dt.Rows.Count; i++) + { + dstr[i] = dt.Rows[i]["Reason"].ToString(); + } + + for (int i = 0; i < dcol; i++) //列 + { + for (int j = 0; j < drow; j++) //行 + { + dLb[i] = new Label(); + if ((i + dcol * j) < dstr.Length) + { + dLb[i].Text = dstr[i + dcol * j].ToString(); + dLb[i].Font = new Font(dLb[i].Font.FontFamily, 20, FontStyle.Bold); + + dLb[i].Size = new Size(250, 50); + dLb[i].Location = new Point(20 + i * (dLb[i].Size.Width + 25), + 5 + j * (dLb[i].Size.Height + 20)); + dLb[i].BorderStyle = BorderStyle.FixedSingle; + dLb[i].BackColor = Color.Transparent; + dLb[i].TextAlign = ContentAlignment.MiddleCenter; + panel2.Controls.Add(dLb[i]); + dLb[i].Click += new EventHandler(dLbRoom_Click); + } + } + } + dt.Dispose(); + } + } + + private void label21_Click(object sender, EventArgs e) + { + label22.BackColor = System.Drawing.Color.Gray; + label21.BackColor = System.Drawing.Color.Chartreuse; + label11.BackColor = System.Drawing.Color.Chartreuse; + label12.BackColor = System.Drawing.Color.Gray; + label13.BackColor = System.Drawing.Color.Gray; + label14.BackColor = System.Drawing.Color.Gray; + } + + private void label11_Click(object sender, EventArgs e) + { + label11.BackColor = System.Drawing.Color.Chartreuse; + label12.BackColor = System.Drawing.Color.Gray; + label13.BackColor = System.Drawing.Color.Gray; + label14.BackColor = System.Drawing.Color.Gray; + } + + private void label9_Click(object sender, EventArgs e) + { + this.Close(); + } + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (!IsHandleCreated) + { + this.Close(); + } + } + private void textBox1_Click(object sender, EventArgs e) + { + ShowInputPanel(); + } + + private const Int32 WM_SYSCOMMAND = 274; + + private const UInt32 SC_CLOSE = 61536; + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); + + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + + private static extern int RegisterWindowMessage(string lpString); + + + + //显示屏幕键盘 + + public static int ShowInputPanel() + { + + try + { + + dynamic file = "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe"; + + if (!System.IO.File.Exists(file)) + + return -1; + + Process.Start(file); + + //return SetUnDock(); //不知SetUnDock()是什么,所以直接注释返回1 + + return 1; + + } + + catch (Exception) + { + + return 255; + + } + + } + + private void label2_Click(object sender, EventArgs e) + { + Environment.Exit(0); + } + + } +} diff --git a/BBMPTMes/InjectionPC/FrmDown.resx b/BBMPTMes/InjectionPC/FrmDown.resx new file mode 100644 index 0000000..19d2003 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmDown.resx @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + q22C8fY24wAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/FrmLogin.Designer.cs b/BBMPTMes/InjectionPC/FrmLogin.Designer.cs new file mode 100644 index 0000000..3aa7d71 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmLogin.Designer.cs @@ -0,0 +1,149 @@ +namespace InjectionPC +{ + partial class FrmLogin + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmLogin)); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label1.Location = new System.Drawing.Point(216, 194); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(66, 19); + this.label1.TabIndex = 0; + this.label1.Text = "用户名"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.BackColor = System.Drawing.Color.Transparent; + this.label2.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label2.Location = new System.Drawing.Point(216, 247); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(47, 19); + this.label2.TabIndex = 1; + this.label2.Text = "密码"; + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.textBox1.Location = new System.Drawing.Point(296, 185); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(159, 29); + this.textBox1.TabIndex = 2; + this.textBox1.Click += new System.EventHandler(this.textBox1_Click); + // + // textBox2 + // + this.textBox2.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.textBox2.Location = new System.Drawing.Point(296, 247); + this.textBox2.Name = "textBox2"; + this.textBox2.PasswordChar = '*'; + this.textBox2.Size = new System.Drawing.Size(159, 29); + this.textBox2.TabIndex = 3; + this.textBox2.Click += new System.EventHandler(this.textBox2_Click); + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.LightSkyBlue; + this.button1.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.button1.Location = new System.Drawing.Point(231, 306); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(84, 38); + this.button1.TabIndex = 4; + this.button1.Text = "登陆"; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.BackColor = System.Drawing.Color.LightSkyBlue; + this.button2.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.button2.Location = new System.Drawing.Point(387, 306); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(83, 38); + this.button2.TabIndex = 5; + this.button2.Text = "取消"; + this.button2.UseVisualStyleBackColor = false; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // pictureBox1 + // + this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(0, 0); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(703, 453); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 6; + this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); + // + // FrmLogin + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(703, 453); + this.Controls.Add(this.label2); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.button1); + this.Controls.Add(this.button2); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.Name = "FrmLogin"; + this.Text = "登录"; + this.Load += new System.EventHandler(this.FrmLogin_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.PictureBox pictureBox1; + } +} \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/FrmLogin.cs b/BBMPTMes/InjectionPC/FrmLogin.cs new file mode 100644 index 0000000..6b5b845 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmLogin.cs @@ -0,0 +1,211 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Configuration; +using System.Data.SqlClient; +using System.Diagnostics; +using System.Runtime.InteropServices; +using MESClassLibrary.BLL.BasicInfo; +using MESClassLibrary.Model; +using MESClassLibrary.BLL.Log; + +namespace InjectionPC +{ + public partial class FrmLogin : Form + { + public FrmLogin() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + Program.station = ConfigurationManager.AppSettings["Station"].ToString(); + Program.IP = ConfigurationManager.AppSettings["IP"].ToString(); + Program.RemoteIP = ConfigurationManager.AppSettings["RemoteIP"].ToString(); + Program.PicturePath = ConfigurationManager.AppSettings["PicturePath"].ToString(); + + Program.WeightFolder = ConfigurationManager.AppSettings["WeightFolder"].ToString(); + Program.WeightFile = ConfigurationManager.AppSettings["WeightFile"].ToString(); + Program.WeightUser = ConfigurationManager.AppSettings["WeightUser"].ToString(); + Program.WeightPsw = ConfigurationManager.AppSettings["WeightPsw"].ToString(); + + Program.interVal = Convert.ToInt32(ConfigurationManager.AppSettings["InterVal"].ToString()); + if (DateTime.Now.Hour >= 8 && DateTime.Now.Hour < 20) + { + Program.Shift = "A班"; + Program.ProductDate = DateTime.Now.ToString("yyyy-MM-dd"); + } + else + { + Program.Shift = "B班"; + if (DateTime.Now.Hour >= 0 && DateTime.Now.Hour < 8) + { + Program.ProductDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"); + } + Program.ProductDate = DateTime.Now.ToString("yyyy-MM-dd"); + } + + OpenDb(); + string stationID=""; + #region 判断输入合法性 + if(textBox1.Text.Trim()=="") + { + MessageBox.Show("用户名不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + textBox1.Focus(); + return; + } + + if (textBox2.Text.Trim() == "") + { + MessageBox.Show("密码不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + textBox1.Focus(); + return; + } + #endregion + + StationBLL sbll = new StationBLL(); + DataTable sdt=sbll.SearchInfoByNo(Program.station); + if (sdt!=null && sdt.Rows.Count>0) + { + stationID=sdt.Rows[0]["StationID"].ToString(); + } + sdt.Dispose(); + + Program.OperatorName = textBox1.Text.Trim(); + + OperatorBLL bll = new OperatorBLL(); + + DataTable dt=bll.SearchInfoByNameAndPsw(textBox1.Text.Trim(),stationID,textBox2.Text.Trim()); + if (dt!=null && dt.Rows.Count >0) + { + this.Visible = false; + Form fr=new FrmBarCode(); + fr.Show(); + + } + else + { + + } + dt.Dispose(); + } + + private bool OpenDb() + { + bool OpenDb = false; + + string value = ConfigurationManager.ConnectionStrings["SqlConnString"].ToString(); + Program.DBConn = new SqlConnection(value); + if (Program.DBConn.State.ToString().ToUpper() == "OPEN") Program.DBConn.Close(); + try + { + Program.DBConn.Open(); + } + catch (Exception Err) + { + if (Err != null) + { + MessageBox.Show("数据库连接失败,请检查网络连接,并重新连接!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return OpenDb; + } + } + + OpenDb = true; + return OpenDb; + } + + private void button2_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void textBox1_Click(object sender, EventArgs e) + { + ShowInputPanel(); + } + + private const Int32 WM_SYSCOMMAND = 274; + + private const UInt32 SC_CLOSE = 61536; + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + + private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); + + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + + private static extern int RegisterWindowMessage(string lpString); + + + + //显示屏幕键盘 + + public static int ShowInputPanel() + { + + try + { + + dynamic file = "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe"; + + if (!System.IO.File.Exists(file)) + + return -1; + + Process.Start(file); + + //return SetUnDock(); //不知SetUnDock()是什么,所以直接注释返回1 + + return 1; + + } + + catch (Exception) + { + + return 255; + + } + + } + + private void textBox2_Click(object sender, EventArgs e) + { + ShowInputPanel(); + } + + private void FrmLogin_Load(object sender, EventArgs e) + { + var serverUrl = "http://10.60.101.10:8013/"; + var updateXmlFileName = "InjectionUpdate.xml"; + var updater = new AutoUpdater(); + if (updater.CheckUpdateLoad(serverUrl, updateXmlFileName)) + { + Environment.Exit(0); + } + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/BBMPTMes/InjectionPC/FrmLogin.resx b/BBMPTMes/InjectionPC/FrmLogin.resx new file mode 100644 index 0000000..1e3c088 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmLogin.resx @@ -0,0 +1,713 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/FrmQuality.Designer.cs b/BBMPTMes/InjectionPC/FrmQuality.Designer.cs new file mode 100644 index 0000000..b00dc66 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmQuality.Designer.cs @@ -0,0 +1,403 @@ +namespace InjectionPC +{ + partial class FrmQuality + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmQuality)); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.label11 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label20 = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.label24 = new System.Windows.Forms.Label(); + this.textBox4 = new System.Windows.Forms.TextBox(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.panel2 = new System.Windows.Forms.Panel(); + this.button1 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + this.SuspendLayout(); + // + // timer1 + // + this.timer1.Interval = 1000; + // + // label11 + // + this.label11.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label11.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label11.Location = new System.Drawing.Point(10, 595); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(169, 420); + this.label11.TabIndex = 28; + this.label11.Text = "缺陷原因:"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label8 + // + this.label8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label8.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label8.Location = new System.Drawing.Point(809, 92); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(184, 52); + this.label8.TabIndex = 24; + this.label8.Text = "cy"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label7 + // + this.label7.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label7.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label7.Location = new System.Drawing.Point(703, 92); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(110, 52); + this.label7.TabIndex = 23; + this.label7.Text = "用户:"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label6 + // + this.label6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label6.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label6.Location = new System.Drawing.Point(548, 93); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(155, 52); + this.label6.TabIndex = 22; + this.label6.Text = "IM01"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label5 + // + this.label5.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label5.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label5.Location = new System.Drawing.Point(439, 93); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(110, 52); + this.label5.TabIndex = 21; + this.label5.Text = "工位:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // comboBox1 + // + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.Font = new System.Drawing.Font("宋体", 32F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "A班", + "B班"}); + this.comboBox1.Location = new System.Drawing.Point(287, 93); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(152, 51); + this.comboBox1.TabIndex = 20; + // + // label4 + // + this.label4.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label4.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label4.Location = new System.Drawing.Point(178, 93); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(110, 52); + this.label4.TabIndex = 19; + this.label4.Text = "班组:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label3 + // + this.label3.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label3.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label3.Location = new System.Drawing.Point(10, 93); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(169, 52); + this.label3.TabIndex = 18; + this.label3.Text = "用户信息:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label2 + // + this.label2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label2.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label2.Location = new System.Drawing.Point(1080, 4); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(187, 84); + this.label2.TabIndex = 3; + this.label2.Text = "2019-05-29 10:30:31"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label2.Click += new System.EventHandler(this.label2_Click); + // + // pictureBox1 + // + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(4, 4); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(169, 84); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 2; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label1.Font = new System.Drawing.Font("宋体", 28F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label1.Location = new System.Drawing.Point(172, 4); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(911, 84); + this.label1.TabIndex = 1; + this.label1.Text = "注塑车间质量信息录入"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label10 + // + this.label10.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label10.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label10.Location = new System.Drawing.Point(10, 246); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(169, 350); + this.label10.TabIndex = 26; + this.label10.Text = "产品展示:"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label9 + // + this.label9.BackColor = System.Drawing.Color.SpringGreen; + this.label9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label9.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label9.Location = new System.Drawing.Point(993, 92); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(282, 52); + this.label9.TabIndex = 25; + this.label9.Text = "切换到:条码打印"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label9.Click += new System.EventHandler(this.label9_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.pictureBox1); + this.panel1.Controls.Add(this.label1); + this.panel1.Location = new System.Drawing.Point(6, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1269, 91); + this.panel1.TabIndex = 17; + // + // label20 + // + this.label20.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label20.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label20.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label20.Location = new System.Drawing.Point(10, 144); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(169, 52); + this.label20.TabIndex = 34; + this.label20.Text = "功能选择:"; + this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label21 + // + this.label21.BackColor = System.Drawing.Color.SpringGreen; + this.label21.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label21.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label21.Location = new System.Drawing.Point(178, 144); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(261, 52); + this.label21.TabIndex = 35; + this.label21.Text = "量产"; + this.label21.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label22 + // + this.label22.BackColor = System.Drawing.SystemColors.Control; + this.label22.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label22.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label22.Location = new System.Drawing.Point(439, 145); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(264, 52); + this.label22.TabIndex = 36; + this.label22.Text = "量产前调试"; + this.label22.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label23 + // + this.label23.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label23.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label23.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label23.Location = new System.Drawing.Point(10, 195); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(169, 52); + this.label23.TabIndex = 37; + this.label23.Text = "扫描条码:"; + this.label23.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBox3 + // + this.textBox3.Font = new System.Drawing.Font("宋体", 28F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.textBox3.Location = new System.Drawing.Point(178, 195); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(525, 50); + this.textBox3.TabIndex = 38; + this.textBox3.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox3_KeyDown); + // + // label24 + // + this.label24.BackColor = System.Drawing.Color.DeepSkyBlue; + this.label24.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label24.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label24.Location = new System.Drawing.Point(704, 193); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(150, 52); + this.label24.TabIndex = 39; + this.label24.Text = "产品名称:"; + this.label24.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBox4 + // + this.textBox4.Font = new System.Drawing.Font("宋体", 28F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.textBox4.Location = new System.Drawing.Point(853, 193); + this.textBox4.Name = "textBox4"; + this.textBox4.Size = new System.Drawing.Size(417, 50); + this.textBox4.TabIndex = 40; + // + // pictureBox2 + // + this.pictureBox2.Location = new System.Drawing.Point(178, 248); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(1094, 348); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox2.TabIndex = 41; + this.pictureBox2.TabStop = false; + // + // panel2 + // + this.panel2.Location = new System.Drawing.Point(178, 595); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(1012, 420); + this.panel2.TabIndex = 42; + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.DarkGray; + this.button1.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.button1.Location = new System.Drawing.Point(1193, 595); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(77, 417); + this.button1.TabIndex = 40; + this.button1.Text = "保存"; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // FrmQuality + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1280, 1024); + this.Controls.Add(this.button1); + this.Controls.Add(this.panel2); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.textBox4); + this.Controls.Add(this.label24); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.label23); + this.Controls.Add(this.label22); + this.Controls.Add(this.label21); + this.Controls.Add(this.label20); + this.Controls.Add(this.label11); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label10); + this.Controls.Add(this.label9); + this.Controls.Add(this.panel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "FrmQuality"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "质量录入"; + this.Load += new System.EventHandler(this.FrmQuality_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/FrmQuality.cs b/BBMPTMes/InjectionPC/FrmQuality.cs new file mode 100644 index 0000000..e10c4d8 --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmQuality.cs @@ -0,0 +1,597 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Configuration; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.NetworkInformation; +using System.Reflection; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using MESClassLibrary.BLL.BasicInfo; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace InjectionPC +{ + public partial class FrmQuality : Form + { + private static string position = "", reason = ""; + int count = 0; //缺陷图选择个数 + public FrmQuality() + { + InitializeComponent(); + } + + private void label9_Click(object sender, EventArgs e) + { + this.Close(); + //OnVisibleChanged() + } + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (!IsHandleCreated) + { + this.Close(); + } + } + + private void FrmQuality_Load(object sender, EventArgs e) + { + Control.CheckForIllegalCrossThreadCalls = false; + string LineID = ""; + label6.Text = Program.station; + label8.Text = Program.OperatorName; + comboBox1.Text = Program.Shift; + textBox3.TabIndex = 0; + textBox3.Focus(); + Thread t = new Thread(new ThreadStart(TimeGo)); + t.Start(); + #region 测试 + + //获取服务器上图片 + //Ping p1 = new Ping(); + //bool status = false; + + //PingReply reply = p1.Send(Program.IP); //发送主机名或Ip地址 + //StringBuilder sbuilder; + //if (reply.Status == IPStatus.Success) + //{ + // status = Upload.DoConnComputer(Program.IP, "aa", "Administrator", "Wff775168+"); + // if (status == true) + // { + // //共享文件夹的目录 + // DirectoryInfo theFolder = new DirectoryInfo(@"\\" + Program.IP + "\\aa\\"); + // string filename = theFolder.ToString(); + // //执行方法 + // TransportRemoteToLocal(@"D:\车间.png", filename, "车间.png"); //实现将远程服务器文件写入到本地 + // } + //} + //FileStream fs = new FileStream("D:\\2.jpg", FileMode.Open, + // FileAccess.Read);//获取图片文件流 + //Image img = Image.FromStream(fs); // 文件流转换成Image格式 + //pictureBox2.Image = img; //给 图片框设置要显示的图片 + //fs.Close(); // 关闭流,释放图片资源 + + //Label[] lb = new Label[5]; + //string[] str = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O" }; + + //for (int i = 0; i < 5; i++) + //{ + // for (int j = 0; j < 3; j++) + // { + // lb[i] = new Label(); + // lb[i].Text = str[i].ToString(); + // lb[i].Font = new Font(lb[i].Font.FontFamily, 32, FontStyle.Bold); + + // lb[i].Size = new Size(pictureBox2.Width / 5, pictureBox2.Height / 3); + // lb[i].Location = new Point(0 + i * lb[i].Size.Width, 0 + j * lb[i].Size.Height); + // lb[i].BorderStyle = BorderStyle.FixedSingle; + // lb[i].BackColor = Color.Transparent; + // lb[i].TextAlign = ContentAlignment.MiddleCenter; + // pictureBox2.Controls.Add(lb[i]); + + // lb[i].Click += new EventHandler(lblRoom_Click); + // } + //} + //StationBLL sbll = new StationBLL(); + //DataTable sdt = sbll.SearchInfoByNo(Program.station); + //if (sdt != null && sdt.Rows.Count > 0) + //{ + // LineID = sdt.Rows[0]["LineID"].ToString(); + //} + //sdt.Dispose(); + + //int row = 0, col = 6; + + //DefectBLL dbll = new DefectBLL(); + //DataTable dt3 = dbll.SearchInfo(LineID); + //if (dt3 != null && dt3.Rows.Count > 0) + //{ + // row = Convert.ToInt32(Math.Ceiling((double)dt3.Rows.Count / 6)); + // Label[] dLb = new Label[7]; + // string[] dstr = new string[dt3.Rows.Count]; + + + // for (int i = 0; i < dt3.Rows.Count; i++) + // { + // dstr[i] = dt3.Rows[i]["DefectName"].ToString(); + // } + + // for (int i = 0; i < 6; i++) //列 + // { + // for (int j = 0; j < row;j++) //行 + // { + // dLb[i] = new Label(); + // if ((i + 6 * j) < dstr.Length) + // { + // dLb[i].Text = dstr[i + 6 * j].ToString(); + // dLb[i].Font = new Font(dLb[i].Font.FontFamily, 24, FontStyle.Bold); + + // dLb[i].Size = new Size(150, 50); + // dLb[i].Location = new Point(20 + i * (dLb[i].Size.Width+25), 5 + j * (dLb[i].Size.Height+20)); + // dLb[i].BorderStyle = BorderStyle.FixedSingle; + // dLb[i].BackColor = Color.Transparent; + // dLb[i].TextAlign = ContentAlignment.MiddleCenter; + // panel2.Controls.Add(dLb[i]); + // } + // } + // } + //} + + #endregion + + + } + + + private void TimeGo() + { + System.Timers.Timer timer = new System.Timers.Timer(); + timer.Interval = 1000; + timer.Enabled = true; + timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick); + } + + private void timer_Tick(object sender, EventArgs e) + { + label2.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + Thread.Sleep(500); + } + + + /// + /// 从远程服务器下载文件到本地 + /// + /// 下载到本地后的文件路径,包含文件的扩展名 + /// 远程服务器路径(共享文件夹路径) + /// 远程服务器(共享文件夹)中的文件名称,包含扩展名 + public static void TransportRemoteToLocal(string src, string dst, string fileName) //src:下载到本地后的文件路径 dst:远程服务器路径 fileName:远程服务器dst路径下的文件名 + { + try + { + FileStream inFileStream = new FileStream(src, FileMode.Open); //远程服务器文件 此处假定远程服务器共享文件夹下确实包含本文件,否则程序报错 + + if (!Directory.Exists(dst)) + { + Directory.CreateDirectory(dst); + } + dst = dst + fileName; + FileStream outFileStream = new FileStream(dst, FileMode.OpenOrCreate); //从远程服务器下载到本地的文件 + byte[] buf = new byte[inFileStream.Length]; + int byteCount; + while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0) + { + outFileStream.Write(buf, 0, byteCount); + } + inFileStream.Flush(); + inFileStream.Close(); + outFileStream.Flush(); + outFileStream.Close(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + + void lblRoom_Click(object sender, EventArgs e) + { + Label a = (Label) sender; + //foreach (Control c in pictureBox2.Controls) + //{ + // c.BackColor = Color.Transparent; + //} + if (a.BackColor == Color.Transparent) + { + a.BackColor = Color.FromArgb(150, System.Drawing.Color.Chartreuse); + count++; + } + else + { + a.BackColor = Color.Transparent; + count--; + } + + //position +=a.Text+","; + } + + + void dLbRoom_Click(object sender, EventArgs e) + { + //if (count == 0) + //{ + // MessageBox.Show("请选择缺陷位置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + // return; + //} + Label a = (Label)sender; + + string aa = a.Text; + if (a.BackColor == Color.Transparent) + { + a.BackColor = Color.FromArgb(150, Color.Chartreuse); + reason += a.Text+";"; + } + else + { + reason = reason.Replace(a.Text+";",""); + a.BackColor = Color.Transparent; + } + } + + /// + /// 保存缺陷 + /// + /// + /// + private void button1_Click(object sender, EventArgs e) + { + string stockNo = "",batchNo="",partNo=""; + + foreach (Control c in pictureBox2.Controls) + { + Label lab = c as Label; + if (lab.BackColor != Color.Transparent) + { + position += lab.Text + ";"; + } + } + + if (position == "") + { + MessageBox.Show("请选择缺陷位置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (reason == "") + { + MessageBox.Show("请选择缺陷原因!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + return; + } + + + BadInjectionBLL badBLL = new BadInjectionBLL(); + BadInjectionModel badmd = new BadInjectionModel(); + ProductOfInjectionModel md = new ProductOfInjectionModel(); + ProductOfInjectionBLL bll=new ProductOfInjectionBLL(); + + #region 判断是否已做过报废 + + DataTable baddt = badBLL.SearchByCode(textBox3.Text.Trim()); + if (baddt != null && baddt.Rows.Count > 0) + { + MessageBox.Show("请产品已做过报废处理!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + reason = ""; + textBox3.Text = ""; + textBox3.TabIndex = 0; + textBox3.Focus(); + + textBox4.Text = ""; + pictureBox2.Image = null; + + pictureBox2.Controls.Clear(); + + panel2.Controls.Clear(); + return; + } + + #endregion + + #region 保存报废详细信息 + + badmd.ID = Guid.NewGuid().ToString(); + if (textBox3.Text.Trim().Contains(".")) + { + badmd.BarCode = textBox3.Text.Trim(); + badmd.OneBarCode = ""; + } + else + { + badmd.OneBarCode = textBox3.Text.Trim(); + badmd.BarCode = ""; + } + badmd.BadPosition = position; + badmd.BadReason = reason.Trim(); + badBLL.Add_Info(badmd); + + #endregion + + #region 修改注塑产量表,如果是开机报废则把产量减1,报废数不变 + + //DataTable dt = badBLL.SearchByCode(textBox3.Text.Trim()); + //if (dt != null && dt.Rows.Count != 1) + //{ + + //} + //else + //{ + // Program.GetCode(textBox3.Text.Trim(), out stockNo, out batchNo, out partNo); + + // md.BadCount = 1; + // md.ClassName = Program.Shift; + + // StationBLL sbll = new StationBLL(); + // DataTable sdt = sbll.SearchInfoByNo(Program.station); + // if (sdt != null && sdt.Rows.Count > 0) + // { + // md.StationID = sdt.Rows[0]["StationID"].ToString(); + // } + // else + // { + // md.StationID = ""; + // } + + // sdt.Dispose(); + + // md.ProductDate = Program.ProductDate; + // md.PartNo = partNo; + // md.StockNo = stockNo; + + // if (reason.Contains("开机报废")) + // { + // md.ProductCount = 1; + // bll.updateProductCount(md); + // } + // else + // { + // bll.UpdateBad_Info(md); + // } + + //} + + #endregion + + reason = ""; + textBox3.Text = ""; + textBox3.TabIndex = 0; + textBox3.Focus(); + + textBox4.Text = ""; + pictureBox2.Image = null; + + pictureBox2.Controls.Clear(); + + panel2.Controls.Clear(); + position = ""; + reason = ""; + //this.Close(); + } + + private void button2_Click(object sender, EventArgs e) + { + Form fr = new FrmBarCode(); + this.Hide(); + fr.Show(); + } + + private void textBox3_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + string[] barcode=new string[3]; + int row = 0, col = 0; + string picture = ""; + string LineID = ""; + ProductBLL bll = new ProductBLL(); + + string aa = textBox3.Text.Trim(); + if (textBox3.Text.Length == 20) + { + DataTable dt = bll.SearchInfoByStock(textBox3.Text.Substring(0,10)); + + if (dt != null && dt.Rows.Count > 0) + { + textBox4.Text = dt.Rows[0]["ProductName"].ToString(); + row = Convert.ToInt32(dt.Rows[0]["Rows"].ToString()); + col = Convert.ToInt32(dt.Rows[0]["Cols"].ToString()); + picture = dt.Rows[0]["PicturePath"].ToString(); + dt.Dispose(); + } + } + else + { + barcode = textBox3.Text.Trim().Split('.'); + DataTable dt = bll.SearchInfoByPartNo(barcode[0]); + + if (dt != null && dt.Rows.Count > 0) + { + textBox4.Text = dt.Rows[0]["ProductName"].ToString(); + row = Convert.ToInt32(dt.Rows[0]["Rows"].ToString()); + col = Convert.ToInt32(dt.Rows[0]["Cols"].ToString()); + picture = dt.Rows[0]["PicturePath"].ToString(); + dt.Dispose(); + } + } + + + try + { + #region Load PictureBox + + if (!string.IsNullOrEmpty(picture)) + { + if (!File.Exists(System.IO.Directory.GetCurrentDirectory() + @"\" + picture)) + { + string strImageURL = "http://10.60.101.10:8001/PDF/" + picture; + + System.Net.WebClient webClient = new System.Net.WebClient(); + webClient.DownloadFile(strImageURL, Directory.GetCurrentDirectory() + @"\" + picture); + } + + FileStream fs = new FileStream(Directory.GetCurrentDirectory() + "\\" + picture, FileMode.Open, + FileAccess.Read); //获取图片文件流 + Image img = Image.FromStream(fs); // 文件流转换成Image格式 + pictureBox2.Image = img; //给 图片框设置要显示的图片 + fs.Close(); // 关闭流,释放图片资源 + } + //if (!File.Exists(System.IO.Directory.GetCurrentDirectory() + @"\" + picture)) + //{ + // Ping p1 = new Ping(); + // bool status = false; + + // PingReply reply = p1.Send(Program.RemoteIP); //发送主机名或Ip地址 + // StringBuilder sbuilder; + // if (reply.Status == IPStatus.Success) + // { + // string PictureFolder = ConfigurationManager.AppSettings["PictureFolder"].ToString(); + // string User = ConfigurationManager.AppSettings["PictureUser"].ToString(); + // string UserPwd = ConfigurationManager.AppSettings["PicturePsw"].ToString(); + // status = Upload.DoConnComputer(Program.RemoteIP, PictureFolder, User, UserPwd); + // if (status == true) + // { + // //共享文件夹的目录 + // string path = ConfigurationManager.AppSettings["PicturePath"].ToString() + picture; + // DirectoryInfo theFolder = new DirectoryInfo(path); + // string filename = theFolder.ToString(); + + // //执行方法 + // TransportRemoteToLocal(filename, System.Environment.CurrentDirectory + "\\", picture); //实现将远程服务器文件写入到本地 + + // } + // //string PictureFolder = ConfigurationManager.AppSettings["PictureFolder"].ToString(); + // //string User = ConfigurationManager.AppSettings["User"].ToString(); + // //string UserPwd = ConfigurationManager.AppSettings["UserPwd"].ToString(); + // //status = Upload.DoConnComputer(Program.IP, "aa", "Administrator", "Wff775168+"); + // //if (status == true) + // //{ + // // //共享文件夹的目录 + // // DirectoryInfo theFolder = new DirectoryInfo(@"\\" + Program.IP + "\\aa\\"); + // // string filename = theFolder.ToString(); + // // //执行方法 + // // TransportRemoteToLocal(@"D:\" + picture, filename, picture); //实现将远程服务器文件写入到本地 + // //} + // } + //} + + //FileStream fs = new FileStream(System.Environment.CurrentDirectory + "\\" + picture, FileMode.Open, + // FileAccess.Read); //获取图片文件流 + //Image img = Image.FromStream(fs); // 文件流转换成Image格式 + //pictureBox2.Image = img; //给 图片框设置要显示的图片 + //fs.Close(); // 关闭流,释放图片资源 + + + #endregion + + #region 缺陷图划分区域 + + Label[] lb = new Label[5]; + string[] str = + { + "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", + "U", "V", "W", "X", "Y", "Z" + }; + + for (int i = 0; i < col; i++) + { + for (int j = 0; j < row; j++) + { + lb[i] = new Label(); + lb[i].Text = str[i + col * j].ToString(); + lb[i].Font = new Font(lb[i].Font.FontFamily, 32, FontStyle.Bold); + + lb[i].Size = new Size(pictureBox2.Width / col, pictureBox2.Height / row); + lb[i].Location = new Point(0 + i * lb[i].Size.Width, 0 + j * lb[i].Size.Height); + lb[i].BorderStyle = BorderStyle.FixedSingle; + lb[i].BackColor = Color.Transparent; + lb[i].TextAlign = ContentAlignment.MiddleCenter; + pictureBox2.Controls.Add(lb[i]); + + lb[i].Click += new EventHandler(lblRoom_Click); + } + } + + #endregion + + #region 缺陷原因 + + StationBLL sbll = new StationBLL(); + DataTable sdt = sbll.SearchInfoByNo(Program.station); + if (sdt != null && sdt.Rows.Count > 0) + { + LineID = sdt.Rows[0]["LineID"].ToString(); + } + + sdt.Dispose(); + + int drow = 0, dcol = 6; + + DefectBLL dbll = new DefectBLL(); + DataTable dt3 = dbll.SearchInfo(LineID); + if (dt3 != null && dt3.Rows.Count > 0) + { + drow = Convert.ToInt32(Math.Ceiling((double) dt3.Rows.Count / dcol)); + Label[] dLb = new Label[7]; + string[] dstr = new string[dt3.Rows.Count]; + + + for (int i = 0; i < dt3.Rows.Count; i++) + { + dstr[i] = dt3.Rows[i]["DefectName"].ToString(); + } + + for (int i = 0; i < dcol; i++) //列 + { + for (int j = 0; j < drow; j++) //行 + { + dLb[i] = new Label(); + if ((i + dcol * j) < dstr.Length) + { + dLb[i].Text = dstr[i + dcol * j].ToString(); + dLb[i].Font = new Font(dLb[i].Font.FontFamily, 20, FontStyle.Bold); + + dLb[i].Size = new Size(130, 50); + dLb[i].Location = new Point(50 + i * (dLb[i].Size.Width + 25), + 50 + j * (dLb[i].Size.Height + 20)); + dLb[i].BorderStyle = BorderStyle.FixedSingle; + dLb[i].BackColor = Color.Transparent; + dLb[i].TextAlign = ContentAlignment.MiddleCenter; + panel2.Controls.Add(dLb[i]); + dLb[i].Click += new EventHandler(dLbRoom_Click); + } + } + } + } + + #endregion + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + } + + private void label2_Click(object sender, EventArgs e) + { + Environment.Exit(0); + } + } +} diff --git a/BBMPTMes/InjectionPC/FrmQuality.resx b/BBMPTMes/InjectionPC/FrmQuality.resx new file mode 100644 index 0000000..4a636cf --- /dev/null +++ b/BBMPTMes/InjectionPC/FrmQuality.resx @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 13, -3 + + + + + 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 + q22C8fY24wAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/GlacialList.dll b/BBMPTMes/InjectionPC/GlacialList.dll new file mode 100644 index 0000000000000000000000000000000000000000..70d88d6909a76ea67e3607f1720f154e3d878226 GIT binary patch literal 94208 zcmeEv3w%_?_5a+tckk}rykENsuOtw{CfU3}0TBUFh+qXl42a5Gqrk-^C>U13BAQCA zR%%6U!B2xQn$5e-om2hiJcgR2l(%+FMI6NBvM&t}AfPal*EYyigbYa*Iu#z5~R z3PJB`azyvfYD1)U=N$c zja-%~xOzTg;Hj$Sg^OJXvaPV0SpjTE_BROZH@ z#*&dVAsiXO-L+j#@dI?c8O@PxBoR$fS2vvm%}53=CkaHU`7swgUx*A{Yo4_la-EJwB0Lynora#YDZ zqV&}#^byaDU@UW@q?EhU=POONk-B1coy7C# zZxRMe+yz9K8iSdoT)#ZUwiHYr6L< z^!ucKMYwyvQZilrDj|c$rSfVcRy0lW)wFuA2Qr7smo(-vlln0lg3=W!g~6sf1avuO z0NH&k;CK|M5(Q$ZR+b_iBcTC_$n| z;M8J1rK>$NQ`)H&Ier<4R8VPHX$mW~t;V`P``I3UVm>fs1cur!d}W*RGaDtbTl!JM z4!WK%8Ckt3N zP#ba40-V7q5sVTJYCKJv_Khkxs#x>trnO*7A za24CZYsiLp~&tJNI zD4!F1%coybKJFm6Kfm6eoZ;TyGmPgK8G88q0?Fk{ttbe1%f#cCgzWxDKxArDN*5}peiF}baBa{0$j2Ct`Ge&Wx|xM;c{E%@?b6~kEqYLv>7o@lt?-Y; zkZJiMBLGuu7vqYf`l2Z&K#K!eUWdt5q$_d^Slr)Iq~9F{;K;#k6ccXb%wN7Jd<06FESo!^-BLVlzk7mk!@)?0Wl61al~#xLvv#55Rz>~3)2eITHsX2 z#a#^g81d|8IB%JYR_wG+g(>byiKqxXK8P;=H8I(3j58>{5luVbN-ek~(;(Bt(9>U%A zC>hq{mGQ2pR#P(WHy5D|&Ogp=LDtWs$L{@}yFA zualJteIDNs^9$I7QA)Q7j}Bsf0UdLC(?QHHpyT|64o~}HW^!GkNA+AIGc#GPwKq9t zCd;+-CdbTVx#r&Fn3*iMtT#DkCd-}In;bKf<(Bp)$IN88B?&oCJreT^)In2kI*9oN zbeyGic>CYkz3|RWSt~Ms?@$B}Mem{pewJ8@%UBRi6)K$?fHegza5z z1H+!}ewB7elG_aP*DAiZT`y1Q7!hw@Z8UU5Yh)Y6nN>ru!+0S=m{y6QY_G)97+aWX zd=E!>!s4=ebyF%eSJx(V)9@9I$To^Is|ul;m71JI^UPj#N5ASV%2mvYKz}mZ4f-MhB>?RQZ^kMP5rK-Go1e zjC=Dfa-=!i6glxcBVQvM*;1EcXOS;V5kh<#ucWFKkcJc?af%8-DoLkbtAjpEV6&53&BJoRcG1P`$Qhb*BY^VgtjKKe)PA8Q zFp6v6e-{!^I5>jpz)}?ES#AgFcc#`cSk;QMRj{cz7xd z#ne!O6i$psz)*}P3mJh&ofyqSP{dPTZtOgcK=GXzEl6MmH=S^dr`K?7sgkBi35jT~ zk9Vg~j8+IpK%)XK)Pdu@Ru2qxbLhlq0fYDz>Y|o#D25Y5SA|iWH!n6rF#nS5lClVKtu_Z{Je33`QNt z;0%ljOh21XzqgvbiSNxFpwX;24OAbUg3|M z5vDoWkwu|WLxdx!AM^**j^m=k=m+s2IzT*#rU<8?{-Kld4!LLqi7;A$4j1N!TFAjJT11?c>29LJ zbGpJ6?spQPc{%*+qS3@9R}^Nd8+)`M&4cmVyOoK{?xJZBBoi&I#OQ=NykIM=@xSA1m* zg|#@ffC&1lZia1y`{?8p4r%+jrD#_<1rLM$P9ik~l?ZrrOj8GrhM%|7(VB|tX z(<5TyM7E(q_`&gMK*Xgh@8V&1EQ1x%+GH5i0A^;pLph-ZRu%*3lM`` zf;Th&j8YlF0B2X8oNam%U^sNbjUEOD#$*Ou~U3e&0_9qL<;!SXf~iq;C2_>+ms!T;v7EV0at ztc5Udq4EmEj9?^pif9vZ%ugX`M%Gb0Mpo2CVOl+&xsWDokw&h^b;K@-rV+UT!O-ZR za~KWF9p|;{o%%x;jmcPg{6dMrVRfU zqk;A5ei^wD5fFeAAy8bOqFFOjDw^%Wl6otYQqg1=4ywnRiOPuN6*KL^qWZ})f)-#` zhE?{8qDo+e`*kvfi=i0auzMjQL!TL3vbdq~D>7G^)S|pPJ91bEW~s$cBZ^&}s(|19 z8jv?e6(>Biu@+C2W}tWK(u8NuWZ8iKn72@`-5p;wA%qa{VZu4e>g}8%}ag#Tl}VmS~~6Q&k`b6DPHeEX&h4vMhfsIN_Oe zl*M07!A1_&Ki!Ko)&{y<-fX$i41bDj?ecPt&n}GA2eN$7=c76=WiS(9vRyc^J}t|q zTMsxRsqG{Zv|e3W^WJ>zvehqG~geV2&@#7pgX)$75QS54V48 zX_k-cwRtT%vfkCZ3T>iGdsvOhLGdz5mrY}`i+celH}ZARXu6D`hMdSZK%9!KY*Cak zL@2_myHH9fHIx>DA^kccWaGdeMWd$Ttxg9V*+t3Q!r% zvh&GMtkSF~9-PxvhWvpny9Jx5w!51g66W<|#YmMVS{K)J9ce1jiP4%laX2q8-;-9a zJ?$9fje^pB++>uKKFu$ZOUAIzX}pqclgJD_C#S1a&&e%!5DdY6r3yrT0KsTxbGk3d zn|%KWP5fz|MUg;w06PSU3xid9Y?W=un{%M6&Y}6@9=fDR*Sge5iiWTOg=PCKF%)q* zR8QR0)jcjAm3Otvy091NCP-r{?K^p%?}vHK&%8u_`aXbeM&tR7#yE|MDy#YNc)8L8 zq3P*kpTtvnO1fp*GpCz&ZH^g#P+u^!+D;GT zPp@e4uA%6G!Z)z`b!nbT#ueNqH-4HUsJ8o9V|)nUS2Ds&ar2FUSnba{FpJROH0 zG6E=2oiE)Vm|m_AJ0u)b_i8zE{SH*di&od>VNkiM&qKYTBxHbuCRHT=NqMzXlO0t( zRu_E)BrAs|Jg@vdh?qEs!CA9&;x)tZ`F#8UZI{jnV2wm)V6vJI#M=^{=y%yHL*+@0 zD1)r=V2Jw|4ZQh$)&O@wcDR04%RyY}XbKso z*QZzx+wMO=lG#{o*{+Ep0CEOhR2}OD3|Dn{rfVZ+_&vy5MktH?`qNw9!Ijn--LrTP z{A4y~@e#32_irkeno+kbJ_f5|iqco(v8T&NTd$3I;zOLkEJ?XYPRIfrdmv%2>k6pGMZM7MQ9HE@2?E+e^) zMmUTtPGh&>Vp;NVp@)c2b&6jHQz}kIcZ#dn1QoS%-z*gws*Om~6HCLpit+5M2Hbm* ze?nb+@VVkJgHO2{cVZ&;NpIs$P+S7P^&!7K-Q8~(V7-2`+%A_5e+9nRCq2f%9)z)6 zvq#*Cpy_Ug-6`1;t&d!U3l#(xDlIP8;}SuW$9nCbium}c;+Xej?KJySKoEibAcR$}z1_ly; zwU~;q`(#H)D275V)^Cn`J4kggPSALmO3KAOzY}sFK*CH(M{L|e1br@sA6vTLqe$Kd zx7`Q9K|`Z6XVu8MFV)2xiMnvV57Dlsi*{;z>Os0&5FK45Bj`kS^dwU;R9DUMXZyJZ zJdkR_12N%vA@z6{8=p=^`4MSyQQz3fngIv9SfO#EJX}gljX$HnVVF=&1`;HI%1P-jy#cLpM_< zRH0Nyn8Go8J6US{qWu%U*lY3+CbF78iMJge-?@(X4Hx?~q#yB11d9$aZXZJq*5Q~{ zh0i??0{~n9V@OHvBMDeFTgCHZgveG1L{Cy2c6=(eyxvUoaJ%On;CW*BHul`v@qQc$)hVH?ArrI(kyI6ZC&ZjjR9w+%=(<}&st zo=e!#ixWMqtI=}DBd8i}0wx-5PB1H|YQizIy!LwLB~K~3S9_Mj?(@0lpeUi*sL#bF zGAf+l`7LM-PEJZzN|+{O=ufd|QRHN$&^U(7sK-UIBe#UE^s^lMbuX($P=jJ)MZt=;uIw7yZuR@e<>^gVixz)bBg|SUas|8Je<2UI91w)dQ4r zxMnik!GpPHWTCO0U=>yXv{PDHs|7tn%mB?&%?;h!r`AiDKe!8W`%l-CNe(p${1U)I zq7hI?Uc)j0XdF;pZG&EMjMW^^>Ow6!uug(N;n@XmBCRsfSV(l z$P&=Sod5uG(7q!V+ zX_X^L?M6vc$D#KFh;kp4g;pFf~;v_63+J6sl@`$!^dDv!@aDYYrUpI@eQt8&4Sm&^3&Lc}fYmRGOV z4!;IYPq*^x8;&?52$CNHy@{1?1Ik7|%VLX>mTgPMXLfKcL#zdp3(gZ zSEWJGmbqX=c7g=lUxTJqObQgygTo_Ffg6;^kkUT?s7xPzmcv;@BFI0}q??yrh--=$ zqmdhP+z`JNd7N{80@Tj~2ilQe3_&|8qA`D5e9ZT(vrDy?Q4HMa*e$z}7VB=zow)bK zvnBUQFe)(G5+@&=kmC4tK+>}`I;p_d{Q8sC-XDI+BG}q+u?LT* z2zr_BnEnv;LuwMXixsC@vj^(-C2J4Y&-N}x)LMHajsLtnNM383*eOWNjyiZfRI~oB zg*c_;wL{&{{54Rl>9(KBhZa!ww0H|0iSBt_x;G}7%)=wp&YhH3{+Y7Ej8jIOXRjX{5}M zh79OZPxa={Vo_Np#>oqc>xsn7FhMfA0AuoivTSzfndANa$iP(d?aap;E(Qt z!^sr=082fQgJHj8Y4UwgjKe<6AhPYwxNZ2=Fh8=Ern?t{ru%!)Y#;4MW(z#8w)kna z$+i{IM33VvW`r%s!kTOnP7Y3?w!+V9qL|26!UlCG9p)!p_>ti~WLDcr5Tn;{&{f+0 zu2aZe`U>iYNA@BA$R9vtfzrHcDkbpK?i3y|ka_&19mf(*rHF(v;W2Y0?v}JG(Ab<& zH^Mnyi(I<589@yOHB0OF+BO|1Olz!mvC3fPA{`*+EVYqht8*$;?P~LYZ;hhZg}xYS zdc=m@k&vwDf0*bnN8?F8yUr`b2P@)-LK4S(@TlriWD}hzZO<7Koh#k1&`+d3 znF@^5T|9jhMSClrL;Ung{Suu6wqPiYI(woIlQihVBp3lH4jX%PW=AQ^vTYnD!66@P znAkQBlVFzQVB#=|S2|ugR60d#iQl$mBMMYhyCi5^I<(m&vk+VZBmp_e|kRNpJW@=X+ix7T@6|F zEXnPdyY)=`3c5yyFiTKpk!{qDd0Q*RZ}V@|;ip&7e)rALhe_x#OH%*z<1C5lqc-=? zEW4mSrz^*J`cPy)brQ`~raZ_fsUVmit-n93zn^qAVEN&E6> zn0{n~M|_AdBY#Am7$arZZ_jgM-=j*-jeTET@Wg;n2VEksLtN5WLysVMyu-aWfB0A? zrKDq-bdA5y=g*Xbl1! z$MbOCU?b`54Q5gP;3p9504qjnrB69P?NYd%?1nc%o3l|J?pp|z$_O*^yE6tP7<7<{ z^1!-8<|Z*@UuF~-3UrD*dq9Qi91)>MA5 zlplP`51uO7M;-WWNYcdq4z65L`vm!2J$v_yLFFQZ1(2a#%$MXkA=71#I>8*xA9Nk8 z*XdUR7-{H&sg!-F_ZS1 zZbNB?z_*s;!~00;44g!2%s(R)FTn^zKBh6y#CaV*2Lovc;%p0Mr1ud+rwdFqhu|TD znt39hP=rmdM5#D2&c(47I@4%Z{6Xux50#9|{p#`nUBa;k>C$UkB=H_?f|3Ee8hv1Xb`&GOzJQFS6A7EiC#SE|*o($tj)8G^a!7yi9`4)AEnS)amQ(02^R={7E zolqd#$V1Ub(LMao9JeqKvDj4T^l=d5tdI66>9>bjx`a4WppE3NVESynlFxkNE0C?A zzDnH-rw-YMR6C_2*Yv~GnT%PUj)wcK+8io@Vh6OT&!L!!US|7h??>jOyBNCZBh8S> zYdRRN?CrvI{)^gWul-OWGN~Va+PxoQu>Vz^4tKBT!WY0X3_X`ZHQe4hRQNw|KjuHSs(cOm)E z!M_WMtYQJu6`;z)2MbAzcWN!?;r*=_9!5@*^UhJ*k$I2)$;@OqDp(IWW+ux~$$Q8# zv$wgP=HFT>1U@np`3UyOkoz%ROyyE5#xC{6*rlE+U!M*4uBlkE+x*=%;Zr;I)&X+( zC5)9;YzJL@G3@YLc(fMV$wh#y$-gIJ+cFH^pHnFSo`Q)g9l$06oEqSI0$K(4vm#P} zk8I=Y+Bmm17H=cD@J#i~Rk96zoj(}Zu`_`tgf8X4!lw!NV%YOx3$edJKbLJI>WVyI4rg$ACh+@oYF2V8_#`_{=XuY&Bdklp!&mSsf zxz${XNFSX`RS#b&swp*K*4mt`T(*1$PFlr9cpltM3>q?VAf~wr8X|`vpsxW{!5B_OTj&0G?#H8Gm8r!SJ!LtJVx*^L~`9RRc=;jR0u|~GxoPo{S z!?l^%U7&ozGsARt)+tr%c1z4dnJZCdWww)T45VsgLSw2^G0F^BoPS!jF_@q1=m$KF zG+7`4I|n>+#L#qX_NZV4BQPG6uraBX52$xZNzShd`C-|c;x8F;s+ z>MzW!8VZT3>WX@Q5o{MV8UDgCRYeL^^{eQIkQAaS8&_zkaw_PZXm%KDt9<<%=YNvl z2;@ci9g8pJSJO*=B|5*{M1JXq&(G7I6KfgI`w3O2Fk{%Fquz@>I5%X>iU_Rb42W+waPO)ckrM<(&qJ2EMxOrkgYQ8qH1 zn=3!(9htZx<}xMa%S`ffANDeheQ!aoGDWud(Vk-j6bluXY~P=?K0n?6@kh21&#dZ) z3ZYP!U7z>v&Ns9kNoQcR9^#o*SR%zJB-@B4w!^#G@kgEB>nGwVKT+t5`RUbO^bt?# zqtF-A_qx`XGGU#OUO@-LGx->Li}24&RlaVhDaAov-zxlXxDT1iz5Z zKP7ZxjOCAPBc7@&3UyOg(6f*D#QE{GJfp>4p=5MN;iy99#kdiLVqEv37^}^VQ59nL z=Z2oE+G%c#`V*MkJ9Aah+$FU*JmPjrTWOgE5G}&woW~?t4k&40ef< z#v;Pq$08-uH5MggigbCK>u6#gL(Qp;BI#FaoJhajmD*H%9jqlV){unkll*4P?qh>8 zn%+4%9(h$$`&K2 zRx%WILHk}qk+aSHmZd9^r0YGU>HMD3*~qSxHca?Mr3boRRI196E&4=1)xbK}_Gxw%a z{wYD49992WI8#QaRn?;nt^}n`y#{!H_rCHryyKnQ3HL73)t?eFXcqiwUe(o~C^DLh zP0A8jA=?P*pK4M+x5OHq27|@B6qg%&k1lH1d0%lp=;D0H!L!lIVz^zTAqIDd5bq0) zjNq*WHXahHK+CB>v3C$%fmwWN9N=XjWXWgt0$fyon1+yQTk2h(WYWLG9<$2?*+zz# zZX@MwMwZj%u!bbhK~z9BCI;fZGP%^K7w>wCG9WoGk9^c4Ei;ql$gMr(m`VMO`W1bY z#i6c!N^a}kcRi77RlKPm5+vtCb=xB!W+ux~#rKe7X0jZ$3?-MVOr-a7s^&tbD1UeJ z6E!nR;}@64)3g!KtXeMHC~b7Ay1IzBE5~baF@TF-6xo$^9!}VeQB`s}mqpema^X~&e&5(>Vt&4_dzAo)dv$Y5nZO{?OlD4BC$G-u=SYRIB~CYo0epW z-sU#XJxvI|x}u(^rsv3N6kGM7r1c%ibn`#6y0ug6pP)`?o@{{qbu^!tF=Fb$svg}t zr6OOyqPYxBk$$610xoqWJz2ie`|FwY?^AO`$_d;Sm8w&kNItt^7 z`00F_?O%Tqc7@c*aIcCN?eZg>gRg)^|KmCM%0wL}&%x~;K8nVB#W)cFZp$JN>;`m= z3l@(HG&fVK-sWab$kj@7^Tnj4ABZ~-@v+`g;Sc;8prl18h^F)`7C%ys#=v zeK+YpL)tqYdS3y4r0)r*u1oI;r)%jRqW_Nfgm>L{e4b4wqKql{a*$KQU~!1cTMmQ7pP(z7CU@zvwN*7$!)j`3 zs%oM|$1h*py1aSeu}c>&Z*88tI9fDi`MkwV^CvA_Io&;f;nHL09ewoNVe^L_RXd`7 z=)#)e_yJefXUbTzeV+N>WZEl*kymetq zv`7j3dpvih&TSghFFohqT`y;8?c-c`@xr-F|J~}Rj2%z^_s_rP+kgG+rW;G&IJosB zc(4{<`mB_AUREMn#krzMwBWVQ#bR(z#$U8sfS5)2E)>m>piizh!B-%> z1d*E&QR*Tph=bp20!Nh6vo885W$IWe)JxsPJae8tE zvc4r}vqmJq0%BIie_KEEqgXzCzwBp6JiK0J=w@(w)6xa*MJ-h)y3I>ksv4G{4NY!p zX~p2NaPAVC1bUPE_Y73$Y1QMK=U#-7s%nbcv=sA5GWTE1s-}L?uti5Ns;ylxtY&Wg zT<>@??vj7J`rsctt`%e8KOgR1Mbc>RNgEOhr(vXQ#`s19;a5@E(%utH#^5&}LaoT3hQa59I9u4e zXwPwXxdTgj3_$;3V`j>P#dGI3&0S0l{$Cv}Y5e@pofgdAt6_sth6`%JqH)^ zoi%=L>s-I2i7ZHKr3@n1V?>uHPdl;IXfP&A!@!Xa1CtkjvDh_e!F$LE8kvDZ#yI0- z<0!+j1yR%@{)nzI6yG#_ak9k-_=Iu0A@hZ?8nLTQAyhXJn7j;@t}~96u*(i?8h?fkdAS9JGltjhpJW(3Ps{AOCLMm^mWKk~7 zRkF%UC>?WAK7D0rsbo<~=E6>WRZ=Li#w;gEO8HuqjilmVlB6(6(v@Y|r;AWV;&Ive zs${wRj3G-khf+h*L~4W}1FE#C`c&nm7|xT+OGwM;9I3pNPUVT3q`bMD#8p;tn?YE~ zs8W(|NfUiZioOWzwo=b}NLTzza@?-Cbes#vs!|aq4cy*{a$ZydvYoKfqe@78NTWos z2oy3V;t^sCv?eMUapEOYnp6olatSF`)|C>=@BRoO@7JjCTBJt|I>lQ3zZ zE6K;l1Xa%6Tu#c9^w3q=uF44;NH5}4uBx1exSYgQdbymCqIxE4l`NN*F>6L?RV-{k zSxAP;21|h;0SXCNqsqoHX#Z?+!bX*rN>_|8_QTAx@x>d*&2{)*kM9%s;;ohD3;6yX z-&gT{6W@37{RnB^F%EJLx694o(Ck6pKZJ3bb0Q2W&IcnOu6?XNn6FX}Nqmi7!h?Tq)uZ z|A%1|!WaLD1#%~U9Cg`z=ban^_Z@IHA9C)*|2s1dy>lo2Z-%^s{~5Tx!~dzE2tZ}V zp-&IJ^WcLIW*qvh!k_Nmz1@ow@o{;T7FK-ujN-_i?tJ--;{WGo6f^$E&nU)CI|(~3 zG(Pd)M;8~?R@GJwt*^uREqr`<7=)dr$#`eXCHSMJxNaDZuzDcI&xEYYA&?5*Y14#t zts0#MO*pM#JlMIwHxwXl++uegFny4dar$vT%i}GoPmFr{6%ggV2HzTdu^}b4<9jc@ zG*cJix(L^?xYAP9!k5lk(US@+QTg|ZSL2GuzZ_5JBoKtR>bUo7_iJS4)MLrdOz!}MrMv38wmyL5EIZE~cox*ers3RVbl;`mGx|WoWqHK0Lc|#e8WO(`jqruU>r89I6gw|Wu{%H=@ykA>c@Jnv ztSltSuQR<9)DiW?HzW4t(g#Z&F@4CmA&ywWbRE-Mm_ESt8K!?_8jO(SK&HnqoyGJb zP+L3{q1<ic!r9_`QPRIV zN;UNn$Ihsv@X|{1}sNQppIBo{a|TG z?5QT-{*LL}pth*5>4RPUlhAlkJ2ez**1lQeh%;)(4MDBd66aH4?*ziLSTdB-)_^)<=1{6xm+8e! z_YB=R)DiD7ePtNMrXNML7?gSh^%0_U%@jwAAj9xw6lFGjNDM4$rv=Hgh^G7BgOG=|XvMuRkR8AUW&#VD%L z*BRAlw2{$JjqYG{v_|(bI))JJ{0)##j0K_+9l*E0Xcxa`L<0q(Cxi)p4p0#2w~Pib zx)JCWl&M@E5BfbI^3n-F#Xv7IIvZ%PxKq5wXcPe;_UniXihF@b z%gro#9}wlPBp>4OD^uKqxH9nwP$qs@u>+`5{1ShEgX&=yP=A!5AEVy`1%ZkXl_@>| zsufQIQ4T(nYh}%f*Ovi=D6Q!G@8@>K@8)#i9lK6FJdaA*&O$_ zn8#>7$9*JLFlq%VKzXiZv{s`HjBW)QhPZDtdIV?$(Cuhync^v+G@u`|)ql|FK}f!B z=Aahqtx~+Dqsba6W~{yd;Tfw}FkQ`b9n)`s#$|4>W`{t_|Gui2O8(U5xg1v zcbR?$8t11uo59ZqjdKP&w}TU9dK74!KRI|gd^N%$xd)4wqNdn(mVcG`!K>6i8~Xh|B?U0vD@ z2#-s<8T2b@n?Yx$QC{aTjir4C&ebgW9S;A5!@o(xzMy!SIe%rzgUk=6lg6&!PHUcw-=93=_FtOlcdzuHjl2$k#x491u`^bi z1E_cZv$QRow&k!^+2X_j=;LA%(^Ht9MpTbW=MK0I8ZKtq&h%EMcQf6=^l7GVGX0pT zQ+OS6>|b~nXlWs}rOLu_2p`S-0Yy~C3eb2iON%~5E-OLN4imA4xU7gq*{hhZ#-&G# zXq0=bh}zz>EcwTxf!O_hpE-w$$cHJ#rQl>0Q+Plz^&mBxMVNDJaT#J8i>pArW1R|@ z5Bdi9UOg%=rD510%2(xe;vg!8SHu267o%Pt8BF8(<4m7p`bVbkGL@wio5{40X%*9B znV!OQ4$~H*y&E$EaYOuJ%T{wHP__AFzx12+P{TF))OR(|WQ~gL4Y+feqtP+;Mxc8%I?djM*?WgZ3+=u%mus}# zz6~qE0~)QypZ~_mkrI{PRY;dY$M-n*8<8$WL^SHK@5T+>D2?v3w*pPk=-2koFheiU z=q39hpcNXuW&Z;AP3tw1{$B%a)~LY$Bz_6LO`{6`(?E}DbgchwtWoxAG{L_WD4!OP z@XJ*Hi&%3+HJat01+-YB`H0IFt2J7TxNNaqqvig+xD$L%{!PF-DQND}lxt1H}Q2+5(e| z!D1qQ1_3XLwSldoRIJzNsz4ZTR@tK{HX<$}CYGyocQCq7qiumrh@&@^ zKqtJkz=+^Ji_lJSFmRqxCYCYUA$-9WBPw?2xZL1Mqf)$~(YW9mqgsrQ###W$F8vQ+^U5ph|G|J7q8fbw=wV9jncEJ@I zP0s8Kv|gig5O=)TtkH#tJ6>$l=yJr37msOl1LDSuk2LxL;!Y5$v}ppXA41#-Vw6Tt zW@g9}#T1QR&&&l{tM-U??UIv z{6j)2pD(*FP%dvvtqT-nZ^B#3A{tdA?ki%HMkgTd6fs4k(-C)ySfEi;_Fy?htkCGf z>~f&>8htgpMotx*HM%x?7|=G2HbLj9xLa4AxEDH46?-*$0&&yCI~u)=xM`vY_v~bK zC*r1yp&A`T+;p)(qqLl3}tU?{-X2>%{F8$05WzWIuDb5g6G%C)$Tg(;< zG^)wn3ba|H;}CbI*sjqO#GNTV)o3o_&Jw9dkDxFh!$K*Kfq8KWs0 z?dEg~H2MQ{o+a+m=sm=pEw*c9=53`nb|0;*&dobd&Jn{kD#=?0v_Yexd3WO!=Ut4} z21Ya5tPinm^V^rP~^hL%LhcZE=Kj9p+CHh|)d42!2UBE^wa2kD&RpGi_SGWgaxU z-yn-lG|*>f+PVG8JgBwbZQ|!D3UO=uZRtY34gFpe569ztxAd#Ay3m$>VezO4oJ-MU zHK8$#R1bJmEM}zE6Tc8^8ND7PJAWZ=(1`5(g}6&2vh$Z>yGCT^FU7MOk)1ol8ybWTp z*||#$*NE(VTuj!8?0j6z(TMDPLbPf`c0M7lREX`|EpFC`?A$E^=PRqp&fg09+mmsB z{#G<96nLZGCd4h)=wQFTK&v$>?7vCu5gRnB?cWz@i$+uX-z}aJ4{0=~|5l(q8eQ7| zN%6FJO`~i3KMnMeLgKdm6Rc;%mc?Yt8nLDS6zh4hZAq79FNxO_V#{6lJZ3qje$-^eP^OaqcL?9P4#a!-&doj`e3T>VmE^yeV24saEi&*vv?^g15wW9Y>?v zTjE)bXrw(L-q2{sfScuC#HWl@yZ)=lY^EGu4^n&it0>Wk+RNKwxJJ}o-WHQJqW1ER zn4=N3mv=;~Lfl^76<2CR?d4tZm`2oIJ`is(S|jQQTp>RYA2Fg;V@^+U@QdrQ(Q2sgUsx9k&ys&E*yz_p{_qgGL+E*pSe9k7XIV6$*?ge8dVE zuV^%>aF`J=KG2Bzd(a59lAd(|@=MU@rxE$ZF={j-zc|Ktjb;??uu_ahM%Rl=3ZDa- zyqvULFRm-xZ)F${Y4kwhU#)B-dZCJY3n<69nUU)6xyC&S^fxQlcvhjn$fCPN$aq7e ziHtr?NE*J75xt0Xt_ys-DAm`;7^Bf0McF{pH6ks2jB_<2Eq#ntKt)JL`wV@I%^J}i zZC_)DmOQ8UBH7P)QKJ>bms^iAETkwPfa?kTKGDRw4G%C}Y8D)&jIe zj4}==6gYj*-QrjS!#_Uj0!@Rq0_AGdHfV!yv=PyW>S(kvN+YVH(Z&>wt{jvhk24l% zbkm?*pcNWXn;2u+sOg0+PD^$8r$#cG$#wv{>B|n$5jqMtZEqT~? zrg4DLPC@%pXBnASQo5aj_NC?+iy5gAdV#T8$C2a$<93haBI6^E5SAIzSvlx;sWQDY!!=*wHmbmEirD_C{}W}SZeIh=t{&bHD1%`I>fn# z^)=2funBRlQKHcgO8Sar#(0hHL)-<%0*!V7H5+R+dKsw2xLqN(y4BdD5L?}99AKoZ zzR>torz5K`H2Phoawn@VGDc}cRL@+Y{$2vT zRyxW4egeH;dWQWYV+xny+WcdNxb{ztZJrYS6q0z>7$JHC)3=!pDI<;w|8LL(J@mg1 zjufAG_@8n(znm;lbTqjNsqKu}Yc@fZ(( zwkQ0Xgp4H=pI+k)r!oEC@XUX&PSuKLSCMZQfSRHS)DU}_qiePY$6N2-u#zV|_#0r@ zQcEN6}=ViJCHOG?xISMqCaCjzhW6bc9EqBfto_K zjfDss;%ChNCG#nFOFY5+<7!F%6i|~(XL0F#I3S;*Mu@>+D z8sZx)`LCtw*`CR(lD%h&>shmEIsabCp4t>=KXR1f&!DDwi*tXQIUh3TpyGH&La!c` zmiDMkF#r^2cQ|bka|U`iUi~D4v6Lmfxp+riZykAaRNJ#y+{JIja3D>VPkKFWwME943y* z97~iV+*@8fJ@Z95M>6lI{(cPGFrKLz$LLuB-m=Ub6;}MyJu+TX=~duW&_!W?oGm8d#Fr8o*cD4Xh1Cb zTzTr1wrFPgiw-YYPXqFdb;9#4>G3sF{mMSGJQHh zrP#-@uYy|QeNdnH5Y!fb2lb0jKm+0*pax4yL6Rm*S}f^fNt-48ki?yl$j5g8zH<#a zVba9(0?@u#brWX|({`rUGTq4Z7N#9cf6VlLra?hF>DV;Esh1!q^e|_QxGB~Q@n=1F4>9Li>yvTXBmQmb}OHP9_+%hwsuZiz;wSctZcWv-&h;iZFd^u z%U-nKWtopbGyFkGsj@(4aoPn&0f&n@ZL!EGKQmY?j|Oj!FoICO7W%Qml+IZ@YM1O5WzC2-yh22s+#SucqR(RYGtv7a^U7mq}@ijB~4iMe0A6is*bi$6xghp_axD~y3#ukNFG*i;smPswGzN%2>0t_NkP1oIhFvrNMlYX?mTJigW#Sfz(GuRb6_jVT`N`rH+MsDd=mF($u+TRb4sw z)9UI{$(~$UYqr)+0q3&1(^GGeSJhE_z6rEbd>=H(9t*O!gZ$JKv~HtQY&=(YVQR7Q z3S^3nx0rrnu0rngyfnzqP>T(!$6|xp%u4egbyuf;ECcl$Ad_2vvs`KRt-l&!dWO0N zmV7hqTF`!(8$q|?v<}tsSRN12DzI-D6trJBRutqc$h*ZP|1_{n1IsjsU)7(N_ha*= z`U^m*9d;VNq2uQ;`q1=XHXEet~iC@w`ss_d{t6d}HWSdGDJ47)p7q4Lp@M7NgA@p!t=51)bpk zYu;3F!e|4v!%U}GeloCsezBz5q%!u!*f_0U|NJJ-rq6<2z}h}$YYhwISON9HvGz<@f~V8y*IO~?W#V@r z0i44d2bwP?fcC=+0t2E*Oa+Z_Y?NbbICd3tRx@WUbFO6hYnZ=*`8P2CX6E0{{4LDC zi}~A_b02daV$KfcJjR^e%z2hMFEZy94!_3XH#qhk=6t}MkC^i*=OqlX*)p~m0TD2M z2%2ha1m2AXR;1e$L=3fj-$GUBWm$|xT+10pK7gVxAjfew|AgASLZXO#Rc!eivK zpyTCBpcCaj(8=;u&?)i_(CP9oppEi9(Ao0upmXG>pbMm71;k=WzFj8Cx2-t46c8(z zu96O7SIZ30wK5mEGm1EHOj8S?~n@pRXFoU6n|L-w4UklOeZm&#`FxP z^TibfRX7P-=x@MpaYCR6#Xh?M?|>}yH-T=jo4^^2aE{UJZ)Z+BII9sR&TaT@&Iatb zKOt_kJ6J;pr|p2ucK102ljIUfvb+gTXSb)e zbGV)P?cf}h)`4)LzeAD@yTG|MZ5PMxl70Of5vH`A%;{uKCuCkr>tue=B$=Q|xdhFF z;vm8~Ms9i;!bPAITgI_v;7e-!vFE0@Gp8M~w;@cq zw1aO_22QiTfx`{VZ(vRn=(J!HbD9uak968M$_D#Y>j@DEbwd8$j84w0ljS>E-o$gyX~Ce6E%#BXppX6U zLz~GMUq5@Sn|W0RK%;(%FDm;#1lt z<}@*<36gJRHE~|;2+L_;>DVG;AHQ603vy1t=5JtT~zR=OEfN+lSHBc^{P2r%e!dyn1WXf!AQOqx6nKI@#aJYf_4J^|D{)X%(4mUBs37iMO zp)$5Jza8P+^mg!{%Wh|x4p8(3a6ZWHu-Q(8Q*w4Oe;0E)Iot{U;G9n81pNoaaXCRh zr49NiRT+oNz+aeC#+(L(znas){08PUakz>3P0VTcSNKEzc0aYfcFiH3?U31&(*e2@ zl=OFS+Fjthp0kTNyO`6-;Z7YsDEj6G0|&)CP)ZdHkhU^S*-pf6%xwVO14^+CEZM~2 zCh+aNCgwDxl6*rd$uxmtoJ>6^#)q1~KPJ@9vF#k&!Ql=L?}E&%(5_UjeU{wCX**e_ zlVv&~(-G=~%+Eu?G}0DK%P}T~gK1p*X$QsQp)wAaA>0@)L+r(%B-w!QE#U_6F9&7& z!4LVHSiXs4n^>|5GCv5nbGRMhdl4q9+F7y#oZaCL=5(-32lID<|EKUS*13!I?_!xw z=5#WrES>7BES;<^OFt;4<(H+iZOmx^=feC3mT3TgV_HKx^|&UMX+rGf`Asa@j_^JC z?K(^vc7c;wunQdY8pwzIot&zZWjYaCSrE*i*kA_51~X{PFUvS1fLdlw88{SX&uB_I z8#uO!<(qVvWZEHvF&6x$f_Cta33VVmIH!YUI#|OlO)1A+h&?Xnki5KLn0a{tJ!ShP z_CV-#Bj$6QoJ$4WDK59q4K58X53UPd6TB(-z2Mg1!@>Q*fRpF+aV9utIhQy;bRKXX zc7E+V=j?O-7Da%rRkn;PK_fw8fotL^K^@`M+Qoo;iZ|X&PtMjhSyD9JXygTz= z$a_Cegsl9`{BZu1g4qT03h39&wxGXNVB*&iSgT+aTP7S)j`?2TS4pcAw8NQ*@cT@U zP9gqsruU~zPRMxWDJ-Gg2WsPYEm>G=gm5lDj1^)&&b=4loO(a3Y6pnZ#6axYl;EUu zDNY{`!QW4f;FscMSTUF5+-oI%SzRUQ;q_S-wwgq{|IeUz`VW9^_rD9e+y5cxGaTOM z{{-Pq|7W0oN6*IZ)dK<0`~dL>1n9j9gP2AF_*)M;?IVFkgdYi`uJodpZPzptR_|Fm~Du$3LxeV_YCF5j+J z+$AMhw7nZ$$&#%k>-9=2S+XK0;*wmF5I9lLFsrfFcLtx=>OFx((5j3#J;Hb{du4HDN)1GGth|1)#ny^o|m z)(KLe;7Xh~bLPyB_{SOPI;}j6t8+|V;$y7#unK(_GO5UT>;--UF%fd95BM1IMK_AeO;dJi^~IHb z;OBuBxmi;La*X_R+x{?rlax?o#Oq~|A##$WxdF%&`5i|J90hU{c|@#vZv-+;u0{7K zuD-u@4ES4ck7I3h9QggXoWYYv0XZ@VWFg``4Y!EPc>p;TkSjLPvie1C@Qe0`xE&82NV_DH_ZJe6h-cT zn)|=pXMz7QZsh)t`)U0D8<)Gt?sNG6)La++43G$yaUZ>kzsKC;(a!=oX6|70dEi6l z-W>fL@SDuNJ^B*xJ8%oE-2XoQJ8=u{uIT6SzZ18B?dLDxo{oMI_dU@s;ocMdGVZ<6 zmvPTVzk+*T^v}S5F!~Dq2h4q6^e=!sgj;am75ysyhj9zoI{qvC-xK{C{NIfm@ygLx z@jqhjx#(*^M$H|Mehv5-ZsaDSU&nvm+{x(Q1DP`SQBEKVSO$I_$V~Jf@K57LSn~ZQ z{#jf`V)P&JUo!W}=(q8&MgIx-Ixb@;`W^h2qu<5}M3*i{}3As1L|bn){ikAOB~0ygYJ0#Xd*memc4l_h+JG zxUWQmxPOP8l7f5H+@FnZ0rGdv{d{yQ{x3wltm1wydOPkHqm$7$?*FCtx+v*+_gzfd z(OS=U*>9z1%6>2RJYl~ZJyrXy_dH|2Pxm};zs;V%Wxws7FY?sX~D~e-jS>B=`Mq9`;xEz>cunyBBY55A2A0 zA9Jw(r*e89K+oh?{)h12jh-R@)A&V${6B?%@@DV?tfou9vlKFOdc%#j zo2~lB9&q49cP361prTijMk{ILC`lm;^+wBA(tmcusyH#Nzu+a*1&b6e3t4m zNv_aHlcm~96}l(uRKOq|v`bU7XYbWldYW#GZ%EYFynkXkEi3H=Fl4#Tdzx1H;N_zS z$s!-nx}c)OmOX%(q_LKWIW+#pW~q^kRT{o|ouHkNSnybzYz#L%-3cu9J+4m$soHLS ze00%`u9s?jC8(=%0p@vQF(ZvNI#CYQ029;x1-;3ny2%&5JfkvvKZy3=KK`LRlKv(8AGs#RJvcI6rRbQs6(0%=+q8|G>Ta2rd0^c(Njl2$(0 z><;D-(=R(Mx2BWTmRoMkSJu|`yI9}EJy&lr^zbY^-KI~ta&s18!q0_9(rhLx_$KRg znOxJk(#pzG7od@B(4D(s8%woIm6g^yWH(!lSw8*aed-9ukF&bIliQKf9dMa}Ytd8x795NY3>tm*en-su#1YJ`~& zE6-46MFp>*Ij$%s7gTJHgNn@s72C~kA#_88vrj_`aUZa-(@x<#i4eOX!ttF;ao(3w z;!*;fAlB~$F^?cwp5FI{4Y3EoSe<8U;A4(yISzI6VxJ0kSIt*OiJXz_iA<;Fbck8q zypT&;NI2$l-@zx6*1~3~wtzfwBP%ORGmXkK44+ap8xg?gC9~bU4O^scQfeTG7$9@2 zK4hgz9uvdx55bYzRw@;&Y=-#7TIK0>Vso;a5@VR+%P1#^IE^4xV`?F3T&a|k3yu1f z3d)Pqq;Hdm8|9N=tz@d!Y?W$d=E+hm2oV-G&xSFTnhGHUf& z@U5XsSg!Jnm741aO?emU)r$8aW7iGDXDp=}R4tG-jRj}7J9>~FmeH^lg zuYbDf%9V7gr0XPCyTVf%j$RkJa-md9s+|{;-TJPuMwN7h{8~dWQylU@NU3=JVK)@r zA`jxDuP8y%SofJmMVOX08%w@6nwQmb`dwaFuV3{!5$e*~b75gB&V~iNQR>OW)Eq*S zHf}?hB8-1!{VGigST?oYHwf8Te5ZLjNItK}E6vJs72PfUwjl}f{)>^|9}pp>VS*`sT94(6n=8m-pXW%GC0NaZ7O#dVi?eA&at;F4 z8ufN28vSWiGI?M)sqC=mG@zJFY$+-WDQ;ws zSQ5@&sNrS;&5*L7V!Oqr5V|44@l|VfG+XcUos}8V+TR$q3#7E&vQqhXLySVz#)N#+ zTG8^d%H)B<^z+RHR=E;$f^<(j%D)?u;z&Mwd5}&=z7{EV7N^apEH0~@FnvgQs=eGB@z!`iqTWF+V3mw=;M`9#9V&uv1;hpkG?B`r^EomCApWMF_I!^8}*IoiR? zCSK*2g*02T3}X5)%1q|j462}IVVZsys4Fm4L#aV;WjSDQmOdylTYDt9OCh`W@%U7| zt*5fBp4ReG3Uo8?{j?6J+7J+C;r&EOb*%p{Av^C!OeI(SMv~- zy)41XA+SpsUJBq{I&lh~tBuv$XdJd$aWi$)uzUdq7^`2cop01P(pt>b3_P8bP&YzA zIH`XIRVDRb+{|qZH@)Aqn6wLZ_MKCm;Wg%cKWc4+dro&WC-s6(U|(gdYZ~4=*`|>E zgql;+Q+biioO`B10HUHZxpibm2hy$5c2wWJb5Bl@_Vr9Vco+$Oe1t`8XBz3A9rjED z-4j6Cqr7UWkQehQoMF-t+NxHNN1mJz*e!^6kDQcgO3$bXY6eo#3)l{WyqpaD^MSm8 z^g?g3TQKesikS%XG@9_*CGZsNz;_F}soItLWtKl9&8=FQ6$_g(&itdLYIPZn-A==k(Zh?<>SoI3xc;B0cRsUd{P zk$Fq?}vMrOx^G&4SXF--O>gQzHlL-^N5IstiA@{p zsq9c(K0Gl!pS0SInh8@*%<82T&QdPcs`8|nWYSZ;* zn87=e_IDe=U4s#ak8oFM$nMhDlN>xT6yQr+(le8hzt-R2#a4{V4rV*-g zmwyk2=X{D2LVK`+fJ)K4aFZzZyJ~Q_a}=F|(ybtRmUU=auhYTGeiuZ|?Ngc}AG`+j z`PyDd0Ec`Hbe`=dx7cXc$}qzpKbo3y9)+vaY&Q~H4*0|2hBXt1?X|U$&H)pnN4sGf zL}-2;_+tI>u)FIs?L?#-)q4|UJHWe>giS0j;R*P9_@L@2u4JKnY!;J;+6Kfzt3-$P zI~BGc6OO|-!v2Jgbd|Z^tw=)wDFb#=nV8r>LvOI{=(p8swt`H_wm`-Q&M%o8Qq-{d z$yi67E!h?oIhB);Ybv9V40f&p-XweLt*~h6R;AI8*&%OfE#glUHQ(CwrTS?1rvuP1 z?*jNP!%3Ck)xn+GMVl9yIBoCY&>wrh_o( zNTrVW=%nimel;$7iPz53ZdB_)Y^|YccSFRMZiunQ%M-t#?L_-byHa>i2g3>pHEX&K z*kftz<;Y%MXg4*!bA$gqhmDXDPao&uwEmm(xa?%M{Zm))lr0Vyy&IEsTjviGG9`MHbW=&_e2wVduF68((2P z-3d*V>35xw$(>HfAL-`uSV&sfbga~U=5FEAg{9d!J5TdoQ!l;u19S6Z=#f4!GP*eR z_{ie81<%iq%#5SN%}$Ju89=(P0WGvJId=&oAXHNePEL)D=Yq3yqjMLYJU6wtV6n4v zocxW?cNI22egT>mr{-n@%EI{Un3bn9J`sebIX*u=KeFHn8d-R9cGQ6rG)qw3xY<+o(Lbi1U@| zJ`vbpm9`czA=#UTS-nZ-dn3YG^xg~$Ux`g`Wz?*<(QmMB?^5Tc%+yJ2HczvK;e-@ov;Lrl<7xdk!A(_k>=Up7MVrf^ zhD@6>|EQtM)RJ(dDE$*%H!anReOQK-X4y&#ySiG-*Et>w<7#o86^yM@X6o3eacVlQ z-9d+GLMvE~jI=@yZb}BGtTXIXH29TdB5CD9)|c81Gr7{PmnJqhCIs24mFIT|EOU z7>q%%MM*mobqI1!IeF2hS}CMWz5pqEyA-jSrePS@8)l;dW)8#(Lmk6nK*LthjcjgW z9BQP(UonBsNr$%4)G>BrkHz{98b|PX1*=q`A2r{b>nHgwd9vk0DggDTUHrTBjp)z^u2E8U?j3@Sghzl1ANf zS}fVVg4#tk1}RrDl9J(X=;~HgKL`Szm1>Uj`@wr^7`BOn+BIF;vc@#)j8KRarC_ch z?`Vm=;wJUgBAkwC0p)BO42ZZIOBWCXuH9VjORz@MVG*U z7Jiz|%wpZoRZe^Tc484cPr53DAuL_z+PP`ArlsK%NJoC2bY?q3YMF|KN}GM`0t2~< z&Hb7`+3*{uuF3I6@S3&PxkelL*ag}7gYoN6UFYPtC zQl??C!D}Y+o@+x&AkF4k3;TnST^+`TKimxGFsxHNYcqw`FiiXPJ{yg}u0{TNtNn!M zfs?4i@On9)qY+Eao@ai|zgYKJWMDe~1;%8MzM_~8dpi8yJLZVYHV4$sSx89P9+pDZ zvocUxvvglbj7$AtH()E3z-d@=J9H(647N}igVgw*`SNsj94Z@Y&SpxpEJkDt&lU=r zq2M|FG26#j&W=@V%ZSzS2J^0JrtPGxcF1Hn;iEC@!!lkt`LJ5RHma;wpVv5J7l}c!*WFCqNr?r}mTMv1Bf%L~rJKBSCUi)YZfzw5G*wASkwx2FddC>A=!kdP?18r5(mCO4|a5C~FS{r!qu z(*|!EZ`991yR?+1tJcrB^~xCw-DB>(Zl!bYB5aal!s?F|vHWjvCxEWVUB?eO^)!s; z?8c2(sQ zt^{{@mOI%StWe#Jqui~oa)Ww8eb@_;4g6>JK+w0g?rX5ZnK}}26+ly0MZ~< zIk*pw@>}J<3hCEe3|@`9*5^g6D zb{q)58LnrXQR)(05pTP4nz{a*>QIpHHEMC?OyBty=u&QJ9dkKdciW>o@wPyl_D-NC z&Cy+Vo6W$dYu!A0cbZ!a_p?@rt*jP3ciCD-BZd~f)%S3Xn+Eih`L&k6ZJi!ovc9B# zUnW)~fUCYhNq5_o*N?w-0^AbmD!A3o*mT<;>mE`u)vrTJ6T)ivM4*QBCW)|;=1;>f z=1-N088Fj48^O&$LMzsgE4v1%(kqRsw`wFLJeUzfimLN2%T3i)HCisZO9L5mHe5A{ zDA7X`{?`kZ*tv!4?RamTtGj=H7Cq!1>U4-E4^xa%b5X7aTXF8u>!l>^4*TSFTYg~d z6F+yoWxYXuw`<7wmf19}t7Vl&T@KxW55-SV%M_Xl`Z#nz+oUAL6TFZ#V(AyHSE!dX zd1OR_ykgyM*?Nz=agx3=!s9VqFCxwU{9YnX=_@=Q!W1)dy>*_WPF*?Npn>E2pu1%Z zI!iqBkr!zhG|w+LnBvaEkE`Owv2KXFH4QH?RF^xw#NFn5+bZ-oj4zx@j|6Rf?$44 z3hqJyG;XRrG~uu3=wL~0l(=`WdkZD6i?b)ED{msFeR0l?L(2-ZTn9(KGm`=-l~>?i zDxl+_#I)hJd-v;$=B4g7dg^-n`*r31?$@72{=BqYSMF!`AOEL$N{9njdWpuAW}Q*o z3cd9*yj0wb#c8S*7CTEkJEhrT15S30!|&X`gr$9QaBl)vFQM(689({d*10cK{^(c7zxMTCam8PF=6fH1>wUlVLh*~=v-E?5zkcMQ zoe89s0$O zgx^p2Vm_fhQ<3wqoI7z~Db8>o4%`8FM$UtB?la)a^0w(t(TU-Z+sAK=dxy3^MZf#_ z(DtWK_`E+AB7dwC`D2Qt;V$(4uv%VEeD>ZZXI2i+J24pLXk7O8$d^*$nJ8^@ZM77|BaydmyUYv5x{s&+4`@4QIoCiazLu@nFD z;5tOE`(&@=z%9V7ej298KkFUsPTihY-FgoVZvRkkA0_u5lG87TZ?_;-7)&H2dgx|P z1f*)jIi-LahMl}OxZZ&Qde+X+_De@y&*1iF2YjI4k@$0x90iJ3L7!y&0sCaJIC#qP z`J}q$Da+@RY9o!rnZhBc8rpspKW#>>UlrDjQ9pyIIU%8R!uav363rk<)PUklKT#*~ z_}~CPQ1&9ts>lI;iwYk?QV>=tpRp1?W4V3CQoT$j5KNUrW*SC>LS{hKCY{WP?SZ!g zmgmbwq;j#(6^4fgdR-I^-{=lS!^0X%ALjpKyy_o9hYu4z$}3(WJX{=bhb=Hrw74QK z%nc8N#PgET@BrC8Ld&>lxQJ62CadA$!R^oUznb)@&=Ohoc5WaK8+?P? zzcbJeU&DV#;V{qIIbNG{r(S0tFnunAb5n0n;&_u1HvFOgp9&WS2F^t8J3H5EVx7$E zJ*QY(rW_T=+Iw!srSzg46Fz*626y<{Hr-ACG=3b9%ee_{(Z==FxVeS#`o`Y8I313! z*4x#UxLUcK#HI8Rskl;$d0wWR#Op~Tp$J~DEuKr(OIIqKEb$_qd+5@7Qj0nFY{jz7 zhrW946o1t%2(?$7Vza!cl;bNpOK&R6GN)8ca=U@YKEwVuukN|~$%`H6MqF>iwR$Tq z>uS}qUc!mlB#*E7(?4anHOp0=|?+fMGV`qX}i zr{Z8n_5OQKpE-U1nKNfjpE(r=3##|ml6DIl^;7W$?p9UGock_vzohp5t)YC!a<$i2&65>mU^Sq!x*wPJXi z&jO-37RzR7A*!tJ7fu6XBJ*^?hGOuP89q43upz0`g?E*XnfK|2N*=igA={X zH#ci^;wu!<5Zutt?MM1iEchMTx$B1h-l3Zd-cL?LV^Shco;X2%Cr=EV=y&KBgFE*W zkqSHapOjL;;M#fL(9SJ|BIpJqMKqLH2j6~9G)a1ZHQwtq=R?8Hh=9-8|oW+LW3JQ*~8y3^(+qe zQRvRr5eELwmZSwU0d;=%FuC!=|DsCe4VDH={Xq45w7-9_B;>)nk<0yv@cv%$bFh75 z{~^Ta%|*|mBAnYCS{d3rq{=^CI0hL^27S!&#!j2hcV0l!I0}8?c>kfHo##lN#>1Ux zI1^AipD^M+1vRJ##UnJv&U3?qA0GU$;M*@8F~#Bq5$5MXyi~N0uX+qt1T=&lLm28m ztg;5%fGHZjRIGND!HTq=!OBt3*p9ax+{igkG{R2j(NaYVMkeED%c0N5=8ElKX zozK#!g%c-EYCgoVEKVZZ59A7u4K+3x$5$naOR5F<^Wqa-qOOkAp<DUt zkVk(a z31Lk)zBua1YvqxO`nX!JUl!kjbaw6}??G$oi?3~}!8Vw!>a{S1`J^I0PH&~E zsjX~w_3nyXybpIURH7M{?Ilf0KNh(o9CGr~l|4db)MV7JGf^@**)u92tID!;qRG18 z-xj&I8rZCDemG(51=a*({Dt$I`r^o8?)g-=Jq6^AwRe6=L55O8luTP;nlvX~( zlbcLS_DBvN;&E@G%487xwr$3#m6>&r5XVnymFA>$BEBEn{zByLc^y@3|EE2#1|=aF z1Esc@7wri#|0rmxM+B5_QG+;hcJ=<%2UhR7XXXAgrL!gHZsFl_-`~r*+HC(BD$Y(I zs&gKlf3);;R{34@nN9Ow40-?W*m8H|-jNxHNt@Eht;aHB4?`6rJ9?kGitl}^JW!n5I*_ebaPh48w@YmCtqY?IyZPG1k zKc;C4sFQF-fD0?Gtg6FXs!EHJ-WIuACN)aw-*Hkx7K+e{h|uuqMEM!OMvep`(UOO< z@`^V-g(fGRdn@nPk07-cy#&hM&#;*Ec24Yjmg$|I)cs=Oxz!k**tL z81ht6_JDq5dh@7UtcvmS0{aUrip2{PHSe+Ej=WICBr~W{Xq8k6u471}MSvgs#NWrq zX|rrBgL0?D+@iqG9StNKiO%yzx2+PcV&;e_yIR_6B9H9akrlqdwbf7tbK{nk4n;L4 zJEqQBlCait?!5>PSW3!Z#g?|JSD2A}rrcxl!nB>u39p$9V;CX6MzZ@OcScwLV;M@V zbQg+PRIir|rQh?iNPJbVmr~WIcrIKtX7x9d&Xm&ED>81C^!!%L#RP;6^D$F?r6y@y zE=xfmcj;C;U-R?&ubblgb<@h99^CnQP;#`k*DCtPfy4cMg&S{_)+%jDdjl^^H)rXu zMFYP+pWpF6zt8Sh(9~Fzvz!=UYlA(>{D1Moo%G=m(8phtR*3I%*`z4ew6dWG3;{umtjZ~emYO*dA zQ~=Yj806B`Fce#hS20En2x>2wD8VwW1$^2?fE{J0e$=n!`L0UjuGuoxMv9*DQh{k< zmSIIu8!|DY94!pnEKI7UC9-UkdY2-^iM`HCwtMl+>5qN zc0#J&>vj!^Dw+Z9P9|V{R=}Oq=uRZ#qv=EYz2Cl_tRDcvV z-+l~SXv}s(>e^F~p1OZi5UHBk@;`8y8e69op_0v@7%yMWR_fzL&(W7}j@&U-S7N`T zVc8)5NMH1p2al`r4J;C8FnacH!zbPhQEC3{ zF47O~O??14;J^U~4mfbYfddX4aNvLg2OK!yzySyT;yIu%DY8D}oV7b|zk)uq4_tWq zR_hbr7xC@+EY;mT_Yrs;Q?n&pnc^;BQZ~mo3zztv#h7l+kbk-N5BPkl)(~uvfB5&< zb@0F66SC^%*Pky006$~=>1&2EC_Rr^n+)8hFl}4Kz)k<|bV{{ItV|`j_{MK){$>d7 zi@nd2X#`EOfcM6gdvjVboHH){?>YD5DPLW8~nCLMxd0<>}ntu+X_j>|2#7y^oWgEA_#=PxaGXm^1v{A0 zEWWe+KEQwPRW#}KWlM3)n`PIaubQKB|8h@bzN)(bjxXk_{?nApl~f?pxH#K~~` z!+3FO7oKks-NVp5od%|s;+p5%q|r1N@=%K?=d_LriPKz^0lN2wK}MVBzc=h(!BA6% zkGuIlX8h~M+0Df_;^Cy_F+vSwBC4wiRX7mSE4y3cjq))D95@FYIN-nm2M#!Jz<~n} z9B|-(0|y*9;J^U~{xUdlA!0S^+{d+CKlpdRfddX4aNvLg2OK!yzySviIB>v$0}dQ; Q;D7@M95~>>|Cb#2zdA#c + + + + Debug + AnyCPU + {0FDBFD8E-C694-45C2-89B2-BC3120B944BF} + WinExe + Properties + InjectionPC + InjectionPC + v4.5 + 512 + + 发布\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + False + .\GlacialList.dll + + + False + True + .\Interop.TaskScheduler.dll + + + False + .\SchTaskExtAPI.dll + + + + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + Form + + + FrmDown.cs + + + Form + + + FrmLogin.cs + + + Form + + + FrmQuality.cs + + + Form + + + FrmBarCode.cs + + + + + + + + Form1.cs + + + FrmBarCode.cs + + + FrmDown.cs + + + FrmLogin.cs + + + FrmQuality.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 和 x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 4.5 + true + + + + + + + + + + + + + + {0CDAC26E-8F92-47EE-9E2E-844DBF78703A} + 5 + 0 + 0 + tlbimp + False + True + + + {715CBE0F-4F50-46EF-B009-CACED3A5C868} + 5 + 0 + 0 + tlbimp + False + True + + + {00020430-0000-0000-C000-000000000046} + 2 + 0 + 0 + primary + False + True + + + + + {867989d8-6837-41dc-9bf1-4658f5d6cfef} + MESClassLibrary + + + + + \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/Interop.TaskScheduler.dll b/BBMPTMes/InjectionPC/Interop.TaskScheduler.dll new file mode 100644 index 0000000000000000000000000000000000000000..4abf1b447b13b230d100808b030e008e452d6b18 GIT binary patch literal 49152 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 MfvE`mkBq?o1|zl)5dZ)H literal 0 HcmV?d00001 diff --git a/BBMPTMes/InjectionPC/LogHelper.cs b/BBMPTMes/InjectionPC/LogHelper.cs new file mode 100644 index 0000000..292d474 --- /dev/null +++ b/BBMPTMes/InjectionPC/LogHelper.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.DAL; + +namespace InjectionPC +{ + public class LogHelper + { + private static string CodeVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString().Trim(); + + // + //保存日志的文件夹 + // + private static string logPath = AppDomain.CurrentDomain.BaseDirectory + @"log\"; + + /// + /// 写日志 + /// + /// + /// + public static void WriteLog(string msg, string errorFile = "") + { + try + { + if (string.IsNullOrEmpty(msg)) + { + return; + } + else + { + msg = string.Format("程序版本号:{0},Time:{1},Message:{2}", CodeVersion, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff"), msg); + } + //如果不存在log文件夹 则创建 + if (!Directory.Exists(logPath)) + { + Directory.CreateDirectory(logPath); + } + + StreamWriter sw = File.AppendText(logPath + errorFile + DateTime.Now.ToString("yyyyMMdd") + ".Log"); + sw.WriteLine(msg); + sw.Close(); + } + catch (Exception ex) + { + + } + } + /// + /// 拼接错误日志 + /// + /// 异常类 + /// 异常类文件夹名,可为空 + public static void WriteLogManager(Exception ex, string errorFile = "") + { + StringBuilder str = new StringBuilder();//保存到文件中的日志信息 + str.AppendLine("****************************异常文本****************************"); + str.AppendLine("【程序版本号】:" + CodeVersion + " 【出现时间】:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + if (ex != null) + { + str.AppendLine(string.Format("【异常类型】:{0}\r\n【异常信息】:{1}\r\n【异常方法】:{2}\r\n【堆栈调用】:{3}", ex.GetType().Name, ex.Message, ex.TargetSite, ex.StackTrace)); + } + else + { + str.AppendLine(string.Format("【未处理应用程序线程错误】:{0}", ex)); + } + str.AppendLine("****************************************************************"); + //保存日志 + WriteLog(str.ToString(), "Error" + errorFile); + } + } +} diff --git a/BBMPTMes/InjectionPC/Logo.png b/BBMPTMes/InjectionPC/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f478106030c3a4d606684f3de2ebe555b0e08e18 GIT binary patch literal 19961 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 IM6N<$g78shLVQWjON^^{daD?Ue>J4?q|8Wf-DA z2A0Kq8(cidEN>ZFf@_$&1jT-;XdPZY1J5kYN{Z*)RKMd7(o zftuqsGN^&$eF7BDml1caHTbI1x64IqJO}ZMlvKTI;>7)v4)t0AGwoyDqsJeP8)}v~XvwlXT^WzFAHZkGLpOSWuiygUZhvgmS@ce+pV$J1j>EcGlN>_ecn6nu%MH-asNQ^BN)-^@;*UQcv!* z1)h}#eTF5Le|IP*e2~Jb@P~O<;3-FlT^ZNO1mjdg+^c=CrI_ zt!^1~w7HEr2dAh0f+jmAPPP_#`Z(+>>~=?-u+(0U#XXPUVb(Z!DSq_{&Ha!u6Aq5x zN=qSYiqM8cE%5ktU6>5btX%;C2Umbp^h&c1fvN0SMPuBOSz^d78C1MjWs<2yJTimu zp9W*Ju`f>Bdc%~zo!LsvJ_2g)$qiVuxUS~A>{t|E0g9uqsq7v#Y$~-0%plW=;zQ=h z^f-1Hu6l>B0OBh^-I9NMqly`;q(pQ~_YuO^wo`@FxqC;j#0!S~)Y(S4wu97sAFUdB zg9cQ|%g(3cZ37k!@vt*e!;e?M@`d4(nPqRjBCC$JJSM_T-Jta%lf2>*sq)$4Cf)5* zRy~HHo!n$3rfgUud0^G7_L{(s(2p+((-##gJ-dzYg7sK;bc;50|CWT+HhbAFyGoXy z#5h`W%l9F>=QT30@F_S^+=iHb;RcB}lfbb}Rc?Ut;W{v1k%sp~CT{KDy3Y@FtLO)Xk~VQWQWzuFbxc{jDtM+24@f-%Xy{;jiO zcqrV3-xk#;rE+krq?UA5)x_sX=UuxvxHU?u8WI=TigHx^VI?W$XEogQl%o7*!@f5A zyy~@+#rt$ftoNUDlJmQnw0)s1ja%Mr7A5No_`vaakY;0n;G_y>IDMkyquEgHZ6w5j zoB5vfYokL65ZX}g+1OK&M^OkbEFL^feh*dezw8-w+|xCuyDT;MGV490CCTKI@vg@< zWa`OU<8tFr<6{j$bJkued{sW#bGsQ;*S(|s=`{G$wBcdiw|yqejP7E(m-+LR(Bvnnyh+Pz?-1M^@Nj!@C#|A3}FRT+@9Mq$Ugj?s;)NJ$VtJ;)g)rY{Dz|&~X>e5m8tezh?F!e0EiOJ~g+)QRF z+a*!+6(Box1*8vlpY8`o!P8T6&oyTP2R5K?JoR&7aLV&Tle`Iwev8#ylPh4MF-f}T z3b6dnrVkuucO?dSc zG|!3ht^m8!G7(q)D?m*&Z{agXG8g%*Yqj5s&qTavLFz#?vBERo6j5B|khErPYW`ER zTdju7@q12U*um(*Y{H*t0u*VhObn;yqkVo>c3oz{$-r%eAP3468fIe8R=#_0xFQjO zGNEI%M|0o%tzyoFby}*P&H9iAmt}MI!klD9g^Bgf^l;;#`5A=Q=cDmd>3W;Y6_8Y| z=6t&T%|-E9O|9-@eBFHJvFozJpw3=g8h6PN7iZQf^cK4))3_EE>R zgXKJ(4DO`tJ>ci_wphP-CPu@bT3i-%k1_q4f%A zvay<6t%^2sPSW#o@qqGvmUQ>q=@(Nyul)2pj)*Jj&T&XF0_#Jsl7$mD&HdEdUs<(G zmK>8%Veyv4t>Dp7;FyccRf${MZM^D(OR_(g+vGQRaRq?KPk(Phx9E!cYMd@!u%pra7)jF+4ap%W4vAr}ohk_I>T+oL(S|3l(kAKfrRCfbZ2VK`igK0}_t)Nr5Ng$uUr25ZHk z@WS#kb$yp1b=WXB6d*;avUOW6zmV9d*5qCeaq*MQu^l5ctzw5+TiOyAR9;p`6nikr zIqWUx;-ei{(}NEYd8b4BZ9T+2ulDtL*jz_aM8o$|mKzy%ehTly3Zd`F#O!9adz<-( zy%Y0YdNy->y1G9(i`X;0hy;2!&I`IBGje=z%E2ojVR;u)KX=L1Q@OsP!r{4y>xrN_` z*!&fcvt)`DYbfJgNcpj3@7&Y7c2%WHSs4l&HUkkI$&o zZ?Vo4Uru#&$W>)@ghU+%pqd!0g)9ljoRT?4FSl?+Qx3<+`{bY0i7hu?ja_Zs#{1Xu zh6`NY@JqK)e}8e}lvMdjKHj3;g1UeFM8* z#JJs1lKkDLxZ%2g)4z37gB8NBQ5ZLUa5;8O!|+QVjGN`zHR47l68whdF~DYS4q|M; z8eCL?1>rX&Ek5CI2Qde_U=>m~2+as&I-yY>d?8N^4ww%>lH0HMImV)2&;?_GD1!1dE_`>wmd z^+NPUPZSHr7ijO_gR3r%Yw!*7->ZMXu1Ea6g#DZ99|V8Heyeufw}aZ)fV*omP>t=O zcBW2>##Sa^@Ao(r6X$Eu*AoL!16SBK_I4K6?d$T)%-s2(eFI3Y z2Gz;N(!|V3!{(V2I2hsIhNzMRC|b}g{7UD9n=;a zgC(tc&0X;Z2KKRypw9NPW_D%}BWE*H5CEvTJDB|@#`r~i4Y|h1*;-J6yZ_VnBS9fH zYSLP2ps3%@y>|Y;L*$(-%>E66YGmWAW@PbiFdP#zaGaT&vz*goHTh@8_VzZ{4AK7r z{~PhG7xoYjaT`mEzdVKe%lOBCfx(ezre@|wP#b5kdCSEN;`~35Yy1WNcXCW)3rTw$ zd&obWi~ozigzVo4a0sAaZ+GqMTh8_licn`Kvwuz;3>$DF{WmC32tfFKZMqI7{hGMQH(0FeE|wfvT|3Jc+`y{}0=Sn1H!xH~3ka_G z1;hbUz#cFL%m6At33vgvox#oNrUeEp0D}J)3MzmPUkY%n}O?N5r&=GMg}TN zQxOJD9(i_o2T8LRmXAFkW~v?vY9=1mCIY4mVxkzrVmGW#!hXG^>F*O%dk&^k%5bTLC{5H(h)s@wii`5=t!NwsV zAi&1X$;Qda0#dLzx!XA#xv|(e(SY)96tUF$d)UAE!&2+U9iSi#svA*Kpg9mr2WLxr zJ1QeE)Zr|`0EJqb3i28AnhTim@w0H4@|d%5aF}tk7@6~#u$UWh8JTjLak3k6vNK>% z{bje2gS`CzEb*@+U~9_;N~NL_1_AQ&f>QP-P+K!QXE`a+Umi2HHvz>u{PohpUkb4Q zKPe!5eSH6&8E6*UwG01Y7ijA*80c2e!EApYv}<+#&zC;mIEe?^7N?7&cvD;VH(dk3a+7(0ij0hm zf{coSf_e)T+%VBmQPDB6FfcGNFtG4`r5XI*{nwm>Uws5LG&F21Y+^h-;{V0WgC;QZ z0Kouh6$t@+RsUD!!8b6)1Pr*LAzVk@{wlw-3J`9AP(&m!9pNv;wROMJ5w6n>z?c0| zkii{Tz%+$lxd`~T(eS9)3DBwU+$DUZ#6d)SpYt6J7dI`hI6WUI6af(l2^k9w3mpj! z`8u@$2_G4_jY7>qAby_{6^{x`6L=XRp<+yPhaJof;ELjTlvdoA-Y+>o%N>1J>1#=o zs)-Ztyg%K$xr|aNXTsgV#h8GPXrKj%h{))-P_dBE!Gse~6954piTd_^P7aV4Br?4p zRLQS|fQAeC(XMzz)4bBPoU}ekRVV)_lZ=7luXB5)&3CxpEucJ?at`>FMt}fjPh7tU zvHtE~#{X&k|L*~2En7pUp?}Cl#*bmv6%T5m=Tn;VX4Y2>jdq)&=ZYbb@2DOKG*BCq zhq|llr_}2W8K%^0sLS~NYbau~ro@=Rut{mlzhGbsp#Xj++}C|bY^HnG=-TC6B-ySh z|NIvTF2RdDC$g-Z@PYnf^+xkNk3NH~PxYPpo-XISEXOvTuO9=lzCjLqjuce5wBiKB zlU&197Ddofl^yfs`7WWM1kDL&2&wxC%j8CVg6}V$2w5i$1IcbP&oW!Lih6%ukdL2) z!aQbwA%E4@-`5>|Qcr~m0=UAXg5>SOO%Bd^wawrE!Zt%a&s$b5tHacLcd2lZzaV`B zUz~fz*+lZ~B=dMu}`kVP(kQm^I*c_qRu zZ@A!8ZZGGB-}_l*l`7iqoQM{$yD8nU#v;P`$#-Qa3q0#W?omhK4v(MBgN1gL{W*@^MyLB>db? zzjnor*GdmElvip{@*=w=;XFG(Vf_vzIS5d#UNVq@+nsJ4{Eaj?O<_0jtN8 zL0wd!x3Rmz#P$uP;zKJvxi9^om(Bp$&$d&U*oBLGByD_fF|m!jON&iV9n^;5?LErW z(}Pa#v%LOug?e8Q_;(>pa&e=1eK28GL*6yGTRoKU2z=4gK)FTBv)-v~%@ZeLYM-36 zcG>sd)A((H+K2-&ZM#(My@u$vPVha<1s2t=!0F{-l_*IeCIsF&DMSPZ!^FK zw~x>SB&bol>?AoII<2aUkQX`xZ$@NI87xh3Dh50CyYTxKkG9 z`mO^0g6XpjUiVtvta%sM6%f_EJ^u_mL*JmM@VYx z9;}M<7p!`7sOp{s8~2|XB|T4=OA=0kBs%laucS;)z+9<%H1AG?p)Ovavap1v`mmMN zh%zJOmU%0(yYGBH;rHkewt+{4)aB(h$_h^I$4}3sc2!hq2cExK%}3~*EK0YWwl7-U z9_ivM+==^#oj|YGj$>!dg~&zia*e;!4_}r6b8=Zj^x^I2I`x~FnzhpM{Z7M~l@ejw z&iSiIWrCtyFJ?NBa7Q+NYNBl@b(5oPHmLU2=y__8>i8#b@ldi&nVeo&<$!r2uAFDC zf|V>D`D=u^mCWxqXZZ~q1+M_1RfF(Q01(KF+u^nl8tv=|XQ0%+uZmY3W=DN=bi(`^{;X(XBAxYE^3iEO8c*nC`e^@+p+7K1)KHU&$)nM()<#{qP z!Sir;wAFH53wo*~qtpc{`J~_h+8h;ISGO9KQpe>>-ZQW}HdF&RU0;-)Mz|(Mln1)J zDMP;t#BNad6vYHCjJ+9a0`JakB2V&jvO98=lTk^DX>}vFPPTit&vT6d07I+vl^dmQ zTi!%W49#FTJ{EYSpLS%^=eVmQ55GU;3}b%i|6r|PhO2i1=7uF0mPPKKT8*9oT4`*; z1ZmnZPd?nX6L)1BdrR(FHAT*ZtvlFfk)Iw)wmyR&s=HczJTY}4cDMFa6m)Rxhrg{Q z-X=X|O5NnfsnpPR8rm8(s=TAUsrbsDacSvUT~1sKdzXU(UN@eZT3ybKr9a89fWcjD z@`Us|KPgkru;Uc_?}xlTL>hZ@(zK9LE~BoHBqH^yba1?`iB5Y>8GTbTRi63LYMZ zcV5gdnP*~)pcj`8b~EjN+A51Z}2pX zk(74wt`u=>h~dM2x$z*~`!%g%lAVC6zIjreZD2G$cSt_Tx(!8ePQ7bqCHsx!#z z3K%KgbTL~J7fn3!Y1i7A9;iw2yH#kQ*4dHGnR~0~`!|dZ_oFFF>gVfc-To8%Q<#-2 zD;fTEMKhcmC;SyfFkxE)Wy55?PWKbK^F;W0XP8Ivv&XF+dUjc@>n}>;uw1s=T1p$* zG)Wd6syD*nx+pW^71GgkOeCry48hf!PL(PvDFqWE)`1Bl0_l~ECbb6gno0|{g{+lE z#V?wT$AVgN>$8oGl4OfTOWtrEa=u|c*mDeW{P~K4%ANoCl?5dOIs-bWX`zAolOEk4 z*Y!preQ^XCHb6NVaWFg~{GI=_xZw zm`XHE+e;=`Yfx--8&mv-k~`Y$^0R5P_Eug&kn%_?)RPZpuX6=-uj=DFBrM;TXs3B# z44EnJ&IqFAJH5Cel4SUH}52`Y{2&-6Fc`Q zi=0(2*;f<_>3yAGi0Xf zrcHW_VfRd?et6NX*|_V+Tmi4U6x)LN?704L)+8m*>+C*KTNqEa#b0U2lq?v}49S+` zy8V8@qM*{lfFVb4<~sWZz_CB^$u3vF&HVDttwxV7(KiQ^TJL~+3u(c3PjgKnymkgm z!xK4MVPTW|-VD{t@S^Xh&IT^$G#hmdVcY#6g9oLdKJ{VclRe1uE^ES?8L5VLEQMX& zo7)1`PtEL#tj0nQ9HVnyzlh^NDHrF!pzcBEYPuuN-}KEh2sRfXnlfZ0`t6f2I(U|Z zaD^ym7|IfQCwYz(&)HB^vYA<$q`p|udDaVL))OQhvx0!n9^;*o!_9)j zVrKhft`o-vD_xz1Ughxjz#Xlr^aj^0;rR(hV`Um)OO_(5Gcd!qq?YXSwZX%bT$A7U zUHT^|o;>gzFY>t{Re(JQkdjY{jZ>*-vWm?or*h%?I58V1KSnSd*xqk1P?&ENjk`~X z+21_Gd|0x0br%sixT5*=bUG#PD2eHEhk(t}fWcrP>@GfjdPOyUQy%df zK$7vbz0k3N6r$Bc*%mj!b#4c-^mXT~vf=EeM}X4){udZquX1!<^hwLz zz7o-%?uPC8YYxPe{^KJJ3a8fh$)bm4Hckyv6bHV5SBfvvd$t<}gUVB3XNPJwto0`7 zCx^q>ixpf~K-Inz+4WF_P_I&#)FxZCO=(3~o~?r38BSpBv=!VUp_XT${hH#sd^vJl zqLi2KSvk}7S=2qKkjDOLI~FoA+*d0ie~m{7Y<_g!>1uVFz`K+A(O8UiDr(Lp>v`LS zK2cFUWM4tr7eJ+%<1KDX*=pucG}Yx@fO;1t@=;xnH8zkm(LAsZIpiHUNF27GtDb=7C;dp$iE~Xhvb#F7V`#9Bj^q1!kjiEp3;2^|<)2mv3%g z`hr98-nX^Xu%EomvXQRsA7~Z(AfWqcME+#r5s3R$kfJZ7@1^Rp`hqLIp^xv&x1{%b z2YRPR46m)i)?9IgH@*t(JP^^FDbOl&KeL&+y{7P$cXXgJqgn*l7tHq2@)F9FlWOl; z@hE74hu%zOLR>zVw3F#6kqAXFqgse*?a)>}ObI|}O-_}R+e=k+8C;x%SB(*QCilU5 z^e`z2yNve5WYaHphE53vy!>rfzJRg=R#G(k9cJ#X9rnch6i}Zw4DpfP<3ss5*kCsc zqJI|(vZ(ddVGnovMqju?L#3{v>sexDufwUB^^a4K#4;{@Ih+g5JmJ45nt524^wtOe zX%T|TYyk1Y5Me@EA9}t@3j;yuc>kW z6;J13ske6yWf~5Wr{dQ?k818Ot%N9ZW`<9h*N;vQHh4}-XBM+D=H&OUUhLfJy}-dE z+#)M)`*te)^T57RmvyYC2KJP7d|tySr23UX>RS6uM9Li ztbz((0h;c4nG3#t_YL@Q??2qg>wVfrY%KC9E{yYM+t-Kj7Mzeh34soQc6Y`^7Fzkv z2U*ly!qqf`8&_EP3#n56&9|74O7;+2{Ewl`=;_ZPJtVTpIPlc$r2g4 zUjcE@xL&BWy{~}%$`zn9JTX1-T{4!Wv9Cd_?%@1VPMwJH=f}}pSjuqK%IOcW+3Us@O)p>iZaEvy@b|0tAt&2$6otXQBgT)a+CKK1r`3{H-bQs z1W%#(U4{4qeXkzZbUIDJ(m8Kd*Hg5Sf?D#bct3y&{S%GUSle_ePUrM7?90g&@O@ja z{z*qp#ip&Ak-jw4G#R#~;qv^vkj!*^!w=F^&rtB~I0e$C4<%OLlt!I~&p5$`(z>D^ z!bgP2Sas{MDllOuA&z&WH~RIx);BWO4f7iU;or${ z3l#@u!nnYv2rv%yGdv2sO>pTY!B$4%k zu7uDRbZc%UXLffbrTJ`Lq;~HQo$rtjHl&VOOk8lFvIzaW3>Nj4cvH`6JCoKMRZt{b z@R5;pZjoH>csfE(Kwgp#i!$+JIDDZt$%cAA#NYqLle3-xW>W zr}G>xOr);8g!*AD?8SI1KEC0CaD#l$@`QD^>Ow#w>$`9x-G}UTTiati?r;K&XJ?ew zpI2;faYznNM{pzEuwz=&-!R67j5`hnGw&rH+4cqG7FXNbnbah>D=fo<4K;!;LNEuR zv>u`ru9f|D3ueptc^nF_i}D$yx_sj?LLRBj=Qce;4Cjw{hhg*XvE2I@YWotpCvWLu zCvCZMJmWz(>i z8?~P8HV7}?IH!j167Qh(%oL5L4Gj2uX2=z!k#l>-Ivt%x5>Mm|NAykA9fZu#-|E_TdKC@n^YZ-k4O&H`I$HpHt!zG_vh622{nhBFD+?{-CTYFRO*79 zxXmr!8%ZjQ{Zk$Xsm8T*eKsWznBR~Mx=V{HQZFk$PFrl5j$frwoeLcS{HY8DxB_}MOfAKF1*Esodx#C4?wz&A%}6y;-xeV5`!3T+caMa) zw_T>;lJ2OFt?sq=j~5C}{$KU3fJd<|t<+`T#WFh0@>LX8KBQMjSihufasFWiUG;NO zU=LF!OYCd!P_BI_^COVNKw0$Ff%t? zm$EmXw@5bF79756?5&=e-oO!ji&SYz{5B3)eLvB|Nxw9t53TtQ<~t!pX+6Rv)@ z|0%g8l0LJ->p6!iy$91e;)_0LGz@Afb{GrIfxU}N?W&f~7CDCTTeWXh<*~}%eNI2O z8SQY0c!y3B_j#5vGctz;h6`)6QmgiZg-r(4_cR8NYA_ah5rCZ9U?0>OL&RJ~&ULY>+;%9-Gos-ngPcpM9(vGk}h?)sfQ`HKD= zos-Ic9N~S$kqV8S3ifNFs-=&nyf&3 zTSjLdk526hsEqFhjt2O)HlosefP@Es%VqT-G*h-%tF9Y-g{sQ0xh(|D`DK z?s;d0^K!)6lz-+o#z=VSDTRdL2QtPVi>J>*s^z0?sQpv#rA~bJK5x$%;_8Gbod_32 zk+k-qEsw6zYLno!{QepMEgDSI0ALS@`5 z1)%?+^x%%(YpG+EqA&Z?{^1BK6vC|06P!Hi-=#^aAx}9!xIJ^FXIvwrGO+8u~$KN5f*a4WmnV;e6M?gP($|P?Kr3;T6B%#BF5OCulQIf@BnAq|afG zf1dENwWr{Sug*lJ*2R#j?5?FKpB5r6vStp}#4)Af5MhQZ1~#EneRNd~4u~xGYw2H9 zOz*AITH*V&k+9|k?B-EE6%h`A`J(ekzAn9gj`HoCyfw$_DP`oMbdgE3U!mCSCo&O- z9Ag`8mcd0Ncon~3=VO-wKHL$zVmXz;r!x)`?GolOgSaoH5p@FqhbFDHmElNI62r8zHgACP4;K_8@Ur5Qg; zbTQ9%a^g|%l%^_vTfkYFSM_k?JHabtUiRKR%HurA*Mvy8M~aovrvfctK({_8{wcOB z!(cL@pxP$(!#fEd*KI`Fqu!2tw+sur=}|-HvcBI53}c8|rf?B1`%djyCq5?!-L{Vk z?2ji%dfucHA)D6`L=kP-Xmsy9%?hT{9QDbwF4WyJCkmIu%P8-D00bTdp=F>@#H0)? zwp1NrYW06!IJUne7nR((^GW00SYSfotNkTRik_l8dm8hHiE*DBS&U#hO#;@psS z<`a~cvmzpqP97j@aE<09dRWQ(1gg%J!Amww-33d{-r&lW2;?&7ZyLV09)9A1O|ZBg zIT=95=~9j6cE^ifkCg~r^IcIzgm>BN=uePyXyEY%=FdZ-g-y1$QN=7S&58DgajEBS zWURvcdhYzvT~^R`zoN)OY)tMq0`K}*Rb0Vy_~6i;j;Wv%yE980&FMaZ@e7j$yor|^ zbg_p6(<_uT31nQFEGlt_awD5jMWZW{#>v=0W_~eyns65_4^~`y1`6|t5G?zYb{j46 z2ao*nCcU1L(mF8+WHm!92y;r~If^}@-g-+B*jz$UW{ygajvkmN;7x^gX)*3Ew%AIb z78SQX3LVFin{jMbVkc||Dd62oh&Us@FdN3&FKV>Q zW8_4<>2xueF8@+i-t{n(Js+h<`)6rcYOBUtm;xrnAt!x$JWEyoxThCU3>p~wcD|R1uwZ_8H-qNqE75k zKFZG3eI3#}mYFAqP_~|o zYKW*Id3n-cP-9iOu3}1RPT6w9UQ-c?Q_fJVHjk|inVR;qEV1ryOYXV`SrjS)vyr!m z7u%Rwt^mu+Pji;LYHhg3Mv31jNTn#2kmiW>t2!HOaFbF{zDq?R6V^@Jc}!?t0ZLSU zFE7}N_}{r7%9K<*Jm!A_yZtCxLu>d}QqRKY(%cjZ4bDzFXZs={W?U&0*ec>OMqS5n zy)jK#26LoUO_^49$r#%zaY&ZR1P}jSL?`mQ@0uh`Lmv38d80TK(fgdAV`U$&>3lgi zar1AQG+5-s!S--^W^L_4RtrVqIKhOI8`$%HwMfsCKxeTAUsKtz^|@g8LuY2mf^;Ua z)r5z`XqlzzkE1g4kp(>Pn8PHjqdp|$XqYI5$tSC)xG6Oj@>Z3VvfMu}^TNt=7tnCv zEY331{?f_iA4f)3IyjQ~&P}86gz{~(W*ZmH=P%-wc!u7HXRG*)fMH}|Bb`234D`e! zZx61y%$O0MOSHUR)HP_Bm>mYmHcZKF6w!vcl#tY9!mM)7htyAUv(2qyPCPpI;BiYE zY~M8vBMKX7^f7nu9`&*{yu@^5hIQ)ku>|^4wH5zxeGo&wriCikx%WKSG`<<~Y}La3+qv?jtfiwetnrnI+G2GK$1$fgX( zs%ZZa(aOJu`Qdg4S%iPgQ|){ic9Jg=?COLPV=M`*;o~Zw(F8JH5)Dw^<)C;%EYfa7 zc7Q?y%YPdi%Pa%w7FBG_h$md_(*MRvg!x;!m|j(5P0@F)0!}`aK~LF7v0PI5e=a%A zf!g_MJGOlA!vufB+4h+5_su8se+S7ikehkaEP7`gKFE{TuKOe}yj$b)xZ8UCS8+Cj_cKC4T zyn-}WZ=0hK<`KtWk<;RxkcK_6fU*4bT^Xq!ed()=>?1i;MvLs-{U_GXZJvA>wiAIB zLt&***<6ELr&C3C-B~upHD)Wg{X1*}Y!AvdzBDRT4sS7TByI6M9OkKOr2J^Aw`_TI z&t$OB>C|@CN4~C6zV73|4mY;(j3m5Mh9K9#+DE6RQKzcWprTEy=~=VMEg{n=N~U|K z;kOAdBr;PQF%3&T$M3_NNKRY0*wm$CKdkW4g|fOB`-&xeXyg(XkNU93wxB0Q6V8a? z3_-LCFR*BP9@=Wq7#}GLsZsyv)MBQ z;?J#VP?kTIlu*+1Zr(2CDG>cQ%rS-0`fy%6@V$Rg7kn^%a|C?I#J|Cj>T+@!NIW zQ#@6xKQ%woW)4B3%oyoP-JMMH3I3$y(qyFoFF(BSVt5(FzA>ouWe}lei#Hxxqrx__ zh74VohSf`B(Xo%QN56py5f7TQe4hSZ(k!Th8!JH8tjarrK12G&9=$j(TJeDcK9!%= z;08y4-M8d-z67y_cdD}yOXFkKx>?1(MlL>!I%aXVEJ%oXBm4ses{oP+Lkw(JwUJR; zg`D2Mr`bn=XQKR^QTE$cd){73niQ|_&_ev#ha!8{YMbZ>8vgVz36f7~y$#c{%U+D< zzfi7M>s<(Jt1Kp(9FS`Iltt(6#e!oD&oS_Jg?(9~_mF555IkR88_Pq188@BRM?+#U z_*Q5q-)BA9UoZbgZ^~d5MJ?1e`M6pSkZMk(JV zw?}%@KRf(nnq_5Y{zX!V)6PSR7cuAyUQap9gPW_5tw*AfLtimIIO7UnHN1(efUh^- zL{>J-K7}^+BFR0=V~TRrNJ7O~zpy&JP^D^AZb^24|L{aKPg+87m4Qz)A6F3Y?Pw{Rl9SJi*rJ~a{{3b-sohhLD`EJ zR&S%=7A zpu7DxX54YqwnGv8%Ilo}z1JpP5ErS$Z=CSRT7d+<% zFXdE2jn#fWs}3E;Zk~E%ZzDXGbPLBaJO%a7$$8%eMM#C?Xi`H_hKaPKzmn+Sm*Xk4 z58oPlV?;K^9@Zi*WYJa*8wyjHaQsT%NReEjY*?WrY26lcCXGB5>Hn^$k7=KW05bH1 z1RaBr=7I3tp5W{C!tJCbn%M7vm)O^l79(@a-Y3Dn6r^-B)%6#cl#<(Oqi;F#$$IX7 zU(!u3=CwIdSz;Cu)f5At5sDSRBC*pymk_;3PcKKXss z;>O`EF5$ETJ(PYT1c#~v@J@xehUxp}b{+lnX97sYcw%bZU{}hq{KPg2;oAMSWuq!O zCR&kEE9;l~q4|l&*p3*5E{m83<1<#qvnU&3hq>#TO9GR~Zs13gzvaEI6e_TeO|!^S z`R=E+h=cv`ht;S6-bs4ko)G27(U^?9fz0R4+>qch0Sgv%COM{$t_OmLhRBiaBgJy; zCbaHO_4I!Ft|+w9KUhTd?XQ3aH@!lQ&d9UQhFBt-TRJ5ZkynP zOyTNG8`hQ1kK#WvJ9BJLaA70KAx>dTPf|?V23kuzOSGUe4;uVD#eKP>mbi|>84EM`DJEWHAb_N>$|YP|AB zNDXcu@t;`rC%BrFX&ZdVk-axj9dD-3i0W-!`I0Uyg3OeZkOY%Upqiz&4fnk_-&Za= zli+LLq$0j4l_6=V*Ur@WrWM@zx_C=#>2_)F?iD~EcFB^88ZFWIw&;aH-@QWXO6zp~ z0}j_IjTh$D6Q37a-jnqYT%e+pGe=2{zk5n$Vynd^w*o|I8dMABd}3!DOe-AwgsswU z;KdaTz61CQIpOmeJEW4dPIexFfih38r1(@_D@ykccI7*FMI%R!w0nL$L;cjDax_|# z%VxtfOJB_8HT^q0y%6+{?LYdn;{rEod8d}O5k%42rVa%cX?_t7z7 z`rUk}`%p4x;!x;4m%MvRtI-i6!QZn*HNTR^cD?3Vy7bTOJq!qEbAideTnrm*9@ZuQy#{zCWj1nw-`CjnyeHN;ZL9qPN?(U^ zMPG`{$X(`aDufEWE~e)SB=d^Y=!rifUm4n~7w31J>v=6LAaHkB;;5QnZoMPy^ZaUF z1wCF$@0>9K={YoB(B5el@24xZ;8!am8hIzZDiw*5*X5@w54p!#nfo6ipcaIOR1mg~ zebAsXd$o6L`LOZinE6(jt=0y6lYum^K%_NyN?5$wt8xr^_Su})cv7uf3h$6N5JbN! zzKfnuQmu=ZyaE>8*5Gc~Mvi{KP{M$&xfd)(hYrPU-kvEH?IEI*>iZDOV)~X2VHW>~ zhrN+<`z=fvE`l32O>;f((_bl|XUtMa93iN-kB*O^VQtxwF9i6=fAK=3U{iURa3_?S zkJ^}r&@H>s2OO&j3P))H} zf3_9T1EwI~L9~}{=syUu9`@gUEqzB>;np<6nSm>p8_&libxLD&V{GIP!rc$s%L%FP z*;rlyKW__jo9!g3o(eWdj=#?er#+;3ogYzTi5@VUgij#}CnZlLUUNK*f0yGDHR~FP z=G;ASP!AK#x1wNU)O=|0(Zeb30g%|PY!IKzT&+9!Zmh**qnW!SWx}4oF)$LXGQtGu zi8^nhc85OW^UT2=9=Vq_-%eG_@!Rsz9!4_@$QDg|gsavpQ6w!97RU!-K_9DrjA-6^ zt*nN?$xcK?LnWi~_PbujtTK9l1T|g~L7yJuvjt?cjfEen^O%|_OShLx^eNiUrI zkni^5zxK4w{J+Th3#hi9FI)hnNK2tWDaEZok)p+lLkk586n8IPT!RHEUcAMFy9IYC zP#l64C%6TQB)BG|FTel2cfGaVTQixgGs!w9nK@@>%eTMX%TT6R9X4T{mX!F%(=c=pGzRW=kGcy+GA=op)u-g7j)B0wSu}35kS`>5+HG&e5`k6P@2b3_lXv#j20rehxca=`*%lFIep7u4=BpV5EDEEl zxFqlvm*Da$&zs9qeOy3k%)UU`Ew}H4C0;eDGaaOs-13b;^z!wh>|aw%U;ZOgt`fKE zNv2q`#tEJTeQ7mGCHXDt(7+!rp@1spZr1^?dw~;j4Y2Np=Hj@ruxvxPMsCAwR!! zH_|Vf6Wk6&2`FWv^)VgVK|2ml--B64xmQA;6gvAh!|5-HKOCw$R3$eR?D!{h57Jr0 zpa01IzxtvcSBt^Hyc4PW_Vp72|9M}wb4skZ0wwz@igyI{6)k^d)9rI0CKID%>o@to z+s>OhM63j`#~s-auZ%vv30ak6lv8OlR844>5B6y0OdDwU`QjO2F}JtngkaRvAfO9p zI7QjrI3kz&Fz%s&*kcB@R&v*=a*>w4@BHS%+a!8_d=I;WD+@BYqdtzf_O zw!94taoHvxqHxC|>`i-Cxf0j=p=s`?oUmW=<`!w6{bvp_K*U^Z-wpOVD?&t(Ie;c` z$p~W=2vWfHc+NNSzK03hc_h1gPxywvz#;+=vCxsOVfx`kv`OKWv@AyolAB2Tc$VCX z-{T{?4D+upk8&{%Fz$o{qku=L*v&4YhMCLzAW<>??0m^Owc9+39qYuEs@ngmQxPUX zk9}Q3JLPineE2`C;Zc@b+=77*H)XJ0uIb@`m=9sZd|#M| z3o9`urH51Tw5wk##59?S*;`@fXOh-;cPU;os3~Cq&~cgY|CJTYu^0KwE>7qRWkL^% z<)WpNp-Pupe0b`oJUb91AT?SOqwBlf-`D5Tm7pOBy)Jdhwh^hd>uIwObu|eY!#Rlu zug)bCCG+&!?|oBlJOT-dK%}QX9s;=7@2^0=<;gFx9j#02QfQu>6FyS2AfOF0G(N)V z%>kC`vau9lr7vEqqV5 z#K&!S!AKL@Yl%y`DeJa*|INds1dS$7T>M>{8+F&a88&j7jP7n?ygp0uka`-Wh4U@O z{oeO?@UA+++S4Mtif4gLFS0jrFVfQl?`HTvh*{v0Zn5|=l=ur|tQVuv&l%`|BovTABP$gSfDWo^##0TbF|IrZ4)Cg7c@hq3*^Q}K1n)-0Cc(P{YuGdKW1HZ&)ADL1qdj6x! zMYjo|3l;r}r$<<}E%aE8Id10hdDkRRRe087doc>J?AEkAKNMkP^~27%3$@N-=2FKHeh$h zM$B~RD<7D0MU0s3$O0lGlEwycyy16Av=pUnT|aVX=l3izfR{fxML_WVfp`@OGZcdBcvHDHU&z- z5lMb;?*yQGdQv5m(lB046W$c;&6*UNwk;)gE=m0M9g&AXhksbtXYP-zT4(^tt(gQ; zlT{U+aj(%2hC!H$NfSl1{9^G0u&nOpP_&BwX~YNH-e~$CmZYlBAZ6@2)hIImP}Rqe zrvg|lfwzt@irCmQ2BSs+`X_j!jA-4wnxGR?tF^V`B&p@m%7^LhbM)5oPb0`$gP{)Y z(*2j1@Wixk2K#3Qt&@%x)<1OnRG5R96*|wfIL@@1MkCx}u8AIS2;Z28gMwb@KBh6V z?(1Bw4^6JV%~}h#|M?e1-zwcgkLr&M*6dRz*(x!Q1kp+6D}MJZN+!NAKhp}ig}(Hy zpxcQ~V}}liMJ~`NsIa}$6HtEfR7GZ&Tr#IkV~v~NV8exf0ztp6=!Phlh_E936u~AF?zGJtGF6VWIN^BNc?a_%BZ-_wF|%86XRlR zN};CoI#DFI*{oP2+ZIdiLQ_0f=zSnV_>-6swd;|4Log|4-?_ z{!5t8`|W>kd`|y=e# z%Vc+`T|h*%1H85j($&K>UhkWMeUro94YeKsk!fo(> zqv={V6U;YH<1DBk*O0$l#Wkt3TmPBA3BQGrS-$tPj;^H;j+8prd7oTx zZ*67{pWhOGi^cxSkcVG~8Pxv<(H^L>Y&QMB0+q#Jx6@_*XTka}-yjwS8?=+X&`Q>I z&>m2GG5Sc{mxg=)ZF358JsCFv5$sBn=r3XUF%_r2V1O6MW*Y8qH<*b|Dj5;D*b%4_}#Vu9%qx z)|bE&(DADY_lN#gt+}VJ648-<`B^PJYz?=K;geezZ5!KS6OJCnX%%t$$gLG+*Uoc& zrHC78O$B5vUDRgp05z>81<-Zv|#r%rlC)pH2&cDD5PQa&lqq8}D1hf`(8`Ei?{0x#-DQ#Nq? z6gn5{nUQ|_E6NdK5L95vE%MV$3X2Kuj$y?@{e;@cHa04OE9SZa3e4OqcLy16iw11! zG}CtKMOr_gI7I9P@b| zw~)lIc&?c5h%)6-3%jHR*uz^D@7I=@57)xs^nMn{Qw~f3m-*|Ns_C!yPFiS6;w;%% zIfr?RYs>dok|ot{*OqD(y0E2t64$M|zkf3|y&fvyIngD@!w#&0xxL;o1N}Sdb|G1q zluAyFFMD1#`EbdQxtF8`vD+<;Ck`>}F1P^ka(-K5A}Cgzgx(q>R?dg)a#w85K{;f% z6r4H@tBbZs&ougpV;%n?s`ly^E3k~*OYdQ`xq_3LjTUF~{@0JPPWW8iKtw*fBrX@A zVD(+IFr@VN;n2)Yxs1MUK6%r%`3ut#%>r}RJL+01>pv~DK!&^nX9I8B=JuVWr(r2# zB9`u5mD3LPnXZ@8mw%hD;WWLD8TDReBj$ZpR)bp)yf9~xD^o$`yAS2CW9=?Acrc%D z@INeJD+3cGmQZK%S**t2q5~hC&W`omH>i;QrJ-$aItoka(koxHF69W*p567H_|7_1 zG=f+!U>)9S_nzyoz6)}{#ePQ#p;y$dciA~z*s6@cG3iJjHm1ATL?+f9y|D3Y z&;B)m{)a_(QQfnG!RvG{H=Y_V>Mv?V5(4cm6~7s`FUGXk2UyOUgVrBpQlNX<(-`Ra z?r%6P#beimuBjyvN!R2a5mmEgYEe_`DmCV7AO6sOjXsO6XQjr}(IvlbF4$9(63VXk z`MlaX3=QAacHI!?suP_Xre09-gc0Tr-|RH6EV$@nFOouJJ`&)0fDIb8CKJ!?EC;Jq z+GrA>#((aFi|EkdbYW>(Sty1r*qzjK>Y2=7*fI}1(`Ab;?q_Z~&?^yox%lFxzLU0h zPi93{FXnMx@%-a>zcB26-QZ-kjvo8#JnQAEJdwere?o!sG40bHkC##ZPOjLxdncFi zd^5JYU~GrDkk1Zvu@w5txNJlfNC5>SkQfGnuGqfCiKTlJUf^HL*A2((y<~+6Vm9gZ z57`rrp1g2x3Cb2h_V^LY6H>^lFbJOK7Vb5ddKoHVz0OMa?#W8_-hx7jSCSJLd)>veiHhEAdc6E?gbk&V|n%B4g#^3bv&l(tBFV{s*}_v~zR2MN?51qFHcT!lCqH|^E6m3}`V88&N~|-J zu>&_N6y_lr11-7v8X?U`=~QigPWa#iHrD<%h;z7kLQRV$$i)P#w0d^#v_i%mM5xHe_1?b9X=n+=(}!59niu-i{LsyzYAR}}#DR6~b}dEnGab^6%(i577c z0c(KbQbfG#=(#_ogt0UcN5uC@+qbR4JxMD>AHJQGxd?1`WiD7;+z2XGw>zXALQ7mf zuT(oos1nY*PNTy>W7GZHo$0McON~o$x|sOp)=XUPxLR_;RI zu{|COVW$9vr#mt43}1JQ5RI(tQpGhmw_i8MJFX)}y<_OrqSCufi(OXYUxi-ZVz-}h z6mC6|Mt)49UOkTBy{acW*YrRqeI_zA%o%~f9 zcWs(^v;iG!Tu0v27YrwGh>sEP~;TY+U?K!0WC0HZ1Vaj5{Wqq`{`5jiObE zaL?^hUiq6(9w6zaFU|ULcURw#fGcT`tq8O4wmoV^l}^D< z10UsAdLPfUmLKbSt6B~B00PlaUlOcB_s4Ag%q|2?+otLqcyWN`;RxE@n9r_mH`$g& z8)%rW75bwO!>4npbp+dcTE1ULP1cd0y%pAI14~aHOSqMx&?h&^^c7m;FgT32pRm|l z+|l>WJ!cLc-E+$-Mj)%s0x*Av54{8G&&)z;r>`!f^Q@(c=> z={(-GvRQx?NBz*|U}=3yMXvY_VZ!BvnXM6%ng9ZhGF*(o^OVHRY?I^TOv_eOyf#Yy~MiE|M3-aS~(7-wbEX2jeV#ny$Wsxl50Cs|ESb>6R~DA8P?!* zx{n05SlU)Q4B9vGB^eU9A9Y^m)VJONDczdZ{JQ$@_&rt)pT&1x^lF~G)pNvfT$q0} z`;#Lm>je{6e5v%YFvi18?M!B+m7G@l!)cm9L2Ns%Tub#bRoJ7~`BE_VZ{_er+_e7XDP%(rD4g$HeWXCBUHoDr?NKoqil+?zYVbVBv_(| zwDw%Com8F@BDJKX4^sdXJyby=9AUQZL#`>v`oP4boY6Ec##a($0?li=+fYExtV=_V z!|ZebjABH;DVzyElr)?LAB$2SzpXGJ+t+_5x}ZA7B{nxi7qeLM`ZI*}z>-N)*HcC&SN=}i6J0;o@ADeAc&$d4*mH{wo#}fg)Aej!aPxHJ86YN@m+e{_0w9B4w z-sXi=r6L|@@3CQE(3RS~{A|W*SpM4Oe$_8J708g?eRQ&L`21 zEbU5my)7zyh1XUJ!oq=8SFRX+^VM&R_GJ3BKFO3e1Cct@WQi0VcMC{suzQJJ2+>Wgo3~)~_H|tO>p_2KwgO8~T28 z&cnLCA-3H2r$=Aa>lWS!X8fHx_N}p)uqxpne>9}rXYJ|F{mE#5v@Zan^l}o036{Ep zCw2Kc>R%!oYoB4_QVIMyUWKN;pI#vzg41p<0CASbpXqtU^ZpsRPH&;6YDxUQ);K!c zgK|T>11C|q=zEDNq>NHs*PmETYWZ1_gu#P&twFBMvF*AArn1bfx=nxWuX5q| z&N242sM0eR=`l=thPYtB^{QDHmpbn~yO`LR$r9oS3U1kLbzWu1%Knr6Cl=ci+ZO{a z{SQQC;nCuD=bS9%`DGHL3xy8M??XH9+V-y!nSina5v-+eRWiy4^%nnUTMA9+BT9?Iz(wyx2ynt{mP#yB z-9vVh90e1vTptUviCAn2Oh6Q!PDDz|3`yunq2N<(6>V-IIbrQ1z2(W4qnTKhCugnETB&X(@K}TNUMKL-uqdL*jA~SMb8_i zNDj;M8})i|J2x(PPWuWVuuw|GC4TydRx}Lh8}NRDlyiyyQpO@Pmsb>{_wHQh{`EKH zW}szf0PX~T^~8}nox$?>hsB7ju9bWIv#z$4s)mk8SFpvG-0#yty>6@>WEVx znNu5)&G{Kk7yfnELXqi($c|bMz9N$;?K}j~0SlZ5-01$Pe`(w509_^9Kd zS{^DHXm_Hrt7ou^;E*S8ykYHHt`9chP5{BmrsLb^YV5jUX9+U z-rgB8(k?ZMPfBn|XfAcq2KBFWPut%=HFi{aN0inZOR^*hv|8*kS)CSSSe1WU)Tia) z(jMpAx+2948S~D2`qFf$nXQ5qK64ediS%1{4%fJCT?da>pB@GJG7>hF{KGmhi6Mz_ zkM5a45&XkaIprjYr1_mG6KOnmS>W)FdiuP!^hhWo&eXDOP@lk` zsp#{V9^{CjHh{n2&&WDRg3!Fy!nE)9M$u_%8!6YYyyR|LvB-a#ySnxLL?KayvDoUf zBK_XD<@U(TKdcqPvDwv9AC!%+m6uUzOVQzt^rM0Ag}S5n%y2}d@G(gNXe9d|mhYb3 z%&c^51JzXX>@ShX$FP=B{4(faWUX_TNos9J2X=gq0`X&4F%@d#4s)h+YU)nSvwdd- zZU>(&(yv4j6?oD>-?m1*#xUTL)6%$tzUfd*7x=X2kQ38SX?yKjH}2oHQDZZG{uAgU z@yHw#nj9JQh{Bft@{tcEfhP^4tv60CJU!2Ih(cv98}`P~PSon)_Xwwd*XVZ%BK8{( z|7rL5QG{7k05Hd~bveqFL!G!tP&y5C=`(Flb(T0MDYED0Np)iy)~wgP-`ZX3f3aCL z^td^GcVNB=PBjrsyQX#m^Wn+~zn$Zb`R#ijP^$hAXjV}Y+TDWz2*qe3EB4_aes zkBYiz@2&3GJW_uH)37R@^j{g-H}U`Zsljbjn0MqRl&F(_A5rGcvxltL@94x;ZUyiQ zajpUJIA&hoORb%hNPgB*XG)5X3tvL7>mp6L`nik|?#(8Q6vj4-rxT+$Q<_!4qBX)S zHVHK-=W$0*R@>S@b>!&hZL{s%dZtNepz{vK*~Cz+u0>Lc)H2asql8&wr!X=hRk{9Q zEltjqp<>{2<{~5L1x30%F2K8q4%E-J#(LS2t?xgwOC(96h0ZCsZjUvQ8RFGWVQ+gG zJ~okpeOdz-^J~w;gl5?xia`E=;zoo7jCHaURop)Q4~s)^$i7?I2k)fkoTS}53$*rb zeDi6wXI!Ix-`qHydiBrk4b(*Vhz|-F0U?7*dtB${vT}=PgMqW@Cq^DYcV+x}yVXp= zNnWXFr5T-^$>|*#7!P%DiWdN_IX$k?yt9~1scxpV|g(nG9aE-%VkIf0K= zT{vyHF0##wO@X4P$EEGD6ghSke!VRi5CM{@WXopcO|aHQ?&@cJ>GQ@)HL2)+R?(7~Co4$cOer zqnT8!c^a+pWV)6yty-fQ{lzW?22-?>jaMNzo4kPY4{KSZ~p6bXFzM)Rshd1LbsGqZ*y3G#hAsUXS)sK;PL9pY4S$jH2Kpw&e4^@_goH@S_3J9!@^p#kOV)Yn%leLAhGMK8&IW3&&%Kj`2`O5| zfPv)Pksk%({q}{6>RHUj@yVtO<%7{J+sItW$SO65wA`n z{Gc5cT7Rq4Rb;#z7Gl@9GuR47-goexygyx;h{?S#Nlo8*efTTlX|I&!hlliq4N(-% zw)*$7K3H<2UWD_72(isDWtKr8A#j39!fq9GtQ4_q8NA)1ds_|CgP*unX>`@N2su9^ z{-ej(y27g_D)h#2g5_HoRMn2Z)_$EV_;kNf2aw|lzs~79g`*+5>$AI+Rp|~FmoSVB z=LALp8Y)d2rgpcp z{rb24J#k_(A;}7L19q9Cyn+W?qPYKJ7r$&s^+DpZlP|OZ%XXCa3|QgFHA3bgY@P? z-EupM2FLAn6l13o&m*2Av8lhbT}hCv<@JF*KsYQFlcm z!ivSb$(*eP#1$X`#Vo~raJv=Pe%0siTKjX?hh^?#ms8P&*Cij$_?p}kujCrX9yE^6 z!?s)PEQ0U*q0Q*JYv(i&qVY;G81 zB=LsCxXcIS%)y|os)yWZt!>-229TNY`6&H<=+vI0H+r=d-eL0YL(b;qua0+AE-^pWz1RO-cf_4Pbm@#Zyi+k2b4H(2cq}_qs)5|++%<)I+q&R;}ggOz`7GcF&;M z$)DWdMAL&>^6p6=%OW=Tu=^GuN81_98gpml!ka=d#-a&~Ch=t(*nMZ1DZFOqvUGgC zxGi;8WySA%tV_aXOcXOVw~Q3*u__y%M%ZE-0Q2G^H||=A#|(KNwi~qmVI`f7F|Nho zc^jNOX0J8BBQYkjc(@avH5p@bxes(<;fEx{jmuEwd~YsMRxM`r5! z1ecqZnIBTx&#OnT<%PuE)GqbjU6qPXP8dU7sEUohX$`VT8{hTyMdTD4*3 zvD%x72Sye1q60^MD8rl$VjIc2>|}McP;JEb{+ph*{zAhz1QmRY{=9Nq1ieea+^n5$ z7oJ<*ReMIanm8C}7y+MfLjc#*i*K*5fa&yhpr(s{*>zDZJkw+Z@BFt?3x*VczAHP0~ zD%+K(oKdc9-)5BgqC)Y$ zdZ!pa`JMbs`mbYJyn8x)VfqCx4*}1v`w&0{MI={#N3XfCojtC>lUk8M<3jx*1?Ha^e#xp7|S5vSr2W3%ZB5ln@+&6S%V zlHP4yC*hAP=Mzk~7H)Z(Ke$s$ODCjND3#d={Dhq(aU`EerP4Tt%Wtb9(diKHNZ!hBV(#~QIf9+lKrSH)XPSuI=dzd(*pT>cPq+_RG2QIXE4S1a#h zftt9SezKQ)1ql6e5#AM|Lrwg{CA|)`j*I90#pFgs2<|4>MSwm1`D9n8p-K{GLF#?g z{H2$6@6li2$fT9`3t83_PqlH7{|d`)4PR_iL0HNg+-r8|pPU;(;bY3v@!4o0e5Z6) z%Fh#O9&Q0<34CnuvvN25cM|g&G^`OIE6|A<_eqF&BVun!>fw#gPn>mZxB1PeH~Q0G zV>5V_GeuzoPpM!lle3_;Cj$EF$r0P5nqgo*hS#Qs4&$IxU7en1Z)1v*8J}CBl$`Q+|nGX05n>N{xcz1+zJJMaH2~ zI%nn)*~kjhsx_>E2f0eR-8}=PJF3p!R6~CVYg8onSAj+R4sGWwn-tobHoA7)Lh)elzUJ z?wh7=UP(ity%svrlMeh#9jnWIEY6!on5IL*2MSBOI@zuB=xrq#) zvZy$@;GcVafpp*$>&uId_|Gzos*j)&4^yi`Xjc`t``N$Qw20}d>uoNj-&t7uPP2!8 z6Vl~VfRv_h_ttR;Om5q8$gs$PKbHr+85>Gp8QU|=s^%-`gAcmq#oBB_MLSw`>mwt# zPQb6%7}6Umc3&M5=if@>#FmNdl?#MW8a7nuoaIBFHMUJVPCzscXE_Z9 zyT(%L9X9nDOC$P9zI*?=(#6GGmO76sl*F$a`*3A8SpI{=Sq0O9m+mw9#{J5wM&d=~ z$-WS>Wb5t2H5mP^b<}nuD(OLmsX>y|C$wQ&r-$9}^qhPp2lA&OnHp!Dzk{@bD=)#H zJ~#7CBLh4C5#=-AM2MjeIl&lKC6yjck8JEOQ!Ow-ti>%hkUIEedQs$idt$ZdJtfdjKgVs<&rGVVb2qeNjX zNZO7bWu++(t9$JGt_-%Y=exxIY~0d|czpJAVxJM3Sv#6eJP;@juS2`O>VVEC*b@nW zwz$z(HT?21G0&H5go%pA5pC4Be{5qKxgT`>RXT$W9xCS=U5k8v+QLlR@w@RXhuk(6 zyN)aIn{za5j`Z@K!P9FxJ$iSq3*U>&eQ9}Vo$552b>q)j(HLUKA#O{DGZ6Gdu<&yy z^ez^h3>~9OrSv`HV7>y6HKp^~2^*zhWI&!pJK^4QRRu%bp}RxydyPAuax%F@{iE## z8wMlpoQ-I5{lv$1tQ6RhfK=+p7uTun;r;~Ut)SAQ#-|>4m6&aB<6v7pm#{K-{`W7` zsOIOQHnU-okT&WzmR^f|#_!&8>wD$nKG{b3)z(DDO9oAJ@8?~!ZWi%OmM6QM?c3K>kR*MSlV$6|ssu$Wl zCk9(V-VsGW>l^KUP=1s*3vDrt%Nf!Bei1%EJSPq}XWxyrh!Nx&_nx@jz_)IZU)P-C?)Ttksf68a6@Fyv{E_ zG21t~u>i;6Se!_q#5kTg`P^rR-A za3l}j)&X<}@CiF5^jc~OI{91!P1BpZYsQw>_2nG>Oo^&@hn&V?$zx>bS0NZ?A@l}$ z)^uEkF^&fVr+YB*=brJ5FSJr$^F$)46j}8mZ0S^w*T~<0|LV7}X?NS((dz7QUByMvSDv9>;#!<9J6vR;m&)B|zN1>tk|lT&{E4_mAa3?eA_)4VB@oX` zY`)AXIrG~XzAc0V@FDDw{4q%_ihQCLpdn#)*iqAvZ}^4$TTt^iy+;OkTHG}a9grW( zH@cY5KlD${<$q8d=fvX{o9SQI!B-T9=#48D7IBO)vf0!v&=kvzn^rZt0UKo(qxj|r zxcf;Z=dC}!OMU&okoerRPS?c%Ev6>em3-hPfs(s+GbS|r0w8q6&=INeIh`pkbEi@U zxp4MnYVIgyXEjB@H;LgNdV8c4-F)wHDZrPmT}I@EVgvc(}XYqyj>2MC0jj9DkOp zZDR{VYUSzb5h$uB;ly_KB6rE+Ju}<*DB0ClcMus)OD9}rV;)G#VwblDOm%Snm(ob? zYrQswk0E}^YB5FoXkC*6k-=o+oLIhF52=duM0uUGd&N$eyLGR?^&9pq&KD>vt8L%x zQRp2RV0J8nkN1m|Huf(`Zq;yYS}U)1!$^HuokMOq|vlt{2p@fAE%Rj7Q zKL3w3O@aves+q2l=M*>&6@zDHwa;26T}<<~Go{EFSOj+rckON)ee4-1ls;$3e3$!* zqdclJIU_G%wEz-|aq2_Ao~Z%K_hH}SM@7>mSzoSwElqQJu#0Mt89co$x%W{?{nlf} zIsWUoJsXjTKk|c5z-wIdVtLRkI`=j5;2#!T8O?Yf4T}=})m}30@2;eeuX6TnEqh~- zu{Y=V^T4z^@0VZg->yCroSx2eMKzd!l_>nzndi1qe8eK}dqjKE-fZlctDKHcgdBFC zkPZ0i0fSy*;sem;WWi2$jwDQ!3eMl+I!u_xF8aSuou4yp#{N1>{D;LdKyvy4`HHI~ zK<>Jfi&w6xDw$&Fyoq--@3qoHqT~0VpcLWdQNxALvZqX%1SAalP1IV~VYFPyZqGyq zk54!n0X8YLmCS2j_gsQO&p^xqDYqAfADGfb_^2hH0a9!HL6lL)G?zVU7w(|A9 zb)?P3pQh~iBT_T9-}CY$Pa_SU9}#%#;l>tK1B~3$n~Wt!GbSMBvDl}L?l#w5&>)zO zRxCcbnb`MV&%U+)`f%?T@Fn+v}@s5O|Hh9AE``*M8E=i^M3}x={Zhjkz0;sXAN?^mLJYD_ zqA=H9=jc1o5ccTdtpKt+7gE8|dvV11SvbO+$X&nRME7)oJRs2F_J00Mf5qP1xg@Y9 z6$9LA)qO}_)4x^+m_w!J{Uv7%%;)NQDlCGvx`^$$knA0`$GL|+4ZunayT5TI(m5~& z>C6RhzUJCF(jQ)^O{_L2viQFzr{G_((ewKK?3`h{$Yg{t1O}kj{5iYmBm%ts$|W4 z)*USm@MJZ;U}qv&EspNba=@L*KNi}^s}1Q9R4p&@Br%+Ew{;9P_CNHKw>j59CcF%$ zUdQaOq4gaHX3!80xn*6Wn}NdLF3YcT`9j|FP(b{gE=l~dgHE0Yr ziP*ksn%0&S(|ovH#LBMP2%~Vjfik7!QA7Wy*+vQ9S{effOItl;9R%4wN~$j4Zb;iO z+(ATo9kYn{H0Lz^spO5Tyvdu6*y(2f6ET4xQme1oJmzZW2+P8|Hbbxxx9-6ehh7=0 z2u}G#F0WA9I|fZ3ZLxO4EqlS(*2uGV zLFt=!Ez(ZCt+(GQ$0?sc_fltIZ{#o7Tv$Ii%)XNsqaA1$ycpajnH`JTOO&-E4b@2L z572N}_y3gZH2NavOxde}PkjrJ1<51bx=M7HWFPaj#+|vw`%o6v0~0V)FPRX zoaKWo~TYK$iT!>X6n$VxMT^c;{}al)|e zY$x_P$cbUb5wpJbBBi8y+=g01sQwAubvlSoOcv+pl`gBRuK5+}gS{G~HMu}3**`2| zXIGo|)^rPyr)U^v0`y!@kg@2hjg1>J!dt%(I?Ft3Z*nsXHG2nQDnBQyAJk~|47oxu z6(Q}ly{hB;_TeCU2_=*tv7%i{>dX#i{tSNS1Zcsy1j%*9O0-X5*8*2I^E%~%R-Cz+ z-rB$DyTix(-0&9~c4j_~vzlX-eW%iekbkTwhRRX|H~R=SOYIKMk3-i@R~D+1K7KN> zLFrcd#0WDLdkpk6o1m?mJ@1m{IAvS-GjySHSTq@EztOdDhXbLSOiPM1VVCRtTI1V# zVMKW{4!WGplC%=K<|=#0`TOkvCiGP8O@ywe6Zu4)W(EBV?AIT)4k9*wY1q4(i3zJJ zfjg|wXH&%p0EpbN6xtj3J0vK4aEHlw=UK=m{B$Nda6g)SbLadUNI z9Iwh0U>z@F$E?As?*l|>ZS*n-7|((;9TuZNm#R0~grgbMgMw=shkN$=^(6oa0Gauf z)cmUI!xX@WEZB2Rom%@*6sMgm#E06`5^6VXI(N1o>Zdhn4Jz@ntxNLL<`A>NNWg-P zn!2*q4h%y<=W!J?YGR6Wxy8%H<$m(_4L2#A3)64;>@~SteA2y)WgHN(c5u^arw4F{ zOofkp<8}F!wv-a&3l-t_WhTy!McMyb6pTmSu+CI_SY%Ds#L|N^sT3=QE1xUrWf6 zhJ|4lQ|0aJZs24kltQ|KGO~)|zvNe*8xvQN$ z8e@gU{eO+CR^NI_M0$ZgWdTO6)LqbULl3^d5G6CIX^oWpv=+^9c+sfk1|zZdkN8zV zHvfA3w@s>bO`%Iw)n12hG-2#6<5C?XJnb;JnN9vw00B8oQl%nIxJ9R1(uSm<~Of{=GHJzzl$RL^SY`G`g28&ZbumR z5yK*{YZ2V7jaCo)mkdlth2mb_Pqt=t0!H!T0g9d*bmEeecDXM!7MTHJ1Z^qU8u9vh ze zx;%w12YJh~4)k6`hl{JPmbj4R(V?!5hy>aC#V;_~;6^O=*8&z# zD)PE0Yl~z9&PgKckF!*4pq~qatl^7rT$lnGs3RU%$zrw6Ioe$ z>HZr{G7e3EyVT$=4S-ngx#bbvxC`_q#eW!_OybZ$Q6p^AoH-seS_h9%fIicvYc zCEKQ7dz?AQpAfV+Bf!io%^mfD=G*_h>KX$HN#<&uA`iQ!^+(O6EOk2X?+hC9$4X{2 zJc6ajeVcR4cBkz*Z!Z8Iv+IDo{5f-#$J#0h7ws)#eoGib ze%gF;23GDZ-f~qQ_&snv3N#*jbbP|Kp&1x`*kw0bhKb`3{y&T}|JTBNMEw-MCr@OP zj$q`cr>T62syC_;NeK|tUGy@R80%a~?XF2^EAP=;JpovxtZuLBmpC$BE>OEp@(jw$ z?z;+fEN^#qwF8ejdGeZlw1uC_!^T}K0%QIpdj>rMb2!>iyt1bRabzrz45WXRS`Yqx zmDiY_nwl?dS;+HZj0^40NfIKaRA)$)yRRs(`>s-TcYzh;X{rbYmu?eGtB{mD{M6e! zjQYhn4RVM)FNtf41w{BbR{3r5XThH~yYU11$BrO25j9UM^irdR=@Tgw?!)*3< zB~bE>V*A9rIZ9i0=&YdWg*we>#volt*BbVKu?rhr*nB|ZRTv77Pm3jJ|# zo1q-9U`qJQKzA;8pJU;J20E|nl$wy-FhtcPAF`KvB*yvE!)Yw&yn_EbgQjS_dxeqd zLud`nFJk$S)R2X>o7BHwp*N{z9y909)87db9YWR2=#KuA5|SRqI+=<~#xkb3f8%-r z`sz5!$(Df)!@p)m)5MJ`M?@r#ydE1BlqB>tIo!6sl`3UjPZ$2?&s>ouVv=HJJ>iMe zeQh+jTdzavC|>x#Lo!>(jzW7U1o+tKJ!e{)$;`SQEcP$C&K1LBkrIq7?Ca%=j|V0d zh@07q{D;*!`H{s-W#p?K8>RTNyl~-kyEPDV?qwr$(!bj*rv+p5^^*y!MQ z>woVU-^=%KPK{Bg>ZSG`tM;06t~m|Z%t(Bl_(Td*Qx9ECnd8LyCx@Qmn+vYs4rLd= zuE{YyUApk~r;g`@6`MR%1F^sc|6^yTwC7b`nehWG75_nGo8_+1$zx=^U1>!PG93Zj zr0#!ZNzl0nOyrS6Zi-7AnnkF9i1NECsv#m5Y;|7{Q$1Y4(SY)P6XIqn89az{0;%3g zJ_d7>%!BKdga1KL@#~w>&lr>rRvc_7XHYUX5!At~dp|{rTlA_H@1~k%NB4gPBnFqZ z-HwG6n+Pit&a->hWIJ zMLNyoPncs<0whoGNF9K)YV;1L6Wy8dHb}OaYSgWqmFcz1ZV3b-v^FugE`^Oc(HQ7N zO(pJH1UTj?VB-vodU#aN{x0d$)DiLQCe&rXgst_UX`@&ogxLA$cE{NxpTs>>uqVN} zbJ@tYR}DNioj!5%mh$XiAGo0_!hKDR-6su()!xsNXQ?d7zQ-JZ^PUPT^BD1%!2|cAk9Up$)0jOHEBK?93Xt`0l)Sg`6psr$h z0r%>gnMRtZawFR`{ob?V_#Jg>v1KHSuVx6Y|Bqvs%}`jku+kAYGP9$DemHwL7ppp> zj#fFpIsMm9HW@K+u7~$y0E`HhHZ_+_Ab9xIM`l~yc5LD3JeDu@AihX}XL#RMg7RNi zrdQ}gU?5IgnKio2+Orpe?Op~~n@4K0A#JrTU=&CvYj#pbe++6B)fEDnWXBph)4^F1 z>g$dK7Uy>Vo;i=I;L28T^K8#njd}Go$zPN=ehTZrlgDAnXgS6QXmMWIgX6#mX3}sz z-nLZY*YmP{3H>O%6|}Ts6w-*a6(I#LofiZSiYd%FXakjbkR?kyQ1pA3J(z7#!OI0J z9AbtWmCn#)h;{j@w@03VjKNbyC-}qEGkYxVcRoZp&k@;VkP}g5Pkvv0G4F+?TqFNW zCjv&8#2j87E_N=@`)iUp#yvPDm#S??$aOx`)3IJ8`+Fawd-gB7YRG}m(!@S>@Vr;6ORIlA;BE6r_Kt0 zk}{sX*Q!v1wMedi^(!6HaBZ@4B;tLh9laXBABf;U%_`+oWE_^SKW18)5)hZ2x9B<~ zYn*8qWWn^HKet;Q^hVu5_#-_{W!r`zmHDZ5p`RFT?ET+GdIz|9PjXBao6GgoUDrtKoyh85 z#QD(Wa3cX!edWbtg{qU8RTUlq@R)4YToyLUu6Azfy6sjer6;(2k?(0fowMr>k_AYE z%u(C`NwvwW6&bNBIp6YII6ZFi{YXLrOY@$iL1s;D9mtuzD*0i)$zuatcZq4@Qd~13 z3Qdbh{#_YSok*!UI>Uej^4Y*ilH_+mbR~Y3Cjk3$KU*z!a!-<`LQhN%boBx4oRo%s^sl6iZ|u22VE z(}1$dqUM-}39zKP+e_B(rIJqYJi)~y?SY_X|3_1)w}&fitC%)(XI05)Ez0k1fv;?E zi9}@zE1;MiUhM?FW?snMik}MJE#p^(8lZPp-gEe!?uVL)F)lJYK7d8NNdmpFie7CJ z(kbVEj;^x*d~PdpnbE+`YJ^`P-v98?nePrxrw|hgNy27SvC)bmxx5b<*$g*N%5A|U zSUbYo+31>4_H8d6M7_g%Y{xq>b}?Q#rgIP1HFpPUq#g2(5frSmh){fn3ETM3Sa&X zFaGO>UBI>ob&tq?g8QR)M6&2ql;2&039`&L9n?|4&ve>Z1YrMF0q5=E62TnjUua)p zY@w74VB?0`qn!=F$>*wWbK^4_-c~sR%9CgC-Dm(Re;qv8J(oRtb9)SqTXGBNE_M3q zE3^F~!y980@~9ft2$G{gw#~b7QKB&eVT3pI(A~c@F(QB^H?zOxH43?9xQ3c^=T77{ zlf(-Ya8%MOZyaqIN!KWVjFJ>a5n5g)uZ70m5-I;dP}9wGNGY zuEeBS7Z(qloak=8S*DH3!Js7kTSNORzltXmfB`xtGKED3ES!L>35;LN4%Je0*e{4 zOrl2Bf%$!F9N}NB!=l*=Gip(cGQA-gT}*5=h8=G~>LLS@@A2Rs4$v!{h(UG9{JTa0 zB@^J;McY}efNG$aXGkrmCL)jJEy@b82`^?J>lxRum0noX++j|Q297i;A*D16$YM&> zI)SlYO*m7m1NmWU^RSxl2xdl49T6rp~+$Q zYKX=-z$sqrC7V{|DLfETEoIZ5`$|(PsGT}`ELs31rDQYLS{qX+-55;H&}sp6DOk%B zwMi=3V_!o3{ClASQ@8iBd?-IF53&MS;L$Zjh7fnoJu<&j<^~!_j>kXbsST~CE`PAM zuxf}^%iAu#xI`wfZxXCB6Ks+{Gj3A;|1LT{yO`L!Js=DKq*DXR(As|gO`*R7Yf0hY z3LL4HWwn0O4o0);43)3RW#70GmAgMcfYUY1b*P;VYc@*h<_9;X^}wNOhE&MY$c?Uv zz;?o^?#%b#?z*YZ{vEC3uRTXbF#YMolMeH3j6J zk&(#=lt|>mK&8qEHz@MKF|4QGj_tKzq`$UMvb_+ym`PSF)A$hwN*pbU9r=X;Y;E77 zuH4huaiaBjUG?5+jBVKYo@eq;D8ES$?S)%&Htt|M9Spg{lH13gBvO-$$k>Xxps3c%)ef zSdqN^NeP9WcVxMGD!r-w->t&kSM?=*fW*s}E7Qst`h$N7^|L{OK~EG~yD_dQc6JWU zrkRv*{kc7^Xiew4&rj)h%%&C-ceEPv2Z0`mX9gfg4k=ULXKXL&<_m};@_ERyB|B5^_Rs zEzkN3U8>y{p=3y3%bQhS7_=j|irV6t@-*TZT;0{bVzB44>b0o{?6wEDzwzJ>8QcpS zoJ?HTKA68~d4ma&(3%<6219=h?{-}h@kJKQVhH_$6x z{ZF;GLblzRwT$44)aHizB66eR#|k#?kBFp-9<@{sB73x7!EWJfh$|QaLzu8NX+qg{ z;QuUt$}5B-lc5vr9WcANtFB;W<$KXXtmN-mTzOOb)FSj`V=KXJ)CQE`qmW?MY1w=L8^V^%ByxCA$Df`ML6-7roa~&n_&vcVqbFFLx zmliHCcO>H~Y3mR6UDZ-_DT>k#DW{eu5A0F!=-eN}Sq9fEO=&a-C$XfieY$EQm@n$h z1=W|v+%KVjD|H5^G*;!sO9SDEc*Ex{HYoSB>DvcIo{v0;T(;6~TICwzEft`u$m6}h zJdW8ieRR%NAP2_3!Gf7PS_N6leEIQSt;XyRfi+-@tk;JelobW-qm#A|I~(F0J!ezL zt3`m(QHF3NKr=(${xo)CUsI)PKN1&+Q^#Y>nKt1{(!7otn9c`;Ync#Bn=39p3Y5lR ziJ$)KWe~v>prS5t=}3FN7C$z}CkohVl2>t*OZhAJHY-O`@ywg@2^qo*-oq?=4)Q-J3k+TGR9z(&0y zKe*4AR|nD9xlvTxT2Y1zWR4{osfwvwfhF8F`c;E5MtUlQ!R^ z5_V-nYsxocIimVLecr-UUdQ(L&2K{W9BIC_vt3Pb(1&4wgKOQnE_zXNS!=jOLqH#x z0djXqZANMqpX}mL`%uHy$*Ia9009js7)ruN!f(I3`=2bvtF3DxYGV(sd_!olH6x6M zKQ9dZCd;@`Q(eR~%-54I!v_6hxx>m?!=bHt{3YGYlEK!{eA;f1GTouIiiQT>6bo~` zMv*aI!>J|MfZ13}&H`Nk$)GmV+d{{(jx>7s99UjeJH4zNjFPpk;mFs@ys0yeU*Gf3 zd5N2GYgEGomtBcDCkv$1KMP~%D^r!WYGsDQy?D7*hT{6;oe@sjU5(Y^N2#DJx?r9-pB?nC7X;$kJP+l8qWH<%g&}N8F9~Es$(fkURo2qekP3P+D zSiGyUNN}Q|p&%w3oiI47eI=Bgyea*+>d)-C`2TKx2*~`JjV@4_80ei(O@0X!|AXrh z(8GFjE_5ydKbjV0QN0WRIeFN)R-OG*&~yTZ3IM1YIn%(rrPNmL^Pt!f_?~MPT*cWN zw%O(GYnO~cHt$fI?WJ)=B#<tZW+|stE4X)!bAt3@QL1mV1t0D6r7aE|updD|o zj45#TW6qt8XSizc>gdky`voWctg=|vS4e~@LW+5^;41c z$$fN_tu?JN!`|F4K8{#W)rzDI2piL-T4(akXG!SSQyDj7n@vBQ21lB~og|q6S$#%d zcUJZZZ0Zf8*#`3E<&!&TRXLJni%Sl=qW(V!n^0qwUm{ys29yd0K#f_}7UfBl$@8ii zbu~V&Ux-yG3>S2mQaL+mPXyK8NJMzN?Ks~;Cq`A!;?^^vXRqyT*LsyglLy9vxhyrZ z3KlxFaA{es1x6QyY+L@hr~M3yqy<)Gg6k=e z%OlgIurRFqC(#@GDejy%;+cY8=_ zGicU!Mwy~gzvNSi$LRRW*Nu-@1zmC1U?@OQ#B?5ir7XfWDB^c6HYsVtUk{Iu4PObW z?(>^9v!kOSCKp}ZlTrda?izvLQvRPG?5%ASl$VS|%B6xZG$s%Ax&{INN-W4}y+#D# z)lK{lwR&=CC8C`f)dnZIs+@x493W zXJ}^qgM7JDn7hlZQxR{rjl4#@N52m}_^u~&?;+;uT?q9zjV5s4{Npxj8i)f{Gr|43 zL7#x%+;xY>Z~oL>JPXWZC%qVvn)f8_VDL0Gpas$hT&dVJ8Iri65f3AfT9duSp8DW{ z8(X!`lR> zUr!(p+Ifz~;MTe#Lki1~N{=>i)zm3tpt$UcS{9eT%IBPt8yP=F_5IK8?zM#=llkPs z0ZZ!ac%6hrnPb}Kmu-STGjfs_6K35V_osRESrYTuIiuKYy|;+8QO2mBa-YJgyz_k9 zIeBzDk&$#KeO2dY`Ob)8fPB?XGvYWT?-r=)o2g_GMx=ikm4Z>A68KTxAX+EMqNSl1 zy!V)56QXt<&MRG4f+XDy4-Uxzzr{LT)Y#1Ll_jQ#YkHx9Hpt>XzuEK_#{*x8$29-7 z2+IM$KaLbft6DRsN^*w~Eir5C#`cp3Ai3Hdo_8LMkjrINxvV-_n@$IU5m|8?92)qN zWr7WjrLtu8tP?VRm8g@56yArWnISqD2oKmbQ32rYl|5G;IKEwKkgo<{?TncG2Nr@j z@#ONPSK83!U`{20k38WX@APMx8c_w6@_+#f$l1{8J?3Cu$o{cK&uXO$dWkdglw|bM zVN9B^p+PB?RBA^ezCt?8EDvy-B=UW9ostCCXe_~fnsSKZOVG8>e#~=&g?qPOSbN0( zo?W1*#D6~|W07m90?4E?K@RQyQ-gQ&+iJ{)>*w@$PxyqacU+DC zAf8qOfrHZapihZW)z@3U8}^BK6rI zmlP}EFKz?C!zdjKrO@TY>s_O|2%VV;+}N$E)#YOgXwRKa0S*T}4>ck<^O~O7r@?}2 zX8Xd)fx4~C%b4txOr6W9P~+^7`Kfv(UKdi(5ohPwiEZaHh>g3B;$6Y;>Le|bW7@Bj^=BxP)EskZtpp`o($Y*u7A(CBrwv6>X2-yH z#t^@)#pC$RPd-wD_4(`K&LxWu4rwNuhSRL?)aoWP7BV>i)$ZvYBD>941-PF8-;2RP zVM=oVeCc*x>w*SW8yNjfP;9hal()WOc6%K*=JB!i3eWr!H^JxR?8%0JwLSIyy?o5p zvG=joFu3^mZVTTx)Dpp~HG!ux@q$uV`4_{f&OU^FDxH+!6f!{vQmv^cJhXblim_{# z$%90cLxOyB+fpZh$qQ6hlby41ey(Gjo>pOQNk!b%tBJvh&16L%TIe1qpKG*Asl2M( zKSkVAFW5BuF}%G{H*)IgoO7UnDv#6xUv~0$U>#snZM#1?6UHNC-y9zG9PL;JEpgs8 z(>9tFyUV{@(Ez>a+s!>6AzY&>pPw0l=^m+{l{ZpLt}0xMHEe2DsW>5j{jwDDxSK^u zw|O2uYF4Vxw%hvknn<1tt8u>F94Ge8l9l1=$p8#yPk@Aeq|nc{#z!Ux_vh?ZZK$i( zh$b`b!)W#5erNI_4*40$&c7)MPnky4{yDmPo_c4@uqlaU2SE}1%BCKU^&%epseQ(p zWE!OG31=?_k+44|<`;@>rIP4YAp#1iv&W?0Da8tXX?TzC1JND~m=&zyn92xWVatfn zA`55=ph4u%h(hQ-DfOQ0Y(dDWx>DYZU+ThOtTirbnQbekb!Q0D z*7u-dn#;S+j0E+kLrZ=8(RiTYtZ`#gJBI#bVb*OwUpN+qtHaO$NQgM2rh1OIcvXburhWxfeBNBU%a#Pu)Y*7pg%iq$0>G+n=CV6c4Qc56+$1C&fWVRR3(RHjYHE6alNZrAevr z{_hLxOOqYFN0r;LvBc8qk~!NdKzJU=Da{IABKg|1Q>JWwZGO`^uF%#g-`FGV!gQc~ z)&4H|qgS^ec;19(pL&_;V6NH&N}vqFLnPuA2e-GCP_ln@k=3ad)=9pOV2lj z@Jf#>clV-(E^}Srk$3zVXS{X5PsW$~#>s$pve|@av4V#Z?6!&F8NduA`6$#VezQ*f zn5G{2eYYh>hLkcqupHVRQj)M~0FF%#w0Bm8Ece7Bj{WK|kd|ScXj+^?F519(PGAs` zqdOA9`$F1m_%Z?Js40c_(+M>8-~pPPCg;wNPfZ;1e|CnLo^=o>jihJ6nUJ0Sj@A4} z;=!Av@!4}8ga~i0Wl>jBa3Zl|64!!Xsq3=TM7{kq?9tkQv^d96ZB^VkJq#J%dj6EX zqQQX}8)?}V(|mFpt?9YBSZ&iAYPut5*}51HY#OvTW7;~VpF70Yc&j;MEe+}HZSeHP zB*?PJo)%r{qJWVSlv|G(b^X|sP_$~yi}K1yd&aakhn_dS`^S*S!HJ!L&3t;Ei&A)lacP+wmv+pb0BMj5?}ZJpvZ*U=29nF-C+-PzNSu0ZF~Zj9{V zNIGAFt}F&)dQX=mjj^TJ01le3YOIGq*&|Lo<)F4}<~%szDr|SsB%`0~GTLY640m*_ zGN@5UH^hSITJ~g2^MLusUFuxkBY_SRS2gS~od@?O7q7Zxn9jo5JQ`IxSykNa67jcc z!4+0wR>N>r1@gXSXb2u+>4!BW<+uPhKTiJpbtSl_ZYqjynkOxGuN5Ox`swRfLqO-m%I2v3_H3)UWjC_XV%yM_WO$GrQ1@)Tp-nPrPADCsLLZkUmaMx%ow!tc zlvs7N{>nhUuK)0Dqn@TZ!B1E;H(RvBCWKgn=+B@rPgl?cP-~-4!f%EOMU-=m3`aFg zI{bA(Qb`%mDVtWoDKDBxbi062+0sr|_uUreRv`*{$fZiSVhU(HenP*^iAeS)zADKr ziCT$F*LKt-s@l2~ZYs6GJby-a1v7EP@!z4sYZk0hmNko6Nmp`azAqX9$386SuLJNivZ?>78iipYX1! zpc*&WCY(vfqQT+`#)2JNKSW#Z24^neTAVIjx15C_T$uxa4%ph@(DGVhZGkIf-K?P} z#5!v8GDB>b(6`})xHX(kO{*nO&c)SS74Dd1Qr}P}6|fAlZ=n&w8yB8*-I3xmTDD_K zu6J|7$5#-81DpJYW?wCFmzQatFXpb%Jtu#ZY+smJ6%q~%Ypo3Xg2EOI^-`Oi$(#;v zO^39b>{eE9rJd0$I5FsK2)w5j9QFQTs;*5%2j(cg5X$<&ikuX$kjN<{##N!5YoQ7bLmbdhg&GF#n zYW*+1IU{rBD#h134Om$U5W5b|R{Gt2e0A8~n!eW_9Xi5krvi#N(bUBjMv`^}V_Ma! zA(^z)N z{q}M; zo)a^X$?-Z9;4{@K>6~NHOo>$-6@DbQT;5&Tb{MTfFLGTA@T|I~pISch&k;g;{5M0X zCl#Igf5J(LW}x$T4WI9|m0i(kzmxxi$UqgCdvsD_rTwL!(PgBJs1%Fv@lcnci7c^~jrE4^Xmm;L8|Z#*pzhOR+ITi7FqqRm01G1&bCo~zHJ?vp?13tz3%cbjBZSBTZ@GwE z$E*&c3t7HgLdODMngT-}C@2ie>V~deb_lTdiXxfTM`d~Fr`(4eiD2tnfHQJ>8mg%MZ<3B_M>O=F?d<=Qo9v5W_FwMFH@ zLfp-ge{9_f1AGEf_*gjKUrE5xFwdB~ z?w8OvpNi$=jtL2#r=u*&-HRM8ukH-72TT9d5Z7#~Ju{x`$*FZ{@l8+$mfU-E((02L z`k}b>h=t3rP3hRL-G56EV*u0hhO;zQB)J}3g<;f5gE|)1zIBUQE}aOQpQ9M`#y%2a z>KaJRZ*6t~IOXXk&#WfJuF>N~s$2UzH+T@fzU?ws=TaHL@AS6n>+S0Pq;BbqrU_B$ zC{C7O^cwgI=>)OnM_T_Pl;dz&klNq2JgazY@b(ws)?4STBeorivx{L(%4%6+qTn#x zk*y!V+cB7dWol+rB`(l^QA1r+d^ZnJG>AR_fZj4x`rnbUQGv0FBH^zk84^3dZ=+`L za$lPkTPZMRgpBfFe9g;^kj^bDUbH>wefsf;@`rY2zgg;`Nu9giM4dyfNsi|)8&7Zo zb#KK$<>uCi;{c<;zCJMxa7CIgguB#UJ#eWe-PE385)FV)u(iK ztY(0QWY-NHw&k0&AhCp%aA@crLsx?5c&a!I&TrXk^AJ2Kid4}KU~QivwRG3|!>BO> zw9GvA4bIR|DV2{xlR9jiGfk-n(N%-eh(7)eZOXwfs^%pQz6~4CeTxpFUqtZ>_r_Gl z4Dmt8L1qCwdohPY5sP*?Q6j$Seg}dB=Lz}@6q%mnDp(lP!}AQm-KkxOH8u^={1d)- z6%<8_wAlN!Z;_96_xwUE%NP8T#_kCt{Lo-ad#L4Gr8i(N&VLYT+tgm;6k&E`H+XgZ zSA#6c)k?(GzTeWy;~f=_;7g{X4bRQ(sDx}5Wx2R_{*JMy8l;D4R>inwTLwnQoawgo z9Hmih!tT#P?8vjjq_NhdvYJ&B2!_-M{Z4eSl~sZ`6t~^U;H*WTeTK+KWi=h7C!%hx zPqALYc`Pj+Qqn0;pnCJKk^{^jKft0`JN$={o|5qeij-*>dsTj&xzRkbz#!271C zedxfmd}ujsf5kc2@9WJ%jdjgg{mu7XK*97w90xPmNxn23tq2-$ST!?(8xsrs8Y?KjIhSHXnXGgAW|=|$5;%g(qFSDy#MObutL zy|SO_gzY!OQ)k|52t1HtYa#dG+RMF2HUE>R`hOK`&m^A1u(cpor7giF=w$p-sKorm zES1y#g4MdRRl@;#h*>X{sft11-Ph-5!OPv{5nIENfE0%~kpEw#W71yqp4a$eT0(yY zH$BCpfdZZv{AS|X)70>dU=7{1Lnd#(W_QF{kd$qdM#7F-YGfBaZ)+3?j$d#7@@V6d zjbf%|hDg;h0WBGF&s_QN)a3J8D#u$v{+`W~){`%%+DQzHH{xW)v$ea`nYm@!GLa~@ zBlv@IcF_7?D0Q8VvDjD}r+PcIU%jW;LuyGr?ms940mXF7)lzZ36825#Q<1te+DSV( zcUMX|syKt~2}?^e)#1FOgHTV;??P$!x?8m3RtCk+1`%;3KZb2d+L#ukWdZyp1;N`) z9dmPocAN3JY|YP~`l5xdx_8I|wU?mx&$4vTc>W)mo=#;?Gv@}8G4*6u+mhtIAS4$aOWY}aPA7-E(GycIA8UX&F9@2M|ccI5l zXy)=>e`{P$hO^pWE$^raL&=7%kMORK@OF`}Kv`yJ_SE|%Vee>|z!sLkq8*o@ddPxI zvmA+3(QMi%ZO4J4Ef~g0JeEkMqCi6h0NpPPb)nD~rSQv}P(n~Tok;l=)#`#;>qiFF4oKab}f@eFDzSPY)B;Us?ZL2lJc)^>^CIcVX7;#E&KQ5c*V;R;dF8UCrN|K-BbT zJD(=}hBh0ZAs_61WEC7Y!$G}L2wLu|-gBk7F@nz;K*W$NZ$P7_D6GlY28mvbEc3KZGPtj?$ePk%1J zwN5gaH+$d@6x21CjgZ)s6SlqxQH=V&SC>w6-!;c!IhtY-uuwLa%s8@h zx{#MzP4@qIMLUyi%n9K`!IRguUj56Flf+nGxf^S*C7&4@SUyhOmJ}a`E?&*2DruU+ zS~L^h(d6C+qA>awk#>nxUthq~6+1ZmKn)GDYqV6H?SMq^%HV;3J6jD~u1ka-hW%%%m$h0$kt0bvGE0=%~cluhIRT}?iMJck!Dssgb z){pLjTx$x+ST?8{qO>y0b#>R-5ks0u4`6&z7IHKDqn;}&B%u_Rj;)qW6nhDK9|@Vj z!Zfi{w6~*$Pr<|XVG2I{4c;d0kqO`=Zh!7MQv!-*sy!j zo}gsg`C`n>O{)2r#V+}Z*uxR~mMdXhq+#Y|s_^UNoMQZvzUsQ8oeB;(llK*jhVB$e928L2IolbN<}=BuV2Ffjn4#Sm$y(YRjzy=sd48w-gM zjH;D%h&y7!d#4MF!mhk-KALvKiTcJWo>XCcrkX3JU|Pl!d&=O}{GZeL$&t7@BU933 z#e)f^QHhU-lliG3vqu>_wta-o&1S!>`}Q%Y{*DjebXARp;_`Es#S&i?e@i2uF8_gq z&_+kLuMFNFUNdavy7R118+d0u=;;vaJC}1HViX7J%1Iewm;^Q#%p54bkF%N#1 z>K|yWjjb8ydofWa;#Xo*ViD4+31Pru1T?8zu`OS!Rix8QGzC`@e;#S5`}5+QMd+Vs zuSWSwQX-)l8wXq&-xrE=Xs|Vd_|v2W5GlDGh+Vn;rsn-xZA+)HM~-Xi5LN$R;JZdrQ(78C{2aC0 zNwDjKNe#mHVW;0xzZvGw>%@jf7)Sm-rR(Cu6v&EpPGCQs;n{kXLl~u9T)ADJ*cavY z)xCLYnE248UhHMrCML1#C0vYdqbqczwZh>>8y?Cm^&|*p`6yj8XGf-yATfr|BoHd6 zOYDiK)jFCcVn3zMIDY=~AL%KosIg2J)qTP3bXMzr_DD`hy5CcYfQ56o3l$&A*&gH$ zJs#eIt)AmcG4_$ufTkxyIAR!TxRwlW@5rIMipHi8-yDm@)E-A1{?4GAJ21J~V~3dp z9inE*SJu8AKWrMDh5CJTgA^VP+aS_%L1Vki{l~$sR&S7uA}zwT+l&IJc(2*tcv*%q zbwi)CC~u#}7`0|`a8>u02EKSt3lQ}?1+}T4m%4AR^%_Aob&K+_mh*livmj#3lv!!B z+gY_1o$YodSj!Acy3?%37cDr8l`#TVAmM@#5NXcKr%^=XK??PmKks18kzs&TbL zzMH8pJ%UZ!Ix5UgGiE=F6qPuzDK2?SPZU&#Az(hEc-qX)EUZWr$Y%u_K^SwiYkn;c z&mv6^Sp??;VsyaEMaEm-nbEa8b!sblfo?4KLoj1qIga7H@Uw14S7~xPoLgqO8+bQg zz$Ni=jN!4^!u__gmK^lBw!vk~OW83?CqEt}Lbl!6Uf;UL`|@L~&Fb_g>=s4*fav=g z&&KwF?x5|ETFVic76aKS+i<6+7W7{qJq^Q?=8kkvx5x$hC-0qBL^h`3<<#cXTgry& zA*y7WiWm4JHiVNk$wE5CCk$ujin%g&K?rH0#xeOsc4jKFgpBR*?(5MHwXU_0FLOly z+O|H~t!@l@hd!;j*F~N|Yay#}Zi2rraROZyK}#2*Jj1WVS(^;6tzSs~v^$O?i6taI zq@T=k&bRlZtvc0*HDzSm1tw*K8Tv5Nd6O-~c~!fSd=qlV%w&_M0jFW4lhc$`QDI=Cx*!!_ChP zOH_i$ZmG5c6p^%uRhNsMo9m!tuikjAt{?ryL5F0*R>W3HG?x~*sr`pDVDN1ZrZ>jN zg;y6m&kjej$R}M&i2iyDb0_!xm=j6(StxG<%9}7J;ENHfYVQS}cXyqq(>w_zkyGxwA{O6DMG4xdtkxe_7Mj+iP$~>gMJ+38yvp*_ zhAzT-Z1pDM$!{{Zkhf^#DO)6sxotWHWWMb!w;)xDw^i zy(=cSiY#gB$Gc5n>oNNe-TZIPu0X4{OxSnD*m$QlrW&I0&_z@DY+(Z+?)_-mjH`4l+IYD45E?Re zHyIKWQzP%Y{M!x0HNP}Km&-42>X|taam zlnGFQQ_*aA9rK*)!xBv5az9BKUU1n7kh9pf-L>S5rSumz0GPqLmtG)ZKZOW;{Oe}I z9HIz%nQzolmR?5?mgPcv;B>R5V>XQO z@nKFo?htM?vF#Yy=BG^0RQ%*nl(WH3HZ4_z#vC-M1Nf2itwqZoi}YiMq;&11LywQ? zn!EaO<-3QF6y$X}3HrO^srv@v`Z9ar=acQA8t)@TMx&=LVw124xZSdpI2(VUvq)c4 z1953lW_LR|B>>x|p#TDvFHsuJ*55nKhQE8jB2nH&9_OhLO4gsLH}h)apPm-I4m6&Qp06b6XZm z&Y4n1-;o$gv_!G)i8Gjh`8lUxeAxTDtAqRA+tFALWJqxn6N^R<+1Vfw5n_t#_+lfQv!zbkWRr#2s=jJ}s4Tfig$HWP4i z&7A#N3z6)}@5#)O^TNfTTH6tSQDT^0uvI7Z;Tb0YoW;k$k))>PRL zSoyx2uz#3#2VGpD2QFgtgeT zAUX}K0+c}Ox@NaG3xhN>m1&pn5PoV^j&6NLMN4d&@>~0_CFWf5PRg8TS|-8rJZMc; zf~vlnaNJ4SrDMC+jWE&MlCrH540#u|X~&egp#IBik8)hy<`{WhKqXraRJUztlGi<4 z`QZHZ2&lfnxM6%isJVwA$9t`!(Xlr3q2WE(->xq&aclF!;^Q*lWLJ;%)VNEh1@3L} z%LBHqVy)4tUZf$sB=tE{t;^OQAuqx2`NYTTrwJedZ<)%u0HLai4qJ2$g19+#OOkUt zAT3g-O>DRV3(BpkX3*g;3GJ&(8O`}hx%rq%V*dA-I^tmgml99QvLI#Q&CGVHkBSmGVG&mT46@sG(j`$&-GAlR?U~rApPp(?PIlvZW^!E z9FZ z^h#04n|0!)I*T=7My6`;47EO|0LhQ zI-keNht<2oziOv-hhvN7b4FwF3FZC$|3Mh?OH8sYlBmR3VuSZ13lAx+S)dK?kM8s} z1bWIzZqpiqL6K==)MQuVtQ!-}vXl6PT@*X!X-qMDn@4))2`dTuV-18^Kbwwv(rN?K zoU>&T?BAx;lxa9g<2&;0utEp|>)a&F7hD4s$B?rs4^EWzO(6?d7Kli;cm+o%!M8pI zt&P#-%as+P``?t%7R@&eVrh0W6AKbgSPuqe>kGJ_n|O_@;Hj$aQTBzRnI%pVm0Dx4 z4G(`D{P?KtmsGvp#Kyug_3bw)YFlDCjCFQ^$xhr^kMO=KjaOgDUPy!9r7}fna<3O^ z(=y8YWn5D7V#6cwqcCRct;AQxZ#p_fI#hA7hN7{dO}}1mFc@9h3$<@!>#t9kxUE15 z+hiDY{e8?zTo1Ky1`@`u5#FwyDqKWdFADBY@3p!SvEO&!zVNAilR& z&{{s&QapCw()mXWVVDx@YJqcn__i8Qcu= za(JdPS(L2mVzW6V+f%Nua0Ftzz!W7r&3pkwasl(KU2?5sN>8MKsFxX8vRHjR=U2B< z+CvEx+kHdjxuO5lM+~xvv;&Nc;$7jZHKlXbEU#?tMQ&h{+1ctudTkJmKuC_dm)GYi4iXE{Kz)gkd>& zNqI=GZRaWz?+!m_yr0;<1nE02upg5WQlyFK#`=fB&mm-L&Z|F4b+@IHhIb=L?QM32 zH=lUlZ8hJXcPqy>b=&4zKNW@kv{eDs?Je6(WUtmJ@Lb`vZ&EP4qwa>M;rxR{0~|!Q z+Va&%569j!9?s1^yv$Jbwkhh^497VjcTM<1ADqALMEV2Y@YYve|Bn05fPEVBBW)Gy zwdKf!r)9>X(6^~o<$I-ugqqfO>p8#MduYT9{B{rbtBFk2o_910ARs%WVdmIfCl^^N^8795JxFIu(4rZf<^D1cDsW5lJp2=Scn&=8si*xcWRb{6MT$ z*OtcVNhCB(`At{O+D6P;m_QJiV=;gz0_7B-@OJG3Y>;!Ie?`XQhk|9xBxI|p3HPF&*r{lvv*5Kgw8u5V7s9eb)Y7lZqNR(~g z&PP8hvufg%cvv0v=CG&X#AA_5NZte$#)OQ89pEy!U;`5?v((eOUxsE=SYfPjcM0>` z%gya1p5jGCjZ3>b1yxbKosUIvE}hkRS{MaVO;VX;Zc1B^(J%R*OYtz8&aEVxXIJHH z?|(2YadT5v;3IUa{xkDE9w$c;wvDAm*Xh4hx&nK$X-bJ0dph#0D-wFYbV&N1mX_L! z)QwWe2rhFPbD5N6n|JBbObuGjSJX5}+%!79sAPBzdAxN}OeVXWHxJj%%*1+UTAT`i zv1*`D*N{%5fBLKP^K`JXM#1B7868L}REmNK-VP2AVqFsD$hOoDdur}mg&Rlw#UD9+ zZ-%;&K{8uQ1kvSO#-deUz{hSKc`9k*G{&`a-I6GV-$hGq`CXP_Kqp0#f}6)Qou4PO zu4(F_q?Xb~ilV&u#}R(|<3PV=%`moGdC&QlqlN~KW8+PPSGV4&&njZQ|9^*o|ox894aD(MF1+Opa5(D0rykE zJZmg6sYxPm8Ch6Rh6iB>7aeHoWDO>hQzibAfV10jnIRk6A4xw&@j3~nYOMD<8=5bi z@Dt}JtLY{qyR?;OwV6Z1G-j&Gc|pPKERi{mSlBdjDWfYXs9;AZID+xW_vn3%@(xK< zZ8YvU=Z}TCg+MY~NeodbuGTWCrq5IyD-F!gPX%#zJwBfC`8g3n@9}nQr2y4~##?0o zpkdi6!l8u-J;RMx{{Zs4*chwoS5s-1rGl!VP9Th-@qwZH{hL^}`&+wc%>{NDmb*M343k~u~WLWMGCRdN=JYhap z!1ZsdQNa|t-m$2v*-q=3;Dtb0omg#EW_WY?teL$GCB3rbwzoxw-8+#)p%8eLM_}U9 zPf^aio+t+Y0Ma;G?Cw_qM!*FC?AyyubaSl@E3ttGZzd*=RSd`jsm141P3%o?s1&M+W9=c{(J?NT2b6pxXi#3on@8Ki zEkiBaigSF{;33`8;x-|GY~iI?cge+*^3L+h^PKipP(FfGb4{j%ycm7Osi&jgJeu}CF`WHfbfYObf!7>7mc9I@JK>qLg&(ILC!8A&|Z{V2Tu0MU9Y z@GUH^vBZG0yATyX+DRvNAFI7wn>L?XUtcEah&v;U{{V;SKc9t#<{E{X&~Pql#0}I} z>96*1klaXg+s2^bTzwfQ(Ufz3eoRY$dvK7&8fR&o^Hq5de4jB#Iq=F0L!&_KZ7qrC zIo-vVy65sbIJfJ!TP=Nvq?#_7GW3rn%&L6f@KE%=lcSe6-Nje}q)>yj5OF_TdarN) z07sDL)hr?(yE`4SqL0wA=?~GjtASyAS@b)H22|eAvDw6r`|0O=Y$ffy$t|3V#7mW7 z!zg_0$6&)pZpQj?QAoB%4}H%60FXXb8Z#ibw{OrxRRns+q~1J1)jqXc2x5wfrRs7T zC|*crW4fQCko;D_bRm_6Rff<(EGE5+PlkWljTai(jw#2D}3Nk|@Rkw;&W`IooTI=g0l<5SdUj9tSJ4Dni% z&aTl%lXCi*pV7lH+DSF1XG8#3_P|eoMEiao=f&FD^_xqb?6pXzRpUZ(ws57EKt|>P za<`}bsI5BXV=LW8xm#1R2t8K+3Z&Cck=n96l`h*G(p*5;lKk)62vN^jvV zKQj!YRF%Lq%(k~QJ@Hf+XG`0em~M?NW(;=n7YM#q!=h-Ki^i-%OIu(V13+kHsIL9E z)U?ei8(kwvybTO9sFC#rg|-vL4k1T%^dt6uWS^wM#TcS4?&&Ja5&vtP9L3;@aFMW92~t{k1cjq@vBd%$2+TW)4h1#slymFOIYDO1bHNO9u^q^ z`IrSQ^w^LNg25@TeyuUZA-cD**+OmY<2BpA+X=SduC1$GUBpNx86<8MM&ctBj2{B_ z08vtKZf*$olDVTs^GBxN)#+pTa!)+ACQd3^24)Q=?Bxc`*o&=wbGf&M(%M?s=+n9@ zOCoLJPOL!@sp!T>wDY;0JkP3Gq79WZ#0TGOeYIiyOh28Ewyb}Nhx4(SwVNV0b7zf@ zkx4lFV%O^iKG(MT!GgzEwxAU>dY=##Cm(7r)y?^s`%!+bZ_LNqi}iB;W&k>sYqy&O z?f4@&`$4~lx&2-~&~M@He^-yR8~A&l)!-Gol3MS{1j3#i>bUw@{-N>ov;9Nk>1Xgs#d5Qd#Y<;5N!`%L_6#in>{{Y+E{;wZsxA6BrtHGwHN_tSvzlJf7wG-;) z{LFo*pI0yDW9?M>xxX_2jbhq_S8ITLhaYTO{b0x27Qa|AnRTlmJ!^>6`5A%7+g2aM z!}-|zZo~MPe>((!GqaW%0aNYbWngv@(xJm^-Aa}l-7fY+$I@+`WR}`S1-+UnEbzA7 z!`bw4{G#>dj?OnE+DKVMZg-rAarCemO;qg!ZX>d>X*$i-tO;DU;zH1h?>r~X9ezd% z&2ejdX+ZZD=m^_d`yL4IVzXLlvmqmzVVOt+eG1LX;J`OJ4Xlvusz)r5wRt(rBp;ED zomq~Z`^No77e7{0C3)Fz4Qbx27;Ya{Q-@w|Yr|T1=?)HVtowbmrROrdpP{Z7-Lwm6 zlmnPaJd%=mDMgBydr9un!p1?COIsB&D}%`HS><3x#$F~y^g9-|w9I9ZLocgZoE03r z&^$W^ETB8$f;93d9j2w#*k^4%(#B?pa1L2zL(W!t7KfaS4p{Oo3o$ImX(ZH=djuVz z?-;t$C)1x;(IuCUW|2xGn%S89MGD}nBXqK^UVq2t!Ete^%V_h8n`y1C45&u%;v|tr z&dY?JF0kqRIR<6Ta}pYN)tE5xj3m+OcCQSAsUpo8RtJ<2XmDY=*YxNm023USP@_=p zG%OAhYmHjY7-Z;3_Yo?#%-acS9h-3_r&gJDT}^>ea4YVyA4s;&G43pU&+|OoOV-_D zQ+2B9nVuP3=4D3dJ$V{U)bkVLcA7W-;lJ`<;qE*11GG4`kCCo3eAHq6>{lE93f5gN z`fFKaD=WkeVRJg>0pn_;RxrIK=HhG1n=f{f)Wd;IEOBGP<)lH z3r51?=#FfR2ta$vdCq?)9C-s-=}g(Ax|k4O;;zj8s2tVAR$6_iYl)PZZls}=f&sL* zASCoxn~s7H6>uH$t8ER*TwKKyQWyd%><4KTJMq)|!|`EDD`(5LfKzQd__>#?b8xNV zj4Tkdx)ygkTiKeNpng^&{{Z7|Ug>25bYEs#O|nbs*it}b$DdY(_&OADG7sM*gfyGM5hv4SXeSH0lCk(||?_EhWvhyxLl-`elS{BIcP3{eG7bneBG zW3Z*B6Kj zlR)OMO7?p}}lsXiUYDRECB>~6;F zJ=N^#ZEl?@Wniia+$woba~5%Fa9rIaCPMNpyo#j0P%@VbUXC_tmq+A(--(w>&~7f? z+yvmt_pTUcrcT~)lwyRZ5%`36y zMwRoJ;_F_9)(tk&`bLr-J2Mgq^FSGyeQIOvJ0Lw&lD~fmPPOUN7eL@eZ#&S|nMng- z!X#Z`)324+Hxk}CNM7@10*#NgZGNrs_N}*yC&W<8u3B58wHkMg@}TaTU|SxzKqbsj z&F->$xS*(RCT@w{yAr^f^}OpFP)!_fm4|dx?#Hy%cKWb4^_+9Hx2F2=RQS4BW2*Iz z>I-ySz(a2vGq61Y&gRs4*qG`U8ogC30;SADG>2wZ%9|3jY}oghtzwd8{Vc3!lD**7 zAA1yq0;t#vel6IKGlx6^qiCQeoy<0sz>rBB$rO?zGoWay4G0t?Fs2Q(T0HYh5Ul%A zG8P7a=V7-O)9M#Cwic@^t&2Id?zLFnT|ojtEwXVJi6+w0vB)q{ukETgl@hS= z5Ha?Rxc>l^H{!?IHva%sKjOuzUh7fX+oY9}c%huKf+=0q#goOZ&+bvALhXItEDZB#^NMoYjc{^4AS_uWIcLx|A&fTh4fZZywJV>2t5m z!;&(VQk!d%5zACP2GNyvbFg8w)gzwT9%NIzGXmgw#-h0W`X8#7@niScey(4|jH2=Y zXiZ#5qsm4vz5f8MmNvJyAgmC$khDcyIb|UaOl-m!df%tdc@@K4m16PA(FDpO=Oubu za^Z-&wOs5-tb`9OG5h70*Z%;+gtuKoPKlnhl53@n1qF7q3JhA=NvUa##c1Uh5Z=cu zKo+3P%dl?7nk===HdeTd3(wo3U?$9SW!*%{mkSM?*7}53(qyvWT|*-8C*PL?qzN4AHYO2B@_h;wj1LV`cTbcPOq;;KUk~u%*-xHD88E z-?MKh#)W-rSAuJ(8BI5H#X;|{X=@`Wjbwo{NLGP}W4)=gj56BDoOn6$wRx>k&?IiJ zcM`MdH%}ZS2_%X>D%Gn%3KLq>lLSc=$VW&tQUW|R7^oz8RfqLplJo<4qf_u>>C^Ay z>C^B2EPXnC{1TT6z;7a_@MC4lns48LJ?1){!!{tcig@In38r2Oy62&6{Tk*yF6K95 zcVkJE4B2mD6h63R{`bS_*P2p7#_IfA%+mt&1}Pi`U7PZBvwv%wwJiRm{&qf&&+1R- zU@FCE%*KESNhF_@h_AJhCA>wX7SVvPz&T2-Na8o2A?JCW96wsPQ5`KM;4$KkCUU_# z6z-o(7P@7kD7w6rV23=JS38;tni^u})g&fFp=+>woJS6))r8gW5!sF7-(5qP6ID|bXNS$*>tY*pkfVr0 zNm4)uGjH$Z7#6yGQfgN&2oPH%%G*UMXeaRdOGyMxD;tY2)F2sYNAnFv z9w`3+>I);05ci8>6*F@QD*U4k?+uQfZiI<0uP<%U7J{c>k)6ImJ|(wZMYX1k&^?%F zt(elg9zY$Jlc1O~^(#gu=z|9q3uAW4!~=Yi2UI&Y7QwmI^(pLg(PTGwrZ&s|oEfmP zYTa!@T!S*CQp(->Gq|bwIQ^%rSFI&Z*y4#rIW{(I0NT!?%m&u>BEBq`SDRAQXNh`I z7Kv-)RIWGQ{{RvH01h|b{{RvH01g;Q4eZ43Epo!2Gz@;{dHh_M{m%3FxiOgO_cH9J zSuUj`!?28fj{g9}P5IdS9sdA`oAa^uJO2O?H|Jr<&=P#~`gvt~Q@K{zkM_l{mQT*d z`(oG2C+B1Rv1{d%^RfQewerdN*#7`*TKQ!B>@0^tSaOWHVU|==-yk;peUASC#7+6w z`yKxPh@11V_B;Oo5jW>xxYO=qubP)qh5O{=_dCzxwKjLL?^;#$#qj{BYdg*{$-in(m$`uba?#3NeI99T z+R2+H!$v@g-W9@Ija&IcFfPe)c2IfekofMGM5==X0^eM3N~9sC7oId!UNY_whBxsi{e8n1gOoGbnUmNjRBp zLfl%$=YuPtT<8wMSHFZQ!-XLQVuc{2Yf=fKls<5;I}b}pi;c1dgdqjC?kX|+oIh5- zivf+43>JqgM5Rx7ieU~&EsQIXA%fKsFr-qHRH500&20nBd9lLo+yy~Qo5OO!e^;*MiC%C(u^R{~w zjYl_^>AGHT%Iu}Zy9Jp#3{_f$if&*=C6`aVNZw@OzI%IlMJgJhWQ~_L&Xq7Bk6y_L zY~m%fvIrO&=E@+;n!LCZL)J@?AgBe_DF)wF(Up_!$EAcFHFaq64tck z!`xV3EON+(H!lUez^NegWsTQ(=~Ffho%W#|mgI)YmX>iEuIe;!qmP}B-kZq3iw&jN z>$f)64*XLLc~*{TQW!3E==rUScr%NT6& zvuUweE@92vF9rd!zH{Jv(YDf*?`yl5+hHBcVR4A3*E-hWgnTKj^vh`DIZsFl<;|Pp zHNI?3Yor^A8s(L)Zf>PA%OOBQ*J7gO2lQy2wEAAJX&vo_%H^8gWz4KUsE$S)<;2>D zQ0{&5%+-dIJe)g(9*lCa2`K*nQKN5Q_%KVHOV(P}E6db+ zd#cigUl_oS`U`C?0Kh!gHwz~>l&ZtU&EO?59mcnxtU7|wpLiK9Lk~s;Coum2Ri(n) z*;~hL0syNNNT{FzL9syliF8|&GZi5(wFuP>rJJy-t;~hPt!lZlMfpLwZGP#@iq-Bh;YBaUQa)^=P)srCNkBqEM9 zduPuhQ_Y@X%~9P*vwy0%gHO|KqqMQMP>@@~p%D~v06SK*)a@d>wr%lBp@l};itfey zomLi?_7d?L(g&JIE+7omL{TRe8A`7=GjQ20kiV$j=*vfMuA(wo8T^?Ko{mMu=r%}oUsbUR7i@bKE|F4mfjnPaEw zQ4G%(ax;On<7wEVj3|Oie?}bl`za!-OMRc(AN=soVkyM!dM81CY_d+uk_;0B!#O{oDTl z{^JW8^vPCBG!gTRz})uwcj(J8)7zxs(Ly+R57@)w#*9d zIk*4 zan)M|VN?4&X4o3{LEchTbHG z6ck9~P^t%T0YUIIJF&ym^s7tMJJ#X| + /// 应用程序的主入口点。 + ///
+ /// + + public static SqlConnection DBConn; //数据库连接串 + public static string station; + public static string OperatorName; + public static string IP; + public static string Shift; //班次 + public static string ProductDate; + public static string RemoteIP; + public static string PicturePath; + public static string WeightFolder; + public static string WeightFile; + public static string WeightUser; + public static string WeightPsw; + + public static int interVal; + + [STAThread] + static void Main() + { + bool isRuned; + System.Threading.Mutex mutex = new System.Threading.Mutex(true, "OnlyRunOneInstance", out isRuned); + if (isRuned) + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FrmLogin()); + mutex.ReleaseMutex(); + } + else + { + MessageBox.Show("程序已启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + //Application.Run(new Form1()); + } + + /// 判断指定字符串是否包含有汉字 + /// 指定的字符串 + /// 若包含有汉字则返回True,否则返回False + public static bool InChinese1(string StrChineseString) + { + return System.Text.RegularExpressions.Regex.IsMatch(StrChineseString, @"[/u4e00-/u9fa5]+"); + } + + public static void GetCode(string code, out string stockNo, out string batchNo, out string partNo) + { + //解析塑料粒子条码,长度为20的为一维码22000000821906090201,否则为二维码 + //二维码样例Z-340.180411.000001;5000;S35001;20180411;P1710401.[#Line#];180411; + //第一个分号之前的数据,即Z-340.180411.000001; Z-340为零件号,180411为批次号,000001为流水号 + //一维码前十位为零件号,tb_Product PartNo,11~16位为批次 + + stockNo = ""; //存货代码 + batchNo = ""; //批次 + partNo = ""; //零件号 + if (code.Contains(".") == false) + { + //一维码 + stockNo = code.Substring(0, 10); + batchNo = code.Substring(10, 6); + } + else + { + //二维码 + string[] strs = code.Split(';'); + if (strs.Length > 0) + { + string str = strs[0]; + string[] props = str.Split('.'); + if (props.Length >= 3) + { + partNo = props[0]; + batchNo = props[1]; + } + } + } + } + } +} diff --git a/BBMPTMes/InjectionPC/Properties/AssemblyInfo.cs b/BBMPTMes/InjectionPC/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3c63a5b --- /dev/null +++ b/BBMPTMes/InjectionPC/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的常规信息通过以下 +// 特性集控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("InjectionPC")] +[assembly: AssemblyDescription("获取批次取服务器时间")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("InjectionPC")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 使此程序集中的类型 +// 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, +// 则将该类型上的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("d6193cb5-fa92-4ddd-b2d9-594279a18461")] + +// 程序集的版本信息由下面四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, +// 方法是按如下所示使用“*”: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.16")] +[assembly: AssemblyFileVersion("1.0.0.16")] diff --git a/BBMPTMes/InjectionPC/Properties/Resources.Designer.cs b/BBMPTMes/InjectionPC/Properties/Resources.Designer.cs new file mode 100644 index 0000000..1362867 --- /dev/null +++ b/BBMPTMes/InjectionPC/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace InjectionPC.Properties { + using System; + + + /// + /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("InjectionPC.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 使用此强类型资源类,为所有资源查找 + /// 重写当前线程的 CurrentUICulture 属性。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/BBMPTMes/InjectionPC/Properties/Resources.resx b/BBMPTMes/InjectionPC/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/BBMPTMes/InjectionPC/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/BBMPTMes/InjectionPC/Properties/Settings.Designer.cs b/BBMPTMes/InjectionPC/Properties/Settings.Designer.cs new file mode 100644 index 0000000..60716f3 --- /dev/null +++ b/BBMPTMes/InjectionPC/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace InjectionPC.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/BBMPTMes/InjectionPC/Properties/Settings.settings b/BBMPTMes/InjectionPC/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/BBMPTMes/InjectionPC/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/BBMPTMes/InjectionPC/ReportHelper.cs b/BBMPTMes/InjectionPC/ReportHelper.cs new file mode 100644 index 0000000..b153f43 --- /dev/null +++ b/BBMPTMes/InjectionPC/ReportHelper.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using grproLib; + +namespace InjectionPC +{ + public class ReportHelper + { + public GridppReport Report; + private DataTable _dtDataDetail; + public ReportHelper(string filename, DataTable dtDataHead, DataTable dtDataDetail, int paperOrigntation, short copies, string printerName) + { + Init(filename, dtDataHead, dtDataDetail, paperOrigntation, copies, printerName); + } + + private void Init(string filename, DataTable dtDataHead, DataTable dtDataDetail, int paperOrigntation, short copies, string printerName) + { + try + { + _dtDataDetail = dtDataDetail; + Report = new GridppReport(); + Report.LoadFromFile(filename); + Report.FetchRecord += Report_FetchRecord; + Report.Printer.PrinterName = printerName; + Report.Printer.PaperOrientation = (GRPaperOrientation)paperOrigntation; + Report.Printer.Copies = copies; + FillParameters(Report, dtDataHead); + } + catch (Exception e) + { + Console.WriteLine(e); + throw; + } + + } + + public void Print(bool isPreview, bool isShowDialog = true) + { + if (isPreview) + Report.PrintPreview(true); + else + Report.Print(isShowDialog); + } + + private void Report_FetchRecord() + { + if (_dtDataDetail != null) + { + FillRecordToReport(Report, _dtDataDetail); + } + } + + private void FillRecordToReport(IGridppReport report, DataTable dtDetail) + { + foreach (DataRow dr in dtDetail.Rows) + { + report.DetailGrid.Recordset.Append(); + foreach (DataColumn dc in dtDetail.Columns) + { + var field = report.FieldByName(dc.ColumnName); + if (field == null) continue; + field.Value = dr[dc.ColumnName]; + } + report.DetailGrid.Recordset.Post(); + } + } + + private void FillParameters(GridppReport report, DataTable dtHead) + { + if (dtHead.Rows.Count == 0) return; + foreach (DataColumn dc in dtHead.Columns) + { + var param = report.ParameterByName(dc.ColumnName); + if (param == null) continue; + param.Value = dtHead.Rows[0][dc.ColumnName]; + } + } + + public static string GetTemplateFile(string sourfilename) + { + var ofd = new OpenFileDialog + { + Filter = @"Grid++ files (*.grf)|*.grf", + Multiselect = false, + RestoreDirectory = true, + FileName = sourfilename, + InitialDirectory = Path.GetDirectoryName(sourfilename), + }; + if (ofd.ShowDialog() != DialogResult.OK) return string.Empty; + return ofd.FileName; + } + } +} diff --git a/BBMPTMes/InjectionPC/SchTaskExtAPI.dll b/BBMPTMes/InjectionPC/SchTaskExtAPI.dll new file mode 100644 index 0000000000000000000000000000000000000000..a055a5ae927111c0995508f47eb78f3bc62ecd24 GIT binary patch literal 8704 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 xS9*7)Z}-YJSF3V_{|N=1@W}uG literal 0 HcmV?d00001 diff --git a/BBMPTMes/InjectionPC/Upload.cs b/BBMPTMes/InjectionPC/Upload.cs new file mode 100644 index 0000000..ed4a6cc --- /dev/null +++ b/BBMPTMes/InjectionPC/Upload.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.Drawing.Imaging; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.IO; +using System.Net; +using System.Security.Policy; + +namespace InjectionPC +{ + public class Upload + { + public static void DownLoad(string Url, string FileName) + { + bool Value = false; + WebResponse response = null; + Stream stream = null; + try + { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); + + response = request.GetResponse(); + stream = response.GetResponseStream(); + + if (!response.ContentType.ToLower().StartsWith("text/")) + { + Value = SaveBinaryFile(response, FileName); + } + } + catch (Exception err) + { + string aa = err.ToString(); + } + } + + /// + /// Save a binary file to disk. + /// + /// The response used to save the file + // 将二进制文件保存到磁盘 + private static bool SaveBinaryFile(WebResponse response, string FileName) + { + bool Value = true; + byte[] buffer = new byte[1024]; + + try + { + if (File.Exists(FileName)) + File.Delete(FileName); + Stream outStream = System.IO.File.Create(FileName); + Stream inStream = response.GetResponseStream(); + + int l; + do + { + l = inStream.Read(buffer, 0, buffer.Length); + if (l > 0) + outStream.Write(buffer, 0, l); + } + while (l > 0); + + outStream.Close(); + inStream.Close(); + } + catch + { + Value = false; + } + return Value; + } + + public void Down(string url, string dtnow) + { + WebRequest wreq = WebRequest.Create(url); + HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse(); + Stream s = wresp.GetResponseStream(); + System.Drawing.Image img; + img = System.Drawing.Image.FromStream(s); + img.Save("D:\\" + dtnow, ImageFormat.Jpeg); + MemoryStream ms = new MemoryStream(); + img.Save(ms, ImageFormat.Jpeg); + img.Dispose(); + } + + public static bool DoConnComputer(string ip, string folder, string strName, string strPsw) + { + try + { + return SchTaskExtAPI.ConnectOtherComputer.DoConnectOtherComputer(ip, folder, strName, strPsw); + } + catch (Exception ex) + { + throw ex; + } + } + } +} diff --git a/BBMPTMes/InjectionPC/北汽模塑.png b/BBMPTMes/InjectionPC/北汽模塑.png new file mode 100644 index 0000000000000000000000000000000000000000..4b40e6e8682ce65297ee0c6746f9eaaf8e9456fa GIT binary patch literal 31389 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 + + +
+ + + + + + + + + + + + + + + + diff --git a/BBMPTMes/MESClassLibrary/BLL/Andon/AndonButtonRecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Andon/AndonButtonRecordBLL.cs new file mode 100644 index 0000000..e7ffbd1 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Andon/AndonButtonRecordBLL.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Andon; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Andon +{ + public class AndonButtonRecordBLL + { + AndonButtonRecordDAL da=new AndonButtonRecordDAL(); + + public bool InsertInfo(AndonRecordModel md) + { + try + { + return da.InsertInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(AndonRecordModel md) + { + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Andon/AndonButtonTypeBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Andon/AndonButtonTypeBLL.cs new file mode 100644 index 0000000..9aa1828 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Andon/AndonButtonTypeBLL.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.Andon; + +namespace MESClassLibrary.BLL.Andon +{ + public class AndonButtonTypeBLL + { + public DataTable SearchInfoByName(string buttonName) + { + try + { + AndonButtonTypeDAL da = new AndonButtonTypeDAL(); + + return da.SearchInfoByName(buttonName); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicBLL.cs new file mode 100644 index 0000000..3621ab5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicBLL.cs @@ -0,0 +1,178 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL +{ + public class BasicBLL where T : class, new() + { + BaseDAL db = new BaseDAL(); + /// 新增信息 + public bool AddInfo(T md) + { + try + { + if (db.Add(md) > 0) + { + return true; + } + return false; + } + catch (Exception ex) + { + //LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// 修改信息 + public bool UpdateInfo(T md, params string[] proNames) + { + try + { + //T u = new T() { uId = 1, uLoginName = "asdfasdf" }; + if (db.Modify(md, proNames) > 0) + { + return true; + } + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// 删除信息 + public bool DelInfo(T md) + { + try + { + if (db.Del(md) > 0) + { + return true; + } + return false; + } + catch (Exception ex) + { + //LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + public List SearchInfo(int page, int pagesize, out int total) + { + try + { + var list = db.GetListBy(LambdaHelper.CreateEqual("IsUseing", 1)).ToList(); + total = list.Count; + int Skipcount = (page - 1) * pagesize; + return list.Skip(Skipcount).Take(pagesize).ToList(); + } + catch (Exception ex) + { + total = 0; + //LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + public List SearchInfoByKey(string keyname, object keyvalue) + { + try + { + var list = db.GetListBy(LambdaHelper.CreateEqual(keyname, keyvalue)).ToList(); + return list; + } + catch (Exception) + { + return new List(); + //return null; + } + + } + + public List SearchInfoContains(string keyname, string keyvalue) + { + try + { + var list = db.GetListBy(LambdaHelper.GetContains(keyname, keyvalue)).ToList(); + return list; + } + catch (Exception) + { + return new List(); + //return null; + } + + } + + + + public List SearchInfoAll(int page, int pagesize, out int total) + { + try + { + var list = db.GetListBy(LambdaHelper.True()).ToList(); + total = list.Count; + int Skipcount = (page - 1) * pagesize; + return list.Skip(Skipcount).Take(pagesize).ToList(); + } + catch (Exception ex) + { + total = 0; + //LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + public T SearchInfoByID(string ID) + { + try + { + var list = db.Find(ID); + return list; + } + catch (Exception ex) + { + return null; + } + + } + public List SearchAllInfo() + { + try + { + return db.GetListBy(LambdaHelper.True()).ToList(); + } + catch (Exception ex) + { + //LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + public List SearchInfoByTime(string cname, DateTime stime, DateTime etime) + { + try + { + IQueryable list = db.GetListBy(LambdaHelper.CreateCompareToLater(cname, stime)).AsQueryable(); + list = list.Where(LambdaHelper.CreateCompareToEarlier(cname, etime)); + return list.ToList(); + } + catch (Exception) + { + return new List(); + //return null; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BadInjectionBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BadInjectionBLL.cs new file mode 100644 index 0000000..7a2f8f6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BadInjectionBLL.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.BasicInfo; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class BadInjectionBLL + { + BadInjectionDAL db=new BadInjectionDAL(); + + public bool Add_Info(BadInjectionModel md) + { + try + { + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchByCode(string code) + { + try + { + return db.SearchByCode(code); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BarCodeBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BarCodeBLL.cs new file mode 100644 index 0000000..70ac6c3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BarCodeBLL.cs @@ -0,0 +1,174 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.BasicInfo; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class BarCodeBLL + { + BarCodeDAl db = new BarCodeDAl(); + + public DataTable SearchInfoByStock(string StockNo) + { + try + { + return db.SearchInfoByStock(StockNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + throw ex; + } + } + + public bool Add_Info(BarCodeModel md) + { + try + { + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchInfo(string stationNo) + { + try + { + return db.SearchInfo(stationNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoAll() + { + try + { + return db.SearchInfoAll(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBarCode() + { + try + { + return db.SearchBarCode(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBarCodeByOne(string OneBarCode) + { + try + { + return db.SearchBarCodeByOne(OneBarCode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBarCodeByTwo(string BarCode) + { + try + { + return db.SearchBarCodeByTwo(BarCode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchSerialNoByBarCode(string stockNo,string batchNo) + { + try + { + return db.SearchSerialNoByBarCode(stockNo, batchNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoByBarCode(string BarCode) + { + try + { + return db.SearchInfoByBarCode(BarCode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool Update_Info(BarCodeModel md) + { + try + { + return db.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelBarCode(BarCodeModel md) + { + try + { + return db.DelBarCode(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchOneBarCode(string barCode,int a) + { + try + { + return db.SearchOneBarCode(barCode,a); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BomBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BomBLL.cs new file mode 100644 index 0000000..3ee0387 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BomBLL.cs @@ -0,0 +1,271 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.DAL.BasicInfo; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class BomBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Bom md) + { + try + { + var list = db.SearchInfoByKey("PartNo1", md.PartNo1);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.BomID != md.BomID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Bom md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.PartNo1 == md.PartNo1 && p.BomID != md.BomID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[2]; + proNames[0] = "PartNo1"; + proNames[1] = "PartNo2"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Bom md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string partNo1) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(partNo1)) + { + list = list.Where(p => p.PartNo1.Contains(partNo1)).ToList(); + } + + if (list.Count > 0) + { + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + List modelList = new List(); + BasicBLL s_db = new BasicBLL(); + var s_list = s_db.SearchAllInfo(); + + foreach (var item in list) + { + BomModel dm = Tool.Mapper(item); + var info = s_list.FirstOrDefault(p => p.PartNo == item.PartNo1); + if (info != null) + { + dm.ProductName1 = info.ProductName; + } + + var info2 = s_list.FirstOrDefault(p => p.PartNo == item.PartNo2); + if (info2 != null) + { + dm.ProductName2 = info2.ProductName; + } + + modelList.Add(dm); + } + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 查询全部信息 + /// + /// + public List SearchAll() + { + try + { + var s_list = db.SearchAllInfo().ToList(); + return s_list; + } + catch (Exception) + { + return null; + } + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Bom SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public DataTable SearchBom(string PartNo) + { + BomDAL dal=new BomDAL(); + try + { + return dal.SearchBom(PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable Search(string partNo1, string partNo2) + { + BomDAL dal = new BomDAL(); + try + { + return dal.Search(partNo1, partNo2); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(BomModel md) + { + BomDAL dal = new BomDAL(); + try + { + return dal.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool updateInfo(BomModel md) + { + BomDAL dal = new BomDAL(); + try + { + return dal.updateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo(BomModel md) + { + BomDAL dal = new BomDAL(); + try + { + return dal.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BucketInfoBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BucketInfoBLL.cs new file mode 100644 index 0000000..89d654a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/BucketInfoBLL.cs @@ -0,0 +1,184 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + + public class BucketInfoBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_BucketInfo md) + { + try + { + var list = db.SearchInfoByKey("BucketCode", md.BucketCode);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ID != md.ID && p.IsUsing == 1).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_BucketInfo md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.BucketCode == md.BucketCode && p.ID != md.ID && p.IsUsing == 1).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "BucketCode"; + proNames[1] = "BucketName"; + proNames[2] = "IsUsing"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_BucketInfo md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string BucketCode) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(BucketCode)) + { + list = list.Where(p => p.BucketCode.Contains(BucketCode)).ToList(); + } + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_BucketInfo SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + + List sl = new List(); + + foreach (var item in list) + { + SelectModel md = new SelectModel(); + md.textField = item.BucketCode+"--"+ item.BucketName; + md.valueField = item.ID; + sl.Add(md); + } + + jsonStr = JSONTools.ScriptSerialize(sl); + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/CheckItemBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/CheckItemBLL.cs new file mode 100644 index 0000000..9267efd --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/CheckItemBLL.cs @@ -0,0 +1,198 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class CheckItemBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string CheckContent, string DeviceID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(DeviceID)) + { + list = list.Where(p => p.DeviceID == DeviceID).ToList(); + } + + if (!String.IsNullOrEmpty(CheckContent)) + { + list = list.Where(p => p.CheckContent.Contains(CheckContent)).ToList(); + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + #region 联查 + List ModelList = new List(); + BasicBLL p_db = new BasicBLL(); + var p_list = p_db.SearchAllInfo().ToList(); + foreach (var item in list) + { + CheckItemModel dm = Tool.Mapper(item); + var info = p_list.FirstOrDefault(p => p.DeviceID == item.DeviceID); + if (info != null) + { + dm.DeviceName = info.DeviceName; + } + ModelList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = ModelList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_CheckItem md) + { + try + { + var list = db.SearchInfoByKey("CheckContent", md.CheckContent);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.DeviceID.Equals(md.DeviceID)).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_CheckItem md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.CheckContent == md.CheckContent && p.DeviceID == md.DeviceID && p.ID != md.ID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "DeviceID"; + proNames[1] = "CheckContent"; + proNames[2] = "CheckVersion"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_CheckItem md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public string GetTreeData(string deviceID) + { + try + { + string jsonStr = "[]"; + BasicBLL li_db = new BasicBLL(); + List trlist = new List(); + TreeModel tr = new TreeModel(); + tr.id = "-1"; + tr.text = "点检项"; + tr.state = "open"; + var li_list = li_db.SearchAllInfo().Where(p => p.DeviceID.Equals(deviceID)).ToList(); + var queryData = from a in li_list + select new ChildTreeModel + { + id = a.ID, + text = a.CheckContent + }; + List clist = queryData.ToList(); + if (clist.Count > 0) + { + tr.children = clist; + trlist.Add(tr); + } + jsonStr = JSONTools.ScriptSerialize>(trlist); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ColorBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ColorBLL.cs new file mode 100644 index 0000000..4245237 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ColorBLL.cs @@ -0,0 +1,214 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using MESClassLibrary.DAL.BasicInfo; + + +namespace MESClassLibrary.BLL.BasicInfo +{ + + public class ColorBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Color md) + { + try + { + //var list = db.SearchInfoByKey("ColorCode", md.ColorCode);//判断是否有重复数据 + //if (list != null) + //{ + // if (list.Where(p => p.ID != md.ID).Count() > 0) + // { + // return false; + // } + + //} + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Color md) + { + try + { + //var list = db.SearchAllInfo().Where(p => p.ColorCode == md.ColorCode && p.ID != md.ID).ToList();//判断是否有重复数据 + //if (list.Count > 0) + //{ + // return false; + //} + + //初始化要更新的字段 + string[] proNames = new string[5]; + proNames[0] = "ColorCode"; + proNames[1] = "ColorNo"; + proNames[2] = "ColorQQCode"; + proNames[3] = "Des"; + proNames[4] = "ColorDQCode"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Color md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize,string ColorCode) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(ColorCode)) + { + list = list.Where(p => p.ColorCode.Contains(ColorCode)).ToList(); + } + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Color SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().Select(p=>p.Des).Distinct().ToList();//判断是否有重复数据 + + List sl = new List(); + + foreach (var item in list) + { + SelectModel md = new SelectModel(); + md.textField = item; + md.valueField = item; + sl.Add(md); + } + + jsonStr = JSONTools.ScriptSerialize(sl); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + } + + public DataTable SearchAll() + { + ColorDAL da = new ColorDAL(); + try + { + return da.SearchInfoAll(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByName(string color) + { + ColorDAL da = new ColorDAL(); + try + { + return da.SearchByName(color); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DefectBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DefectBLL.cs new file mode 100644 index 0000000..1e7b3f0 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DefectBLL.cs @@ -0,0 +1,181 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.DAL.BasicInfo; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class DefectBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string DefectName, string LineID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(LineID)) + { + list = list.Where(p => p.LineID == LineID).ToList(); + } + + if (!String.IsNullOrEmpty(DefectName)) + { + list = list.Where(p => p.DefectName.Contains(DefectName)).ToList(); + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + #region 联查 + List ModelList = new List(); + BasicBLL p_db = new BasicBLL(); + var p_list = p_db.SearchAllInfo().ToList(); + foreach (var item in list) + { + DefectModel dm = Tool.Mapper(item); + var info = p_list.FirstOrDefault(p => p.LineID == item.LineID); + if (info != null) + { + dm.LineName = info.LineName; + } + ModelList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = ModelList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_Defect md) + { + try + { + var list = db.SearchInfoByKey("DefectName", md.DefectName);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ID != md.ID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Defect md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.DefectName == md.DefectName && p.ID != md.ID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "LineID"; + proNames[1] = "DefectName"; + proNames[2] = "Des"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_Defect md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public DataTable SearchInfo(string LineID) + { + DefectDAL da=new DefectDAL(); + try + { + return da.SearchInfoAll(LineID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DeptBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DeptBLL.cs new file mode 100644 index 0000000..281c860 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DeptBLL.cs @@ -0,0 +1,144 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class DeptBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string DeptName) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(DeptName)) + { + list = list.Where(p => p.DeptName.Contains(DeptName)).ToList();//按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(TA_DEPT md) + { + try + { + var list = db.SearchInfoByKey("LineName", md.DeptName);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.GUID != md.GUID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(TA_DEPT md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.DeptName == md.DeptName && p.GUID != md.GUID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "DeptCode"; + proNames[1] = "DeptName"; + proNames[2] = "Remark"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(TA_DEPT md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception ex) + { + return ""; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DeviceBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DeviceBLL.cs new file mode 100644 index 0000000..4b9d94c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/DeviceBLL.cs @@ -0,0 +1,251 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class DeviceBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string DeviceNo, string StationID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(StationID)) + { + list = list.Where(p => p.StationID == StationID).ToList();//按条件分页查询 + } + + if (!String.IsNullOrEmpty(DeviceNo)) + { + list = list.Where(p => p.DeviceNo.Contains(DeviceNo)).ToList();//按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + #region 联查 + List StationList = new List(); + BasicBLL pl_db = new BasicBLL(); + var pl_list = pl_db.SearchAllInfo().ToList(); + foreach (var item in list) + { + DeviceModel dm = Tool.Mapper(item); + var info = pl_list.FirstOrDefault(p => p.StationID == item.StationID); + if (info != null) + { + dm.StationNo = info.StationNo; + } + StationList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = StationList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + + + public string SearchInfoByID(string DeviceID) { + try + { + string jsonStr = "[]"; + tb_Device info = db.SearchInfoByID(DeviceID); + jsonStr = JSONTools.ScriptSerialize(info); + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_Device md) + { + try + { + var list = db.SearchInfoByKey("DeviceNo", md.DeviceNo);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.DeviceID != md.DeviceID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Device md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.DeviceNo == md.DeviceNo && p.DeviceID != md.DeviceID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[6]; + proNames[0] = "StationID"; + proNames[1] = "DeviceNo"; + proNames[2] = "DeviceName"; + proNames[3] = "FixNo"; + proNames[4] = "Des"; + proNames[5] = "DeviceModel"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_Device md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + foreach (var item in list) + { + item.DeviceName = item.DeviceNo + "----" + item.DeviceName; + } + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + } + + public string QueryForComboboxByLineID(string fl_id) + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + if (fl_id != null && fl_id != "") + { + BasicBLL s_db = new BasicBLL(); + var s_list = s_db.SearchAllInfo().Where(p => p.LineID == fl_id).ToList();//判断是否有重复数据 + if (s_list.Count > 0) + { + string[] arr = s_list.Select(p => p.StationID).ToArray(); + list = list.Where(p => arr.Contains(p.StationID)).ToList(); + foreach (var item in list) + { + item.DeviceName = item.DeviceNo + "----" + item.DeviceName; + } + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + } + return ""; + } + catch (Exception) + { + return ""; + } + + + } + + public string QueryForComboboxByStationID(string fl_id) + { + try + { + string jsonStr = "[]"; + + if (fl_id != null && fl_id != "") + { + var list = db.SearchAllInfo().Where(p => p.StationID == fl_id).ToList();//判断是否有重复数据 + foreach (var item in list) + { + item.DeviceName = item.DeviceNo + "----" + item.DeviceName; + } + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + return ""; + } + catch (Exception) + { + return ""; + } + + + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/FactoryBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/FactoryBLL.cs new file mode 100644 index 0000000..68ec1a7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/FactoryBLL.cs @@ -0,0 +1,148 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class FactoryBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string FactoryName) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + + if (!String.IsNullOrEmpty(FactoryName)) + { + list = list.Where(p => p.FactoryName.Contains(FactoryName)).ToList();//按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_Factory md) + { + try + { + var list = db.SearchInfoByKey("FactoryName", md.FactoryName);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.FactoryID != md.FactoryID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Factory md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.FactoryName == md.FactoryName && p.FactoryID != md.FactoryID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[2]; + proNames[0] = "FactoryName"; + proNames[1] = "Des"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_Factory md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ImgVideoBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ImgVideoBLL.cs new file mode 100644 index 0000000..096c2fe --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ImgVideoBLL.cs @@ -0,0 +1,141 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class ImgVideoBLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_ImgVideo md) + { + try + { + + var list = db.SearchInfoByKey("fileName", md.fileName);//判断是否有重复数据 + if (list != null) + { + return false; + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_ImgVideo md) + { + try + { + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "fileUrl"; + proNames[1] = "fileName"; + proNames[2] = "UpdateTime"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_ImgVideo md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = ef.tb_ImgVideo.OrderByDescending(p=>p.CreateTime).ToList(); + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_ImgVideo SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/InjectionPlanBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/InjectionPlanBLL.cs new file mode 100644 index 0000000..4750340 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/InjectionPlanBLL.cs @@ -0,0 +1,419 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Data; +using System.Data.SqlClient; +using MESClassLibrary.DAL.BasicInfo; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class InjectionPlanBLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + InjectionPlanDAL dal = new InjectionPlanDAL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_InjectionPlan md) + { + try + { + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_InjectionPlan md) + { + try + { + + //初始化要更新的字段 + string[] proNames = new string[8]; + proNames[0] = "StationID"; + proNames[1] = "BeginTime"; + proNames[2] = "StockNo"; + proNames[3] = "PlanCount"; + proNames[4] = "EndTime"; + proNames[5] = "PlanDate"; + proNames[6] = "RealCycle"; + proNames[7] = "PartNo"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_InjectionPlan md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string stationID, string stockNo) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo().Where(p => p.IsFinish != 1).ToList(); + if (!String.IsNullOrEmpty(stationID)) + { + list = list.Where(p => p.StationID.Equals(stationID)).ToList(); + } + if (!String.IsNullOrEmpty(stockNo)) + { + list = list.Where(p => p.StockNo.Contains(stockNo)).ToList(); + } + + list = list.OrderBy(p => p.BeginTime).ToList(); + + List modelList = new List(); + if (list.Count > 0) + { + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + #region 联查 + BasicBLL product_db = new BasicBLL(); + var product_list = product_db.SearchAllInfo(); + + BasicBLL station_db = new BasicBLL(); + var station_list = station_db.SearchAllInfo(); + + foreach (var item in list) + { + InjectionPlanModel dm = Tool.Mapper(item); + var product_info = product_list.FirstOrDefault(p => p.StockNo == item.StockNo); + if (product_info != null) + { + dm.PartNo = product_info.PartNo; + dm.ProductName = product_info.ProductName; + } + + var station_info = station_list.FirstOrDefault(p => p.StationID == item.StationID); + if (station_info != null) + { + dm.StationNo = station_info.StationNo; + } + + modelList.Add(dm); + } + #endregion + + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public string SearchInfoAll2(string page, string pagesize, string stationID, string stockNo, string StartTime, string EndTime) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + total = dal.SearchByTimeCount(stationID, stockNo, StartTime, EndTime); + DataTable dt = dal.SearchByTime(Convert.ToInt32(page), Convert.ToInt32(pagesize), stationID, stockNo, StartTime, EndTime); + + List list = Tool.ConvertTo(dt).ToList(); + + //List list = ef.tb_InjectionPlan.Where(p => DateTime.Parse(p.BeginTime) >= stime && DateTime.Parse(p.EndTime) <= etime).ToList(); + + + if (!String.IsNullOrEmpty(stationID)) + { + list = list.Where(p => p.StationID.Equals(stationID)).ToList(); + } + if (!String.IsNullOrEmpty(stockNo)) + { + list = list.Where(p => p.StockNo.Contains(stockNo)).ToList(); + } + + list = list.OrderBy(p => p.BeginTime).ToList(); + + List modelList = new List(); + if (list.Count > 0) + { + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + #region 联查 + BasicBLL product_db = new BasicBLL(); + var product_list = product_db.SearchAllInfo(); + + BasicBLL station_db = new BasicBLL(); + var station_list = station_db.SearchAllInfo(); + + foreach (var item in list) + { + InjectionPlanModel dm = Tool.Mapper(item); + var product_info = product_list.FirstOrDefault(p => p.StockNo == item.StockNo); + if (product_info != null) + { + dm.PartNo = product_info.PartNo; + dm.ProductName = product_info.ProductName; + } + + var station_info = station_list.FirstOrDefault(p => p.StationID == item.StationID); + if (station_info != null) + { + dm.StationNo = station_info.StationNo; + } + + modelList.Add(dm); + } + #endregion + + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + public bool UpdateInfo2(tb_InjectionPlan md) + { + try + { + + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "workClass"; + proNames[1] = "JK_Weight"; + proNames[2] = "Waste_Weight"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息 + /// + /// + public List SearchAll() + { + try + { + var s_list = db.SearchAllInfo().ToList(); + return s_list; + } + catch (Exception) + { + return null; + } + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_InjectionPlan SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public String GetEndTime(tb_InjectionPlan md) + { + try + { + BasicBLL Plastic_db = new BasicBLL(); + + var info = from c in Plastic_db.SearchAllInfo() + where c.StockNo == md.StockNo && c.StationID == md.StationID && c.IsBackup == 1 + select c.CycleTime; + + if (info.FirstOrDefault() != null) + { + double seconds = Convert.ToDouble(info.FirstOrDefault().Value) * Convert.ToDouble(md.PlanCount); + return Convert.ToDateTime(md.BeginTime).AddSeconds(seconds).ToString("yyyy-MM-dd HH:mm:ss"); + } + return md.BeginTime; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public DataTable SearchInfoByName(string StationID) + { + try + { + return dal.SearchPlanByStation(StationID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + public DataTable NextSearchInfoByName(string StationID) + { + try + { + return dal.NextSearchPlanByStation(StationID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdateFinish(InjectionPlanModel md) + { + InjectionPlanDAL dal = new InjectionPlanDAL(); + try + { + return dal.UpdateFinish(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + + public string GetStartTime(string StationID) + { + + var bf = db.SearchInfoByKey("StationID", StationID).OrderByDescending(p => p.EndTime).FirstOrDefault(); + if (bf != null) + { + return bf.EndTime; + } + + return ""; + + } + + public List isExit(string startTime, string endTime, string stationID, string stockNo) + { + try + { + return db.SearchAllInfo().Where(p => + p.StationID == stationID && p.BeginTime == startTime && p.EndTime == endTime && + p.StockNo == stockNo) + .ToList(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + //public bool DeleteInfoByAPS(tb_InjectionPlan md) + //{ + // try + // { + + // } + // catch (Exception ex) + // { + // LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + // return false; + // } + //} + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/LineBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/LineBLL.cs new file mode 100644 index 0000000..58d9540 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/LineBLL.cs @@ -0,0 +1,170 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class LineBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string LineName, string PlaceID, string userID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + //数据权限 + //BasicBLL userdb = new BasicBLL(); + //T_Sys_Users user = userdb.SearchInfoByID(userID); + //List list = db.SearchInfoContains("LineName", user.Department); + + if (!String.IsNullOrEmpty(PlaceID)) + { + list = list.Where(p => p.PlaceID == PlaceID).ToList();//按条件分页查询 + } + + if (!String.IsNullOrEmpty(LineName)) + { + list = list.Where(p => p.LineName.Contains(LineName)).ToList();//按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + #region 联查 + List ModelList = new List(); + BasicBLL p_db = new BasicBLL(); + var p_list = p_db.SearchAllInfo().ToList(); + foreach (var item in list) + { + LineModel dm = Tool.Mapper(item); + var info = p_list.FirstOrDefault(p => p.PlaceID == item.PlaceID); + if (info != null) + { + dm.PlaceName = info.PlaceName; + } + ModelList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = ModelList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_Line md) + { + try + { + var list = db.SearchInfoByKey("LineName", md.LineName);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.LineID != md.LineID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Line md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.LineName == md.LineName && p.LineID != md.LineID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "PlaceID"; + proNames[1] = "LineName"; + proNames[2] = "Des"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_Line md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/LocationBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/LocationBLL.cs new file mode 100644 index 0000000..4b2214b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/LocationBLL.cs @@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class LocationBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string Location) + { + try + { + string jsonStr = "[]"; + int total = 0; //总行数 + List list = db.SearchAllInfo(); + + + if (!String.IsNullOrEmpty(Location)) + { + list = list.Where(p => p.Location.Contains(Location)).ToList(); //按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + jsonStr = JSONTools.ScriptSerialize>(md); + } + + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_Location md) + { + try + { + var list = db.SearchInfoByKey("Location", md.Location);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ID != md.ID).Count() > 0) + { + return false; + } + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Location md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.Location == md.Location && p.ID != md.ID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[1]; + proNames[0] = "Location"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_Location md) + { + try + { + BasicBLL db1=new BasicBLL(); + + var list = db1.SearchAllInfo().Where(p => p.LocationID == md.ID).ToList(); + if (list.Count > 0) + { + return false; + } + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList(); //判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/MachineBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/MachineBLL.cs new file mode 100644 index 0000000..a38c035 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/MachineBLL.cs @@ -0,0 +1,184 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class MachineBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Machine md) + { + try + { + var list = db.SearchInfoByKey("MachineNo", md.MachineNo);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.MachineID != md.MachineID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Machine md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.MachineNo == md.MachineNo && p.MachineID != md.MachineID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[2]; + proNames[0] = "MachineNo"; + proNames[1] = "Des"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Machine md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string machineNo) + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(machineNo)) + { + list = list.Where(p => p.MachineNo.Contains(machineNo)).ToList(); + } + + if (list.Count > 0) + { + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + + } + + /// + /// 查询全部信息 + /// + /// + public List SearchAll() + { + try + { + var s_list = db.SearchAllInfo().ToList(); + return s_list; + } + catch (Exception) + { + return null; + } + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Machine SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + //下拉框查询方法 + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList(); + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ModelInfoBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ModelInfoBLL.cs new file mode 100644 index 0000000..17797de --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ModelInfoBLL.cs @@ -0,0 +1,208 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class ModelInfoBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_ModelInfo md) + { + try + { + var list = db.SearchInfoByKey("ModelNo", md.ModelNo);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ID != md.ID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_ModelInfo md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.ModelNo == md.ModelNo && p.ID != md.ID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[14]; + proNames[0] = "ModelName"; + proNames[1] = "ModelNo"; + proNames[2] = "PermanentAssetsNo"; + proNames[3] = "Tonnage"; + proNames[4] = "ServiceLife"; + proNames[5] = "Supplier"; + proNames[6] = "PartWeight"; + proNames[7] = "InjectionPeriod"; + proNames[8] = "LocatingRingSize"; + proNames[9] = "OutForm"; + proNames[10] = "ModelWeight"; + proNames[11] = "RunnerForm"; + proNames[12] = "ModelCavityNo"; + proNames[13] = "ModelSize"; + + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_ModelInfo md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string ModelNo) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(ModelNo)) + { + list = list.Where(p => p.ModelNo.Contains(ModelNo)).ToList(); + } + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_ModelInfo SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().OrderBy(p => p.ModelNo).ToList();//判断是否有重复数据 + + List sl = new List(); + + foreach (var item in list) + { + SelectModel md = new SelectModel(); + md.textField = item.ModelName; + md.valueField = item.ID; + sl.Add(md); + } + + jsonStr = JSONTools.ScriptSerialize(sl); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + } + + //public DataTable SearchAll() + //{ + // ColorDAL da = new ColorDAL(); + // try + // { + // return da.SearchInfoAll(); + // } + // catch (Exception ex) + // { + // LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + // return null; + // } + //} + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ModelUpdateBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ModelUpdateBLL.cs new file mode 100644 index 0000000..199d30b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ModelUpdateBLL.cs @@ -0,0 +1,137 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + + public class ModelUpdateBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddUpdateInfo(tb_Model_Update md) + { + try + { + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Model_Update md) + { + try + { + //初始化要更新的字段 + string[] proNames = new string[5]; + proNames[0] = "Purpose"; + proNames[1] = "State"; + proNames[2] = "Supplier"; + proNames[3] = "Remarks"; + proNames[4] = "AddTime"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Model_Update md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string ModelID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = db.SearchInfoByKey("ModelID", ModelID).OrderByDescending(p => p.AddTime).ToList(); + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Model_Update SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/OperatorBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/OperatorBLL.cs new file mode 100644 index 0000000..20e13c6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/OperatorBLL.cs @@ -0,0 +1,185 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using MESClassLibrary.DAL.BasicInfo; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; +using MESClassLibrary.EFModel; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class OperatorBLL + { + BasicBLL db = new BasicBLL(); + + OperatorDAL dal = new OperatorDAL(); + + public DataTable SearchInfoByName(string OperatorName, string StationID) + { + try + { + return dal.SearchInfoByName(OperatorName, StationID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + public DataTable SearchInfoByNameAndPsw(string OperatorName, string StationID, string psw) + { + try + { + return dal.SearchInfoByNameAndPsw(OperatorName, StationID, psw); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string OperatorName, string StationID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(StationID)) + { + list = list.Where(p => p.StationID.Equals(StationID)).ToList();//按条件分页查询 + } + + if (!String.IsNullOrEmpty(OperatorName)) + { + list = list.Where(p => p.OperatorName.Contains(OperatorName)).ToList();//按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + #region 联查 + List StationList = new List(); + BasicBLL pl_db = new BasicBLL(); + var pl_list = pl_db.SearchAllInfo().ToList(); + foreach (var item in list) + { + OperatorModel dm = Tool.Mapper(item); + var info = pl_list.FirstOrDefault(p => p.StationID == item.StationID); + if (info != null) + { + dm.StationNo = info.StationNo; + } + StationList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = StationList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_Operator md) + { + try + { + var list = db.SearchInfoByKey("OperatorNo", md.OperatorNo);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.OperatorID != md.OperatorID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Operator md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.OperatorNo == md.OperatorNo && p.OperatorID != md.OperatorID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[5]; + proNames[0] = "StationID"; + proNames[1] = "OperatorNo"; + proNames[2] = "OperatorName"; + proNames[3] = "OperatorPsw"; + proNames[4] = "Des"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_Operator md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PaintInfoBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PaintInfoBLL.cs new file mode 100644 index 0000000..830fe66 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PaintInfoBLL.cs @@ -0,0 +1,335 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + + public class PaintInfoBLL + { + BasicBLL dbPB = new BasicBLL(); + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_PaintInfo md) + { + try + { + var list = db.SearchInfoByKey("PaintCode", md.PaintCode);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ID != md.ID && p.IsUsing == 1).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_PaintInfo md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.PaintCode == md.PaintCode && p.ID != md.ID && p.IsUsing == 1).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[5]; + proNames[0] = "PaintCode"; + proNames[1] = "PaintName"; + proNames[2] = "PaintModel"; + //proNames[3] = "UnitCode"; + proNames[3] = "CarModelCode"; + proNames[4] = "IsUsing"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_PaintInfo md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string PaintCode) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(PaintCode)) + { + list = list.Where(p => p.PaintCode.Contains(PaintCode)).ToList(); + } + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_PaintInfo SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + + List sl = new List(); + + foreach (var item in list) + { + SelectModel md = new SelectModel(); + md.textField = item.PaintCode + "--" + item.PaintName; + md.valueField = item.ID; + sl.Add(md); + } + + jsonStr = JSONTools.ScriptSerialize(sl); + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + + + public string SearchRelation(string page, string pagesize, string PaintID, string BucketID) + { + + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + + List list = dbPB.SearchAllInfo(); + + if (!String.IsNullOrEmpty(PaintID)) + { + list = list.Where(p => p.PaintID == PaintID).ToList(); + } + + if (!String.IsNullOrEmpty(BucketID)) + { + list = list.Where(p => p.BucketID == BucketID).ToList(); + } + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + List modelList = new List(); + + #region 联查 + BasicBLL PaintInfo_db = new BasicBLL(); + var PaintInfo_list = PaintInfo_db.SearchAllInfo(); + + BasicBLL BucketInfo_db = new BasicBLL(); + var BucketInfo_list = BucketInfo_db.SearchAllInfo(); + + foreach (var item in list) + { + Paint_BucketModel dm = Tool.Mapper(item); + var PaintInfo_info = PaintInfo_list.FirstOrDefault(p => p.ID == item.PaintID); + if (PaintInfo_info != null) + { + dm.PaintCode = PaintInfo_info.PaintCode; + dm.PaintName = PaintInfo_info.PaintName; + } + + var BucketInfo_info = BucketInfo_list.FirstOrDefault(p => p.ID == item.BucketID); + if (BucketInfo_info != null) + { + dm.BucketCode = BucketInfo_info.BucketCode; + dm.BucketName = BucketInfo_info.BucketName; + } + + modelList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 新增信息 + /// + /// + /// + public bool AddRelation(tb_Paint_Bucket md) + { + try + { + var list = dbPB.SearchAllInfo().Where(p => p.PaintID == md.PaintID && p.BucketID == md.BucketID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + return dbPB.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateRelation(tb_Paint_Bucket md) + { + try + { + var list = dbPB.SearchAllInfo().Where(p => p.PaintID == md.PaintID && p.ID != md.ID && p.BucketID == md.BucketID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[2]; + proNames[0] = "PaintID"; + proNames[1] = "BucketID"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return dbPB.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public bool DeleteRelation(tb_Paint_Bucket md) + { + try + { + List ef = dbPB.SearchInfoByKey("ID", md.ID); + if (ef!=null && ef.Count>0) + { + return dbPB.DelInfo(ef.First()); + } + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PlaceBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PlaceBLL.cs new file mode 100644 index 0000000..52b4c86 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PlaceBLL.cs @@ -0,0 +1,165 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class PlaceBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string PlaceName, string FactoryID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(FactoryID)) + { + list = list.Where(p => p.FactoryID == FactoryID).ToList();//按条件分页查询 + } + + if (!String.IsNullOrEmpty(PlaceName)) + { + list = list.Where(p => p.PlaceName.Contains(PlaceName)).ToList();//按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + #region 联查 + List ModelList = new List(); + BasicBLL p_db = new BasicBLL(); + var p_list = p_db.SearchAllInfo().ToList(); + foreach (var item in list) + { + PlaceModel dm = Tool.Mapper(item); + var info = p_list.FirstOrDefault(p => p.FactoryID == item.FactoryID); + if (info != null) + { + dm.FactoryName = info.FactoryName; + } + ModelList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = ModelList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_Place md) + { + try + { + var list = db.SearchInfoByKey("PlaceName", md.PlaceName);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.PlaceID != md.PlaceID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Place md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.PlaceName == md.PlaceName && p.PlaceID != md.PlaceID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "FactoryID"; + proNames[1] = "PlaceName"; + proNames[2] = "Des"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_Place md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PlasticBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PlasticBLL.cs new file mode 100644 index 0000000..83d91b4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/PlasticBLL.cs @@ -0,0 +1,238 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class PlasticBLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Plastic md) + { + try + { + var list = db.SearchInfoByKey("StationID", md.StationID);//判断是否有重复数据 + if (list != null && list.Count > 0) + { + if (list.Where(p => p.StockNo.Equals(md.StockNo)).Count() > 0) + { + return false; + } + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Plastic md) + { + try + { + + //初始化要更新的字段 + string[] proNames = new string[5]; + proNames[0] = "CycleTime"; + proNames[1] = "StationID"; + proNames[2] = "IsBackup"; + proNames[3] = "Weight"; + proNames[4] = "OpenDebugTime"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Plastic md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string stockNo, string partNo, string StationID) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(stockNo)) + { + list = list.Where(p => p.StockNo != null && p.StockNo.Contains(stockNo)).ToList(); + } + + if (!String.IsNullOrEmpty(StationID)) + { + list = list.Where(p => p.StationID.Equals(StationID)).ToList(); + } + + List modelList = new List(); + if (list.Count > 0) + { + + + + #region 联查 + BasicBLL product_db = new BasicBLL(); + var product_list = product_db.SearchAllInfo(); + + BasicBLL machine_db = new BasicBLL(); + var machine_list = machine_db.SearchAllInfo(); + + foreach (var item in list) + { + PlasticModel dm = Tool.Mapper(item); + var product_info = product_list.FirstOrDefault(p => p.StockNo == item.StockNo); + if (product_info != null) + { + dm.PartNo = product_info.PartNo; + } + + var machine_info = machine_list.FirstOrDefault(p => p.StationID == item.StationID); + if (machine_info != null) + { + dm.StationNo = machine_info.StationNo; + } + + modelList.Add(dm); + } + #endregion + + if (!String.IsNullOrEmpty(partNo)) + { + modelList = modelList.Where(p => p.PartNo != null && p.PartNo.Contains(partNo)).ToList(); + } + + total = modelList.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + modelList = modelList.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 查询全部信息 + /// + /// + public List SearchAll() + { + try + { + var s_list = db.SearchAllInfo().ToList(); + return s_list; + } + catch (Exception) + { + return null; + } + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Plastic SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + + public string QueryForCombobox(string StationID) + { + try + { + + var info = from m in ef.tb_Plastic + join s in ef.tb_Product on m.StockNo equals s.StockNo into val2Grp + from grp in val2Grp.DefaultIfEmpty() + where m.StationID == StationID + select new { c_id = grp.StockNo, c_text = grp.PartNo + "--" + grp.ProductName, c_name = grp.StockNo + "--" + grp.ProductName }; + + string jsonStr = "[]"; + jsonStr = JSONTools.ScriptSerialize(info); + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductBLL.cs new file mode 100644 index 0000000..2335847 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductBLL.cs @@ -0,0 +1,486 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Data; +using System.Data.SqlClient; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.BasicInfo; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class ProductBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Product md) + { + try + { + var list = db.SearchInfoByKey("StockNo", md.StockNo);//判断是否有重复数据 + list = db.SearchInfoByKey("PartNo", md.PartNo);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ProductID != md.ProductID).Count() > 0) + { + return false; + } + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Product md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.StockNo == md.StockNo && p.ProductID != md.ProductID && p.ProductID != md.ProductID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[12]; + proNames[0] = "ProductTypeID"; + proNames[1] = "PartName"; + proNames[2] = "ProductName"; + proNames[3] = "ColorName"; + proNames[4] = "PartNo"; + proNames[5] = "Rows"; + proNames[6] = "Cols"; + proNames[7] = "Layers"; + proNames[8] = "Des"; + proNames[9] = "isImport"; + proNames[10] = "ProjectID"; + proNames[11] = "IsHigh"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + md.PicturePath = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Product md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string stockNo, string productTypeID, string productName, string partNo) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(stockNo)) + { + list = list.Where(p => p.StockNo != null && p.StockNo.Contains(stockNo)).ToList(); + } + if (!String.IsNullOrEmpty(productTypeID)) + { + list = list.Where(p => p.ProductTypeID.Equals(productTypeID)).ToList(); + } + if (!String.IsNullOrEmpty(productName)) + { + list = list.Where(p => p.ProductName != null && p.ProductName.Contains(productName)).ToList(); + } + if (!String.IsNullOrEmpty(partNo)) + { + list = list.Where(p => p.PartNo != null && p.PartNo.Contains(partNo)).ToList(); + } + List modelList = new List(); + if (list.Count > 0) + { + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + #region 联查 + BasicBLL s_db = new BasicBLL(); + var s_list = s_db.SearchAllInfo(); + BasicBLL p_db = new BasicBLL(); + var p_list = p_db.SearchAllInfo(); + + foreach (var item in list) + { + ProductModel dm = Tool.Mapper(item); + var info = s_list.FirstOrDefault(p => p.ProductTypeID == item.ProductTypeID); + if (info != null) + { + dm.ProductTypeName = info.ProductTypeName; + } + var info1 = p_list.FirstOrDefault(p => p.ID == item.ProjectID); + if (info1 != null) + { + dm.Project = info1.Project; + } + modelList.Add(dm); + } + + + #endregion + + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 查询全部信息 + /// + /// + public List SearchAll() + { + try + { + var s_list = db.SearchAllInfo().ToList(); + return s_list; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Product SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public string GetComboboxData(string productTypeNo, string productTypeNo1) + { + try + { + string jsonStr = "[]"; + BasicBLL productTypeDB = new BasicBLL(); + + if (!string.IsNullOrWhiteSpace(productTypeNo1)) + { + var info = from m in db.SearchAllInfo().ToList() + join s in productTypeDB.SearchAllInfo().ToList() on m.ProductTypeID equals s.ProductTypeID into + val2Grp + from grp in val2Grp.DefaultIfEmpty() + where grp.ProductTypeNo == productTypeNo || grp.ProductTypeNo == productTypeNo1 + select new {m.PartNo, PartName = m.PartNo + "----" + m.ProductName}; + jsonStr = JSONTools.ScriptSerialize(info); + } + else + { + var info = from m in db.SearchAllInfo().ToList() + join s in productTypeDB.SearchAllInfo().ToList() on m.ProductTypeID equals s.ProductTypeID into + val2Grp + from grp in val2Grp.DefaultIfEmpty() + where grp.ProductTypeNo == productTypeNo + select new { m.PartNo, PartName = m.PartNo + "----" + m.ProductName }; + jsonStr = JSONTools.ScriptSerialize(info); + } + + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + public string GetComboboxProduct(string productTypeNo) + { + try + { + + BasicBLL productTypeDB = new BasicBLL(); + + + var info = from m in db.SearchAllInfo().ToList() + join s in productTypeDB.SearchAllInfo().ToList() on m.ProductTypeID equals s.ProductTypeID into val2Grp + from grp in val2Grp.DefaultIfEmpty() + where grp.ProductTypeNo == productTypeNo + select new { m.ProductID, m.ProductName }; + string jsonStr = "[]"; + jsonStr = JSONTools.ScriptSerialize(info); + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + public string GetComboboxProduct1(string productTypeNo) + { + try + { + List list=new List(); + string sql = + @"SELECT dbo.tb_Product.ProductID, dbo.tb_Product.ProductName, dbo.tb_ProductType.ProductTypeNo + FROM dbo.tb_Product LEFT OUTER JOIN + dbo.tb_ProductType ON dbo.tb_Product.ProductTypeID = dbo.tb_ProductType.ProductTypeID + where dbo.tb_ProductType.ProductTypeNo='"+ productTypeNo+ @"'"; + + DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + list = Tool.ConvertTo(dt).ToList(); + } + string jsonStr = "[]"; + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + public string GetComboboxDataForStockNo(string productTypeNo) + { + try + { + + BasicBLL productTypeDB = new BasicBLL(); + + //var info = from m in db.SearchAllInfo().Where(p => p.StockNo != null).ToList() + // join s in productTypeDB.SearchAllInfo().ToList() on m.ProductTypeID equals s.ProductTypeID into + // val2Grp + // from grp in val2Grp.DefaultIfEmpty() + // where grp.ProductTypeNo == productTypeNo + // select new { c_id = m.StockNo, c_text = m.PartNo + "--" + m.ProductName, c_name = m.StockNo + "--" + m.ProductName, c_name2 = m.PartNo }; + var info = from m in db.SearchAllInfo().Where(p => p.ProductTypeID == "f3bbde11-7188-4910-855d-806d92d142b9" && p.StockNo != null) + //join s in productTypeDB.SearchAllInfo().ToList() on m.ProductTypeID equals s.ProductTypeID into val2Grp + //from grp in val2Grp.DefaultIfEmpty() + //where grp.ProductTypeNo == productTypeNo + select new { c_id = m.StockNo, c_text = m.PartNo + "--" + m.ProductName, c_name = m.StockNo + "--" + m.ProductName, c_name2 = m.PartNo }; + string jsonStr = "[]"; + jsonStr = JSONTools.ScriptSerialize(info); + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + public DataTable SearchInfoByType(string type, string stationNo) + { + ProductDAL da = new ProductDAL(); + try + { + return da.SearchInfoByType(type, stationNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoAllByType(string type) + { + ProductDAL da = new ProductDAL(); + try + { + return da.SearchInfoAllByType(type); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoByName(string productName, string ProductTypeNo) + { + ProductDAL da = new ProductDAL(); + try + { + return da.SearchInfoByName(productName, ProductTypeNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoByPartNo(string partNo) + { + ProductDAL da = new ProductDAL(); + try + { + return da.SearchInfoByPartNo(partNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchIsImportByStockNo(string stockNo) + { + ProductDAL da = new ProductDAL(); + try + { + return da.SearchIsImportByStockNo(stockNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + public DataTable SearchInfoByProductName(string ProductName) + { + ProductDAL da = new ProductDAL(); + try + { + return da.SearchInfoByProductName(ProductName); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdatePDF(string id, string fileName) + { + try + { + tb_Product md = new tb_Product(); + md.ProductID = id; + md.PicturePath = fileName; + + //初始化要更新的字段 + string[] proNames = new string[1]; + proNames[0] = "PicturePath"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchInfoAll() + { + ProductDAL da = new ProductDAL(); + try + { + return da.SearchInfoAll(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + + public DataTable SearchInfoByStock(string StockNo) + { + ProductDAL da = new ProductDAL(); + try + { + return da.SearchInfoByStock(StockNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductOfInjectionBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductOfInjectionBLL.cs new file mode 100644 index 0000000..c7490c6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductOfInjectionBLL.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.BasicInfo; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class ProductOfInjectionBLL + { + ProductOfInjectionDAL db=new ProductOfInjectionDAL(); + + public bool Add_Info(ProductOfInjectionModel md) + { + try + { + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchCountByInfo(string station, string date, string classname, string StockNo,string partno) + { + try + { + return db.SearchCountByInfo(station,date,classname,StockNo,partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool Update_Info(ProductOfInjectionModel md) + { + try + { + return db.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateBad_Info(ProductOfInjectionModel md) + { + try + { + return db.UpdteBadInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool updateProductCount(ProductOfInjectionModel md) + { + try + { + return db.updateProductCount(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductTypeBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductTypeBLL.cs new file mode 100644 index 0000000..2896c0e --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProductTypeBLL.cs @@ -0,0 +1,182 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.BasicInfo; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class ProductTypeBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_ProductType md) + { + try + { + var list = db.SearchInfoByKey("ProductTypeNo", md.ProductTypeNo);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ProductTypeID != md.ProductTypeID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_ProductType md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.ProductTypeNo == md.ProductTypeNo && p.ProductTypeID != md.ProductTypeID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[2]; + proNames[0] = "ProductTypeName"; + proNames[1] = "Des"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_ProductType md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchInfoAll(Convert.ToInt32(page), Convert.ToInt32(pagesize), out total);//按分页查询 + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 查询全部信息 + /// + /// + public List SearchAll() + { + try + { + var s_list = db.SearchAllInfo().ToList(); + return s_list; + } + catch (Exception) + { + return null; + } + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_ProductType SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + foreach (var item in list) + { + item.ProductTypeName = item.ProductTypeNo + "----" + item.ProductTypeName; + } + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProjectBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProjectBLL.cs new file mode 100644 index 0000000..566a85b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/ProjectBLL.cs @@ -0,0 +1,197 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.BasicInfo; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class ProjectBLL + { + BasicBLL db = new BasicBLL(); + + public string GetComboboxData(string Project) + { + try + { + string jsonStr = "[]"; + if (Project == null || Project == "") + { + var list = db.SearchAllInfo().ToList(); + jsonStr = JSONTools.ScriptSerialize>(list); + } + else + { + var list = db.SearchInfoContains("Project", Project).ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + } + + return jsonStr; + } + catch (Exception ex) + { + return ""; + } + } + + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string Project, string LocationID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(LocationID)) + { + list = list.Where(p => p.LocationID == LocationID).ToList();//按条件分页查询 + } + + if (!String.IsNullOrEmpty(Project)) + { + list = list.Where(p => p.Project.Contains(Project)).ToList();//按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + #region 联查 + List ProjectList = new List(); + BasicBLL pl_db = new BasicBLL(); + var pl_list = pl_db.SearchAllInfo().ToList(); + foreach (var item in list) + { + ProjectModel dm = Tool.Mapper(item); + var info = pl_list.FirstOrDefault(p => p.ID == item.LocationID); + if (info != null) + { + dm.Location = info.Location; + } + ProjectList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = ProjectList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + /// + /// 添加信息 + /// + /// 项目模型对象 + /// + public bool AddInfo(tb_Project md) + { + try + { + var list = db.SearchInfoByKey("Project", md.Project);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ID != md.ID).Count() > 0) + { + return false; + } + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Project md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.Project == md.Project && p.ID != md.ID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[2]; + proNames[0] = "LocationID"; + proNames[1] = "Project"; + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + /// 删除项目信息 + public bool DelInfo(tb_Project md) + { + try + { + BasicBLL db1=new BasicBLL(); + + var list = db1.SearchAllInfo().Where(p => p.ProjectID == md.ID).ToList(); + if (list.Count > 0) + { + return false; + } + + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetData() + { + try + { + string jsonStr = "[]"; + var list = db.SearchAllInfo().ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/BasicInfo/StationBLL.cs b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/StationBLL.cs new file mode 100644 index 0000000..e6e0d42 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/BasicInfo/StationBLL.cs @@ -0,0 +1,195 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using MESClassLibrary.DAL.BasicInfo; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Data; +using System.Data.SqlClient; + +namespace MESClassLibrary.BLL.BasicInfo +{ + public class StationBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string StationNo, string LineID) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!String.IsNullOrEmpty(LineID)) + { + list = list.Where(p => p.LineID == LineID).ToList();//按条件分页查询 + } + + if (!String.IsNullOrEmpty(StationNo)) + { + list = list.Where(p => p.StationNo.Contains(StationNo)).ToList();//按条件分页查询 + } + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + #region 联查 + List StationList = new List(); + BasicBLL pl_db = new BasicBLL(); + var pl_list = pl_db.SearchAllInfo().ToList(); + foreach (var item in list) + { + StationModel dm = Tool.Mapper(item); + var info = pl_list.FirstOrDefault(p => p.LineID == item.LineID); + if (info != null) + { + dm.LineName = info.LineName; + } + StationList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = StationList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 生产线模型对象 + /// + public bool AddInfo(tb_Station md) + { + try + { + var list = db.SearchInfoByKey("StationNo", md.StationNo);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.StationID != md.StationID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 生产线模型对象 + /// + public bool UpdateInfo(tb_Station md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.StationNo == md.StationNo && p.StationID != md.StationID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "LineID"; + proNames[1] = "StationNo"; + proNames[2] = "Des"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_Station md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxData(string stationNo) + { + try + { + string jsonStr = "[]"; + if (string.IsNullOrWhiteSpace(stationNo)) + { + var list = db.SearchAllInfo().OrderBy(p=>p.StationNo).ToList(); + jsonStr = JSONTools.ScriptSerialize>(list); + } + else + { + var list = db.SearchInfoContains("StationNo", stationNo).OrderBy(p=>p.StationNo).ToList(); + jsonStr = JSONTools.ScriptSerialize>(list); + } + + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + + } + + public DataTable SearchInfoByNo(string station) + { + StationDAL db = new StationDAL(); + + try + { + return db.SearchInfoByNo(station); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Check/InspectResultBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Check/InspectResultBLL.cs new file mode 100644 index 0000000..eb31c36 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Check/InspectResultBLL.cs @@ -0,0 +1,1504 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Check; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.Check +{ + public class InspectResultBLL + { + + InspectResultDAL dal = new InspectResultDAL(); + + BBMPTEntities ef = new BBMPTEntities(); + + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string StartTime, string EndTime, string position, string inspectResult) + { + try + { + string jsonStr = "[]"; + int total = dal.SearchCount(StartTime, EndTime, position, inspectResult);//总行数 + + DataTable dt = dal.SearchByPage(Convert.ToInt32(page), Convert.ToInt32(pagesize), StartTime, EndTime, position, inspectResult); + if (dt != null && dt.Rows.Count > 0) + { + var list = Tool.ConvertTo(dt); + + List groupList = new List(); + + List barcodeList = list.GroupBy(p => p.barcode).Select(p => p.Key).ToList(); + + foreach (var item in barcodeList) + { + var info = list.Where(p => p.barcode.Equals(item)).OrderBy(p => p.InspectTimes).ToList(); + + if (info.Count > 0) + { + InspectResultGroup md = new InspectResultGroup(); + if (info.Count >= 3) + { + md.barcode = info[0].barcode; + md.side = info[0].side; + md.position = info[0].position; + md.stationNo = info[0].stationNo; + md.workClass = info[0].workClass; + md.productInfo = info[0].productInfo; + md.productOption = info[0].productOption; + md.inspectResult_1 = info[0].inspectResult; + md.damnPosition_1 = info[0].damnPosition; + md.reason_1 = info[0].reason; + md.createTime_1 = Convert.ToDateTime(info[0].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + md.inspectResult_2 = info[1].inspectResult; + md.damnPosition_2 = info[1].damnPosition; + md.reason_2 = info[1].reason; + md.createTime_2 = Convert.ToDateTime(info[1].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + md.inspectResult_3 = info[2].inspectResult; + md.damnPosition_3 = info[2].damnPosition; + md.reason_3 = info[2].reason; + md.createTime_3 = Convert.ToDateTime(info[2].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + groupList.Add(md); + } + + if (info.Count == 2) + { + md.barcode = info[0].barcode; + md.side = info[0].side; + md.position = info[0].position; + md.stationNo = info[0].stationNo; + md.workClass = info[0].workClass; + md.productInfo = info[0].productInfo; + md.productOption = info[0].productOption; + md.inspectResult_1 = info[0].inspectResult; + md.damnPosition_1 = info[0].damnPosition; + md.reason_1 = info[0].reason; + md.createTime_1 = Convert.ToDateTime(info[0].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + md.inspectResult_2 = info[1].inspectResult; + md.damnPosition_2 = info[1].damnPosition; + md.reason_2 = info[1].reason; + md.createTime_2 = Convert.ToDateTime(info[1].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + + groupList.Add(md); + } + + if (info.Count == 1) + { + md.barcode = info[0].barcode; + md.side = info[0].side; + md.position = info[0].position; + md.stationNo = info[0].stationNo; + md.workClass = info[0].workClass; + md.productInfo = info[0].productInfo; + md.productOption = info[0].productOption; + md.inspectResult_1 = info[0].inspectResult; + md.damnPosition_1 = info[0].damnPosition; + md.reason_1 = info[0].reason; + md.createTime_1 = Convert.ToDateTime(info[0].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + groupList.Add(md); + } + } + } + + if (groupList.Count > 0) + { + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = groupList; + jsonStr = JSONTools.ScriptSerialize(md); + } + } + + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + + /// + /// 点修补记录 + /// + /// + /// + /// + /// + /// + /// + public string SearchInfoByRepair(string page, string pagesize, string StartTime, string EndTime,string inspectResult,string Project,string color) + { + try + { + string jsonStr = "[]"; + int total = dal.SearchCountByRepair(StartTime, EndTime, inspectResult, Project, color);//总行数 + DataTable dt = dal.SearchRepairByPage_1(Convert.ToInt32(page), Convert.ToInt32(pagesize), StartTime, EndTime, inspectResult, Project,color); + if (dt != null && dt.Rows.Count > 0) + { + var list = Tool.ConvertTo(dt); + List groupList = new List(); + if (list.Count > 0) + { + + for (int i = 0; i < list.Count; i++) + { + tb_InspectResult md = new tb_InspectResult(); + md.barcode = list[i].barcode; + md.side = list[i].side; + md.position = list[i].position == "下线二检 点修补" ? "二次抛光" : list[i].position; + md.stationNo = list[i].stationNo; + md.workClass = list[i].workClass; + md.productInfo = list[i].productInfo; + md.productOption = list[i].productOption; + md.inspectResult = list[i].inspectResult; + md.damnPosition = list[i].damnPosition; + md.reason = list[i].reason; + if (list[i].createTime != null) + { + md.createTime = Convert.ToDateTime(list[i].createTime.ToString()); + } + groupList.Add(md); + } + + } + if (groupList.Count > 0) + { + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = groupList; + jsonStr = JSONTools.ScriptSerialize(md); + } + + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + public List> SearchInfoByRepairForExcel(string StartTime, string EndTime, string inspectResult,string Project,string color) + { + try + { + List> list_excel = new List>(); + List title_list = new List(); + title_list.Add("条码"); + title_list.Add("A/B侧"); + title_list.Add("位置"); + //title_list.Add("机台"); + title_list.Add("班次"); + title_list.Add("产品信息"); + title_list.Add("生产模式"); + title_list.Add("结果"); + title_list.Add("缺陷位置"); + title_list.Add("原因"); + title_list.Add("时间"); + list_excel.Add(title_list); + + DataTable dt = dal.SearchByRepair_1(StartTime, EndTime, inspectResult, Project,color); + if (dt != null && dt.Rows.Count > 0) + { + var list = Tool.ConvertTo(dt); + List groupList = new List(); + if (list.Count > 0) + { + + for (int i = 0; i < list.Count; i++) + { + List row_list = new List(); + row_list.Add(list[i].barcode); + row_list.Add(list[i].side); + row_list.Add(list[i].position); + //row_list.Add(list[i].stationNo); + row_list.Add(list[i].workClass); + row_list.Add(list[i].productInfo); + row_list.Add(list[i].productOption); + row_list.Add(list[i].inspectResult); + row_list.Add(list[i].damnPosition); + row_list.Add(list[i].reason); + row_list.Add(list[i].createTime.ToString()); + list_excel.Add(row_list); + } + + } + + } + + return list_excel; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + + + + /// + /// 查询信息 + /// + /// + public List SearchInfoAll(string StartTime, string EndTime, string position, string inspectResult) + { + try + { + List groupList = new List(); + + DataTable dt = dal.Search(StartTime, EndTime, position, inspectResult); + if (dt != null && dt.Rows.Count > 0) + { + + IEnumerable> result = dt.Rows.Cast().GroupBy(dr => dr["barcode"].ToString());//按A分组 + + foreach (IGrouping info in result) + { + + if (info.Count() > 0) + { + InspectResultGroup md = new InspectResultGroup(); + if (info.Count() >= 3) + { + md.barcode = info.ToArray()[0]["barcode"].ToString(); + md.side = info.ToArray()[0]["side"].ToString(); + md.position = info.ToArray()[0]["position"].ToString(); + md.stationNo = info.ToArray()[0]["stationNo"].ToString(); + md.workClass = info.ToArray()[0]["workClass"].ToString(); + md.productInfo = info.ToArray()[0]["productInfo"].ToString(); + md.productOption = info.ToArray()[0]["productOption"].ToString(); + md.inspectResult_1 = info.ToArray()[0]["inspectResult"].ToString(); + md.damnPosition_1 = info.ToArray()[0]["damnPosition"].ToString(); + md.reason_1 = info.ToArray()[0]["reason"].ToString(); + md.createTime_1 = Convert.ToDateTime(info.ToArray()[0]["createTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + md.inspectResult_2 = info.ToArray()[1]["inspectResult"].ToString(); + md.damnPosition_2 = info.ToArray()[1]["damnPosition"].ToString(); + md.reason_2 = info.ToArray()[1]["reason"].ToString(); + md.createTime_2 = Convert.ToDateTime(info.ToArray()[1]["createTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + md.inspectResult_3 = info.ToArray()[2]["inspectResult"].ToString(); + md.damnPosition_3 = info.ToArray()[2]["damnPosition"].ToString(); + md.reason_3 = info.ToArray()[2]["reason"].ToString(); + md.createTime_3 = Convert.ToDateTime(info.ToArray()[2]["createTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + groupList.Add(md); + } + + if (info.Count() == 2) + { + md.barcode = info.ToArray()[0]["barcode"].ToString(); + md.side = info.ToArray()[0]["side"].ToString(); + md.position = info.ToArray()[0]["position"].ToString(); + md.stationNo = info.ToArray()[0]["stationNo"].ToString(); + md.workClass = info.ToArray()[0]["workClass"].ToString(); + md.productInfo = info.ToArray()[0]["productInfo"].ToString(); + md.productOption = info.ToArray()[0]["productOption"].ToString(); + md.inspectResult_1 = info.ToArray()[0]["inspectResult"].ToString(); + md.damnPosition_1 = info.ToArray()[0]["damnPosition"].ToString(); + md.reason_1 = info.ToArray()[0]["reason"].ToString(); + md.createTime_1 = Convert.ToDateTime(info.ToArray()[0]["createTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + md.inspectResult_2 = info.ToArray()[1]["inspectResult"].ToString(); + md.damnPosition_2 = info.ToArray()[1]["damnPosition"].ToString(); + md.reason_2 = info.ToArray()[1]["reason"].ToString(); + md.createTime_2 = Convert.ToDateTime(info.ToArray()[1]["createTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + + groupList.Add(md); + } + + if (info.Count() == 1) + { + md.barcode = info.ToArray()[0]["barcode"].ToString(); + md.side = info.ToArray()[0]["side"].ToString(); + md.position = info.ToArray()[0]["position"].ToString(); + md.stationNo = info.ToArray()[0]["stationNo"].ToString(); + md.workClass = info.ToArray()[0]["workClass"].ToString(); + md.productInfo = info.ToArray()[0]["productInfo"].ToString(); + md.productOption = info.ToArray()[0]["productOption"].ToString(); + md.inspectResult_1 = info.ToArray()[0]["inspectResult"].ToString(); + md.damnPosition_1 = info.ToArray()[0]["damnPosition"].ToString(); + md.reason_1 = info.ToArray()[0]["reason"].ToString(); + md.createTime_1 = Convert.ToDateTime(info.ToArray()[0]["createTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + groupList.Add(md); + } + } + } + + + //var list = Tool.ConvertTo(dt); + + + + + + //List barcodeList = list.GroupBy(p => p.barcode).Select(p => p.Key).ToList(); + + //foreach (var item in barcodeList) + //{ + // var info = list.Where(p => p.barcode.Equals(item)).OrderBy(p => p.InspectTimes).ToList(); + + // if (info.Count > 0) + // { + // InspectResultGroup md = new InspectResultGroup(); + // if (info.Count >= 3) + // { + // md.barcode = info[0].barcode; + // md.side = info[0].side; + // md.position = info[0].position; + // md.stationNo = info[0].stationNo; + // md.workClass = info[0].workClass; + // md.productInfo = info[0].productInfo; + // md.productOption = info[0].productOption; + // md.inspectResult_1 = info[0].inspectResult; + // md.damnPosition_1 = info[0].damnPosition; + // md.reason_1 = info[0].reason; + // md.createTime_1 = Convert.ToDateTime(info[0].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + // md.inspectResult_2 = info[1].inspectResult; + // md.damnPosition_2 = info[1].damnPosition; + // md.reason_2 = info[1].reason; + // md.createTime_2 = Convert.ToDateTime(info[1].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + // md.inspectResult_3 = info[2].inspectResult; + // md.damnPosition_3 = info[2].damnPosition; + // md.reason_3 = info[2].reason; + // md.createTime_3 = Convert.ToDateTime(info[2].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + // groupList.Add(md); + // } + + // if (info.Count == 2) + // { + // md.barcode = info[0].barcode; + // md.side = info[0].side; + // md.position = info[0].position; + // md.stationNo = info[0].stationNo; + // md.workClass = info[0].workClass; + // md.productInfo = info[0].productInfo; + // md.productOption = info[0].productOption; + // md.inspectResult_1 = info[0].inspectResult; + // md.damnPosition_1 = info[0].damnPosition; + // md.reason_1 = info[0].reason; + // md.createTime_1 = Convert.ToDateTime(info[0].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + // md.inspectResult_2 = info[1].inspectResult; + // md.damnPosition_2 = info[1].damnPosition; + // md.reason_2 = info[1].reason; + // md.createTime_2 = Convert.ToDateTime(info[1].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + + // groupList.Add(md); + // } + + // if (info.Count == 1) + // { + // md.barcode = info[0].barcode; + // md.side = info[0].side; + // md.position = info[0].position; + // md.stationNo = info[0].stationNo; + // md.workClass = info[0].workClass; + // md.productInfo = info[0].productInfo; + // md.productOption = info[0].productOption; + // md.inspectResult_1 = info[0].inspectResult; + // md.damnPosition_1 = info[0].damnPosition; + // md.reason_1 = info[0].reason; + // md.createTime_1 = Convert.ToDateTime(info[0].createTime.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); + + // groupList.Add(md); + // } + // } + //} + } + + return groupList; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + //public List SearchInfoAllByRepair(string StartTime, string EndTime, string inspectResult) + //{ + // try + // { + // List groupList = new List(); + // DataTable dt = dal.SearchByRepair(StartTime, EndTime, inspectResult); + // if (dt != null && dt.Rows.Count > 0) + // { + // IEnumerable> result = dt.Rows.Cast().GroupBy(dr => dr["barcode"].ToString()); + // foreach (IGrouping info in result) + // { + // if (info.Count() > 0) + // { + + + // } + // } + // } + // } + // catch (Exception ex) + // { + // LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + // return null; + // } + //} + + #region 合格率趋势统计 + public string SearchQualifiedTrend(string StartTime, string EndTime, string side, string product) + { + try + { + + StringBuilder sb = new StringBuilder(100); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + + //DataTable dt = dal.SearchByPosition(StartTime + " 08:00:00.000", Convert.ToDateTime(EndTime + " 07:59:59.999").AddDays(1).ToString("yyyy-MM-dd HH:mm:ss.fff"), side, product); + DataTable dt = dal.SearchByPosition(StartTime + " 07:30:00", Convert.ToDateTime(EndTime + " 07:30:00").AddDays(1).ToString("yyyy-MM-dd HH:mm:ss"), side, product); + if (dt != null && dt.Rows.Count > 0) + { + + List numList = new List(); + List doubleList = new List(); + for (int i = 0; i < 13; i++) + { + numList.Add(0); + } + for (int i = 0; i < 4; i++) + { + doubleList.Add(0); + } + + TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(StartTime).Ticks); + TimeSpan ts2 = new TimeSpan(Convert.ToDateTime(EndTime).Ticks); + TimeSpan ts3 = ts2.Subtract(ts1); //ts + for (int i = 0; i < ts3.Days + 1; i++) + { + DateTime dtime = Convert.ToDateTime(StartTime).AddDays(i); + string strTime = dtime.ToString("M/d"); + + //白班 + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(12) >= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 07:30:00") && + myRow.Field(12) <= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 19:29:59") + select myRow; + + sb.Append(""); + sb.Append(""); + sb.Append(""); + QualifiedTrendBuilindData(DayList, ref sb, numList, doubleList); + + var NightList = from myRowNight in dt.AsEnumerable() + where myRowNight.Field(12) >= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 19:30:00") && + myRowNight.Field(12) <= Convert.ToDateTime(dtime.AddDays(1).ToString("yyyy-MM-dd") + " 07:29:59") + select myRowNight; + + sb.Append(""); + sb.Append(""); + QualifiedTrendBuilindData(NightList, ref sb, numList, doubleList); + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + + } + + + sb.Append("
日期班别下线数系统抛光数一次合格数抛光合格数合格数返修合格数报废数点修补数一次合格率抛光合格率总合格率报废率抛光结余
" + strTime + "白班
夜班
合计" + numList[0] + "" + numList[1] + "" + numList[2] + "" + numList[3] + "" + numList[4] + "" + numList[5] + "" + numList[6] + "" + numList[7] + "" + doubleList[0] + "%" + doubleList[1] + "%" + doubleList[2] + "%" + doubleList[3] + "%" + numList[12] + "
"); + + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + + public List> SearchQualifiedTrendForExcel(string StartTime, string EndTime, string side, string product) + { + try + { + List> list = new List>(); + List sonList = new List(); + + sonList.Add("日期"); + sonList.Add("班别"); + sonList.Add("下线数"); + sonList.Add("系统抛光数"); + sonList.Add("一次合格数"); + sonList.Add("抛光合格数"); + sonList.Add("合格数"); + sonList.Add("返修合格数"); + sonList.Add("报废数"); + sonList.Add("点修补数"); + sonList.Add("一次合格率"); + sonList.Add("抛光合格率"); + sonList.Add("总合格率"); + sonList.Add("报废率"); + sonList.Add("抛光结余"); + list.Add(sonList); + + //DataTable dt = dal.SearchByPosition(StartTime + " 00:00:00.000", EndTime + " 23:59:59.000", side, product); + DataTable dt = dal.SearchByPosition(StartTime + ".000", EndTime + ".000", side, product); + + if (dt != null && dt.Rows.Count > 0) + { + + List numList = new List(); + List doubleList = new List(); + for (int i = 0; i < 13; i++) + { + numList.Add(0); + } + + + TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(StartTime).Ticks); + TimeSpan ts2 = new TimeSpan(Convert.ToDateTime(EndTime).Ticks); + TimeSpan ts3 = ts2.Subtract(ts1); //ts + for (int i = 0; i < ts3.Days + 1; i++) + { + DateTime dtime = Convert.ToDateTime(StartTime).AddDays(i); + string strTime = dtime.ToString("M/d"); + + //白班 + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(12) >= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 08:00:00.000") && + myRow.Field(12) <= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 19:59:59.999") + select myRow; + List sonDay = new List(); + sonDay.Add(strTime); + sonDay.Add("白班"); + + QualifiedTrendBuilindData(DayList, ref sonDay, numList, doubleList); + list.Add(sonDay); + + var NightList = from myRow in dt.AsEnumerable() + where myRow.Field(12) >= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 20:00:00.000") && + myRow.Field(12) <= Convert.ToDateTime(dtime.AddDays(1).ToString("yyyy-MM-dd") + " 07:59:59.999") + select myRow; + + List sonNight = new List(); + sonNight.Add(strTime); + sonNight.Add("夜班"); + QualifiedTrendBuilindData(NightList, ref sonNight, numList, doubleList); + list.Add(sonNight); + } + + + List sonCount = new List(); + sonCount.Add("合计"); + sonCount.Add(""); + sonCount.Add(numList[0].ToString()); + sonCount.Add(numList[1].ToString()); + sonCount.Add(numList[2].ToString()); + sonCount.Add(numList[3].ToString()); + sonCount.Add(numList[4].ToString()); + sonCount.Add(numList[5].ToString()); + sonCount.Add(numList[6].ToString()); + sonCount.Add(numList[7].ToString()); + sonCount.Add(doubleList[0].ToString() + "%"); + sonCount.Add(doubleList[1].ToString() + "%"); + sonCount.Add(doubleList[2].ToString() + "%"); + sonCount.Add(doubleList[3].ToString() + "%"); + sonCount.Add(numList[12].ToString()); + + list.Add(sonCount); + + } + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + + private void QualifiedTrendBuilindData(EnumerableRowCollection DayList, ref StringBuilder sb, List numList, List doubleList) + { + //下线数 + int XX_num = DayList.Where(p => "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //抛光数 + //int PG_num = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("抛光") && "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pg_1 = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("抛光") && "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).ToList(); + //var pg_2 = DayList.Where(p => p.ItemArray[6] != null && "2".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).ToList(); + //IEnumerable pg_List = pg_1.Intersect(pg_2); + int PG_num = DayList.Where(p => "2".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //一次合格数 + int YCHG_num = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("合格") && "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + //抛光合格 + //var pghg_1 = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("抛光") && "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).ToList(); + //var pghg_2 = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("合格") && "2".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).ToList(); + //IEnumerable pghg_List = pghg_1.Intersect(pghg_2); + int pghg = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("合格") && "2".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pghg = DayList.Where(t => t.ItemArray[3].ToString() == "下线二检 抛光区") + // .GroupBy(p => p.ItemArray[1]) + // .Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + // .Where(p => p.ItemArray[6].ToString().Contains("合格")).Count(); + //返修合格数 + var fx = DayList.Where(t => t.ItemArray[6] != null && t.ItemArray[3].ToString().Contains("点修补") && t.ItemArray[6].ToString().Contains("合格")).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + //合格数 + var hg = YCHG_num + pghg + fx; + //var hg = DayList.GroupBy(p => p.ItemArray[1]) + // .Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + // .Where(p => p.ItemArray[6].ToString().Contains("合格")).Count(); + //报废数 + //var bf = DayList.GroupBy(p => p.ItemArray[1]) + // .Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + // .Where(p => p.ItemArray[6].ToString().Contains("报废")).Count(); + var bf = DayList.Where(t => t.ItemArray[6] != null && t.ItemArray[6].ToString().Contains("报废")).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + var YC_bf = DayList.Where(t => t.ItemArray[6] != null && t.ItemArray[6].ToString().Contains("报废") && "1".Equals(t.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + //点修补数 + //var dxb = DayList.Where(t => t.ItemArray[3].ToString() == "点修补 抛光区").GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + var dxb = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("抛光") && "2".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + + + //一次合格率 + var yc_hg_L = Math.Round(((double)YCHG_num / (double)XX_num) * 100, 2); + //抛光合格率 + var pg_hg_L = Math.Round(((double)pghg / (double)PG_num) * 100, 2); + //总合格率 + var all_hg_L = Math.Round(((double)hg / (double)XX_num) * 100, 2); + //报废率 + var pf_L = Math.Round(((double)bf / (double)XX_num) * 100, 2); + //抛光结余 + //var pgjy = XX_num - hg - bf - dxb; + var pgjy = XX_num - YCHG_num - YC_bf - PG_num; + + sb.Append("" + XX_num + ""); + sb.Append("" + PG_num + ""); + sb.Append("" + YCHG_num + ""); + sb.Append("" + pghg + ""); + sb.Append("" + hg + ""); + sb.Append("" + fx + ""); + sb.Append("" + bf + ""); + sb.Append("" + dxb + ""); + sb.Append("" + yc_hg_L + "%"); + sb.Append("" + pg_hg_L + "%"); + sb.Append("" + all_hg_L + "%"); + sb.Append("" + pf_L + "%"); + sb.Append("" + pgjy + ""); + sb.Append(""); + + numList[0] = numList[0] + XX_num; + numList[1] = numList[1] + PG_num; + numList[2] = numList[2] + YCHG_num; + numList[3] = numList[3] + pghg; + numList[4] = numList[4] + hg; + numList[5] = numList[5] + fx; + numList[6] = numList[6] + bf; + numList[7] = numList[7] + dxb; + + var xxx = Math.Round(((double)numList[2] / (double)numList[0]) * 100, 2); + + doubleList[0] = Math.Round(((double)numList[2] / (double)numList[0]) * 100, 2); + doubleList[1] = Math.Round(((double)numList[3] / (double)numList[1]) * 100, 2); + doubleList[2] = Math.Round(((double)numList[4] / (double)numList[0]) * 100, 2); + doubleList[3] = Math.Round(((double)numList[6] / (double)numList[0]) * 100, 2); + numList[12] = numList[12] + pgjy; + + + + + } + + private void QualifiedTrendBuilindData(EnumerableRowCollection DayList, ref List list, List numList, List doubleList) + { + //下线数 + int XX_num = DayList.Where(p => "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //抛光数 + //int PG_num = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("抛光") && "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + var pg_1 = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("抛光") && "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).ToList(); + var pg_2 = DayList.Where(p => p.ItemArray[6] != null && "2".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).ToList(); + IEnumerable pg_List = pg_1.Intersect(pg_2); + int PG_num = pg_List.Count(); + //一次合格数 + int YCHG_num = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("合格") && "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + //抛光合格 + var pghg_1 = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("抛光") && "1".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).ToList(); + var pghg_2 = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("合格") && "2".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).ToList(); + IEnumerable pghg_List = pghg_1.Intersect(pghg_2); + int pghg = pghg_List.Count(); + //var pghg = DayList.Where(t => t.ItemArray[3].ToString() == "下线二检 抛光区") + // .GroupBy(p => p.ItemArray[1]) + // .Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + // .Where(p => p.ItemArray[6].ToString().Contains("合格")).Count(); + //返修合格数 + var fx = DayList.Where(t => t.ItemArray[6] != null && t.ItemArray[3].ToString().Contains("点修补") && t.ItemArray[6].ToString().Contains("合格")).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + //合格数 + var hg = YCHG_num + pghg + fx; + //var hg = DayList.GroupBy(p => p.ItemArray[1]) + // .Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + // .Where(p => p.ItemArray[6].ToString().Contains("合格")).Count(); + //报废数 + //var bf = DayList.GroupBy(p => p.ItemArray[1]) + // .Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + // .Where(p => p.ItemArray[6].ToString().Contains("报废")).Count(); + var bf = DayList.Where(t => t.ItemArray[6] != null && t.ItemArray[6].ToString().Contains("报废")).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + var YC_bf = DayList.Where(t => t.ItemArray[6] != null && t.ItemArray[6].ToString().Contains("报废") && "1".Equals(t.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + //点修补数 + //var dxb = DayList.Where(t => t.ItemArray[3].ToString() == "点修补 抛光区").GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + var dxb = DayList.Where(p => p.ItemArray[6] != null && p.ItemArray[6].ToString().Contains("抛光") && "2".Equals(p.ItemArray[13])).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + + //一次合格率 + var yc_hg_L = Math.Round(((double)YCHG_num / (double)XX_num) * 100, 2); + //抛光合格率 + var pg_hg_L = Math.Round(((double)pghg / (double)PG_num) * 100, 2); + //总合格率 + var all_hg_L = Math.Round(((double)hg / (double)XX_num) * 100, 2); + //报废率 + var pf_L = Math.Round(((double)bf / (double)XX_num) * 100, 2); + //抛光结余 + //var pgjy = XX_num - hg - bf - dxb; + var pgjy = XX_num - YCHG_num - YC_bf - PG_num; + + list.Add(XX_num.ToString()); + list.Add(PG_num.ToString()); + list.Add(YCHG_num.ToString()); + list.Add(pghg.ToString()); + list.Add(hg.ToString()); + list.Add(fx.ToString()); + list.Add(bf.ToString()); + list.Add(dxb.ToString()); + list.Add(yc_hg_L.ToString() + "%"); + list.Add(pg_hg_L.ToString() + "%"); + list.Add(all_hg_L.ToString() + "%"); + list.Add(pf_L.ToString() + "%"); + list.Add(pgjy.ToString()); + + + numList[0] = numList[0] + XX_num; + numList[1] = numList[1] + PG_num; + numList[2] = numList[2] + YCHG_num; + numList[3] = numList[3] + pghg; + numList[4] = numList[4] + hg; + numList[5] = numList[5] + fx; + numList[6] = numList[6] + bf; + numList[7] = numList[7] + dxb; + doubleList[0] = Math.Round(((double)numList[2] / (double)numList[0]) * 100, 2); + doubleList[1] = Math.Round(((double)numList[3] / (double)numList[1]) * 100, 2); + doubleList[2] = Math.Round(((double)numList[4] / (double)numList[0]) * 100, 2); + doubleList[3] = Math.Round(((double)numList[6] / (double)numList[0]) * 100, 2); + numList[12] = numList[12] + pgjy; + + } + #endregion + + #region 喷涂报废统计 + public string SearchPlatingScrap(string StartTime, string EndTime, string side,string Project,string color) + { + try + { + + StringBuilder sb = new StringBuilder(100); + sb.Append(""); + + + DataTable dt = dal.SearchByResult_1(StartTime, EndTime, side, Project, color); + if (dt != null && dt.Rows.Count > 0) + { + + var infoAll = dt.AsEnumerable().Where(p => p.ItemArray[13].ToString().Equals("1")).ToList(); + //.Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + //.Where(p => p.ItemArray[6].ToString().Contains("报废")).ToList(); + + //var infoTotal = dt.AsEnumerable().Where(p => p.ItemArray[13].ToString().Equals("1")).ToList(); + + var BFTotal = dt.AsEnumerable() + //.Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + .Where(p => p.ItemArray[6].ToString().Contains("报废")).ToList(); + + + //合格数 + var ok_Total = dt.AsEnumerable().Where(p => p.ItemArray[6].ToString().Contains("合格")).ToList(); + + + + //获取全部产品+对应的颜色 + Dictionary> col_Dictionary = new Dictionary>(); + var info_product = infoAll.GroupBy(p => p.ItemArray[15]).Select(p => p.Key).ToList(); + foreach (var item in info_product) + { + col_Dictionary.Add(item.ToString(), + infoAll.Where(p => p.ItemArray[15].ToString().Equals(item)) + .GroupBy(p => p.ItemArray[14]) + .Select(p => (string)p.Key).ToList()); + } + + //获取全部缺陷 + List damnPositionList = new List(); + foreach (var item in BFTotal) + { + if (item.ItemArray[9] == null || String.IsNullOrWhiteSpace(item.ItemArray[9].ToString())) + { + continue; + } + + string[] sArray = item.ItemArray[9].ToString().Split(new char[1] { ';' }, StringSplitOptions.RemoveEmptyEntries); + if (sArray.Length > 0) + { + foreach (var damn in sArray) + { + if (!damnPositionList.Contains(damn)) + { + damnPositionList.Add(damn); + } + } + } + } + Dictionary total_Dictionary = new Dictionary(); + + foreach (var item in damnPositionList) + { + total_Dictionary.Add(item, BFTotal.Where(p => p.ItemArray[9].ToString().Contains(item)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count()); + } + + var info_d = total_Dictionary.OrderByDescending(p => p.Value).ToList(); + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in info_d) + { + sb.Append(""); + } + sb.Append(""); + + foreach (var item in col_Dictionary) + { + sb.Append(""); + sb.Append(""); + + //var p_all = infoAll.Where(p => p.ItemArray[15].ToString().Equals(item.Key)).Count(); + var p_all = ok_Total.Where(p => p.ItemArray[15].ToString().Equals(item.Key)) + .GroupBy(p => p.ItemArray[1]) + .Select(p => p.Key).Count(); + + sb.Append("");//总数 + foreach (var item2 in info_d) + { + + var c_num = BFTotal.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[9].ToString().Contains(item2.Key)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pf_L = Math.Round(((double)c_num / (double)p_all) * 100, 2); + + sb.Append("");//各缺陷总数 + + } + sb.Append(""); + + + foreach (var item3 in item.Value) + { + sb.Append(""); + sb.Append("");//颜色 + //var c_all = infoAll.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3)).Count(); + var c_all = ok_Total.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + sb.Append("");//总数 + foreach (var item2 in info_d) + { + var c_num = BFTotal.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3) && p.ItemArray[9].ToString().Contains(item2.Key)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pf_L = Math.Round(((double)c_num / (double)c_all) * 100, 2); + if (c_num > 0) + { + sb.Append(""); + } + else + { + sb.Append(""); + } + } + sb.Append(""); + } + + } + + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in info_d) + { + //var pf_L = Math.Round(((double)item.Value / (double)infoAll.GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count()) * 100, 2); + sb.Append(""); + } + sb.Append(""); + + + } + + + sb.Append("
总数" + item.Key + "
" + item.Key + "" + p_all + "" + c_num + "
" + item3 + "" + c_all + "" + c_num + "
总计" + infoAll.GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count() + "" + item.Value + "
"); + + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + public List> SearchPlatingScrapForExcel(string StartTime, string EndTime, string side,string Project,string color) + { + try + { + List> list = new List>(); + + + DataTable dt = dal.SearchByResult_1(StartTime, EndTime, side,Project,color); + + if (dt != null && dt.Rows.Count > 0) + { + + //var infoAll = dt.AsEnumerable().GroupBy(p => p.ItemArray[1]) + // .Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + // .Where(p => p.ItemArray[6].ToString().Contains("报废")).ToList(); + + + var infoAll = dt.AsEnumerable().Where(p => p.ItemArray[13].ToString().Equals("1")).ToList(); + //.Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + //.Where(p => p.ItemArray[6].ToString().Contains("报废")).ToList(); + + //var infoTotal = dt.AsEnumerable().Where(p => p.ItemArray[13].ToString().Equals("1")).ToList(); + + var BFTotal = dt.AsEnumerable() + //.Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + .Where(p => p.ItemArray[6].ToString().Contains("报废")).ToList(); + + + //合格数 + var ok_Total = dt.AsEnumerable().Where(p => p.ItemArray[6].ToString().Contains("合格")).ToList(); + + + + //获取全部产品+对应的颜色 + Dictionary> col_Dictionary = new Dictionary>(); + var info_product = infoAll.GroupBy(p => p.ItemArray[15]).Select(p => p.Key).ToList(); + foreach (var item in info_product) + { + col_Dictionary.Add(item.ToString(), + infoAll.Where(p => p.ItemArray[15].ToString().Equals(item)) + .GroupBy(p => p.ItemArray[14]) + .Select(p => (string)p.Key).ToList()); + } + + //获取全部缺陷 + List damnPositionList = new List(); + foreach (var item in infoAll) + { + if (item.ItemArray[9] == null || String.IsNullOrWhiteSpace(item.ItemArray[9].ToString())) + { + continue; + } + + string[] sArray = item.ItemArray[9].ToString().Split(new char[1] { ';' }, StringSplitOptions.RemoveEmptyEntries); + if (sArray.Length > 0) + { + foreach (var damn in sArray) + { + if (!damnPositionList.Contains(damn)) + { + damnPositionList.Add(damn); + } + } + } + } + Dictionary total_Dictionary = new Dictionary(); + + foreach (var item in damnPositionList) + { + total_Dictionary.Add(item, BFTotal.Where(p => p.ItemArray[9].ToString().Contains(item)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count()); + } + + var info_d = total_Dictionary.OrderByDescending(p => p.Value).ToList(); + + List sonList = new List(); + + sonList.Add(""); + sonList.Add("总数"); + foreach (var item in info_d) + { + sonList.Add(item.Key); + + } + list.Add(sonList); + + foreach (var item in col_Dictionary) + { + List colorList = new List(); + + colorList.Add(item.Key); + var p_all = ok_Total.Where(p => p.ItemArray[15].ToString().Equals(item.Key)) + .GroupBy(p => p.ItemArray[1]) + .Select(p => p.Key).Count(); + colorList.Add(p_all.ToString()); + + foreach (var item2 in info_d) + { + var c_num = BFTotal.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[9].ToString().Contains(item2.Key)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pf_L = Math.Round(((double)c_num / (double)p_all) * 100, 2); + + colorList.Add(c_num.ToString()); + } + list.Add(colorList); + + + + + foreach (var item3 in item.Value) + { + List colorList2 = new List(); + colorList2.Add(item3); + //sb.Append(""); + //sb.Append("" + item3 + "");//颜色 + var c_all = ok_Total.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + colorList2.Add(c_all.ToString()); + //sb.Append("" + c_all + "");//总数 + foreach (var item2 in info_d) + { + var c_num = BFTotal.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3) && p.ItemArray[9].ToString().Contains(item2.Key)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pf_L = Math.Round(((double)c_num / (double)c_all) * 100, 2); + //sb.Append("" + c_num + "(" + pf_L + "%)");//各缺陷 + colorList2.Add(c_num.ToString()); + + if (c_num > 0) + { + colorList2.Add(c_num.ToString()); + } + else + { + colorList2.Add(""); + } + + + } + list.Add(colorList2); + } + + } + + List sonList2 = new List(); + sonList2.Add("总计"); + sonList2.Add(infoAll.GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count().ToString()); + //sb.Append(""); + //sb.Append("总计"); + //sb.Append("" + infoAll.Count + ""); + foreach (var item in info_d) + { + //var pf_L = Math.Round(((double)item.Value / (double)infoAll.Count) * 100, 2); + //sb.Append("" + item.Value + "(" + pf_L + "%)"); + sonList2.Add(item.Value.ToString()); + } + //sb.Append(""); + list.Add(sonList2); + + } + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + #endregion + + #region 喷涂抛光统计 + public string SearchPlatingPolish(string StartTime, string EndTime, string side,string Project,string color) + { + try + { + + StringBuilder sb = new StringBuilder(100); + sb.Append(""); + + DataTable dt = dal.SearchByResult_1(StartTime, EndTime, side, Project,color); + + if (dt != null && dt.Rows.Count > 0) + { + + //var infoAll = dt.AsEnumerable().GroupBy(p => p.ItemArray[1]) + // .Select(s => s.OrderByDescending(x => x.ItemArray[12]).FirstOrDefault()) + // .Where(p => p.ItemArray[6].ToString().Contains("抛光")).ToList(); + + //var infoTotal = dt.AsEnumerable().Where(p => p.ItemArray[13].ToString().Equals("1")).ToList(); + + var infoAll = dt.AsEnumerable().Where(p => p.ItemArray[13].ToString().Equals("1")).ToList(); + + var BFTotal = dt.AsEnumerable() + .Where(p => p.ItemArray[6].ToString().Contains("抛光")).ToList(); + + + //合格数 + var ok_Total = dt.AsEnumerable().Where(p => p.ItemArray[6].ToString().Contains("合格")).ToList(); + + + + + //获取全部产品+对应的颜色 + Dictionary> col_Dictionary = new Dictionary>(); + var info_product = infoAll.GroupBy(p => p.ItemArray[15]).Select(p => p.Key).ToList(); + foreach (var item in info_product) + { + col_Dictionary.Add(item.ToString(), + infoAll.Where(p => p.ItemArray[15].ToString().Equals(item)) + .GroupBy(p => p.ItemArray[14]) + .Select(p => (string)p.Key).ToList()); + } + + //获取全部缺陷 + List damnPositionList = new List(); + foreach (var item in infoAll) + { + if (item.ItemArray[9] == null || String.IsNullOrWhiteSpace(item.ItemArray[9].ToString())) + { + continue; + } + + string[] sArray = item.ItemArray[9].ToString().Split(new char[1] { ';' }, StringSplitOptions.RemoveEmptyEntries); + if (sArray.Length > 0) + { + foreach (var damn in sArray) + { + if (!damnPositionList.Contains(damn)) + { + damnPositionList.Add(damn); + } + } + } + } + Dictionary total_Dictionary = new Dictionary(); + + foreach (var item in damnPositionList) + { + total_Dictionary.Add(item, BFTotal.Where(p => p.ItemArray[9].ToString().Contains(item)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count()); + } + + var info_d = total_Dictionary.OrderByDescending(p => p.Value).ToList(); + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in info_d) + { + sb.Append(""); + } + sb.Append(""); + + foreach (var item in col_Dictionary) + { + sb.Append(""); + sb.Append("");//产品 + var p_all = ok_Total.Where(p => p.ItemArray[15].ToString().Equals(item.Key)) + .GroupBy(p => p.ItemArray[1]) + .Select(p => p.Key).Count(); + sb.Append("");//总数 + + foreach (var item2 in info_d) + { + var c_num = BFTotal.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[9].ToString().Contains(item2.Key)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pf_L = Math.Round(((double)c_num / (double)p_all) * 100, 2); + + sb.Append("");//各缺陷总数 + } + sb.Append(""); + + + foreach (var item3 in item.Value) + { + sb.Append(""); + sb.Append("");//颜色 + //var c_all = infoAll.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3)).Count(); + var c_all = ok_Total.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + sb.Append("");//总数 + foreach (var item2 in info_d) + { + var c_num = BFTotal.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3) && p.ItemArray[9].ToString().Contains(item2.Key)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pf_L = Math.Round(((double)c_num / (double)c_all) * 100, 2); + if (c_num > 0) + { + sb.Append(""); + } + else { + sb.Append(""); + } + + } + sb.Append(""); + } + + } + + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in info_d) + { + //var pf_L = Math.Round(((double)item.Value / (double)infoAll.Count) * 100, 2); + sb.Append(""); + } + sb.Append(""); + + + } + + + sb.Append("
总数" + item.Key + "
" + item.Key + "" + p_all + "" + c_num + "
" + item3 + "" + c_all + "" + c_num + "
总计" + infoAll.GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count() + "" + item.Value + "
"); + + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + public List> SearchPlatingPolishForExcel(string StartTime, string EndTime, string side,string Project,string color) + { + try + { + List> list = new List>(); + + + DataTable dt = dal.SearchByResult_1(StartTime, EndTime, side, Project, color); + + if (dt != null && dt.Rows.Count > 0) + { + + var infoAll = dt.AsEnumerable().Where(p => p.ItemArray[13].ToString().Equals("1")).ToList(); + + var BFTotal = dt.AsEnumerable() + .Where(p => p.ItemArray[6].ToString().Contains("抛光")).ToList(); + + + //合格数 + var ok_Total = dt.AsEnumerable().Where(p => p.ItemArray[6].ToString().Contains("合格")).ToList(); + + + //获取全部产品+对应的颜色 + Dictionary> col_Dictionary = new Dictionary>(); + var info_product = infoAll.GroupBy(p => p.ItemArray[15]).Select(p => p.Key).ToList(); + foreach (var item in info_product) + { + col_Dictionary.Add(item.ToString(), + infoAll.Where(p => p.ItemArray[15].ToString().Equals(item)) + .GroupBy(p => p.ItemArray[14]) + .Select(p => (string)p.Key).ToList()); + } + + //获取全部缺陷 + List damnPositionList = new List(); + foreach (var item in infoAll) + { + if (item.ItemArray[9] == null || String.IsNullOrWhiteSpace(item.ItemArray[9].ToString())) + { + continue; + } + + string[] sArray = item.ItemArray[9].ToString().Split(new char[1] { ';' }, StringSplitOptions.RemoveEmptyEntries); + if (sArray.Length > 0) + { + foreach (var damn in sArray) + { + if (!damnPositionList.Contains(damn)) + { + damnPositionList.Add(damn); + } + } + } + } + Dictionary total_Dictionary = new Dictionary(); + + foreach (var item in damnPositionList) + { + total_Dictionary.Add(item, BFTotal.Where(p => p.ItemArray[9].ToString().Contains(item)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count()); + } + + var info_d = total_Dictionary.OrderByDescending(p => p.Value).ToList(); + + List sonList = new List(); + + sonList.Add(""); + sonList.Add("总数"); + foreach (var item in info_d) + { + sonList.Add(item.Key); + + } + list.Add(sonList); + + foreach (var item in col_Dictionary) + { + List colorList = new List(); + + colorList.Add(item.Key); + var p_all = ok_Total.Where(p => p.ItemArray[15].ToString().Equals(item.Key)) + .GroupBy(p => p.ItemArray[1]) + .Select(p => p.Key).Count(); + colorList.Add(p_all.ToString()); + + foreach (var item2 in info_d) + { + var c_num = BFTotal.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[9].ToString().Contains(item2.Key)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pf_L = Math.Round(((double)c_num / (double)p_all) * 100, 2); + + colorList.Add(c_num.ToString()); + } + list.Add(colorList); + + + + + foreach (var item3 in item.Value) + { + List colorList2 = new List(); + colorList2.Add(item3); + //sb.Append(""); + //sb.Append("" + item3 + "");//颜色 + var c_all = ok_Total.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + colorList2.Add(c_all.ToString()); + //sb.Append("" + c_all + "");//总数 + foreach (var item2 in info_d) + { + var c_num = infoAll.Where(p => p.ItemArray[15].ToString().Equals(item.Key) && p.ItemArray[14].ToString().Equals(item3) && p.ItemArray[9].ToString().Contains(item2.Key)).GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count(); + //var pf_L = Math.Round(((double)c_num / (double)c_all) * 100, 2); + //sb.Append("" + c_num + "(" + pf_L + "%)");//各缺陷 + if (c_num > 0) + { + colorList2.Add(c_num.ToString()); + } + else + { + colorList2.Add(""); + } + } + list.Add(colorList2); + } + + } + + List sonList2 = new List(); + sonList2.Add("总计"); + sonList2.Add(infoAll.GroupBy(p => p.ItemArray[1]).Select(p => p.Key).Count().ToString()); + //sb.Append(""); + //sb.Append("总计"); + //sb.Append("" + infoAll.Count + ""); + foreach (var item in info_d) + { + var pf_L = Math.Round(((double)item.Value / (double)infoAll.Count) * 100, 2); + //sb.Append("" + item.Value + "(" + pf_L + "%)"); + sonList2.Add(item.Value.ToString()); + } + //sb.Append(""); + list.Add(sonList2); + + } + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + + #endregion + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/GetNewTasksBLL.cs b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/GetNewTasksBLL.cs new file mode 100644 index 0000000..998dca7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/GetNewTasksBLL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.ExchangeCenter; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.ExchangeCenter +{ + public class GetNewTasksBLL + { + public bool AddInfo(GetNewTasksModel md) + { + GetNewTasksDAL da = new GetNewTasksDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/PartMstrBLL.cs b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/PartMstrBLL.cs new file mode 100644 index 0000000..23d70aa --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/PartMstrBLL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.ExchangeCenter; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.ExchangeCenter +{ + public class PartMstrBLL + { + public bool AddInfo(PartMstrModel md) + { + PartMstrDAL da = new PartMstrDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/PartRecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/PartRecordBLL.cs new file mode 100644 index 0000000..ec22766 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/PartRecordBLL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.BasicInfo; +using MESClassLibrary.DAL.ExchangeCenter; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.ExchangeCenter +{ + public class PartRecordBLL + { + public bool AddInfo(PartRecordModel md) + { + PartRecordDAL dal = new PartRecordDAL(); + try + { + return dal.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/TESBomBLL.cs b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/TESBomBLL.cs new file mode 100644 index 0000000..543c48c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/TESBomBLL.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.ExchangeCenter; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.ExchangeCenter +{ + public class TESBomBLL + { + public bool AddInfo(TESBomModel md) + { + TESBomDAL da = new TESBomDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable Search() + { + TESBomDAL da=new TESBomDAL(); + try + { + return da.Search(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool updateFlag(string TaskID) + { + TESBomDAL da = new TESBomDAL(); + try + { + return da.UpdateFlag(TaskID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/TESPartDetBLL.cs b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/TESPartDetBLL.cs new file mode 100644 index 0000000..c8cb33f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/ExchangeCenter/TESPartDetBLL.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.ExchangeCenter; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.ExchangeCenter +{ + public class TESPartDetBLL + { + public bool AddInfo(TESPartDetModel md) + { + TESPartDetDAL da = new TESPartDetDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Hybrid/HybridPlanBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Hybrid/HybridPlanBLL.cs new file mode 100644 index 0000000..fa033f6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Hybrid/HybridPlanBLL.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.PunchAndWeld; +using MESClassLibrary.DAL.Hybrid; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Hybrid +{ + public class HybridPlanBLL + { + HybridPlanDAL da = new HybridPlanDAL(); + + public DataTable SearchAllPlan() + { + try + { + return da.SearchAllPlan(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(HybridPlanModel md) + { + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(HybridPlanModel md) + { + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo(HybridPlanModel md) + { + try + { + return da.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateQty(HybridPlanModel md) + { + try + { + return da.UpdateQty(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Hybrid/HybridScanRecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Hybrid/HybridScanRecordBLL.cs new file mode 100644 index 0000000..fac3b14 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Hybrid/HybridScanRecordBLL.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.Hybrid; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Hybrid +{ + public class HybridScanRecordBLL + { + HybridScanRecordDAL da=new HybridScanRecordDAL(); + + public DataTable searchInfo(string barCode) + { + try + { + return da.searchInfo(barCode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(HybridScanRecordModel md) + { + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Injection/DownReasonBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Injection/DownReasonBLL.cs new file mode 100644 index 0000000..85f8703 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Injection/DownReasonBLL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Injection; + +namespace MESClassLibrary.BLL.Injection +{ + public class DownReasonBLL + { + DownReasonDAL da=new DownReasonDAL(); + public DataTable SearchReason() + { + try + { + return da.SearchReason(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Injection/InjectionDownRecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Injection/InjectionDownRecordBLL.cs new file mode 100644 index 0000000..3707a93 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Injection/InjectionDownRecordBLL.cs @@ -0,0 +1,891 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Injection; +using MESClassLibrary.DAL.painting; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Injection +{ + public class InjectionDownRecordBLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + InjectionDownRecordDAL dal = new InjectionDownRecordDAL(); + public bool AddInfo(InjectionDownRecordModel md) + { + InjectionDownRecordDAL da = new InjectionDownRecordDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(InjectionDownRecordModel md) + { + InjectionDownRecordDAL da = new InjectionDownRecordDAL(); + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + + + #region web用方法 + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string StationID) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime); + DateTime etime = Convert.ToDateTime(EndTime); + + List list = ef.tb_Injection_DownRecord.Where(p => p.StartTime >= stime && p.EndTime <= etime && p.DownTime >= 60).ToList(); + + if (!String.IsNullOrEmpty(StationID)) + { + list = list.Where(p => p.StationID.Equals(StationID)).ToList(); + } + + List modelList = new List(); + if (list.Count > 0) + { + #region 联查 + BasicBLL machine_db = new BasicBLL(); + var machine_list = machine_db.SearchAllInfo(); + + BasicBLL DownReason_db = new BasicBLL(); + var DownReason_list = DownReason_db.SearchAllInfo(); + + BasicBLL DownType_db = new BasicBLL(); + var DownType_list = DownType_db.SearchAllInfo(); + + foreach (var item in list) + { + Injection_DownRecordModel dm = Tool.Mapper(item); + + var machine_info = machine_list.FirstOrDefault(p => p.StationID == item.StationID); + if (machine_info != null) + { + dm.StationNo = machine_info.StationNo; + } + + var DownReason = DownReason_list.FirstOrDefault(p => p.ID == item.DownReason); + if (DownReason != null) + { + dm.DownReasonName = DownReason.Reason; + } + var DownType = DownType_list.FirstOrDefault(p => p.ID == item.DownType); + if (DownType != null) + { + dm.DownTypeName = DownType.DownTypeName; + } + + modelList.Add(dm); + } + #endregion + + total = modelList.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + modelList = modelList.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public bool UpdateInfo(tb_Injection_DownRecord md) + { + try + { + + //初始化要更新的字段 + string[] proNames = new string[8]; + proNames[0] = "StationID"; + proNames[1] = "DownType"; + proNames[2] = "DownReason"; + proNames[3] = "Des"; + proNames[4] = "StartTime"; + proNames[5] = "EndTime"; + proNames[6] = "DownTime"; + proNames[7] = "Remark1"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string GetComboboxDataByDownType() + { + try + { + string jsonStr = "[]"; + var list = ef.tb_Injection_DownType.ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + } + + public string GetComboboxDataByDownReason() + { + try + { + string jsonStr = "[]"; + var list = ef.tb_Inhection_DownReason.ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + + } + + public bool UpdateData(List list, string DownRecordID) + { + try + { + foreach (var item in list) + { + tb_Injection_DownRecord md = new tb_Injection_DownRecord(); + md.ID = Guid.NewGuid().ToString(); + md.StationID = item.StationID; + //md.PlanID = item.PlanID; + md.StartTime = Convert.ToDateTime(item.StartTime); + md.EndTime = Convert.ToDateTime(item.EndTime); + TimeSpan ts = md.EndTime.Value.Subtract(md.StartTime.Value); + md.DownTime = (int)ts.TotalSeconds; + md.DownType = item.DownType; + md.DownReason = item.DownReason; + md.Des = ""; + md.Remark1 = item.Remark1; + md.Remark2 = "2"; + db.AddInfo(md); + } + + var info = ef.tb_Injection_DownRecord.FirstOrDefault(p => p.ID == DownRecordID); + info.Remark2 = "1"; + ef.SaveChanges(); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + #endregion + + #region 报表 + + //每日平均换膜次数 + public string SearchDay(string StartTime) + { + try + { + DateTime sTime = Convert.ToDateTime(StartTime); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(sTime.Year, sTime.Month); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-01 08:00:00").ToString("yyyy-MM-dd HH:mm:ss"), Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + days.ToString() + " 07:59:59").AddDays(1).ToString("yyyy-MM-dd HH:mm:ss")); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List Day_totalList = new List(); + List Night_totalList = new List(); + + for (int i = 0; i < days; i++) + { + titleList.Add((i + 1).ToString()); + + DateTime dtime = Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + (i + 1)); + + //白班 + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(5) >= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 08:00:00.000") && + myRow.Field(6) <= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 19:59:59.999") + select myRow; + if (DayList.Count() > 0) + { + int Day_int = DayList.Sum(p => Convert.ToInt32(p.ItemArray[7])); + Day_totalList.Add(Math.Round((Day_int / (double)DayList.Count()) / 60, 2)); + } + else + { + Day_totalList.Add(0); + } + + + //夜班 + var NightList = from myRowNight in dt.AsEnumerable() + where myRowNight.Field(5) >= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 20:00:00.000") && + myRowNight.Field(6) <= Convert.ToDateTime(dtime.AddDays(1).ToString("yyyy-MM-dd") + " 07:59:59.999") + select myRowNight; + if (NightList.Count() > 0) + { + int Night_int = NightList.Sum(p => Convert.ToInt32(p.ItemArray[7])); + Night_totalList.Add(Math.Round((Night_int / (double)NightList.Count()) / 60, 2)); + } + else + { + Night_totalList.Add(0); + } + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in titleList) + { + sb.Append(""); + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in Day_totalList) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in Night_totalList) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append("
班次/日期" + item + "
白班" + item + "
夜班" + item + "
"); + } + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + //每日平均换膜次数导出excel + public List> SearchDayForExcel(string StartTime) + { + try + { + List> list = new List>(); + + DateTime sTime = Convert.ToDateTime(StartTime); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(sTime.Year, sTime.Month); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-01 08:00:00").ToString("yyyy-MM-dd HH:mm:ss"), Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + days.ToString() + " 07:59:59").AddDays(1).ToString("yyyy-MM-dd HH:mm:ss")); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List Day_totalList = new List(); + List Night_totalList = new List(); + + for (int i = 0; i < days; i++) + { + titleList.Add((i + 1).ToString()); + + DateTime dtime = Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + (i + 1)); + + //白班 + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(5) >= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 08:00:00.000") && + myRow.Field(6) <= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 19:59:59.999") + select myRow; + if (DayList.Count() > 0) + { + int Day_int = DayList.Sum(p => Convert.ToInt32(p.ItemArray[7])); + Day_totalList.Add(Math.Round((Day_int / (double)DayList.Count()) / 60, 2)); + } + else + { + Day_totalList.Add(0); + } + + + //夜班 + var NightList = from myRowNight in dt.AsEnumerable() + where myRowNight.Field(5) >= Convert.ToDateTime(dtime.ToString("yyyy-MM-dd") + " 20:00:00.000") && + myRowNight.Field(6) <= Convert.ToDateTime(dtime.AddDays(1).ToString("yyyy-MM-dd") + " 07:59:59.999") + select myRowNight; + if (NightList.Count() > 0) + { + int Night_int = NightList.Sum(p => Convert.ToInt32(p.ItemArray[7])); + Night_totalList.Add(Math.Round((Night_int / (double)NightList.Count()) / 60, 2)); + } + else + { + Night_totalList.Add(0); + } + } + + List title_ = new List(); + title_.Add("班次/日期"); + title_.AddRange(titleList); + list.Add(title_); + + List total_ = new List(); + total_.Add("白班"); + foreach (var item in Day_totalList) + { + total_.Add(item.ToString()); + } + list.Add(total_); + + List No_total_ = new List(); + No_total_.Add("夜班"); + foreach (var item in Night_totalList) + { + No_total_.Add(item.ToString()); + } + list.Add(No_total_); + + + + } + + + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + //每月平均换膜次数 + public string SearchMonth(string StartTime) + { + try + { + + DateTime sTime = Convert.ToDateTime(StartTime); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + List titleList = new List(); + List Day_totalList = new List(); + + for (int i = 0; i < 12; i++) + { + titleList.Add((i + 1) + "月"); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(5) >= Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01") && + myRow.Field(6) <= Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days) + select myRow; + + if (DayList.Count() > 0) + { + int Day_int = DayList.Sum(p => Convert.ToInt32(p.ItemArray[7])); + Day_totalList.Add(Math.Round((Day_int / (double)DayList.Count()) / 60, 2)); + } + else + { + Day_totalList.Add(0); + } + } + + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in titleList) + { + sb.Append(""); + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in Day_totalList) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append("
月份" + item + "
平均换膜时间" + item + "
"); + } + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + public List> SearchMonthForExcel(string StartTime) + { + try + { + List> list = new List>(); + + DateTime sTime = Convert.ToDateTime(StartTime); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + List titleList = new List(); + List Day_totalList = new List(); + + for (int i = 0; i < 12; i++) + { + titleList.Add((i + 1) + "月"); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(5) >= Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01") && + myRow.Field(6) <= Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days) + select myRow; + + if (DayList.Count() > 0) + { + int Day_int = DayList.Sum(p => Convert.ToInt32(p.ItemArray[7])); + Day_totalList.Add(Math.Round((Day_int / (double)DayList.Count()) / 60, 2)); + } + else + { + Day_totalList.Add(0); + } + } + + List title_ = new List(); + title_.Add("月份"); + title_.AddRange(titleList); + list.Add(title_); + + List total_ = new List(); + total_.Add("平均换膜时间"); + foreach (var item in Day_totalList) + { + total_.Add(item.ToString()); + } + list.Add(total_); + } + + + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + //每月换膜次数 + public string SearchMonthTimes(string StartTime) + { + try + { + + DateTime sTime = Convert.ToDateTime(StartTime); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + List titleList = new List(); + List Day_totalList = new List(); + + for (int i = 0; i < 12; i++) + { + titleList.Add((i + 1) + "月"); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(5) >= Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01") && + myRow.Field(6) <= Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days) + select myRow; + + Day_totalList.Add(DayList.Count()); + } + + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in titleList) + { + sb.Append(""); + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in Day_totalList) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append("
月份" + item + "
换模次数" + item + "
"); + } + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + public List> SearchMonthTimesForExcel(string StartTime) + { + try + { + List> list = new List>(); + + DateTime sTime = Convert.ToDateTime(StartTime); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + List titleList = new List(); + List Day_totalList = new List(); + + for (int i = 0; i < 12; i++) + { + titleList.Add((i + 1) + "月"); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(5) >= Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01") && + myRow.Field(6) <= Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days) + select myRow; + + Day_totalList.Add(DayList.Count()); + } + + + List title_ = new List(); + title_.Add("月份"); + title_.AddRange(titleList); + list.Add(title_); + + List total_ = new List(); + total_.Add("换模次数"); + foreach (var item in Day_totalList) + { + total_.Add(item.ToString()); + } + list.Add(total_); + } + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + //换膜记录单 + public string SearchChangeRecord(string StartTime, string EndTime, string ModelId) + { + StringBuilder sb = new StringBuilder(100); + DataTable dt = dal.SearchChangeRecord(StartTime, EndTime, ModelId); + + + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + + for (int i = 0; i < dt.Rows.Count; i++) + { + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + + sb.Append(""); + } + + sb.Append("
机台号日期起始时间总计时间累计合模数生产合模数日期章换膜人
" + dt.Rows[i]["StationNo"] + "" + Convert.ToDateTime(dt.Rows[i]["PrintDate"]).ToString("yyyy-MM-dd") + "" + dt.Rows[i]["StartTime"] + "" + Math.Round((Convert.ToDouble(dt.Rows[i]["DownTime"]) / 60), 2) + "" + dt.Rows[i]["ModelSumCount"] + "" + dt.Rows[i]["ModelPrintCount"] + "" + Convert.ToDateTime(dt.Rows[i]["PrintDate"]).Month + "月" + dt.Rows[i]["remark1"] + "
"); + + + return sb.ToString(); + } + public List> SearchChangeRecordForExcel(string StartTime, string EndTime, string ModelId) + { + try + { + List> list = new List>(); + + DataTable dt = dal.SearchChangeRecord(StartTime, EndTime, ModelId); + + List titleList = new List(); + titleList.Add("机台号"); + titleList.Add("日期"); + titleList.Add("起始时间"); + titleList.Add("总计时间"); + titleList.Add("累计合模数"); + titleList.Add("生产合模数"); + titleList.Add("日期章"); + titleList.Add("换膜人"); + list.Add(titleList); + + for (int i = 0; i < dt.Rows.Count; i++) + { + List total_ = new List(); + total_.Add(dt.Rows[i]["StationNo"].ToString()); + total_.Add(Convert.ToDateTime(dt.Rows[i]["PrintDate"]).ToString("yyyy-MM-dd")); + total_.Add(dt.Rows[i]["StartTime"].ToString()); + total_.Add(Math.Round((Convert.ToDouble(dt.Rows[i]["DownTime"]) / 60), 2).ToString()); + total_.Add(dt.Rows[i]["ModelSumCount"].ToString()); + total_.Add(dt.Rows[i]["ModelPrintCount"].ToString()); + total_.Add(Convert.ToDateTime(dt.Rows[i]["PrintDate"]).Month + "月"); + total_.Add(dt.Rows[i]["remark1"].ToString()); + list.Add(total_); + } + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + //维修记录 + public string SearchRepairRecord(string StartTime, string EndTime) + { + try + { + + DateTime sTime = Convert.ToDateTime(StartTime); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchRepaorByTime(StartTime, EndTime); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + if (dt != null && dt.Rows.Count > 0) + { + for (int i = 0; i < dt.Rows.Count; i++) + { + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + } + } + sb.Append("
序号日期班次设备名称故障现象维修时间故障原因维修内容及更换配件维修人
" + (i + 1) + "" + Convert.ToDateTime(dt.Rows[i]["StartTime"]).ToString("yyyy-MM-dd") + "" + CheckWorkClass(dt.Rows[i]["StartTime"].ToString()) + "" + dt.Rows[i]["StationNo"] + "" + dt.Rows[i]["Des"] + "" + dt.Rows[i]["DownTime"] + "" + dt.Rows[i]["Remark2"] + "" + dt.Rows[i]["Remark3"] + "" + dt.Rows[i]["Remark1"] + "
"); + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public List> SearchRepairRecordForExcel(string StartTime, string EndTime) + { + try + { + List> list = new List>(); + + DataTable dt = dal.SearchRepaorByTime(StartTime, EndTime); + + + List titleList = new List(); + titleList.Add("序号"); + titleList.Add("日期"); + titleList.Add("班次"); + titleList.Add("设备名称"); + titleList.Add("故障现象"); + titleList.Add("维修时间"); + titleList.Add("故障原因"); + titleList.Add("维修内容及更换配件"); + titleList.Add("维修人"); + list.Add(titleList); + + for (int i = 0; i < dt.Rows.Count; i++) + { + List total_ = new List(); + total_.Add((i + 1).ToString()); + total_.Add(Convert.ToDateTime(dt.Rows[i]["StartTime"]).ToString("yyyy-MM-dd")); + total_.Add(CheckWorkClass(dt.Rows[i]["StartTime"].ToString())); + total_.Add(dt.Rows[i]["StationNo"].ToString()); + total_.Add(dt.Rows[i]["Des"].ToString()); + total_.Add(dt.Rows[i]["DownTime"].ToString()); + total_.Add(dt.Rows[i]["Remark2"].ToString()); + total_.Add(dt.Rows[i]["Remark3"].ToString()); + total_.Add(dt.Rows[i]["Remark1"].ToString()); + list.Add(total_); + } + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + private string CheckWorkClass(string StartTime) + { + + try + { + if (true) + { + string time = StartTime.Substring(0, StartTime.IndexOf(" ")); + if (DateTime.Compare(Convert.ToDateTime(StartTime), Convert.ToDateTime(time + " 08:00:00")) > 0 && DateTime.Compare(Convert.ToDateTime(time + " 19:59:59"), Convert.ToDateTime(StartTime)) > 0) + { + return "A"; + } + return "B"; + + } + + } + catch (Exception ex) + { + + } + + return ""; + } + + #endregion + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Injection/InjectionRecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Injection/InjectionRecordBLL.cs new file mode 100644 index 0000000..9d47192 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Injection/InjectionRecordBLL.cs @@ -0,0 +1,1992 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Injection; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.Injection +{ + public class InjectionRecordBLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + BasicBLL db_w = new BasicBLL(); + InjectionRecordDAL dal = new InjectionRecordDAL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Injection_Record md) + { + try + { + var list = db.SearchInfoByKey("RecordDate", md.RecordDate);//判断是否有重复数据 + if (list != null && list.Count > 0) + { + if (list.Where(p => p.StationID.Equals(md.StationID) && p.workClass.Equals(md.workClass)).Count() > 0) + { + return false; + } + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Injection_Record md) + { + try + { + + //初始化要更新的字段 + string[] proNames = new string[7]; + proNames[0] = "workClass"; + proNames[1] = "StationID"; + proNames[2] = "JK_Weight"; + proNames[3] = "Waste_Weight"; + proNames[4] = "RecordDate"; + proNames[5] = "StockNo"; + proNames[6] = "PartNo"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Injection_Record md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string StationID) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime); + DateTime etime = Convert.ToDateTime(EndTime); + + List list = ef.tb_Injection_Record.Where(p => p.RecordDate >= stime && p.RecordDate <= etime).ToList(); + + if (!String.IsNullOrEmpty(StationID)) + { + list = list.Where(p => p.StationID.Equals(StationID)).ToList(); + } + + List modelList = new List(); + if (list.Count > 0) + { + #region 联查 + BasicBLL machine_db = new BasicBLL(); + var machine_list = machine_db.SearchAllInfo(); + + foreach (var item in list) + { + Injection_RecordModel dm = Tool.Mapper(item); + + var machine_info = machine_list.FirstOrDefault(p => p.StationID == item.StationID); + if (machine_info != null) + { + dm.StationNo = machine_info.StationNo; + } + + modelList.Add(dm); + } + #endregion + + total = modelList.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + modelList = modelList.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + #region 废料信息录入 + public string SearchInfo(string page, string pagesize, string StartTime, string EndTime, string StationID) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime); + DateTime etime = Convert.ToDateTime(EndTime); + + DataTable dt = dal.SearchRecordByPage(Convert.ToInt32(page), Convert.ToInt32(pagesize), StartTime, EndTime, StationID); + + + IList list = Tool.ConvertTo(dt); + + if (list.Count > 0) + { + total = list.Count; + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list.ToList(); + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + + public bool UpdateWasteInfo(tb_Product_Injection_w md) + { + try + { + var info = ef.tb_Product_Injection_w.Where(p => p.ID.Equals(md.ID)).FirstOrDefault();//判断是否有重复数据 + if (info != null) + { + //初始化要更新的字段 + string[] proNames = new string[3]; + proNames[0] = "RealCycle"; + proNames[1] = "JK_Weight"; + proNames[2] = "Waste_Weight"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + db_w.UpdateInfo(md, proNames); + } + else + { + db_w.AddInfo(md); + } + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + #endregion + + + + /// + /// 查询全部信息 + /// + /// + public List SearchAll() + { + try + { + var s_list = db.SearchAllInfo().ToList(); + return s_list; + } + catch (Exception) + { + return null; + } + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Injection_Record SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + + #region 日合格趋势 + //表格 + public string SearchQualifiedDay(string StartTime) + { + try + { + + DateTime sTime = Convert.ToDateTime(StartTime); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(sTime.Year, sTime.Month); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-01").ToString("yyyy-MM-dd"), Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + days.ToString()).ToString("yyyy-MM-dd")); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List OK_L_List = new List(); + for (int i = 0; i < days; i++) + { + titleList.Add((i + 1) + "日"); + + string nowTime = Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + (i + 1)).ToString("yyyy-MM-dd"); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(3) == nowTime + select myRow; + + double total_OK = DayList.Sum(p => (int)p.ItemArray[7]); + double total_NO = DayList.Sum(p => (int)p.ItemArray[8]); + double total_all = total_OK + total_NO; + totalList.Add(total_OK); + No_totalList.Add(total_NO); + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in titleList) + { + sb.Append(""); + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in totalList) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in No_totalList) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in OK_L_List) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in OK_L_List) + { + sb.Append(""); + } + sb.Append(""); + sb.Append("
" + item + "
总合格数量" + item + "
不良数量" + item + "
合格率" + item + "%
目标值99.6%
"); + } + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + //柱状图 + public EcharBarModel SearchQualifiedDayBar(string StartTime) + { + try + { + + EcharBarModel md = new EcharBarModel(); + + DateTime sTime = Convert.ToDateTime(StartTime); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(sTime.Year, sTime.Month); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-01").ToString("yyyy-MM-dd"), Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + days.ToString()).ToString("yyyy-MM-dd")); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List OK_L_List = new List(); + List T_L_List = new List(); + for (int i = 0; i < days; i++) + { + titleList.Add((i + 1) + "日"); + + string nowTime = Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + (i + 1)).ToString("yyyy-MM-dd"); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(3) == nowTime + select myRow; + + double total_OK = DayList.Sum(p => (int)p.ItemArray[7]); + double total_NO = DayList.Sum(p => (int)p.ItemArray[8]); + double total_all = total_OK + total_NO; + totalList.Add(total_OK); + No_totalList.Add(total_NO); + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + foreach (var item in OK_L_List) + { + T_L_List.Add(99.6); + } + md.categories = titleList; + md.QualifiedData = OK_L_List; + md.TargetData = T_L_List; + + } + + return md; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public List> SearchQualifiedDayForExcel(string StartTime) + { + try + { + List> list = new List>(); + + DateTime sTime = Convert.ToDateTime(StartTime); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(sTime.Year, sTime.Month); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-01").ToString("yyyy-MM-dd"), Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + days.ToString()).ToString("yyyy-MM-dd")); + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List OK_L_List = new List(); + for (int i = 0; i < days; i++) + { + titleList.Add((i + 1) + "日"); + + string nowTime = Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + (i + 1)).ToString("yyyy-MM-dd"); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(3) == nowTime + select myRow; + + double total_OK = DayList.Sum(p => (int)p.ItemArray[7]); + double total_NO = DayList.Sum(p => (int)p.ItemArray[8]); + double total_all = total_OK + total_NO; + totalList.Add(total_OK); + No_totalList.Add(total_NO); + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + List title_ = new List(); + + title_.Add(""); + title_.AddRange(titleList); + list.Add(title_); + + List total_ = new List(); + total_.Add("总合格数量"); + foreach (var item in totalList) + { + total_.Add(item.ToString()); + } + list.Add(total_); + + + + List No_total_ = new List(); + No_total_.Add("不良数量"); + foreach (var item in No_totalList) + { + No_total_.Add(item.ToString()); + } + list.Add(No_total_); + + List OK_L_ = new List(); + OK_L_.Add("合格率"); + foreach (var item in OK_L_List) + { + OK_L_.Add(item.ToString() + "%"); + } + list.Add(OK_L_); + + List tag_L_ = new List(); + tag_L_.Add("目标值"); + foreach (var item in OK_L_List) + { + tag_L_.Add("99.6%"); + } + list.Add(tag_L_); + + } + + + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + #endregion + + #region 月合格趋势 + //表格 + public string SearchQualifiedMonth(string StartTime) + { + try + { + + DateTime sTime = Convert.ToDateTime(StartTime); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List OK_L_List = new List(); + for (int i = 0; i < 12; i++) + { + titleList.Add((i + 1) + "月"); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + + string starTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd"); + string entTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd"); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd")) >= 0 && + myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd")) <= 0 + select myRow; + + double total_OK = DayList.Sum(p => (int)p.ItemArray[7]); + double total_NO = DayList.Sum(p => (int)p.ItemArray[8]); + double total_all = total_OK + total_NO; + totalList.Add(total_OK); + No_totalList.Add(total_NO); + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in titleList) + { + sb.Append(""); + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in totalList) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in No_totalList) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in OK_L_List) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in OK_L_List) + { + sb.Append(""); + } + sb.Append(""); + sb.Append("
" + item + "
总合格数量" + item + "
不良数量" + item + "
合格率" + item + "%
目标值99.6%
"); + } + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + //柱状图 + public EcharBarModel SearchQualifiedMonthBar(string StartTime) + { + try + { + + EcharBarModel md = new EcharBarModel(); + + DateTime sTime = Convert.ToDateTime(StartTime); + + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List OK_L_List = new List(); + List T_L_List = new List(); + for (int i = 0; i < 12; i++) + { + titleList.Add((i + 1) + "月"); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + + string starTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd"); + string entTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd"); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd")) >= 0 && + myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd")) <= 0 + select myRow; + + double total_OK = DayList.Sum(p => (int)p.ItemArray[7]); + double total_NO = DayList.Sum(p => (int)p.ItemArray[8]); + double total_all = total_OK + total_NO; + totalList.Add(total_OK); + No_totalList.Add(total_NO); + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + } + + + + foreach (var item in OK_L_List) + { + T_L_List.Add(99.6); + } + md.categories = titleList; + md.QualifiedData = OK_L_List; + md.TargetData = T_L_List; + + } + + return md; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public List> SearchQualifiedMonthForExcel(string StartTime) + { + try + { + List> list = new List>(); + + DateTime sTime = Convert.ToDateTime(StartTime); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List OK_L_List = new List(); + for (int i = 0; i < 12; i++) + { + titleList.Add((i + 1) + "月"); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + + string starTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd"); + string entTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd"); + + var DayList = from myRow in dt.AsEnumerable() + where myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd")) >= 0 && + myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd")) <= 0 + select myRow; + + double total_OK = DayList.Sum(p => (int)p.ItemArray[7]); + double total_NO = DayList.Sum(p => (int)p.ItemArray[8]); + double total_all = total_OK + total_NO; + totalList.Add(total_OK); + No_totalList.Add(total_NO); + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + } + + List title_ = new List(); + + title_.Add(""); + title_.AddRange(titleList); + list.Add(title_); + + List total_ = new List(); + total_.Add("总合格数量"); + foreach (var item in totalList) + { + total_.Add(item.ToString()); + } + list.Add(total_); + + + + List No_total_ = new List(); + No_total_.Add("不良数量"); + foreach (var item in No_totalList) + { + No_total_.Add(item.ToString()); + } + list.Add(No_total_); + + List OK_L_ = new List(); + OK_L_.Add("合格率"); + foreach (var item in OK_L_List) + { + OK_L_.Add(item.ToString() + "%"); + } + list.Add(OK_L_); + + List tag_L_ = new List(); + tag_L_.Add("目标值"); + foreach (var item in OK_L_List) + { + tag_L_.Add("99.6%"); + } + list.Add(tag_L_); + } + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + #endregion + + #region 日原料利用率 + public string SearchMaterialAvailabilityDay(string StartTime) + { + try + { + + var p_info = ef.tb_Plastic.Where(p => p.Weight != null); + + + DateTime sTime = Convert.ToDateTime(StartTime); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(sTime.Year, sTime.Month); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-01").ToString("yyyy-MM-dd"), Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + days.ToString()).ToString("yyyy-MM-dd")); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List All_totalList = new List(); + List OK_L_List = new List(); + for (int i = 0; i < days; i++) + { + titleList.Add((i + 1) + "日"); + + string nowTime = Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + (i + 1)).ToString("yyyy-MM-dd"); + + var listAddress = (from myRow in dt.AsEnumerable() + where myRow.Field(3) == nowTime + group myRow by new { StockNo = myRow.ItemArray[5] } into g + //orderby new ComparerItem() { OrderIndex = b.Key., Id = b.Key.Id } descending + select new + { + StockNo = (string)g.Key.StockNo, + total_ok = g.Sum(c => (int)c.ItemArray[7]), + total_no = g.Sum(c => (int)c.ItemArray[8]) + }); + + double total_OK = 0; + double total_NO = 0; + foreach (var item in listAddress) + { + string stockNo = item.StockNo; + + var w_info = p_info.FirstOrDefault(p => p.StockNo.Equals(stockNo)); + if (w_info != null) + { + total_OK += (double)(w_info.Weight * item.total_ok); + total_NO += (double)(w_info.Weight * item.total_no); + } + } + totalList.Add(Math.Round(total_OK / 1000, 2)); + No_totalList.Add(Math.Round(total_NO / 1000, 2)); + + DateTime nsTime = Convert.ToDateTime(nowTime + " 00:00:00"); + DateTime neTime = Convert.ToDateTime(nowTime + " 23:59:59"); + var Waste_Num = ef.tb_Injection_Record.Where(p => p.RecordDate >= nsTime && p.RecordDate <= neTime).Sum(p => p.Waste_Weight); + double total_Waste = 0; + if (Waste_Num == null) + { + total_Waste = 0; + } + else + { + total_Waste = (double)Waste_Num; + } + + double total_all = total_OK + total_NO + total_Waste; + All_totalList.Add(Math.Round(total_all / 1000, 2)); + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + sb.Append(""); + + sb.Append(""); + sb.Append(""); + foreach (var item in titleList) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append(""); + sb.Append(""); + foreach (var item in OK_L_List) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append(""); + sb.Append(""); + foreach (var item in totalList) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in All_totalList) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in OK_L_List) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append("
" + item + "
目标值98%
合格件耗用原料" + item + "
总耗用原料" + item + "
原料利用率" + item + "%
"); + } + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + //柱状图 + public EcharBarModel SearchMaterialAvailabilityDayBar(string StartTime) + { + try + { + EcharBarModel md = new EcharBarModel(); + + var p_info = ef.tb_Plastic.Where(p => p.Weight != null); + + + DateTime sTime = Convert.ToDateTime(StartTime); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(sTime.Year, sTime.Month); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-01").ToString("yyyy-MM-dd"), Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + days.ToString()).ToString("yyyy-MM-dd")); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List OK_L_List = new List(); + List T_L_List = new List(); + for (int i = 0; i < days; i++) + { + titleList.Add((i + 1) + "日"); + + string nowTime = Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + (i + 1)).ToString("yyyy-MM-dd"); + + var listAddress = (from myRow in dt.AsEnumerable() + where myRow.Field(3) == nowTime + group myRow by new { StockNo = myRow.ItemArray[5] } into g + //orderby new ComparerItem() { OrderIndex = b.Key., Id = b.Key.Id } descending + select new + { + StockNo = (string)g.Key.StockNo, + total_ok = g.Sum(c => (int)c.ItemArray[7]), + total_no = g.Sum(c => (int)c.ItemArray[8]) + }); + + double total_OK = 0; + double total_NO = 0; + foreach (var item in listAddress) + { + string stockNo = item.StockNo; + + var w_info = p_info.FirstOrDefault(p => p.StockNo.Equals(stockNo)); + if (w_info != null) + { + total_OK += (double)(w_info.Weight * item.total_ok); + total_NO += (double)(w_info.Weight * item.total_no); + } + } + totalList.Add(Math.Round(total_OK / 1000, 2)); + No_totalList.Add(Math.Round(total_NO / 1000, 2)); + + DateTime nsTime = Convert.ToDateTime(nowTime + " 00:00:00"); + DateTime neTime = Convert.ToDateTime(nowTime + " 23:59:59"); + var Waste_Num = ef.tb_Injection_Record.Where(p => p.RecordDate >= nsTime && p.RecordDate <= neTime).Sum(p => p.Waste_Weight); + double total_Waste = 0; + if (Waste_Num == null) + { + total_Waste = 0; + } + else + { + total_Waste = (double)Waste_Num; + } + double total_all = total_OK + total_NO + total_Waste; + + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + foreach (var item in OK_L_List) + { + T_L_List.Add(98); + } + md.categories = titleList; + md.QualifiedData = OK_L_List; + md.TargetData = T_L_List; + } + return md; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public List> SearchMaterialAvailabilityDayForExcel(string StartTime) + { + try + { + List> list = new List>(); + + + var p_info = ef.tb_Plastic.Where(p => p.Weight != null); + DateTime sTime = Convert.ToDateTime(StartTime); + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(sTime.Year, sTime.Month); + StringBuilder sb = new StringBuilder(100); + + DataTable dt = dal.SearchByTime(Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-01").ToString("yyyy-MM-dd"), Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + days.ToString()).ToString("yyyy-MM-dd")); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List All_totalList = new List(); + List OK_L_List = new List(); + for (int i = 0; i < days; i++) + { + titleList.Add((i + 1) + "日"); + + string nowTime = Convert.ToDateTime(sTime.Year + "-" + sTime.Month + "-" + (i + 1)).ToString("yyyy-MM-dd"); + + var listAddress = (from myRow in dt.AsEnumerable() + where myRow.Field(3) == nowTime + group myRow by new { StockNo = myRow.ItemArray[5] } into g + //orderby new ComparerItem() { OrderIndex = b.Key., Id = b.Key.Id } descending + select new + { + StockNo = (string)g.Key.StockNo, + total_ok = g.Sum(c => (int)c.ItemArray[7]), + total_no = g.Sum(c => (int)c.ItemArray[8]) + }); + + double total_OK = 0; + double total_NO = 0; + foreach (var item in listAddress) + { + string stockNo = item.StockNo; + + var w_info = p_info.FirstOrDefault(p => p.StockNo.Equals(stockNo)); + if (w_info != null) + { + total_OK += (double)(w_info.Weight * item.total_ok); + total_NO += (double)(w_info.Weight * item.total_no); + } + } + totalList.Add(Math.Round(total_OK / 1000, 2)); + No_totalList.Add(Math.Round(total_NO / 1000, 2)); + + DateTime nsTime = Convert.ToDateTime(nowTime + " 00:00:00"); + DateTime neTime = Convert.ToDateTime(nowTime + " 23:59:59"); + var Waste_Num = ef.tb_Injection_Record.Where(p => p.RecordDate >= nsTime && p.RecordDate <= neTime).Sum(p => p.Waste_Weight); + double total_Waste = 0; + if (Waste_Num == null) + { + total_Waste = 0; + } + else + { + total_Waste = (double)Waste_Num; + } + + double total_all = total_OK + total_NO + total_Waste; + All_totalList.Add(Math.Round(total_all / 1000, 2)); + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + List title_ = new List(); + + title_.Add(""); + title_.AddRange(titleList); + list.Add(title_); + + List tag_L_ = new List(); + tag_L_.Add("目标值"); + foreach (var item in OK_L_List) + { + tag_L_.Add("98%"); + } + list.Add(tag_L_); + + + List total_ = new List(); + total_.Add("合格件耗用原料"); + foreach (var item in totalList) + { + total_.Add(item.ToString()); + } + list.Add(total_); + + + + List No_total_ = new List(); + No_total_.Add("总耗用原料"); + foreach (var item in All_totalList) + { + No_total_.Add(item.ToString()); + } + list.Add(No_total_); + + List OK_L_ = new List(); + OK_L_.Add("原料利用率"); + foreach (var item in OK_L_List) + { + OK_L_.Add(item.ToString() + "%"); + } + list.Add(OK_L_); + + } + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + #endregion + + #region 月原料利用率 + public string SearchMaterialAvailabilityMonth(string StartTime) + { + try + { + StringBuilder sb = new StringBuilder(100); + var p_info = ef.tb_Plastic.Where(p => p.Weight != null); + + DateTime sTime = Convert.ToDateTime(StartTime); + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List All_totalList = new List(); + List OK_L_List = new List(); + for (int i = 0; i < 12; i++) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + titleList.Add((i + 1) + "月"); + + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + + string starTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd"); + string entTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd"); + + var listAddress = (from myRow in dt.AsEnumerable() + where myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd")) >= 0 && + myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd")) <= 0 + group myRow by new { StockNo = myRow.ItemArray[5] } into g + select new + { + StockNo = (string)g.Key.StockNo, + total_ok = g.Sum(c => (int)c.ItemArray[7]), + total_no = g.Sum(c => (int)c.ItemArray[8]) + }); + + double total_OK = 0; + double total_NO = 0; + foreach (var item in listAddress) + { + string stockNo = item.StockNo; + + var w_info = p_info.FirstOrDefault(p => p.StockNo.Equals(stockNo)); + if (w_info != null) + { + total_OK += (double)(w_info.Weight * item.total_ok); + total_NO += (double)(w_info.Weight * item.total_no); + } + } + totalList.Add(Math.Round(total_OK / 1000, 2)); + No_totalList.Add(Math.Round(total_NO / 1000, 2)); + + DateTime nsTime = Convert.ToDateTime(starTime + " 00:00:00"); + DateTime neTime = Convert.ToDateTime(entTime + " 23:59:59"); + var Waste_Num = ef.tb_Injection_Record.Where(p => p.RecordDate >= nsTime && p.RecordDate <= neTime).Sum(p => p.Waste_Weight); + double total_Waste = 0; + if (Waste_Num == null) + { + total_Waste = 0; + } + else + { + total_Waste = (double)Waste_Num; + } + double total_all = total_OK + total_NO + total_Waste; + All_totalList.Add(Math.Round(total_all / 1000, 2)); + + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in titleList) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append(""); + sb.Append(""); + foreach (var item in OK_L_List) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append(""); + sb.Append(""); + foreach (var item in totalList) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append(""); + sb.Append(""); + foreach (var item in All_totalList) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append(""); + sb.Append(""); + foreach (var item in OK_L_List) + { + sb.Append(""); + } + sb.Append(""); + + sb.Append("
" + item + "
目标值98%
合格件耗用原料" + item + "
总耗用原料" + item + "
原料利用率" + item + "%
"); + } + return sb.ToString(); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public EcharBarModel SearchMaterialAvailabilityMonthBar(string StartTime) + { + try + { + EcharBarModel md = new EcharBarModel(); + + + var p_info = ef.tb_Plastic.Where(p => p.Weight != null); + + DateTime sTime = Convert.ToDateTime(StartTime); + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List OK_L_List = new List(); + List T_L_List = new List(); + for (int i = 0; i < 12; i++) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + titleList.Add((i + 1) + "月"); + + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + + string starTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd"); + string entTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd"); + + var listAddress = (from myRow in dt.AsEnumerable() + where myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd")) >= 0 && + myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd")) <= 0 + group myRow by new { StockNo = myRow.ItemArray[5] } into g + select new + { + StockNo = (string)g.Key.StockNo, + total_ok = g.Sum(c => (int)c.ItemArray[7]), + total_no = g.Sum(c => (int)c.ItemArray[8]) + }); + + double total_OK = 0; + double total_NO = 0; + foreach (var item in listAddress) + { + string stockNo = item.StockNo; + + var w_info = p_info.FirstOrDefault(p => p.StockNo.Equals(stockNo)); + if (w_info != null) + { + total_OK += (double)(w_info.Weight * item.total_ok); + total_NO += (double)(w_info.Weight * item.total_no); + } + } + totalList.Add(Math.Round(total_OK / 1000, 2)); + No_totalList.Add(Math.Round(total_NO / 1000, 2)); + + DateTime nsTime = Convert.ToDateTime(starTime + " 00:00:00"); + DateTime neTime = Convert.ToDateTime(entTime + " 23:59:59"); + var Waste_Num = ef.tb_Injection_Record.Where(p => p.RecordDate >= nsTime && p.RecordDate <= neTime).Sum(p => p.Waste_Weight); + double total_Waste = 0; + if (Waste_Num == null) + { + total_Waste = 0; + } + else + { + total_Waste = (double)Waste_Num; + } + double total_all = total_OK + total_NO + total_Waste; + + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + foreach (var item in OK_L_List) + { + T_L_List.Add(98); + } + md.categories = titleList; + md.QualifiedData = OK_L_List; + md.TargetData = T_L_List; + + } + return md; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public List> SearchMaterialAvailabilityMonthForExcel(string StartTime) + { + try + { + List> list = new List>(); + + var p_info = ef.tb_Plastic.Where(p => p.Weight != null); + + DateTime sTime = Convert.ToDateTime(StartTime); + DataTable dt = dal.SearchByTime(sTime.Year + "-01-01", sTime.Year + "-12-31"); + + if (dt != null && dt.Rows.Count > 0) + { + + List titleList = new List(); + List totalList = new List(); + List No_totalList = new List(); + List All_totalList = new List(); + List OK_L_List = new List(); + for (int i = 0; i < 12; i++) + { + + DateTime startT = Convert.ToDateTime(sTime.Year + "-01-01"); + + titleList.Add((i + 1) + "月"); + + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(startT.Year, (i + 1)); + + + string starTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd"); + string entTime = Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd"); + + var listAddress = (from myRow in dt.AsEnumerable() + where myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-01").ToString("yyyy-MM-dd")) >= 0 && + myRow.Field(3).CompareTo(Convert.ToDateTime(sTime.Year + "-" + (i + 1) + "-" + days).ToString("yyyy-MM-dd")) <= 0 + group myRow by new { StockNo = myRow.ItemArray[5] } into g + select new + { + StockNo = (string)g.Key.StockNo, + total_ok = g.Sum(c => (int)c.ItemArray[7]), + total_no = g.Sum(c => (int)c.ItemArray[8]) + }); + + double total_OK = 0; + double total_NO = 0; + foreach (var item in listAddress) + { + string stockNo = item.StockNo; + + var w_info = p_info.FirstOrDefault(p => p.StockNo.Equals(stockNo)); + if (w_info != null) + { + total_OK += (double)(w_info.Weight * item.total_ok); + total_NO += (double)(w_info.Weight * item.total_no); + } + } + totalList.Add(Math.Round(total_OK / 1000, 2)); + No_totalList.Add(Math.Round(total_NO / 1000, 2)); + + DateTime nsTime = Convert.ToDateTime(starTime + " 00:00:00"); + DateTime neTime = Convert.ToDateTime(entTime + " 23:59:59"); + var Waste_Num = ef.tb_Injection_Record.Where(p => p.RecordDate >= nsTime && p.RecordDate <= neTime).Sum(p => p.Waste_Weight); + double total_Waste = 0; + if (Waste_Num == null) + { + total_Waste = 0; + } + else + { + total_Waste = (double)Waste_Num; + } + double total_all = total_OK + total_NO + total_Waste; + All_totalList.Add(Math.Round(total_all / 1000, 2)); + + if (total_all > 0) + { + OK_L_List.Add(Math.Round((total_OK / total_all) * 100, 2)); + } + else + { + OK_L_List.Add(0); + } + + } + + List title_ = new List(); + + title_.Add(""); + title_.AddRange(titleList); + list.Add(title_); + + List tag_L_ = new List(); + tag_L_.Add("目标值"); + foreach (var item in OK_L_List) + { + tag_L_.Add("98%"); + } + list.Add(tag_L_); + + + List total_ = new List(); + total_.Add("合格件耗用原料"); + foreach (var item in totalList) + { + total_.Add(item.ToString()); + } + list.Add(total_); + + + + List No_total_ = new List(); + No_total_.Add("总耗用原料"); + foreach (var item in All_totalList) + { + No_total_.Add(item.ToString()); + } + list.Add(No_total_); + + List OK_L_ = new List(); + OK_L_.Add("原料利用率"); + foreach (var item in OK_L_List) + { + OK_L_.Add(item.ToString() + "%"); + } + list.Add(OK_L_); + } + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + #endregion + + #region 注塑生产记录表 + public string SearchProductInjectionRecord(string StartTime, string EndTime) + { + var defectList = ef.tb_Defect.ToList(); + var defectInfo = defectList.Where(p => p.LineID.Equals(defectList.FirstOrDefault().LineID)).OrderBy(p => p.DefectName).Select(p => p.DefectName).ToList(); + + var DownReasonList = ef.tb_Inhection_DownReason.OrderBy(p => p.Reason).Select(p => p.Reason).ToList(); + + DataTable dt = dal.SearchProductInjectionRecord(Convert.ToDateTime(StartTime).ToString("yyyy-MM-dd"), Convert.ToDateTime(EndTime).ToString("yyyy-MM-dd")); + DataTable dt2 = dal.SearchProductInjectionRecordBadReason(Convert.ToDateTime(StartTime).ToString("yyyy-MM-dd"), Convert.ToDateTime(EndTime).ToString("yyyy-MM-dd")); + + List list = Tool.ConvertTo(dt2).ToList(); + + + DataTable dt3 = dal.SearchProductInjectionRecordDownReason(Convert.ToDateTime(StartTime).ToString("yyyy-MM-dd"), Convert.ToDateTime(EndTime).ToString("yyyy-MM-dd")); + + List list3 = Tool.ConvertTo(dt3).ToList(); + + + + StringBuilder sb = new StringBuilder(100); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + //sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in defectInfo) + { + sb.Append(""); + } + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (var item in DownReasonList) + { + sb.Append(""); + } + sb.Append(""); + try + { + if (dt != null && dt.Rows.Count > 0) + { + for (int i = 0; i < dt.Rows.Count; i++) + { + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("");//注塑机台 + sb.Append("");//开机时间 + sb.Append("");//关机时间 + sb.Append("");//产品性质 + sb.Append("");//产品名称 + sb.Append("");//原料名称 + //sb.Append("");//原料牌号 + sb.Append("");//原料批次号 + sb.Append("");//标准开机时间 + + decimal cycle_Time = dt.Rows[i]["CycleTime"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["CycleTime"]); + + sb.Append("");//标准周期 + + decimal real_Cycle = dt.Rows[i]["RealCycle"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["RealCycle"]); + decimal product_count = dt.Rows[i]["ProductCount"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["ProductCount"]); + decimal bad_count = dt.Rows[i]["BadCount"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["BadCount"]); + decimal weight = dt.Rows[i]["Weight"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["Weight"]); + decimal plan_count = dt.Rows[i]["PlanCount"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["PlanCount"]); + + + sb.Append("");//实际周期 + + sb.Append("");//计划数量 + sb.Append("");//合格数量 + sb.Append("");//总合格数量 + sb.Append("");//不良数量 + for (int k = 0; k < defectInfo.Count; k++) + { + sb.Append(""); + } + + + sb.Append("");//产品毛重(总合格数量+不良数量)*产品毛重 + sb.Append("");//废料块 + sb.Append("");//浇口重量 + + + + + + sb.Append("");//产品耗用原料 + if ((product_count + bad_count) == 0) + { + sb.Append("");//合格率(总合格数/(总合格数+不良数)) + } + else + { + sb.Append("");//合格率(总合格数/(总合格数+不良数)) + } + if (plan_count == 0) + { + sb.Append("");//完成率 + } + else + { + + sb.Append("");//完成率(总合格数/计划数) + } + + sb.Append("");//计划工时(计划数量*标准周期/60) + sb.Append("");//产出工时(计划数量*实际周期/60) + + var listR = list3.Where(p => p.DownTypeName != null && p.PlanID.Equals(dt.Rows[i]["PlanID"])).ToList(); + + long x = listR.Where(p => p.DownTypeName.Contains("计划停机")).Sum(p => p.DownTime); + long x1 = listR.Where(p => p.DownTypeName.Contains("换模时间")).Sum(p => p.DownTime); + + sb.Append("");//计划停机+换模时间 + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + + for (int k = 0; k < DownReasonList.Count; k++) + { + sb.Append(""); + } + sb.Append(""); + } + } + } + catch (Exception ex) + { + throw; + } + + sb.Append("
日期班次注塑机台开机时间关机时间产品性质产品名称原料名称原料牌号原料批次号标准开机时间标准周期实际周期计划数量合格数量总合格数量不良数量不良原因产品毛重废料块浇口重量产品耗用原料合格率完成率计划工时产出工时停机时间换膜计划停机停机原因
" + item + "计划停机+换模时间非计划停机换膜交班接班" + item + "
" + dt.Rows[i]["ProductDate"] + "" + dt.Rows[i]["ClassName"].ToString() + "" + dt.Rows[i]["StationNo"] + "" + dt.Rows[i]["BeginTime"] + "" + dt.Rows[i]["EndTime"] + "正常" + dt.Rows[i]["ProductName"] + "" + dt.Rows[i]["MaterialName"] + "" + dt.Rows[i]["BatchNo"] + "" + dt.Rows[i]["OpenDebugTime"] + "" + cycle_Time + "" + real_Cycle + "" + dt.Rows[i]["PlanCount"] + "" + product_count + "" + (product_count + bad_count + list.Where(p => "开机报废;".Equals(p.BadReason)).Count()) + "" + dt.Rows[i]["BadCount"] + "" + list.Where(p => p.BadReason.Equals(defectInfo[k] + ";")).Count() + "" + dt.Rows[i]["Weight"] + "" + dt.Rows[i]["Waste_Weight"] + "" + dt.Rows[i]["JK_Weight"] + "" + (product_count + bad_count) * weight + "0%" + Math.Round((product_count / (product_count + bad_count)) * 100, 2) + "%0%" + Math.Round((product_count / plan_count) * 100, 2) + "%" + Math.Round((plan_count * cycle_Time) / 60, 2) + "" + Math.Round((plan_count * real_Cycle) / 60, 2) + "" + (x + x1) + "" + listR.Where(p => p.DownTypeName.Contains("非计划停机")).Sum(p => p.DownTime) + "" + listR.Where(p => p.DownTypeName.Contains("换模")).Sum(p => p.DownTime) + "" + listR.Where(p => p.DownTypeName.Contains("交班")).Sum(p => p.DownTime) + "" + listR.Where(p => p.DownTypeName.Contains("接班")).Sum(p => p.DownTime) + "" + listR.Where(p => p.DownTypeName.Contains("计划停机")).Sum(p => p.DownTime) + "" + list3.Where(p => p.Reason != null && p.PlanID.Equals(dt.Rows[i]["PlanID"]) && p.Reason.Contains(DownReasonList[k])).Sum(p => p.DownTime) + "
"); + + return sb.ToString(); + } + + private string CheckWorkClass(string StartTime) + { + + try + { + if (true) + { + string time = StartTime.Substring(0, StartTime.IndexOf(" ")); + if (DateTime.Compare(Convert.ToDateTime(StartTime), Convert.ToDateTime(time + " 08:00:00")) > 0 && DateTime.Compare(Convert.ToDateTime(time + " 19:59:59"), Convert.ToDateTime(StartTime)) > 0) + { + return "A"; + } + return "B"; + + } + + } + catch (Exception ex) + { + + } + + return ""; + } + + public List> SearchProductInjectionRecordForExcel(string StartTime, string EndTime) + { + List> listExcel = new List>(); + + var defectList = ef.tb_Defect.ToList(); + var defectInfo = defectList.Where(p => p.LineID.Equals(defectList.FirstOrDefault().LineID)).OrderBy(p => p.DefectName).Select(p => p.DefectName).ToList(); + + var DownReasonList = ef.tb_Inhection_DownReason.OrderBy(p => p.Reason).Select(p => p.Reason).ToList(); + + DataTable dt = dal.SearchProductInjectionRecord(Convert.ToDateTime(StartTime).ToString("yyyy-MM-dd"), Convert.ToDateTime(EndTime).ToString("yyyy-MM-dd")); + DataTable dt2 = dal.SearchProductInjectionRecordBadReason(Convert.ToDateTime(StartTime).ToString("yyyy-MM-dd"), Convert.ToDateTime(EndTime).ToString("yyyy-MM-dd")); + + List list = Tool.ConvertTo(dt2).ToList(); + + + DataTable dt3 = dal.SearchProductInjectionRecordDownReason(Convert.ToDateTime(StartTime).ToString("yyyy-MM-dd"), Convert.ToDateTime(EndTime).ToString("yyyy-MM-dd")); + + List list3 = Tool.ConvertTo(dt3).ToList(); + + + List titleList = new List(); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + + foreach (var item in defectInfo) + { + titleList.Add("不良原因"); + } + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + titleList.Add(""); + + titleList.Add("停机时间"); + titleList.Add("停机时间"); + + titleList.Add("换膜"); + titleList.Add("换膜"); + titleList.Add("换膜"); + + titleList.Add(""); + foreach (var item in DownReasonList) + { + titleList.Add("停机原因"); + } + + + listExcel.Add(titleList); + + List titleList2 = new List(); + titleList2.Add("日期"); + titleList2.Add("班次"); + titleList2.Add("注塑机台"); + titleList2.Add("开机时间"); + titleList2.Add("关机时间"); + titleList2.Add("产品性质"); + titleList2.Add("产品名称"); + titleList2.Add("原料名称"); + titleList2.Add("原料批次号"); + titleList2.Add("标准开机时间"); + titleList2.Add("标准周期"); + titleList2.Add("实际周期"); + titleList2.Add("计划数量"); + titleList2.Add("合格数量"); + titleList2.Add("总合格数量"); + titleList2.Add("不良数量"); + foreach (var item in defectInfo) + { + titleList2.Add(item); + } + titleList2.Add("产品毛重"); + titleList2.Add("废料块"); + titleList2.Add("浇口重量"); + titleList2.Add("产品耗用原料"); + titleList2.Add("合格率"); + titleList2.Add("完成率"); + titleList2.Add("计划工时"); + titleList2.Add("产出工时"); + + titleList2.Add("计划停机+换模时间"); + titleList2.Add("非计划停机"); + titleList2.Add("换膜"); + titleList2.Add("交班"); + titleList2.Add("接班"); + titleList2.Add("计划停机"); + foreach (var item in DownReasonList) + { + titleList2.Add(item); + } + listExcel.Add(titleList2); + + + if (dt != null && dt.Rows.Count > 0) + { + + for (int i = 0; i < dt.Rows.Count; i++) + { + List conList = new List(); + conList.Add(dt.Rows[i]["ProductDate"].ToString()); + conList.Add(dt.Rows[i]["ClassName"].ToString()); + conList.Add(dt.Rows[i]["StationNo"].ToString()); + conList.Add(dt.Rows[i]["BeginTime"].ToString()); + conList.Add(dt.Rows[i]["EndTime"].ToString()); + conList.Add("正常"); + conList.Add(dt.Rows[i]["ProductName"].ToString()); + conList.Add(dt.Rows[i]["MaterialName"].ToString()); + conList.Add(dt.Rows[i]["BatchNo"].ToString()); + conList.Add(dt.Rows[i]["OpenDebugTime"].ToString()); + + decimal cycle_Time = dt.Rows[i]["CycleTime"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["CycleTime"]); + + conList.Add(cycle_Time.ToString()); + + decimal real_Cycle = dt.Rows[i]["RealCycle"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["RealCycle"]); + + decimal product_count = dt.Rows[i]["ProductCount"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["ProductCount"]); + decimal bad_count = dt.Rows[i]["BadCount"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["BadCount"]); + decimal weight = dt.Rows[i]["Weight"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["Weight"]); + decimal plan_count = dt.Rows[i]["PlanCount"] == DBNull.Value ? 0 : Convert.ToDecimal(dt.Rows[i]["PlanCount"]); + decimal openFailCount = 0; + conList.Add(real_Cycle.ToString()); + conList.Add(dt.Rows[i]["PlanCount"].ToString()); + conList.Add(product_count.ToString()); + conList.Add((product_count + bad_count + defectInfo.Where(p => "开机报废".Equals(p)).Count()).ToString()); + conList.Add(dt.Rows[i]["BadCount"].ToString()); + + for (int k = 0; k < defectInfo.Count; k++) + { + conList.Add(list.Where(p => p.BadReason.Equals(defectInfo[k] + ";")).Count().ToString()); + } + conList.Add(dt.Rows[i]["Weight"].ToString()); + conList.Add(dt.Rows[i]["Waste_Weight"].ToString()); + conList.Add(dt.Rows[i]["JK_Weight"].ToString()); + + + + + + conList.Add(((product_count + bad_count) * weight).ToString()); + + if ((product_count + bad_count) == 0) + { + + conList.Add("0%"); + } + else + { + conList.Add((Math.Round((product_count / (product_count + bad_count)) * 100, 2)).ToString()); + + } + if (plan_count == 0) + { + conList.Add("0%"); + } + else + { + conList.Add((Math.Round((product_count / plan_count) * 100, 2)).ToString()); + } + conList.Add((Math.Round((plan_count * cycle_Time) / 60, 2)).ToString()); + conList.Add((Math.Round((plan_count * real_Cycle) / 60, 2)).ToString()); + + + var listR = list3.Where(p => p.DownTypeName != null && p.PlanID.Equals(dt.Rows[i]["PlanID"])).ToList(); + + long x = listR.Where(p => p.DownTypeName.Contains("计划停机")).Sum(p => p.DownTime); + long x1 = listR.Where(p => p.DownTypeName.Contains("换模时间")).Sum(p => p.DownTime); + + conList.Add((x + x1).ToString()); + conList.Add((listR.Where(p => p.DownTypeName.Contains("非计划停机")).Sum(p => p.DownTime)).ToString()); + conList.Add((listR.Where(p => p.DownTypeName.Contains("换模")).Sum(p => p.DownTime)).ToString()); + conList.Add((listR.Where(p => p.DownTypeName.Contains("交班")).Sum(p => p.DownTime)).ToString()); + conList.Add((listR.Where(p => p.DownTypeName.Contains("接班")).Sum(p => p.DownTime)).ToString()); + conList.Add((listR.Where(p => p.DownTypeName.Contains("计划停机")).Sum(p => p.DownTime)).ToString()); + + for (int k = 0; k < DownReasonList.Count; k++) + { + conList.Add((list3.Where(p => p.Reason != null && p.PlanID.Equals(dt.Rows[i]["PlanID"]) && p.Reason.Contains(DownReasonList[k])).Sum(p => p.DownTime)).ToString()); + } + listExcel.Add(conList); + } + + } + + + + return listExcel; + } + #endregion + + public DataTable SearchInfoByPlanID(string planID) + { + try + { + return dal.SearchInfoByPlanID(planID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return null; + } + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Inspection/CommonlyInspectionBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Inspection/CommonlyInspectionBLL.cs new file mode 100644 index 0000000..673f0cd --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Inspection/CommonlyInspectionBLL.cs @@ -0,0 +1,596 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.Inspection +{ + public class CommonlyInspectionBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string versionID, string checkDate) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = null; + list = db.SearchInfoByKey("IsUseing", 1).Where(p => p.VersionID.Equals(versionID)).ToList(); + if (list.Count > 0) + { + BasicBLL CheckItem_db = new BasicBLL(); + var CheckItemList = CheckItem_db.SearchAllInfo().ToList(); + + List CommonlyInspectionList = new List(); + foreach (var item in list) + { + CommonlyInspectionModel dm = Tool.Mapper(item); + dm.InspectionContent = CheckItemList.FirstOrDefault(p => p.ID == item.InspectionContentID).CheckContent; + CommonlyInspectionList.Add(dm); + } + + jsonStr = JSONTools.ScriptSerialize>(CommonlyInspectionList); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// + public bool AddInfo(string CommonlyInspection, string CheckUserID, string ConfirmUserID, string UserID, string CheckDate, string CheckType, string ErrMes) + { + try + { + BasicBLL Recorddb = new BasicBLL(); + DateTime dtime = DateTime.Now; + DateTime checktime = Convert.ToDateTime(CheckDate); + string[] arr = CommonlyInspection.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < arr.Length - 1; i++) + { + int index = arr[i].IndexOf(":"); + tb_CommonlyInspectionRecord md = new tb_CommonlyInspectionRecord(); + md.ID = Guid.NewGuid().ToString(); + md.CommonlyInspectionID = arr[i].Substring(0, index); + md.CheckResult = arr[i].Substring(index + 1, arr[i].Length - index - 1); + md.CheckUser = CheckUserID; + md.ConfirmUser = CheckUserID; + md.CreateUserID = UserID; + md.CheckDate = checktime; + md.CheckType = CheckType; + md.ErrMes = ErrMes; + md.ConfirmUserDate = dtime; + md.CreateTime = dtime; + md.IsUseing = 1; + Recorddb.AddInfo(md); + } + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + public bool UpdateInfo(string CommonlyInspection, string CheckUserID, string ConfirmUserID, string UserID, string CheckDate, string CheckType, string ErrMes) + { + try + { + string[] proNames = new string[9]; + proNames[0] = "CheckResult"; + proNames[1] = "CheckUser"; + proNames[2] = "CheckDate"; + proNames[3] = "ConfirmUser"; + proNames[4] = "ConfirmUserDate"; + proNames[5] = "UpdateUserID"; + proNames[6] = "UpdateTime"; + proNames[7] = "CheckType"; + proNames[8] = "ErrMes"; + + BasicBLL Recorddb = new BasicBLL(); + DateTime dtime = DateTime.Now; + DateTime checktime = Convert.ToDateTime(CheckDate); + string[] arr = CommonlyInspection.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < arr.Length - 3; i++) + { + int index = arr[i].IndexOf(":"); + tb_CommonlyInspectionRecord md = new tb_CommonlyInspectionRecord(); + md.ID = arr[i].Substring(0, index); + md.CheckResult = arr[i].Substring(index + 1, arr[i].Length - index - 1); + md.CheckUser = CheckUserID; + md.CheckDate = checktime; + md.CheckType = CheckType; + md.ErrMes = ErrMes; + md.ConfirmUser = ConfirmUserID; + md.ConfirmUserDate = dtime; + md.UpdateUserID = UserID; + md.UpdateTime = dtime; + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + md.CreateUserID = ""; + md.CommonlyInspectionID = ""; + Recorddb.UpdateInfo(md, proNames); + } + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + public string GetDate(string VersionID, string CheckDate, string CheckType) + { + try + { + string str = ""; + string CheckUserID = ""; + string ConfirmUserID = ""; + string ErrMes = ""; + BasicBLL db = new BasicBLL(); + string jsonStr = "[]"; + List list = null; + + list = db.SearchInfoByKey("IsUseing", 1).Where(p => p.VersionID.Equals(VersionID)).ToList(); + if (list.Count > 0) + { + BasicBLL CheckItem_db = new BasicBLL(); + var CheckItemList = CheckItem_db.SearchAllInfo().ToList(); + + string[] arr_id = list.Select(s => s.ID).ToArray(); + BasicBLL CommonlyInspectionRecord_db = new BasicBLL(); + var _info = CommonlyInspectionRecord_db.SearchInfoByKey("CheckDate", Convert.ToDateTime(CheckDate)).Where(p => arr_id.Contains(p.CommonlyInspectionID) && p.CheckType.Equals(CheckType)).ToList(); + if (_info.Count > 0) + { + #region 修改 + List CommonlyInspectionList = new List(); + foreach (var item in list) + { + CommonlyInspectionModel dm = Tool.Mapper(item); + dm.InspectionContent = CheckItemList.FirstOrDefault(p => p.ID.Equals(item.InspectionContentID)).CheckContent; + CommonlyInspectionList.Add(dm); + } + str = ""; + str += ""; + str += ""; + str += ""; + str += ""; + + for (int j = 0; j < CommonlyInspectionList.Count; j++) + { + str += ""; + str += ""; + + var R_info = _info.FirstOrDefault(p => p.CommonlyInspectionID == CommonlyInspectionList[j].ID); + CheckUserID = R_info.CheckUser; + ConfirmUserID = R_info.ConfirmUser; + ErrMes = R_info.ErrMes; + switch (R_info.CheckResult) + { + case "0": + str += ""; + break; + case "1": + str += ""; + break; + case "2": + str += ""; + break; + case "3": + str += ""; + break; + case "4": + str += ""; + break; + } + str += ""; + } + str += ""; + str += ""; + str += ""; + str += ""; + str += "
点检内容检查结果
" + CommonlyInspectionList[j].InspectionContent + "
异常情况描述
"; + str += ""; + str += ""; + str += ""; + + #endregion + } + else + { + #region 新增 + List CommonlyInspectionList = new List(); + foreach (var item in list) + { + CommonlyInspectionModel dm = Tool.Mapper(item); + dm.InspectionContent = CheckItemList.FirstOrDefault(p => p.ID.Equals(item.InspectionContentID)).CheckContent; + CommonlyInspectionList.Add(dm); + } + str = ""; + str += ""; + str += ""; + str += ""; + str += ""; + for (int j = 0; j < CommonlyInspectionList.Count; j++) + { + str += ""; + str += ""; + str += ""; + + + str += ""; + } + str += ""; + str += ""; + str += ""; + str += ""; + str += "
点检内容检查结果
" + CommonlyInspectionList[j].InspectionContent + "" + + "
异常情况描述
"; + str += ""; + #endregion + } + } + return str; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + } + public string GetReportDate(string VersionID, string CheckDate) + { + try + { + string str = ""; + + List ErrMesList = new List(); + + + BasicBLL dbUser = new BasicBLL(); + BasicBLL db = new BasicBLL(); + string jsonStr = "[]"; + List list = null; + list = db.SearchInfoByKey("IsUseing", 1).Where(p => p.VersionID.Equals(VersionID)).ToList(); + + if (list.Count > 0) + { + BasicBLL CheckItem_db = new BasicBLL(); + var CheckItemList = CheckItem_db.SearchAllInfo().ToList(); + + string[] arr_id = list.Select(s => s.ID).ToArray(); + BasicBLL CommonlyInspectionRecord_db = new BasicBLL(); + + DateTime StartTime = Convert.ToDateTime(CheckDate + "-01 00:00:00"); + DateTime EndTime = StartTime.AddMonths(1); + + int daynum = GetDays(Convert.ToInt32(CheckDate.Substring(0, 4)), Convert.ToInt32(CheckDate.Substring(5, 2))); + + + var _info = CommonlyInspectionRecord_db.SearchInfoByKey("IsUseing", 1).Where(p => p.CheckDate >= StartTime && p.CheckDate < EndTime && arr_id.Contains(p.CommonlyInspectionID)).ToList(); + var userList = dbUser.SearchAllInfo().ToList(); + if (_info.Count > 0) + { + #region 有记录 + List CommonlyInspectionList = new List(); + foreach (var item in list) + { + CommonlyInspectionModel dm = Tool.Mapper(item); + var IC_info = CheckItemList.FirstOrDefault(p => p.ID.Equals(item.InspectionContentID)); + if (IC_info != null) + { + dm.InspectionContent = IC_info.CheckContent; + CommonlyInspectionList.Add(dm); + } + + } + str = ""; + str += ""; + str += ""; + str += ""; + for (int i = 1; i <= daynum; i++) + { + str += ""; + } + + str += ""; + var info = CommonlyInspectionList.ToList(); + for (int j = 0; j < info.Count; j++) + { + + str += ""; + str += ""; + str += ""; + var R_info = _info.Where(p => p.CommonlyInspectionID == info[j].ID); + + for (int k = 1; k <= daynum; k++) + { + + DateTime dtime = StartTime.AddDays(k - 1); + var info_R = R_info.FirstOrDefault(p => p.CheckDate == dtime && p.CheckType.Equals("0")); + string CheckResult = ""; + if (info_R != null) + { + if (!String.IsNullOrEmpty(info_R.ErrMes) && !ErrMesList.Contains(dtime.ToString("yyyy-MM-dd") + ":" + info_R.ErrMes)) + { + ErrMesList.Add(dtime.ToString("yyyy-MM-dd") + ":" + info_R.ErrMes); + } + + //select + switch (info_R.CheckResult) + { + case "0": + CheckResult = "▲"; + break; + case "1": + CheckResult = "√"; + break; + case "2": + CheckResult = "◎"; + break; + case "3": + CheckResult = "X"; + break; + case "4": + CheckResult = "☆"; + break; + } + } + str += ""; + } + + str += ""; + + + str += ""; + for (int k = 1; k <= daynum; k++) + { + DateTime dtime = StartTime.AddDays(k - 1); + var info_R = R_info.FirstOrDefault(p => p.CheckDate == dtime && p.CheckType.Equals("1")); + string CheckResult = ""; + if (info_R != null) + { + //是否有异常记录并且没有加入到列表中 + if (!String.IsNullOrEmpty(info_R.ErrMes) && !ErrMesList.Contains(dtime.ToString("yyyy-MM-dd") + ":" + info_R.ErrMes)) + { + ErrMesList.Add(dtime.ToString("yyyy-MM-dd") + ":" + info_R.ErrMes); + } + + switch (info_R.CheckResult) + { + case "0": + CheckResult = "▲"; + break; + case "1": + CheckResult = "√"; + break; + case "2": + CheckResult = "◎"; + break; + case "3": + CheckResult = "X"; + break; + case "4": + CheckResult = "☆"; + break; + } + } + str += ""; + } + + str += ""; + + } + + str += ""; + str += ""; + str += ""; + for (int i = 1; i <= daynum; i++) + { + DateTime dtime = StartTime.AddDays(i - 1); + var infoUser = _info.FirstOrDefault(p => p.CheckDate == dtime); + if (infoUser != null) + { + str += ""; + } + else + { + str += ""; + } + } + str += ""; + + str += ""; + //str += ""; + str += ""; + for (int i = 1; i <= daynum; i++) + { + DateTime dtime = StartTime.AddDays(i - 1); + var infoUser = _info.FirstOrDefault(p => p.CheckDate == dtime); + if (infoUser != null) + { + str += ""; + } + else + { + str += ""; + } + } + str += ""; + + str += ""; + //str += ""; + str += ""; + for (int i = 1; i <= daynum; i++) + { + DateTime dtime = StartTime.AddDays(i - 1); + var infoUser = _info.FirstOrDefault(p => p.CheckDate == dtime); + if (infoUser != null) + { + str += ""; + } + else + { + str += ""; + } + } + str += ""; + + str += ""; + //str += ""; + str += ""; + for (int i = 1; i <= daynum; i++) + { + DateTime dtime = StartTime.AddDays(i - 1); + var infoUser = _info.FirstOrDefault(p => p.CheckDate == dtime); + if (infoUser != null) + { + str += ""; + } + else + { + str += ""; + } + } + str += ""; + str += "
序号点检内容" + i + "
" + (j + 1).ToString() + "" + info[j].InspectionContent + "" + CheckResult + "
" + CheckResult + "
日点检确认点检人(白 班)确认签名" + userList.FirstOrDefault(p => p.UserID.ToString().ToUpper().Equals(infoUser.CheckUser.ToUpper())).RealName + "
日点检确认点检人(夜 班)确认签名" + userList.FirstOrDefault(p => p.UserID.ToString().ToUpper().Equals(infoUser.CheckUser.ToUpper())).RealName + "
日点检确认点检人(白班班长)确认签名" + userList.FirstOrDefault(p => p.UserID.ToString().ToUpper().Equals(infoUser.ConfirmUser.ToUpper())).RealName + "
日点检确认点检人(夜班班长)确认签名" + userList.FirstOrDefault(p => p.UserID.ToString().ToUpper().Equals(infoUser.ConfirmUser.ToUpper())).RealName + "
"; + + if (ErrMesList.Count > 0) + { + #region 异常情况描述 + str += ""; + str += ""; + str += ""; + str += ""; + str += ""; + str += ""; + for (int i = 1; i < ErrMesList.Count; i++) + { + str += ""; + str += ""; + str += ""; + } + str += "
异常情况描述" + ErrMesList[0] + "
" + ErrMesList[i] + "
"; + #endregion + } + + + + #endregion + } + else + { + #region 无记录 + List CommonlyInspectionList = new List(); + foreach (var item in list) + { + CommonlyInspectionModel dm = Tool.Mapper(item); + var IC_info = CheckItemList.FirstOrDefault(p => p.ID.Equals(item.InspectionContentID)); + if (IC_info != null) + { + dm.InspectionContent = IC_info.CheckContent; + CommonlyInspectionList.Add(dm); + } + } + str = ""; + str += ""; + str += ""; + str += ""; + for (int i = 1; i <= daynum; i++) + { + str += ""; + } + + str += ""; + var info = CommonlyInspectionList.ToList(); + for (int j = 0; j < info.Count; j++) + { + str += ""; + str += ""; + str += ""; + for (int k = 1; k <= daynum; k++) + { + str += ""; + } + str += ""; + str += ""; + for (int k = 1; k <= daynum; k++) + { + str += ""; + } + str += ""; + } + + #endregion + + } + } + return str; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + } + public static int GetDays(int year, int month) + { + int days = 0; + if (month != 2) + { + switch (month) + { + case 1: + case 3: + case 5: + case 7: + case 8: + case 10: + case 12: + days = 31; + break; + case 4: + case 6: + case 9: + case 11: + days = 30; break; + } + } + else + { + // 闰年 + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) + days = 29; + else + days = 28; + } + return days; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Inspection/CommonlyInspectionVersionBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Inspection/CommonlyInspectionVersionBLL.cs new file mode 100644 index 0000000..b1bac7c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Inspection/CommonlyInspectionVersionBLL.cs @@ -0,0 +1,208 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.Inspection +{ + public class CommonlyInspectionVersionBLL + { + BasicBLL db = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize,string deviceID) + { + try + { + + BasicBLL station_db = new BasicBLL(); + BasicBLL device_db = new BasicBLL(); + + var station_list = station_db.SearchAllInfo().ToList(); + var device_list = device_db.SearchAllInfo().ToList(); + + + string jsonStr = "[]"; + int total = 0;//总行数 + List list = null; + + list = db.SearchAllInfo().ToList(); + + + if (deviceID != "") + { + list = list.Where(p => p.DeviceID.Equals(deviceID)).ToList(); + } + + List CommonlyInspectionVersionList = new List(); + if (list.Count > 0) + { + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + total = list.Count; + + #region 联查 + + + foreach (var item in list) + { + CommonlyInspectionVersionModel dm = Tool.Mapper(item); + var info = device_list.FirstOrDefault(p => p.DeviceID.Equals(item.DeviceID)); + if (info != null) + { + dm.DeviceID = info.DeviceID; + dm.DeviceName = info.DeviceNo + "----" + info.DeviceName; + } + if (item.IsUseing == 1) + { + dm.IsUseingName = "启用"; + } + CommonlyInspectionVersionList.Add(dm); + } + #endregion + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = CommonlyInspectionVersionList; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + /// + /// 添加信息 + /// + /// 模型对象 + /// + public bool AddInfo(tb_CommonlyInspectionVersion md, string s) + { + try + { + var list = db.SearchInfoByKey("DeviceID", md.DeviceID).Where(p => p.Version == md.Version).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + if (db.AddInfo(md)) + { + BasicBLL CommonlyInspection_db = new BasicBLL(); + string[] arry = s.Split(','); + for (int i = 0; i < arry.Length; i++) + { + tb_CommonlyInspection m = new tb_CommonlyInspection(); + m.ID = Guid.NewGuid().ToString(); + m.VersionID = md.ID; + m.InspectionContentID = arry[i]; + m.CreateUserID = md.CreateUserID; + m.CreateTime = md.CreateTime; + m.IsUseing = 1; + CommonlyInspection_db.AddInfo(m); + } + return true; + } + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// 模型对象 + /// + public bool UpdateInfo(tb_CommonlyInspectionVersion md) + { + try + { + //var list = db.SearchInfoByKey("ProductionLineID", md.ProductionLineID).Where(p => p.DeviceNo == md.DeviceNo).ToList();//判断是否有重复数据 + //if (list.Count > 0) + //{ + // return false; + //} + ////初始化要更新的字段 + //string[] proNames = new string[6]; + //proNames[0] = "ProductionLineID"; + //proNames[1] = "DeviceNo"; + //proNames[2] = "DeviceName"; + //proNames[3] = "Description"; + //proNames[4] = "UpdateUserID"; + //proNames[5] = "UpdateTime"; + + ////必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + ////如果没有初始化必填字段,更新会报错 + //md.CreateUserID = ""; + + //return db.UpdateInfo(md, proNames); + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + /// 删除生产线信息 + public bool DelInfo(tb_CommonlyInspectionVersion md) + { + try + { + ////初始化要更新的字段 + //string[] proNames = new string[3]; + //proNames[0] = "IsUseing"; + //proNames[1] = "DisableTime"; + //proNames[2] = "DisableUserID"; + + ////必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + ////如果没有初始化必填字段,更新会报错 + //md.ProductionLineID = 0; + //md.DeviceNo = ""; + //md.DeviceName = ""; + //md.CreateUserID = ""; + //return db.UpdateInfo(md, proNames); + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + public string GetComboboxData(string deviceID) + { + try + { + string jsonStr = "[]"; + var list = db.SearchInfoByKey("IsUseing", 1).ToList();//判断是否有重复数据 + if (deviceID != null && deviceID != "") + { + list = list.Where(p => p.DeviceID.Equals(deviceID)).ToList(); + } + jsonStr = JSONTools.ScriptSerialize>(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake243/Assembly243BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Assembly243BLL.cs new file mode 100644 index 0000000..80de4bd --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Assembly243BLL.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake243; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Mistake243 +{ + public class Assembly243BLL + { + public DataTable searchPartNo(string partno) + { + Assembly243DAL da = new Assembly243DAL(); + try + { + return da.searchPartNo(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(Assembly243Model md) + { + Assembly243DAL da = new Assembly243DAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(Assembly243Model md) + { + Assembly243DAL da = new Assembly243DAL(); + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake243/Box243BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Box243BLL.cs new file mode 100644 index 0000000..0271d95 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Box243BLL.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake243; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Mistake243 +{ + public class Box243BLL + { + public bool AddInfo(BoxModel md) + { + Box243DAL da = new Box243DAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(BoxModel md) + { + Box243DAL da = new Box243DAL(); + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable searchBox(string partno) + { + Box243DAL da = new Box243DAL(); + try + { + return da.SearchBox(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBoxIsExsit(string box) + { + Box243DAL da = new Box243DAL(); + try + { + return da.SearchBoxIsExsit(box); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake243/Mistake243BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Mistake243BLL.cs new file mode 100644 index 0000000..8353cce --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Mistake243BLL.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake243; + +namespace MESClassLibrary.BLL.Mistake243 +{ + public class Mistake243BLL + { + public DataTable IsMath(string DeviceNo, string PartNo) + { + Mistake243DAL da = new Mistake243DAL(); + try + { + return da.IsMath(DeviceNo, PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByNo(string PartNo, string deviceNo) + { + Mistake243DAL da = new Mistake243DAL(); + try + { + return da.SearchByNo(PartNo, deviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPartName(string PartNo) + { + Mistake243DAL da = new Mistake243DAL(); + try + { + return da.SearchPartName(PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake243/Plan243BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Plan243BLL.cs new file mode 100644 index 0000000..6d5a08d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Plan243BLL.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake243; + +namespace MESClassLibrary.BLL.Mistake243 +{ + public class Plan243BLL + { + public DataTable SearhByOrderNo(string OrderNo) + { + Plan243DAL da = new Plan243DAL(); + try + { + return da.SearhByOrderNo(OrderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable IsHavePlan(string partNo1, string orderNo) + { + Plan243DAL da = new Plan243DAL(); + try + { + return da.IsHavePlan(partNo1, orderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdateCount(string partNo, string orderNo) + { + Plan243DAL da = new Plan243DAL(); + try + { + return da.UpdateCount(partNo, orderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake243/Record243BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Record243BLL.cs new file mode 100644 index 0000000..5643a53 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake243/Record243BLL.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace MESClassLibrary.BLL.Mistake243 +{ + class Record243BLL + { + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake243/RecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake243/RecordBLL.cs new file mode 100644 index 0000000..ebd5164 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake243/RecordBLL.cs @@ -0,0 +1,155 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake243; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Mistake243 +{ + public class RecordBLL + { + public DataTable SearchByPartNo1(string PartNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchByPartNo1(PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable GetCount(string part, string batch) + { + RecordDAL da = new RecordDAL(); + try + { + return da.GetCount(part, batch); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByPartNo2(string partno) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchByPartNo2(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBoxByPart(string part) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchBoxByPart(part); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchCountByBox(string boxNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchCountByBox(boxNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool updateBoxInfo(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.updateBoxInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchState(int type1, int type2, int type3) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchState(type1, type2, type3); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetRecord(string boxNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.GetRecord(boxNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake247/AssemblyBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake247/AssemblyBLL.cs new file mode 100644 index 0000000..4f3e8f7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake247/AssemblyBLL.cs @@ -0,0 +1,218 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake247; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Mistake247 +{ + public class AssemblyBLL + { + public bool AddInfo(AssemblyModel md) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(AssemblyModel md) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchCount( string PartNo) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.SearchCount(PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdatePrintFlag(AssemblyModel md) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.UpdatePrintFlag(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdatePrintFlag1(string partno) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.UpdatePrintFlag1(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable searchPartNo(string partno) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.searchPartNo(partno); + } + catch (Exception ex) + { + throw ex; + //LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + + //return null; + } + } + + public DataTable IsVisual(string barcode) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.IsVisual(barcode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPrintByDeviceNo(string DeviceNo1) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.SearchPrintByDeviceNo( DeviceNo1); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetDeviceNo(string DeviceNo1, string DeviceNo2, string DeviceNo3, string DeviceNo4) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.GetDeviceNo(DeviceNo1, DeviceNo2, DeviceNo3, DeviceNo4); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable IsHavePrint(string DeviceNo1, string DeviceNo2, string DeviceNo3, string DeviceNo4) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.IsHavePrint(DeviceNo1, DeviceNo2, DeviceNo3, DeviceNo4); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdatePrintByID(string id) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.UpdatePrintByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + + #region 243 + + public DataTable searchPartNo1(string partno) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.searchPartNo1(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo1(AssemblyModel md) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.AddInfo1(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo1(AssemblyModel md) + { + AssemblyDAL da = new AssemblyDAL(); + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + #endregion + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake247/BoxBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake247/BoxBLL.cs new file mode 100644 index 0000000..d4e22ab --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake247/BoxBLL.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake247; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Mistake247 +{ + public class BoxBLL + { + public bool AddInfo(BoxModel md) + { + BoxDAL da = new BoxDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchByNo(string PartNo, string BatchNo) + { + BoxDAL da = new BoxDAL(); + try + { + return da.SearchByNo(PartNo, BatchNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdateInfo(BoxModel md) + { + BoxDAL da = new BoxDAL(); + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable searchBox(string partno) + { + BoxDAL da = new BoxDAL(); + try + { + return da.SearchBox(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBoxIsExsit(string box) + { + BoxDAL da = new BoxDAL(); + try + { + return da.SearchBoxIsExsit(box); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake247/MistakeBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake247/MistakeBLL.cs new file mode 100644 index 0000000..26850b1 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake247/MistakeBLL.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake247; +using MESClassLibrary.DAL.painting; + +namespace MESClassLibrary.BLL.Mistake247 +{ + public class MistakeBLL + { + public DataTable IsMath(string DeviceNo, string PartNo) + { + MistakeDAL da = new MistakeDAL(); + try + { + return da.IsMath(DeviceNo, PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByNo(string PartNo,string deviceNo) + { + MistakeDAL da = new MistakeDAL(); + try + { + return da.SearchByNo(PartNo, deviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPartName(string PartNo) + { + MistakeDAL da = new MistakeDAL(); + try + { + return da.SearchPartName(PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPartNoByDecice(string deviceNo) + { + MistakeDAL da = new MistakeDAL(); + try + { + return da.SearchPartNoByDecice(deviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + #region 243 + + public DataTable IsMath1(string DeviceNo, string PartNo) + { + MistakeDAL da = new MistakeDAL(); + try + { + return da.IsMath1(DeviceNo, PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByNo1(string PartNo, string deviceNo) + { + MistakeDAL da = new MistakeDAL(); + try + { + return da.SearchByNo1(PartNo, deviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPartName1(string PartNo) + { + MistakeDAL da = new MistakeDAL(); + try + { + return da.SearchPartName1(PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + #endregion + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake247/Plan247BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake247/Plan247BLL.cs new file mode 100644 index 0000000..fbcbf4b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake247/Plan247BLL.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake247; + +namespace MESClassLibrary.BLL.Mistake247 +{ + public class Plan247BLL + { + public DataTable SearhByOrderNo(string OrderNo) + { + Plan247DAL da = new Plan247DAL(); + try + { + return da.SearhByOrderNo(OrderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable DetailOrderNo(string OrderNo) + { + Plan247DAL da = new Plan247DAL(); + try + { + return da.DetailOrderNo(OrderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable IsHavePlan(string partNo1, string orderNo) + { + Plan247DAL da = new Plan247DAL(); + try + { + return da.IsHavePlan(partNo1, orderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + public DataTable SearhCountByOrderNo(string OrderNo, string partNo) + { + Plan247DAL da = new Plan247DAL(); + try + { + return da.SearhCountByOrderNo(OrderNo, partNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdateCount(string partNo, string orderNo) + { + Plan247DAL da = new Plan247DAL(); + try + { + return da.UpdateCount(partNo, orderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + #region 243 + + public DataTable SearhByOrderNo1(string OrderNo) + { + Plan247DAL da = new Plan247DAL(); + try + { + return da.SearhByOrderNo1(OrderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable IsHavePlan1(string partNo1, string orderNo) + { + Plan247DAL da = new Plan247DAL(); + try + { + return da.IsHavePlan1(partNo1, orderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + #endregion + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake247/RecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake247/RecordBLL.cs new file mode 100644 index 0000000..b799302 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake247/RecordBLL.cs @@ -0,0 +1,352 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.Mistake247; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Mistake247 +{ + public class RecordBLL + { + public DataTable SearchByPartNo1(string PartNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchByPartNo1(PartNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchCountByBox(string boxNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchCountByBox(boxNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateCreateTime1(string partNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.UpdateCreateTime1(partNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool updateBoxInfo(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.updateBoxInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchState(int type1,int type2,int type3) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchState(type1,type2,type3); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool DelInfo(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchBoxByPart(string part) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchBoxByPart(part); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByPartNo2(string partno) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchByPartNo2(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetCount(string part,string batch) + { + RecordDAL da = new RecordDAL(); + try + { + return da.GetCount(part,batch); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + public DataTable GetRecord(string boxNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.GetRecord(boxNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetOrderNum(string orderno) + { + RecordDAL da = new RecordDAL(); + try + { + return da.GetOrderNum(orderno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchIsVisualByPartNo2(string partno) + { + try + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchIsVisualByPartNo2(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public string GetDeviceNo() + { + try + { + RecordDAL da=new RecordDAL(); + + return da.GetDeviceNo(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return ""; + } + } + + #region 243 + + public bool AddInfo1(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.AddInfo1(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable GetCount1(string part, string batch) + { + RecordDAL da = new RecordDAL(); + try + { + return da.GetCount1(part, batch); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByPartNo4(string partno) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchByPartNo4(partno); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBoxByPart1(string part) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchBoxByPart1(part); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchCountByBox1(string boxNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchCountByBox1(boxNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool updateBoxInfo1(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.updateBoxInfo1(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo1(RecordModel md) + { + RecordDAL da = new RecordDAL(); + try + { + return da.DelInfo1(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + public DataTable SearchState1(int type1, int type2, int type3) + { + RecordDAL da = new RecordDAL(); + try + { + return da.SearchState1(type1, type2, type3); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetRecord1(string boxNo) + { + RecordDAL da = new RecordDAL(); + try + { + return da.GetRecord1(boxNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + #endregion + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Mistake247/ToVisualBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Mistake247/ToVisualBLL.cs new file mode 100644 index 0000000..fee4aad --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Mistake247/ToVisualBLL.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.Mistake247; + +namespace MESClassLibrary.BLL.Mistake247 +{ + public class ToVisualBLL + { + ToVisualDAL da=new ToVisualDAL(); + + public bool AddInfo(string PartNo, string tableName) + { + try + { + return da.AddInfo(PartNo, tableName); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchInfoByPartNo(string PartNo, string tableName) + { + try + { + return da.SearchInfoByPartNo(PartNo, tableName); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool IsVisual(string tableName) + { + try + { + return da.IsVisual(tableName); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/MistakeGratings/GratingsBll.cs b/BBMPTMes/MESClassLibrary/BLL/MistakeGratings/GratingsBll.cs new file mode 100644 index 0000000..5e4a739 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/MistakeGratings/GratingsBll.cs @@ -0,0 +1,169 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.EFModel; + +namespace MESClassLibrary.BLL.MistakeGratings +{ + public class GratingsBll + { + public DataTable SearchAll() + { + DataTable res = null; + try + { + string sql = @"select * from tb_Mistake_Gratings"; + res = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + } + + return res; + } + + public DataTable SearchAllByPartNo1(string partNo1) + { + DataTable res = null; + try + { + string sql = @"select * from tb_Mistake_Gratings where PartNo1='" + partNo1 + @"'"; + res = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + + public DataTable SearchInfoByBarCode2(string barCode2) + { + DataTable res = null; + try + { + string sql = @"select * from tb_Record_Gratings where BarCode2='"+ barCode2 +@"'"; + res = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + + public DataTable SearchInfoByBarCode1(string barCode1) + { + DataTable res = null; + try + { + string sql = @"select * from tb_Record_Gratings where BarCode1='" + barCode1 + @"'"; + res = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + + public DataTable SearchMath(string partNo1, string partNo2) + { + DataTable res = null; + try + { + string sql = @"select * from tb_Mistake_Gratings where PartNo1='" + partNo1 + @"' and PartNo2='" + partNo2 + @"'"; + res = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + + private BasicBLL db = new BasicBLL(); + + private BasicBLL db1 = new BasicBLL(); + + public bool AddRecord(tb_Record_Gratings md) + { + bool result; + try + { + string sql = + @"insert into tb_Record_Gratings (BarCode1,BarCode2,ZcCode,CreateTime,Flag) values(@BarCode1,@BarCode2,@ZcCode,@CreateTime,@Flag)"; + + SqlParameter[] param = null; + param = new SqlParameter[5]; + param[0] = new SqlParameter("@BarCode1", SqlDbType.VarChar); + param[0].Value = md.BarCode1; + + param[1] = new SqlParameter("@BarCode2", SqlDbType.VarChar); + param[1].Value = md.BarCode2; + + param[2] = new SqlParameter("@ZcCode", SqlDbType.VarChar); + param[2].Value = md.ZcCode; + + param[3] = new SqlParameter("@CreateTime", SqlDbType.DateTime); + param[3].Value = md.CreateTime; + + param[4] = new SqlParameter("@Flag", SqlDbType.Int); + param[4].Value = md.Flag; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + result = true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + result = false; + } + return result; + } + + public DataTable SearchInfoLast(string zcCode) + { + DataTable res = null; + try + { + string sql = @"select top 1 * from tb_Record_Gratings where ZcCode like '%" + zcCode + @"%' + and Flag=0 order by ID desc"; + res = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + + public DataTable SearchInfoLastByCode1(string barCode1) + { + DataTable res = null; + try + { + string sql = @"select top 1 * from tb_Record_Gratings where BarCode1 = '" + barCode1 + @"' order by ID desc"; + res = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PaintDown/PaintDownBll.cs b/BBMPTMes/MESClassLibrary/BLL/PaintDown/PaintDownBll.cs new file mode 100644 index 0000000..e3dd007 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PaintDown/PaintDownBll.cs @@ -0,0 +1,28 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.PaintDown; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.PaintDown +{ + public class PaintDownBll + { + PaintDownDal da=new PaintDownDal(); + public DataTable SearchInfoByTime(string time1, string time2) + { + try + { + return da.SearchInfoByTime(time1, time2); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/InspectResultBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/InspectResultBLL.cs new file mode 100644 index 0000000..b106b25 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/InspectResultBLL.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.painting; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Painting +{ + public class InspectResultBLL + { + InspectResultDAL da = new InspectResultDAL(); + + public bool AddInfo(InspectResultModel md) + { + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchInfoByBarcode(string barcode) + { + try + { + return da.SearchInfoByBarcode(barcode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public string OneBarCode(string barcode) + { + try + { + return da.OneBarCode(barcode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return barcode; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/NotStockBarCodeBll.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/NotStockBarCodeBll.cs new file mode 100644 index 0000000..28562c5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/NotStockBarCodeBll.cs @@ -0,0 +1,27 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.Painting +{ + public class NotStockBarCodeBll + { + NotStockBarCodeDal da = new NotStockBarCodeDal(); + public DataTable NotStockInBarCode(string time1, string time2) + { + try + { + return da.NotStockInBarCode(time1 , time2); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/NotUpBarCodeBll.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/NotUpBarCodeBll.cs new file mode 100644 index 0000000..9930565 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/NotUpBarCodeBll.cs @@ -0,0 +1,29 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.Painting +{ + public class NotUpBarCodeBll + { + NotUpBarCodeDal da=new NotUpBarCodeDal(); + + public DataTable NotUpBarCode() + { + try + { + return da.NotUpBarCode(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/PaintBarCodeBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/PaintBarCodeBLL.cs new file mode 100644 index 0000000..8528505 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/PaintBarCodeBLL.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.painting; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Painting +{ + public class PaintBarCodeBLL + { + public DataTable SearchAll(string banci,string productdate) + { + PaintBarCodeDAL da=new PaintBarCodeDAL(); + try + { + return da.SearchInfoAll(banci, productdate); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBarCode( string productdate, string ProductID) + { + PaintBarCodeDAL da = new PaintBarCodeDAL(); + try + { + return da.SearchBarCode( productdate, ProductID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + throw ex; + } + } + + public bool AddInfo(PaintBarCodeModel md) + { + PaintBarCodeDAL da = new PaintBarCodeDAL(); + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdatePrintTime(PaintBarCodeModel md) + { + PaintBarCodeDAL da = new PaintBarCodeDAL(); + try + { + return da.UpdatePrintTime(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/PaintPersonBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/PaintPersonBLL.cs new file mode 100644 index 0000000..1eb432c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/PaintPersonBLL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.painting; + +namespace MESClassLibrary.BLL.Painting +{ + public class PaintPersonBLL + { + PaintPersonDAL da = new PaintPersonDAL(); + + public DataTable SearchInfo() + { + try + { + return da.SearchInfo(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/PaintReasonBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/PaintReasonBLL.cs new file mode 100644 index 0000000..30b5dbb --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/PaintReasonBLL.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.painting; + +namespace MESClassLibrary.BLL.Painting +{ + public class PaintReasonBLL + { + PaintReasonDAL da=new PaintReasonDAL(); + + public DataTable SearchInfo() + { + try + { + return da.SearchInfo(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/PunchNotStockBarCodeBll.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/PunchNotStockBarCodeBll.cs new file mode 100644 index 0000000..30990bd --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/PunchNotStockBarCodeBll.cs @@ -0,0 +1,28 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.painting; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.Painting +{ + public class PunchNotStockBarCodeBll + { + PunchNotStockBarCodeDal da=new PunchNotStockBarCodeDal(); + public DataTable PunchNotStockBarCode(string time1, string time2) + { + try + { + return da.PunchNotStockBarCode(time1,time2); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/ScanRecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/ScanRecordBLL.cs new file mode 100644 index 0000000..7d165bf --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/ScanRecordBLL.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; + +namespace MESClassLibrary.BLL.Painting +{ + public class ScanRecordBLL + { + BasicBLL db=new BasicBLL(); + + public bool AddInfo(tb_PaintScanRecord md) + { + try + { + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool IsExsit(string barcode) + { + try + { + var list = db.SearchAllInfo().Where(p => p.OneBarCode == barcode).ToList(); + if (list.Count > 0) + { + return true; + } + + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/StockInBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/StockInBLL.cs new file mode 100644 index 0000000..efb13e0 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/StockInBLL.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.BasicInfo; +using MESClassLibrary.DAL.painting; + +namespace MESClassLibrary.BLL.Painting +{ + public class StockInBLL + { + public DataTable SearchInfoA() + { + StockInDAL da = new StockInDAL(); + try + { + return da.SearchInfoA(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoB() + { + StockInDAL da = new StockInDAL(); + try + { + return da.SearchInfoB(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoBByA() + { + StockInDAL da = new StockInDAL(); + try + { + return da.SearchInfoBByA(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoAByB() + { + StockInDAL da = new StockInDAL(); + try + { + return da.SearchInfoAByB(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchDetailA() + { + StockInDAL da = new StockInDAL(); + try + { + return da.SearchDetailA(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchDetailB() + { + StockInDAL da = new StockInDAL(); + try + { + return da.SearchDetailB(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchColor(string barCode) + { + StockInDAL da = new StockInDAL(); + try + { + return da.SearchColor(barCode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Painting/TmpBarCodeBll.cs b/BBMPTMes/MESClassLibrary/BLL/Painting/TmpBarCodeBll.cs new file mode 100644 index 0000000..df9fc9a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Painting/TmpBarCodeBll.cs @@ -0,0 +1,56 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.painting; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.Painting +{ + public class TmpBarCodeBll + { + TmpBarCodeDal da = new TmpBarCodeDal(); + + public bool ClearBarCode() + { + try + { + return da.ClearBarCode(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool AddInfo(string barCode) + { + try + { + return da.AddInfo(barCode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public int InsertBulkCopy(string connectionString, DataTable dt) + { + try + { + return da.InsertBulkCopy(connectionString, dt); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return -1; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Plan243/Plan243BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Plan243/Plan243BLL.cs new file mode 100644 index 0000000..af5fc51 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Plan243/Plan243BLL.cs @@ -0,0 +1,416 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.Mistake247; +using MESClassLibrary.DAL.Plan243; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Plan243 +{ + public class Plan243BLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + public string SearchOrderNo(string StartTime) + { + try + { + + string jsonStr = ""; + string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); + var info = ef.tb_Plan_243.Where(p => p.OrderNo.Contains(orderNo)).OrderByDescending(p => p.OrderNo).FirstOrDefault(); + + if (info != null) + { + return (Convert.ToInt64(info.OrderNo) + 1).ToString(); + } + else + { + return orderNo + "0001"; + } + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = ef.tb_Mistake_243.ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public string GetMistake(string id) + { + try + { + string jsonStr = "[]"; + var list = ef.tb_Mistake_243.Where(p => p.ID.Equals(id)).FirstOrDefault();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return null; + } + } + + public string QueryForComboboxOrderNo(string StartTime) + { + try + { + string jsonStr = "[]"; + List list = new List(); + string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); + var info = ef.tb_Plan_243.Where(p => p.OrderNo.Contains(orderNo)).GroupBy(p => p.OrderNo).Select(p => p.Key).ToList();//判断是否有重复数据 + foreach (var item in info) + { + SelectModel md = new SelectModel(); + md.textField = item; + md.valueField = item; + list.Add(md); + } + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public string QueryForItem(string OrderNo) + { + try + { + var info = ef.tb_Plan_243.Where(p => p.OrderNo.Equals(OrderNo)).OrderByDescending(p => p.Item).FirstOrDefault();//判断是否有重复数据 + return (info.Item + 1).ToString(); + } + catch (Exception) + { + return ""; + } + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string OrderNo) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + List list = ef.tb_Plan_243.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(OrderNo)) + { + list = list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); + } + + + if (list.Count > 0) + { + + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + List modelList = new List(); + + #region 联查 + + var listModel = ef.tb_Mistake_243.ToList(); + + foreach (var item in list) + { + tb_Plan_243Model dm = Tool.Mapper(item); + + var machine_info = listModel.FirstOrDefault(p => p.PartNo2 == item.PartNo); + if (machine_info != null) + { + dm.PartName = machine_info.PartName2; + } + + modelList.Add(dm); + } + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Plan_243 md) + { + try + { + var list = ef.tb_Plan_243.Where(p => p.OrderNo == md.OrderNo).ToList(); + if (list != null && list.Count > 0) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public bool UpdateAddInfo(tb_Plan_243 md) + { + try + { + var list = ef.tb_Plan_243.Where(p => p.OrderNo == md.OrderNo && p.PartNo == md.PartNo).ToList(); + if (list != null && list.Count > 0) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Plan_243 md) + { + try + { + //初始化要更新的字段 + string[] proNames = new string[1]; + proNames[0] = "OrderCount"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public List> SearchForExcel(string StartTime, string EndTime, string OrderNo) + { + try + { + List> list = new List>(); + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + List titleList = new List(); + titleList.Add("生产计划单号"); + titleList.Add("序号"); + titleList.Add("零件号"); + titleList.Add("零件名称"); + titleList.Add("数量"); + titleList.Add("领用数量"); + titleList.Add("完成数量"); + titleList.Add("返修数量"); + titleList.Add("成品报废"); + titleList.Add("半成品报废"); + titleList.Add("备注"); + titleList.Add("创建时间"); + list.Add(titleList); + + List Plan_243_list = ef.tb_Plan_243.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(OrderNo)) + { + Plan_243_list = Plan_243_list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); + } + + if (Plan_243_list.Count > 0) + { + List modelList = new List(); + var listModel = ef.tb_Mistake_243.ToList(); + + foreach (var item in Plan_243_list) + { + tb_Plan_243Model dm = Tool.Mapper(item); + + var machine_info = listModel.FirstOrDefault(p => p.PartNo2 == item.PartNo); + if (machine_info != null) + { + dm.PartName = machine_info.PartName2; + } + + modelList.Add(dm); + } + + for (int i = 0; i < modelList.Count; i++) + { + List rowList = new List(); + rowList.Add(modelList[i].OrderNo); + rowList.Add(modelList[i].Item == null ? "" : modelList[i].Item.ToString()); + rowList.Add(modelList[i].PartNo); + rowList.Add(modelList[i].PartName == null ? "" : modelList[i].PartName.ToString()); + rowList.Add(modelList[i].OrderCount == null ? "" : modelList[i].OrderCount.ToString()); + rowList.Add(modelList[i].LyCount == null ? "" : modelList[i].LyCount.ToString()); + rowList.Add(modelList[i].CompleteCount == null ? "" : modelList[i].CompleteCount.ToString()); + rowList.Add(modelList[i].RepairCount == null ? "" : modelList[i].RepairCount.ToString()); + rowList.Add(modelList[i].ScrapCount1 == null ? "" : modelList[i].ScrapCount1.ToString()); + rowList.Add(modelList[i].ScrapCount2 == null ? "" : modelList[i].ScrapCount2.ToString()); + rowList.Add(modelList[i].Des); + rowList.Add(modelList[i].CreateTime == null ? "" : modelList[i].CreateTime.ToString()); + list.Add(rowList); + } + } + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Plan_243 md) + { + try + { + if (ef.tb_Plan_243.Where(p => p.ID == md.ID && p.CompleteCount > 0).Count() > 0) + { + return false; + } + return db.DelInfo(md); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + //校验是否生成计划单号日期部分+零件号有相同的计划 + public bool QueryByOrderNo(string OrderNo, string PartNo) + { + try + { + var info = ef.tb_Plan_243.Where(p => p.OrderNo.Contains(OrderNo) && p.PartNo.Equals(PartNo)); + if (info.Count() > 0) + { + return true; + } + return false; + } + catch (Exception) + { + return false; + } + } + + //校验是否同一个生成计划单号下有相同序号的计划 + public bool QueryByOrderNoAndItem(string OrderNo, int Item) + { + try + { + var info = ef.tb_Plan_243.Where(p => p.OrderNo.Equals(OrderNo) && p.Item == Item); + if (info.Count() > 0) + { + return true; + } + return false; + } + catch (Exception) + { + return false; + } + } + + public DataTable SearhByOrderNo(string OrderNo) + { + Plan243DAL da = new Plan243DAL(); + try + { + return da.SearhByOrderNo(OrderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable DetailOrderNo(string OrderNo) + { + Plan243DAL da = new Plan243DAL(); + try + { + return da.DetailOrderNo(OrderNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Plan247/Plan247BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Plan247/Plan247BLL.cs new file mode 100644 index 0000000..ed46b0c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Plan247/Plan247BLL.cs @@ -0,0 +1,399 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.Plan247 +{ + public class Plan247BLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Plan_247 md) + { + try + { + var list = ef.tb_Plan_247.Where(p => p.OrderNo == md.OrderNo).ToList(); + if (list != null && list.Count > 0) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public bool UpdateAddInfo(tb_Plan_247 md) + { + try + { + var list = ef.tb_Plan_247.Where(p => p.OrderNo==md.OrderNo && p.PartNo == md.PartNo).ToList(); + if (list != null && list.Count > 0) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + + + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Plan_247 md) + { + try + { + + //初始化要更新的字段 + string[] proNames = new string[1]; + proNames[0] = "OrderCount"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Plan_247 md) + { + try + { + if (ef.tb_Plan_247.Where(p => p.ID == md.ID && p.CompleteCount > 0).Count() > 0) + { + return false; + } + return db.DelInfo(md); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string OrderNo) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + List list = ef.tb_Plan_247.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(OrderNo)) + { + list = list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); + } + + + if (list.Count > 0) + { + + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + List modelList = new List(); + + #region 联查 + + var listModel = ef.tb_Mistake_247.ToList(); + + foreach (var item in list) + { + tb_Plan_247Model dm = Tool.Mapper(item); + + var machine_info = listModel.FirstOrDefault(p => p.PartNo2 == item.PartNo); + if (machine_info != null) + { + dm.PartName = machine_info.PartName2; + } + + modelList.Add(dm); + } + #endregion + + + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public string SearchOrderNo(string StartTime) + { + try + { + + string jsonStr = ""; + string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); + var info = ef.tb_Plan_247.Where(p => p.OrderNo.Contains(orderNo)).OrderByDescending(p => p.OrderNo).FirstOrDefault(); + + if (info != null) + { + return (Convert.ToInt64(info.OrderNo) + 1).ToString(); + } + else + { + return orderNo + "0001"; + } + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = ef.tb_Mistake_247.ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public string GetMistake(string id) + { + try + { + string jsonStr = "[]"; + var list = ef.tb_Mistake_247.Where(p => p.ID.Equals(id)).FirstOrDefault();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return null; + } + } + + public string QueryForComboboxOrderNo(string StartTime) + { + try + { + string jsonStr = "[]"; + List list = new List(); + string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); + var info = ef.tb_Plan_247.Where(p => p.OrderNo.Contains(orderNo)).GroupBy(p => p.OrderNo).Select(p => p.Key).ToList();//判断是否有重复数据 + foreach (var item in info) + { + SelectModel md = new SelectModel(); + md.textField = item; + md.valueField = item; + list.Add(md); + } + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public string QueryForItem(string OrderNo) + { + try + { + var info = ef.tb_Plan_247.Where(p => p.OrderNo.Equals(OrderNo)).OrderByDescending(p => p.Item).FirstOrDefault();//判断是否有重复数据 + return (info.Item + 1).ToString(); + } + catch (Exception) + { + return ""; + } + } + + //校验是否生成计划单号日期部分+零件号有相同的计划 + public bool QueryByOrderNo(string OrderNo, string PartNo) + { + try + { + var info = ef.tb_Plan_247.Where(p => p.OrderNo.Contains(OrderNo) && p.PartNo.Equals(PartNo)); + if (info.Count() > 0) + { + return true; + } + return false; + } + catch (Exception) + { + return false; + } + } + + //校验是否同一个生成计划单号下有相同序号的计划 + public bool QueryByOrderNoAndItem(string OrderNo, int Item) + { + try + { + var info = ef.tb_Plan_247.Where(p => p.OrderNo.Equals(OrderNo) && p.Item == Item); + if (info.Count() > 0) + { + return true; + } + return false; + } + catch (Exception) + { + return false; + } + } + + + public List> SearchForExcel(string StartTime, string EndTime, string OrderNo) + { + try + { + List> list = new List>(); + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + + List titleList = new List(); + titleList.Add("生产计划单号"); + titleList.Add("序号"); + titleList.Add("零件号"); + titleList.Add("零件名称"); + titleList.Add("数量"); + titleList.Add("领用数量"); + titleList.Add("完成数量"); + titleList.Add("返修数量"); + titleList.Add("成品报废"); + titleList.Add("半成品报废"); + titleList.Add("备注"); + titleList.Add("创建时间"); + list.Add(titleList); + + List Plan_247_list = ef.tb_Plan_247.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(OrderNo)) + { + Plan_247_list = Plan_247_list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); + } + + if (Plan_247_list.Count > 0) + { + List modelList = new List(); + var listModel = ef.tb_Mistake_247.ToList(); + + foreach (var item in Plan_247_list) + { + tb_Plan_247Model dm = Tool.Mapper(item); + + var machine_info = listModel.FirstOrDefault(p => p.PartNo2 == item.PartNo); + if (machine_info != null) + { + dm.PartName = machine_info.PartName2; + } + + modelList.Add(dm); + } + + for (int i = 0; i < modelList.Count; i++) + { + List rowList = new List(); + rowList.Add(modelList[i].OrderNo); + rowList.Add(modelList[i].Item == null ? "" : modelList[i].Item.ToString()); + rowList.Add(modelList[i].PartNo); + rowList.Add(modelList[i].PartName == null ? "" : modelList[i].PartName.ToString()); + rowList.Add(modelList[i].OrderCount == null ? "" : modelList[i].OrderCount.ToString()); + rowList.Add(modelList[i].LyCount == null ? "" : modelList[i].LyCount.ToString()); + rowList.Add(modelList[i].CompleteCount == null ? "" : modelList[i].CompleteCount.ToString()); + rowList.Add(modelList[i].RepairCount == null ? "" : modelList[i].RepairCount.ToString()); + rowList.Add(modelList[i].ScrapCount1 == null ? "" : modelList[i].ScrapCount1.ToString()); + rowList.Add(modelList[i].ScrapCount2 == null ? "" : modelList[i].ScrapCount2.ToString()); + rowList.Add(modelList[i].Des); + rowList.Add(modelList[i].CreateTime == null ? "" : modelList[i].CreateTime.ToString()); + list.Add(rowList); + } + } + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PlanPunchBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PlanPunchBLL.cs new file mode 100644 index 0000000..1042a0b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PlanPunchBLL.cs @@ -0,0 +1,443 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PlanPunchBLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string OrderNo) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + List list = ef.tb_Plan_Punch.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(OrderNo)) + { + list = list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); + } + + + if (list.Count > 0) + { + + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + List modelList = new List(); + + #region 联查 + + var listModel = ef.tb_Product.ToList(); + + foreach (var item in list) + { + tb_Plan_PunchModel dm = Tool.Mapper(item); + + var machine_info = listModel.FirstOrDefault(p => p.PartNo == item.PartNo); + if (machine_info != null) + { + dm.PartName = machine_info.ProductName; + } + + modelList.Add(dm); + } + #endregion + + + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Plan_Punch md) + { + try + { + var list = ef.tb_Plan_Punch.Where(p => p.OrderNo == md.OrderNo && p.Item==md.Item && p.PartNo==md.PartNo).ToList(); + if (list.Count > 0) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public bool UpdateAddInfo(tb_Plan_Punch md) + { + try + { + var list = ef.tb_Plan_Punch.Where(p => p.OrderNo == md.OrderNo && p.PartNo == md.PartNo).ToList(); + if (list != null && list.Count > 0) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Plan_Punch md) + { + try + { + + //初始化要更新的字段 + string[] proNames = new string[1]; + proNames[0] = "OrderCount"; + + string sql = "select * from tb_Plan_Punch where OrderNo='" + md.OrderNo + "' and PartNo='"+ md.PartNo+"'"; + SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.GetConnSting(), CommandType.Text, sql); + if (dr.Read()) + { + if (md.OrderCount < Convert.ToInt32(dr["CompleteCount"])) + { + return false; + } + else + { + return db.UpdateInfo(md, proNames); + } + } + else + { + return false; + } + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public string SearchOrderNo(string StartTime, string Banci) + { + try + { + + string jsonStr = ""; + string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); + + var info = ef.tb_Plan_Punch.Where(p => p.OrderNo.Contains(Banci.Substring(0, 1) + orderNo)).OrderByDescending(p => p.OrderNo).FirstOrDefault(); + + if (info != null) + { + return info.OrderNo.Substring(0, info.OrderNo.Length - 4) + (Convert.ToInt32(info.OrderNo.Substring(info.OrderNo.Length - 4, 4)) + 1).ToString() + .PadLeft(4, '0'); + } + else + { + if (Banci.Contains("A")) + { + return "A" + orderNo + "0001"; + } + else + { + return "B" + orderNo + "0001"; + } + } + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + public string GetComboboxData() + { + try + { + string jsonStr = "[]"; + var list = ef.tb_Product.Where(p => p.ProductTypeID == "3a8545ee-5979-4780-a5ca-6c5e75685ae2" || p.ProductTypeID == "69ec20f1-dab5-4caf-b81e-1c65b38b9e34").ToList();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public string GetMistake(string id) + { + try + { + string jsonStr = "[]"; + var list = ef.tb_Product.Where(p => p.PartNo.Equals(id)).FirstOrDefault();//判断是否有重复数据 + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return null; + } + } + + public string QueryForComboboxOrderNo(string StartTime) + { + try + { + string jsonStr = "[]"; + List list = new List(); + string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); + var info = ef.tb_Plan_Punch.Where(p => p.OrderNo.Contains(orderNo)).GroupBy(p => p.OrderNo).Select(p => p.Key).ToList();//判断是否有重复数据 + foreach (var item in info) + { + SelectModel md = new SelectModel(); + md.textField = item; + md.valueField = item; + list.Add(md); + } + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public string QueryForItem(string OrderNo) + { + try + { + var info = ef.tb_Plan_Punch.Where(p => p.OrderNo.Equals(OrderNo)).OrderByDescending(p => p.Item).FirstOrDefault();//判断是否有重复数据 + return (info.Item + 1).ToString(); + } + catch (Exception) + { + return ""; + } + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Plan_Punch md) + { + try + { + if (ef.tb_Plan_Punch.Where(p => p.ID == md.ID && p.CompleteCount > 0).Count() > 0) + { + return false; + } + return db.DelInfo(md); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public List> SearchForExcel(string StartTime, string EndTime, string OrderNo) + { + try + { + List> list = new List>(); + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + + List titleList = new List(); + titleList.Add("生产计划单号"); + titleList.Add("序号"); + titleList.Add("零件号"); + titleList.Add("零件名称"); + titleList.Add("数量"); + titleList.Add("领用数量"); + titleList.Add("完成数量"); + titleList.Add("不良数量"); + titleList.Add("备注"); + titleList.Add("创建时间"); + list.Add(titleList); + + List Plan_list = ef.tb_Plan_Punch.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(OrderNo)) + { + Plan_list = Plan_list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); + } + + if (Plan_list.Count > 0) + { + List modelList = new List(); + var listModel = ef.tb_Product.ToList(); + + foreach (var item in Plan_list) + { + tb_Plan_PunchModel dm = Tool.Mapper(item); + + var machine_info = listModel.FirstOrDefault(p => p.PartNo == item.PartNo); + if (machine_info != null) + { + dm.PartName = machine_info.ProductName; + } + + modelList.Add(dm); + } + + for (int i = 0; i < modelList.Count; i++) + { + List rowList = new List(); + rowList.Add(modelList[i].OrderNo); + rowList.Add(modelList[i].Item == null ? "" : modelList[i].Item.ToString()); + rowList.Add(modelList[i].PartNo); + rowList.Add(modelList[i].PartName == null ? "" : modelList[i].PartName.ToString()); + rowList.Add(modelList[i].OrderCount == null ? "" : modelList[i].OrderCount.ToString()); + rowList.Add(modelList[i].LyCount == null ? "" : modelList[i].LyCount.ToString()); + rowList.Add(modelList[i].CompleteCount == null ? "" : modelList[i].CompleteCount.ToString()); + rowList.Add(modelList[i].BadCount == null ? "" : modelList[i].BadCount.ToString()); + rowList.Add(modelList[i].Des); + rowList.Add(modelList[i].CreateTime == null ? "" : modelList[i].CreateTime.ToString()); + list.Add(rowList); + } + } + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + + //校验是否生成计划单号日期部分+零件号有相同的计划 + public bool QueryByOrderNo(string OrderNo, string PartNo) + { + try + { + var info = ef.tb_Plan_Punch.Where(p => p.OrderNo.Contains(OrderNo) && p.PartNo.Equals(PartNo)); + if (info.Count() > 0) + { + return true; + } + return false; + } + catch (Exception) + { + return false; + } + } + + //校验是否同一个生成计划单号下有相同序号的计划 + public bool QueryByOrderNoAndItem(string OrderNo, int Item) + { + try + { + var info = ef.tb_Plan_Punch.Where(p => p.OrderNo.Equals(OrderNo) && p.Item == Item); + if (info.Count() > 0) + { + return true; + } + return false; + } + catch (Exception) + { + return false; + } + } + + public string GetOrderNo(string banci,string date) + { + try + { + //string order = banci + DateTime.Now.ToString("yyyyMMdd"); + string order = banci + date; + var info = ef.tb_Plan_Punch.Where(p => p.OrderNo.Contains(order)).OrderBy(p => p.CreateTime) + .FirstOrDefault(); + if (info != null) + { + return order + (Convert.ToInt32(info.OrderNo.Substring(info.OrderNo.Length - 4, 4)) + 1).ToString() + .PadLeft(4, '0'); + } + else + { + return order + "0001"; + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return banci + date +"0001"; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PlanPunchNewBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PlanPunchNewBLL.cs new file mode 100644 index 0000000..59da085 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PlanPunchNewBLL.cs @@ -0,0 +1,364 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PlanPunchNewBLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string OrderNo) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + List list = ef.tb_Plan_Punch_214.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(OrderNo)) + { + list = list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); + } + + + if (list.Count > 0) + { + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + List modelList = new List(); + + #region 联查 + + var listModel = ef.tb_Product.ToList(); + var listModels = ef.tb_Station.ToList(); + + foreach (var item in list) + { + tb_Plan_PunchNewModel dm = Tool.Mapper(item); + + var p_info = listModel.FirstOrDefault(p => p.PartNo == item.PartNo); + if (p_info != null) + { + dm.PartName = p_info.ProductName; + } + + var s_info = listModels.FirstOrDefault(p => p.StationID == item.StationId); + if (s_info != null) + { + dm.StationNo = s_info.StationNo; + dm.StationDes = s_info.Des; + } + + modelList.Add(dm); + } + + #endregion + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = modelList; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Plan_Punch_214 md) + { + try + { + var list = ef.tb_Plan_Punch_214.Where(p => p.OrderNo == md.OrderNo && p.Item == md.Item && p.PartNo == md.PartNo).ToList(); + if (list.Count > 0) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(tb_Plan_Punch_214 md) + { + //初始化要更新的字段 + string[] proNames = new string[1]; + proNames[0] = "OrderCount"; + + string sql = "select * from tb_Plan_Punch_214 where OrderNo='" + md.OrderNo + "' and PartNo='" + md.PartNo + "'"; + SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.GetConnSting(), CommandType.Text, sql); + if (dr.Read()) + { + if (md.OrderCount < Convert.ToInt32(dr["CompleteCount"])) + { + return false; + } + else + { + return db.UpdateInfo(md, proNames); + } + } + else + { + return false; + } + } + + public string QueryForComboboxOrderNo(string StartTime) + { + try + { + string jsonStr = "[]"; + List list = new List(); + string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); + var info = ef.tb_Plan_Punch_214.Where(p => p.OrderNo.Contains(orderNo)).GroupBy(p => p.OrderNo).Select(p => p.Key).ToList();//判断是否有重复数据 + foreach (var item in info) + { + SelectModel md = new SelectModel(); + md.textField = item; + md.valueField = item; + list.Add(md); + } + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + public string QueryForItem(string OrderNo) + { + try + { + var info = ef.tb_Plan_Punch_214.Where(p => p.OrderNo.Equals(OrderNo)).OrderByDescending(p => p.Item).FirstOrDefault();//判断是否有重复数据 + return (info.Item + 1).ToString(); + } + catch (Exception) + { + return ""; + } + } + + public bool UpdateAddInfo(tb_Plan_Punch_214 md) + { + try + { + var list = ef.tb_Plan_Punch_214.Where(p => p.OrderNo == md.OrderNo && p.PartNo == md.PartNo).ToList(); + if ( list.Count > 0) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public string SearchOrderNo(string StartTime, string Banci) + { + try + { + string jsonStr = ""; + string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); + + var info = ef.tb_Plan_Punch_214.Where(p => p.OrderNo.Contains(Banci.Substring(0, 1) + orderNo)).OrderByDescending(p => p.OrderNo).FirstOrDefault(); + + if (info != null) + { + return info.OrderNo.Substring(0, info.OrderNo.Length - 4) + (Convert.ToInt32(info.OrderNo.Substring(info.OrderNo.Length - 4, 4)) + 1).ToString() + .PadLeft(4, '0'); + } + else + { + if (Banci.Contains("A")) + { + return "A" + orderNo + "0001"; + } + else + { + return "B" + orderNo + "0001"; + } + } + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Plan_Punch_214 md) + { + try + { + if (ef.tb_Plan_Punch_214.Where(p => p.ID == md.ID && p.CompleteCount > 0).Count() > 0) + { + return false; + } + return db.DelInfo(md); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public bool IsExist(string orderNo, int item) + { + bool res = false; + try + { + if (ef.tb_Plan_Punch_214.Where(p => p.OrderNo == orderNo && p.Item==item).Count() > 0) + { + res= true; + } + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + + public List> SearchForExcel(string StartTime, string EndTime, string OrderNo) + { + try + { + List> list = new List>(); + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + List titleList = new List(); + titleList.Add("生产计划单号"); + titleList.Add("序号"); + titleList.Add("工位号"); + titleList.Add("工位名称"); + titleList.Add("零件号"); + titleList.Add("零件名称"); + titleList.Add("数量"); + titleList.Add("领用数量"); + titleList.Add("完成数量"); + titleList.Add("不良数量"); + titleList.Add("备注"); + titleList.Add("创建时间"); + list.Add(titleList); + + List Plan_list = ef.tb_Plan_Punch_214.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(OrderNo)) + { + Plan_list = Plan_list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); + } + + if (Plan_list.Count > 0) + { + List modelList = new List(); + var listModel = ef.tb_Product.ToList(); + var listModels = ef.tb_Station.ToList(); + + foreach (var item in Plan_list) + { + tb_Plan_PunchNewModel dm = Tool.Mapper(item); + + var p_info = listModel.FirstOrDefault(p => p.PartNo == item.PartNo); + if (p_info != null) + { + dm.PartName = p_info.ProductName; + } + + var s_info = listModels.FirstOrDefault(p => p.StationID == item.StationId); + if (s_info != null) + { + dm.StationNo = s_info.StationNo; + dm.StationDes = s_info.Des; + } + + modelList.Add(dm); + } + + for (int i = 0; i < modelList.Count; i++) + { + List rowList = new List(); + rowList.Add(modelList[i].OrderNo); + rowList.Add(modelList[i].Item == null ? "" : modelList[i].Item.ToString()); + rowList.Add(modelList[i].StationNo); + rowList.Add(modelList[i].StationDes == null ? "" : modelList[i].StationDes); + rowList.Add(modelList[i].PartNo); + rowList.Add(modelList[i].PartName == null ? "" : modelList[i].PartName); + rowList.Add(modelList[i].OrderCount == null ? "" : modelList[i].OrderCount.ToString()); + rowList.Add(modelList[i].LyCount == null ? "" : modelList[i].LyCount.ToString()); + rowList.Add(modelList[i].CompleteCount == null ? "" : modelList[i].CompleteCount.ToString()); + rowList.Add(modelList[i].BadCount == null ? "" : modelList[i].BadCount.ToString()); + rowList.Add(modelList[i].Des); + rowList.Add(modelList[i].CreateTime == null ? "" : modelList[i].CreateTime.ToString()); + list.Add(rowList); + } + } + + return list; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchAdressBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchAdressBLL.cs new file mode 100644 index 0000000..7f2000f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchAdressBLL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.PunchAndWeld; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchAdressBLL + { + PunchAdressDAL da=new PunchAdressDAL(); + + public DataTable SearchInfo(string deviceNo,int i) + { + try + { + return da.SearchInfo(deviceNo,i); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchAndStationBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchAndStationBLL.cs new file mode 100644 index 0000000..dc14c31 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchAndStationBLL.cs @@ -0,0 +1,262 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.PunchAndWeld; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchAndStationBLL + { + BasicBLL db = new BasicBLL(); + + public bool AddInfo(tb_PunchAndStation md) + { + try + { + BBMPTEntities ef = new BBMPTEntities(); + List list = ef.tb_PunchAndStation.Where(p => + p.StationID == md.StationID && p.AddressNo == md.AddressNo && p.PortName==md.PortName) + .ToList(); + if (list.Any()) + { + return false; + } + List list1 = ef.tb_PunchAndStation.Where(p => + p.StationID == md.StationID && p.ProductID1 == md.ProductID1 && p.ProductID2 == md.ProductID2) + .ToList(); + + if (list1.Any()) + { + return false; + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public string SearchInfoAll(string page, string pagesize, string partNo1) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = new List(); + + string sql = @"SELECT top 50 dbo.tb_PunchAndStation.ID, dbo.tb_Station.StationNo, tb_Product_1.PartNo AS PartNo1, + tb_Product_1.ProductName AS ProductName1, tb_Product_2.PartNo AS PartNo2, + tb_Product_2.ProductName AS ProductName2, tb_Product_3.PartNo AS PartNo3, + tb_Product_3.ProductName AS ProductName3, tb_Product_4.PartNo AS PartNo4, + tb_Product_4.ProductName AS ProductName4, tb_Product_5.PartNo AS PartNo5, + tb_Product_5.ProductName AS ProductName5, dbo.tb_PunchAndStation.IsCheck, dbo.tb_PunchAndStation.AddressNo, + dbo.tb_PunchAndStation.PortName, tb_Product_6.PartNo AS PartNo6, tb_Product_6.ProductName AS ProductName6, + tb_Product_7.PartNo AS PartNo7, tb_Product_7.ProductName AS ProductName7, tb_Product_8.PartNo AS PartNo8, + tb_Product_8.ProductName AS ProductName8, tb_Product_9.PartNo AS PartNo9, + tb_Product_9.ProductName AS ProductName9, tb_Product_10.PartNo AS PartNo10, + tb_Product_10.ProductName AS ProductName10, tb_Product_11.PartNo AS PartNo11, + tb_Product_11.ProductName AS ProductName11, tb_Product_12.PartNo AS PartNo12, + tb_Product_12.ProductName AS ProductName12, tb_Product_13.PartNo AS PartNo13, + tb_Product_13.ProductName AS ProductName13, dbo.tb_Product.PartNo AS PartNo14, + dbo.tb_Product.ProductName AS ProductName14 + FROM dbo.tb_Product AS tb_Product_12 RIGHT OUTER JOIN + dbo.tb_PunchAndStation LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_PunchAndStation.ProductID14 = dbo.tb_Product.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_13 ON dbo.tb_PunchAndStation.ProductID13 = tb_Product_13.ProductID ON + tb_Product_12.ProductID = dbo.tb_PunchAndStation.ProductID12 LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_11 ON dbo.tb_PunchAndStation.ProductID11 = tb_Product_11.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_10 ON dbo.tb_PunchAndStation.ProductID10 = tb_Product_10.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_9 ON dbo.tb_PunchAndStation.ProductID9 = tb_Product_9.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_8 ON dbo.tb_PunchAndStation.ProductID8 = tb_Product_8.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_7 ON dbo.tb_PunchAndStation.ProductID7 = tb_Product_7.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_6 ON dbo.tb_PunchAndStation.ProductID6 = tb_Product_6.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_5 ON dbo.tb_PunchAndStation.ProductID5 = tb_Product_5.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_4 ON dbo.tb_PunchAndStation.ProductID4 = tb_Product_4.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_3 ON dbo.tb_PunchAndStation.ProductID3 = tb_Product_3.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_2 ON dbo.tb_PunchAndStation.ProductID2 = tb_Product_2.ProductID LEFT OUTER JOIN + dbo.tb_Station ON dbo.tb_PunchAndStation.StationID = dbo.tb_Station.StationID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_1 ON dbo.tb_PunchAndStation.ProductID1 = tb_Product_1.ProductID + WHERE 1=1 "; + + if (!string.IsNullOrWhiteSpace(partNo1)) + { + sql += " And tb_Product_1.PartNo like '%" + partNo1 + "%' "; + } + + DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + list = Tool.ConvertTo(dt).ToList(); + } + + if (list.Count > 0) + { + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public bool UpdateInfo(tb_PunchAndStation md) + { + try + { + List list = new List(); + + string sql = @"SELECT dbo.tb_PunchAndStation.ID, dbo.tb_PunchAndStation.ProductID1, dbo.tb_PunchAndStation.ProductID2, + dbo.tb_PunchAndStation.ProductID3, dbo.tb_PunchAndStation.ProductID4, dbo.tb_PunchAndStation.ProductID5, + dbo.tb_PunchAndStation.ProductID6, dbo.tb_PunchAndStation.ProductID7, dbo.tb_PunchAndStation.ProductID8, + dbo.tb_PunchAndStation.ProductID9, dbo.tb_PunchAndStation.ProductID10, dbo.tb_PunchAndStation.ProductID11, + dbo.tb_PunchAndStation.ProductID12, dbo.tb_PunchAndStation.ProductID13, dbo.tb_PunchAndStation.ProductID14 + FROM dbo.tb_PunchAndStation where 1=1 and + ProductID1='" + md.ProductID1 + "' and ProductID2='" + md.ProductID2 + "' and ProductID3='" + md.ProductID3 + "' and ProductID4='" + md.ProductID4 + "' and ProductID5='" + md.ProductID5 + "' and ProductID6='" + md.ProductID6 + "'and ProductID7='" + md.ProductID7 + "' and ProductID8='" + md.ProductID8 + "'and ProductID9='" + md.ProductID9 + "'" + + " and ProductID10='" + md.ProductID10 + "' and ProductID11='" + md.ProductID11 + "' and ProductID12='" + md.ProductID12 + "' " + + " and ProductID13='" + md.ProductID13 + "' and ProductID14='" + md.ProductID14 + "' and ID <> '" + md.ID + "' "; + + DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + return false; + } + + BBMPTEntities ef = new BBMPTEntities(); + List list1 = ef.tb_PunchAndStation.Where(p => + p.StationID == md.StationID && p.AddressNo == md.AddressNo && p.PortName==md.PortName && p.ID!=md.ID) + .ToList(); + if (list1.Any()) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[19]; + proNames[0] = "StationID"; + proNames[1] = "ProductID1"; + proNames[2] = "ProductID2"; + proNames[3] = "ProductID3"; + proNames[4] = "ProductID4"; + proNames[5] = "ProductID5"; + proNames[6] = "IsCheck"; + proNames[7] = "AddressNo"; + proNames[8] = "PortName"; + proNames[9] = "CheckDone"; + proNames[10] = "ProductID6"; + proNames[11] = "ProductID7"; + proNames[12] = "ProductID8"; + + proNames[13] = "ProductID9"; + proNames[14] = "ProductID10"; + proNames[15] = "ProductID11"; + proNames[16] = "ProductID12"; + proNames[17] = "ProductID13"; + proNames[18] = "ProductID14"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public bool DeleteInfo(tb_PunchAndStation md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public DataTable IsMath(string partNo1, string partNo2) + { + try + { + PunchAndStationDAL da=new PunchAndStationDAL(); + return da.IsMath(partNo1, partNo2); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable IsMath1(string partNo, string stationNo) + { + try + { + PunchAndStationDAL da = new PunchAndStationDAL(); + return da.IsMath1(partNo, stationNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public string GetComboboxData(string stationNo) + { + try + { + string jsonStr = "[]"; + + List list = new List(); + + string sql = @"SELECT p.PartNo FROM dbo.tb_PunchAndStation ps + LEFT OUTER JOIN dbo.tb_Product p ON ps.ProductID1=p.ProductID + LEFT OUTER JOIN dbo.tb_Station s ON ps.StationID=s.StationID + WHERE s.StationNo='" + stationNo + @"'"; + DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + list = Tool.ConvertTo(dt).ToList(); + } + + jsonStr = JSONTools.ScriptSerialize(list); + return jsonStr; + } + catch (Exception) + { + return ""; + } + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchDeviceBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchDeviceBLL.cs new file mode 100644 index 0000000..bd3efa8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchDeviceBLL.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.PunchAndWeld; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchDeviceBLL + { + PunchDeviceDAL da=new PunchDeviceDAL(); + + public DataTable SearchInfo() + { + try + { + return da.SearchInfo(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchDeviceNo(string deviceName) + { + try + { + return da.SearchDeviceNo(deviceName); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPartBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPartBLL.cs new file mode 100644 index 0000000..a1312a4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPartBLL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.PunchAndWeld; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchPartBLL + { + PunchPartDAL da=new PunchPartDAL(); + + public DataTable SearchPunchPart(string deviceNo) + { + try + { + return da.SearchPunchPart(deviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPlanBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPlanBLL.cs new file mode 100644 index 0000000..8a12c68 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPlanBLL.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchPlanBLL + { + PunchPlanDAL da=new PunchPlanDAL(); + + public DataTable SearchPlan(string deviceNo) + { + try + { + return da.SearchPlan(deviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchAllPlan() + { + try + { + return da.SearchAllPlan(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(PunchPlanModel md) + { + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(PunchPlanModel md) + { + try + { + return da.UpdateInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo(PunchPlanModel md) + { + try + { + return da.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateDty(PunchPlanModel md) + { + try + { + return da.UpdateDty(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPlanMFABLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPlanMFABLL.cs new file mode 100644 index 0000000..0b36105 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchPlanMFABLL.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.DAL.PunchAndWeld; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchPlanMFABLL + { + PunchPlanMFADAL da=new PunchPlanMFADAL(); + + public bool InsertPlan(string DeviceNo) + { + try + { + return da.InsertPlan(DeviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchMFAPlan(string DeviceNo) + { + try + { + return da.SearchMFAPlan(DeviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpFinish(int ID) + { + try + { + return da.UpFinish(ID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + + #region 前保 + + public bool InsertPlan_F(string DeviceNo) + { + try + { + return da.InsertPlan_F(DeviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchNGCCPlan(string DeviceNo) + { + try + { + return da.NGCC(DeviceNo); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpFinish_F(int ID) + { + try + { + return da.UpFinish_F(ID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + #endregion + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchRecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchRecordBLL.cs new file mode 100644 index 0000000..9d029ff --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchRecordBLL.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.PunchAndWeld; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchRecordBLL + { + PunchRecordDAL da=new PunchRecordDAL(); + + public bool AddInfo(PunchRecordModel md) + { + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchInfo(string barCode) + { + try + { + return da.SearchInfo(barCode); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchValueRecordBLL.cs b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchValueRecordBLL.cs new file mode 100644 index 0000000..43260d6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/PunchAndWeld/PunchValueRecordBLL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.PunchAndWeld; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchValueRecordBLL + { + PunchValueRecordDAL da = new PunchValueRecordDAL(); + + public bool AddInfo(PunchValueRecordModel md) + { + try + { + return da.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Record243/Record243BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Record243/Record243BLL.cs new file mode 100644 index 0000000..22d9a0f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Record243/Record243BLL.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.Record243 +{ + public class Record243BLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string BoxNo, string PartNo2, string PartNo1, string OrderNo) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + List list = ef.tb_Record_243.Where(p => p.CreateTime1 >= stime && p.CreateTime1 <= etime && p.Flag == 1).ToList(); + + if (!String.IsNullOrEmpty(BoxNo)) + { + list = list.Where(p => p.BoxNo != null && p.BoxNo.Contains(BoxNo)).ToList(); + } + + if (!String.IsNullOrEmpty(PartNo2)) + { + list = list.Where(p => p.PartNo2 != null && p.PartNo2.Contains(PartNo2)).ToList(); + } + + if (!String.IsNullOrEmpty(PartNo1)) + { + list = list.Where(p => p.PartNo1 != null && p.PartNo1.Contains(PartNo1)).ToList(); + } + + if (!String.IsNullOrEmpty(OrderNo)) + { + list = list.Where(p => p.OrderNo != null && p.OrderNo.Contains(OrderNo)).ToList(); + } + + + if (list.Count > 0) + { + + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.OrderBy(p => p.CreateTime1).Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Record247/Record247BLL.cs b/BBMPTMes/MESClassLibrary/BLL/Record247/Record247BLL.cs new file mode 100644 index 0000000..f866a15 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Record247/Record247BLL.cs @@ -0,0 +1,81 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.Record247 +{ + public class Record247BLL + { + BBMPTEntities ef = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string BoxNo, string PartNo2, string PartNo1, string OrderNo) + { + try + { + + string jsonStr = "[]"; + int total = 0;//总行数 + + DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); + DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); + + List list = ef.tb_Record_247.Where(p => p.CreateTime1 >= stime && p.CreateTime1 <= etime && p.Flag == 1).ToList(); + + if (!String.IsNullOrEmpty(BoxNo)) + { + list = list.Where(p => p.BoxNo != null && p.BoxNo.Contains(BoxNo)).ToList(); + } + + if (!String.IsNullOrEmpty(PartNo2)) + { + list = list.Where(p => p.PartNo2 != null && p.PartNo2.Contains(PartNo2)).ToList(); + } + + if (!String.IsNullOrEmpty(PartNo1)) + { + list = list.Where(p => p.PartNo1 != null && p.PartNo1.Contains(PartNo1)).ToList(); + } + + if (!String.IsNullOrEmpty(OrderNo)) + { + list = list.Where(p => p.OrderNo != null && p.OrderNo.Contains(OrderNo)).ToList(); + } + + + if (list.Count > 0) + { + + total = list.Count; + + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.OrderBy(p => p.CreateTime1).Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + jsonStr = JSONTools.ScriptSerialize(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenBLL.cs new file mode 100644 index 0000000..6736c2a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenBLL.cs @@ -0,0 +1,190 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.Report +{ + public class FiveScreenBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Report_FiveScreen md) + { + try + { + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Report_FiveScreen md) + { + try + { + //初始化要更新的字段 + string[] proNames = new string[45]; + proNames[0] = "Name"; + proNames[1] = "LastYear"; + proNames[2] = "Jan"; + proNames[3] = "Feb"; + proNames[4] = "Mar"; + proNames[5] = "Apr"; + proNames[6] = "May"; + proNames[7] = "Jun"; + proNames[8] = "Jul"; + proNames[9] = "Aug"; + proNames[10] = "Sept"; + proNames[11] = "Oct"; + proNames[12] = "Nov"; + proNames[13] = "Dec"; + proNames[14] = "day1"; + proNames[15] = "day2"; + proNames[16] = "day3"; + proNames[17] = "day4"; + proNames[18] = "day5"; + proNames[19] = "day6"; + proNames[20] = "day7"; + proNames[21] = "day8"; + proNames[22] = "day9"; + proNames[23] = "day10"; + proNames[24] = "day11"; + proNames[25] = "day12"; + proNames[26] = "day13"; + proNames[27] = "day14"; + proNames[28] = "day15"; + proNames[29] = "day16"; + proNames[30] = "day17"; + proNames[31] = "day18"; + proNames[32] = "day19"; + proNames[33] = "day20"; + proNames[34] = "day21"; + proNames[35] = "day22"; + proNames[36] = "day23"; + proNames[37] = "day24"; + proNames[38] = "day25"; + proNames[39] = "day26"; + proNames[40] = "day27"; + proNames[41] = "day28"; + proNames[42] = "day29"; + proNames[43] = "day30"; + proNames[44] = "day31"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Report_FiveScreen md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = db.SearchAllInfo(); + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Report_FiveScreen SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + public tb_Report_FiveScreen SearchInfoByNameLast(string name) { + + var info = db.SearchInfoByKey("Name", name).OrderByDescending(p=>p.CreateTime).FirstOrDefault();//判断是否有重复数据 + if (info != null) + { + return info; + } + + return null; + + } + + + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenLastBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenLastBLL.cs new file mode 100644 index 0000000..e683e8d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenLastBLL.cs @@ -0,0 +1,153 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.Report +{ + public class FiveScreenLastBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Report_FiveScreenLast md) + { + try + { + var list = db.SearchInfoByKey("StationID", md.StationID);//判断是否有重复数据 + if (list != null) + { + if (list.Where(p => p.ID != md.ID).Count() > 0) + { + return false; + } + + } + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Report_FiveScreenLast md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.StationID == md.StationID && p.ID != md.ID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[5]; + proNames[0] = "StationID"; + proNames[1] = "StationNo"; + proNames[2] = "UseRate"; + proNames[3] = "PassRate"; + proNames[4] = "Remark1"; + + + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Report_FiveScreenLast md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = db.SearchAllInfo(); + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Report_FiveScreenLast SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenStandardBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenStandardBLL.cs new file mode 100644 index 0000000..694f068 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Report/FiveScreenStandardBLL.cs @@ -0,0 +1,161 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.Report +{ + + public class FiveScreenStandardBLL + { + BasicBLL db = new BasicBLL(); + + /// + /// 新增信息 + /// + /// + /// + public bool AddInfo(tb_Report_FiveScreenStandard md) + { + try + { + //var list = db.SearchInfoByKey("Name", md.Name);//判断是否有重复数据 + //if (list != null) + //{ + // if (list.Where(p => p.ID != md.ID).Count() > 0) + // { + // return false; + // } + + //} + + return db.AddInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改信息 + /// + /// + /// + public bool UpdateInfo(tb_Report_FiveScreenStandard md) + { + try + { + var list = db.SearchAllInfo().Where(p => p.Name == md.Name && p.ID != md.ID).ToList();//判断是否有重复数据 + if (list.Count > 0) + { + return false; + } + + //初始化要更新的字段 + string[] proNames = new string[14]; + proNames[0] = "Name"; + proNames[1] = "LastYear"; + proNames[2] = "Jan"; + proNames[3] = "Feb"; + proNames[4] = "Mar"; + proNames[5] = "Apr"; + proNames[6] = "May"; + proNames[7] = "Jun"; + proNames[8] = "Jul"; + proNames[9] = "Aug"; + proNames[10] = "Sept"; + proNames[11] = "Oct"; + proNames[12] = "Nov"; + proNames[13] = "Dec"; + + //必填字段初始化,如果不需要更新必填字段则设置为空即可,时间类型无需初始化 + //如果没有初始化必填字段,更新会报错 + //md.Des = ""; + + return db.UpdateInfo(md, proNames); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 删除信息 + /// + /// + /// + /// + public bool DeleteInfo(tb_Report_FiveScreenStandard md) + { + try + { + return db.DelInfo(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 查询全部信息分页 + /// + /// + public string SearchInfoAll(string page, string pagesize) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + + List list = db.SearchAllInfo(); + + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据ID查询信息 + /// + /// + /// + public tb_Report_FiveScreenStandard SearchInfoByID(string id) + { + try + { + return db.SearchInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Show/AnalysisBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Show/AnalysisBLL.cs new file mode 100644 index 0000000..ed09d63 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Show/AnalysisBLL.cs @@ -0,0 +1,57 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.BLL.Show +{ + public class AnalysisBLL + { + BBMPTEntities dbe = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + + public List SearchInfo(string ProductName) + { + List list = new List(); + try + { + + DateTime date = DateTime.Now; + //DateTime date = Convert.ToDateTime("2019-07-08 10:00:00"); + string nowTime = date.ToString("yyyy-MM-dd"); + DateTime startTime = Convert.ToDateTime(nowTime + " 08:00:00");//班次开始时间 + DateTime endTime = Convert.ToDateTime(nowTime + " 19:59:59");//班次结束时间 + + var info = dbe.tb_InspectResult.Where(p => p.productInfo.Contains(ProductName)); + if (DateTime.Compare(date, startTime) < 0) + { + //昨天夜班 + list = info.Where(p => p.createTime > endTime.AddDays(-1) && p.createTime < startTime).ToList(); + } + + if (DateTime.Compare(date, endTime) > 0) + { + //今天夜班 + list = info.Where(p => p.createTime > endTime && p.createTime <= date).ToList(); + } + + if (DateTime.Compare(date, startTime) >= 0 && DateTime.Compare(date, endTime) <= 0) + { + //今天白班 + list = info.Where(p => p.createTime >= startTime && p.createTime <= endTime).ToList(); + } + + return list; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return list; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Stock/AppendColorBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Stock/AppendColorBLL.cs new file mode 100644 index 0000000..bd4a616 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Stock/AppendColorBLL.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + +namespace MESClassLibrary.BLL.Stock +{ + public class AppendColorBLL + { + BasicBLL db = new BasicBLL(); + public string SearchInfoAll(string page, string pageSize, string barCode, string startTime, string endTime) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + List list = db.SearchAllInfo(); + + if (!string.IsNullOrWhiteSpace(barCode)) + { + list = list.Where(p => p.Barcode != null && p.Barcode.Contains(barCode)).ToList(); + } + + if (!string.IsNullOrWhiteSpace(startTime)) + { + list = list.Where(p => p.CreateTime >= Convert.ToDateTime(startTime) && p.CreateTime <= Convert.ToDateTime(endTime)).ToList(); + } + + list = list.OrderBy(p => p.CreateTime).ToList(); + + if (list.Count > 0) + { + total = list.Count; + + int skipCount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pageSize); + list = list.Skip(skipCount).Take(Convert.ToInt32(pageSize)).ToList(); + + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + IsoDateTimeConverter timeConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }; + jsonStr = JsonConvert.SerializeObject(md, Formatting.Indented, timeConverter); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + public List> SearchForExcel(string page, string pageSize, string barCode, string startTime, string endTime) + { + try + { + List> list = new List>(); + + string jsonStr = "[]"; + int total = 0;//总行数 + List listProduct = db.SearchAllInfo().OrderBy(p => p.CreateTime).ToList(); + + if (!String.IsNullOrEmpty(barCode)) + { + listProduct = listProduct.Where(p => p.Barcode != null && p.Barcode.Contains(barCode)).ToList(); + } + + if (!String.IsNullOrEmpty(startTime)) + { + listProduct = listProduct.Where(p => p.CreateTime >= Convert.ToDateTime(startTime) && p.CreateTime <= Convert.ToDateTime(endTime)).ToList(); + } + + if (listProduct != null && listProduct.Count() > 0) + { + List title_ = new List(); + title_.Add("条码"); + title_.Add("颜色"); + title_.Add("操作人"); + title_.Add("操作时间"); + //title_.Add("描述"); + list.Add(title_); + + foreach (var item in listProduct) + { + List rowList = new List(); + rowList.Add(item.Barcode == null ? "" : item.Barcode); + rowList.Add(item.ColorInfo == null ? "" : item.ColorInfo); + rowList.Add(item.CreateBy == null ? "" : item.CreateBy); + rowList.Add(item.CreateTime.ToString()); + //rowList.Add(item.SupplierDes == null ? "" : item.SupplierDes); + list.Add(rowList); + } + } + return list; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/Stock/StockInBLL.cs b/BBMPTMes/MESClassLibrary/BLL/Stock/StockInBLL.cs new file mode 100644 index 0000000..2bbb962 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/Stock/StockInBLL.cs @@ -0,0 +1,189 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Security.AccessControl; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.DAL; + +namespace MESClassLibrary.BLL.Stock +{ + public class StockInBLL + { + BBMPTEntities dbe = new BBMPTEntities(); + BasicBLL db = new BasicBLL(); + BasicBLL Resultdb = new BasicBLL(); + /// + /// 查询信息 + /// + /// + public string SearchInfo(string page, string pagesize, string StartTime, string EndTime, string workClass, string color, string productInfo) + { + try + { + string jsonStr = "[]"; + int total = 0;//总行数 + //List list = db.SearchAllInfo(); + + DateTime start = Convert.ToDateTime(StartTime); + DateTime end = Convert.ToDateTime(EndTime); + + List list = new List(); + string sql = @"IF object_id(N'tempdb..#c',N'U') is not null + BEGIN + DROP Table #c + END + CREATE TABLE #c (barcode NVARCHAR(50),workClass NVARCHAR(100),productInfo NVARCHAR(200)) + + INSERT INTO #c + ( barcode,workClass, productInfo ) + SELECT d.barcode,d.workClass, d.productInfo FROM ( + SELECT *,cre_date_idx = ROW_NUMBER() OVER (PARTITION BY barcode ORDER BY createTime DESC) + FROM dbo.tb_InspectResult + WHERE barcode IN (SELECT barcode FROM dbo.tb_StockIn WHERE createTime >='"+ start+ @"' AND createTime <='"+ end+ @"') + ) d + WHERE d.cre_date_idx =1 + CREATE INDEX IX_TempTable ON #c(workClass,productInfo) + SELECT a.ID,a.barcode,a.pass,a.createTime,#c.productInfo,#c.workClass FROM dbo.tb_StockIn a + LEFT OUTER JOIN + #c ON a.barcode=#c.barcode + WHERE createTime >='" + start+ @"' AND createTime <='"+ end+ @"'"; + if (!string.IsNullOrEmpty(workClass)) + { + sql += " and #c.workClass like '%" + workClass + @"%' "; + } + + if (!string.IsNullOrEmpty(color)) + { + sql += " and #c.productInfo like '%" + color + @"%' "; + } + + if (!string.IsNullOrEmpty(productInfo)) + { + sql += " and #c.productInfo like '%" + productInfo + @"%' "; + } + + sql += " order by a.createTime"; + + DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + list = Tool.ConvertTo(dt).ToList(); + } + + //List list = dbe.tb_StockIn.Where(p => p.createTime >= start && p.createTime <= end && "1".Equals(p.pass)).ToList(); + + ////list = list.Where(p => p.createTime >= start && p.createTime <= end && "1".Equals(p.pass)).ToList(); + + //List barcodeList = list.Select(m => m.barcode).ToList(); + + //var resultList = dbe.tb_InspectResult.Where(p => barcodeList.Contains(p.barcode) && p.inspectResult.Contains("合格")).ToList(); + + + //if (!String.IsNullOrEmpty(workClass)) + //{ + // resultList = resultList.Where(p => p.workClass.Contains(workClass)).ToList(); + //} + + //if (!String.IsNullOrEmpty(color)) + //{ + // resultList = resultList.Where(p => p.productInfo.Contains(color)).ToList(); + //} + + //if (!String.IsNullOrEmpty(productInfo)) + //{ + // resultList = resultList.Where(p => p.productInfo.Contains(productInfo)).ToList(); + //} + + //list = list.Where(p => resultList.Select(m => m.barcode).ToList().Contains(p.barcode)).ToList(); + + if (list.Count > 0) + { + total = list.Count; + int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); + list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList();; + JsonDataModel md = new JsonDataModel(); + md.total = total.ToString(); + md.rows = list; + jsonStr = JSONTools.ScriptSerialize>(md); + } + return jsonStr; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + + + } + + /// + /// 查询信息 + /// + /// + public List SearchInfoAll(string StartTime, string EndTime, string workClass, string color, string productInfo) + { + try + { + List list = db.SearchAllInfo(); + + DateTime start = Convert.ToDateTime(StartTime); + DateTime end = Convert.ToDateTime(EndTime); + + list = list.Where(p => p.createTime >= start && p.createTime <= end && "1".Equals(p.pass)).ToList(); + + List barcodeList = list.Select(m => m.barcode).ToList(); + + var resultList = dbe.tb_InspectResult.Where(p => barcodeList.Contains(p.barcode) && p.inspectResult.Contains("合格")).ToList(); + + + if (!String.IsNullOrEmpty(workClass)) + { + resultList = resultList.Where(p => p.workClass.Contains(workClass)).ToList(); + } + + if (!String.IsNullOrEmpty(color)) + { + resultList = resultList.Where(p => p.productInfo.Contains(color)).ToList(); + } + + if (!String.IsNullOrEmpty(productInfo)) + { + resultList = resultList.Where(p => p.productInfo.Contains(productInfo)).ToList(); + } + + list = list.Where(p => resultList.Select(m => m.barcode).ToList().Contains(p.barcode)).ToList(); + + List StockInList = new List(); + if (list.Count > 0) + { + foreach (var item in list) + { + StockInModel dm = Tool.Mapper(item); + var info = resultList.FirstOrDefault(p => p.barcode == item.barcode); + if (info != null) + { + dm.workClass = info.workClass; + dm.productInfo = info.productInfo; + } + StockInList.Add(dm); + } + } + return StockInList; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/User/Sys_ButtonsService.cs b/BBMPTMes/MESClassLibrary/BLL/User/Sys_ButtonsService.cs new file mode 100644 index 0000000..9969e9b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/User/Sys_ButtonsService.cs @@ -0,0 +1,45 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.User; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.User +{ + /// + /// 用户按钮 + /// lx 2017-06-28 + /// + public class Sys_ButtonsService + { + /// + /// 获取用户有权限的按钮 + /// + /// + /// + /// + public List GetUserButtons(string menuID, string userID) + { + try + { + List returnList = new List(); + Sys_ButtonsData dal = new Sys_ButtonsData(); + DataTable dt = new DataTable(); + + dt = dal.GetUserButtons(menuID, userID); + returnList = Tool.ConvertTo(dt).ToList(); + + return returnList; + } + catch(Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return new List(); + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/User/Sys_NavMenuService.cs b/BBMPTMes/MESClassLibrary/BLL/User/Sys_NavMenuService.cs new file mode 100644 index 0000000..9566c2a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/User/Sys_NavMenuService.cs @@ -0,0 +1,84 @@ +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using MESClassLibrary.BLL.Log; +using System.Reflection; +using System.Data; +using MESClassLibrary.DAL.User; + +namespace MESClassLibrary.BLL.User +{ + public class Sys_NavMenuService + { + /// + /// 根据userID查询用户菜单 + /// + /// + /// + public List BuilderLeftMenu(string userID) + { + try + { + List returnList = new List(); + Sys_NavMenuData dal = new Sys_NavMenuData(); + DataTable dt = new DataTable(); + List navList = new List(); + + dt = dal.BuilderLeftMenu(userID); + //navList = Tool.ConvertTo(dt).ToList(); + navList = Tool.ConvertTo(dt).OrderBy(p=>p.OrderNum).ToList(); + + foreach (Sys_NavMenuInfo item in navList) + { + Sys_NavMenuInfo menuItem = BuilderItem(item, navList); + if (menuItem != null) + returnList.Add(menuItem); + + } + return returnList; + } + catch(Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 生成菜单list + /// + /// + /// + /// + /// + public Sys_NavMenuInfo BuilderItem(Sys_NavMenuInfo item, List allItem) + { + Sys_NavMenuInfo returnItem = new Sys_NavMenuInfo(); + returnItem.ItemPic = item.ItemPic; + returnItem.MenuID = item.MenuID; + returnItem.MenuName = item.MenuName; + returnItem.OrderNum = item.OrderNum; + returnItem.ParentMenuID = item.ParentMenuID; + returnItem.PowerID = item.PowerID; + returnItem.URLStr = item.URLStr; + + List subItemList = new List(); + + StringBuilder sb = new StringBuilder(); + List subList = allItem.FindAll(p => p.ParentMenuID == item.MenuID); + if (subList.Count > 0) + { + foreach (Sys_NavMenuInfo subItem in subList.OrderBy(p => p.OrderNum)) + { + returnItem.SubNavMenuList.Add(subItem); + } + } + if (returnItem.SubNavMenuList.Count == 0) + return null; + else + return returnItem; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/BLL/User/UserBLL.cs b/BBMPTMes/MESClassLibrary/BLL/User/UserBLL.cs new file mode 100644 index 0000000..8f6a9f4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/BLL/User/UserBLL.cs @@ -0,0 +1,304 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL.User; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.User +{ + public class UserBLL + { + UserDAL db = new UserDAL(); + //用户登录 + public bool Login(UserModel md) + { + + try + { + + #region 入参校验 + if (string.IsNullOrWhiteSpace(md.Username) || string.IsNullOrWhiteSpace(md.Password)) + { + return false; + } + #endregion + + #region 登陆 + //DataTable dt = db.Search_UserInfoByUP(md.Username, Tool.MD5encryption(md.Password)); + DataTable dt = db.Search_UserInfoByUP(md.Username, md.Password); + if (dt != null && dt.Rows.Count > 0) + { + #region 记录用户登录日志-暂注销 + //md.ID = dt.Rows[0]["ID"].ToString(); + //md.TrueName = dt.Rows[0]["TrueName"].ToString(); + //md.FaceURL = dt.Rows[0]["FaceURL"].ToString(); + //md.RoleID = dt.Rows[0]["RoleID"].ToString(); + //md.RoleName = dt.Rows[0]["RoleName"].ToString(); + //md.RoleJurisdiction = dt.Rows[0]["RoleJurisdiction"].ToString(); + //md.CompanyPost = dt.Rows[0]["CompanyPost"].ToString(); + //md.ContactWay = dt.Rows[0]["ContactWay"].ToString(); + //md.CreateUserID = dt.Rows[0]["CreateUserID"].ToString(); + //md.IsUseing = (int)dt.Rows[0]["IsUseing"]; + //db.Add_UserLoginInfo(md.ID); + #endregion + return true; + } + else + { + return false; + } + + #endregion + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 新增用户信息 + /// + /// + /// + public bool AddUserInfo(UserModel md) + { + //try + //{ + // DataTable dt = db.Search_UserInfoByUserName(md.ID, md.Username); + // if (dt != null && dt.Rows.Count > 0) + // { + // return false; + // } + // md.Password = Tool.MD5encryption(md.Password); + // return db.Add_UserInfo(md); + //} + //catch (Exception ex) + //{ + // LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + // return false; + //} + + return false; + + } + /// + /// 修改用户信息 + /// + /// + /// + /// + public bool UpdateUserInfo(UserModel md, int flag) + { + try + { + //DataTable dt = db.Search_UserInfoByUserName(md.ID, md.Username); + //if (dt != null && dt.Rows.Count > 0) + //{ + // return false; + //} + + //if (flag == 1) + //{ + // md.Password = Tool.MD5encryption(md.Password); + //} + //return db.Update_UserInfo(md); + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 修改用户密码 + /// + /// + /// + /// + /// + public bool UpdateUserPassword(string oldpassword, string newpassword, string id) + { + try + { + DataTable dt = db.Search_UserInfoByID_v2(id); + if (dt != null && dt.Rows.Count > 0) + { + if (dt.Rows[0]["Password"].ToString() == oldpassword) + { + return db.Update_Password(id, oldpassword, newpassword); + } + } + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// + /// + /// + /// + /// + public bool DelUserInfoByID(string id, string userid) + { + try + { + return db.Del_Info(db.GetTableName(), id, userid); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + #region 查询用户信息 + /// + /// 查询全部用户信息 + /// + /// + public DataTable SearchUserInfo() + { + try + { + return db.Search_UserInfo(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + /// + /// 根据ID查询用户信息 + /// + /// + /// + public DataTable SearchUserInfoByID(string id) + { + try + { + return db.Search_UserInfoByID(id); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + /// + /// 根据登录账号查询用户信息 + /// + /// + /// + public DataTable SearchUserInfoByUserName(string username) + { + try + { + DataTable dt = db.Search_UserInfoByUserName(username); + if (dt != null && dt.Rows.Count > 0) + { + return dt; + } + return null; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据角色ID查询用户信息 + /// + /// 角色主键ID + /// + public DataTable SearchUserInfoByRoleID(string roleid) + { + try + { + DataTable dt = db.Search_UserInfoByRoleID(roleid); + if (dt != null && dt.Rows.Count > 0) + { + return dt; + } + return null; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + /// + /// 查询用户登录记录 + /// + /// + public DataTable SearchUserLoginInfo() + { + try + { + return db.Search_UserLoginInfo(); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + + public string GetComboboxData() + { + try + { + + string jsonStr = "[]"; + DataTable dt = db.Search_UserInfo(); + if (dt != null && dt.Rows.Count > 0) + { + List list = new List(); + for (int i = 0; i < dt.Rows.Count; i++) + { + T_Sys_Users md = new T_Sys_Users(); + md.UserID = (Guid)dt.Rows[i]["UserID"]; + md.RealName = dt.Rows[i]["RealName"].ToString(); + list.Add(md); + } + jsonStr = JSONTools.ScriptSerialize>(list); + } + return jsonStr; + } + catch (Exception ex) + { + return ""; + } + } + + + + #endregion + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Andon/AndonButtonRecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Andon/AndonButtonRecordDAL.cs new file mode 100644 index 0000000..a5059a8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Andon/AndonButtonRecordDAL.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Andon +{ + public class AndonButtonRecordDAL + { + public bool InsertInfo(AndonRecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = " insert into tb_AndonRecord(ID,ButtonTypeID"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@ButtonTypeID)"; + + param = new SqlParameter[2]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@ButtonTypeID", SqlDbType.VarChar); + param[1].Value = md.ButtonTypeID; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(AndonRecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + + sql =@"update tb_AndonRecord set EndTime=getdate() where ButtonTypeID=@ButtonTypeID and EndTime is null"; + param=new SqlParameter[1]; + + param[0] = new SqlParameter("@ButtonTypeID", SqlDbType.VarChar); + param[0].Value = md.ButtonTypeID; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Andon/AndonButtonTypeDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Andon/AndonButtonTypeDAL.cs new file mode 100644 index 0000000..eaae178 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Andon/AndonButtonTypeDAL.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.Andon +{ + public class AndonButtonTypeDAL + { + public DataTable SearchInfoByName(string buttonName) + { + try + { + string sql = @"select * from tb_AndonButtonType where ButtonName=@ButtonName"; + + SqlParameter[] param=new SqlParameter[1]; + + param[0] = new SqlParameter("@ButtonName", SqlDbType.VarChar); + param[0].Value = buttonName; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BaseDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BaseDAL.cs new file mode 100644 index 0000000..0dcec87 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BaseDAL.cs @@ -0,0 +1,199 @@ +using MESClassLibrary.EFModel; +using System; +using System.Collections.Generic; +using System.Data.Entity.Infrastructure; +using System.Diagnostics.Contracts; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.DAL +{ + public class BaseDAL where T : class, new() + { + /// + /// 数据上下文对象 + /// + BBMPTEntities db = new BBMPTEntities(); + + #region 1.0 新增 实体 +int Add(T model) + /// + /// 新增 实体 + /// + /// + /// + public int Add(T model) + { + db.Set().Add(model); + return db.SaveChanges();//保存成功后,会将自增的id设置给 model的 主键属性,并返回受影响行数 + } + #endregion + + #region 2.0 根据 id 删除 +int Del(T model) + /// + /// 根据 id 删除 + /// + /// 包含要删除id的对象 + /// + public int Del(T model) + { + db.Set().Attach(model); + db.Set().Remove(model); + return db.SaveChanges(); + } + #endregion + + #region 3.0 根据条件删除 +int DelBy(Expression> delWhere) + /// + /// 3.0 根据条件删除 + /// + /// + /// + public int DelBy(Expression> delWhere) + { + //3.1查询要删除的数据 + List listDeleting = db.Set().Where(delWhere).ToList(); + //3.2将要删除的数据 用删除方法添加到 EF 容器中 + listDeleting.ForEach(u => + { + db.Set().Attach(u);//先附加到 EF容器 + db.Set().Remove(u);//标识为 删除 状态 + }); + //3.3一次性 生成sql语句到数据库执行删除 + return db.SaveChanges(); + } + #endregion + + #region 4.0 修改 +int Modify(T model, params string[] proNames) + /// + /// 4.0 修改,如: + /// T u = new T() { uId = 1, uLoginName = "asdfasdf" }; + /// this.Modify(u, "uLoginName"); + /// + /// 要修改的实体对象 + /// 要修改的 属性 名称 + /// + public int Modify(T model, params string[] proNames) + { + //4.1将 对象 添加到 EF中 + DbEntityEntry entry = db.Entry(model); + //4.2先设置 对象的包装 状态为 Unchanged + entry.State = System.Data.EntityState.Unchanged; + //4.3循环 被修改的属性名 数组 + foreach (string proName in proNames) + { + //4.4将每个 被修改的属性的状态 设置为已修改状态;后面生成update语句时,就只为已修改的属性 更新 + entry.Property(proName).IsModified = true; + } + //4.4一次性 生成sql语句到数据库执行 + return db.SaveChanges(); + } + #endregion + + #region 4.0 批量修改 +int Modify(T model, Expression> whereLambda, params string[] modifiedProNames) + /// + /// 4.0 批量修改 + /// + /// 要修改的实体对象 + /// 查询条件 + /// 要修改的 属性 名称 + /// + public int ModifyBy(T model, Expression> whereLambda, params string[] modifiedProNames) + { + //4.1查询要修改的数据 + List listModifing = db.Set().Where(whereLambda).ToList(); + + //获取 实体类 类型对象 + Type t = typeof(T); // model.GetType(); + //获取 实体类 所有的 公有属性 + List proInfos = t.GetProperties(BindingFlags.Instance | BindingFlags.Public).ToList(); + //创建 实体属性 字典集合 + Dictionary dictPros = new Dictionary(); + //将 实体属性 中要修改的属性名 添加到 字典集合中 键:属性名 值:属性对象 + proInfos.ForEach(p => + { + if (modifiedProNames.Contains(p.Name)) + { + dictPros.Add(p.Name, p); + } + }); + + //4.3循环 要修改的属性名 + foreach (string proName in modifiedProNames) + { + //判断 要修改的属性名是否在 实体类的属性集合中存在 + if (dictPros.ContainsKey(proName)) + { + //如果存在,则取出要修改的 属性对象 + PropertyInfo proInfo = dictPros[proName]; + //取出 要修改的值 + object newValue = proInfo.GetValue(model, null); //object newValue = model.uName; + + //4.4批量设置 要修改 对象的 属性 + foreach (T usrO in listModifing) + { + //为 要修改的对象 的 要修改的属性 设置新的值 + proInfo.SetValue(usrO, newValue, null); //usrO.uName = newValue; + } + } + } + //4.4一次性 生成sql语句到数据库执行 + return db.SaveChanges(); + } + #endregion + + #region 5.0 根据条件查询 +List GetListBy(Expression> whereLambda) + /// + /// 5.0 根据条件查询 +List GetListBy(Expression> whereLambda) + /// + /// + /// + public List GetListBy(Expression> whereLambda) + { + return db.Set().AsNoTracking().Where(whereLambda).ToList(); + } + #endregion + + #region 5.1 根据条件 排序 和查询 + List GetListBy + /// + /// 5.1 根据条件 排序 和查询 + /// + /// 排序字段类型 + /// 查询条件 lambda表达式 + /// 排序条件 lambda表达式 + /// + public List GetListBy(Expression> whereLambda, Expression> orderLambda) + { + return db.Set().Where(whereLambda).OrderBy(orderLambda).ToList(); + } + #endregion + + #region 6.0 分页查询 + List GetPagedList + /// + /// 6.0 分页查询 + List GetPagedList + /// + /// 页码 + /// 页容量 + /// 条件 lambda表达式 + /// 排序 lambda表达式 + /// + public List GetPagedList(int pageIndex, int pageSize, Expression> whereLambda, Expression> orderBy) + { + // 分页 一定注意: Skip 之前一定要 OrderBy + return db.Set().Where(whereLambda).OrderBy(orderBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); + } + #endregion + + public T Find(params object[] keyValues) + { + return db.Set().Find(keyValues); + } + + public List FindAll() + { + return db.Set().ToList(); + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicDAL.cs new file mode 100644 index 0000000..658e526 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicDAL.cs @@ -0,0 +1,51 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.DAL +{ + public class BasicDAL + { + public bool Del_Info(string tableName,string id, string userid) + { + try + { + string sql = @"update " + tableName + @" set + IsUseing = @IsUseing, + DisableUserID = @DisableUserID, + DisableTime = @DisableTime + where ID=@ID"; + + SqlParameter[] param = new SqlParameter[4]; + param[0] = new SqlParameter("@IsUseing", SqlDbType.Int); + param[0].Value = 0; + + param[1] = new SqlParameter("@DisableUserID", SqlDbType.VarChar); + param[1].Value = userid; + + param[2] = new SqlParameter("@DisableTime", SqlDbType.DateTime); + param[2].Value = DateTime.Now; + + param[3] = new SqlParameter("@ID", SqlDbType.VarChar); + param[3].Value = id; + + if (SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param) > 0) + { + return true; + } + return false; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BadInjectionDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BadInjectionDAL.cs new file mode 100644 index 0000000..7ff692f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BadInjectionDAL.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class BadInjectionDAL + { + public static string TableName = "tb_Bad_Injection"; + + public bool AddInfo(BadInjectionModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,OneBarCode,[BarCode],[BadPosition],[BadReason]"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@OneBarCode,"; + sql += "@BarCode,"; + sql += "@BadPosition,"; + sql += "@BadReason)"; + + #region 添加参数 + param = new SqlParameter[5]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@OneBarCode", SqlDbType.VarChar); + param[1].Value = md.OneBarCode; + + param[2] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[2].Value = md.BarCode; + + param[3] = new SqlParameter("@BadPosition", SqlDbType.VarChar); + param[3].Value = md.BadPosition; + + param[4] = new SqlParameter("@BadReason", SqlDbType.VarChar); + param[4].Value = md.BadReason; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchByCode(string code) + { + try + { + string sql = ""; + + if (code.Contains(".")) + { + sql = @"select * from " + TableName + " where BarCode=@BarCode"; + } + else + { + sql = @"select * from " + TableName + " where OneBarCode=@BarCode"; + } + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[0].Value = code; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BarCodeDAl.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BarCodeDAl.cs new file mode 100644 index 0000000..a520079 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BarCodeDAl.cs @@ -0,0 +1,449 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class BarCodeDAl + { + public static string TableName = "tb_BarCode"; + public DataTable SearchInfoByStock(string StockNo) + { + string sql = ""; + DateTime time; + try + { + time = GetDateTime(); + if (time.Hour>=8 &&time.Hour<=23) + { + //sql = @"select top 1 * from " + TableName + " WITH (NOLOCK) where StockNo=@StockNo and PrintType <>2 and " + + // "substring([BarCode],len( [BarCode])-10,6)= right(DATENAME(yy, GETDATE()),2)+ RIGHT('00'+CAST(MONTH(GETDATE()) AS VARCHAR(2)),2)+RIGHT('00'+CAST(Day(GETDATE()) AS VARCHAR(2)),2)" + + // " order by [CreateTime] desc"; + + sql = @"select top 1 * from " + TableName + " WITH (NOLOCK) where StockNo=@StockNo and PrintType <>2 and BatchNo=right(DATENAME(yy, GETDATE()),2)+ RIGHT('00'+CAST(MONTH(GETDATE()) AS VARCHAR(2)),2)+RIGHT('00'+CAST(Day(GETDATE()) AS VARCHAR(2)),2) order by [CreateTime] desc"; + + //sql = @"select top 1 * from " + TableName + " where StockNo=@StockNo and PrintType <>2 and " + + // "substring([BarCode],len( [BarCode])-10,6)= right(DATENAME(yy, ),2)+ RIGHT('00'+CAST(MONTH(GETDATE()) AS VARCHAR(2)),2)+RIGHT('00'+CAST(Day(GETDATE()) AS VARCHAR(2)),2)" + + // " order by [CreateTime] desc"; + } + else + { + sql = @"select top 1 * from " + TableName + " WITH (NOLOCK) where StockNo=@StockNo and PrintType <>2 and BatchNo= right(DATENAME(yy, DATEADD(dd,-1, GETDATE())),2)+ RIGHT('00'+CAST(MONTH(DATEADD(dd,-1, GETDATE())) AS VARCHAR(2)),2)+RIGHT('00'+CAST(Day(DATEADD(dd,-1, GETDATE())) AS VARCHAR(2)),2)" + + " order by [CreateTime] desc"; + } + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[0].Value = StockNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + throw ex; + } + } + + public bool AddInfo(BarCodeModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,StationID,OneBarCode,[BarCode],[StockNo],[PrintType],[CreateTime],[IsImport],StationID2,PlanID,BatchNo"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@StationID,"; + sql += "@OneBarCode,"; + sql += "@BarCode,"; + sql += "@StockNo,"; + sql += "@PrintType,"; + sql += "(select getdate()),"; + sql += "@IsImport,"; + sql += "@StationID2,"; + sql += "@PlanID,@BatchNo)"; + + #region 添加参数 + + param = new SqlParameter[10]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[1].Value = md.StationID; + + param[2] = new SqlParameter("@OneBarCode", SqlDbType.VarChar); + param[2].Value = md.OneBarCode; + + param[3] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[3].Value = md.BarCode; + + param[4] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[4].Value = md.StockNo; + + param[5] = new SqlParameter("@PrintType", SqlDbType.Int); + param[5].Value =md.PrintType; + + param[6] = new SqlParameter("@IsImport", SqlDbType.Text); + param[6].Value = md.Import; + + param[7] = new SqlParameter("@StationID2", SqlDbType.VarChar); + param[7].Value = md.StationID2; + + param[8] = new SqlParameter("@PlanID", SqlDbType.VarChar); + param[8].Value = md.PlanID; + + param[9] = new SqlParameter("@BatchNo", SqlDbType.VarChar); + param[9].Value = md.BatchNo; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + + return false; + } + } + + public DataTable SearchInfo(string stationNo) + { + try + { + string sql = @"SELECT top 100 dbo.tb_BarCode.BarCode, dbo.tb_Product.ProductName, + CASE dbo.tb_BarCode.PrintType WHEN 0 THEN '自动打印' when 1 then '手动打印' when 2 then '补打' END AS PrintType, + dbo.tb_BarCode.CreateTime + FROM dbo.tb_BarCode with (NOLOCK) LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_BarCode.StockNo = dbo.tb_Product.StockNo LEFT OUTER JOIN + dbo.tb_Station ON dbo.tb_BarCode.StationID = dbo.tb_Station.StationID + where dbo.tb_Station.StationNo=@stationNo and IsDel=0 " + + //" and substring([BarCode],len( [BarCode])-10,6)= right(DATENAME(yy, GETDATE()),2)+ RIGHT('00'+CAST(MONTH(GETDATE()) AS VARCHAR(2)),2)+RIGHT('00'+CAST(Day(GETDATE()) AS VARCHAR(2)),2)" + + " order by [CreateTime] desc"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@stationNo", SqlDbType.VarChar); + param[0].Value = stationNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoAll() + { + try + { + string sql = @"SELECT dbo.tb_BarCode.BarCode, dbo.tb_Product.ProductName, + CASE dbo.tb_BarCode.PrintType WHEN 0 THEN '自动打印' when 1 then '手动打印' when 2 then '补打' END AS PrintType, + dbo.tb_BarCode.PrintTime + FROM dbo.tb_BarCode with (NOLOCK) LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_BarCode.StockNo = dbo.tb_Product.StockNo LEFT OUTER JOIN + dbo.tb_Station ON dbo.tb_BarCode.StationID = dbo.tb_Station.StationID + where dbo.tb_Station.StationNo=@stationNo and IsDel=0 " + + //" and substring([BarCode],len( [BarCode])-10,6)= right(DATENAME(yy, GETDATE()),2)+ RIGHT('00'+CAST(MONTH(GETDATE()) AS VARCHAR(2)),2)+RIGHT('00'+CAST(Day(GETDATE()) AS VARCHAR(2)),2)" + + " order by [CreateTime] desc"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBarCode() + { + try + { + string sql = @"SELECT TOP (1000) dbo.tb_BarCode.BarCode, dbo.tb_Product.ProductName, + CASE dbo.tb_BarCode.PrintType WHEN 0 THEN '自动打印' WHEN 1 THEN '手动打印' WHEN 2 THEN '补打' END AS PrintType, + dbo.tb_BarCode.PrintTime, dbo.tb_BarCode.OneBarCode, dbo.tb_BarCode.PlanID, + dbo.tb_InjectPlanReport.MaterialName, dbo.tb_InjectPlanReport.BatchNo + FROM dbo.tb_BarCode with (NOLOCK) LEFT OUTER JOIN + dbo.tb_InjectPlanReport ON dbo.tb_BarCode.PlanID = dbo.tb_InjectPlanReport.InjectionPlanID LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_BarCode.StockNo = dbo.tb_Product.StockNo LEFT OUTER JOIN + dbo.tb_Station ON dbo.tb_BarCode.StationID = dbo.tb_Station.StationID + WHERE (dbo.tb_BarCode.IsDel = 0) + ORDER BY dbo.tb_BarCode.CreateTime DESC"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBarCodeByOne(string oneBarCode) + { + try + { + string sql = @"SELECT dbo.tb_BarCode.BarCode, dbo.tb_Product.ProductName, + CASE dbo.tb_BarCode.PrintType WHEN 0 THEN '自动打印' WHEN 1 THEN '手动打印' WHEN 2 THEN '补打' END AS PrintType, + dbo.tb_BarCode.PrintTime, dbo.tb_BarCode.OneBarCode,dbo.tb_BarCode.PlanID, + dbo.tb_InjectPlanReport.MaterialName, dbo.tb_InjectPlanReport.BatchNo + FROM dbo.tb_BarCode with (NOLOCK) LEFT OUTER JOIN + dbo.tb_InjectPlanReport ON dbo.tb_BarCode.PlanID = dbo.tb_InjectPlanReport.InjectionPlanID LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_BarCode.StockNo = dbo.tb_Product.StockNo LEFT OUTER JOIN + dbo.tb_Station ON dbo.tb_BarCode.StationID = dbo.tb_Station.StationID + WHERE dbo.tb_BarCode.IsDel = 0 and dbo.tb_BarCode.OneBarCode=@OneBarCode + ORDER BY dbo.tb_BarCode.CreateTime DESC"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@OneBarCode", SqlDbType.VarChar); + param[0].Value = oneBarCode; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBarCodeByTwo(string BarCode) + { + try + { +// string sql = @"SELECT dbo.tb_BarCode.BarCode, dbo.tb_Product.ProductName, +// CASE dbo.tb_BarCode.PrintType WHEN 0 THEN '自动打印' WHEN 1 THEN '手动打印' WHEN 2 THEN '补打' END AS PrintType, +// dbo.tb_BarCode.PrintTime, dbo.tb_BarCode.OneBarCode +// FROM dbo.tb_BarCode LEFT OUTER JOIN +// dbo.tb_Product ON dbo.tb_BarCode.StockNo = dbo.tb_Product.StockNo LEFT OUTER JOIN +// dbo.tb_Station ON dbo.tb_BarCode.StationID = dbo.tb_Station.StationID +// WHERE dbo.tb_BarCode.IsDel = 0 and dbo.tb_BarCode.BarCode=@BarCode +// ORDER BY dbo.tb_BarCode.CreateTime DESC"; + string sql = @"SELECT dbo.tb_BarCode.BarCode, dbo.tb_Product.ProductName, + CASE dbo.tb_BarCode.PrintType WHEN 0 THEN '自动打印' WHEN 1 THEN '手动打印' WHEN 2 THEN '补打' END AS PrintType, + dbo.tb_BarCode.PrintTime, dbo.tb_BarCode.OneBarCode,dbo.tb_BarCode.PlanID, + dbo.tb_InjectPlanReport.MaterialName, dbo.tb_InjectPlanReport.BatchNo + FROM dbo.tb_BarCode with (NOLOCK) LEFT OUTER JOIN + dbo.tb_InjectPlanReport ON dbo.tb_BarCode.PlanID = dbo.tb_InjectPlanReport.InjectionPlanID LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_BarCode.StockNo = dbo.tb_Product.StockNo LEFT OUTER JOIN + dbo.tb_Station ON dbo.tb_BarCode.StationID = dbo.tb_Station.StationID + WHERE dbo.tb_BarCode.IsDel = 0 and dbo.tb_BarCode.BarCode=@BarCode + ORDER BY dbo.tb_BarCode.CreateTime DESC"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[0].Value = BarCode; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 查找流水号 + /// + /// 零件号.批次 + /// + public DataTable SearchSerialNoByBarCode(string stockNo,string batchNo) + { + try + { + string sql = @"select top 1 * from " + TableName + " with (NOLOCK) where StockNo=@StockNo and BatchNo=@BatchNo and PrintType <> 2" + + " order by [CreateTime] desc"; + SqlParameter[] param = new SqlParameter[2]; + param[0] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[0].Value = stockNo; + + param[1] = new SqlParameter("@BatchNo", SqlDbType.VarChar); + param[1].Value = batchNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoByBarCode(string BarCode) + { + try + { + string sql = @"select top 1 * from " + TableName + " with (NOLOCK) where BarCode=@BarCode order by [CreateTime] desc "; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[0].Value = BarCode; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 更改打印时间 + /// + /// + /// + public bool UpdateInfo(BarCodeModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = @"update tb_BarCode set PrintTime=(select getdate()) where [StationID]=@StationID and PrintTime is null"; + + #region 添加参数 + param = new SqlParameter[1]; + param[0] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[0].Value = md.StationID; + + //param[1] = new SqlParameter("@PrintTime", SqlDbType.DateTime); + //param[1].Value = md.PrintTime; + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + /// + /// 删除手工打印条码 + /// + /// + /// + public bool DelBarCode(BarCodeModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = @"update tb_BarCode set IsDel=0 where BarCode=@BarCode"; + + #region 添加参数 + param = new SqlParameter[1]; + param[0] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[0].Value = md.BarCode; + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DateTime GetDateTime() + { + string sql = ""; + DateTime time; + DataTable dt; + try + { + sql = @"select getdate() as time"; + + dt= SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + time = Convert.ToDateTime(dt.Rows[0]["time"].ToString()); + + } + else + { + time=DateTime.Now; + } + return time; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return DateTime.Now; + } + } + + /// + /// 根据二维码查找一维码,并查找一维码是否存在 + /// + /// + /// + public DataTable SearchOneBarCode(string BarCode,int a) + { + try + { + string sql = ""; + SqlParameter[] param = new SqlParameter[1]; + + if (a == 1) + { + sql = @"select OneBarCode + from tb_BarCode + where OneBarCode = @barcode"; + + param[0] = new SqlParameter("@barcode", SqlDbType.VarChar); + param[0].Value = BarCode; + } + + if (a == 2) + { + sql = @"select * + from tb_BarCode + where barcode = @barcode"; + + param[0] = new SqlParameter("@barcode", SqlDbType.VarChar); + param[0].Value = BarCode; + } + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BomDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BomDAL.cs new file mode 100644 index 0000000..ee41955 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/BomDAL.cs @@ -0,0 +1,150 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class BomDAL + { + public DataTable SearchBom(string PartNo) + { + try + { + string sql = @"SELECT dbo.tb_Product.ProductName, dbo.tb_ProductType.ProductTypeName, dbo.tb_ProductType.ProductTypeNo, + dbo.tb_Product.PartNo, dbo.tb_Bom.PartNo2, dbo.tb_Product.StockNo + FROM dbo.tb_Bom RIGHT OUTER JOIN + dbo.tb_Product ON dbo.tb_Bom.PartNo1 = dbo.tb_Product.PartNo LEFT OUTER JOIN + dbo.tb_ProductType ON dbo.tb_Product.ProductTypeID = dbo.tb_ProductType.ProductTypeID + WHERE PartNo=@PartNo"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable Search(string partNo1, string partNo2) + { + try + { + string sql = "select * from tb_Bom where PartNo1=@partNo1,PartNo2=@partNo2"; + + SqlParameter[] param = new SqlParameter[2]; + param[0] = new SqlParameter("@@partNo1", SqlDbType.VarChar); + param[0].Value = partNo1; + + param[1] = new SqlParameter("@@partNo2", SqlDbType.VarChar); + param[1].Value = partNo2; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(BomModel md) + { + string sql = ""; + SqlParameter[] param = null; + + try + { + sql = "insert into tb_Bom(ID,,PartNo1,PartNo2) values(@ID,@partNo1,@partNo2)"; + + param = new SqlParameter[3]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.BomID; + + param[1] = new SqlParameter("@partNo1", SqlDbType.VarChar); + param[1].Value = md.PartNo1; + + param[2] = new SqlParameter("@partNo2", SqlDbType.VarChar); + param[2].Value = md.PartNo2; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool updateInfo(BomModel md) + { + string sql = ""; + SqlParameter[] param = null; + + try + { + sql = "update tb_Bom set PartNo2=@partNo2 where PartNo1=@partNo1"; + + param = new SqlParameter[2]; + + param[0] = new SqlParameter("@partNo1", SqlDbType.VarChar); + param[0].Value = md.PartNo1; + + param[1] = new SqlParameter("@partNo2", SqlDbType.VarChar); + param[1].Value = md.PartNo2; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo(BomModel md) + { + string sql = ""; + SqlParameter[] param = null; + + try + { + sql = "delete from tb_Bom where PartNo1=@partNo1 and PartNo2=@partNo2 "; + + param = new SqlParameter[2]; + + param[0] = new SqlParameter("@partNo1", SqlDbType.VarChar); + param[0].Value = md.PartNo1; + + param[1] = new SqlParameter("@partNo2", SqlDbType.VarChar); + param[1].Value = md.PartNo2; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ColorDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ColorDAL.cs new file mode 100644 index 0000000..fdd2b7a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ColorDAL.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.Model; + +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class ColorDAL + { + public DataTable SearchInfoAll() + { + try + { + string sql = @"select * from [tb_Color] WHERE OrderNo IS NOT NULL AND OrderNo <>0 ORDER BY OrderNo"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByName(string color) + { + try + { + string sql = @"select distinct [ColorNo] from [tb_Color] where [Des]= @Des"; + + SqlParameter[] param=new SqlParameter[1]; + + param[0] = new SqlParameter("@Des", SqlDbType.VarChar); + param[0].Value = color; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/DefectDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/DefectDAL.cs new file mode 100644 index 0000000..4c8c162 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/DefectDAL.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +namespace MESClassLibrary.DAL.BasicInfo +{ + public class DefectDAL + { + public DataTable SearchInfoAll(string LineID) + { + try + { + string sql = @"SELECT * from tb_Defect where LineID=@LineID"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@LineID", SqlDbType.VarChar); + param[0].Value = LineID; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/InjectionPlanDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/InjectionPlanDAL.cs new file mode 100644 index 0000000..abd40c7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/InjectionPlanDAL.cs @@ -0,0 +1,210 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Data; +using System.Data.SqlClient; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System.Reflection; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class InjectionPlanDAL + { + public static string TableName = "tb_InjectionPlan"; + + + /// + /// 获取当前计划 + /// + /// + /// + public DataTable SearchPlanByStation(string StationID) + { + try + { + string sql = @"SELECT top 1 dbo.tb_InjectionPlan.InjectionPlanID, dbo.tb_Product.ProductName, dbo.tb_Station.StationNo, dbo.tb_InjectionPlan.BeginTime, dbo.tb_InjectionPlan.PlanCount, + dbo.tb_InjectionPlan.EndTime, dbo.tb_InjectionPlan.StockNo, dbo.tb_InjectionPlan.PlanDate, + dbo.tb_InjectionPlan.CompleteCount, dbo.tb_Product.PartNo, dbo.tb_Product.ProductName, dbo.tb_Product.ColorName, + dbo.tb_Product.Rows, dbo.tb_Product.Cols, dbo.tb_Product.Layers, dbo.tb_Product.PicturePath,dbo.tb_Station.StationID + FROM dbo.tb_InjectionPlan WITH (NOLOCK) LEFT OUTER JOIN + dbo.tb_Station ON dbo.tb_InjectionPlan.StationID = dbo.tb_Station.StationID LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_InjectionPlan.StockNo = dbo.tb_Product.StockNo + WHERE (dbo.tb_Station.StationNo = @StationID) AND ((dbo.tb_InjectionPlan.IsFinish IS NULL OR dbo.tb_InjectionPlan.IsFinish=0)) + ORDER BY dbo.tb_InjectionPlan.BeginTime"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[0].Value = StationID; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 获取下一计划 + /// + /// + /// + public DataTable NextSearchPlanByStation(string StationID) + { + try + { + string sql = @"SELECT top 2 dbo.tb_Product.ProductName, dbo.tb_Station.StationNo, dbo.tb_InjectionPlan.BeginTime, dbo.tb_InjectionPlan.PlanCount, + dbo.tb_InjectionPlan.EndTime, dbo.tb_InjectionPlan.StockNo, dbo.tb_InjectionPlan.PlanDate, + dbo.tb_InjectionPlan.CompleteCount, dbo.tb_Product.PartNo, dbo.tb_Product.ProductName, dbo.tb_Product.ColorName, + dbo.tb_Product.Rows, dbo.tb_Product.Cols, dbo.tb_Product.Layers, dbo.tb_Product.PicturePath,dbo.tb_Station.StationID + FROM dbo.tb_InjectionPlan LEFT OUTER JOIN + dbo.tb_Station ON dbo.tb_InjectionPlan.StationID = dbo.tb_Station.StationID LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_InjectionPlan.StockNo = dbo.tb_Product.StockNo + WHERE (dbo.tb_Station.StationNo = @StationID) AND ((dbo.tb_InjectionPlan.IsFinish IS NULL OR dbo.tb_InjectionPlan.IsFinish=0)) + ORDER BY dbo.tb_InjectionPlan.BeginTime"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[0].Value = StationID; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdateFinish(InjectionPlanModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = @"update tb_InjectionPlan set IsFinish=1 ,FinishTime=getdate() + where [InjectionPlanID]=( select top 1 [InjectionPlanID] from [dbo].[tb_InjectionPlan] where (IsFinish is null or IsFinish=0 )and StationID=@StationID order by BeginTime asc)"; + + #region 添加参数 + param = new SqlParameter[1]; + param[0] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[0].Value = md.StationID; + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + + public DataTable SearchByPage(int pageIndex, int pageSize, string stationID, string stockNo) + { + try + { + + string sql = "select * FROM[dbo].[tb_InjectionPlan] "; + sql += " where 1=1 "; + if (!string.IsNullOrEmpty(stationID)) + { + sql += " and StationID = '" + stationID + "' "; + } + if (!string.IsNullOrEmpty(stockNo)) + { + sql += " and StockNo like '%" + stockNo + "%' "; + } + sql += " order by BeginTime "; + sql += " offset " + ((pageIndex - 1) * pageSize) + " rows "; + sql += " fetch next " + pageSize + " rows only "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + public DataTable SearchByTime(int pageIndex, int pageSize, string stationID, string stockNo, string StartTime, string EndTime) + { + try + { + + string sql = "select * FROM[dbo].[tb_InjectionPlan] where BeginTime>='" + StartTime + "' and BeginTime<='" + EndTime + "' "; + if (!string.IsNullOrEmpty(stationID)) + { + sql += " and StationID = '" + stationID + "' "; + } + if (!string.IsNullOrEmpty(stockNo)) + { + sql += " and StockNo like '%" + stockNo + "%' "; + } + sql += " order by BeginTime "; + sql += " offset " + ((pageIndex - 1) * pageSize) + " rows "; + sql += " fetch next " + pageSize + " rows only "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + public int SearchByTimeCount(string stationID, string stockNo, string StartTime, string EndTime) + { + try + { + + string sql = "select * FROM[dbo].[tb_InjectionPlan] where BeginTime>='" + StartTime + "' and EndTime<='" + EndTime + "' "; + if (!string.IsNullOrEmpty(stationID)) + { + sql += " and StationID = '" + stationID + "' "; + } + if (!string.IsNullOrEmpty(stockNo)) + { + sql += " and StockNo like '%" + stockNo + "%' "; + } + + return SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return 0; + } + } + + + //public bool DeleteInfoByAPS(tb_InjectionPlan md) + //{ + // try + // { + + // } + // catch (Exception ex) + // { + // LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + // return false; + // } + //} + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/OperatorDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/OperatorDAL.cs new file mode 100644 index 0000000..bc30e15 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/OperatorDAL.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class OperatorDAL + { + public static string TableName = "tb_Operator"; + + /// + /// 根据操作员姓名和工位查询 + /// + /// + /// + public DataTable SearchInfoByName(string OperatorName,string StationID) + { + try + { + string sql = @"select * from " + TableName + " where OperatorName=@OperatorName and StationID=@StationID"; + + SqlParameter[] param = new SqlParameter[2]; + param[0] = new SqlParameter("@OperatorName", SqlDbType.VarChar); + param[0].Value = OperatorName; + + param[1] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[1].Value = StationID; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoByNameAndPsw(string OperatorName, string StationID,string OperatorPsw) + { + try + { + string sql = @"select * from " + TableName + " where OperatorName=@OperatorName and StationID=@StationID and OperatorPsw=@OperatorPsw"; + + SqlParameter[] param = new SqlParameter[3]; + param[0] = new SqlParameter("@OperatorName", SqlDbType.VarChar); + param[0].Value = OperatorName; + + + param[1] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[1].Value = StationID; + + param[2] = new SqlParameter("@OperatorPsw", SqlDbType.VarChar); + param[2].Value = OperatorPsw; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductDAL.cs new file mode 100644 index 0000000..59b98ce --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductDAL.cs @@ -0,0 +1,245 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; +using MESClassLibrary.Model; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class ProductDAL + { + public static string TableName = "tb_ProductType"; + + public DataTable SearchInfoByType(string type, string stationNo) + { + try + { + string sql = + @"SELECT + dbo.tb_Product.PartName, + dbo.tb_Product.ProductName, + dbo.tb_ProductType.ProductTypeName, + dbo.tb_ProductType.ProductTypeNo, + dbo.tb_Product.PartNo, + dbo.tb_Station.StationNo, + dbo.tb_Plastic.StockNo + FROM dbo.tb_Plastic + LEFT OUTER JOIN dbo.tb_Station ON dbo.tb_Plastic.StationID = dbo.tb_Station.StationID + LEFT OUTER JOIN dbo.tb_Product ON dbo.tb_Plastic.StockNo = dbo.tb_Product.StockNo + LEFT OUTER JOIN dbo.tb_ProductType ON dbo.tb_Product.ProductTypeID = dbo.tb_ProductType.ProductTypeID + WHERE + dbo.tb_ProductType.ProductTypeNo = @ProductTypeNo + and StationNo = @StationNo"; + + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@ProductTypeNo", SqlDbType.VarChar); + param[0].Value = type; + + param[1] = new SqlParameter("@StationNo", SqlDbType.VarChar); + param[1].Value = stationNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoAllByType(string type) + { + try + { + string sql = + @"SELECT + DISTINCT dbo.tb_Product.ProductName, + dbo.tb_ProductType.ProductTypeName, + dbo.tb_ProductType.ProductTypeNo, + dbo.tb_Product.PartNo, + dbo.tb_Bom.PartNo2, + dbo.tb_Product.StockNo + FROM dbo.tb_Bom + RIGHT OUTER JOIN dbo.tb_Product ON dbo.tb_Bom.PartNo1 = dbo.tb_Product.PartNo + LEFT OUTER JOIN dbo.tb_ProductType ON dbo.tb_Product.ProductTypeID = dbo.tb_ProductType.ProductTypeID + WHERE + dbo.tb_ProductType.ProductTypeNo = @ProductTypeNo + ORDER BY + StockNo"; + + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@ProductTypeNo", SqlDbType.VarChar); + param[0].Value = type; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoByName(string ProductName, string ProductTypeNo) + { + try + { + string sql = + @"SELECT + dbo.tb_Product.PartName, + dbo.tb_Product.ProductName, + dbo.tb_ProductType.ProductTypeName, + dbo.tb_ProductType.ProductTypeNo, + dbo.tb_Product.PartNo, + dbo.tb_Product.StockNo + FROM dbo.tb_ProductType + RIGHT OUTER JOIN dbo.tb_Product ON dbo.tb_ProductType.ProductTypeID = dbo.tb_Product.ProductTypeID + where + dbo.tb_Product.ProductName = @ProductName + and dbo.tb_ProductType.ProductTypeNo = @ProductTypeNo + ORDER BY + SUBSTRING(ProductName, 0, 4)"; + + SqlParameter[] param = new SqlParameter[2]; + param[0] = new SqlParameter("@ProductName", SqlDbType.VarChar); + param[0].Value = ProductName; + + param[1] = new SqlParameter("@ProductTypeNo", SqlDbType.VarChar); + param[1].Value = ProductTypeNo; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoByPartNo(string partNo) + { + try + { + string sql = @"select * from [tb_Product] where [PartNo]=@partNo"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@partNo", SqlDbType.VarChar); + param[0].Value = partNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + + } + } + + public DataTable SearchIsImportByStockNo(string StockNo) + { + try + { + string sql = @"select * from [tb_Product] where [StockNo]=@StockNo"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[0].Value = StockNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + + } + } + + public DataTable SearchInfoByProductName(string ProductName) + { + try + { + string sql = @"select * from [tb_Product] with (NOLOCK) where [ProductName]=@ProductName"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@ProductName", SqlDbType.VarChar); + param[0].Value = ProductName; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoAll() + { + try + { + string sql = @"select * from [tb_Product] where ProductTypeID='f3bbde11-7188-4910-855d-806d92d142b9' and StockNo is not null AND (OrderNo IS NOT NULL AND OrderNo<> 0) order by OrderNo"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + //public DataTable SearchInfoByType(string list) + //{ + // try + // { + // string sql = @"select StockNo+'-'+ProductName AS aa from [tb_Product] where StockNo+'-'+ProductName like '%' + @list + '%' and [StockNo] like '2%'"; + + // SqlParameter[] param = new SqlParameter[1]; + // param[0] = new SqlParameter("@list", SqlDbType.VarChar); + // param[0].Value = list; + + // return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + // } + // catch (Exception ex) + // { + // LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + // return null; + // } + //} + + public DataTable SearchInfoByStock(string StockNo) + { + try + { + string sql = @"select * from [tb_Product] where [StockNo]=@StockNo"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[0].Value = StockNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductOfInjectionDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductOfInjectionDAL.cs new file mode 100644 index 0000000..3d9d074 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductOfInjectionDAL.cs @@ -0,0 +1,265 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class ProductOfInjectionDAL + { + public static string TableName = "tb_Product_Injection"; + public bool AddInfo(ProductOfInjectionModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,PlanID,StationID,ProductDate,ClassName,StockNo,PartNo,ProductCount,BadCount)"; + sql += " VALUES ("; + sql += "@ID,"; + sql += "@PlanID,"; + sql += "@StationID,"; + sql += "@ProductDate,"; + sql += "@ClassName,"; + sql += "@StockNo,"; + sql += "@PartNo,"; + sql += "@ProductCount,"; + sql += "@BadCount)"; + + #region 添加参数 + param = new SqlParameter[9]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PlanID", SqlDbType.VarChar); + param[1].Value = md.PlanID; + + param[2] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[2].Value = md.StationID; + + param[3] = new SqlParameter("@ProductDate", SqlDbType.VarChar); + param[3].Value = md.ProductDate; + + param[4] = new SqlParameter("@ClassName", SqlDbType.VarChar); + param[4].Value = md.ClassName; + + param[5] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[5].Value = md.StockNo; + + param[6] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[6].Value = md.PartNo; + + param[7] = new SqlParameter("@ProductCount", SqlDbType.Int); + param[7].Value = md.ProductCount; + + param[8] = new SqlParameter("@BadCount", SqlDbType.Int); + param[8].Value = md.BadCount; + + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public DataTable SearchCountByInfo(string station,string date,string classname,string StockNo,string PartNo) + { + try + { + string sql = @"select * from " + TableName + " where StationID=@StationID and " + + "ProductDate=@ProductDate and ClassName=@ClassName and StockNo=@StockNo and PartNo=@PartNo"; + + SqlParameter[] param = new SqlParameter[5]; + param[0] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[0].Value = station; + + param[1] = new SqlParameter("@ProductDate", SqlDbType.VarChar); + param[1].Value = date; + + param[2] = new SqlParameter("@ClassName", SqlDbType.VarChar); + param[2].Value = classname; + + param[3] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[3].Value = StockNo; + + param[4] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[4].Value = PartNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdateInfo(ProductOfInjectionModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = @"update " + TableName + " set ProductCount=ProductCount+@ProductCount,BadCount=BadCount+@BadCount where StationID=@StationID and ProductDate=@ProductDate and ClassName=@ClassName and StockNo=@StockNo and PartNo=@PartNo and PlanID=@PlanID"; + + #region 添加参数 + param = new SqlParameter[8]; + param[0] = new SqlParameter("@ProductCount", SqlDbType.Int); + param[0].Value = md.ProductCount; + + param[1] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[1].Value = md.StationID; + + param[2] = new SqlParameter("@ProductDate", SqlDbType.VarChar); + param[2].Value = md.ProductDate; + + param[3] = new SqlParameter("@ClassName", SqlDbType.VarChar); + param[3].Value = md.ClassName; + + param[4] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[4].Value = md.StockNo; + + param[5] = new SqlParameter("@BadCount", SqlDbType.Int); + param[5].Value = md.BadCount; + + param[6] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[6].Value = md.PartNo; + + param[7] = new SqlParameter("@PlanID", SqlDbType.VarChar); + param[7].Value = md.PlanID; + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdteBadInfo(ProductOfInjectionModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + if (md.StockNo != "") + { + sql = @"update " + TableName + " set BadCount=BadCount+@BadCount where StationID=@StationID and ProductDate=@ProductDate and ClassName=@ClassName and StockNo=@StockNo "; + } + else + { + sql = @"update " + TableName + " set BadCount=BadCount+@BadCount where StationID=@StationID and ProductDate=@ProductDate and ClassName=@ClassName and PartNo=@PartNo"; + } + + + #region 添加参数 + param = new SqlParameter[6]; + + param[0] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[0].Value = md.StationID; + + param[1] = new SqlParameter("@ProductDate", SqlDbType.VarChar); + param[1].Value = md.ProductDate; + + param[2] = new SqlParameter("@ClassName", SqlDbType.VarChar); + param[2].Value = md.ClassName; + + param[3] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[3].Value = md.StockNo; + + param[4] = new SqlParameter("@BadCount", SqlDbType.Int); + param[4].Value = md.BadCount; + + param[5] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[5].Value = md.PartNo; + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + /// + /// 开机报废减产量 + /// + /// + /// + public bool updateProductCount(ProductOfInjectionModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + if (md.StockNo != "") + { + sql = @"update " + TableName + " set ProductCount=ProductCount-@ProductCount where StationID=@StationID and ProductDate=@ProductDate and ClassName=@ClassName and StockNo=@StockNo "; + } + else + { + sql = @"update " + TableName + " set ProductCount=ProductCount-@ProductCount where StationID=@StationID and ProductDate=@ProductDate and ClassName=@ClassName and PartNo=@PartNo"; + } + + + #region 添加参数 + param = new SqlParameter[6]; + + param[0] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[0].Value = md.StationID; + + param[1] = new SqlParameter("@ProductDate", SqlDbType.VarChar); + param[1].Value = md.ProductDate; + + param[2] = new SqlParameter("@ClassName", SqlDbType.VarChar); + param[2].Value = md.ClassName; + + param[3] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[3].Value = md.StockNo; + + param[4] = new SqlParameter("@ProductCount", SqlDbType.Int); + param[4].Value = md.ProductCount; + + param[5] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[5].Value = md.PartNo; + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductTypeDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductTypeDAL.cs new file mode 100644 index 0000000..7cee704 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProductTypeDAL.cs @@ -0,0 +1,210 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class ProductTypeDAL + { + public static string TableName = "tb_ProductType"; + public string GetTableName() + { + return TableName; + } + /// + /// 获取全部信息 + /// + /// + public DataTable SearchInfo() + { + try + { + string sql = @"select * from "+ TableName; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 根据id查询信息 + /// + /// + /// + public DataTable SearchInfoByID(string ProductTypeID) + { + try + { + string sql = @"select * from "+ TableName + " where ProductTypeID=@ProductTypeID"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@ProductTypeID", SqlDbType.VarChar); + param[0].Value = ProductTypeID; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 根据ProductTypeNo查询信息 + /// + /// + /// + public DataTable SearchByProductTypeNo(string ProductTypeNo) + { + try + { + string sql = @"select * from " + TableName + " where ProductTypeNo=@ProductTypeNo"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@ProductTypeNo", SqlDbType.VarChar); + param[0].Value = ProductTypeNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 添加信息 + /// + /// 模型 + /// + public bool AddInfo(ProductTypeModel mod) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ProductTypeID,ProductTypeNo,ProductTypeName,Des"; + sql += ") VALUES ("; + sql += "@ProductTypeID,"; + sql += "@ProductTypeNo,"; + sql += "@ProductTypeName,"; + sql += "@Des)"; + + #region 添加参数 + param = new SqlParameter[4]; + param[0] = new SqlParameter("@ProductTypeID", SqlDbType.VarChar); + param[0].Value = mod.ProductTypeID; + + param[1] = new SqlParameter("@ProductTypeNo", SqlDbType.VarChar); + param[1].Value = mod.ProductTypeNo; + + param[2] = new SqlParameter("@ProductTypeName", SqlDbType.VarChar); + param[2].Value = mod.ProductTypeName; + + param[3] = new SqlParameter("@Des", SqlDbType.VarChar); + param[3].Value = mod.Des; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 更新信息 + /// + /// 模型对象 + /// + public bool UpdateInfo(ProductTypeModel md) + { + try + { + string sql = @"update " + TableName + @" set + ProductTypeNo = @ProductTypeNo, + ProductTypeName = @ProductTypeName, + Des = @Des + where ProductTypeID=@ProductTypeID"; + + SqlParameter[] param = new SqlParameter[4]; + param[0] = new SqlParameter("@ProductTypeNo", SqlDbType.VarChar); + param[0].Value = md.ProductTypeNo; + + param[1] = new SqlParameter("@ProductTypeName", SqlDbType.VarChar); + param[1].Value = md.ProductTypeName; + + param[2] = new SqlParameter("@Des", SqlDbType.VarChar); + param[2].Value = md.Des; + + param[3] = new SqlParameter("@ProductTypeID", SqlDbType.VarChar); + param[3].Value = md.ProductTypeID; + + if (SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param) > 0) + { + return true; + } + return false; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + /// + /// 更新信息 + /// + /// 模型对象 + /// + public bool DeleteInfo(string ProductTypeID) + { + try + { + string sql = @"delete from " + TableName + @" where ProductTypeID=@ProductTypeID"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@ProductTypeID", SqlDbType.VarChar); + param[0].Value = ProductTypeID; + + if (SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param) > 0) + { + return true; + } + return false; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProjectDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProjectDAL.cs new file mode 100644 index 0000000..9bb9683 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/ProjectDAL.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class ProjectDAL + { + public DataTable SearchInfo() + { + try + { + string sql = @"select Project from tb_Project"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/BasicInfo/StationDAL.cs b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/StationDAL.cs new file mode 100644 index 0000000..b2ae940 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/BasicInfo/StationDAL.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System.Data; +using System.Data.SqlClient; +using System.Reflection; + +namespace MESClassLibrary.DAL.BasicInfo +{ + public class StationDAL + { + public static string TableName = "tb_Station"; + + public DataTable SearchInfoByNo(string station) + { + try + { + string sql = @"select * from " + TableName + " where StationNo=@StationNo"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@StationNo", SqlDbType.VarChar); + param[0].Value = station; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Check/InspectResultDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Check/InspectResultDAL.cs new file mode 100644 index 0000000..fda86bd --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Check/InspectResultDAL.cs @@ -0,0 +1,398 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.DAL.Check +{ + public class InspectResultDAL + { + public DataTable SearchByPage(int pageIndex, int pageSize, string StartTime, string EndTime, string position, string inspectResult) + { + try + { + //string sql = @"select top " + pageSize + " * from (select row_number() over(order by createTime desc) as rownumber,* from tb_InspectResult) temp_row "; + //sql += " where createTime>='"+ StartTime + "' and createTime<='" + EndTime + "'"; + //if (!string.IsNullOrEmpty(position)) + //{ + // sql += " and position = '" + position+"'"; + //} + //if (!string.IsNullOrEmpty(inspectResult)) + //{ + // sql += " and inspectResult like '%" + inspectResult + "%'"; + //} + //sql += " and rownumber > " + ((pageIndex - 1) * pageSize); + + string sql = "select * FROM[dbo].[tb_InspectResult] where barcode in "; + sql += "(select barcode from(select distinct barcode, createTime from [dbo].[tb_InspectResult] "; + sql += " where barcode is not null and createTime>='" + StartTime + "' and createTime<='" + EndTime + "' "; + if (!string.IsNullOrEmpty(position)) + { + sql += " and position = '" + position + "' "; + } + if (!string.IsNullOrEmpty(inspectResult)) + { + sql += " and inspectResult like '%" + inspectResult + "%' "; + } + sql += " order by createTime "; + sql += " offset " + ((pageIndex - 1) * pageSize) + " rows "; + sql += " fetch next " + pageSize + " rows only) temp_row) "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchRepairByPage(int pageIndex, int pageSize, string StartTime, string EndTime, string inspectResult) + { + try + { + string sql = @" SELECT * FROM dbo.tb_InspectResult "; + + //sql += "(select barcode from(select distinct barcode, createTime from [dbo].[tb_InspectResult] "; + sql += " where barcode IS NOT NULL AND createTime BETWEEN '" + StartTime + "' AND '" + EndTime + ".999' and position='下线二检 点修补'"; + + if (!string.IsNullOrEmpty(inspectResult)) + { + sql += " and inspectResult like '%" + inspectResult + "%' "; + } + sql += " order by createTime "; + sql += " offset " + ((pageIndex - 1) * pageSize) + " rows "; + sql += " fetch next " + pageSize + " rows only "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchRepairByPage_1(int pageIndex, int pageSize, string StartTime, string EndTime, string inspectResult,string Project,string color) + { + try + { + string sql = @" SELECT * + FROM dbo.tb_Project RIGHT OUTER JOIN + dbo.tb_Product ON dbo.tb_Project.ID = dbo.tb_Product.ProjectID RIGHT OUTER JOIN + dbo.tb_InspectResult ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_InspectResult.barcode, 1, 10)"; + + //sql += "(select barcode from(select distinct barcode, createTime from [dbo].[tb_InspectResult] "; + sql += " where barcode IS NOT NULL AND createTime BETWEEN '" + StartTime + "' AND '" + EndTime + ".999' and position='下线二检 点修补'"; + + if (!string.IsNullOrEmpty(inspectResult)) + { + sql += " and inspectResult like '%" + inspectResult + "%' "; + } + + if (!string.IsNullOrEmpty(Project)) + { + sql += " and Project like '%" + Project + "%' "; + } + + if (!string.IsNullOrEmpty(color)) + { + sql += " and remark1 like '%" + color + "%' "; + } + + sql += " order by createTime "; + sql += " offset " + ((pageIndex - 1) * pageSize) + " rows "; + sql += " fetch next " + pageSize + " rows only "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + + public int SearchCount(string StartTime, string EndTime, string position, string inspectResult) + { + try + { + string sql = "select count(1) as num from (select barcode as num FROM[dbo].[tb_InspectResult] where barcode in "; + sql += "(select distinct barcode from [dbo].[tb_InspectResult] "; + sql += " where barcode is not null and createTime>='" + StartTime + "' and createTime<='" + EndTime + "' "; + if (!string.IsNullOrEmpty(position)) + { + sql += " and position = '" + position + "' "; + } + if (!string.IsNullOrEmpty(inspectResult)) + { + sql += " and inspectResult like '%" + inspectResult + "%' "; + } + sql += " ) GROUP BY barcode) tem"; + //string sql = "select count(1) as num FROM[dbo].[tb_InspectResult] "; + //sql += " where barcode is not null and createTime>='" + StartTime + "' and createTime<='" + EndTime + "' "; + //if (!string.IsNullOrEmpty(position)) + //{ + // sql += " and position = '" + position + "' "; + //} + //if (!string.IsNullOrEmpty(inspectResult)) + //{ + // sql += " and inspectResult like '%" + inspectResult + "%' "; + //} + + return Convert.ToInt32(SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0].Rows[0]["num"].ToString()); + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return 0; + } + } + + public int SearchCountByRepair(string StartTime, string EndTime, string inspectResult,string Project,string color) + { + //string sql = @" SELECT COUNT(*) as num FROM dbo.tb_InspectResult "; + string sql = @"SELECT COUNT(*) as num + FROM dbo.tb_Project RIGHT OUTER JOIN + dbo.tb_Product ON dbo.tb_Project.ID = dbo.tb_Product.ProjectID RIGHT OUTER JOIN + dbo.tb_InspectResult ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_InspectResult.barcode, 1, 10)"; + //sql += "(select barcode from(select distinct barcode, createTime from [dbo].[tb_InspectResult] "; + sql += " where barcode IS NOT NULL AND createTime BETWEEN '" + StartTime + "' AND '" + EndTime + ".999' and position='下线二检 点修补'"; + + //string sql = @" SELECT COUNT(DISTINCT barcode) as num FROM dbo.tb_InspectResult WHERE barcode IS NOT NULL AND createTime BETWEEN '"+ StartTime + "' AND '"+ EndTime + ".999' AND position='下线二检 点修补'"; + if (!string.IsNullOrEmpty(inspectResult)) + { + sql += " and inspectResult like '%" + inspectResult + "%' "; + } + + if (!string.IsNullOrEmpty(Project)) + { + sql += " and Project like '%" + Project + "%' "; + } + + if (!string.IsNullOrEmpty(color)) + { + sql += " and remark1 like '%" + color + "%' "; + } + + return Convert.ToInt32(SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0].Rows[0]["num"].ToString()); + } + + public DataTable Search(string StartTime, string EndTime, string position, string inspectResult) + { + try + { + + string sql = "select * FROM[dbo].[tb_InspectResult] where barcode in "; + sql += "(select distinct barcode from [dbo].[tb_InspectResult] "; + sql += " where barcode is not null and createTime<='" + EndTime + "' and createTime>='" + StartTime + "' "; + if (!string.IsNullOrEmpty(position)) + { + sql += " and position = '" + position + "' "; + } + if (!string.IsNullOrEmpty(inspectResult)) + { + sql += " and inspectResult like '%" + inspectResult + "%' "; + } + sql += " ) order by createTime"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByRepair(string StartTime, string EndTime, string inspectResult) + { + try + { + + string sql = "select * FROM dbo.tb_InspectResult "; + sql += " where barcode IS NOT NULL AND createTime BETWEEN '" + StartTime + "' AND '" + EndTime + ".999' AND position='下线二检 点修补'"; + + if (!string.IsNullOrEmpty(inspectResult)) + { + sql += " and inspectResult like '%" + inspectResult + "%' "; + } + sql += " order by createTime"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + public DataTable SearchByPosition(string StartTime, string EndTime, string side, string product) + { + try + { + + string sql = "select * FROM[dbo].[tb_InspectResult] "; + sql += " where barcode is not null and createTime BETWEEN '" + StartTime + "' AND '" + EndTime + "'"; + if (!string.IsNullOrEmpty(side)) + { + if ("A侧".Equals(side)) + { + sql += " and (side = '" + side + "' or side ='' or side is null) "; + } + if ("B侧".Equals(side)) + { + sql += " and side = '" + side + "' "; + } + + } + if (!string.IsNullOrEmpty(product)) + { + if ("保险杠".Equals(product)) + { + sql += " and (product like '%前保%' or product like '%后保%')"; + } + } + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByResult(string StartTime, string EndTime, string side) + { + try + { + + string sql = "select ID,barcode,side,position,stationNo,workClass,inspectResult,damnPosition,defectID,reason,productInfo,productOption,createTime,InspectTimes,replace(remark1,' ','') as remark1,remark2,remark3 FROM[dbo].[tb_InspectResult] "; + sql += " where barcode is not null and createTime BETWEEN '" + StartTime + "' and '" + EndTime + "' "; + sql += " and remark1 is not null and remark2 is not null"; + if (!string.IsNullOrEmpty(side)) + { + if ("A侧".Equals(side)) + { + sql += " and (side = '" + side + "' or side ='' or side is null) "; + } + if ("B侧".Equals(side)) + { + sql += " and side = '" + side + "' "; + } + + } + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByResult_1(string StartTime, string EndTime, string side,string Project,string color) + { + try + { + + string sql = @"SELECT dbo.tb_InspectResult.ID, dbo.tb_InspectResult.barcode, dbo.tb_InspectResult.side, dbo.tb_InspectResult.position, + dbo.tb_InspectResult.stationNo, dbo.tb_InspectResult.workClass, dbo.tb_InspectResult.inspectResult, + dbo.tb_InspectResult.damnPosition, dbo.tb_InspectResult.defectID, dbo.tb_InspectResult.reason, + dbo.tb_InspectResult.productInfo, dbo.tb_InspectResult.productOption, dbo.tb_InspectResult.createTime, + dbo.tb_InspectResult.InspectTimes, REPLACE(dbo.tb_InspectResult.remark1, ' ', '') AS remark1, + dbo.tb_InspectResult.remark2, dbo.tb_InspectResult.remark3, dbo.tb_Project.Project + FROM dbo.tb_Project RIGHT OUTER JOIN + dbo.tb_Product ON dbo.tb_Project.ID = dbo.tb_Product.ProjectID RIGHT OUTER JOIN + dbo.tb_InspectResult ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_InspectResult.barcode, 1, 10) "; + sql += " where barcode is not null and createTime BETWEEN '" + StartTime + "' and '" + EndTime + "' "; + sql += " and remark1 is not null and remark2 is not null"; + if (!string.IsNullOrEmpty(side)) + { + if ("A侧".Equals(side)) + { + sql += " and (side = '" + side + "' or side ='' or side is null) "; + } + if ("B侧".Equals(side)) + { + sql += " and side = '" + side + "' "; + } + } + + if (!string.IsNullOrEmpty(Project)) + { + sql += " and Project='" + Project + "'"; + } + + if (!string.IsNullOrEmpty(color)) + { + sql += " and remark1='" + color + "'"; + } + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByRepair_1(string StartTime, string EndTime, string inspectResult,string Project,string color) + { + try + { + + string sql = @"SELECT dbo.tb_InspectResult.ID,dbo.tb_InspectResult.barcode,dbo.tb_InspectResult.side,dbo.tb_InspectResult.position,dbo.tb_InspectResult.stationNo,dbo.tb_InspectResult.workClass, + dbo.tb_InspectResult.inspectResult,dbo.tb_InspectResult.damnPosition,dbo.tb_InspectResult.defectID,dbo.tb_InspectResult.reason,dbo.tb_InspectResult.productInfo,dbo.tb_InspectResult.productOption, + dbo.tb_InspectResult.createTime,dbo.tb_InspectResult.InspectTimes,dbo.tb_InspectResult.remark1,dbo.tb_InspectResult.remark2,dbo.tb_InspectResult.remark3 + FROM dbo.tb_Project RIGHT OUTER JOIN + dbo.tb_Product ON dbo.tb_Project.ID = dbo.tb_Product.ProjectID RIGHT OUTER JOIN + dbo.tb_InspectResult ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_InspectResult.barcode, 1, 10) "; + sql += " where barcode IS NOT NULL AND createTime BETWEEN '" + StartTime + "' AND '" + EndTime + ".999' AND position='下线二检 点修补'"; + + if (!string.IsNullOrEmpty(inspectResult)) + { + sql += " and inspectResult like '%" + inspectResult + "%' "; + } + + if (!string.IsNullOrEmpty(Project)) + { + sql += " and Project like '%" + Project + "%' "; + } + + if (!string.IsNullOrEmpty(color)) + { + sql += " and remark1 like '%" + color + "%' "; + } + sql += " order by createTime"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/DataTableExtend.cs b/BBMPTMes/MESClassLibrary/DAL/DataTableExtend.cs new file mode 100644 index 0000000..e67ea49 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/DataTableExtend.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data; + +namespace MESClassLibrary.DAL +{ + public static class DataTableExtend + { + /// + /// 返回执行Select distinct后的DataTable + /// + /// 源数据表 + /// 字段集 + /// + public static DataTable SelectDistinct(DataTable SourceTable, params string[] FieldNames) + { + object[] lastValues; + DataTable newTable; + DataRow[] orderedRows; + + if (FieldNames == null || FieldNames.Length == 0) + throw new ArgumentNullException("FieldNames"); + + lastValues = new object[FieldNames.Length]; + newTable = new DataTable(); + + foreach (string fieldName in FieldNames) + newTable.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType); + + orderedRows = SourceTable.Select("", string.Join(",", FieldNames)); + + foreach (DataRow row in orderedRows) + { + if (!fieldValuesAreEqual(lastValues, row, FieldNames)) + { + newTable.Rows.Add(createRowClone(row, newTable.NewRow(), FieldNames)); + + setLastValues(lastValues, row, FieldNames); + } + } + + return newTable; + } + + private static bool fieldValuesAreEqual(object[] lastValues, DataRow currentRow, string[] fieldNames) + { + bool areEqual = true; + + for (int i = 0; i < fieldNames.Length; i++) + { + //if (lastValues[i] == null || !lastValues[i].Equals(currentRow[fieldNames[i]])) + //品牌字母有的大写,有的小写 + //if(lastValues[i] == null || lastValues[i].ToString().ToUpper()!= currentRow[fieldNames[i]].ToString().ToUpper()) + if(lastValues[i] == null || lastValues[i].ToString()!= currentRow[fieldNames[i]].ToString()) + { + areEqual = false; + break; + } + } + + return areEqual; + } + + private static DataRow createRowClone(DataRow sourceRow, DataRow newRow, string[] fieldNames) + { + foreach (string field in fieldNames) + newRow[field] = sourceRow[field].ToString();//品牌字母有的大写,有的小写 + + return newRow; + } + + private static void setLastValues(object[] lastValues, DataRow sourceRow, string[] fieldNames) + { + for (int i = 0; i < fieldNames.Length; i++) + lastValues[i] = sourceRow[fieldNames[i]]; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/GetNewTasksDAL.cs b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/GetNewTasksDAL.cs new file mode 100644 index 0000000..8b0e8ae --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/GetNewTasksDAL.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.ExchangeCenter +{ + public class GetNewTasksDAL + { + public static string TableName = "tb_GetNewTasks"; + + public bool AddInfo(GetNewTasksModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " ([TaskState] ,[TaskID] ,[TableName],[TableName2],[TableName3],[Creator],[DataCount],[Subscriber] ,[FailedCount],[FailedInfo],[Domain],[Site],[GUID] ,[UID],[CreateUser],[CreateTime],[Remark],[UpdateUser] ,[UpdateTime],[IsChecked]"; + sql += ") VALUES ("; + sql += "@TaskState,"; + sql += "@TaskID,"; + sql += "@TableName,"; + sql += "@TableName2,"; + sql += "@TableName3,"; + sql += "@Creator,"; + sql += "@DataCount,"; + sql += "@Subscriber,"; + sql += "@FailedCount,"; + sql += "@FailedInfo,"; + sql += "@Domain,"; + sql += "@Site,"; + sql += "@GUID,"; + sql += "@UID,"; + sql += "@CreateUser,"; + sql += "@CreateTime,"; + sql += "@Remark,"; + sql += "@UpdateUser,"; + sql += "@UpdateTime,"; + sql += "@IsChecked)"; + + #region 添加参数 + param = new SqlParameter[20]; + param[0] = new SqlParameter("@TaskState", SqlDbType.VarChar); + param[0].Value = md.TaskState; + + param[1] = new SqlParameter("@TaskID", SqlDbType.VarChar); + param[1].Value = md.TaskID; + + param[2] = new SqlParameter("@TableName", SqlDbType.VarChar); + param[2].Value = md.TableName; + + param[3] = new SqlParameter("@TableName2", SqlDbType.VarChar); + param[3].Value = md.TableName2; + + param[4] = new SqlParameter("@TableName3", SqlDbType.VarChar); + param[4].Value = md.TableName3; + + param[5] = new SqlParameter("@Creator", SqlDbType.VarChar); + param[5].Value = md.Creator; + + param[6] = new SqlParameter("@DataCount", SqlDbType.VarChar); + param[6].Value = md.DataCount; + + param[7] = new SqlParameter("@Subscriber", SqlDbType.VarChar); + param[7].Value = md.Subscriber; + + param[8] = new SqlParameter("@FailedCount", SqlDbType.VarChar); + param[8].Value = md.FailedCount; + + param[9] = new SqlParameter("@FailedInfo", SqlDbType.VarChar); + param[9].Value = md.FailedInfo; + + param[10] = new SqlParameter("@Domain", SqlDbType.VarChar); + param[10].Value = md.Domain; + + param[11] = new SqlParameter("@Site", SqlDbType.VarChar); + param[11].Value = md.Site; + + param[12] = new SqlParameter("@GUID", SqlDbType.VarChar); + param[12].Value = md.GUID; + + param[13] = new SqlParameter("@UID", SqlDbType.VarChar); + param[13].Value = md.UID; + + param[14] = new SqlParameter("@CreateUser", SqlDbType.VarChar); + param[14].Value = md.CreateUser; + + param[15] = new SqlParameter("@CreateTime", SqlDbType.VarChar); + param[15].Value = md.CreateTime; + + param[16] = new SqlParameter("@Remark", SqlDbType.VarChar); + param[16].Value = md.Remark; + + param[17] = new SqlParameter("@UpdateUser", SqlDbType.VarChar); + param[17].Value = md.UpdateUser; + + param[18] = new SqlParameter("@UpdateTime", SqlDbType.VarChar); + param[18].Value = md.UpdateTime; + + param[19] = new SqlParameter("@IsChecked", SqlDbType.VarChar); + param[19].Value = md.IsChecked; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/PartMstrDAL.cs b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/PartMstrDAL.cs new file mode 100644 index 0000000..81ae206 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/PartMstrDAL.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.ExchangeCenter +{ + public class PartMstrDAL + { + public static string TableName = "TES_PART_MSTR"; + public bool AddInfo(PartMstrModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (GUID,PartCode,Desc1,Desc2,Um,ProdLine,AddDate,PartType,Status,Qgrade,InventoryCode,UID,Remark,TaskID,CommandType,Domain,Site"; + sql += ") VALUES ("; + sql += "@GUID,"; + sql += "@PartCode,"; + sql += "@Desc1,"; + sql += "@Desc2,"; + sql += "@Um,"; + sql += "@ProdLine,"; + sql += "@AddDate,"; + sql += "@PartType,"; + sql += "@Status,"; + sql += "@Qgrade,"; + sql += "@InventoryCode,"; + sql += "@UID,"; + sql += "@Remark,"; + sql += "@TaskID,"; + sql += "@CommandType,"; + sql += "@Domain,"; + sql += "@Site)"; + + #region 添加参数 + param = new SqlParameter[17]; + param[0] = new SqlParameter("@GUID", SqlDbType.VarChar); + param[0].Value = md.GUID; + + param[1] = new SqlParameter("@PartCode", SqlDbType.VarChar); + param[1].Value = md.PartCode; + + param[2] = new SqlParameter("@Desc1", SqlDbType.VarChar); + param[2].Value = md.Desc1; + + param[3] = new SqlParameter("@Desc2", SqlDbType.VarChar); + param[3].Value = md.Desc2; + + param[4] = new SqlParameter("@Um", SqlDbType.VarChar); + param[4].Value = md.Um; + + param[5] = new SqlParameter("@ProdLine", SqlDbType.VarChar); + param[5].Value = md.ProdLine; + + param[6] = new SqlParameter("@AddDate", SqlDbType.VarChar); + param[6].Value = md.AddDate; + + param[7] = new SqlParameter("@PartType", SqlDbType.VarChar); + param[7].Value = md.PartType; + + param[8] = new SqlParameter("@Status", SqlDbType.VarChar); + param[8].Value = md.Status; + + param[9] = new SqlParameter("@Qgrade", SqlDbType.VarChar); + param[9].Value = md.Qgrade; + + param[10] = new SqlParameter("@InventoryCode", SqlDbType.VarChar); + param[10].Value = md.InventoryCode; + + param[11] = new SqlParameter("@UID", SqlDbType.VarChar); + param[11].Value = md.UID; + + param[12] = new SqlParameter("@Remark", SqlDbType.VarChar); + param[12].Value = md.Remark; + + param[13] = new SqlParameter("@TaskID", SqlDbType.VarChar); + param[13].Value = md.TaskID; + + param[14] = new SqlParameter("@CommandType", SqlDbType.VarChar); + param[14].Value = md.CommandType; + + param[15] = new SqlParameter("@Domain", SqlDbType.VarChar); + param[15].Value = md.Domain; + + param[16] = new SqlParameter("@Site", SqlDbType.VarChar); + param[16].Value = md.Site; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/PartRecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/PartRecordDAL.cs new file mode 100644 index 0000000..299ea2e --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/PartRecordDAL.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.ExchangeCenter +{ + public class PartRecordDAL + { + public bool AddInfo(PartRecordModel md) + { + try + { + string sql =@"insert into tb_PartRecord (ID,PartNo,TaskID,CommandType) values(@ID,@PartNo,@TaskID,@CommandType)"; + + SqlParameter[] param=new SqlParameter[4]; + + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = md.PartNo; + + param[3] = new SqlParameter("@TaskID", SqlDbType.VarChar); + param[3].Value = md.TaskID; + + param[4] = new SqlParameter("@CommandType", SqlDbType.VarChar); + param[4].Value = md.CommandType; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/TESBomDAL.cs b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/TESBomDAL.cs new file mode 100644 index 0000000..04a3075 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/TESBomDAL.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.ExchangeCenter +{ + public class TESBomDAL + { + public static string TableName = "TES_BOM"; + + public bool AddInfo(TESBomModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ParentPart,ComponentPart,Reference,StartEffective,QuantityPer,StructureType,EndEffective,Remarks,Scrap,LeadTimeOffset,Operation,SequenceNumber,FporecastPercent,OptionGroup,Process,GUID,UID,CreateUser,CreateTime,Remark,TaskID,CommandType,DataID,Domain,Site"; + sql += ") VALUES ("; + sql += "@ParentPart,"; + sql += "@ComponentPart,"; + sql += "@Reference,"; + sql += "@StartEffective,"; + sql += "@QuantityPer,"; + sql += "@StructureType,"; + sql += "@EndEffective,"; + sql += "@Remarks,"; + sql += "@Scrap,"; + sql += "@LeadTimeOffset,"; + sql += "@Operation,"; + sql += "@SequenceNumber,"; + sql += "@FporecastPercent,"; + sql += "@OptionGroup,"; + sql += "@Process,"; + sql += "@GUID,"; + sql += "@UID,"; + sql += "@CreateUser,"; + sql += "@CreateTime,"; + sql += "@Remark,"; + sql += "@TaskID,"; + sql += "@CommandType,"; + sql += "@DataID,"; + sql += "@Domain,"; + sql += "@Site)"; + + #region 添加参数 + param = new SqlParameter[25]; + param[0] = new SqlParameter("@ParentPart", SqlDbType.VarChar); + param[0].Value = md.ParentPart; + + param[1] = new SqlParameter("@ComponentPart", SqlDbType.VarChar); + param[1].Value = md.ComponentPart; + + param[2] = new SqlParameter("@Reference", SqlDbType.VarChar); + param[2].Value = md.Reference; + + param[3] = new SqlParameter("@StartEffective", SqlDbType.VarChar); + param[3].Value = md.StartEffective; + + param[4] = new SqlParameter("@QuantityPer", SqlDbType.VarChar); + param[4].Value = md.QuantityPer; + + param[5] = new SqlParameter("@StructureType", SqlDbType.VarChar); + param[5].Value = md.StructureType; + + param[6] = new SqlParameter("@EndEffective", SqlDbType.VarChar); + param[6].Value = md.EndEffective; + + param[7] = new SqlParameter("@Remarks", SqlDbType.VarChar); + param[7].Value = md.Remarks; + + param[8] = new SqlParameter("@Scrap", SqlDbType.VarChar); + param[8].Value = md.Scrap; + + param[9] = new SqlParameter("@LeadTimeOffset", SqlDbType.VarChar); + param[9].Value = md.LeadTimeOffset; + + param[10] = new SqlParameter("@Operation", SqlDbType.VarChar); + param[10].Value = md.Operation; + + param[11] = new SqlParameter("@SequenceNumber", SqlDbType.VarChar); + param[11].Value = md.SequenceNumber; + + param[12] = new SqlParameter("@FporecastPercent", SqlDbType.VarChar); + param[12].Value = md.FporecastPercent; + + param[13] = new SqlParameter("@OptionGroup", SqlDbType.VarChar); + param[13].Value = md.OptionGroup; + + param[14] = new SqlParameter("@Process", SqlDbType.VarChar); + param[14].Value = md.Process; + + param[15] = new SqlParameter("@GUID", SqlDbType.VarChar); + param[15].Value = md.GUID; + + param[16] = new SqlParameter("@UID", SqlDbType.VarChar); + param[16].Value = md.UID; + + param[17] = new SqlParameter("@CreateUser", SqlDbType.VarChar); + param[17].Value = md.CreateUser; + + param[18] = new SqlParameter("@CreateTime", SqlDbType.VarChar); + param[18].Value = md.CreateTime; + + param[19] = new SqlParameter("@Remark", SqlDbType.VarChar); + param[19].Value = md.Remark; + + param[20] = new SqlParameter("@TaskID", SqlDbType.VarChar); + param[20].Value = md.TaskID; + + param[21] = new SqlParameter("@CommandType", SqlDbType.VarChar); + param[21].Value = md.CommandType; + + param[22] = new SqlParameter("@DataID", SqlDbType.VarChar); + param[22].Value = md.DataID; + + param[23] = new SqlParameter("@Domain", SqlDbType.VarChar); + param[23].Value = md.Domain; + + param[24] = new SqlParameter("@Site", SqlDbType.VarChar); + param[24].Value = md.Site; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable Search() + { + try + { + string sql = "select * from " + TableName + " where ParentPart like '%-P' and ComponentPart like 'ROH%' and Flag=0"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdateFlag(string TaskID) + { + try + { + string sql = "update " + TableName + " set Flag=1 where TaskID=@TaskID"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@TaskID", SqlDbType.VarChar); + param[0].Value = TaskID; + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/TESPartDetDAL.cs b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/TESPartDetDAL.cs new file mode 100644 index 0000000..ec7240a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/ExchangeCenter/TESPartDetDAL.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.ExchangeCenter +{ + public class TESPartDetDAL + { + public static string TableName = "TES_PART_DET"; + + public bool AddInfo(TESPartDetModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " ([GUID],[PartCode],[Site],[KeyPart],SetupTime,UID,CreateUser,CreateTime,Remark,TaskID,CommandType,DataID,Domain"; + sql += ") VALUES ("; + sql += "@GUID,"; + sql += "@PartCode,"; + sql += "@Site,"; + sql += "@KeyPart,"; + sql += "@SetupTime,"; + sql += "@UID,"; + sql += "@CreateUser,"; + sql += "@CreateTime,"; + sql += "@Remark,"; + sql += "@TaskID,"; + sql += "@CommandType,"; + sql += "@DataID,"; + sql += "@Domain)"; + + #region 添加参数 + + param = new SqlParameter[13]; + param[0] = new SqlParameter("@GUID", SqlDbType.VarChar); + param[0].Value = md.GUID; + + param[1] = new SqlParameter("@PartCode", SqlDbType.VarChar); + param[1].Value = md.PartCode; + + param[2] = new SqlParameter("@Site", SqlDbType.VarChar); + param[2].Value = md.Site; + + param[3] = new SqlParameter("@KeyPart", SqlDbType.VarChar); + param[3].Value = md.KeyPart; + + param[4] = new SqlParameter("@SetupTime", SqlDbType.VarChar); + param[4].Value = md.SetupTime; + + param[5] = new SqlParameter("@UID", SqlDbType.VarChar); + param[5].Value = md.UID; + + param[6] = new SqlParameter("@CreateUser", SqlDbType.VarChar); + param[6].Value = md.CreateUser; + + param[7] = new SqlParameter("@CreateTime", SqlDbType.VarChar); + param[7].Value = md.CreateTime; + + param[8] = new SqlParameter("@Remark", SqlDbType.VarChar); + param[8].Value = md.Remark; + + param[9] = new SqlParameter("@TaskID", SqlDbType.VarChar); + param[9].Value = md.TaskID; + + param[10] = new SqlParameter("@CommandType", SqlDbType.VarChar); + param[10].Value = md.CommandType; + + param[11] = new SqlParameter("@DataID", SqlDbType.VarChar); + param[11].Value = md.DataID; + + param[12] = new SqlParameter("@Domain", SqlDbType.VarChar); + param[12].Value = md.Domain; + + #endregion + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Hybrid/HybridPlanDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Hybrid/HybridPlanDAL.cs new file mode 100644 index 0000000..f006bd1 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Hybrid/HybridPlanDAL.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Hybrid +{ + public class HybridPlanDAL + { + /// + /// 查询所有设备未完成的计划 + /// + /// + public DataTable SearchAllPlan() + { + try + { + string sql = @"SELECT * from tb_HybridPlan where IsFinish=0 order by CreateTime"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(HybridPlanModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = " insert into tb_HybridPlan(ID,ProductName,Color,PlanCount"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@ProductName,"; + sql += "@Color,"; + sql += "@PlanCount)"; + + param = new SqlParameter[4]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@ProductName", SqlDbType.VarChar); + param[1].Value = md.ProductName; + + param[2] = new SqlParameter("@Color", SqlDbType.VarChar); + param[2].Value = md.Color; + + param[3] = new SqlParameter("@PlanCount", SqlDbType.Int); + param[3].Value = md.PlanCount; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(HybridPlanModel md) + { + try + { + string sql = @"update tb_HybridPlan set PlanCount=@PlanCount where ID=@ID"; + SqlParameter[] param = null; + + param = new SqlParameter[2]; + + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PlanCount", SqlDbType.Int); + param[1].Value = md.PlanCount; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateQty(HybridPlanModel md) + { + try + { + string sql = @"update tb_HybridPlan set Qty=Qty+1 where ID=@ID"; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo(HybridPlanModel md) + { + try + { + string sql = @"delete from tb_HybridPlan where ID=@ID"; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Hybrid/HybridScanRecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Hybrid/HybridScanRecordDAL.cs new file mode 100644 index 0000000..d089a1e --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Hybrid/HybridScanRecordDAL.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Hybrid +{ + public class HybridScanRecordDAL + { + public DataTable searchInfo(string barCode) + { + try + { + string sql = @"SELECT * from tb_HybridScanRecord where BarCode ='"+ barCode +"'"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(HybridScanRecordModel md) + { + try + { + string sql = @"insert into tb_HybridScanRecord(ID,BarCode) values(@ID,@BarCode)"; + + SqlParameter[] param=new SqlParameter[2]; + + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[1].Value = md.BarCode; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Injection/DownReasonDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Injection/DownReasonDAL.cs new file mode 100644 index 0000000..e4a90f2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Injection/DownReasonDAL.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.Injection +{ + public class DownReasonDAL + { + public DataTable SearchReason() + { + try + { + string sql = @"select * from tb_Inhection_DownReason"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Injection/InjectionDownRecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Injection/InjectionDownRecordDAL.cs new file mode 100644 index 0000000..476aa95 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Injection/InjectionDownRecordDAL.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Injection +{ + public class InjectionDownRecordDAL + { + public static string TableName = "tb_Injection_DownRecord"; + public bool AddInfo(InjectionDownRecordModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = " IF NOT EXISTS (SELECT * FROM tb_Injection_DownRecord WHERE StationID=@StationID AND EndTime IS NULL ) INSERT INTO " + TableName + " ([ID] ,[StationID] ,[DownType],[DownReason],[Des],[StartTime]"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@StationID,"; + sql += "@DownType,"; + sql += "@DownReason,"; + sql += "@Des,"; + sql += "@StartTime)"; + + #region 添加参数 + param = new SqlParameter[6]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[1].Value = md.StationID; + + param[2] = new SqlParameter("@DownType", SqlDbType.VarChar); + param[2].Value = md.DownType; + + param[3] = new SqlParameter("@DownReason", SqlDbType.VarChar); + param[3].Value = md.DownReason; + + param[4] = new SqlParameter("@Des", SqlDbType.VarChar); + param[4].Value = md.Des; + + param[5] = new SqlParameter("@StartTime", SqlDbType.DateTime); + param[5].Value = md.StartTime; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(InjectionDownRecordModel md) + { + try + { + #region 添加数据 + //string sql = @"update " + TableName + " set EndTime=@EndTime WHERE [StationID]=@StationID AND EndTime IS NULL "; + string sql = @"update " + TableName + " set DownType=@DownType,DownReason=@DownReason,Des=@Des WHERE ID=(select top 1 ID from tb_Injection_DownRecord where [StationID]=@StationID AND EndTime IS NULL order by StartTime DESC)"; + SqlParameter[] param = null; + + #region 添加参数 + param = new SqlParameter[4]; + param[0] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[0].Value = md.StationID; + + param[1] = new SqlParameter("@DownType", SqlDbType.VarChar); + param[1].Value = md.DownType; + + param[2] = new SqlParameter("@DownReason", SqlDbType.VarChar); + param[2].Value = md.DownReason; + + param[3] = new SqlParameter("@Des", SqlDbType.VarChar); + param[3].Value = md.Des; + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + + public DataTable SearchByTime(string StartTime, string EndTime) + { + try + { + string sql = @" SELECT * FROM dbo.tb_Injection_DownRecord "; + sql += " where StationID is not null and StartTime>='" + StartTime + "' and EndTime<='" + EndTime + "'"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + public DataTable SearchChangeRecord(string StartTime, string EndTime, string ModelId) + { + try + { + string sql = @" SELECT s.StationNo,m.PrintDate,d.StartTime,d.DownTime,d.EndTime,m.ModelSumCount,m.ModelPrintCount,d.remark1 FROM (SELECT * FROM [dbo].[tb_ModelCount] WHERE "; + sql += "ModelID = '" + ModelId + "' and PrintDate>= '"+ StartTime + "' and PrintDate<= '"+ EndTime + "') as m "; + sql += "left join (SELECT* FROM [dbo].[tb_Injection_DownRecord] where StationID is not null and StartTime>='" + StartTime + "' and EndTime<='" + EndTime + "') as d on m.StationID = d.StationID left join tb_Station s on d.StationID = s.StationID"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + //故障停机查询 + public DataTable SearchRepaorByTime(string StartTime, string EndTime) + { + try + { + string sql = @" SELECT d.StationID,s.StationNo,d.StartTime,d.EndTime,d.DownTime,d.Des,d.Remark1,d.Remark2,d.Remark3 FROM dbo.tb_Injection_DownRecord d "; + sql += " left join tb_Station s on d.StationID = s.StationID "; + sql += " where d.StationID is not null and d.StartTime>='" + StartTime + "' and d.EndTime<='" + EndTime + "' and d.DownType='F1F851FB-8913-40B7-A992-F28A3FD25054' order by d.StartTime"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Injection/InjectionRecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Injection/InjectionRecordDAL.cs new file mode 100644 index 0000000..7d211f4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Injection/InjectionRecordDAL.cs @@ -0,0 +1,126 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace MESClassLibrary.DAL.Injection +{ + public class InjectionRecordDAL + { + public DataTable SearchByTime(string StartTime, string EndTime) + { + try + { + + string sql = "select * FROM [dbo].[tb_Product_Injection] "; + sql += " where ProductDate is not null and ProductDate>='" + StartTime + "' and ProductDate<='" + EndTime + "'"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchProductInjectionRecord(string StartTime, string EndTime) { + + string sql = "SELECT t.PlanID,t.ProductDate,t.ClassName,s.StationNo,p.ProductName,r.MaterialName,r.BatchNo,pl.OpenDebugTime,pl.CycleTime,i.RealCycle,i.PlanCount,t.ProductCount,t.BadCount,pl.Weight,ir.Waste_Weight,ir.JK_Weight,i.BeginTime,i.EndTime "; + sql += " FROM[dbo].[tb_Product_Injection] t "; + sql += " left join tb_Product p on t.PartNo = p.PartNo "; + sql += " left join tb_Station s on t.StationID = s.StationID "; + sql += " left join tb_InjectPlanReport r on t.PlanID = r.InjectionPlanID "; + sql += " left join tb_Plastic pl on t.StockNo = pl.StockNo and t.StationID = pl.StationID "; + sql += " left join tb_InjectionPlan i on t.PlanID = i.InjectionPlanID "; + sql += " left join tb_Injection_Record ir on t.PlanID = ir.PlanID "; + sql += " where t.ProductDate >='" + StartTime + "' and t.ProductDate <='" + EndTime + "' order by t.ProductDate,t.ClassName,t.StationID"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + + public DataTable SearchProductInjectionRecordBadReason(string StartTime, string EndTime) + { + + string sql = "SELECT bc.PlanID,bi.BadReason from tb_Bad_Injection bi "; + sql += " left join tb_BarCode bc on bi.OneBarCode = bc.OneBarCode "; + sql += " where bc.PlanID in (SELECT PlanID FROM tb_Product_Injection t where t.ProductDate >='"+ StartTime + "' and t.ProductDate <='"+ EndTime + "')"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + + + public DataTable SearchProductInjectionRecordDownReason(string StartTime, string EndTime) + { + + string sql = "SELECT PlanID,DownTime,DownTypeName,Reason from tb_Injection_DownRecord r "; + sql += " left join tb_Injection_DownType t on r.DownType = t.ID "; + sql += " left join tb_Inhection_DownReason s on r.DownReason = s.ID "; + sql += " where r.PlanID in (SELECT PlanID FROM tb_Product_Injection t where t.ProductDate >='" + StartTime + "' and t.ProductDate <='" + EndTime + "') and DownTime is not null"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + + + public DataTable SearchProductInjection(string StartTime, string EndTime,string StationID) + { + + string sql = "SELECT t.ID,t.ProductDate,t.ClassName,s.StationNo,t.StockNo,t.PartNo,t.ProductCount,ir.RealCycle,ir.Waste_Weight,ir.JK_Weight "; + sql += " FROM[dbo].[tb_Product_Injection] t "; + sql += " left join tb_Station s on t.StationID = s.StationID "; + sql += " left join tb_Injection_Record ir on t.ID = ir.PI_ID "; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + + + public DataTable SearchRecordByPage(int pageIndex, int pageSize, string StartTime, string EndTime, string StationID) + { + try + { + string sql = @"SELECT t.ID,t.ProductDate,t.ClassName,t.StationID,s.StationNo,t.StockNo,t.PartNo,t.ProductCount,ir.RealCycle,ir.Waste_Weight,ir.JK_Weight "; + sql += " FROM[dbo].[tb_Product_Injection] t "; + sql += " left join tb_Station s on t.StationID = s.StationID "; + sql += " left join tb_Product_Injection_w ir on t.ID = ir.ID "; + sql += " where t.ProductDate >='" + StartTime + "' and t.ProductDate <='" + EndTime + "' "; + + if (!string.IsNullOrEmpty(StationID)) + { + sql += " and t.StationID = '" + StationID + "' "; + } + sql += " order by t.ProductDate,t.ClassName,t.StationID "; + sql += " offset " + ((pageIndex - 1) * pageSize) + " rows "; + sql += " fetch next " + pageSize + " rows only "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + + public DataTable SearchInfoByPlanID(string planID) + { + try + { + string sql = @"select ID FROM [dbo].[tb_Product_Injection] where PlanID='" + planID + @"'"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return null; + } + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake243/Assembly243DAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake243/Assembly243DAL.cs new file mode 100644 index 0000000..87420b4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake243/Assembly243DAL.cs @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Mistake243 +{ + public class Assembly243DAL + { + public static string TableName = "tb_Assembly_243"; + + public DataTable searchPartNo(string partNo) + { + try + { + string sql = @"SELECT top 1 PartNo from tb_Assembly_243 where PartNo like '" + partNo + + "%' and Flag=0 order by CreateTime desc"; + //SqlParameter[] param = new SqlParameter[1]; + + //param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + //param[0].Value = partNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(Assembly243Model md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,PartNo,PartName,BatchNo,Color,ColorNo,PartType,TapeBatchNo,Validity,ValidityDate,Des,Flag"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@PartNo,"; + sql += "@PartName,"; + sql += "@BatchNo,"; + sql += "@Color,"; + sql += "@ColorNo,"; + sql += "@PartType,"; + sql += "@TapeBatchNo,"; + sql += "@Validity,"; + sql += "@ValidityDate,"; + sql += "@Des,"; + sql += "@Flag)"; + + #region 添加参数 + param = new SqlParameter[12]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = md.PartNo; + + param[2] = new SqlParameter("@PartName", SqlDbType.VarChar); + param[2].Value = md.PartName; + + param[3] = new SqlParameter("@BatchNo", SqlDbType.VarChar); + param[3].Value = md.BatchNo; + + param[4] = new SqlParameter("@Color", SqlDbType.VarChar); + param[4].Value = md.Color; + + param[5] = new SqlParameter("@ColorNo", SqlDbType.VarChar); + param[5].Value = md.ColorNo; + + param[6] = new SqlParameter("@PartType", SqlDbType.VarChar); + param[6].Value = md.PartType; + + param[7] = new SqlParameter("@TapeBatchNo", SqlDbType.VarChar); + param[7].Value = md.TapeBatchNo; + + param[8] = new SqlParameter("@Validity", SqlDbType.VarChar); + param[8].Value = md.Validity; + + param[9] = new SqlParameter("@ValidityDate", SqlDbType.VarChar); + param[9].Value = md.ValidityDate; + + param[10] = new SqlParameter("@Des", SqlDbType.VarChar); + param[10].Value = md.Des; + + param[11] = new SqlParameter("@Flag", SqlDbType.Int); + param[11].Value = md.Flag; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(Assembly243Model md) + { + string sql = ""; + SqlParameter[] param = null; + + try + { + sql = "update " + TableName + " set PrintTime=(select getdate()) where substring (PartNo,1,11)= @PartNo and (PrintTime is null or PrintTime='')"; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = md.PartNo.Substring(0, 11); + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake243/Box243DAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake243/Box243DAL.cs new file mode 100644 index 0000000..f29b96a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake243/Box243DAL.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Mistake243 +{ + public class Box243DAL + { + public static string TableName = "tb_Box_243"; + + public bool AddInfo(BoxModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,BoxNo,PartNo,PartName,BatchNo,BoxCount,Des,Flag,Validity,ValidityDate"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@BoxNo,"; + sql += "@PartNo,"; + sql += "@PartName,"; + sql += "@BatchNo,"; + sql += "@BoxCount,"; + sql += "@Des,"; + sql += "@Flag,"; + sql += "@Validity,"; + sql += "@ValidityDate)"; + + #region 添加参数 + param = new SqlParameter[10]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[1].Value = md.BoxNo; + + param[2] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[2].Value = md.PartNo; + + param[3] = new SqlParameter("@PartName", SqlDbType.VarChar); + param[3].Value = md.PartName; + + param[4] = new SqlParameter("@BatchNo", SqlDbType.VarChar); + param[4].Value = md.BatchNo; + + param[5] = new SqlParameter("@BoxCount", SqlDbType.Int); + param[5].Value = md.BoxCount; + + param[6] = new SqlParameter("@Des", SqlDbType.VarChar); + param[6].Value = md.Des; + + param[7] = new SqlParameter("@Flag", SqlDbType.Int); + param[7].Value = md.Flag; + + param[8] = new SqlParameter("@Validity", SqlDbType.VarChar); + param[8].Value = md.Validity; + + param[9] = new SqlParameter("@ValidityDate", SqlDbType.VarChar); + param[9].Value = md.ValidityDate; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(BoxModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = "update " + TableName + " set PrintTime=(select getdate()) where PartNo=@PartNo and PrintTime is null"; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = md.PartNo; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchBox(string partno) + { + try + { + string sql = @"SELECT top 1 * from " + TableName + " where PartNo=@PartNo and Flag=0 order by CreateTime"; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = partno; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBoxIsExsit(string box) + { + try + { + string sql = @"SELECT * from " + TableName + " where BoxNo=@BoxNo"; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[0].Value = box; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake243/Mistake243DAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake243/Mistake243DAL.cs new file mode 100644 index 0000000..2e68201 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake243/Mistake243DAL.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.Mistake243 +{ + public class Mistake243DAL + { + public DataTable IsMath(string DeviceNo, string PartNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_243 where DeviceNo=@DeviceNo and PartNo1=@PartNo"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[0].Value = DeviceNo; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = PartNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByNo(string PartNo, string deviceNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_243 where PartNo1=@PartNo and DeviceNo=@deviceNo"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + param[1] = new SqlParameter("@deviceNo", SqlDbType.VarChar); + param[1].Value = deviceNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPartName(string PartNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_243 where [PartNo2]=@PartNo "; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake243/Plan243DAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake243/Plan243DAL.cs new file mode 100644 index 0000000..5e177bb --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake243/Plan243DAL.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.Mistake243 +{ + public class Plan243DAL + { + public static string TableName = "tb_Plan_247"; + + public DataTable SearhByOrderNo(string OrderNo) + { + try + { + string sql = @"SELECT dbo.tb_Plan_243.OrderNo, dbo.tb_Plan_243.PartNo, dbo.tb_Mistake_243.PartName2, + dbo.tb_Plan_243.OrderCount,dbo.tb_Plan_243.IsFinish,dbo.tb_Plan_243.CompleteCount + FROM dbo.tb_Plan_243 LEFT OUTER JOIN + dbo.tb_Mistake_243 ON dbo.tb_Plan_243.PartNo = dbo.tb_Mistake_243.PartNo2 + where dbo.tb_Plan_243.OrderNo=@OrderNo + ORDER BY dbo.tb_Plan_243.CreateTime"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = OrderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 根据半成品零件号查找扫描的订单中是否有此产品的生产计划 + /// + /// + /// + public DataTable IsHavePlan(string partNo1, string orderNo) + { + try + { + string sql = @"SELECT top 1 dbo.tb_Plan_243.OrderNo, dbo.tb_Plan_243.Item, dbo.tb_Plan_243.PartNo, + dbo.tb_Plan_243.OrderCount, dbo.tb_Plan_243.CompleteCount, dbo.tb_Mistake_243.PartNo1 + FROM dbo.tb_Plan_243 LEFT OUTER JOIN + dbo.tb_Mistake_243 ON dbo.tb_Plan_243.PartNo = dbo.tb_Mistake_243.PartNo2 + where PartNo1=@PartNo1 and OrderNo =@orderNo and IsFinish =0 + ORDER BY dbo.tb_Plan_243.CreateTime"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo1", SqlDbType.VarChar); + param[0].Value = partNo1; + + param[1] = new SqlParameter("@orderNo", SqlDbType.VarChar); + param[1].Value = orderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 更新订单完成数 + /// + /// + /// + /// + public bool UpdateCount(string partNo, string orderNo) + { + try + { + string sql = "update tb_Plan_243 set [CompleteCount]=[CompleteCount]+1 where OrderNo=@OrderNo and PartNo =@PartNo"; + SqlParameter[] param = null; + + #region 添加参数 + param = new SqlParameter[2]; + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = orderNo; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = partNo; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake243/RecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake243/RecordDAL.cs new file mode 100644 index 0000000..5640682 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake243/RecordDAL.cs @@ -0,0 +1,281 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Mistake243 +{ + public class RecordDAL + { + public static string TableName = "tb_Record_243"; + + /// + /// 查找半成品是否已经装配 + /// + /// + /// + public DataTable SearchByPartNo1(string PartNo) + { + try + { + string sql = @"SELECT * from " + TableName + " where PartNo1=@PartNo"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,PartNo1,PartNo2,OrderNo,Type"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@PartNo1,"; + sql += "@PartNo2,"; + sql += "@OrderNo,"; + sql += "@Type)"; + + #region 添加参数 + param = new SqlParameter[5]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PartNo1", SqlDbType.VarChar); + param[1].Value = md.PartNo1; + + param[2] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[2].Value = md.PartNo2; + + param[3] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[3].Value = md.OrderNo; + + param[4] = new SqlParameter("@Type", SqlDbType.Int); + param[4].Value = md.Type; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable GetCount(string part, string batch) + { + try + { + string sql = @"SELECT count(*) as sum from " + TableName + " where SUBSTRING(PartNo2,1,11)=@PartNo2 and SUBSTRING(PartNo2,13,6)=@batch "; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[0].Value = part; + + param[1] = new SqlParameter("@batch", SqlDbType.VarChar); + param[1].Value = batch; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByPartNo2(string partno) + { + try + { + string sql = @"SELECT * from " + TableName + " where PartNo2=@PartNo"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = partno; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBoxByPart(string part) + { + try + { + string sql = @"SELECT top 1 * from " + TableName + " where SUBSTRING(PartNo2,1,11)=@PartNo2 order by CreateTime2 desc"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[0].Value = part; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchCountByBox(string boxNo) + { + try + { + string sql = @"SELECT count(*) as sum from " + TableName + " where BoxNo=@BoxNo and Flag <>2"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[0].Value = boxNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool updateBoxInfo(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + + sql = @"update " + TableName + " set BoxNo=@BoxNo,CreateTime2=(select getdate()),Flag=@Flag where PartNo2=@PartNo2"; + + #region 添加参数 + + param = new SqlParameter[3]; + param[0] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[0].Value = md.BoxNo; + + param[1] = new SqlParameter("@Flag", SqlDbType.Int); + param[1].Value = md.Flag; + + param[2] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[2].Value = md.PartNo2; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + + sql = @"update " + TableName + " set Flag=@Flag where PartNo2=@PartNo2"; + + #region 添加参数 + + param = new SqlParameter[2]; + + param[0] = new SqlParameter("@Flag", SqlDbType.Int); + param[0].Value = md.Flag; + + param[1] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[1].Value = md.PartNo2; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchState(int type1, int type2, int type3) + { + try + { + string sql = @" + SELECT * from tb_record_243 where Type in (@type1,@type2,@type3) and Flag =0 AND CreateTime1 >= CONVERT(VARCHAR(10),GETDATE(),120) AND CreateTime1 < (CONVERT(VARCHAR(10),GETDATE(),120)+' 23:59:59') order by CreateTime1 + "; + + SqlParameter[] param = new SqlParameter[3]; + + param[0] = new SqlParameter("@type1", SqlDbType.Int); + param[0].Value = type1; + + param[1] = new SqlParameter("@type2", SqlDbType.Int); + param[1].Value = type2; + + param[2] = new SqlParameter("@type3", SqlDbType.Int); + param[2].Value = type3; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetRecord(string boxNo) + { + try + { + string sql = @" + SELECT PartNo2,CreateTime1 FROM tb_record_243 WHERE boxno = '" + boxNo + @"' ORDER BY createtime1 + "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake247/AssemblyDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake247/AssemblyDAL.cs new file mode 100644 index 0000000..e0b0268 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake247/AssemblyDAL.cs @@ -0,0 +1,402 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Mistake247 +{ + public class AssemblyDAL + { + public static string TableName = "tb_Assembly_247"; + public static string TableName1 = "tb_Assembly_243"; + + public bool AddInfo(AssemblyModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,PartNo,PartName,BatchNo,Color,ColorNo,PartType,TapeBatchNo,Validity,ValidityDate,Des,Flag,DeviceNo"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@PartNo,"; + sql += "@PartName,"; + sql += "@BatchNo,"; + sql += "@Color,"; + sql += "@ColorNo,"; + sql += "@PartType,"; + sql += "@TapeBatchNo,"; + sql += "@Validity,"; + sql += "@ValidityDate,"; + sql += "@Des,"; + sql += "@Flag,"; + sql += "@DeviceNo)"; + + #region 添加参数 + param = new SqlParameter[13]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = md.PartNo; + + param[2] = new SqlParameter("@PartName", SqlDbType.VarChar); + param[2].Value = md.PartName; + + param[3] = new SqlParameter("@BatchNo", SqlDbType.VarChar); + param[3].Value = md.BatchNo; + + param[4] = new SqlParameter("@Color", SqlDbType.VarChar); + param[4].Value = md.Color; + + param[5] = new SqlParameter("@ColorNo", SqlDbType.VarChar); + param[5].Value = md.ColorNo; + + param[6] = new SqlParameter("@PartType", SqlDbType.VarChar); + param[6].Value = md.PartType; + + param[7] = new SqlParameter("@TapeBatchNo", SqlDbType.VarChar); + param[7].Value = md.TapeBatchNo; + + param[8] = new SqlParameter("@Validity", SqlDbType.VarChar); + param[8].Value = md.Validity; + + param[9] = new SqlParameter("@ValidityDate", SqlDbType.VarChar); + param[9].Value = md.ValidityDate; + + param[10] = new SqlParameter("@Des", SqlDbType.VarChar); + param[10].Value = md.Des; + + param[11] = new SqlParameter("@Flag", SqlDbType.Int); + param[11].Value = md.Flag; + + param[12] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[12].Value = md.DeviceNo; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(AssemblyModel md) + { + string sql = ""; + SqlParameter[] param = null; + + try + { + sql = "update " + TableName + " set PrintTime=(select getdate()) where substring (PartNo,1,11)= @PartNo and (PrintTime is null or PrintTime='')"; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = md.PartNo.Substring(0,11); + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + public DataTable SearchCount(string PartNo) + { + try + { + string sql = @"SELECT count(*) as sum from tb_Assembly_247 where PartNo=@PartNo and IsPrintBox=0"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdatePrintFlag(AssemblyModel md) + { + string sql = ""; + SqlParameter[] param = null; + + try + { + sql = "update " + TableName + " set IsPrintBox=1 where PartNo=@PartNo and IsPrintBox =0"; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = md.PartNo; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdatePrintFlag1(string partno) + { + string sql = ""; + SqlParameter[] param = null; + + try + { + sql = "update " + TableName + " set IsPrintBox=1 where PartNo=@PartNo and IsPrintBox =0"; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = partno; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable searchPartNo(string partNo) + { + try + { + string sql = @"SELECT top 1 PartNo from tb_Assembly_247 where PartNo like '" + partNo + "%' and Flag=0 order by CreateTime desc"; + //SqlParameter[] param = new SqlParameter[1]; + + //param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + //param[0].Value = partNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + throw ex; + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + + //return null; + } + } + + /// + /// 根据总成条码查询是否进行视觉检测 + /// + /// + /// + public DataTable IsVisual(string barcode) + { + try + { + string sql = @"select ToVisual from " + TableName + " where PartNo='" + barcode + @"'"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPrintByDeviceNo(string DeviceNo1) + { + try + { + string sql = + @"select * from " + TableName + " where ToVisual=1 and DeviceNo ='" + DeviceNo1 + @"' "; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetDeviceNo(string DeviceNo1, string DeviceNo2, string DeviceNo3, string DeviceNo4) + { + try + { + string sql = + @"select top 1 * from " + TableName + " where ToVisual=0 and DeviceNo in ('" + DeviceNo1 + @"','" + DeviceNo2 + @"','" + DeviceNo3 + @"','" + DeviceNo4 + @"') and PrintTime is null order by FinishTime desc"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable IsHavePrint(string DeviceNo1, string DeviceNo2, string DeviceNo3, string DeviceNo4) + { + string sql = + @"select * from " + TableName + " where ToVisual=0 and DeviceNo in ('" + DeviceNo1 + @"','" + DeviceNo2 + @"','" + DeviceNo3 + @"','" + DeviceNo4 + @"') and isNull(PrintTime,'')='' order by CreateTime desc"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + + public bool UpdatePrintByID(string id) + { + try + { + string sql = @"update " + TableName + " set PrintTime=(select getdate()) where ID='" + id + @"'"; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, null); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + + #region 243 + + public DataTable searchPartNo1(string partNo) + { + try + { + string sql = @"SELECT top 1 * from tb_Assembly_243 where PartNo like '%" + partNo + "%' and Flag=0 order by CreateTime desc"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo1(AssemblyModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName1 + " (ID,PartNo,PartName,BatchNo,Color,ColorNo,PartType,TapeBatchNo,Validity,ValidityDate,Des,Flag"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@PartNo,"; + sql += "@PartName,"; + sql += "@BatchNo,"; + sql += "@Color,"; + sql += "@ColorNo,"; + sql += "@PartType,"; + sql += "@TapeBatchNo,"; + sql += "@Validity,"; + sql += "@ValidityDate,"; + sql += "@Des,"; + sql += "@Flag)"; + + #region 添加参数 + param = new SqlParameter[12]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = md.PartNo; + + param[2] = new SqlParameter("@PartName", SqlDbType.VarChar); + param[2].Value = md.PartName; + + param[3] = new SqlParameter("@BatchNo", SqlDbType.VarChar); + param[3].Value = md.BatchNo; + + param[4] = new SqlParameter("@Color", SqlDbType.VarChar); + param[4].Value = md.Color; + + param[5] = new SqlParameter("@ColorNo", SqlDbType.VarChar); + param[5].Value = md.ColorNo; + + param[6] = new SqlParameter("@PartType", SqlDbType.VarChar); + param[6].Value = md.PartType; + + param[7] = new SqlParameter("@TapeBatchNo", SqlDbType.VarChar); + param[7].Value = md.TapeBatchNo; + + param[8] = new SqlParameter("@Validity", SqlDbType.VarChar); + param[8].Value = md.Validity; + + param[9] = new SqlParameter("@ValidityDate", SqlDbType.VarChar); + param[9].Value = md.ValidityDate; + + param[10] = new SqlParameter("@Des", SqlDbType.VarChar); + param[10].Value = md.Des; + + param[11] = new SqlParameter("@Flag", SqlDbType.Int); + param[11].Value = md.Flag; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo1(AssemblyModel md) + { + string sql = ""; + SqlParameter[] param = null; + + try + { + sql = "update " + TableName1 + " set PrintTime=(select getdate()) where substring (PartNo,1,11)= @PartNo and (PrintTime is null or PrintTime='')"; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = md.PartNo.Substring(0, 11); + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + #endregion + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake247/BoxDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake247/BoxDAL.cs new file mode 100644 index 0000000..2b443f2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake247/BoxDAL.cs @@ -0,0 +1,169 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Mistake247 +{ + public class BoxDAL + { + public static string TableName = "tb_Box_247"; + + public bool AddInfo(BoxModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,BoxNo,PartNo,PartName,BatchNo,BoxCount,Des,Flag,Validity,ValidityDate"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@BoxNo,"; + sql += "@PartNo,"; + sql += "@PartName,"; + sql += "@BatchNo,"; + sql += "@BoxCount,"; + sql += "@Des,"; + sql += "@Flag,"; + sql += "@Validity,"; + sql += "@ValidityDate)"; + + #region 添加参数 + param = new SqlParameter[10]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[1].Value = md.BoxNo; + + param[2] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[2].Value = md.PartNo; + + param[3] = new SqlParameter("@PartName", SqlDbType.VarChar); + param[3].Value = md.PartName; + + param[4] = new SqlParameter("@BatchNo", SqlDbType.VarChar); + param[4].Value = md.BatchNo; + + param[5] = new SqlParameter("@BoxCount", SqlDbType.Int); + param[5].Value = md.BoxCount; + + param[6] = new SqlParameter("@Des", SqlDbType.VarChar); + param[6].Value = md.Des; + + param[7] = new SqlParameter("@Flag", SqlDbType.Int); + param[7].Value = md.Flag; + + param[8] = new SqlParameter("@Validity", SqlDbType.VarChar); + param[8].Value = md.Validity; + + param[9] = new SqlParameter("@ValidityDate", SqlDbType.VarChar); + param[9].Value = md.ValidityDate; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchByNo(string PartNo,string BatchNo) + { + try + { + string sql = @"SELECT top 1 * from " + TableName + " where PartNo=@PartNo and SUBSTRING(BoxNo,13,6)=@BatchNo order by CreateTime"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + param[1] = new SqlParameter("@BatchNo", SqlDbType.VarChar); + param[1].Value = BatchNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpdateInfo(BoxModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = "update " + TableName + " set PrintTime=(select getdate()) where PartNo=@PartNo and PrintTime is null"; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = md.PartNo; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchBox(string partno) + { + try + { + string sql = @"SELECT top 1 * from " + TableName + " where PartNo=@PartNo and Flag=0 order by CreateTime"; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = partno; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBoxIsExsit(string box) + { + try + { + string sql = @"SELECT * from " + TableName + " where BoxNo=@BoxNo"; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[0].Value = box; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake247/MistakeDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake247/MistakeDAL.cs new file mode 100644 index 0000000..96c6038 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake247/MistakeDAL.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.Mistake247 +{ + public class MistakeDAL + { + public DataTable IsMath(string DeviceNo, string PartNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_247 where DeviceNo=@DeviceNo and PartNo1=@PartNo"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[0].Value = DeviceNo; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = PartNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByNo(string PartNo, string deviceNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_247 where PartNo1=@PartNo and DeviceNo=@deviceNo"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + param[1] = new SqlParameter("@deviceNo", SqlDbType.VarChar); + param[1].Value = deviceNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPartName(string PartNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_247 where [PartNo2]=@PartNo "; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPartNoByDecice(string deviceNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_247 where DeviceNo=@DeviceNo "; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[0].Value = deviceNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + #region 243 + + public DataTable IsMath1(string DeviceNo, string PartNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_243 where DeviceNo=@DeviceNo and PartNo1=@PartNo"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[0].Value = DeviceNo; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = PartNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByNo1(string PartNo, string deviceNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_243 where PartNo1=@PartNo and DeviceNo=@deviceNo"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + param[1] = new SqlParameter("@deviceNo", SqlDbType.VarChar); + param[1].Value = deviceNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchPartName1(string PartNo) + { + try + { + string sql = @"SELECT * from tb_Mistake_243 where [PartNo2]=@PartNo "; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + #endregion + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake247/Plan247DAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake247/Plan247DAL.cs new file mode 100644 index 0000000..9ec2555 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake247/Plan247DAL.cs @@ -0,0 +1,250 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.Mistake247 +{ + public class Plan247DAL + { + public static string TableName = "tb_Plan_247"; + + public DataTable SearhByOrderNo(string OrderNo) + { + try + { + string sql = @"SELECT dbo.tb_Plan_247.OrderNo, dbo.tb_Plan_247.PartNo, dbo.tb_Mistake_247.PartName2, + dbo.tb_Plan_247.OrderCount,dbo.tb_Plan_247.IsFinish,dbo.tb_Plan_247.CompleteCount + FROM dbo.tb_Plan_247 LEFT OUTER JOIN + dbo.tb_Mistake_247 ON dbo.tb_Plan_247.PartNo = dbo.tb_Mistake_247.PartNo2 + where dbo.tb_Plan_247.OrderNo=@OrderNo + ORDER BY dbo.tb_Plan_247.CreateTime"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = OrderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable DetailOrderNo(string OrderNo) + { + try + { + string sql = @"SELECT dbo.tb_Plan_247.Item, dbo.tb_Plan_247.PartNo, dbo.tb_Mistake_247.PartName2, + dbo.tb_Plan_247.OrderCount + FROM dbo.tb_Plan_247 LEFT OUTER JOIN + dbo.tb_Mistake_247 ON dbo.tb_Plan_247.PartNo = dbo.tb_Mistake_247.PartNo2 + where dbo.tb_Plan_247.OrderNo=@OrderNo + ORDER BY dbo.tb_Plan_247.CreateTime"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = OrderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 根据半成品零件号查找扫描的订单中是否有此产品的生产计划 + /// + /// + /// + public DataTable IsHavePlan(string partNo1,string orderNo) + { + try + { + string sql = @"SELECT top 1 dbo.tb_Plan_247.OrderNo, dbo.tb_Plan_247.Item, dbo.tb_Plan_247.PartNo, + dbo.tb_Plan_247.OrderCount, dbo.tb_Plan_247.CompleteCount, dbo.tb_Mistake_247.PartNo1 + FROM dbo.tb_Plan_247 LEFT OUTER JOIN + dbo.tb_Mistake_247 ON dbo.tb_Plan_247.PartNo = dbo.tb_Mistake_247.PartNo2 + where PartNo1=@PartNo1 and OrderNo =@orderNo and IsFinish =0 + ORDER BY dbo.tb_Plan_247.CreateTime"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo1", SqlDbType.VarChar); + param[0].Value = partNo1; + + param[1] = new SqlParameter("@orderNo", SqlDbType.VarChar); + param[1].Value = orderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 根据半成品零件号查找订单号 + /// + /// + /// + public DataTable SearchOrderNoByPart1(string partNo1) + { + try + { + string sql = @"SELECT top 1 dbo.tb_Plan_247.OrderNo, dbo.tb_Plan_247.Item, dbo.tb_Plan_247.PartNo, + dbo.tb_Plan_247.OrderCount, dbo.tb_Plan_247.CompleteCount, dbo.tb_Mistake_247.PartNo1 + FROM dbo.tb_Plan_247 LEFT OUTER JOIN + dbo.tb_Mistake_247 ON dbo.tb_Plan_247.PartNo = dbo.tb_Mistake_247.PartNo2 + where PartNo1=@PartNo1 and IsFinish =0 + ORDER BY dbo.tb_Plan_247.CreateTime "; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo1", SqlDbType.VarChar); + param[0].Value = partNo1; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearhCountByOrderNo(string OrderNo,string partNo) + { + try + { + string sql = @"SELECT dbo.tb_Plan_247.OrderNo, dbo.tb_Plan_247.PartNo, dbo.tb_Mistake_247.PartName2, + dbo.tb_Plan_247.OrderCount,dbo.tb_Plan_247.IsFinish + FROM dbo.tb_Plan_247 LEFT OUTER JOIN + dbo.tb_Mistake_247 ON dbo.tb_Plan_247.PartNo = dbo.tb_Mistake_247.PartNo2 + where dbo.tb_Plan_247.OrderNo=@OrderNo and dbo.tb_Plan_247.PartNo=@PartNo + ORDER BY dbo.tb_Plan_247.CreateTime"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = OrderNo; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = partNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 更新订单完成数 + /// + /// + /// + /// + public bool UpdateCount(string partNo, string orderNo) + { + try + { + string sql = "update tb_Plan_247 set [CompleteCount]=[CompleteCount]+1 where OrderNo=@OrderNo and PartNo =@PartNo"; + SqlParameter[] param = null; + + #region 添加参数 + param = new SqlParameter[2]; + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = orderNo; + + param[1] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[1].Value = partNo; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + + #region 243 + + public DataTable SearhByOrderNo1(string OrderNo) + { + try + { + string sql = @"SELECT dbo.tb_Plan_243.OrderNo, dbo.tb_Plan_243.PartNo, dbo.tb_Plan_243.OrderCount, + dbo.tb_Plan_243.IsFinish, dbo.tb_Plan_243.CompleteCount, dbo.tb_Mistake_243.PartName2 + FROM dbo.tb_Plan_243 LEFT OUTER JOIN + dbo.tb_Mistake_243 ON dbo.tb_Plan_243.PartNo = dbo.tb_Mistake_243.PartNo2 + WHERE (dbo.tb_Plan_243.OrderNo = @OrderNo) + ORDER BY dbo.tb_Plan_243.CreateTime"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = OrderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 根据半成品零件号查找扫描的订单中是否有此产品的生产计划 + /// + /// + /// + public DataTable IsHavePlan1(string partNo1, string orderNo) + { + try + { + string sql = @"SELECT dbo.tb_Plan_243.OrderNo, dbo.tb_Plan_243.Item, dbo.tb_Plan_243.PartNo, dbo.tb_Plan_243.OrderCount, + dbo.tb_Plan_243.CompleteCount, dbo.tb_Mistake_243.PartNo1 + FROM dbo.tb_Plan_243 LEFT OUTER JOIN + dbo.tb_Mistake_243 ON dbo.tb_Plan_243.PartNo = dbo.tb_Mistake_243.PartNo2 + WHERE (dbo.tb_Plan_243.OrderNo = @orderNo) AND (dbo.tb_Plan_243.IsFinish = 0) + ORDER BY dbo.tb_Plan_243.CreateTime"; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo1", SqlDbType.VarChar); + param[0].Value = partNo1; + + param[1] = new SqlParameter("@orderNo", SqlDbType.VarChar); + param[1].Value = orderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + #endregion + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake247/RecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake247/RecordDAL.cs new file mode 100644 index 0000000..9719131 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake247/RecordDAL.cs @@ -0,0 +1,610 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.Mistake247 +{ + public class RecordDAL + { + public static string TableName = "tb_Record_247"; + public static string TableName1 = "tb_Record_243"; + + /// + /// 查找半成品是否已经装配 + /// + /// + /// + public DataTable SearchByPartNo1(string PartNo) + { + try + { + string sql = @"SELECT * from " + TableName + " where PartNo1=@PartNo"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = PartNo; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchCountByBox(string boxNo) + { + try + { + string sql = @"SELECT count(*) as sum from " + TableName + " where BoxNo=@BoxNo and Flag <>2"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[0].Value = boxNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool AddInfo(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " (ID,PartNo1,PartNo2,OrderNo,Type,DeviceNo"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@PartNo1,"; + sql += "@PartNo2,"; + sql += "@OrderNo,"; + sql += "@Type,"; + sql += "@DeviceNo)"; + + #region 添加参数 + param = new SqlParameter[6]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PartNo1", SqlDbType.VarChar); + param[1].Value = md.PartNo1; + + param[2] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[2].Value = md.PartNo2; + + param[3] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[3].Value = md.OrderNo; + + param[4] = new SqlParameter("@Type", SqlDbType.Int); + param[4].Value = md.Type; + + param[5] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[5].Value = md.DeviceNo; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateCreateTime1(string partNo) + { + try + { + string sql = @"update " + TableName + " set CreateTime1=(select getdate()) where PartNo2='" + partNo + @"'"; + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, null); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool updateBoxInfo(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + + sql = @"update " + TableName + " set BoxNo=@BoxNo,CreateTime2=(select getdate()),Flag=@Flag where PartNo2=@PartNo2"; + + #region 添加参数 + + param = new SqlParameter[3]; + param[0] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[0].Value = md.BoxNo; + + param[1] = new SqlParameter("@Flag", SqlDbType.Int); + param[1].Value = md.Flag; + + param[2] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[2].Value = md.PartNo2; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchState(int type1,int type2,int type3) + { + try + { + //string sql = @"SELECT * from " + TableName + " where Type in (@type1,@type2,@type3) and Flag =0 order by CreateTime1"; + + //string sql = @"SELECT * from " + TableName + " where Type in (@type1,@type2,@type3) and Flag =0 order by CreateTime1"; + + //string sql = @"SELECT * from " + TableName + " where Type in (@type1,@type2,@type3) and Flag =0 order by CreateTime1"; + string sql = @" + SELECT * from tb_record_247 where Type in (@type1,@type2,@type3) and Flag =0 AND CreateTime1 >= CONVERT(VARCHAR(10),GETDATE(),120) AND CreateTime1 < (CONVERT(VARCHAR(10),GETDATE(),120)+' 23:59:59') order by CreateTime1 + "; + + SqlParameter[] param = new SqlParameter[3]; + + param[0] = new SqlParameter("@type1", SqlDbType.Int); + param[0].Value = type1; + + param[1] = new SqlParameter("@type2", SqlDbType.Int); + param[1].Value = type2; + + param[2] = new SqlParameter("@type3", SqlDbType.Int); + param[2].Value = type3; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool DelInfo(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + + sql = @"update " + TableName + " set Flag=@Flag where PartNo2=@PartNo2"; + + #region 添加参数 + + param = new SqlParameter[2]; + + param[0] = new SqlParameter("@Flag", SqlDbType.Int); + param[0].Value = md.Flag; + + param[1] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[1].Value = md.PartNo2; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchBoxByPart(string part) + { + try + { + string sql = @"SELECT top 1 * from " + TableName + " where SUBSTRING(PartNo2,1,11)=@PartNo2 order by CreateTime2 desc"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[0].Value = part; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByPartNo2(string partno) + { + try + { + string sql = @"SELECT * from " + TableName + " where PartNo2=@PartNo"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = partno; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + public DataTable SearchIsVisualByPartNo2(string partno) + { + try + { + string sql = @"SELECT ToVisual from " + TableName + " where PartNo2 like '" + partno + @"%' and ToVisual=1"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetCount(string part,string batch) + { + try + { + string sql = @"SELECT count(*) as sum from " + TableName + " where SUBSTRING(PartNo2,1,11)=@PartNo2 and SUBSTRING(PartNo2,13,6)=@batch "; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[0].Value = part; + + param[1] = new SqlParameter("@batch", SqlDbType.VarChar); + param[1].Value = batch; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetRecord(string boxNo) + { + try + { + string sql = @" + SELECT PartNo2,CreateTime1 FROM tb_record_247 WHERE boxno = '" + boxNo + @"' ORDER BY createtime1 + "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + ///根据改订单的生产数量 + /// + /// + /// + public DataTable GetOrderNum(string orderno) + { + try + { + string sql = @"SELECT count(*) as sum from tb_record_247 where OrderNo=@OrderNo"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = orderno; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public string GetDeviceNo() + { + try + { + string res = ""; + + string sql = + @"select top 1 DeviceNo from tb_Record_247 where ToVisual=0 and isnull(CreateTime2,'')='' order by CreateTime1 "; + DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + res = dt.Rows[0]["DeviceNo"].ToString(); + } + + return res; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return ""; + } + } + + #region 243 + + public bool AddInfo1(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName1 + " (ID,PartNo1,PartNo2,OrderNo,Type"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@PartNo1,"; + sql += "@PartNo2,"; + sql += "@OrderNo,"; + sql += "@Type)"; + + #region 添加参数 + param = new SqlParameter[5]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PartNo1", SqlDbType.VarChar); + param[1].Value = md.PartNo1; + + param[2] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[2].Value = md.PartNo2; + + param[3] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[3].Value = md.OrderNo; + + param[4] = new SqlParameter("@Type", SqlDbType.Int); + param[4].Value = md.Type; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable GetCount1(string part, string batch) + { + try + { + string sql = @"SELECT count(*) as sum from " + TableName1 + " where SUBSTRING(PartNo2,1,11)=@PartNo2 and SUBSTRING(PartNo2,13,6)=@batch "; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[0].Value = part; + + param[1] = new SqlParameter("@batch", SqlDbType.VarChar); + param[1].Value = batch; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchByPartNo4(string partno) + { + try + { + string sql = @"SELECT * from " + TableName1 + " where PartNo2=@PartNo"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = partno; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchBoxByPart1(string part) + { + try + { + string sql = @"SELECT top 1 * from " + TableName1 + " where SUBSTRING(PartNo2,1,11)=@PartNo2 order by CreateTime2 desc"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[0].Value = part; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchCountByBox1(string boxNo) + { + try + { + string sql = @"SELECT count(*) as sum from " + TableName1 + " where BoxNo=@BoxNo and Flag <>2"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[0].Value = boxNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool updateBoxInfo1(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + + sql = @"update " + TableName1 + " set BoxNo=@BoxNo,CreateTime2=(select getdate()),Flag=@Flag where PartNo2=@PartNo2"; + + #region 添加参数 + + param = new SqlParameter[3]; + param[0] = new SqlParameter("@BoxNo", SqlDbType.VarChar); + param[0].Value = md.BoxNo; + + param[1] = new SqlParameter("@Flag", SqlDbType.Int); + param[1].Value = md.Flag; + + param[2] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[2].Value = md.PartNo2; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo1(RecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + + sql = @"update " + TableName1 + " set Flag=@Flag where PartNo2=@PartNo2"; + + #region 添加参数 + + param = new SqlParameter[2]; + + param[0] = new SqlParameter("@Flag", SqlDbType.Int); + param[0].Value = md.Flag; + + param[1] = new SqlParameter("@PartNo2", SqlDbType.VarChar); + param[1].Value = md.PartNo2; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchState1(int type1, int type2, int type3) + { + try + { + string sql = @" + SELECT * from tb_record_243 where Type in (@type1,@type2,@type3) and Flag =0 AND CreateTime1 >= CONVERT(VARCHAR(10),GETDATE(),120) AND CreateTime1 < (CONVERT(VARCHAR(10),GETDATE(),120)+' 23:59:59') order by CreateTime1 + "; + + SqlParameter[] param = new SqlParameter[3]; + + param[0] = new SqlParameter("@type1", SqlDbType.Int); + param[0].Value = type1; + + param[1] = new SqlParameter("@type2", SqlDbType.Int); + param[1].Value = type2; + + param[2] = new SqlParameter("@type3", SqlDbType.Int); + param[2].Value = type3; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable GetRecord1(string boxNo) + { + try + { + string sql = @" + SELECT PartNo2,CreateTime1 FROM tb_record_243 WHERE boxno = '" + boxNo + @"' ORDER BY createtime1 + "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + #endregion + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Mistake247/ToVisualDAL.cs b/BBMPTMes/MESClassLibrary/DAL/Mistake247/ToVisualDAL.cs new file mode 100644 index 0000000..22bbb0c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Mistake247/ToVisualDAL.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.Mistake247 +{ + public class ToVisualDAL + { + public bool AddInfo(string PartNo,string tableName) + { + try + { + string sql = @" insert into " + tableName + " (PartNo) values('" + PartNo + @"')"; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, null); + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchInfoByPartNo(string PartNo, string tableName) + { + try + { + string sql = @"select ID from " + tableName + " where PartNo='" + PartNo + @"' and ToVisual=0"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool IsVisual(string tableName) + { + try + { + bool res = false; + + string sql = @"select ID from " + tableName + " where ToVisual=1"; + DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + res = false; + } + else + { + res = true; + } + + return res; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PaintDown/PaintDownDal.cs b/BBMPTMes/MESClassLibrary/DAL/PaintDown/PaintDownDal.cs new file mode 100644 index 0000000..598c1c6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PaintDown/PaintDownDal.cs @@ -0,0 +1,64 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Web; + +namespace MESClassLibrary.DAL.PaintDown +{ + public class PaintDownDal + { + public DataTable SearchInfoByTime(string time1,string time2) + { + DataTable res = null; + try + { + string sql = @" + SELECT [TimeStamp] + ,[Ordernumber] + ,[Skid_No] + ,[Setvalue_BC_Color_No] + ,[Setvalue_CC_Color_No] + ,Setvalue_PR_Color_No + ,[Side_1_BC01] + ,[Side_1_BC02] + ,[Side_1_BC03] + ,[Side_1_BC04] + ,[Side_1_BC05] + ,[Side_1_BC06] + ,[Side_1_BC07] + ,[Side_1_BC08] + ,[Side_1_BC09] + ,[Side_1_BC10] + ,[Side_1_BC11] + ,[Side_1_BC12] + ,[Side_2_BC01] + ,[Side_2_BC02] + ,[Side_2_BC03] + ,[Side_2_BC04] + ,[Side_2_BC05] + ,[Side_2_BC06] + ,[Side_2_BC07] + ,[Side_2_BC08] + ,[Side_2_BC09] + ,[Side_2_BC10] + ,[Side_2_BC11] + ,[Side_2_BC12] + + FROM [PRODUCTION_DATA].[dbo].[Paintline_Loadingdata] + WHERE TimeStamp BETWEEN '"+ time1 +@"' AND '"+ time2 +@"' + ORDER BY TimeStamp"; + res= SqlHelper.ExecuteDataset(SqlHelper.GetConnSting1(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Plan243/Plan243DAL.cs b/BBMPTMes/MESClassLibrary/DAL/Plan243/Plan243DAL.cs new file mode 100644 index 0000000..26a71cd --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Plan243/Plan243DAL.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.Plan243 +{ + public class Plan243DAL + { + public DataTable SearhByOrderNo(string OrderNo) + { + try + { + string sql = @"SELECT dbo.tb_Plan_243.OrderNo, dbo.tb_Plan_243.PartNo, dbo.tb_Mistake_243.PartName2, + dbo.tb_Plan_243.OrderCount,dbo.tb_Plan_243.IsFinish,dbo.tb_Plan_243.CompleteCount + FROM dbo.tb_Plan_243 LEFT OUTER JOIN + dbo.tb_Mistake_243 ON dbo.tb_Plan_243.PartNo = dbo.tb_Mistake_243.PartNo2 + where dbo.tb_Plan_243.OrderNo=@OrderNo + ORDER BY dbo.tb_Plan_243.CreateTime"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = OrderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable DetailOrderNo(string OrderNo) + { + try + { + string sql = @"SELECT dbo.tb_Plan_243.Item, dbo.tb_Plan_243.PartNo, dbo.tb_Mistake_243.PartName2, + dbo.tb_Plan_243.OrderCount + FROM dbo.tb_Plan_243 LEFT OUTER JOIN + dbo.tb_Mistake_243 ON dbo.tb_Plan_243.PartNo = dbo.tb_Mistake_243.PartNo2 + where dbo.tb_Plan_243.OrderNo=@OrderNo + ORDER BY dbo.tb_Plan_243.CreateTime"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@OrderNo", SqlDbType.VarChar); + param[0].Value = OrderNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/Plan247/Plan247DAL.cs b/BBMPTMes/MESClassLibrary/DAL/Plan247/Plan247DAL.cs new file mode 100644 index 0000000..6961706 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/Plan247/Plan247DAL.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace MESClassLibrary.DAL.Plan247 +{ + public class Plan247DAL + { + + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchAdressDAL.cs b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchAdressDAL.cs new file mode 100644 index 0000000..367c598 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchAdressDAL.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.PunchAndWeld +{ + public class PunchAdressDAL + { + public DataTable SearchInfo(string deviceNo ,int i) + { + try + { + string sql = @"SELECT * from tb_PunchAddress where DeviceNo=@DeviceNo and RW=@RW order by ID"; + SqlParameter[] param = null; + + param = new SqlParameter[2]; + param[0] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[0].Value = deviceNo; + + param[1] = new SqlParameter("@RW", SqlDbType.Int); + param[1].Value = i; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchAndStationDAL.cs b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchAndStationDAL.cs new file mode 100644 index 0000000..ca335b6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchAndStationDAL.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.PunchAndWeld +{ + public class PunchAndStationDAL + { + public DataTable IsMath(string partNo1, string partNo2) + { + try + { + string sql = @"SELECT tb_Product_1.PartNo AS PartNo1, tb_Product_1.ProductName AS ProductName1, dbo.tb_Product.PartNo AS PartNo2, + dbo.tb_Product.ProductName AS ProductName2 + FROM dbo.tb_PunchAndStation LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_PunchAndStation.ProductID2 = dbo.tb_Product.ProductID LEFT OUTER JOIN + dbo.tb_Product AS tb_Product_1 ON dbo.tb_PunchAndStation.ProductID1 = tb_Product_1.ProductID + where tb_Product_1.PartNo=@partNo1 and dbo.tb_Product.PartNo =@partNo2"; + SqlParameter[] param = null; + + param = new SqlParameter[2]; + param[0] = new SqlParameter("@partNo1", SqlDbType.VarChar); + param[0].Value = partNo1; + + param[1] = new SqlParameter("@partNo2", SqlDbType.VarChar); + param[1].Value = partNo2; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable IsMath1(string partNo, string stationNo) + { + try + { + string sql = @"SELECT * FROM dbo.tb_PunchAndStation ps + LEFT OUTER JOIN dbo.tb_Product p ON ps.ProductID1=p.ProductID + LEFT OUTER JOIN dbo.tb_Station s ON ps.StationID=s.StationID + WHERE s.StationNo=@stationNo AND p.PartNo=@PartNo"; + SqlParameter[] param = null; + + param = new SqlParameter[2]; + param[0] = new SqlParameter("@PartNo", SqlDbType.VarChar); + param[0].Value = partNo; + + param[1] = new SqlParameter("@stationNo", SqlDbType.VarChar); + param[1].Value = stationNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchDeviceDAL.cs b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchDeviceDAL.cs new file mode 100644 index 0000000..761118c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchDeviceDAL.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.PunchAndWeld +{ + public class PunchDeviceDAL + { + public DataTable SearchInfo() + { + try + { + string sql = @"select * from tb_PunchDevice "; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchDeviceNo(string deviceName) + { + try + { + string sql = @"select * from tb_PunchDevice where DeviceName=@DeviceName"; + + SqlParameter[] param = null; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@DeviceName", SqlDbType.VarChar); + param[0].Value = deviceName; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPartDAL.cs b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPartDAL.cs new file mode 100644 index 0000000..8207ac2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPartDAL.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.PunchAndWeld +{ + public class PunchPartDAL + { + public DataTable SearchPunchPart(string deviceNo) + { + try + { + string sql = @"select * from tb_Product where ProductTypeID='3a8545ee-5979-4780-a5ca-6c5e75685ae2' and DeviceNo='"+ deviceNo +"' order by ProductName "; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPlanDAL.cs b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPlanDAL.cs new file mode 100644 index 0000000..e6441e0 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPlanDAL.cs @@ -0,0 +1,172 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using MESClassLibrary.Model; + +namespace MESClassLibrary.BLL.PunchAndWeld +{ + public class PunchPlanDAL + { + /// + /// 查询设备当前计划 + /// + /// + /// + public DataTable SearchPlan(string deviceNo) + { + try + { + string sql =@"SELECT top 1 dbo.tb_PunchPlan.ID, dbo.tb_PunchPlan.DeviceNo, dbo.tb_PunchPlan.PlanCount, dbo.tb_PunchPlan.CompleteCount, + dbo.tb_PunchPlan.BadCount, dbo.tb_PunchPlan.IsFinish, dbo.tb_Product.PartNo, dbo.tb_Product.ProductName + FROM dbo.tb_PunchPlan LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_PunchPlan.ProductID = dbo.tb_Product.ProductID where dbo.tb_PunchPlan.DeviceNo=@DeviceNo and IsFinish=0 order by CreateTime"; + + SqlParameter[] param = null; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[0].Value = deviceNo; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 查询所有设备未完成的计划 + /// + /// + public DataTable SearchAllPlan() + { + string sql = @"SELECT dbo.tb_PunchPlan.ID, dbo.tb_PunchPlan.DeviceNo, dbo.tb_PunchPlan.PlanCount, dbo.tb_PunchPlan.CompleteCount, + dbo.tb_PunchPlan.BadCount, dbo.tb_PunchPlan.IsFinish, dbo.tb_Product.PartNo, dbo.tb_Product.ProductName, + dbo.tb_PunchDevice.DeviceName + FROM dbo.tb_PunchPlan LEFT OUTER JOIN + dbo.tb_PunchDevice ON dbo.tb_PunchPlan.DeviceNo = dbo.tb_PunchDevice.DeviceNo LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_PunchPlan.ProductID = dbo.tb_Product.ProductID where IsFinish=0 order by CreateTime"; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + + public bool AddInfo(PunchPlanModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = " insert into tb_PunchPlan(ID,DeviceNo,ProductID,PlanCount"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@DeviceNo,"; + sql += "@ProductID,"; + sql += "@PlanCount)"; + + param = new SqlParameter[4]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[1].Value = md.DeviceNo; + + param[2] = new SqlParameter("@ProductID", SqlDbType.VarChar); + param[2].Value = md.ProductID; + + param[3] = new SqlParameter("@PlanCount", SqlDbType.Int); + param[3].Value = md.PlanCount; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateInfo(PunchPlanModel md) + { + try + { + string sql = @"update tb_PunchPlan set PlanCount=@PlanCount where ID=@ID"; + SqlParameter[] param = null; + + param = new SqlParameter[2]; + + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PlanCount", SqlDbType.Int); + param[1].Value = md.PlanCount; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdateDty(PunchPlanModel md) + { + try + { + string sql = @"update tb_PunchPlan set CompleteCount=CompleteCount+1 where ID=@ID"; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool DelInfo(PunchPlanModel md) + { + try + { + string sql = @"delete from tb_PunchPlan where ID=@ID"; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPlanMFADAL.cs b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPlanMFADAL.cs new file mode 100644 index 0000000..cfd6e71 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchPlanMFADAL.cs @@ -0,0 +1,386 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.PunchAndWeld +{ + public class PunchPlanMFADAL + { + /// + /// 后保 + /// + /// + /// + public DataTable SearchPlan(string DeviceNo) + { + try + { + string sql = ""; + + if (DeviceNo == "BMPTJQSB-05-094") + { + sql = + @"select CarModelCode,productionNumber,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName,BarCode,Sort ,ColorCode ,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'Z177-S' order by CheckTime"; + } + else if (DeviceNo == "BMPTJQSB-05-099") + { + sql = + @"select CarModelCode,productionNumber ,itemNumber,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort,ColorCode ,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'Z177-AMG' order by CheckTime"; + } + else if (DeviceNo == "BMPTJQSB-05-166") + { + sql = + @"select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'X247-S' + union + select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'H247-S' + union + select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'X243-S' + union + select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'H243-S' + union + select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'X243-A' + order by CheckTime"; + } + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting1(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 后保 + /// + /// + /// + public bool InsertPlan(string DeviceNo) + { + try + { + PunchMFAModel md=new PunchMFAModel(); + string sql = ""; + + SqlParameter[] param = new SqlParameter[13]; + + DataTable dt = SearchPlan(DeviceNo); + if (dt != null && dt.Rows.Count > 0) + { + for (int i = 0; i < dt.Rows.Count; i++) + { + md.CarModelCode = dt.Rows[i]["CarModelCode"].ToString(); + md.productionNumber = dt.Rows[i]["productionNumber"].ToString(); + md.itemNumber = dt.Rows[i]["itemNumber"].ToString(); + md.description = dt.Rows[i]["description"].ToString(); + md.assemblyDate = Convert.ToDateTime(dt.Rows[i]["assemblyDate"].ToString()); + md.BillNo = dt.Rows[i]["BillNo"].ToString(); + md.partType = dt.Rows[i]["partType"].ToString(); + md.ColorName = dt.Rows[i]["ColorName"].ToString(); + md.BarCode = dt.Rows[i]["BarCode"].ToString(); + md.Sort = Convert.ToInt32(dt.Rows[i]["Sort"].ToString()); + md.ColorCode = dt.Rows[i]["ColorCode"].ToString(); + md.CheckTime = Convert.ToDateTime(dt.Rows[i]["CheckTime"].ToString()); + md.DeviceNo = DeviceNo; + + sql = + @"IF NOT EXISTS(SELECT * FROM [dbo].[tb_PunchMFAPlan] WHERE productionNumber=@productionNumber AND Sort=@Sort) INSERT INTO [dbo].[tb_PunchMFAPlan] ([CarModelCode],[productionNumber],[itemNumber], + [description],[assemblyDate],[BillNo],[partType],[ColorName],[BarCode],[Sort],[ColorCode],[CheckTime],[DeviceNo]) VALUES (@CarModelCode,@productionNumber,@itemNumber,@description,@assemblyDate, + @BillNo,@partType,@ColorName,@BarCode,@Sort,@ColorCode,@CheckTime,@DeviceNo)"; + + param[0] = new SqlParameter("CarModelCode", SqlDbType.VarChar); + param[0].Value = md.CarModelCode; + + param[1] = new SqlParameter("@productionNumber", SqlDbType.VarChar); + param[1].Value = md.productionNumber; + + param[2] = new SqlParameter("itemNumber", SqlDbType.VarChar); + param[2].Value = md.itemNumber; + + param[3] = new SqlParameter("@description", SqlDbType.VarChar); + param[3].Value = md.description; + + param[4] = new SqlParameter("assemblyDate", SqlDbType.DateTime); + param[4].Value = md.assemblyDate; + + param[5] = new SqlParameter("@BillNo", SqlDbType.VarChar); + param[5].Value = md.BillNo; + + param[6] = new SqlParameter("partType", SqlDbType.VarChar); + param[6].Value = md.partType; + + param[7] = new SqlParameter("@ColorName", SqlDbType.VarChar); + param[7].Value = md.ColorName; + + param[8] = new SqlParameter("BarCode", SqlDbType.VarChar); + param[8].Value = md.BarCode; + + param[9] = new SqlParameter("@Sort", SqlDbType.Int); + param[9].Value = md.Sort; + + param[10] = new SqlParameter("ColorCode", SqlDbType.VarChar); + param[10].Value = md.ColorCode; + + param[11] = new SqlParameter("@CheckTime", SqlDbType.DateTime); + param[11].Value = md.CheckTime; + + param[12] = new SqlParameter("DeviceNo", SqlDbType.VarChar); + param[12].Value = md.DeviceNo; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + } + } + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchMFAPlan(string DeviceNo) + { + try + { + string sql = @"select top 1 * from [dbo].[tb_PunchMFAPlan] where IsFinish=0 and DeviceNo='"+ DeviceNo+"' order by ID"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpFinish(int ID) + { + try + { + string sql = @"update tb_PunchMFAPlan set IsFinish=1 where ID=" + ID; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, null); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + /// + /// 前保 + /// + /// + /// + public DataTable SearchPlan_F(string DeviceNo) + { + try + { + string sql = ""; + + if (DeviceNo == "BMPTJQSB-05-093") + { + sql = + @"select CarModelCode,productionNumber,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName,BarCode,Sort ,ColorCode ,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'Z177-S' order by CheckTime"; + } + else if (DeviceNo == "BMPTJQSB-05-098") + { + sql = + @"select CarModelCode,productionNumber ,itemNumber,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort,ColorCode ,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'Z177-AMG' order by CheckTime"; + } + else if (DeviceNo == "BMPTJQSB-05-166") + { +// sql = +// @"select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , +// partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble +// where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'X247-S' +// union +// select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , +// partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble +// where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'H247-S' +// union +// select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , +// partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble +// where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'X243-S' +// order by CheckTime"; + sql = + @"select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'X247-S' + union + select CarModelCode,productionNumber ,itemNumber ,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort ,ColorCode,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'X243-S' + order by CheckTime"; + } + else if (DeviceNo == "BMPTJQSB-05-123") + { + sql = + @"select CarModelCode,productionNumber ,itemNumber,[description] ,assemblyDate ,BillNo , + partType ,ColorName ,BarCode ,Sort,ColorCode ,CheckTime from t_JIS_Assemble + where IsCheck = 1 and PreCheck = 0 and IsOnline =0 and CarmodelCode = 'H247-S' order by CheckTime"; + } + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting2(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 前保 + /// + /// + /// + public bool InsertPlan_F(string DeviceNo) + { + try + { + PunchMFAModel md = new PunchMFAModel(); + string sql = ""; + + SqlParameter[] param = new SqlParameter[13]; + + DataTable dt = SearchPlan_F(DeviceNo); + if (dt != null && dt.Rows.Count > 0) + { + for (int i = 0; i < dt.Rows.Count; i++) + { + md.CarModelCode = dt.Rows[i]["CarModelCode"].ToString(); + md.productionNumber = dt.Rows[i]["productionNumber"].ToString(); + md.itemNumber = dt.Rows[i]["itemNumber"].ToString(); + md.description = dt.Rows[i]["description"].ToString(); + md.assemblyDate = Convert.ToDateTime(dt.Rows[i]["assemblyDate"].ToString()); + md.BillNo = dt.Rows[i]["BillNo"].ToString(); + md.partType = dt.Rows[i]["partType"].ToString(); + md.ColorName = dt.Rows[i]["ColorName"].ToString(); + md.BarCode = dt.Rows[i]["BarCode"].ToString(); + md.Sort = Convert.ToInt32(dt.Rows[i]["Sort"].ToString()); + md.ColorCode = dt.Rows[i]["ColorCode"].ToString(); + md.CheckTime = Convert.ToDateTime(dt.Rows[i]["CheckTime"].ToString()); + md.DeviceNo = DeviceNo; + + sql = + @"IF NOT EXISTS(SELECT * FROM [dbo].[tb_PunchNGCCPlan] WHERE productionNumber=@productionNumber AND Sort=@Sort) INSERT INTO [dbo].[tb_PunchNGCCPlan] ([CarModelCode],[productionNumber],[itemNumber], + [description],[assemblyDate],[BillNo],[partType],[ColorName],[BarCode],[Sort],[ColorCode],[CheckTime],[DeviceNo]) VALUES (@CarModelCode,@productionNumber,@itemNumber,@description,@assemblyDate, + @BillNo,@partType,@ColorName,@BarCode,@Sort,@ColorCode,@CheckTime,@DeviceNo)"; + + param[0] = new SqlParameter("CarModelCode", SqlDbType.VarChar); + param[0].Value = md.CarModelCode; + + param[1] = new SqlParameter("@productionNumber", SqlDbType.VarChar); + param[1].Value = md.productionNumber; + + param[2] = new SqlParameter("itemNumber", SqlDbType.VarChar); + param[2].Value = md.itemNumber; + + param[3] = new SqlParameter("@description", SqlDbType.VarChar); + param[3].Value = md.description; + + param[4] = new SqlParameter("assemblyDate", SqlDbType.DateTime); + param[4].Value = md.assemblyDate; + + param[5] = new SqlParameter("@BillNo", SqlDbType.VarChar); + param[5].Value = md.BillNo; + + param[6] = new SqlParameter("partType", SqlDbType.VarChar); + param[6].Value = md.partType; + + param[7] = new SqlParameter("@ColorName", SqlDbType.VarChar); + param[7].Value = md.ColorName; + + param[8] = new SqlParameter("BarCode", SqlDbType.VarChar); + param[8].Value = md.BarCode; + + param[9] = new SqlParameter("@Sort", SqlDbType.Int); + param[9].Value = md.Sort; + + param[10] = new SqlParameter("ColorCode", SqlDbType.VarChar); + param[10].Value = md.ColorCode; + + param[11] = new SqlParameter("@CheckTime", SqlDbType.DateTime); + param[11].Value = md.CheckTime; + + param[12] = new SqlParameter("DeviceNo", SqlDbType.VarChar); + param[12].Value = md.DeviceNo; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + } + } + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable NGCC(string DeviceNo) + { + try + { + string sql = @"select top 1 * from [dbo].[tb_PunchNGCCPlan] where IsFinish=0 and DeviceNo='" + DeviceNo + "' order by ID"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public bool UpFinish_F(int ID) + { + try + { + string sql = @"update tb_PunchNGCCPlan set IsFinish=1 where ID=" + ID; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, null); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchRecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchRecordDAL.cs new file mode 100644 index 0000000..f0bdd09 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchRecordDAL.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.PunchAndWeld +{ + public class PunchRecordDAL + { + public bool AddInfo(PunchRecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = " insert into tb_PunchRecord(ID,BarCode"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@BarCode)"; + + param = new SqlParameter[2]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[1].Value =md.BarCode ; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchInfo(string barCode) + { + try + { + string sql = @"SELECT * from tb_PunchRecord where BarCode=@BarCode "; + SqlParameter[] param = null; + + param = new SqlParameter[1]; + param[0] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[0].Value = barCode; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchValueRecordDAL.cs b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchValueRecordDAL.cs new file mode 100644 index 0000000..f2040b9 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/PunchAndWeld/PunchValueRecordDAL.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.PunchAndWeld +{ + public class PunchValueRecordDAL + { + public bool AddInfo(PunchValueRecordModel md) + { + try + { + string sql = ""; + SqlParameter[] param = null; + sql = " insert into tb_PunchValueRecord(ID,DeviceNo,Address,ItemValue"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@DeviceNo,"; + sql += "@Address,"; + sql += "@ItemValue)"; + + param = new SqlParameter[4]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@DeviceNo", SqlDbType.VarChar); + param[1].Value = md.DeviceNo; + + param[2] = new SqlParameter("@Address", SqlDbType.VarChar); + param[2].Value = md.Address; + + param[3] = new SqlParameter("@ItemValue", SqlDbType.VarChar); + param[3].Value = md.ItemValue; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/SqlHelper.cs b/BBMPTMes/MESClassLibrary/DAL/SqlHelper.cs new file mode 100644 index 0000000..bd53e73 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/SqlHelper.cs @@ -0,0 +1,2508 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Text; +using System.Xml; + +namespace MESClassLibrary.DAL +{ + /// + /// SqlServer数据访问帮助类 + /// + public sealed class SqlHelper + { + #region 私有构造函数和方法 + + private SqlHelper() { } + + /// + /// 将SqlParameter参数数组(参数值)分配给SqlCommand命令. + /// 这个方法将给任何一个参数分配DBNull.Value; + /// 该操作将阻止默认值的使用. + /// + /// 命令名 + /// SqlParameters数组 + private static void AttachParameters(SqlCommand command, SqlParameter[] commandParameters) + { + if (command == null) throw new ArgumentNullException("command"); + if (commandParameters != null) + { + foreach (SqlParameter p in commandParameters) + { + if (p != null) + { + // 检查未分配值的输出参数,将其分配以DBNull.Value. + if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) && + (p.Value == null)) + { + p.Value = DBNull.Value; + } + command.Parameters.Add(p); + } + } + } + } + + /// + /// 将DataRow类型的列值分配到SqlParameter参数数组. + /// + /// 要分配值的SqlParameter参数数组 + /// 将要分配给存储过程参数的DataRow + private static void AssignParameterValues(SqlParameter[] commandParameters, DataRow dataRow) + { + if ((commandParameters == null) || (dataRow == null)) + { + return; + } + + int i = 0; + // 设置参数值 + foreach (SqlParameter commandParameter in commandParameters) + { + // 创建参数名称,如果不存在,只抛出一个异常. + if (commandParameter.ParameterName == null || + commandParameter.ParameterName.Length <= 1) + throw new Exception( + string.Format("请提供参数{0}一个有效的名称{1}.", i, commandParameter.ParameterName)); + // 从dataRow的表中获取为参数数组中数组名称的列的索引. + // 如果存在和参数名称相同的列,则将列值赋给当前名称的参数. + if (dataRow.Table.Columns.IndexOf(commandParameter.ParameterName.Substring(1)) != -1) + commandParameter.Value = dataRow[commandParameter.ParameterName.Substring(1)]; + i++; + } + } + + /// + /// 将一个对象数组分配给SqlParameter参数数组. + /// + /// 要分配值的SqlParameter参数数组 + /// 将要分配给存储过程参数的对象数组 + private static void AssignParameterValues(SqlParameter[] commandParameters, object[] parameterValues) + { + if ((commandParameters == null) || (parameterValues == null)) + { + return; + } + + // 确保对象数组个数与参数个数匹配,如果不匹配,抛出一个异常. + if (commandParameters.Length != parameterValues.Length) + { + throw new ArgumentException("参数值个数与参数不匹配."); + } + + // 给参数赋值 + for (int i = 0, j = commandParameters.Length; i < j; i++) + { + // If the current array value derives from IDbDataParameter, then assign its Value property + if (parameterValues[i] is IDbDataParameter) + { + IDbDataParameter paramInstance = (IDbDataParameter)parameterValues[i]; + if (paramInstance.Value == null) + { + commandParameters[i].Value = DBNull.Value; + } + else + { + commandParameters[i].Value = paramInstance.Value; + } + } + else if (parameterValues[i] == null) + { + commandParameters[i].Value = DBNull.Value; + } + else + { + commandParameters[i].Value = parameterValues[i]; + } + } + } + + /// + /// 预处理用户提供的命令,数据库连接/事务/命令类型/参数 + /// + /// 要处理的SqlCommand + /// 数据库连接 + /// 一个有效的事务或者是null值 + /// 命令类型 (存储过程,命令文本, 其它.) + /// 存储过程名或都T-SQL命令文本 + /// 和命令相关联的SqlParameter参数数组,如果没有参数为'null' + /// true 如果连接是打开的,则为true,其它情况下为false. + private static void PrepareCommand(SqlCommand command, SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters, out bool mustCloseConnection) + { + if (command == null) throw new ArgumentNullException("command"); + if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); + + // If the provided connection is not open, we will open it + if (connection.State != ConnectionState.Open) + { + mustCloseConnection = true; + connection.Open(); + } + else + { + mustCloseConnection = false; + } + + // 给命令分配一个数据库连接. + command.Connection = connection; + + // 设置命令文本(存储过程名或SQL语句) + command.CommandText = commandText; + + // 分配事务 + if (transaction != null) + { + if (transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + command.Transaction = transaction; + } + + // 设置命令类型. + command.CommandType = commandType; + + // 分配命令参数 + if (commandParameters != null) + { + AttachParameters(command, commandParameters); + } + return; + } + + #endregion 私有构造函数和方法结束 + + #region 数据库连接 + /// + /// 一个有效的数据库连接字符串 + /// + /// + public static string GetConnSting() + { + return ConfigurationManager.ConnectionStrings["SqlConnString"].ConnectionString; + } + + public static string GetConnSting1() + { + return ConfigurationManager.ConnectionStrings["SqlConnString1"].ConnectionString; + } + + public static string GetConnSting2() + { + return ConfigurationManager.ConnectionStrings["SqlConnString2"].ConnectionString; + } + /// + /// 一个有效的数据库连接对象 + /// + /// + public static SqlConnection GetConnection() + { + SqlConnection Connection = new SqlConnection(SqlHelper.GetConnSting()); + return Connection; + } + #endregion + + #region ExecuteNonQuery命令 + + /// + /// 执行指定连接字符串,类型的SqlCommand. + /// + /// + /// 示例: + /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders"); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本, 其它.) + /// 存储过程名称或SQL语句 + /// 返回命令影响的行数 + public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText) + { + return ExecuteNonQuery(connectionString, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定连接字符串,类型的SqlCommand.如果没有提供参数,不返回结果. + /// + /// + /// 示例: + /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本, 其它.) + /// 存储过程名称或SQL语句 + /// SqlParameter参数数组 + /// 返回命令影响的行数 + public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + return ExecuteNonQuery(connection, commandType, commandText, commandParameters); + } + } + + /// + /// 执行指定连接字符串的存储过程,将对象数组的值赋给存储过程参数, + /// 此方法需要在参数缓存方法中探索参数并生成参数. + /// + /// + /// 这个方法没有提供访问输出参数和返回值. + /// 示例: + /// int result = ExecuteNonQuery(connString, "PublishOrders", 24, 36); + /// + /// 一个有效的数据库连接字符串/param> + /// 存储过程名称 + /// 分配到存储过程输入参数的对象数组 + /// 返回受影响的行数 + public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果存在参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从探索存储过程参数(加载到缓存)并分配给存储过程参数数组. + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + return ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + // 没有参数情况下 + return ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定数据库连接对象的命令 + /// + /// + /// 示例: + /// int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders"); + /// + /// 一个有效的数据库连接对象 + /// 命令类型(存储过程,命令文本或其它.) + /// 存储过程名称或T-SQL语句 + /// 返回影响的行数 + public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText) + { + return ExecuteNonQuery(connection, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库连接对象的命令 + /// + /// + /// 示例: + /// int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接对象 + /// 命令类型(存储过程,命令文本或其它.) + /// T存储过程名称或T-SQL语句 + /// SqlParamter参数数组 + /// 返回影响的行数 + public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (connection == null) throw new ArgumentNullException("connection"); + + // 创建SqlCommand命令,并进行预处理 + SqlCommand cmd = new SqlCommand(); + bool mustCloseConnection = false; + PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection); + + // Finally, execute the command + int retval = cmd.ExecuteNonQuery(); + + // 清除参数,以便再次使用. + cmd.Parameters.Clear(); + if (mustCloseConnection) + connection.Close(); + return retval; + } + + /// + /// 执行指定数据库连接对象的命令,将对象数组的值赋给存储过程参数. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值 + /// 示例: + /// int result = ExecuteNonQuery(conn, "PublishOrders", 24, 36); + /// + /// 一个有效的数据库连接对象 + /// 存储过程名 + /// 分配给存储过程输入参数的对象数组 + /// 返回影响的行数 + public static int ExecuteNonQuery(SqlConnection connection, string spName, params object[] parameterValues) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数 + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 给存储过程分配参数值 + AssignParameterValues(commandParameters, parameterValues); + + return ExecuteNonQuery(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return ExecuteNonQuery(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行带事务的SqlCommand. + /// + /// + /// 示例.: + /// int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders"); + /// + /// 一个有效的数据库连接对象 + /// 命令类型(存储过程,命令文本或其它.) + /// 存储过程名称或T-SQL语句 + /// 返回影响的行数/returns> + public static int ExecuteNonQuery(SqlTransaction transaction, CommandType commandType, string commandText) + { + return ExecuteNonQuery(transaction, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行带事务的SqlCommand(指定参数). + /// + /// + /// 示例: + /// int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接对象 + /// 命令类型(存储过程,命令文本或其它.) + /// 存储过程名称或T-SQL语句 + /// SqlParamter参数数组 + /// 返回影响的行数 + public static int ExecuteNonQuery(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + + // 预处理 + SqlCommand cmd = new SqlCommand(); + bool mustCloseConnection = false; + PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection); + + // 执行 + int retval = cmd.ExecuteNonQuery(); + + // 清除参数集,以便再次使用. + cmd.Parameters.Clear(); + return retval; + } + + /// + /// 执行带事务的SqlCommand(指定参数值). + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值 + /// 示例: + /// int result = ExecuteNonQuery(conn, trans, "PublishOrders", 24, 36); + /// + /// 一个有效的数据库连接对象 + /// 存储过程名 + /// 分配给存储过程输入参数的对象数组 + /// 返回受影响的行数 + public static int ExecuteNonQuery(SqlTransaction transaction, string spName, params object[] parameterValues) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + // 调用重载方法 + return ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + // 没有参数值 + return ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName); + } + } + + #endregion ExecuteNonQuery方法结束 + + #region ExecuteDataset方法 + + /// + /// 执行指定数据库连接字符串的命令,返回DataSet. + /// + /// + /// 示例: + /// DataSet ds = ExecuteDataset(connString, CommandType.StoredProcedure, "GetOrders"); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText) + { + return ExecuteDataset(connectionString, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库连接字符串的命令,返回DataSet. + /// + /// + /// 示例: + /// DataSet ds = ExecuteDataset(connString, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// SqlParamters参数数组 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + + // 创建并打开数据库连接对象,操作完成释放对象. + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + // 调用指定数据库连接字符串重载方法. + return ExecuteDataset(connection, commandType, commandText, commandParameters); + } + } + + /// + /// 执行指定数据库连接字符串的命令,直接提供参数值,返回DataSet. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值. + /// 示例: + /// DataSet ds = ExecuteDataset(connString, "GetOrders", 24, 36); + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名 + /// 分配给存储过程输入参数的对象数组 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(string connectionString, string spName, params object[] parameterValues) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中检索存储过程参数 + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); + + // 给存储过程参数分配值 + AssignParameterValues(commandParameters, parameterValues); + + return ExecuteDataset(connectionString, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return ExecuteDataset(connectionString, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定数据库连接对象的命令,返回DataSet. + /// + /// + /// 示例: + /// DataSet ds = ExecuteDataset(conn, CommandType.StoredProcedure, "GetOrders"); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名或T-SQL语句 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText) + { + return ExecuteDataset(connection, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库连接对象的命令,指定存储过程参数,返回DataSet. + /// + /// + /// 示例: + /// DataSet ds = ExecuteDataset(conn, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名或T-SQL语句 + /// SqlParamter参数数组 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (connection == null) throw new ArgumentNullException("connection"); + + // 预处理 + SqlCommand cmd = new SqlCommand(); + bool mustCloseConnection = false; + PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection); + + // 创建SqlDataAdapter和DataSet. + using (SqlDataAdapter da = new SqlDataAdapter(cmd)) + { + DataSet ds = new DataSet(); + + // 填充DataSet. + da.Fill(ds); + + cmd.Parameters.Clear(); + + if (mustCloseConnection) + connection.Close(); + + return ds; + } + } + + /// + /// 执行指定数据库连接对象的命令,指定参数值,返回DataSet. + /// + /// + /// 此方法不提供访问存储过程输入参数和返回值. + /// 示例.: + /// DataSet ds = ExecuteDataset(conn, "GetOrders", 24, 36); + /// + /// 一个有效的数据库连接对象 + /// 存储过程名 + /// 分配给存储过程输入参数的对象数组 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(SqlConnection connection, string spName, params object[] parameterValues) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 比缓存中加载存储过程参数 + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 给存储过程参数分配值 + AssignParameterValues(commandParameters, parameterValues); + + return ExecuteDataset(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return ExecuteDataset(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定事务的命令,返回DataSet. + /// + /// + /// 示例: + /// DataSet ds = ExecuteDataset(trans, CommandType.StoredProcedure, "GetOrders"); + /// + /// 事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名或T-SQL语句 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(SqlTransaction transaction, CommandType commandType, string commandText) + { + return ExecuteDataset(transaction, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定事务的命令,指定参数,返回DataSet. + /// + /// + /// 示例: + /// DataSet ds = ExecuteDataset(trans, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名或T-SQL语句 + /// SqlParamter参数数组 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + + // 预处理 + SqlCommand cmd = new SqlCommand(); + bool mustCloseConnection = false; + PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection); + + // 创建 DataAdapter & DataSet + using (SqlDataAdapter da = new SqlDataAdapter(cmd)) + { + DataSet ds = new DataSet(); + da.Fill(ds); + cmd.Parameters.Clear(); + return ds; + } + } + + /// + /// 执行指定事务的命令,指定参数值,返回DataSet. + /// + /// + /// 此方法不提供访问存储过程输入参数和返回值. + /// 示例.: + /// DataSet ds = ExecuteDataset(trans, "GetOrders", 24, 36); + /// + /// 事务 + /// 存储过程名 + /// 分配给存储过程输入参数的对象数组 + /// 返回一个包含结果集的DataSet + public static DataSet ExecuteDataset(SqlTransaction transaction, string spName, params object[] parameterValues) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数 + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 给存储过程参数分配值 + AssignParameterValues(commandParameters, parameterValues); + + return ExecuteDataset(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return ExecuteDataset(transaction, CommandType.StoredProcedure, spName); + } + } + + #endregion ExecuteDataset数据集命令结束 + + #region ExecuteReader 数据阅读器 + + /// + /// 枚举,标识数据库连接是由SqlHelper提供还是由调用者提供 + /// + private enum SqlConnectionOwnership + { + /// 由SqlHelper提供连接 + Internal, + /// 由调用者提供连接 + External + } + + /// + /// 执行指定数据库连接对象的数据阅读器. + /// + /// + /// 如果是SqlHelper打开连接,当连接关闭DataReader也将关闭. + /// 如果是调用都打开连接,DataReader由调用都管理. + /// + /// 一个有效的数据库连接对象 + /// 一个有效的事务,或者为 'null' + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名或T-SQL语句 + /// SqlParameters参数数组,如果没有参数则为'null' + /// 标识数据库连接对象是由调用者提供还是由SqlHelper提供 + /// 返回包含结果集的SqlDataReader + private static SqlDataReader ExecuteReader(SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters, SqlConnectionOwnership connectionOwnership) + { + if (connection == null) throw new ArgumentNullException("connection"); + + bool mustCloseConnection = false; + // 创建命令 + SqlCommand cmd = new SqlCommand(); + try + { + PrepareCommand(cmd, connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection); + + // 创建数据阅读器 + SqlDataReader dataReader; + + if (connectionOwnership == SqlConnectionOwnership.External) + { + dataReader = cmd.ExecuteReader(); + } + else + { + dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); + } + + // 清除参数,以便再次使用.. + // HACK: There is a problem here, the output parameter values are fletched + // when the reader is closed, so if the parameters are detached from the command + // then the SqlReader can磘 set its values. + // When this happen, the parameters can磘 be used again in other command. + bool canClear = true; + foreach (SqlParameter commandParameter in cmd.Parameters) + { + if (commandParameter.Direction != ParameterDirection.Input) + canClear = false; + } + + if (canClear) + { + cmd.Parameters.Clear(); + } + + return dataReader; + } + catch + { + if (mustCloseConnection) + connection.Close(); + throw; + } + } + + /// + /// 执行指定数据库连接字符串的数据阅读器. + /// + /// + /// 示例: + /// SqlDataReader dr = ExecuteReader(connString, CommandType.StoredProcedure, "GetOrders"); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名或T-SQL语句 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText) + { + return ExecuteReader(connectionString, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库连接字符串的数据阅读器,指定参数. + /// + /// + /// 示例: + /// SqlDataReader dr = ExecuteReader(connString, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名或T-SQL语句 + /// SqlParamter参数数组(new SqlParameter("@prodid", 24)) + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + SqlConnection connection = null; + try + { + connection = new SqlConnection(connectionString); + connection.Open(); + + return ExecuteReader(connection, null, commandType, commandText, commandParameters, SqlConnectionOwnership.Internal); + } + catch + { + // If we fail to return the SqlDatReader, we need to close the connection ourselves + if (connection != null) connection.Close(); + throw; + } + + } + + /// + /// 执行指定数据库连接字符串的数据阅读器,指定参数值. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// 示例: + /// SqlDataReader dr = ExecuteReader(connString, "GetOrders", 24, 36); + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名 + /// 分配给存储过程输入参数的对象数组 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(string connectionString, string spName, params object[] parameterValues) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); + + AssignParameterValues(commandParameters, parameterValues); + + return ExecuteReader(connectionString, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return ExecuteReader(connectionString, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定数据库连接对象的数据阅读器. + /// + /// + /// 示例: + /// SqlDataReader dr = ExecuteReader(conn, CommandType.StoredProcedure, "GetOrders"); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名或T-SQL语句 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(SqlConnection connection, CommandType commandType, string commandText) + { + return ExecuteReader(connection, commandType, commandText, (SqlParameter[])null); + } + + /// + /// [调用者方式]执行指定数据库连接对象的数据阅读器,指定参数. + /// + /// + /// 示例: + /// SqlDataReader dr = ExecuteReader(conn, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 命令类型 (存储过程,命令文本或其它) + /// SqlParamter参数数组 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + return ExecuteReader(connection, (SqlTransaction)null, commandType, commandText, commandParameters, SqlConnectionOwnership.External); + } + + /// + /// [调用者方式]执行指定数据库连接对象的数据阅读器,指定参数值. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// 示例: + /// SqlDataReader dr = ExecuteReader(conn, "GetOrders", 24, 36); + /// + /// 一个有效的数据库连接对象 + /// T存储过程名 + /// 分配给存储过程输入参数的对象数组 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(SqlConnection connection, string spName, params object[] parameterValues) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + AssignParameterValues(commandParameters, parameterValues); + + return ExecuteReader(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return ExecuteReader(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// [调用者方式]执行指定数据库事务的数据阅读器,指定参数值. + /// + /// + /// 示例: + /// SqlDataReader dr = ExecuteReader(trans, CommandType.StoredProcedure, "GetOrders"); + /// + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(SqlTransaction transaction, CommandType commandType, string commandText) + { + return ExecuteReader(transaction, commandType, commandText, (SqlParameter[])null); + } + + /// + /// [调用者方式]执行指定数据库事务的数据阅读器,指定参数. + /// + /// + /// 示例: + /// SqlDataReader dr = ExecuteReader(trans, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 分配给命令的SqlParamter参数数组 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + + return ExecuteReader(transaction.Connection, transaction, commandType, commandText, commandParameters, SqlConnectionOwnership.External); + } + + /// + /// [调用者方式]执行指定数据库事务的数据阅读器,指定参数值. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// SqlDataReader dr = ExecuteReader(trans, "GetOrders", 24, 36); + /// + /// 一个有效的连接事务 + /// 存储过程名称 + /// 分配给存储过程输入参数的对象数组 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReader(SqlTransaction transaction, string spName, params object[] parameterValues) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + AssignParameterValues(commandParameters, parameterValues); + + return ExecuteReader(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + // 没有参数值 + return ExecuteReader(transaction, CommandType.StoredProcedure, spName); + } + } + + #endregion ExecuteReader数据阅读器 + + #region ExecuteScalar 返回结果集中的第一行第一列 + + /// + /// 执行指定数据库连接字符串的命令,返回结果集中的第一行第一列. + /// + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(connString, CommandType.StoredProcedure, "GetOrderCount"); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText) + { + // 执行参数为空的方法 + return ExecuteScalar(connectionString, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库连接字符串的命令,指定参数,返回结果集中的第一行第一列. + /// + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(connString, CommandType.StoredProcedure, "GetOrderCount", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 分配给命令的SqlParamter参数数组 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + // 创建并打开数据库连接对象,操作完成释放对象. + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + // 调用指定数据库连接字符串重载方法. + return ExecuteScalar(connection, commandType, commandText, commandParameters); + } + } + + /// + /// 执行指定数据库连接字符串的命令,指定参数值,返回结果集中的第一行第一列. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(connString, "GetOrderCount", 24, 36); + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名称 + /// 分配给存储过程输入参数的对象数组 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(string connectionString, string spName, params object[] parameterValues) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + // 调用重载方法 + return ExecuteScalar(connectionString, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + // 没有参数值 + return ExecuteScalar(connectionString, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定数据库连接对象的命令,返回结果集中的第一行第一列. + /// + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(conn, CommandType.StoredProcedure, "GetOrderCount"); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText) + { + // 执行参数为空的方法 + return ExecuteScalar(connection, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库连接对象的命令,指定参数,返回结果集中的第一行第一列. + /// + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(conn, CommandType.StoredProcedure, "GetOrderCount", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 分配给命令的SqlParamter参数数组 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (connection == null) throw new ArgumentNullException("connection"); + + // 创建SqlCommand命令,并进行预处理 + SqlCommand cmd = new SqlCommand(); + + bool mustCloseConnection = false; + PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection); + + // 执行SqlCommand命令,并返回结果. + object retval = cmd.ExecuteScalar(); + + // 清除参数,以便再次使用. + cmd.Parameters.Clear(); + + if (mustCloseConnection) + connection.Close(); + + return retval; + } + + /// + /// 执行指定数据库连接对象的命令,指定参数值,返回结果集中的第一行第一列. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(conn, "GetOrderCount", 24, 36); + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 + /// 分配给存储过程输入参数的对象数组 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(SqlConnection connection, string spName, params object[] parameterValues) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + // 调用重载方法 + return ExecuteScalar(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + // 没有参数值 + return ExecuteScalar(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定数据库事务的命令,返回结果集中的第一行第一列. + /// + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(trans, CommandType.StoredProcedure, "GetOrderCount"); + /// + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText) + { + // 执行参数为空的方法 + return ExecuteScalar(transaction, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库事务的命令,指定参数,返回结果集中的第一行第一列. + /// + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(trans, CommandType.StoredProcedure, "GetOrderCount", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 分配给命令的SqlParamter参数数组 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + + // 创建SqlCommand命令,并进行预处理 + SqlCommand cmd = new SqlCommand(); + bool mustCloseConnection = false; + PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection); + + // 执行SqlCommand命令,并返回结果. + object retval = cmd.ExecuteScalar(); + + // 清除参数,以便再次使用. + cmd.Parameters.Clear(); + return retval; + } + + /// + /// 执行指定数据库事务的命令,指定参数值,返回结果集中的第一行第一列. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// int orderCount = (int)ExecuteScalar(trans, "GetOrderCount", 24, 36); + /// + /// 一个有效的连接事务 + /// 存储过程名称 + /// 分配给存储过程输入参数的对象数组 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalar(SqlTransaction transaction, string spName, params object[] parameterValues) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // PPull the parameters for this stored procedure from the parameter cache () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + // 调用重载方法 + return ExecuteScalar(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + // 没有参数值 + return ExecuteScalar(transaction, CommandType.StoredProcedure, spName); + } + } + + #endregion ExecuteScalar + + #region ExecuteXmlReader XML阅读器 + /// + /// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回. + /// + /// + /// 示例: + /// XmlReader r = ExecuteXmlReader(conn, CommandType.StoredProcedure, "GetOrders"); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 using "FOR XML AUTO" + /// 返回XmlReader结果集对象. + public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText) + { + // 执行参数为空的方法 + return ExecuteXmlReader(connection, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数. + /// + /// + /// 示例: + /// XmlReader r = ExecuteXmlReader(conn, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 using "FOR XML AUTO" + /// 分配给命令的SqlParamter参数数组 + /// 返回XmlReader结果集对象. + public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (connection == null) throw new ArgumentNullException("connection"); + + bool mustCloseConnection = false; + // 创建SqlCommand命令,并进行预处理 + SqlCommand cmd = new SqlCommand(); + try + { + PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection); + + // 执行命令 + XmlReader retval = cmd.ExecuteXmlReader(); + + // 清除参数,以便再次使用. + cmd.Parameters.Clear(); + + return retval; + } + catch + { + if (mustCloseConnection) + connection.Close(); + throw; + } + } + + /// + /// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数值. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// XmlReader r = ExecuteXmlReader(conn, "GetOrders", 24, 36); + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 using "FOR XML AUTO" + /// 分配给存储过程输入参数的对象数组 + /// 返回XmlReader结果集对象. + public static XmlReader ExecuteXmlReader(SqlConnection connection, string spName, params object[] parameterValues) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + // 调用重载方法 + return ExecuteXmlReader(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + // 没有参数值 + return ExecuteXmlReader(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定数据库事务的SqlCommand命令,并产生一个XmlReader对象做为结果集返回. + /// + /// + /// 示例: + /// XmlReader r = ExecuteXmlReader(trans, CommandType.StoredProcedure, "GetOrders"); + /// + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 using "FOR XML AUTO" + /// 返回XmlReader结果集对象. + public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText) + { + // 执行参数为空的方法 + return ExecuteXmlReader(transaction, commandType, commandText, (SqlParameter[])null); + } + + /// + /// 执行指定数据库事务的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数. + /// + /// + /// 示例: + /// XmlReader r = ExecuteXmlReader(trans, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24)); + /// + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 using "FOR XML AUTO" + /// 分配给命令的SqlParamter参数数组 + /// 返回XmlReader结果集对象. + public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + + // 创建SqlCommand命令,并进行预处理 + SqlCommand cmd = new SqlCommand(); + bool mustCloseConnection = false; + PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection); + + // 执行命令 + XmlReader retval = cmd.ExecuteXmlReader(); + + // 清除参数,以便再次使用. + cmd.Parameters.Clear(); + return retval; + } + + /// + /// 执行指定数据库事务的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数值. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// XmlReader r = ExecuteXmlReader(trans, "GetOrders", 24, 36); + /// + /// 一个有效的连接事务 + /// 存储过程名称 + /// 分配给存储过程输入参数的对象数组 + /// 返回一个包含结果集的DataSet. + public static XmlReader ExecuteXmlReader(SqlTransaction transaction, string spName, params object[] parameterValues) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + // 调用重载方法 + return ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + // 没有参数值 + return ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName); + } + } + + #endregion ExecuteXmlReader 阅读器结束 + + #region FillDataset 填充数据集 + /// + /// 执行指定数据库连接字符串的命令,映射数据表并填充数据集. + /// + /// + /// 示例: + /// FillDataset(connString, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + public static void FillDataset(string connectionString, CommandType commandType, string commandText, DataSet dataSet, string[] tableNames) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (dataSet == null) throw new ArgumentNullException("dataSet"); + + // 创建并打开数据库连接对象,操作完成释放对象. + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + // 调用指定数据库连接字符串重载方法. + FillDataset(connection, commandType, commandText, dataSet, tableNames); + } + } + + /// + /// 执行指定数据库连接字符串的命令,映射数据表并填充数据集.指定命令参数. + /// + /// + /// 示例: + /// FillDataset(connString, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接字符串 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 分配给命令的SqlParamter参数数组 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + public static void FillDataset(string connectionString, CommandType commandType, + string commandText, DataSet dataSet, string[] tableNames, + params SqlParameter[] commandParameters) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (dataSet == null) throw new ArgumentNullException("dataSet"); + // 创建并打开数据库连接对象,操作完成释放对象. + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + // 调用指定数据库连接字符串重载方法. + FillDataset(connection, commandType, commandText, dataSet, tableNames, commandParameters); + } + } + + /// + /// 执行指定数据库连接字符串的命令,映射数据表并填充数据集,指定存储过程参数值. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// FillDataset(connString, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, 24); + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名称 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + /// 分配给存储过程输入参数的对象数组 + public static void FillDataset(string connectionString, string spName, + DataSet dataSet, string[] tableNames, + params object[] parameterValues) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (dataSet == null) throw new ArgumentNullException("dataSet"); + // 创建并打开数据库连接对象,操作完成释放对象. + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + // 调用指定数据库连接字符串重载方法. + FillDataset(connection, spName, dataSet, tableNames, parameterValues); + } + } + + /// + /// 执行指定数据库连接对象的命令,映射数据表并填充数据集. + /// + /// + /// 示例: + /// FillDataset(conn, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + public static void FillDataset(SqlConnection connection, CommandType commandType, + string commandText, DataSet dataSet, string[] tableNames) + { + FillDataset(connection, commandType, commandText, dataSet, tableNames, null); + } + + /// + /// 执行指定数据库连接对象的命令,映射数据表并填充数据集,指定参数. + /// + /// + /// 示例: + /// FillDataset(conn, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接对象 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + /// 分配给命令的SqlParamter参数数组 + public static void FillDataset(SqlConnection connection, CommandType commandType, + string commandText, DataSet dataSet, string[] tableNames, + params SqlParameter[] commandParameters) + { + FillDataset(connection, null, commandType, commandText, dataSet, tableNames, commandParameters); + } + + /// + /// 执行指定数据库连接对象的命令,映射数据表并填充数据集,指定存储过程参数值. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// FillDataset(conn, "GetOrders", ds, new string[] {"orders"}, 24, 36); + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + /// 分配给存储过程输入参数的对象数组 + public static void FillDataset(SqlConnection connection, string spName, + DataSet dataSet, string[] tableNames, + params object[] parameterValues) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (dataSet == null) throw new ArgumentNullException("dataSet"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + // 调用重载方法 + FillDataset(connection, CommandType.StoredProcedure, spName, dataSet, tableNames, commandParameters); + } + else + { + // 没有参数值 + FillDataset(connection, CommandType.StoredProcedure, spName, dataSet, tableNames); + } + } + + /// + /// 执行指定数据库事务的命令,映射数据表并填充数据集. + /// + /// + /// 示例: + /// FillDataset(trans, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}); + /// + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + public static void FillDataset(SqlTransaction transaction, CommandType commandType, + string commandText, + DataSet dataSet, string[] tableNames) + { + FillDataset(transaction, commandType, commandText, dataSet, tableNames, null); + } + + /// + /// 执行指定数据库事务的命令,映射数据表并填充数据集,指定参数. + /// + /// + /// 示例: + /// FillDataset(trans, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24)); + /// + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + /// 分配给命令的SqlParamter参数数组 + public static void FillDataset(SqlTransaction transaction, CommandType commandType, + string commandText, DataSet dataSet, string[] tableNames, + params SqlParameter[] commandParameters) + { + FillDataset(transaction.Connection, transaction, commandType, commandText, dataSet, tableNames, commandParameters); + } + + /// + /// 执行指定数据库事务的命令,映射数据表并填充数据集,指定存储过程参数值. + /// + /// + /// 此方法不提供访问存储过程输出参数和返回值参数. + /// + /// 示例: + /// FillDataset(trans, "GetOrders", ds, new string[]{"orders"}, 24, 36); + /// + /// 一个有效的连接事务 + /// 存储过程名称 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + /// 分配给存储过程输入参数的对象数组 + public static void FillDataset(SqlTransaction transaction, string spName, + DataSet dataSet, string[] tableNames, + params object[] parameterValues) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (dataSet == null) throw new ArgumentNullException("dataSet"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果有参数值 + if ((parameterValues != null) && (parameterValues.Length > 0)) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 给存储过程参数赋值 + AssignParameterValues(commandParameters, parameterValues); + + // 调用重载方法 + FillDataset(transaction, CommandType.StoredProcedure, spName, dataSet, tableNames, commandParameters); + } + else + { + // 没有参数值 + FillDataset(transaction, CommandType.StoredProcedure, spName, dataSet, tableNames); + } + } + + /// + /// [私有方法][内部调用]执行指定数据库连接对象/事务的命令,映射数据表并填充数据集,DataSet/TableNames/SqlParameters. + /// + /// + /// 示例: + /// FillDataset(conn, trans, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24)); + /// + /// 一个有效的数据库连接对象 + /// 一个有效的连接事务 + /// 命令类型 (存储过程,命令文本或其它) + /// 存储过程名称或T-SQL语句 + /// 要填充结果集的DataSet实例 + /// 表映射的数据表数组 + /// 用户定义的表名 (可有是实际的表名.) + /// + /// 分配给命令的SqlParamter参数数组 + private static void FillDataset(SqlConnection connection, SqlTransaction transaction, CommandType commandType, + string commandText, DataSet dataSet, string[] tableNames, + params SqlParameter[] commandParameters) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (dataSet == null) throw new ArgumentNullException("dataSet"); + + // 创建SqlCommand命令,并进行预处理 + SqlCommand command = new SqlCommand(); + bool mustCloseConnection = false; + PrepareCommand(command, connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection); + + // 执行命令 + using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command)) + { + + // 追加表映射 + if (tableNames != null && tableNames.Length > 0) + { + string tableName = "Table"; + for (int index = 0; index < tableNames.Length; index++) + { + if (tableNames[index] == null || tableNames[index].Length == 0) throw new ArgumentException("The tableNames parameter must contain a list of tables, a value was provided as null or empty string.", "tableNames"); + dataAdapter.TableMappings.Add(tableName, tableNames[index]); + tableName += (index + 1).ToString(); + } + } + + // 填充数据集使用默认表名称 + dataAdapter.Fill(dataSet); + + // 清除参数,以便再次使用. + command.Parameters.Clear(); + } + + if (mustCloseConnection) + connection.Close(); + } + #endregion + + #region UpdateDataset 更新数据集 + /// + /// 执行数据集更新到数据库,指定inserted, updated, or deleted命令. + /// + /// + /// 示例: + /// UpdateDataset(conn, insertCommand, deleteCommand, updateCommand, dataSet, "Order"); + /// + /// [追加记录]一个有效的T-SQL语句或存储过程 + /// [删除记录]一个有效的T-SQL语句或存储过程 + /// [更新记录]一个有效的T-SQL语句或存储过程 + /// 要更新到数据库的DataSet + /// 要更新到数据库的DataTable + public static void UpdateDataset(SqlCommand insertCommand, SqlCommand deleteCommand, SqlCommand updateCommand, DataSet dataSet, string tableName) + { + if (insertCommand == null) throw new ArgumentNullException("insertCommand"); + if (deleteCommand == null) throw new ArgumentNullException("deleteCommand"); + if (updateCommand == null) throw new ArgumentNullException("updateCommand"); + if (tableName == null || tableName.Length == 0) throw new ArgumentNullException("tableName"); + + // 创建SqlDataAdapter,当操作完成后释放. + using (SqlDataAdapter dataAdapter = new SqlDataAdapter()) + { + // 设置数据适配器命令 + dataAdapter.UpdateCommand = updateCommand; + dataAdapter.InsertCommand = insertCommand; + dataAdapter.DeleteCommand = deleteCommand; + + // 更新数据集改变到数据库 + dataAdapter.Update(dataSet, tableName); + + // 提交所有改变到数据集. + dataSet.AcceptChanges(); + } + } + #endregion + + #region CreateCommand 创建一条SqlCommand命令 + /// + /// 创建SqlCommand命令,指定数据库连接对象,存储过程名和参数. + /// + /// + /// 示例: + /// SqlCommand command = CreateCommand(conn, "AddCustomer", "CustomerID", "CustomerName"); + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 + /// 源表的列名称数组 + /// 返回SqlCommand命令 + public static SqlCommand CreateCommand(SqlConnection connection, string spName, params string[] sourceColumns) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 创建命令 + SqlCommand cmd = new SqlCommand(spName, connection); + cmd.CommandType = CommandType.StoredProcedure; + + // 如果有参数值 + if ((sourceColumns != null) && (sourceColumns.Length > 0)) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 将源表的列到映射到DataSet命令中. + for (int index = 0; index < sourceColumns.Length; index++) + commandParameters[index].SourceColumn = sourceColumns[index]; + + // Attach the discovered parameters to the SqlCommand object + AttachParameters(cmd, commandParameters); + } + + return cmd; + } + #endregion + + #region ExecuteNonQueryTypedParams 类型化参数(DataRow) + /// + /// 执行指定连接数据库连接字符串的存储过程,使用DataRow做为参数值,返回受影响的行数. + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回影响的行数 + public static int ExecuteNonQueryTypedParams(String connectionString, String spName, DataRow dataRow) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回受影响的行数. + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回影响的行数 + public static int ExecuteNonQueryTypedParams(SqlConnection connection, String spName, DataRow dataRow) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteNonQuery(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteNonQuery(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定连接数据库事物的存储过程,使用DataRow做为参数值,返回受影响的行数. + /// + /// 一个有效的连接事务 object + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回影响的行数 + public static int ExecuteNonQueryTypedParams(SqlTransaction transaction, String spName, DataRow dataRow) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // Sf the row has values, the store procedure parameters must be initialized + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName); + } + } + #endregion + + #region ExecuteDatasetTypedParams 类型化参数(DataRow) + /// + /// 执行指定连接数据库连接字符串的存储过程,使用DataRow做为参数值,返回DataSet. + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回一个包含结果集的DataSet. + public static DataSet ExecuteDatasetTypedParams(string connectionString, String spName, DataRow dataRow) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + //如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteDataset(connectionString, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteDataset(connectionString, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回DataSet. + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回一个包含结果集的DataSet. + /// + public static DataSet ExecuteDatasetTypedParams(SqlConnection connection, String spName, DataRow dataRow) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteDataset(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteDataset(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定连接数据库事务的存储过程,使用DataRow做为参数值,返回DataSet. + /// + /// 一个有效的连接事务 object + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回一个包含结果集的DataSet. + public static DataSet ExecuteDatasetTypedParams(SqlTransaction transaction, String spName, DataRow dataRow) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteDataset(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteDataset(transaction, CommandType.StoredProcedure, spName); + } + } + + #endregion + + #region ExecuteReaderTypedParams 类型化参数(DataRow) + /// + /// 执行指定连接数据库连接字符串的存储过程,使用DataRow做为参数值,返回DataReader. + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReaderTypedParams(String connectionString, String spName, DataRow dataRow) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteReader(connectionString, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteReader(connectionString, CommandType.StoredProcedure, spName); + } + } + + + /// + /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回DataReader. + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReaderTypedParams(SqlConnection connection, String spName, DataRow dataRow) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteReader(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteReader(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定连接数据库事物的存储过程,使用DataRow做为参数值,返回DataReader. + /// + /// 一个有效的连接事务 object + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回包含结果集的SqlDataReader + public static SqlDataReader ExecuteReaderTypedParams(SqlTransaction transaction, String spName, DataRow dataRow) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteReader(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteReader(transaction, CommandType.StoredProcedure, spName); + } + } + #endregion + + #region ExecuteScalarTypedParams 类型化参数(DataRow) + /// + /// 执行指定连接数据库连接字符串的存储过程,使用DataRow做为参数值,返回结果集中的第一行第一列. + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalarTypedParams(String connectionString, String spName, DataRow dataRow) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteScalar(connectionString, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteScalar(connectionString, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回结果集中的第一行第一列. + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalarTypedParams(SqlConnection connection, String spName, DataRow dataRow) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteScalar(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteScalar(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定连接数据库事务的存储过程,使用DataRow做为参数值,返回结果集中的第一行第一列. + /// + /// 一个有效的连接事务 object + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回结果集中的第一行第一列 + public static object ExecuteScalarTypedParams(SqlTransaction transaction, String spName, DataRow dataRow) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteScalar(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteScalar(transaction, CommandType.StoredProcedure, spName); + } + } + #endregion + + #region ExecuteXmlReaderTypedParams 类型化参数(DataRow) + /// + /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回XmlReader类型的结果集. + /// + /// 一个有效的数据库连接对象 + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回XmlReader结果集对象. + public static XmlReader ExecuteXmlReaderTypedParams(SqlConnection connection, String spName, DataRow dataRow) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteXmlReader(connection, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteXmlReader(connection, CommandType.StoredProcedure, spName); + } + } + + /// + /// 执行指定连接数据库事务的存储过程,使用DataRow做为参数值,返回XmlReader类型的结果集. + /// + /// 一个有效的连接事务 object + /// 存储过程名称 + /// 使用DataRow作为参数值 + /// 返回XmlReader结果集对象. + public static XmlReader ExecuteXmlReaderTypedParams(SqlTransaction transaction, String spName, DataRow dataRow) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + // 如果row有值,存储过程必须初始化. + if (dataRow != null && dataRow.ItemArray.Length > 0) + { + // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () + SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName); + + // 分配参数值 + AssignParameterValues(commandParameters, dataRow); + + return SqlHelper.ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName, commandParameters); + } + else + { + return SqlHelper.ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName); + } + } + #endregion + + public static SqlTransaction BeginTransaction(string con) + { + SqlConnection connection = new SqlConnection(con); + connection.Open(); + SqlTransaction tran = connection.BeginTransaction(); + return tran; + } + + public static string SerialNo(string type) + { + try + { + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@sCode", SqlDbType.VarChar); + param[0].Value = type; + return ExecuteDataset(SqlHelper.GetConnSting(), CommandType.StoredProcedure, "GetSerialNo", param).Tables[0].Rows[0][0].ToString(); + } + catch (Exception) + { + return ""; + } + + } + + + public static void InsertBatch(string connectionString, DataTable dt) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString); + bulkCopy.DestinationTableName = "tmp_barCode"; + bulkCopy.BatchSize = dt.Rows.Count; + + if (dt != null && dt.Rows.Count != 0) + { + bulkCopy.WriteToServer(dt); + } + } + } + } + + /// + /// SqlHelperParameterCache提供缓存存储过程参数,并能够在运行时从存储过程中探索参数. + /// + public sealed class SqlHelperParameterCache + { + #region 私有方法,字段,构造函数 + // 私有构造函数,妨止类被实例化. + private SqlHelperParameterCache() { } + + // 这个方法要注意 + private static Hashtable paramCache = Hashtable.Synchronized(new Hashtable()); + + /// + /// 探索运行时的存储过程,返回SqlParameter参数数组. + /// 初始化参数值为 DBNull.Value. + /// + /// 一个有效的数据库连接 + /// 存储过程名称 + /// 是否包含返回值参数 + /// 返回SqlParameter参数数组 + private static SqlParameter[] DiscoverSpParameterSet(SqlConnection connection, string spName, bool includeReturnValueParameter) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + SqlCommand cmd = new SqlCommand(spName, connection); + cmd.CommandType = CommandType.StoredProcedure; + + connection.Open(); + // 检索cmd指定的存储过程的参数信息,并填充到cmd的Parameters参数集中. + SqlCommandBuilder.DeriveParameters(cmd); + connection.Close(); + // 如果不包含返回值参数,将参数集中的每一个参数删除. + if (!includeReturnValueParameter) + { + cmd.Parameters.RemoveAt(0); + } + + // 创建参数数组 + SqlParameter[] discoveredParameters = new SqlParameter[cmd.Parameters.Count]; + // 将cmd的Parameters参数集复制到discoveredParameters数组. + cmd.Parameters.CopyTo(discoveredParameters, 0); + + // 初始化参数值为 DBNull.Value. + foreach (SqlParameter discoveredParameter in discoveredParameters) + { + discoveredParameter.Value = DBNull.Value; + } + return discoveredParameters; + } + + /// + /// SqlParameter参数数组的深层拷贝. + /// + /// 原始参数数组 + /// 返回一个同样的参数数组 + private static SqlParameter[] CloneParameters(SqlParameter[] originalParameters) + { + SqlParameter[] clonedParameters = new SqlParameter[originalParameters.Length]; + + for (int i = 0, j = originalParameters.Length; i < j; i++) + { + clonedParameters[i] = (SqlParameter)((ICloneable)originalParameters[i]).Clone(); + } + + return clonedParameters; + } + + #endregion 私有方法,字段,构造函数结束 + + #region 缓存方法 + + /// + /// 追加参数数组到缓存. + /// + /// 一个有效的数据库连接字符串 + /// 存储过程名或SQL语句 + /// 要缓存的参数数组 + public static void CacheParameterSet(string connectionString, string commandText, params SqlParameter[] commandParameters) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); + + string hashKey = connectionString + ":" + commandText; + + paramCache[hashKey] = commandParameters; + } + + /// + /// 从缓存中获取参数数组. + /// + /// 一个有效的数据库连接字符 + /// 存储过程名或SQL语句 + /// 参数数组 + public static SqlParameter[] GetCachedParameterSet(string connectionString, string commandText) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText"); + + string hashKey = connectionString + ":" + commandText; + + SqlParameter[] cachedParameters = paramCache[hashKey] as SqlParameter[]; + if (cachedParameters == null) + { + return null; + } + else + { + return CloneParameters(cachedParameters); + } + } + + #endregion 缓存方法结束 + + #region 检索指定的存储过程的参数集 + + /// + /// 返回指定的存储过程的参数集 + /// + /// + /// 这个方法将查询数据库,并将信息存储到缓存. + /// + /// 一个有效的数据库连接字符 + /// 存储过程名 + /// 返回SqlParameter参数数组 + public static SqlParameter[] GetSpParameterSet(string connectionString, string spName) + { + return GetSpParameterSet(connectionString, spName, false); + } + + /// + /// 返回指定的存储过程的参数集 + /// + /// + /// 这个方法将查询数据库,并将信息存储到缓存. + /// + /// 一个有效的数据库连接字符. + /// 存储过程名 + /// 是否包含返回值参数 + /// 返回SqlParameter参数数组 + public static SqlParameter[] GetSpParameterSet(string connectionString, string spName, bool includeReturnValueParameter) + { + if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + return GetSpParameterSetInternal(connection, spName, includeReturnValueParameter); + } + } + + /// + /// [内部]返回指定的存储过程的参数集(使用连接对象). + /// + /// + /// 这个方法将查询数据库,并将信息存储到缓存. + /// + /// 一个有效的数据库连接字符 + /// 存储过程名 + /// 返回SqlParameter参数数组 + internal static SqlParameter[] GetSpParameterSet(SqlConnection connection, string spName) + { + return GetSpParameterSet(connection, spName, false); + } + + /// + /// [内部]返回指定的存储过程的参数集(使用连接对象) + /// + /// + /// 这个方法将查询数据库,并将信息存储到缓存. + /// + /// 一个有效的数据库连接对象 + /// 存储过程名 + /// + /// 是否包含返回值参数 + /// + /// 返回SqlParameter参数数组 + internal static SqlParameter[] GetSpParameterSet(SqlConnection connection, string spName, bool includeReturnValueParameter) + { + if (connection == null) throw new ArgumentNullException("connection"); + using (SqlConnection clonedConnection = (SqlConnection)((ICloneable)connection).Clone()) + { + return GetSpParameterSetInternal(clonedConnection, spName, includeReturnValueParameter); + } + } + + /// + /// [私有]返回指定的存储过程的参数集(使用连接对象) + /// + /// 一个有效的数据库连接对象 + /// 存储过程名 + /// 是否包含返回值参数 + /// 返回SqlParameter参数数组 + private static SqlParameter[] GetSpParameterSetInternal(SqlConnection connection, string spName, bool includeReturnValueParameter) + { + if (connection == null) throw new ArgumentNullException("connection"); + if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); + + string hashKey = connection.ConnectionString + ":" + spName + (includeReturnValueParameter ? ":include ReturnValue Parameter" : ""); + + SqlParameter[] cachedParameters; + + cachedParameters = paramCache[hashKey] as SqlParameter[]; + if (cachedParameters == null) + { + SqlParameter[] spParameters = DiscoverSpParameterSet(connection, spName, includeReturnValueParameter); + paramCache[hashKey] = spParameters; + cachedParameters = spParameters; + } + + return CloneParameters(cachedParameters); + } + + #endregion 参数集检索结束 + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/User/Sys_ButtonsData.cs b/BBMPTMes/MESClassLibrary/DAL/User/Sys_ButtonsData.cs new file mode 100644 index 0000000..a6003a9 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/User/Sys_ButtonsData.cs @@ -0,0 +1,75 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.DAL.User +{ + /// + /// 用户按钮 + /// lx 2017-06-28 + /// + public class Sys_ButtonsData + { + /// + /// 获取用户有权限的按钮 + /// + /// + /// + /// + public DataTable GetUserButtons(string menuID, string userID) + { + try + { + DataTable dt = new DataTable(); + + string sql = @" + SELECT [BtnID] + ,[BtnName] + ,[ItemPic] + ,[PowerID] + ,[MenuID] + ,[MenuName] + ,[IsEnabled] + ,[BtnCode] + FROM [T_Sys_Buttons] + where PowerID in ( + select e.PowerID + from T_Sys_Users a + join T_Sys_UserRole b + on a.UserID = b.UserID + join T_Sys_Role c + on b.RoleID = c.RoleID + join T_Sys_RoleLinkPower d + on c.RoleID = d.RoleID + join T_Sys_Power e + on d.PowerID = e.PowerID + where a.UserID = @UserID + ) + and MenuID = @MenuID + and IsEnabled = '1' + "; + SqlParameter[] param = new SqlParameter[2]; + param[0] = new SqlParameter("@UserID", SqlDbType.UniqueIdentifier); + param[0].Value = new Guid(userID); + + param[1] = new SqlParameter("@MenuID", SqlDbType.UniqueIdentifier); + param[1].Value = new Guid(menuID); + + dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + return dt; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return new DataTable(); + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/User/Sys_NavMenuData.cs b/BBMPTMes/MESClassLibrary/DAL/User/Sys_NavMenuData.cs new file mode 100644 index 0000000..1d81b34 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/User/Sys_NavMenuData.cs @@ -0,0 +1,107 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.DAL.User +{ + public class Sys_NavMenuData + { + /// + /// 根据userID查询用户菜单 + /// + /// + /// + public DataTable BuilderLeftMenu(string userID) + { + try + { + List list = new List(); + DataTable dt = new DataTable(); +/* + string sql = @" + SELECT [MenuID] + ,[MenuName] + ,[URLStr] + ,[ItemPic] + ,[PowerID] + ,[ParentMenuID] + ,[IsEnabled] + ,[OrderNum] + FROM [T_Sys_NavMenu] + where PowerID in ( + select e.PowerID + from T_Sys_Users a + join T_Sys_UserRole b + on a.UserID = b.UserID + join T_Sys_Role c + on b.RoleID = c.RoleID + join T_Sys_RoleLinkPower d + on c.RoleID = d.RoleID + join T_Sys_Power e + on d.PowerID = e.PowerID + where a.UserID = @userID + ) + and IsEnabled = '1' + order by OrderNum + "; +*/ + string sql = @" +IF EXISTS(SELECT * from T_Sys_Users where UserID=@userID and UserName='admin') +BEGIN + SELECT m.[MenuID], + m.[MenuName], + m.[URLStr], + m.[ItemPic], + m.[PowerID], + m.[ParentMenuID], + m.[IsEnabled], + m.[OrderNum] + FROM [T_Sys_NavMenu] m +END +ELSE +BEGIN +SELECT m.[MenuID], + m.[MenuName], + m.[URLStr], + m.[ItemPic], + m.[PowerID], + m.[ParentMenuID], + m.[IsEnabled], + m.[OrderNum] + FROM [T_Sys_NavMenu] m + WHERE m.ParentMenuID IS NULL +UNION ALL +SELECT m.[MenuID], + m.[MenuName], + m.[URLStr], + m.[ItemPic], + m.[PowerID], + m.[ParentMenuID], + m.[IsEnabled], + m.[OrderNum] + FROM [T_Sys_NavMenu] m + INNER JOIN T_Sys_Users_NavMenu um ON m.MenuID = um.MenuID + WHERE um.UserID = @userID +END"; + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@userID", SqlDbType.UniqueIdentifier); + param[0].Value = new Guid(userID); + + dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + return dt; + } + catch(Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return new DataTable(); + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/User/UserDAL.cs b/BBMPTMes/MESClassLibrary/DAL/User/UserDAL.cs new file mode 100644 index 0000000..6958345 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/User/UserDAL.cs @@ -0,0 +1,421 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.DAL.User +{ + public class UserDAL : BasicDAL + { + public static string TableName = "tb_User"; + public string GetTableName() + { + return TableName; + } + /// + /// 获取全部用户信息 + /// + /// + public DataTable Search_UserInfo() + { + try + { + string sql = @"select * from T_Sys_Users where IsEnabled='1'"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + /// + /// 根据登录名密码查询用户信息 + /// + /// + /// + /// + public DataTable Search_UserInfoByUP(string username, string password) + { + try + { + string sql = @"SELECT [UserID] + ,[UserName] + ,[Password] + ,[IsEnabled] + ,[RealName] + ,[Sex] + ,[Tel] + ,[LastLoginTime] + ,[LastLoginIP] + ,[DepartmentID] + ,[OpName] + ,[OpTime] + FROM [T_Sys_Users] + where UserName = @Username and Password = @Password and IsEnabled = '1'"; + + SqlParameter[] param = new SqlParameter[2]; + param[0] = new SqlParameter("@Username", SqlDbType.VarChar); + param[0].Value = username; + + param[1] = new SqlParameter("@Password", SqlDbType.VarChar); + param[1].Value = password; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据id查询用户信息 + /// + /// + /// + public DataTable Search_UserInfoByID(string id) + { + try + { + string sql = @"select c.*,r.RoleName from tb_User c + left join tb_Role r on c.RoleID = r.id where c.IsUseing=1 and c.ID=@ID"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = id; + + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + /// + /// 根据id查询用户信息 + /// + /// + /// + public DataTable Search_UserInfoByID_v2(string id) + { + try + { + string sql = @"select * from T_Sys_Users c where c.IsEnabled=1 and c.UserID=@UserID"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@UserID", SqlDbType.VarChar); + param[0].Value = id; + + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + /// + /// 根据登录账号查询用户信息 + /// + /// 登录账号 + /// + public DataTable Search_UserInfoByUserName(string username) + { + try + { + string sql = @"SELECT [UserID] + ,[UserName] + ,[Password] + ,[IsEnabled] + ,[RealName] + ,[Sex] + ,[Tel] + ,[LastLoginTime] + ,[LastLoginIP] + ,[DepartmentID] + ,[OpName] + ,[OpTime] + FROM [T_Sys_Users] + where UserName = @Username and IsEnabled = '1'"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@Username", SqlDbType.VarChar); + param[0].Value = username; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 根据角色ID查询该角色的用户信息 + /// + /// 角色主键ID + /// + public DataTable Search_UserInfoByRoleID(string roleID) + { + try + { + string sql = @"select c.*,r.RoleName,r.RoleJurisdiction from tb_User c + left join tb_Role r on c.RoleID = r.id where c.IsUseing=1 and c.RoleID=@RoleID"; + + SqlParameter[] param = new SqlParameter[1]; + param[0] = new SqlParameter("@RoleID", SqlDbType.VarChar); + param[0].Value = roleID; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + + /// + /// 添加用户信息 + /// + /// 用户模型 + /// + public bool Add_UserInfo(UserModel mod) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO tb_User (ID,Username,Password,TrueName,FaceURL,RoleID,CreateUserID"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@Username,"; + sql += "@Password,"; + sql += "@TrueName,"; + sql += "@FaceURL,"; + sql += "@RoleID,"; + sql += "@CreateUserID)"; + + #region 添加参数 + param = new SqlParameter[7]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = mod.ID; + + param[1] = new SqlParameter("@Username", SqlDbType.VarChar); + param[1].Value = mod.Username; + + param[2] = new SqlParameter("@Password", SqlDbType.VarChar); + param[2].Value = mod.Password; + + param[3] = new SqlParameter("@TrueName", SqlDbType.VarChar); + param[3].Value = mod.TrueName; + + param[4] = new SqlParameter("@FaceURL", SqlDbType.VarChar); + param[4].Value = mod.FaceURL; + + param[5] = new SqlParameter("@RoleID", SqlDbType.VarChar); + param[5].Value = mod.RoleID; + + param[6] = new SqlParameter("@CreateUserID", SqlDbType.VarChar); + param[6].Value = mod.CreateUserID; + + + + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 更新用户信息 + /// + /// 用户模型对象 + /// + public bool Update_UserInfo(UserModel md) + { + try + { + string sql = @"update tb_User set + Username = @Username, + Password = @Password, + TrueName = @TrueName, + FaceURL = @FaceURL, + RoleID = @RoleID, + UpdateUserID = @UpdateUserID, + UpdateTime = @UpdateTime + where ID=@ID"; + + SqlParameter[] param = new SqlParameter[8]; + param[0] = new SqlParameter("@Username", SqlDbType.VarChar); + param[0].Value = md.Username; + + param[1] = new SqlParameter("@Password", SqlDbType.VarChar); + param[1].Value = md.Password; + + param[2] = new SqlParameter("@TrueName", SqlDbType.VarChar); + param[2].Value = md.TrueName; + + param[3] = new SqlParameter("@FaceURL", SqlDbType.VarChar); + param[3].Value = md.FaceURL; + + param[4] = new SqlParameter("@RoleID", SqlDbType.VarChar); + param[4].Value = md.RoleID; + + param[5] = new SqlParameter("@UpdateUserID", SqlDbType.VarChar); + param[5].Value = md.UpdateUserID; + + param[6] = new SqlParameter("@UpdateTime", SqlDbType.DateTime); + param[6].Value = DateTime.Now; + + param[7] = new SqlParameter("@ID", SqlDbType.VarChar); + param[7].Value = md.ID; + + if (SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param) > 0) + { + return true; + } + return false; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + /// + /// 查询用户登录日志 + /// + /// + public DataTable Search_UserLoginInfo() + { + try + { + string sql = @"select l.*,u.TrueName,r.RoleName from tb_UserLoginLog l + left join tb_User u on l.UserID = u.ID + left join tb_Role r on u.RoleID = r.ID order by l.LoginTime desc"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + + } + /// + /// 添加用户登录日志 + /// + /// 用户主键ID + /// + public bool Add_UserLoginInfo(string userid) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO tb_UserLoginLog (ID,UserID"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@UserID)"; + + + #region 添加参数 + param = new SqlParameter[2]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = Guid.NewGuid().ToString(); + + param[1] = new SqlParameter("@UserID", SqlDbType.VarChar); + param[1].Value = userid; + + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + + public bool Update_Password(string userid,string oldpassword,string newpassword) + { + try + { + string sql = @"update T_Sys_Users set + Password = @New_Password + where UserID=@UserID and Password=@Old_Password"; + + SqlParameter[] param = new SqlParameter[3]; + param[0] = new SqlParameter("@New_Password", SqlDbType.VarChar); + param[0].Value = newpassword; + + param[1] = new SqlParameter("@UserID", SqlDbType.VarChar); + param[1].Value = userid; + + param[2] = new SqlParameter("@Old_Password", SqlDbType.VarChar); + param[2].Value = oldpassword; + + + if (SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param) > 0) + { + return true; + } + return false; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + + } + + + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/InspectResultDAL.cs b/BBMPTMes/MESClassLibrary/DAL/painting/InspectResultDAL.cs new file mode 100644 index 0000000..1406973 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/InspectResultDAL.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.Model; +using MESClassLibrary.BLL.BasicInfo; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.painting +{ + public class InspectResultDAL + { + public static string TableName = "tb_InspectResult"; + + public bool AddInfo(InspectResultModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " ([ID] ,[barcode] ,[side],[stationNo],[workClass],[inspectResult],[productInfo],[productOption] ,[InspectTimes],[createTime]"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@barcode,"; + sql += "@side,"; + sql += "@stationNo,"; + sql += "@workClass,"; + sql += "@inspectResult,"; + sql += "@productInfo,"; + sql += "@productOption,"; + sql += "@InspectTimes,"; + sql += "@createTime)"; + + #region 添加参数 + param = new SqlParameter[10]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@barcode", SqlDbType.VarChar); + param[1].Value = md.barcode; + + param[2] = new SqlParameter("@side", SqlDbType.VarChar); + param[2].Value = md.side; + + param[3] = new SqlParameter("@stationNo", SqlDbType.VarChar); + param[3].Value = md.stationNo; + + param[4] = new SqlParameter("@workClass", SqlDbType.VarChar); + param[4].Value = md.workClass; + + param[5] = new SqlParameter("@inspectResult", SqlDbType.VarChar); + param[5].Value = md.inspectResult; + + param[6] = new SqlParameter("@productInfo", SqlDbType.VarChar); + param[6].Value = md.productInfo; + + param[7] = new SqlParameter("@productOption", SqlDbType.VarChar); + param[7].Value = md.productOption; + + param[8] = new SqlParameter("@InspectTimes", SqlDbType.VarChar); + param[8].Value = md.InspectTimes; + + param[9] = new SqlParameter("@createTime", SqlDbType.DateTime); + param[9].Value = md.createTime; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public DataTable SearchInfoByBarcode(string barcode) + { + try + { + string sql = @"SELECT top 1 [barcode] + ,[position] + ,[stationNo] + ,[inspectResult] + ,[productInfo] + ,[createTime] + ,[InspectTimes] + FROM [BBMPT].[dbo].[tb_InspectResult] + where barcode='" + barcode + @"' + order by createTime desc"; + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return null; + } + } + + public string OneBarCode(string barcode) + { + string res = barcode; + try + { + string sql = @" + SELECT TOP 1 OneBarCode FROM tb_BarCode WHERE BarCode = '" + barcode + @"' + "; + object aa = SqlHelper.ExecuteScalar(SqlHelper.GetConnSting(), CommandType.Text, sql, null); + if (aa != null) + { + res = aa.ToString(); + } + else + { + string sql2 = @" SELECT TOP 1 OneBarCode FROM [10.60.101.60].[BBMPT1].[dbo].[v_Code] where BarCode = '" + barcode + @"' "; + object bb = SqlHelper.ExecuteScalar(SqlHelper.GetConnSting(), CommandType.Text, sql2, null); + if (bb != null) + { + res = bb.ToString(); + } + } + return res; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return res; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/NotStockBarCodeDal.cs b/BBMPTMes/MESClassLibrary/DAL/painting/NotStockBarCodeDal.cs new file mode 100644 index 0000000..4adb5c8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/NotStockBarCodeDal.cs @@ -0,0 +1,43 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.Painting +{ + public class NotStockBarCodeDal + { + public DataTable NotStockInBarCode(string time1, string time2) + { + DataTable res = null; + try + { + string sql = @"if OBJECT_ID(N'tempdb..#a',N'U') is not null + DROP TABLE #a + CREATE TABLE #a(barcode nvarchar(50)) + INSERT INTO #a + ( barcode ) + SELECT DISTINCT barcode FROM dbo.tb_InspectResult + WHERE createTime BETWEEN '" + time1 + @"' AND '" + time2 + @"' + AND inspectResult ='[合格]' + --质检合格的所有条码 + --SELECT * FROM #a + --入库的条码 + --SELECT barcode FROM #a WHERE barcode IN (SELECT barcode FROM dbo.tb_StockIn) + --未入库条码 + SELECT #a.barcode FROM #a LEFT OUTER JOIN dbo.tb_StockIn s ON #a.barcode=s.barcode where s.ID is null"; + res = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/NotUpBarCodeDal.cs b/BBMPTMes/MESClassLibrary/DAL/painting/NotUpBarCodeDal.cs new file mode 100644 index 0000000..4816715 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/NotUpBarCodeDal.cs @@ -0,0 +1,34 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.DAL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.BLL.Painting +{ + public class NotUpBarCodeDal + { + public DataTable NotUpBarCode() + { + DataTable res = null; + + try + { + string sql = @"SELECT [barCode] + FROM [BBMPT].[dbo].[tmp_barCode] a + WHERE a.barCode NOT in (SELECT DISTINCT barcode FROM dbo.tb_InspectResult v )"; + + res= SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/PaintBarCodeDAL.cs b/BBMPTMes/MESClassLibrary/DAL/painting/PaintBarCodeDAL.cs new file mode 100644 index 0000000..18ca767 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/PaintBarCodeDAL.cs @@ -0,0 +1,189 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; + +namespace MESClassLibrary.DAL.painting +{ + public class PaintBarCodeDAL + { + public static string TableName = "tb_PaintBarCode"; + + public DataTable SearchInfoAll(string banci,string productdate) + { + try + { + string sql = @"SELECT dbo.tb_PaintBarCode.OneBarCode, dbo.tb_Product.ProductName, dbo.tb_PaintBarCode.ColorDes, + dbo.tb_PaintBarCode.Side, dbo.tb_PaintBarCode.workClass + FROM dbo.tb_PaintBarCode LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_PaintBarCode.ProductID = dbo.tb_Product.ProductID where workClass=@workClass and ProductDate=@ProductDate order by CreateTime DESC "; + SqlParameter[] param = new SqlParameter[2]; + + param[0] = new SqlParameter("@workClass", SqlDbType.VarChar); + param[0].Value = banci; + + param[1] = new SqlParameter("@ProductDate", SqlDbType.VarChar); + param[1].Value = productdate; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + /// + /// 查找当前天、当前产品的最后一个流水 + /// + /// + /// + public DataTable SearchBarCode( string productdate,string productID) + { + try + { + string sql = @"SELECT dbo.tb_PaintBarCode.OneBarCode, dbo.tb_Product.ProductName, dbo.tb_PaintBarCode.ColorDes, + dbo.tb_PaintBarCode.Side, dbo.tb_PaintBarCode.workClass + FROM dbo.tb_PaintBarCode LEFT OUTER JOIN + dbo.tb_Product ON dbo.tb_PaintBarCode.ProductID = dbo.tb_Product.ProductID where ProductDate=@ProductDate and dbo.tb_PaintBarCode.ProductID=@ProductID + order by dbo.tb_PaintBarCode.CreateTime desc"; + SqlParameter[] param = new SqlParameter[2]; + + //param[0] = new SqlParameter("@workClass", SqlDbType.VarChar); + //param[0].Value = banci; + + param[0] = new SqlParameter("@ProductDate", SqlDbType.VarChar); + param[0].Value = productdate; + + param[1] = new SqlParameter("@ProductID", SqlDbType.VarChar); + param[1].Value = productID; + + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + throw ex; + } + } + + public bool AddInfo(PaintBarCodeModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = "INSERT INTO " + TableName + " ([ID] ,[StationID] ,[ProductID],[OneBarCode],[BarCode],[StockNo],[ColorDes],[workClass],[Side] ,[CreateTime],[ProductDate],PrintReason,PrintPerson"; + sql += ") VALUES ("; + sql += "@ID,"; + sql += "@StationID,"; + sql += "@ProductID,"; + sql += "@OneBarCode,"; + sql += "@BarCode,"; + sql += "@StockNo,"; + sql += "@ColorDes,"; + sql += "@workClass,"; + sql += "@Side,"; + sql += "@CreateTime,"; + sql += "@ProductDate,"; + sql += "@PrintReason,"; + sql += "@PrintPerson)"; + + #region 添加参数 + param = new SqlParameter[13]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@StationID", SqlDbType.VarChar); + param[1].Value = md.StationID; + + param[2] = new SqlParameter("@ProductID", SqlDbType.VarChar); + param[2].Value = md.ProductID; + + param[3] = new SqlParameter("@OneBarCode", SqlDbType.VarChar); + param[3].Value = md.OneBarCode; + + param[4] = new SqlParameter("@BarCode", SqlDbType.VarChar); + param[4].Value = md.BarCode; + + param[5] = new SqlParameter("@StockNo", SqlDbType.VarChar); + param[5].Value = md.StockNo; + + param[6] = new SqlParameter("@ColorDes", SqlDbType.VarChar); + param[6].Value = md.ColorDes; + + param[7] = new SqlParameter("@workClass", SqlDbType.VarChar); + param[7].Value = md.workClass; + + param[8] = new SqlParameter("@Side", SqlDbType.VarChar); + param[8].Value = md.Side; + + param[9] = new SqlParameter("@CreateTime", SqlDbType.DateTime); + param[9].Value = md.CreateTime; + + param[10] = new SqlParameter("@ProductDate", SqlDbType.VarChar); + param[10].Value = md.ProductDate; + + param[11] = new SqlParameter("@PrintReason", SqlDbType.VarChar); + param[11].Value = md.PrintReason; + + param[12] = new SqlParameter("@PrintPerson", SqlDbType.VarChar); + param[12].Value = md.PrintPerson; + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + + public bool UpdatePrintTime(PaintBarCodeModel md) + { + try + { + #region 添加数据 + string sql = ""; + SqlParameter[] param = null; + sql = @"update " + TableName + " set PrintTime=@PrintTime where ID=@ID"; + + #region 添加参数 + param = new SqlParameter[2]; + param[0] = new SqlParameter("@ID", SqlDbType.VarChar); + param[0].Value = md.ID; + + param[1] = new SqlParameter("@PrintTime", SqlDbType.DateTime); + param[1].Value = md.PrintTime; + + + #endregion + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, param); + #endregion + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return false; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/PaintPersonDAL.cs b/BBMPTMes/MESClassLibrary/DAL/painting/PaintPersonDAL.cs new file mode 100644 index 0000000..de19bc9 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/PaintPersonDAL.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.painting +{ + public class PaintPersonDAL + { + public DataTable SearchInfo() + { + try + { + string sql = @"select * from tb_PaintPerson order by ID"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/PaintReasonDAL.cs b/BBMPTMes/MESClassLibrary/DAL/painting/PaintReasonDAL.cs new file mode 100644 index 0000000..dadabf2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/PaintReasonDAL.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.painting +{ + public class PaintReasonDAL + { + public DataTable SearchInfo() + { + try + { + string sql = @"select * from tb_PaintReason order by ID"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod()); + return null; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/PunchNotStockBarCodeDal.cs b/BBMPTMes/MESClassLibrary/DAL/painting/PunchNotStockBarCodeDal.cs new file mode 100644 index 0000000..7edb206 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/PunchNotStockBarCodeDal.cs @@ -0,0 +1,40 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.DAL.painting +{ + public class PunchNotStockBarCodeDal + { + public DataTable PunchNotStockBarCode(string time1, string time2) + { + DataTable res = null; + + try + { + string sql = @"if OBJECT_ID(N'tempdb..#a',N'U') is not null + DROP TABLE #a + CREATE TABLE #a(barcode nvarchar(50)) + INSERT INTO #a + ( barcode ) + (SELECT DISTINCT barcode FROM dbo.tb_Punch_Code_Record p1 + WHERE createTime BETWEEN '" + time1 + @"' AND '" + time2 + @"' + UNION + SELECT DISTINCT barcode FROM dbo.tb_Punch_Code_Record_DoorSill_214 p2 + WHERE createTime BETWEEN '" + time1 + @"' AND '" + time2 + @"') + + SELECT #a.barcode FROM #a LEFT OUTER JOIN dbo.tb_StockIn s ON #a.barcode=s.barcode where s.ID is null"; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/StockInDAL.cs b/BBMPTMes/MESClassLibrary/DAL/painting/StockInDAL.cs new file mode 100644 index 0000000..bc62c73 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/StockInDAL.cs @@ -0,0 +1,366 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MESClassLibrary.BLL.Log; + +namespace MESClassLibrary.DAL.painting +{ + public class StockInDAL + { + public DataTable SearchInfoA() + { + try + { + string sql = @"IF OBJECT_ID('TEMPDB..#a') IS NOT NULL + DROP TABLE #a + create table #a (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50), ) + + INSERT into #a SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE (dbo.tb_StockIn.createTime BETWEEN CONVERT(DATETIME, SUBSTRING(CONVERT(NVARCHAR(50), GETDATE(), 120), 1, 10) + ' 08:00:00') + AND CONVERT(DATETIME, SUBSTRING(CONVERT(NVARCHAR(50), GETDATE(), 120), 1, 10) + ' 20:00:00')) AND (dbo.tb_StockIn.pass = 1) + + SELECT COUNT(*) AS c1 , + (SELECT COUNT(*) FROM #a WHERE productInfo LIKE '%槛%' ) c2 + FROM #a WHERE productInfo LIKE '%保%'"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoB() + { + try + { + string sql = ""; + + if (GetDateTime() > DateTime.Parse(GetDateTime().ToShortDateString() + " 20:00:00") && GetDateTime() < DateTime.Parse(GetDateTime().ToShortDateString() + " 23:59:59")) + { + sql = @"IF OBJECT_ID('TEMPDB..#c') IS NOT NULL + DROP TABLE #c + create table #c (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50)) + + INSERT into #c SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE createTime BETWEEN CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00') + AND CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 23:59:59') AND pass=1 + + SELECT COUNT(*) AS c1 , + (SELECT COUNT(*) FROM #c WHERE productInfo LIKE '%槛%' ) c2 + FROM #c WHERE productInfo LIKE '%保%'"; + } + + if (GetDateTime() > DateTime.Parse(GetDateTime().ToShortDateString() + " 00:00:00") && GetDateTime() < DateTime.Parse(GetDateTime().ToShortDateString() + " 08:00:00")) + { + sql = @"IF OBJECT_ID('TEMPDB..#c') IS NOT NULL + DROP TABLE #c + create table #c (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50)) + + INSERT into #c SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE createTime BETWEEN DATEADD(day,-1, CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00')) + AND CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 08:00:00') AND pass=1 + + SELECT COUNT(*) AS c1 , + (SELECT COUNT(*) FROM #c WHERE productInfo LIKE '%槛%' ) c2 + FROM #c WHERE productInfo LIKE '%保%'"; + } + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoAByB() + { + try + { + string sql = ""; + + if (GetDateTime() > DateTime.Parse(GetDateTime().ToShortDateString() + " 20:00:00") && GetDateTime() <= DateTime.Parse(GetDateTime().ToShortDateString() + " 23:59:59")) + { + sql = @"IF OBJECT_ID('TEMPDB..#d') IS NOT NULL + DROP TABLE #d + create table #d (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50)) + + INSERT into #d SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE createTime BETWEEN CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 08:30:00') + AND CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00') AND pass=1 + + SELECT COUNT(*) AS c1 , + (SELECT COUNT(*) FROM #d WHERE productInfo LIKE '%槛%' ) c2 + FROM #d WHERE productInfo LIKE '%保%'"; + } + + if (GetDateTime() > DateTime.Parse(GetDateTime().ToShortDateString() + " 00:00:00") && GetDateTime() < DateTime.Parse(GetDateTime().ToShortDateString() + " 08:00:00")) + { + sql = @"IF OBJECT_ID('TEMPDB..#d') IS NOT NULL + DROP TABLE #d + create table #d (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50)) + + INSERT into #d SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE createTime BETWEEN DATEADD(day,-1, CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 08:00:00')) + AND DATEADD(day,-1,CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00')) AND pass=1 + + SELECT COUNT(*) AS c1 , + (SELECT COUNT(*) FROM #d WHERE productInfo LIKE '%槛%' ) c2 + FROM #d WHERE productInfo LIKE '%保%'"; + } + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchInfoBByA() + { + try + { + string sql = ""; + sql = @"IF OBJECT_ID('TEMPDB..#b') IS NOT NULL + DROP TABLE #b + create table #b (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50)) + + INSERT into #b SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE createTime BETWEEN DATEADD(day,-1, CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00')) + AND CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 08:00:00') AND pass=1 + + SELECT COUNT(*) AS c1 , + (SELECT COUNT(*) FROM #b WHERE productInfo LIKE '%槛%' ) c2 + FROM #b WHERE productInfo LIKE '%保%'"; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchDetailA() + { + try + { + string sql = @"IF OBJECT_ID('TEMPDB..#a') IS NOT NULL + DROP TABLE #a + create table #a (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50),paintCode NVARCHAR(100)) + + INSERT INTO #a SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des,paintCode + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE createTime BETWEEN CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 08:00:00') + AND CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00') AND pass=1 + + IF OBJECT_ID('TEMPDB..#b') IS NOT NULL + DROP TABLE #b + create table #b (paintCode NVARCHAR(100),productInfo nvarchar(100),color NVARCHAR(50),total INT ) + + INSERT INTO #b SELECT paintCode,productInfo,color,COUNT(*) total FROM #a + WHERE productInfo LIKE '%槛%' + GROUP BY productInfo,color,paintCode + + INSERT INTO #b SELECT paintCode,productInfo,color,COUNT(*) total FROM #a + WHERE productInfo LIKE '%保%' + GROUP BY productInfo,color,paintCode + + SELECT * FROM #b "; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchDetailB() + { + try + { + string sql = ""; + + if (GetDateTime() > DateTime.Parse(GetDateTime().ToShortDateString() + " 20:00:00") && GetDateTime() < DateTime.Parse(GetDateTime().ToShortDateString() + " 23:59:59")) + { + sql = @"IF OBJECT_ID('TEMPDB..#a') IS NOT NULL + DROP TABLE #a + create table #a (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50),paintCode NVARCHAR(100)) + + INSERT INTO #a SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des,paintCode + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE createTime BETWEEN CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00') + AND CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 23:59:59') AND pass=1 + + IF OBJECT_ID('TEMPDB..#b') IS NOT NULL + DROP TABLE #b + create table #b (paintCode NVARCHAR(100),productInfo nvarchar(100),color NVARCHAR(50),total INT ) + + INSERT INTO #b SELECT paintCode,productInfo,color,COUNT(*) total FROM #a + WHERE productInfo LIKE '%槛%' + GROUP BY productInfo,color,paintCode + + INSERT INTO #b SELECT paintCode,productInfo,color,COUNT(*) total FROM #a + WHERE productInfo LIKE '%保%' + GROUP BY productInfo,color,paintCode + + SELECT * FROM #b "; + } + + if (GetDateTime() > DateTime.Parse(GetDateTime().ToShortDateString() + " 00:00:00") && GetDateTime() < DateTime.Parse(GetDateTime().ToShortDateString() + " 08:00:00")) + { + sql = @"IF OBJECT_ID('TEMPDB..#a') IS NOT NULL + DROP TABLE #a + create table #a (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50),paintCode NVARCHAR(100)) + + INSERT INTO #a SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des,paintCode + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE createTime BETWEEN DATEADD(day,-1, CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00')) + AND CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 08:00:00') AND pass=1 + + IF OBJECT_ID('TEMPDB..#b') IS NOT NULL + DROP TABLE #b + create table #b (paintCode NVARCHAR(100),productInfo nvarchar(100),color NVARCHAR(50),total INT ) + + INSERT INTO #b SELECT paintCode,productInfo,color,COUNT(*) total FROM #a + WHERE productInfo LIKE '%槛%' + GROUP BY productInfo,color,paintCode + + INSERT INTO #b SELECT paintCode,productInfo,color,COUNT(*) total FROM #a + WHERE productInfo LIKE '%保%' + GROUP BY productInfo,color,paintCode + + SELECT * FROM #b "; + } + + if (GetDateTime() > DateTime.Parse(GetDateTime().ToShortDateString() + " 08:00:00") && GetDateTime() < DateTime.Parse(GetDateTime().ToShortDateString() + " 20:00:00")) + { + sql = @"IF OBJECT_ID('TEMPDB..#a') IS NOT NULL + DROP TABLE #a + create table #a (BarCode nvarchar(100),productInfo nvarchar(100),color NVARCHAR(50),paintCode NVARCHAR(100)) + + INSERT INTO #a SELECT dbo.tb_StockIn.barcode, dbo.tb_Product.ProductName,dbo.View_Color.Des,paintCode + FROM dbo.tb_Product RIGHT OUTER JOIN + dbo.tb_StockIn ON dbo.tb_Product.StockNo = SUBSTRING(dbo.tb_StockIn.barcode, 1, 10) LEFT OUTER JOIN + dbo.View_Color ON SUBSTRING(dbo.tb_StockIn.paintCode, LEN(dbo.tb_StockIn.paintCode) - 3, 4) = dbo.View_Color.ColorNo + WHERE[createTime] BETWEEN DATEADD(day,-1, CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 20:00:00')) + AND CONVERT(DATETIME,SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),120),1,10)+ ' 08:00:00') AND pass=1 + + IF OBJECT_ID('TEMPDB..#b') IS NOT NULL + DROP TABLE #b + create table #b (paintCode NVARCHAR(100),productInfo nvarchar(100),color NVARCHAR(50),total INT ) + + INSERT INTO #b SELECT paintCode,productInfo,color,COUNT(*) total FROM #a + WHERE productInfo LIKE '%槛%' + GROUP BY productInfo,color,paintCode + + INSERT INTO #b SELECT paintCode,productInfo,color,COUNT(*) total FROM #a + WHERE productInfo LIKE '%保%' + GROUP BY productInfo,color,paintCode + + SELECT * FROM #b "; + } + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DataTable SearchColor(string barCode) + { + try + { + string sql = @"select top 1 * from dbo.tb_StockIn where barcode=@barcode order by createTime desc"; + SqlParameter[] param = new SqlParameter[1]; + + param[0] = new SqlParameter("@barcode", SqlDbType.VarChar); + param[0].Value = barCode; + + return SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, param).Tables[0]; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + + public DateTime GetDateTime() + { + string sql = ""; + DateTime time; + DataTable dt; + try + { + sql = @"select convert(char(23),getdate(),120) as time"; + + dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; + if (dt != null && dt.Rows.Count > 0) + { + //time = Convert.ToDateTime(dt.Rows[0]["time"].ToString()); + time = DateTime.ParseExact(dt.Rows[0]["time"].ToString(), "yyyy-MM-dd HH:mm:ss.fff", + System.Globalization.CultureInfo.CurrentCulture); + + } + else + { + time = DateTime.Now; + } + return time; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return DateTime.Now; + } + } + } +} diff --git a/BBMPTMes/MESClassLibrary/DAL/painting/TmpBarCodeDal.cs b/BBMPTMes/MESClassLibrary/DAL/painting/TmpBarCodeDal.cs new file mode 100644 index 0000000..711a50f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/DAL/painting/TmpBarCodeDal.cs @@ -0,0 +1,67 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace MESClassLibrary.DAL.painting +{ + public class TmpBarCodeDal + { + public bool ClearBarCode() + { + bool res=false; + try + { + string sql = @"truncate table tmp_barCode"; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, null); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + + public bool AddInfo(string barCode) + { + bool res = false; + try + { + string sql = @"insert into tmp_barCode(barCode) VALUES('" + barCode +@"')"; + + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, sql, null); + + return true; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + return res; + } + + public int InsertBulkCopy(string connectionString, DataTable dt) + { + int res = 0; + try + { + SqlHelper.InsertBatch(connectionString, dt); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + res= -1; + } + return res; + } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Context.cs b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Context.cs new file mode 100644 index 0000000..d426c54 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Context.cs @@ -0,0 +1,274 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Infrastructure; + + public partial class BBMPTEntities : DbContext + { + public BBMPTEntities() + : base("name=BBMPTEntities") + { + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + + public virtual DbSet fine_authority { get; set; } + public virtual DbSet fine_authority_object { get; set; } + public virtual DbSet fine_backup_node { get; set; } + public virtual DbSet fine_base_message { get; set; } + public virtual DbSet fine_base_output { get; set; } + public virtual DbSet fine_block_ip { get; set; } + public virtual DbSet fine_conf_classname { get; set; } + public virtual DbSet fine_conf_entity { get; set; } + public virtual DbSet fine_conf_xmlentity { get; set; } + public virtual DbSet fine_custom_role { get; set; } + public virtual DbSet fine_dep_role { get; set; } + public virtual DbSet fine_department { get; set; } + public virtual DbSet fine_extra_property { get; set; } + public virtual DbSet fine_favorite_entry { get; set; } + public virtual DbSet fine_homepage_expand { get; set; } + public virtual DbSet fine_international { get; set; } + public virtual DbSet fine_last_login { get; set; } + public virtual DbSet fine_login_lock { get; set; } + public virtual DbSet fine_mobile_device { get; set; } + public virtual DbSet fine_mobile_push_message { get; set; } + public virtual DbSet fine_output_class { get; set; } + public virtual DbSet fine_output_client_notice { get; set; } + public virtual DbSet fine_output_email { get; set; } + public virtual DbSet fine_output_ftp { get; set; } + public virtual DbSet fine_output_mount { get; set; } + public virtual DbSet fine_output_platform_msg { get; set; } + public virtual DbSet fine_output_print { get; set; } + public virtual DbSet fine_output_sftp { get; set; } + public virtual DbSet fine_output_sms { get; set; } + public virtual DbSet fine_param_template { get; set; } + public virtual DbSet fine_post { get; set; } + public virtual DbSet fine_print_offset { get; set; } + public virtual DbSet fine_print_offset_ip_relate { get; set; } + public virtual DbSet fine_process_expand { get; set; } + public virtual DbSet fine_process_message { get; set; } + public virtual DbSet fine_remote_design_auth { get; set; } + public virtual DbSet fine_report_expand { get; set; } + public virtual DbSet fine_schedule_output { get; set; } + public virtual DbSet fine_schedule_record { get; set; } + public virtual DbSet fine_schedule_task { get; set; } + public virtual DbSet fine_schedule_task_param { get; set; } + public virtual DbSet fine_swift_cluster_size { get; set; } + public virtual DbSet fine_swift_col_idx_conf { get; set; } + public virtual DbSet fine_swift_config_entity { get; set; } + public virtual DbSet fine_swift_metadata { get; set; } + public virtual DbSet fine_swift_seg_location { get; set; } + public virtual DbSet fine_swift_segments { get; set; } + public virtual DbSet fine_swift_service_info { get; set; } + public virtual DbSet fine_swift_tab_idx_conf { get; set; } + public virtual DbSet fine_swift_table_path { get; set; } + public virtual DbSet fine_system_message { get; set; } + public virtual DbSet fine_user { get; set; } + public virtual DbSet fine_user_role_middle { get; set; } + public virtual DbSet fine_vcs { get; set; } + public virtual DbSet fine_workflow { get; set; } + public virtual DbSet fine_workflow_log { get; set; } + public virtual DbSet fine_workflow_node { get; set; } + public virtual DbSet fine_workflow_stash_data { get; set; } + public virtual DbSet fine_workflow_task { get; set; } + public virtual DbSet fine_workflow_task_impl { get; set; } + public virtual DbSet fine_write_stash { get; set; } + public virtual DbSet LogErr { get; set; } + public virtual DbSet LogSys { get; set; } + public virtual DbSet LogSys_202008 { get; set; } + public virtual DbSet QRTZ_BLOB_TRIGGERS { get; set; } + public virtual DbSet QRTZ_CALENDARS { get; set; } + public virtual DbSet QRTZ_CRON_TRIGGERS { get; set; } + public virtual DbSet QRTZ_FIRED_TRIGGERS { get; set; } + public virtual DbSet QRTZ_JOB_DETAILS { get; set; } + public virtual DbSet QRTZ_LOCKS { get; set; } + public virtual DbSet QRTZ_PAUSED_TRIGGER_GRPS { get; set; } + public virtual DbSet QRTZ_SCHEDULER_STATE { get; set; } + public virtual DbSet QRTZ_SIMPLE_TRIGGERS { get; set; } + public virtual DbSet QRTZ_SIMPROP_TRIGGERS { get; set; } + public virtual DbSet QRTZ_TRIGGERS { get; set; } + public virtual DbSet T_PaintInfo { get; set; } + public virtual DbSet T_Sys_Buttons { get; set; } + public virtual DbSet T_Sys_NavMenu { get; set; } + public virtual DbSet T_Sys_Power { get; set; } + public virtual DbSet T_Sys_Role { get; set; } + public virtual DbSet T_Sys_UserRole { get; set; } + public virtual DbSet T_Sys_Users { get; set; } + public virtual DbSet T_Sys_Users_NavMenu { get; set; } + public virtual DbSet TA_DEPT { get; set; } + public virtual DbSet tb_aa { get; set; } + public virtual DbSet tb_AndonButtonType { get; set; } + public virtual DbSet tb_AndonRecord { get; set; } + public virtual DbSet tb_Bad_Injection { get; set; } + public virtual DbSet tb_BarCode { get; set; } + public virtual DbSet tb_Bom { get; set; } + public virtual DbSet tb_Box_243 { get; set; } + public virtual DbSet tb_Box_Record { get; set; } + public virtual DbSet tb_Box_WheelBrow { get; set; } + public virtual DbSet tb_BucketInfo { get; set; } + public virtual DbSet tb_CheckItem { get; set; } + public virtual DbSet tb_Color { get; set; } + public virtual DbSet tb_CommonlyInspection { get; set; } + public virtual DbSet tb_CommonlyInspectionRecord { get; set; } + public virtual DbSet tb_CommonlyInspectionVersion { get; set; } + public virtual DbSet tb_Config { get; set; } + public virtual DbSet tb_Cylinder { get; set; } + public virtual DbSet tb_CylinderAndRaw { get; set; } + public virtual DbSet tb_Defect { get; set; } + public virtual DbSet tb_Device { get; set; } + public virtual DbSet tb_Factory { get; set; } + public virtual DbSet tb_FinishProduct { get; set; } + public virtual DbSet tb_HybridPlan { get; set; } + public virtual DbSet tb_HybridScanRecord { get; set; } + public virtual DbSet tb_ImgVideo { get; set; } + public virtual DbSet tb_Inhection_DownReason { get; set; } + public virtual DbSet tb_Injection_DownRecord { get; set; } + public virtual DbSet tb_Injection_DownTime { get; set; } + public virtual DbSet tb_Injection_DownType { get; set; } + public virtual DbSet tb_Injection_Record { get; set; } + public virtual DbSet tb_InjectionPlan { get; set; } + public virtual DbSet tb_InspectResult { get; set; } + public virtual DbSet tb_LayerAndBC { get; set; } + public virtual DbSet tb_Line { get; set; } + public virtual DbSet tb_Location { get; set; } + public virtual DbSet tb_Machine { get; set; } + public virtual DbSet tb_Mistake_243 { get; set; } + public virtual DbSet tb_Mistake_247 { get; set; } + public virtual DbSet tb_Mistake_Gratings { get; set; } + public virtual DbSet tb_Model_Product { get; set; } + public virtual DbSet tb_Model_Update { get; set; } + public virtual DbSet tb_ModelCount { get; set; } + public virtual DbSet tb_ModelInfo { get; set; } + public virtual DbSet tb_Operator { get; set; } + public virtual DbSet tb_Paint_Bucket { get; set; } + public virtual DbSet tb_PaintBarCode { get; set; } + public virtual DbSet tb_PaintInfo { get; set; } + public virtual DbSet tb_PaintPerson { get; set; } + public virtual DbSet tb_PaintReason { get; set; } + public virtual DbSet tb_PaintScanRecord { get; set; } + public virtual DbSet tb_PartRecord { get; set; } + public virtual DbSet tb_Place { get; set; } + public virtual DbSet tb_Plan_243 { get; set; } + public virtual DbSet tb_Plan_247 { get; set; } + public virtual DbSet tb_Plan_Punch { get; set; } + public virtual DbSet tb_Plan_Punch_214 { get; set; } + public virtual DbSet tb_PlanScreenConfig { get; set; } + public virtual DbSet tb_Plastic { get; set; } + public virtual DbSet tb_PrintConfig { get; set; } + public virtual DbSet tb_Product { get; set; } + public virtual DbSet tb_Product_Injection { get; set; } + public virtual DbSet tb_Product_Injection_w { get; set; } + public virtual DbSet tb_ProductSotckIn { get; set; } + public virtual DbSet tb_ProductType { get; set; } + public virtual DbSet tb_Project { get; set; } + public virtual DbSet tb_Punch_Code_Record { get; set; } + public virtual DbSet tb_Punch_Code_Record_Del { get; set; } + public virtual DbSet tb_Punch_Code_Record_DoorSill_214 { get; set; } + public virtual DbSet tb_Punch_Code_Record2 { get; set; } + public virtual DbSet tb_Punch_Proucting { get; set; } + public virtual DbSet tb_PunchAddress { get; set; } + public virtual DbSet tb_PunchAndStation { get; set; } + public virtual DbSet tb_PunchDevice { get; set; } + public virtual DbSet tb_PunchMFAPlan { get; set; } + public virtual DbSet tb_PunchNGCCPlan { get; set; } + public virtual DbSet tb_PunchPlan { get; set; } + public virtual DbSet tb_PunchRecord { get; set; } + public virtual DbSet tb_PunchResult { get; set; } + public virtual DbSet tb_PunchValueRecord { get; set; } + public virtual DbSet tb_Record_243 { get; set; } + public virtual DbSet tb_Record_243_20220517 { get; set; } + public virtual DbSet tb_Record_Gratings { get; set; } + public virtual DbSet tb_Report_FiveScreen { get; set; } + public virtual DbSet tb_Report_FiveScreenConfig { get; set; } + public virtual DbSet tb_Report_FiveScreenLast { get; set; } + public virtual DbSet tb_Report_FiveScreenStandard { get; set; } + public virtual DbSet tb_ReportA1 { get; set; } + public virtual DbSet tb_reportA2 { get; set; } + public virtual DbSet tb_ReportF1 { get; set; } + public virtual DbSet tb_ReportF3 { get; set; } + public virtual DbSet tb_ReportG1 { get; set; } + public virtual DbSet tb_ReportH1 { get; set; } + public virtual DbSet tb_ReportTest { get; set; } + public virtual DbSet tb_ScanAnalysis { get; set; } + public virtual DbSet tb_ScanRecord_Laser { get; set; } + public virtual DbSet tb_SkidInfo { get; set; } + public virtual DbSet tb_SpcialNotFacStockNo { get; set; } + public virtual DbSet tb_SpcialStockNo { get; set; } + public virtual DbSet tb_SpecialHybrid { get; set; } + public virtual DbSet tb_SpecialVisual { get; set; } + public virtual DbSet tb_Station { get; set; } + public virtual DbSet tb_StationAndCylinder { get; set; } + public virtual DbSet tb_StockIn_beif { get; set; } + public virtual DbSet tb_StockInColor { get; set; } + public virtual DbSet tb_test { get; set; } + public virtual DbSet tb_ToVisual_WheelBrow_243 { get; set; } + public virtual DbSet tb_ToVisual_WheelBrow_247 { get; set; } + public virtual DbSet tb_ToWmsRecord { get; set; } + public virtual DbSet TES_BOM { get; set; } + public virtual DbSet TES_PART_MSTR { get; set; } + public virtual DbSet test2 { get; set; } + public virtual DbSet LogSys_202001_04 { get; set; } + public virtual DbSet LogSys_202003 { get; set; } + public virtual DbSet LogSys_202004 { get; set; } + public virtual DbSet LogSys_202005 { get; set; } + public virtual DbSet LogSys_20200605 { get; set; } + public virtual DbSet LogSys_20200610 { get; set; } + public virtual DbSet LogSys_20210322 { get; set; } + public virtual DbSet T_Sys_RoleLinkPower { get; set; } + public virtual DbSet tb_Assembly_243 { get; set; } + public virtual DbSet tb_Assembly_247 { get; set; } + public virtual DbSet tb_Assembly_254 { get; set; } + public virtual DbSet tb_Bom_20190726 { get; set; } + public virtual DbSet tb_Box_247 { get; set; } + public virtual DbSet tb_Color_20191008 { get; set; } + public virtual DbSet tb_Color_20201101 { get; set; } + public virtual DbSet tb_Defect_bak { get; set; } + public virtual DbSet tb_InjectPlanReport { get; set; } + public virtual DbSet tb_InspectResult_20190902 { get; set; } + public virtual DbSet tb_InspectResult_20200717 { get; set; } + public virtual DbSet tb_InspectResult_20201021 { get; set; } + public virtual DbSet tb_InspectResult_20210322 { get; set; } + public virtual DbSet tb_Mistake_243_bak { get; set; } + public virtual DbSet tb_Mistake_247_bak { get; set; } + public virtual DbSet tb_Plan_Punch_20200509 { get; set; } + public virtual DbSet tb_PrintRecord { get; set; } + public virtual DbSet tb_Product_20200513 { get; set; } + public virtual DbSet tb_Product_20201110 { get; set; } + public virtual DbSet tb_Product_20230901 { get; set; } + public virtual DbSet tb_Product_Injection_20190726 { get; set; } + public virtual DbSet tb_Product0912 { get; set; } + public virtual DbSet tb_Product20200802 { get; set; } + public virtual DbSet tb_Product20201016 { get; set; } + public virtual DbSet tb_Punch_Code_Record_20200721 { get; set; } + public virtual DbSet tb_Punch_Code_Record_20200907 { get; set; } + public virtual DbSet tb_Punch_Code_Record_20221231 { get; set; } + public virtual DbSet tb_Punch_Code_Record_20230630 { get; set; } + public virtual DbSet tb_Punch_Code_Record_BF { get; set; } + public virtual DbSet tb_PunchAndStation_bak { get; set; } + public virtual DbSet tb_Record_247 { get; set; } + public virtual DbSet tb_Report_FiveScreen_20191011 { get; set; } + public virtual DbSet tb_Report_FiveScreen_20191014 { get; set; } + public virtual DbSet tb_ReportPaintingScreen { get; set; } + public virtual DbSet tb_ReportPaintingScreen_bak { get; set; } + public virtual DbSet tb_ReportPaintingScreen_pg { get; set; } + public virtual DbSet tb_ReportPaintingScreen_pg_bak { get; set; } + public virtual DbSet tb_SkidInfo_20200904 { get; set; } + public virtual DbSet tb_StockIn { get; set; } + public virtual DbSet tb_StockIn_20200511 { get; set; } + public virtual DbSet tb_StockIn_20210322 { get; set; } + public virtual DbSet test1 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Context.tt b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Context.tt new file mode 100644 index 0000000..eb83c98 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Context.tt @@ -0,0 +1,636 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"BBMPT.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var loader = new EdmMetadataLoader(textTransform.Host, textTransform.Errors); +var itemCollection = loader.CreateEdmItemCollection(inputFile); +var modelNamespace = loader.GetModelNamespace(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +var container = itemCollection.OfType().FirstOrDefault(); +if (container == null) +{ + return string.Empty; +} +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ + +<# + +var codeNamespace = code.VsNamespaceSuggestion(); +if (!String.IsNullOrEmpty(codeNamespace)) +{ +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<# + PushIndent(" "); +} + +#> +using System; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +<# +if (container.FunctionImports.Any()) +{ +#> +using System.Data.Entity.Core.Objects; +using System.Linq; +<# +} +#> + +<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext +{ + public <#=code.Escape(container)#>() + : base("name=<#=container.Name#>") + { +<# +if (!loader.IsLazyLoadingEnabled(container)) +{ +#> + this.Configuration.LazyLoadingEnabled = false; +<# +} + +foreach (var entitySet in container.BaseEntitySets.OfType()) +{ + // Note: the DbSet members are defined below such that the getter and + // setter always have the same accessibility as the DbSet definition + if (Accessibility.ForReadOnlyProperty(entitySet) != "public") + { +#> + <#=codeStringGenerator.DbSetInitializer(entitySet)#> +<# + } +} +#> + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + +<# + foreach (var entitySet in container.BaseEntitySets.OfType()) + { +#> + <#=codeStringGenerator.DbSet(entitySet)#> +<# + } + + foreach (var edmFunction in container.FunctionImports) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: false); + } +#> +} +<# + +if (!String.IsNullOrEmpty(codeNamespace)) +{ + PopIndent(); +#> +} +<# +} +#> +<#+ + +private void WriteFunctionImport(TypeMapper typeMapper, CodeStringGenerator codeStringGenerator, EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) +{ + if (typeMapper.IsComposable(edmFunction)) + { +#> + + [DbFunction("<#=edmFunction.NamespaceName#>", "<#=edmFunction.Name#>")] + <#=codeStringGenerator.ComposableFunctionMethod(edmFunction, modelNamespace)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ComposableCreateQuery(edmFunction, modelNamespace)#> + } +<#+ + } + else + { +#> + + <#=codeStringGenerator.FunctionMethod(edmFunction, modelNamespace, includeMergeOption)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ExecuteFunction(edmFunction, modelNamespace, includeMergeOption)#> + } +<#+ + if (typeMapper.GenerateMergeOptionFunction(edmFunction, includeMergeOption)) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: true); + } + } +} + +public void WriteFunctionParameter(string name, string isNotNull, string notNullInit, string nullInit) +{ +#> + var <#=name#> = <#=isNotNull#> ? + <#=notNullInit#> : + <#=nullInit#>; + +<#+ +} + +public const string TemplateId = "CSharp_DbContext_Context_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string DbSetInitializer(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} = Set<{1}>();", + _code.Escape(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Designer.cs b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Designer.cs new file mode 100644 index 0000000..28da8db --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.Designer.cs @@ -0,0 +1,10 @@ +// 为模型“D:\项目\1、北汽模塑二厂\SVN\Code\MESClassLibrary\EFModel\BBMPT.edmx”启用了 T4 代码生成。 +// 要启用旧代码生成功能,请将“代码生成策略”设计器属性的值 +// 更改为“旧的 ObjectContext”。当在设计器中打开该模型时,此属性会出现在 +// “属性”窗口中。 + +// 如果没有生成任何上下文和实体类,可能是因为您创建了空模型但是 +// 尚未选择要使用的实体框架版本。要为您的模型生成一个上下文类和实体 +// 类,请在设计器中打开该模型,右键单击设计器图面,然后 +// 选择“从数据库更新模型...”、“从模型生成数据库...”或“添加代码生成 +// 项...”。 \ No newline at end of file diff --git a/BBMPTMes/MESClassLibrary/EFModel/BBMPT.cs b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.cs new file mode 100644 index 0000000..69c6b92 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.cs @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + diff --git a/BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx new file mode 100644 index 0000000..1a31f5b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx @@ -0,0 +1,12032 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT + [LogSys_202001-04].[ID] AS [ID], + [LogSys_202001-04].[SysContent] AS [SysContent], + [LogSys_202001-04].[SysSource] AS [SysSource], + [LogSys_202001-04].[CreateTime] AS [CreateTime] + FROM [dbo].[LogSys_202001-04] AS [LogSys_202001-04] + + + SELECT + [LogSys_202003].[ID] AS [ID], + [LogSys_202003].[SysContent] AS [SysContent], + [LogSys_202003].[SysSource] AS [SysSource], + [LogSys_202003].[CreateTime] AS [CreateTime] + FROM [dbo].[LogSys_202003] AS [LogSys_202003] + + + SELECT + [LogSys_202004].[ID] AS [ID], + [LogSys_202004].[SysContent] AS [SysContent], + [LogSys_202004].[SysSource] AS [SysSource], + [LogSys_202004].[CreateTime] AS [CreateTime] + FROM [dbo].[LogSys_202004] AS [LogSys_202004] + + + SELECT + [LogSys_202005].[ID] AS [ID], + [LogSys_202005].[SysContent] AS [SysContent], + [LogSys_202005].[SysSource] AS [SysSource], + [LogSys_202005].[CreateTime] AS [CreateTime] + FROM [dbo].[LogSys_202005] AS [LogSys_202005] + + + SELECT + [LogSys_20200605].[ID] AS [ID], + [LogSys_20200605].[SysContent] AS [SysContent], + [LogSys_20200605].[SysSource] AS [SysSource], + [LogSys_20200605].[CreateTime] AS [CreateTime] + FROM [dbo].[LogSys_20200605] AS [LogSys_20200605] + + + SELECT + [LogSys_20200610].[ID] AS [ID], + [LogSys_20200610].[SysContent] AS [SysContent], + [LogSys_20200610].[SysSource] AS [SysSource], + [LogSys_20200610].[CreateTime] AS [CreateTime] + FROM [dbo].[LogSys_20200610] AS [LogSys_20200610] + + + SELECT + [LogSys_20210322].[ID] AS [ID], + [LogSys_20210322].[SysContent] AS [SysContent], + [LogSys_20210322].[SysSource] AS [SysSource], + [LogSys_20210322].[CreateTime] AS [CreateTime] + FROM [dbo].[LogSys_20210322] AS [LogSys_20210322] + + + SELECT + [T_Sys_RoleLinkPower].[RoleID] AS [RoleID], + [T_Sys_RoleLinkPower].[PowerID] AS [PowerID], + [T_Sys_RoleLinkPower].[OpTime] AS [OpTime], + [T_Sys_RoleLinkPower].[OpName] AS [OpName] + FROM [dbo].[T_Sys_RoleLinkPower] AS [T_Sys_RoleLinkPower] + + + SELECT + [tb_Assembly_243].[ID] AS [ID], + [tb_Assembly_243].[PartNo] AS [PartNo], + [tb_Assembly_243].[PartName] AS [PartName], + [tb_Assembly_243].[BatchNo] AS [BatchNo], + [tb_Assembly_243].[Color] AS [Color], + [tb_Assembly_243].[ColorNo] AS [ColorNo], + [tb_Assembly_243].[PartType] AS [PartType], + [tb_Assembly_243].[TapeBatchNo] AS [TapeBatchNo], + [tb_Assembly_243].[Validity] AS [Validity], + [tb_Assembly_243].[ValidityDate] AS [ValidityDate], + [tb_Assembly_243].[CreateTime] AS [CreateTime], + [tb_Assembly_243].[PrintTime] AS [PrintTime], + [tb_Assembly_243].[Des] AS [Des], + [tb_Assembly_243].[Flag] AS [Flag], + [tb_Assembly_243].[ToVisual] AS [ToVisual], + [tb_Assembly_243].[FinishTime] AS [FinishTime] + FROM [dbo].[tb_Assembly_243] AS [tb_Assembly_243] + + + SELECT + [tb_Assembly_247].[ID] AS [ID], + [tb_Assembly_247].[PartNo] AS [PartNo], + [tb_Assembly_247].[PartName] AS [PartName], + [tb_Assembly_247].[BatchNo] AS [BatchNo], + [tb_Assembly_247].[Color] AS [Color], + [tb_Assembly_247].[ColorNo] AS [ColorNo], + [tb_Assembly_247].[PartType] AS [PartType], + [tb_Assembly_247].[TapeBatchNo] AS [TapeBatchNo], + [tb_Assembly_247].[Validity] AS [Validity], + [tb_Assembly_247].[ValidityDate] AS [ValidityDate], + [tb_Assembly_247].[CreateTime] AS [CreateTime], + [tb_Assembly_247].[PrintTime] AS [PrintTime], + [tb_Assembly_247].[Des] AS [Des], + [tb_Assembly_247].[Flag] AS [Flag], + [tb_Assembly_247].[ToVisual] AS [ToVisual], + [tb_Assembly_247].[FinishTime] AS [FinishTime], + [tb_Assembly_247].[IsCheck] AS [IsCheck], + [tb_Assembly_247].[DeviceNo] AS [DeviceNo] + FROM [dbo].[tb_Assembly_247] AS [tb_Assembly_247] + + + SELECT + [tb_Assembly_254].[ID] AS [ID], + [tb_Assembly_254].[BarCode] AS [BarCode], + [tb_Assembly_254].[PartNo] AS [PartNo], + [tb_Assembly_254].[PartName] AS [PartName], + [tb_Assembly_254].[BatchNo] AS [BatchNo], + [tb_Assembly_254].[Color] AS [Color], + [tb_Assembly_254].[ColorNo] AS [ColorNo], + [tb_Assembly_254].[PartType] AS [PartType], + [tb_Assembly_254].[TapeBatchNo] AS [TapeBatchNo], + [tb_Assembly_254].[Validity] AS [Validity], + [tb_Assembly_254].[ValidityDate] AS [ValidityDate], + [tb_Assembly_254].[CreateTime] AS [CreateTime], + [tb_Assembly_254].[PrintTime] AS [PrintTime], + [tb_Assembly_254].[Des] AS [Des], + [tb_Assembly_254].[Flag] AS [Flag] + FROM [dbo].[tb_Assembly_254] AS [tb_Assembly_254] + + + SELECT + [tb_Bom_20190726].[BomID] AS [BomID], + [tb_Bom_20190726].[PartNo1] AS [PartNo1], + [tb_Bom_20190726].[PartNo2] AS [PartNo2] + FROM [dbo].[tb_Bom_20190726] AS [tb_Bom_20190726] + + + SELECT + [tb_Box_247].[ID] AS [ID], + [tb_Box_247].[BoxNo] AS [BoxNo], + [tb_Box_247].[PartNo] AS [PartNo], + [tb_Box_247].[PartName] AS [PartName], + [tb_Box_247].[BatchNo] AS [BatchNo], + [tb_Box_247].[BoxCount] AS [BoxCount], + [tb_Box_247].[CreateTime] AS [CreateTime], + [tb_Box_247].[PrintTime] AS [PrintTime], + [tb_Box_247].[Des] AS [Des], + [tb_Box_247].[Flag] AS [Flag], + [tb_Box_247].[Validity] AS [Validity], + [tb_Box_247].[ValidityDate] AS [ValidityDate] + FROM [dbo].[tb_Box_247] AS [tb_Box_247] + + + SELECT + [tb_Color_20191008].[ID] AS [ID], + [tb_Color_20191008].[ColorCode] AS [ColorCode], + [tb_Color_20191008].[ColorNo] AS [ColorNo], + [tb_Color_20191008].[Des] AS [Des], + [tb_Color_20191008].[Circle] AS [Circle], + [tb_Color_20191008].[ColorQQCode] AS [ColorQQCode] + FROM [dbo].[tb_Color_20191008] AS [tb_Color_20191008] + + + SELECT + [tb_Color_20201101].[ID] AS [ID], + [tb_Color_20201101].[ColorCode] AS [ColorCode], + [tb_Color_20201101].[ColorNo] AS [ColorNo], + [tb_Color_20201101].[Des] AS [Des], + [tb_Color_20201101].[Circle] AS [Circle], + [tb_Color_20201101].[ColorQQCode] AS [ColorQQCode], + [tb_Color_20201101].[ColorDQCode] AS [ColorDQCode], + [tb_Color_20201101].[CreateTime] AS [CreateTime], + [tb_Color_20201101].[UpdateTime] AS [UpdateTime], + [tb_Color_20201101].[OrderNo] AS [OrderNo] + FROM [dbo].[tb_Color_20201101] AS [tb_Color_20201101] + + + SELECT + [tb_Defect_bak].[ID] AS [ID], + [tb_Defect_bak].[LineID] AS [LineID], + [tb_Defect_bak].[DefectName] AS [DefectName], + [tb_Defect_bak].[Des] AS [Des] + FROM [dbo].[tb_Defect_bak] AS [tb_Defect_bak] + + + SELECT + [tb_InjectPlanReport].[ID] AS [ID], + [tb_InjectPlanReport].[InjectionPlanID] AS [InjectionPlanID], + [tb_InjectPlanReport].[ProductName] AS [ProductName], + [tb_InjectPlanReport].[MaterialName] AS [MaterialName], + [tb_InjectPlanReport].[Drum] AS [Drum], + [tb_InjectPlanReport].[BatchNo] AS [BatchNo], + [tb_InjectPlanReport].[Time1] AS [Time1] + FROM [dbo].[tb_InjectPlanReport] AS [tb_InjectPlanReport] + + + SELECT + [tb_InspectResult_20190902].[ID] AS [ID], + [tb_InspectResult_20190902].[barcode] AS [barcode], + [tb_InspectResult_20190902].[side] AS [side], + [tb_InspectResult_20190902].[position] AS [position], + [tb_InspectResult_20190902].[stationNo] AS [stationNo], + [tb_InspectResult_20190902].[workClass] AS [workClass], + [tb_InspectResult_20190902].[inspectResult] AS [inspectResult], + [tb_InspectResult_20190902].[damnPosition] AS [damnPosition], + [tb_InspectResult_20190902].[defectID] AS [defectID], + [tb_InspectResult_20190902].[reason] AS [reason], + [tb_InspectResult_20190902].[productInfo] AS [productInfo], + [tb_InspectResult_20190902].[productOption] AS [productOption], + [tb_InspectResult_20190902].[createTime] AS [createTime], + [tb_InspectResult_20190902].[InspectTimes] AS [InspectTimes], + [tb_InspectResult_20190902].[remark1] AS [remark1], + [tb_InspectResult_20190902].[remark2] AS [remark2], + [tb_InspectResult_20190902].[remark3] AS [remark3] + FROM [dbo].[tb_InspectResult_20190902] AS [tb_InspectResult_20190902] + + + SELECT + [tb_InspectResult_20200717].[ID] AS [ID], + [tb_InspectResult_20200717].[barcode] AS [barcode], + [tb_InspectResult_20200717].[side] AS [side], + [tb_InspectResult_20200717].[position] AS [position], + [tb_InspectResult_20200717].[stationNo] AS [stationNo], + [tb_InspectResult_20200717].[workClass] AS [workClass], + [tb_InspectResult_20200717].[inspectResult] AS [inspectResult], + [tb_InspectResult_20200717].[damnPosition] AS [damnPosition], + [tb_InspectResult_20200717].[defectID] AS [defectID], + [tb_InspectResult_20200717].[reason] AS [reason], + [tb_InspectResult_20200717].[productInfo] AS [productInfo], + [tb_InspectResult_20200717].[productOption] AS [productOption], + [tb_InspectResult_20200717].[createTime] AS [createTime], + [tb_InspectResult_20200717].[InspectTimes] AS [InspectTimes], + [tb_InspectResult_20200717].[remark1] AS [remark1], + [tb_InspectResult_20200717].[remark2] AS [remark2], + [tb_InspectResult_20200717].[remark3] AS [remark3] + FROM [dbo].[tb_InspectResult_20200717] AS [tb_InspectResult_20200717] + + + SELECT + [tb_InspectResult_20201021].[ID] AS [ID], + [tb_InspectResult_20201021].[barcode] AS [barcode], + [tb_InspectResult_20201021].[side] AS [side], + [tb_InspectResult_20201021].[position] AS [position], + [tb_InspectResult_20201021].[stationNo] AS [stationNo], + [tb_InspectResult_20201021].[workClass] AS [workClass], + [tb_InspectResult_20201021].[inspectResult] AS [inspectResult], + [tb_InspectResult_20201021].[damnPosition] AS [damnPosition], + [tb_InspectResult_20201021].[defectID] AS [defectID], + [tb_InspectResult_20201021].[reason] AS [reason], + [tb_InspectResult_20201021].[productInfo] AS [productInfo], + [tb_InspectResult_20201021].[productOption] AS [productOption], + [tb_InspectResult_20201021].[createTime] AS [createTime], + [tb_InspectResult_20201021].[InspectTimes] AS [InspectTimes], + [tb_InspectResult_20201021].[remark1] AS [remark1], + [tb_InspectResult_20201021].[remark2] AS [remark2], + [tb_InspectResult_20201021].[remark3] AS [remark3] + FROM [dbo].[tb_InspectResult_20201021] AS [tb_InspectResult_20201021] + + + SELECT + [tb_InspectResult_20210322].[ID] AS [ID], + [tb_InspectResult_20210322].[barcode] AS [barcode], + [tb_InspectResult_20210322].[side] AS [side], + [tb_InspectResult_20210322].[position] AS [position], + [tb_InspectResult_20210322].[stationNo] AS [stationNo], + [tb_InspectResult_20210322].[workClass] AS [workClass], + [tb_InspectResult_20210322].[inspectResult] AS [inspectResult], + [tb_InspectResult_20210322].[damnPosition] AS [damnPosition], + [tb_InspectResult_20210322].[defectID] AS [defectID], + [tb_InspectResult_20210322].[reason] AS [reason], + [tb_InspectResult_20210322].[productInfo] AS [productInfo], + [tb_InspectResult_20210322].[productOption] AS [productOption], + [tb_InspectResult_20210322].[createTime] AS [createTime], + [tb_InspectResult_20210322].[InspectTimes] AS [InspectTimes], + [tb_InspectResult_20210322].[remark1] AS [remark1], + [tb_InspectResult_20210322].[remark2] AS [remark2], + [tb_InspectResult_20210322].[remark3] AS [remark3] + FROM [dbo].[tb_InspectResult_20210322] AS [tb_InspectResult_20210322] + + + SELECT + [tb_Mistake_243_bak].[ID] AS [ID], + [tb_Mistake_243_bak].[PartNo1] AS [PartNo1], + [tb_Mistake_243_bak].[PartName1] AS [PartName1], + [tb_Mistake_243_bak].[PartNo2] AS [PartNo2], + [tb_Mistake_243_bak].[PartName2] AS [PartName2], + [tb_Mistake_243_bak].[PackCount] AS [PackCount], + [tb_Mistake_243_bak].[DeviceNo] AS [DeviceNo] + FROM [dbo].[tb_Mistake_243_bak] AS [tb_Mistake_243_bak] + + + SELECT + [tb_Mistake_247_bak].[ID] AS [ID], + [tb_Mistake_247_bak].[PartNo1] AS [PartNo1], + [tb_Mistake_247_bak].[PartName1] AS [PartName1], + [tb_Mistake_247_bak].[PartNo2] AS [PartNo2], + [tb_Mistake_247_bak].[PartName2] AS [PartName2], + [tb_Mistake_247_bak].[PackCount] AS [PackCount], + [tb_Mistake_247_bak].[DeviceNo] AS [DeviceNo] + FROM [dbo].[tb_Mistake_247_bak] AS [tb_Mistake_247_bak] + + + SELECT + [tb_Plan_Punch_20200509].[ID] AS [ID], + [tb_Plan_Punch_20200509].[OrderNo] AS [OrderNo], + [tb_Plan_Punch_20200509].[Item] AS [Item], + [tb_Plan_Punch_20200509].[PartNo] AS [PartNo], + [tb_Plan_Punch_20200509].[OrderCount] AS [OrderCount], + [tb_Plan_Punch_20200509].[LyCount] AS [LyCount], + [tb_Plan_Punch_20200509].[CompleteCount] AS [CompleteCount], + [tb_Plan_Punch_20200509].[BadCount] AS [BadCount], + [tb_Plan_Punch_20200509].[Des] AS [Des], + [tb_Plan_Punch_20200509].[IsFinish] AS [IsFinish], + [tb_Plan_Punch_20200509].[CreateTime] AS [CreateTime] + FROM [dbo].[tb_Plan_Punch_20200509] AS [tb_Plan_Punch_20200509] + + + SELECT + [tb_PrintRecord].[ID] AS [ID], + [tb_PrintRecord].[BarCode] AS [BarCode], + [tb_PrintRecord].[PrintCode] AS [PrintCode], + [tb_PrintRecord].[ColorName] AS [ColorName], + [tb_PrintRecord].[Color] AS [Color], + [tb_PrintRecord].[ColorCode] AS [ColorCode], + [tb_PrintRecord].[ProductName] AS [ProductName], + [tb_PrintRecord].[ProductInfo] AS [ProductInfo], + [tb_PrintRecord].[PrintType] AS [PrintType], + [tb_PrintRecord].[PrintTime] AS [PrintTime] + FROM [dbo].[tb_PrintRecord] AS [tb_PrintRecord] + + + SELECT + [tb_Product_20200513].[ProductID] AS [ProductID], + [tb_Product_20200513].[ProductTypeID] AS [ProductTypeID], + [tb_Product_20200513].[StockNo] AS [StockNo], + [tb_Product_20200513].[PartName] AS [PartName], + [tb_Product_20200513].[ProductName] AS [ProductName], + [tb_Product_20200513].[ColorName] AS [ColorName], + [tb_Product_20200513].[PartNo] AS [PartNo], + [tb_Product_20200513].[Rows] AS [Rows], + [tb_Product_20200513].[Cols] AS [Cols], + [tb_Product_20200513].[Layers] AS [Layers], + [tb_Product_20200513].[PicturePath] AS [PicturePath], + [tb_Product_20200513].[Des] AS [Des], + [tb_Product_20200513].[isImport] AS [isImport] + FROM [dbo].[tb_Product_20200513] AS [tb_Product_20200513] + + + SELECT + [tb_Product_20201110].[ProductID] AS [ProductID], + [tb_Product_20201110].[ProductTypeID] AS [ProductTypeID], + [tb_Product_20201110].[ProjectID] AS [ProjectID], + [tb_Product_20201110].[StockNo] AS [StockNo], + [tb_Product_20201110].[PartName] AS [PartName], + [tb_Product_20201110].[ProductName] AS [ProductName], + [tb_Product_20201110].[ColorName] AS [ColorName], + [tb_Product_20201110].[PartNo] AS [PartNo], + [tb_Product_20201110].[Rows] AS [Rows], + [tb_Product_20201110].[Cols] AS [Cols], + [tb_Product_20201110].[Layers] AS [Layers], + [tb_Product_20201110].[PicturePath] AS [PicturePath], + [tb_Product_20201110].[Des] AS [Des], + [tb_Product_20201110].[isImport] AS [isImport], + [tb_Product_20201110].[DeviceNo] AS [DeviceNo], + [tb_Product_20201110].[IsHigh] AS [IsHigh], + [tb_Product_20201110].[OrderNo] AS [OrderNo] + FROM [dbo].[tb_Product_20201110] AS [tb_Product_20201110] + + + SELECT + [tb_Product_20230901].[ProductID] AS [ProductID], + [tb_Product_20230901].[ProductTypeID] AS [ProductTypeID], + [tb_Product_20230901].[ProjectID] AS [ProjectID], + [tb_Product_20230901].[StockNo] AS [StockNo], + [tb_Product_20230901].[PartName] AS [PartName], + [tb_Product_20230901].[ProductName] AS [ProductName], + [tb_Product_20230901].[ColorName] AS [ColorName], + [tb_Product_20230901].[PartNo] AS [PartNo], + [tb_Product_20230901].[Rows] AS [Rows], + [tb_Product_20230901].[Cols] AS [Cols], + [tb_Product_20230901].[Layers] AS [Layers], + [tb_Product_20230901].[PicturePath] AS [PicturePath], + [tb_Product_20230901].[Des] AS [Des], + [tb_Product_20230901].[isImport] AS [isImport], + [tb_Product_20230901].[DeviceNo] AS [DeviceNo], + [tb_Product_20230901].[IsHigh] AS [IsHigh], + [tb_Product_20230901].[OrderNo] AS [OrderNo], + [tb_Product_20230901].[PackQty] AS [PackQty] + FROM [dbo].[tb_Product_20230901] AS [tb_Product_20230901] + + + SELECT + [tb_Product_Injection_20190726].[ID] AS [ID], + [tb_Product_Injection_20190726].[StationID] AS [StationID], + [tb_Product_Injection_20190726].[ProductDate] AS [ProductDate], + [tb_Product_Injection_20190726].[ClassName] AS [ClassName], + [tb_Product_Injection_20190726].[StockNo] AS [StockNo], + [tb_Product_Injection_20190726].[PartNo] AS [PartNo], + [tb_Product_Injection_20190726].[ProductCount] AS [ProductCount], + [tb_Product_Injection_20190726].[BadCount] AS [BadCount] + FROM [dbo].[tb_Product_Injection_20190726] AS [tb_Product_Injection_20190726] + + + SELECT + [tb_Product0912].[ProductID] AS [ProductID], + [tb_Product0912].[ProductTypeID] AS [ProductTypeID], + [tb_Product0912].[ProjectID] AS [ProjectID], + [tb_Product0912].[StockNo] AS [StockNo], + [tb_Product0912].[PartName] AS [PartName], + [tb_Product0912].[ProductName] AS [ProductName], + [tb_Product0912].[ColorName] AS [ColorName], + [tb_Product0912].[PartNo] AS [PartNo], + [tb_Product0912].[Rows] AS [Rows], + [tb_Product0912].[Cols] AS [Cols], + [tb_Product0912].[Layers] AS [Layers], + [tb_Product0912].[PicturePath] AS [PicturePath], + [tb_Product0912].[Des] AS [Des], + [tb_Product0912].[isImport] AS [isImport], + [tb_Product0912].[DeviceNo] AS [DeviceNo], + [tb_Product0912].[IsHigh] AS [IsHigh] + FROM [dbo].[tb_Product0912] AS [tb_Product0912] + + + SELECT + [tb_Product20200802].[ProductID] AS [ProductID], + [tb_Product20200802].[ProductTypeID] AS [ProductTypeID], + [tb_Product20200802].[StockNo] AS [StockNo], + [tb_Product20200802].[PartName] AS [PartName], + [tb_Product20200802].[ProductName] AS [ProductName], + [tb_Product20200802].[ColorName] AS [ColorName], + [tb_Product20200802].[PartNo] AS [PartNo], + [tb_Product20200802].[Rows] AS [Rows], + [tb_Product20200802].[Cols] AS [Cols], + [tb_Product20200802].[Layers] AS [Layers], + [tb_Product20200802].[PicturePath] AS [PicturePath], + [tb_Product20200802].[Des] AS [Des], + [tb_Product20200802].[isImport] AS [isImport], + [tb_Product20200802].[DeviceNo] AS [DeviceNo], + [tb_Product20200802].[IsHigh] AS [IsHigh] + FROM [dbo].[tb_Product20200802] AS [tb_Product20200802] + + + SELECT + [tb_Product20201016].[ProductID] AS [ProductID], + [tb_Product20201016].[ProductTypeID] AS [ProductTypeID], + [tb_Product20201016].[ProjectID] AS [ProjectID], + [tb_Product20201016].[StockNo] AS [StockNo], + [tb_Product20201016].[PartName] AS [PartName], + [tb_Product20201016].[ProductName] AS [ProductName], + [tb_Product20201016].[ColorName] AS [ColorName], + [tb_Product20201016].[PartNo] AS [PartNo], + [tb_Product20201016].[Rows] AS [Rows], + [tb_Product20201016].[Cols] AS [Cols], + [tb_Product20201016].[Layers] AS [Layers], + [tb_Product20201016].[PicturePath] AS [PicturePath], + [tb_Product20201016].[Des] AS [Des], + [tb_Product20201016].[isImport] AS [isImport], + [tb_Product20201016].[DeviceNo] AS [DeviceNo], + [tb_Product20201016].[IsHigh] AS [IsHigh] + FROM [dbo].[tb_Product20201016] AS [tb_Product20201016] + + + SELECT + [tb_Punch_Code_Record_20200721].[ID] AS [ID], + [tb_Punch_Code_Record_20200721].[barcode] AS [barcode], + [tb_Punch_Code_Record_20200721].[BcpID] AS [BcpID], + [tb_Punch_Code_Record_20200721].[ZcID] AS [ZcID], + [tb_Punch_Code_Record_20200721].[OrderNo] AS [OrderNo], + [tb_Punch_Code_Record_20200721].[WorkClass] AS [WorkClass], + [tb_Punch_Code_Record_20200721].[CreateTime] AS [CreateTime], + [tb_Punch_Code_Record_20200721].[PlanID] AS [PlanID] + FROM [dbo].[tb_Punch_Code_Record_20200721] AS [tb_Punch_Code_Record_20200721] + + + SELECT + [tb_Punch_Code_Record_20200907].[ID] AS [ID], + [tb_Punch_Code_Record_20200907].[barcode] AS [barcode], + [tb_Punch_Code_Record_20200907].[BcpID] AS [BcpID], + [tb_Punch_Code_Record_20200907].[ZcID] AS [ZcID], + [tb_Punch_Code_Record_20200907].[OrderNo] AS [OrderNo], + [tb_Punch_Code_Record_20200907].[WorkClass] AS [WorkClass], + [tb_Punch_Code_Record_20200907].[CreateTime] AS [CreateTime], + [tb_Punch_Code_Record_20200907].[PlanID] AS [PlanID] + FROM [dbo].[tb_Punch_Code_Record_20200907] AS [tb_Punch_Code_Record_20200907] + + + SELECT + [tb_Punch_Code_Record_20221231].[ID] AS [ID], + [tb_Punch_Code_Record_20221231].[barcode] AS [barcode], + [tb_Punch_Code_Record_20221231].[BcpID] AS [BcpID], + [tb_Punch_Code_Record_20221231].[ZcID] AS [ZcID], + [tb_Punch_Code_Record_20221231].[OrderNo] AS [OrderNo], + [tb_Punch_Code_Record_20221231].[WorkClass] AS [WorkClass], + [tb_Punch_Code_Record_20221231].[CreateTime] AS [CreateTime], + [tb_Punch_Code_Record_20221231].[PlanID] AS [PlanID], + [tb_Punch_Code_Record_20221231].[SerialNo] AS [SerialNo], + [tb_Punch_Code_Record_20221231].[ToVisual] AS [ToVisual], + [tb_Punch_Code_Record_20221231].[FinishTime] AS [FinishTime], + [tb_Punch_Code_Record_20221231].[PrintTime] AS [PrintTime], + [tb_Punch_Code_Record_20221231].[IsCheck] AS [IsCheck], + [tb_Punch_Code_Record_20221231].[barCode1] AS [barCode1], + [tb_Punch_Code_Record_20221231].[barCode2] AS [barCode2], + [tb_Punch_Code_Record_20221231].[barCode3] AS [barCode3], + [tb_Punch_Code_Record_20221231].[barCode4] AS [barCode4], + [tb_Punch_Code_Record_20221231].[barCode5] AS [barCode5], + [tb_Punch_Code_Record_20221231].[barCode6] AS [barCode6] + FROM [dbo].[tb_Punch_Code_Record_20221231] AS [tb_Punch_Code_Record_20221231] + + + SELECT + [tb_Punch_Code_Record_20230630].[ID] AS [ID], + [tb_Punch_Code_Record_20230630].[barcode] AS [barcode], + [tb_Punch_Code_Record_20230630].[BcpID] AS [BcpID], + [tb_Punch_Code_Record_20230630].[ZcID] AS [ZcID], + [tb_Punch_Code_Record_20230630].[OrderNo] AS [OrderNo], + [tb_Punch_Code_Record_20230630].[WorkClass] AS [WorkClass], + [tb_Punch_Code_Record_20230630].[CreateTime] AS [CreateTime], + [tb_Punch_Code_Record_20230630].[PlanID] AS [PlanID], + [tb_Punch_Code_Record_20230630].[SerialNo] AS [SerialNo], + [tb_Punch_Code_Record_20230630].[ToVisual] AS [ToVisual], + [tb_Punch_Code_Record_20230630].[FinishTime] AS [FinishTime], + [tb_Punch_Code_Record_20230630].[PrintTime] AS [PrintTime], + [tb_Punch_Code_Record_20230630].[IsCheck] AS [IsCheck], + [tb_Punch_Code_Record_20230630].[barCode1] AS [barCode1], + [tb_Punch_Code_Record_20230630].[barCode2] AS [barCode2], + [tb_Punch_Code_Record_20230630].[barCode3] AS [barCode3], + [tb_Punch_Code_Record_20230630].[barCode4] AS [barCode4], + [tb_Punch_Code_Record_20230630].[barCode5] AS [barCode5], + [tb_Punch_Code_Record_20230630].[barCode6] AS [barCode6], + [tb_Punch_Code_Record_20230630].[StationId] AS [StationId], + [tb_Punch_Code_Record_20230630].[Flag] AS [Flag] + FROM [dbo].[tb_Punch_Code_Record_20230630] AS [tb_Punch_Code_Record_20230630] + + + SELECT + [tb_Punch_Code_Record_BF].[ID] AS [ID], + [tb_Punch_Code_Record_BF].[barcode] AS [barcode], + [tb_Punch_Code_Record_BF].[BcpID] AS [BcpID], + [tb_Punch_Code_Record_BF].[ZcID] AS [ZcID], + [tb_Punch_Code_Record_BF].[OrderNo] AS [OrderNo], + [tb_Punch_Code_Record_BF].[WorkClass] AS [WorkClass], + [tb_Punch_Code_Record_BF].[CreateTime] AS [CreateTime], + [tb_Punch_Code_Record_BF].[PlanID] AS [PlanID] + FROM [dbo].[tb_Punch_Code_Record_BF] AS [tb_Punch_Code_Record_BF] + + + SELECT + [tb_PunchAndStation_bak].[ID] AS [ID], + [tb_PunchAndStation_bak].[StationID] AS [StationID], + [tb_PunchAndStation_bak].[ProductID1] AS [ProductID1], + [tb_PunchAndStation_bak].[ProductID2] AS [ProductID2], + [tb_PunchAndStation_bak].[Qty2] AS [Qty2], + [tb_PunchAndStation_bak].[ProductID3] AS [ProductID3], + [tb_PunchAndStation_bak].[Qty3] AS [Qty3], + [tb_PunchAndStation_bak].[ProductID4] AS [ProductID4], + [tb_PunchAndStation_bak].[Qty4] AS [Qty4], + [tb_PunchAndStation_bak].[ProductID5] AS [ProductID5], + [tb_PunchAndStation_bak].[Qty5] AS [Qty5], + [tb_PunchAndStation_bak].[ProductID9] AS [ProductID9], + [tb_PunchAndStation_bak].[Qty9] AS [Qty9], + [tb_PunchAndStation_bak].[ProductID10] AS [ProductID10], + [tb_PunchAndStation_bak].[Qty10] AS [Qty10], + [tb_PunchAndStation_bak].[ProductID11] AS [ProductID11], + [tb_PunchAndStation_bak].[Qty11] AS [Qty11], + [tb_PunchAndStation_bak].[CreateTine] AS [CreateTine], + [tb_PunchAndStation_bak].[DeviceNo] AS [DeviceNo], + [tb_PunchAndStation_bak].[IsCheck] AS [IsCheck], + [tb_PunchAndStation_bak].[AddressNo] AS [AddressNo], + [tb_PunchAndStation_bak].[PortName] AS [PortName], + [tb_PunchAndStation_bak].[CheckDone] AS [CheckDone], + [tb_PunchAndStation_bak].[ProductID6] AS [ProductID6], + [tb_PunchAndStation_bak].[Qty6] AS [Qty6], + [tb_PunchAndStation_bak].[ProductID7] AS [ProductID7], + [tb_PunchAndStation_bak].[Qty7] AS [Qty7], + [tb_PunchAndStation_bak].[ProductID8] AS [ProductID8], + [tb_PunchAndStation_bak].[Qty8] AS [Qty8], + [tb_PunchAndStation_bak].[ProductID12] AS [ProductID12], + [tb_PunchAndStation_bak].[Qty12] AS [Qty12], + [tb_PunchAndStation_bak].[ProductID13] AS [ProductID13], + [tb_PunchAndStation_bak].[Qty13] AS [Qty13], + [tb_PunchAndStation_bak].[ProductID14] AS [ProductID14], + [tb_PunchAndStation_bak].[Qty14] AS [Qty14] + FROM [dbo].[tb_PunchAndStation_bak] AS [tb_PunchAndStation_bak] + + + SELECT + [tb_Record_247].[ID] AS [ID], + [tb_Record_247].[PartNo1] AS [PartNo1], + [tb_Record_247].[PartNo2] AS [PartNo2], + [tb_Record_247].[BoxNo] AS [BoxNo], + [tb_Record_247].[OrderNo] AS [OrderNo], + [tb_Record_247].[CreateTime1] AS [CreateTime1], + [tb_Record_247].[CreateTime2] AS [CreateTime2], + [tb_Record_247].[Flag] AS [Flag], + [tb_Record_247].[Type] AS [Type], + [tb_Record_247].[ToVisual] AS [ToVisual], + [tb_Record_247].[FinishTime] AS [FinishTime], + [tb_Record_247].[DeviceNo] AS [DeviceNo] + FROM [dbo].[tb_Record_247] AS [tb_Record_247] + + + SELECT + [tb_Report_FiveScreen_20191011].[ID] AS [ID], + [tb_Report_FiveScreen_20191011].[Name] AS [Name], + [tb_Report_FiveScreen_20191011].[LastYear] AS [LastYear], + [tb_Report_FiveScreen_20191011].[Jan] AS [Jan], + [tb_Report_FiveScreen_20191011].[Feb] AS [Feb], + [tb_Report_FiveScreen_20191011].[Mar] AS [Mar], + [tb_Report_FiveScreen_20191011].[Apr] AS [Apr], + [tb_Report_FiveScreen_20191011].[May] AS [May], + [tb_Report_FiveScreen_20191011].[Jun] AS [Jun], + [tb_Report_FiveScreen_20191011].[Jul] AS [Jul], + [tb_Report_FiveScreen_20191011].[Aug] AS [Aug], + [tb_Report_FiveScreen_20191011].[Sept] AS [Sept], + [tb_Report_FiveScreen_20191011].[Oct] AS [Oct], + [tb_Report_FiveScreen_20191011].[Nov] AS [Nov], + [tb_Report_FiveScreen_20191011].[Dec] AS [Dec], + [tb_Report_FiveScreen_20191011].[day1] AS [day1], + [tb_Report_FiveScreen_20191011].[day2] AS [day2], + [tb_Report_FiveScreen_20191011].[day3] AS [day3], + [tb_Report_FiveScreen_20191011].[day4] AS [day4], + [tb_Report_FiveScreen_20191011].[day5] AS [day5], + [tb_Report_FiveScreen_20191011].[day6] AS [day6], + [tb_Report_FiveScreen_20191011].[day7] AS [day7], + [tb_Report_FiveScreen_20191011].[day8] AS [day8], + [tb_Report_FiveScreen_20191011].[day9] AS [day9], + [tb_Report_FiveScreen_20191011].[day10] AS [day10], + [tb_Report_FiveScreen_20191011].[day11] AS [day11], + [tb_Report_FiveScreen_20191011].[day12] AS [day12], + [tb_Report_FiveScreen_20191011].[day13] AS [day13], + [tb_Report_FiveScreen_20191011].[day14] AS [day14], + [tb_Report_FiveScreen_20191011].[day15] AS [day15], + [tb_Report_FiveScreen_20191011].[day16] AS [day16], + [tb_Report_FiveScreen_20191011].[day17] AS [day17], + [tb_Report_FiveScreen_20191011].[day18] AS [day18], + [tb_Report_FiveScreen_20191011].[day19] AS [day19], + [tb_Report_FiveScreen_20191011].[day20] AS [day20], + [tb_Report_FiveScreen_20191011].[day21] AS [day21], + [tb_Report_FiveScreen_20191011].[day22] AS [day22], + [tb_Report_FiveScreen_20191011].[day23] AS [day23], + [tb_Report_FiveScreen_20191011].[day24] AS [day24], + [tb_Report_FiveScreen_20191011].[day25] AS [day25], + [tb_Report_FiveScreen_20191011].[day26] AS [day26], + [tb_Report_FiveScreen_20191011].[day27] AS [day27], + [tb_Report_FiveScreen_20191011].[day28] AS [day28], + [tb_Report_FiveScreen_20191011].[day29] AS [day29], + [tb_Report_FiveScreen_20191011].[day30] AS [day30], + [tb_Report_FiveScreen_20191011].[day31] AS [day31], + [tb_Report_FiveScreen_20191011].[CreateTime] AS [CreateTime] + FROM [dbo].[tb_Report_FiveScreen_20191011] AS [tb_Report_FiveScreen_20191011] + + + SELECT + [tb_Report_FiveScreen_20191014].[ID] AS [ID], + [tb_Report_FiveScreen_20191014].[Name] AS [Name], + [tb_Report_FiveScreen_20191014].[LastYear] AS [LastYear], + [tb_Report_FiveScreen_20191014].[Jan] AS [Jan], + [tb_Report_FiveScreen_20191014].[Feb] AS [Feb], + [tb_Report_FiveScreen_20191014].[Mar] AS [Mar], + [tb_Report_FiveScreen_20191014].[Apr] AS [Apr], + [tb_Report_FiveScreen_20191014].[May] AS [May], + [tb_Report_FiveScreen_20191014].[Jun] AS [Jun], + [tb_Report_FiveScreen_20191014].[Jul] AS [Jul], + [tb_Report_FiveScreen_20191014].[Aug] AS [Aug], + [tb_Report_FiveScreen_20191014].[Sept] AS [Sept], + [tb_Report_FiveScreen_20191014].[Oct] AS [Oct], + [tb_Report_FiveScreen_20191014].[Nov] AS [Nov], + [tb_Report_FiveScreen_20191014].[Dec] AS [Dec], + [tb_Report_FiveScreen_20191014].[day1] AS [day1], + [tb_Report_FiveScreen_20191014].[day2] AS [day2], + [tb_Report_FiveScreen_20191014].[day3] AS [day3], + [tb_Report_FiveScreen_20191014].[day4] AS [day4], + [tb_Report_FiveScreen_20191014].[day5] AS [day5], + [tb_Report_FiveScreen_20191014].[day6] AS [day6], + [tb_Report_FiveScreen_20191014].[day7] AS [day7], + [tb_Report_FiveScreen_20191014].[day8] AS [day8], + [tb_Report_FiveScreen_20191014].[day9] AS [day9], + [tb_Report_FiveScreen_20191014].[day10] AS [day10], + [tb_Report_FiveScreen_20191014].[day11] AS [day11], + [tb_Report_FiveScreen_20191014].[day12] AS [day12], + [tb_Report_FiveScreen_20191014].[day13] AS [day13], + [tb_Report_FiveScreen_20191014].[day14] AS [day14], + [tb_Report_FiveScreen_20191014].[day15] AS [day15], + [tb_Report_FiveScreen_20191014].[day16] AS [day16], + [tb_Report_FiveScreen_20191014].[day17] AS [day17], + [tb_Report_FiveScreen_20191014].[day18] AS [day18], + [tb_Report_FiveScreen_20191014].[day19] AS [day19], + [tb_Report_FiveScreen_20191014].[day20] AS [day20], + [tb_Report_FiveScreen_20191014].[day21] AS [day21], + [tb_Report_FiveScreen_20191014].[day22] AS [day22], + [tb_Report_FiveScreen_20191014].[day23] AS [day23], + [tb_Report_FiveScreen_20191014].[day24] AS [day24], + [tb_Report_FiveScreen_20191014].[day25] AS [day25], + [tb_Report_FiveScreen_20191014].[day26] AS [day26], + [tb_Report_FiveScreen_20191014].[day27] AS [day27], + [tb_Report_FiveScreen_20191014].[day28] AS [day28], + [tb_Report_FiveScreen_20191014].[day29] AS [day29], + [tb_Report_FiveScreen_20191014].[day30] AS [day30], + [tb_Report_FiveScreen_20191014].[day31] AS [day31], + [tb_Report_FiveScreen_20191014].[CreateTime] AS [CreateTime] + FROM [dbo].[tb_Report_FiveScreen_20191014] AS [tb_Report_FiveScreen_20191014] + + + SELECT + [tb_ReportPaintingScreen].[color] AS [color], + [tb_ReportPaintingScreen].[productInfo] AS [productInfo], + [tb_ReportPaintingScreen].[sumNum] AS [sumNum], + [tb_ReportPaintingScreen].[oncePassNum] AS [oncePassNum], + [tb_ReportPaintingScreen].[oncePassRate] AS [oncePassRate], + [tb_ReportPaintingScreen].[sumPassNum] AS [sumPassNum], + [tb_ReportPaintingScreen].[sumPassRate] AS [sumPassRate] + FROM [dbo].[tb_ReportPaintingScreen] AS [tb_ReportPaintingScreen] + + + SELECT + [tb_ReportPaintingScreen_bak].[color] AS [color], + [tb_ReportPaintingScreen_bak].[productInfo] AS [productInfo], + [tb_ReportPaintingScreen_bak].[sumNum] AS [sumNum], + [tb_ReportPaintingScreen_bak].[oncePassNum] AS [oncePassNum], + [tb_ReportPaintingScreen_bak].[oncePassRate] AS [oncePassRate], + [tb_ReportPaintingScreen_bak].[sumPassNum] AS [sumPassNum], + [tb_ReportPaintingScreen_bak].[sumPassRate] AS [sumPassRate] + FROM [dbo].[tb_ReportPaintingScreen_bak] AS [tb_ReportPaintingScreen_bak] + + + SELECT + [tb_ReportPaintingScreen_pg].[color] AS [color], + [tb_ReportPaintingScreen_pg].[productInfo] AS [productInfo], + [tb_ReportPaintingScreen_pg].[sumNum] AS [sumNum], + [tb_ReportPaintingScreen_pg].[hgNum] AS [hgNum], + [tb_ReportPaintingScreen_pg].[DefectName1] AS [DefectName1], + [tb_ReportPaintingScreen_pg].[defectRate1] AS [defectRate1], + [tb_ReportPaintingScreen_pg].[DefectName2] AS [DefectName2], + [tb_ReportPaintingScreen_pg].[defectRate2] AS [defectRate2], + [tb_ReportPaintingScreen_pg].[DefectName3] AS [DefectName3], + [tb_ReportPaintingScreen_pg].[defectRate3] AS [defectRate3], + [tb_ReportPaintingScreen_pg].[DefectName4] AS [DefectName4], + [tb_ReportPaintingScreen_pg].[defectRate4] AS [defectRate4], + [tb_ReportPaintingScreen_pg].[DefectName5] AS [DefectName5], + [tb_ReportPaintingScreen_pg].[defectRate5] AS [defectRate5] + FROM [dbo].[tb_ReportPaintingScreen_pg] AS [tb_ReportPaintingScreen_pg] + + + SELECT + [tb_ReportPaintingScreen_pg_bak].[color] AS [color], + [tb_ReportPaintingScreen_pg_bak].[productInfo] AS [productInfo], + [tb_ReportPaintingScreen_pg_bak].[sumNum] AS [sumNum], + [tb_ReportPaintingScreen_pg_bak].[hgNum] AS [hgNum], + [tb_ReportPaintingScreen_pg_bak].[DefectName1] AS [DefectName1], + [tb_ReportPaintingScreen_pg_bak].[defectRate1] AS [defectRate1], + [tb_ReportPaintingScreen_pg_bak].[DefectName2] AS [DefectName2], + [tb_ReportPaintingScreen_pg_bak].[defectRate2] AS [defectRate2], + [tb_ReportPaintingScreen_pg_bak].[DefectName3] AS [DefectName3], + [tb_ReportPaintingScreen_pg_bak].[defectRate3] AS [defectRate3], + [tb_ReportPaintingScreen_pg_bak].[DefectName4] AS [DefectName4], + [tb_ReportPaintingScreen_pg_bak].[defectRate4] AS [defectRate4], + [tb_ReportPaintingScreen_pg_bak].[DefectName5] AS [DefectName5], + [tb_ReportPaintingScreen_pg_bak].[defectRate5] AS [defectRate5] + FROM [dbo].[tb_ReportPaintingScreen_pg_bak] AS [tb_ReportPaintingScreen_pg_bak] + + + SELECT + [tb_SkidInfo_20200904].[ID] AS [ID], + [tb_SkidInfo_20200904].[SkidNo] AS [SkidNo], + [tb_SkidInfo_20200904].[BarcodeLeft] AS [BarcodeLeft], + [tb_SkidInfo_20200904].[BarcodeRight] AS [BarcodeRight], + [tb_SkidInfo_20200904].[Layer] AS [Layer], + [tb_SkidInfo_20200904].[ColorInfo] AS [ColorInfo], + [tb_SkidInfo_20200904].[CreateTime] AS [CreateTime], + [tb_SkidInfo_20200904].[Side_1_BC01] AS [Side_1_BC01], + [tb_SkidInfo_20200904].[Side_1_BC02] AS [Side_1_BC02], + [tb_SkidInfo_20200904].[Side_1_BC03] AS [Side_1_BC03], + [tb_SkidInfo_20200904].[Side_1_BC04] AS [Side_1_BC04], + [tb_SkidInfo_20200904].[Side_1_BC05] AS [Side_1_BC05], + [tb_SkidInfo_20200904].[Side_1_BC06] AS [Side_1_BC06], + [tb_SkidInfo_20200904].[Side_1_BC07] AS [Side_1_BC07], + [tb_SkidInfo_20200904].[Side_1_BC08] AS [Side_1_BC08], + [tb_SkidInfo_20200904].[Side_1_BC09] AS [Side_1_BC09], + [tb_SkidInfo_20200904].[Side_1_BC10] AS [Side_1_BC10], + [tb_SkidInfo_20200904].[Side_1_BC11] AS [Side_1_BC11], + [tb_SkidInfo_20200904].[Side_1_BC12] AS [Side_1_BC12], + [tb_SkidInfo_20200904].[Side_2_BC01] AS [Side_2_BC01], + [tb_SkidInfo_20200904].[Side_2_BC02] AS [Side_2_BC02], + [tb_SkidInfo_20200904].[Side_2_BC03] AS [Side_2_BC03], + [tb_SkidInfo_20200904].[Side_2_BC04] AS [Side_2_BC04], + [tb_SkidInfo_20200904].[Side_2_BC05] AS [Side_2_BC05], + [tb_SkidInfo_20200904].[Side_2_BC06] AS [Side_2_BC06], + [tb_SkidInfo_20200904].[Side_2_BC07] AS [Side_2_BC07], + [tb_SkidInfo_20200904].[Side_2_BC08] AS [Side_2_BC08], + [tb_SkidInfo_20200904].[Side_2_BC09] AS [Side_2_BC09], + [tb_SkidInfo_20200904].[Side_2_BC10] AS [Side_2_BC10], + [tb_SkidInfo_20200904].[Side_2_BC11] AS [Side_2_BC11], + [tb_SkidInfo_20200904].[Side_2_BC12] AS [Side_2_BC12] + FROM [dbo].[tb_SkidInfo_20200904] AS [tb_SkidInfo_20200904] + + + SELECT + [tb_StockIn].[ID] AS [ID], + [tb_StockIn].[barcode] AS [barcode], + [tb_StockIn].[pass] AS [pass], + [tb_StockIn].[createTime] AS [createTime], + [tb_StockIn].[paintCode] AS [paintCode], + [tb_StockIn].[ZcCode] AS [ZcCode] + FROM [dbo].[tb_StockIn] AS [tb_StockIn] + + + SELECT + [tb_StockIn_20200511].[ID] AS [ID], + [tb_StockIn_20200511].[barcode] AS [barcode], + [tb_StockIn_20200511].[pass] AS [pass], + [tb_StockIn_20200511].[createTime] AS [createTime], + [tb_StockIn_20200511].[paintCode] AS [paintCode], + [tb_StockIn_20200511].[ZcCode] AS [ZcCode] + FROM [dbo].[tb_StockIn_20200511] AS [tb_StockIn_20200511] + + + SELECT + [tb_StockIn_20210322].[ID] AS [ID], + [tb_StockIn_20210322].[barcode] AS [barcode], + [tb_StockIn_20210322].[pass] AS [pass], + [tb_StockIn_20210322].[createTime] AS [createTime], + [tb_StockIn_20210322].[paintCode] AS [paintCode], + [tb_StockIn_20210322].[ZcCode] AS [ZcCode] + FROM [dbo].[tb_StockIn_20210322] AS [tb_StockIn_20210322] + + + SELECT + [test1].[ID] AS [ID], + [test1].[StationID] AS [StationID], + [test1].[StockNo] AS [StockNo], + [test1].[PrintType] AS [PrintType], + [test1].[OneBarCode] AS [OneBarCode], + [test1].[PlanID] AS [PlanID], + [test1].[CreateTime] AS [CreateTime], + [test1].[ProductName] AS [ProductName], + [test1].[PartNo] AS [PartNo], + [test1].[ProductDate] AS [ProductDate], + [test1].[ClassName] AS [ClassName] + FROM [dbo].[test1] AS [test1] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx.diagram b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx.diagram new file mode 100644 index 0000000..a73848c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.edmx.diagram @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESClassLibrary/EFModel/BBMPT.tt b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.tt new file mode 100644 index 0000000..31b3d53 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/BBMPT.tt @@ -0,0 +1,733 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"BBMPT.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var fileManager = EntityFrameworkTemplateFileManager.Create(this); +var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile)) +{ + return string.Empty; +} + +WriteHeader(codeStringGenerator, fileManager); + +foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(entity.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false)#> +<#=codeStringGenerator.EntityClassOpening(entity)#> +{ +<# + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity); + var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity); + var complexProperties = typeMapper.GetComplexProperties(entity); + + if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any()) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public <#=code.Escape(entity)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var navigationProperty in collectionNavigationProperties) + { +#> + this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>(); +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(entity); + if (simpleProperties.Any()) + { + foreach (var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var complexProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(complexProperty)#> +<# + } + } + + var navigationProperties = typeMapper.GetNavigationProperties(entity); + if (navigationProperties.Any()) + { +#> + +<# + foreach (var navigationProperty in navigationProperties) + { + if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] +<# + } +#> + <#=codeStringGenerator.NavigationProperty(navigationProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var complex in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(complex.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#> +{ +<# + var complexProperties = typeMapper.GetComplexProperties(complex); + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex); + + if (propertiesWithDefaultValues.Any() || complexProperties.Any()) + { +#> + public <#=code.Escape(complex)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(complex); + if (simpleProperties.Any()) + { + foreach(var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var edmProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(enumType.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<# + if (typeMapper.EnumIsFlags(enumType)) + { +#> +[Flags] +<# + } +#> +<#=codeStringGenerator.EnumOpening(enumType)#> +{ +<# + var foundOne = false; + + foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType)) + { + foundOne = true; +#> + <#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>, +<# + } + + if (foundOne) + { + this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1); + } +#> +} +<# + EndNamespace(code); +} + +fileManager.Process(); + +#> +<#+ + +public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager) +{ + fileManager.StartHeader(); +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ +<#=codeStringGenerator.UsingDirectives(inHeader: true)#> +<#+ + fileManager.EndBlock(); +} + +public void BeginNamespace(CodeGenerationTools code) +{ + var codeNamespace = code.VsNamespaceSuggestion(); + if (!String.IsNullOrEmpty(codeNamespace)) + { +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<#+ + PushIndent(" "); + } +} + +public void EndNamespace(CodeGenerationTools code) +{ + if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion())) + { + PopIndent(); +#> +} +<#+ + } +} + +public const string TemplateId = "CSharp_DbContext_Types_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogErr.cs b/BBMPTMes/MESClassLibrary/EFModel/LogErr.cs new file mode 100644 index 0000000..46390e0 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogErr.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogErr + { + public string ID { get; set; } + public string ErrContent { get; set; } + public string ErrSource { get; set; } + public Nullable ErrTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys.cs new file mode 100644 index 0000000..391df06 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys_202001_04.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202001_04.cs new file mode 100644 index 0000000..51b10fe --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202001_04.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys_202001_04 + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys_202003.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202003.cs new file mode 100644 index 0000000..6b645e0 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202003.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys_202003 + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys_202004.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202004.cs new file mode 100644 index 0000000..88b5472 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202004.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys_202004 + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys_202005.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202005.cs new file mode 100644 index 0000000..75648b2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202005.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys_202005 + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys_20200605.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys_20200605.cs new file mode 100644 index 0000000..6ae55c0 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys_20200605.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys_20200605 + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys_20200610.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys_20200610.cs new file mode 100644 index 0000000..1a1fea5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys_20200610.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys_20200610 + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys_202008.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202008.cs new file mode 100644 index 0000000..fc531ff --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys_202008.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys_202008 + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/LogSys_20210322.cs b/BBMPTMes/MESClassLibrary/EFModel/LogSys_20210322.cs new file mode 100644 index 0000000..3341e4b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/LogSys_20210322.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class LogSys_20210322 + { + public string ID { get; set; } + public string SysContent { get; set; } + public string SysSource { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_BLOB_TRIGGERS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_BLOB_TRIGGERS.cs new file mode 100644 index 0000000..e7a7eb7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_BLOB_TRIGGERS.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_BLOB_TRIGGERS + { + public string SCHED_NAME { get; set; } + public string TRIGGER_GROUP { get; set; } + public string TRIGGER_NAME { get; set; } + public byte[] BLOB_DATA { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_CALENDARS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_CALENDARS.cs new file mode 100644 index 0000000..a7d0fd3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_CALENDARS.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_CALENDARS + { + public string CALENDAR_NAME { get; set; } + public string SCHED_NAME { get; set; } + public byte[] CALENDAR { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_CRON_TRIGGERS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_CRON_TRIGGERS.cs new file mode 100644 index 0000000..2cd3c31 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_CRON_TRIGGERS.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_CRON_TRIGGERS + { + public string SCHED_NAME { get; set; } + public string TRIGGER_GROUP { get; set; } + public string TRIGGER_NAME { get; set; } + public string CRON_EXPRESSION { get; set; } + public string TIME_ZONE_ID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_FIRED_TRIGGERS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_FIRED_TRIGGERS.cs new file mode 100644 index 0000000..afd93ae --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_FIRED_TRIGGERS.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_FIRED_TRIGGERS + { + public string ENTRY_ID { get; set; } + public string SCHED_NAME { get; set; } + public decimal FIRED_TIME { get; set; } + public string INSTANCE_NAME { get; set; } + public bool IS_NONCONCURRENT { get; set; } + public string JOB_GROUP { get; set; } + public string JOB_NAME { get; set; } + public Nullable PRIORITY { get; set; } + public bool REQUESTS_RECOVERY { get; set; } + public decimal SCHED_TIME { get; set; } + public string STATE { get; set; } + public string TRIGGER_GROUP { get; set; } + public string TRIGGER_NAME { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_JOB_DETAILS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_JOB_DETAILS.cs new file mode 100644 index 0000000..b522c6f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_JOB_DETAILS.cs @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_JOB_DETAILS + { + public string JOB_GROUP { get; set; } + public string JOB_NAME { get; set; } + public string SCHED_NAME { get; set; } + public string DESCRIPTION { get; set; } + public bool IS_DURABLE { get; set; } + public bool IS_NONCONCURRENT { get; set; } + public bool IS_UPDATE_DATA { get; set; } + public string JOB_CLASS_NAME { get; set; } + public byte[] JOB_DATA { get; set; } + public bool REQUESTS_RECOVERY { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_LOCKS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_LOCKS.cs new file mode 100644 index 0000000..ce1cc9e --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_LOCKS.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_LOCKS + { + public string LOCK_NAME { get; set; } + public string SCHED_NAME { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_PAUSED_TRIGGER_GRPS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_PAUSED_TRIGGER_GRPS.cs new file mode 100644 index 0000000..bd1a628 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_PAUSED_TRIGGER_GRPS.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_PAUSED_TRIGGER_GRPS + { + public string SCHED_NAME { get; set; } + public string TRIGGER_GROUP { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SCHEDULER_STATE.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SCHEDULER_STATE.cs new file mode 100644 index 0000000..9deb060 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SCHEDULER_STATE.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_SCHEDULER_STATE + { + public string INSTANCE_NAME { get; set; } + public string SCHED_NAME { get; set; } + public decimal CHECKIN_INTERVAL { get; set; } + public decimal LAST_CHECKIN_TIME { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SIMPLE_TRIGGERS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SIMPLE_TRIGGERS.cs new file mode 100644 index 0000000..db49c20 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SIMPLE_TRIGGERS.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_SIMPLE_TRIGGERS + { + public string SCHED_NAME { get; set; } + public string TRIGGER_GROUP { get; set; } + public string TRIGGER_NAME { get; set; } + public decimal REPEAT_COUNT { get; set; } + public decimal REPEAT_INTERVAL { get; set; } + public decimal TIMES_TRIGGERED { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SIMPROP_TRIGGERS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SIMPROP_TRIGGERS.cs new file mode 100644 index 0000000..ff2d1f3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_SIMPROP_TRIGGERS.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_SIMPROP_TRIGGERS + { + public string SCHED_NAME { get; set; } + public string TRIGGER_GROUP { get; set; } + public string TRIGGER_NAME { get; set; } + public Nullable BOOL_PROP_1 { get; set; } + public Nullable BOOL_PROP_2 { get; set; } + public Nullable DEC_PROP_1 { get; set; } + public Nullable DEC_PROP_2 { get; set; } + public Nullable INT_PROP_1 { get; set; } + public Nullable INT_PROP_2 { get; set; } + public Nullable LONG_PROP_1 { get; set; } + public Nullable LONG_PROP_2 { get; set; } + public string STR_PROP_1 { get; set; } + public string STR_PROP_2 { get; set; } + public string STR_PROP_3 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/QRTZ_TRIGGERS.cs b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_TRIGGERS.cs new file mode 100644 index 0000000..a77231b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/QRTZ_TRIGGERS.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class QRTZ_TRIGGERS + { + public string SCHED_NAME { get; set; } + public string TRIGGER_GROUP { get; set; } + public string TRIGGER_NAME { get; set; } + public string APPOINT_ID { get; set; } + public string CALENDAR_NAME { get; set; } + public string DESCRIPTION { get; set; } + public decimal END_TIME { get; set; } + public byte[] JOB_DATA { get; set; } + public string JOB_GROUP { get; set; } + public string JOB_NAME { get; set; } + public Nullable MISFIRE_INSTR { get; set; } + public Nullable NEXT_FIRE_TIME { get; set; } + public Nullable PREV_FIRE_TIME { get; set; } + public Nullable PRIORITY { get; set; } + public decimal START_TIME { get; set; } + public string TRIGGER_STATE { get; set; } + public string TRIGGER_TYPE { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/TA_DEPT.cs b/BBMPTMes/MESClassLibrary/EFModel/TA_DEPT.cs new file mode 100644 index 0000000..33c41b7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/TA_DEPT.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class TA_DEPT + { + public System.Guid GUID { get; set; } + public string DeptCode { get; set; } + public string DeptName { get; set; } + public string CreateUser { get; set; } + public Nullable CreateTime { get; set; } + public string UpdateUser { get; set; } + public Nullable UpdateTime { get; set; } + public string Remark { get; set; } + public Nullable UID { get; set; } + public Nullable Enable { get; set; } + public string Domain { get; set; } + public string Site { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/TES_BOM.cs b/BBMPTMes/MESClassLibrary/EFModel/TES_BOM.cs new file mode 100644 index 0000000..43f2212 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/TES_BOM.cs @@ -0,0 +1,45 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class TES_BOM + { + public string ParentPart { get; set; } + public string ComponentPart { get; set; } + public string Reference { get; set; } + public string StartEffective { get; set; } + public string QuantityPer { get; set; } + public string StructureType { get; set; } + public string EndEffective { get; set; } + public string Remarks { get; set; } + public string Scrap { get; set; } + public string LeadTimeOffset { get; set; } + public string Operation { get; set; } + public string SequenceNumber { get; set; } + public string FporecastPercent { get; set; } + public string OptionGroup { get; set; } + public string Process { get; set; } + public string GUID { get; set; } + public string UID { get; set; } + public string CreateUser { get; set; } + public string CreateTime { get; set; } + public string Remark { get; set; } + public string TaskID { get; set; } + public string CommandType { get; set; } + public string DataID { get; set; } + public string Domain { get; set; } + public string Site { get; set; } + public Nullable InsertTime { get; set; } + public Nullable Flag { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/TES_PART_MSTR.cs b/BBMPTMes/MESClassLibrary/EFModel/TES_PART_MSTR.cs new file mode 100644 index 0000000..fdb24e2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/TES_PART_MSTR.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class TES_PART_MSTR + { + public string GUID { get; set; } + public string PartCode { get; set; } + public string Desc1 { get; set; } + public string Desc2 { get; set; } + public string Um { get; set; } + public string ProdLine { get; set; } + public string AddDate { get; set; } + public string PartType { get; set; } + public string Status { get; set; } + public string Qgrade { get; set; } + public string InventoryCode { get; set; } + public string UID { get; set; } + public string Remark { get; set; } + public string TaskID { get; set; } + public string CommandType { get; set; } + public string Domain { get; set; } + public string Site { get; set; } + public Nullable CreatTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_PaintInfo.cs b/BBMPTMes/MESClassLibrary/EFModel/T_PaintInfo.cs new file mode 100644 index 0000000..a7ea1b6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_PaintInfo.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_PaintInfo + { + public int ID { get; set; } + public string PaintCode { get; set; } + public string PaintName { get; set; } + public string PaintModel { get; set; } + public string UnitCode { get; set; } + public string CarModelCode { get; set; } + public int IsUsing { get; set; } + public System.DateTime CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Buttons.cs b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Buttons.cs new file mode 100644 index 0000000..ecb9b81 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Buttons.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_Sys_Buttons + { + public System.Guid BtnID { get; set; } + public string BtnName { get; set; } + public string ItemPic { get; set; } + public Nullable PowerID { get; set; } + public Nullable MenuID { get; set; } + public string MenuName { get; set; } + public string IsEnabled { get; set; } + public string BtnCode { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_Sys_NavMenu.cs b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_NavMenu.cs new file mode 100644 index 0000000..32fcf66 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_NavMenu.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_Sys_NavMenu + { + public System.Guid MenuID { get; set; } + public string MenuName { get; set; } + public string URLStr { get; set; } + public string ItemPic { get; set; } + public Nullable PowerID { get; set; } + public Nullable ParentMenuID { get; set; } + public string IsEnabled { get; set; } + public string OrderNum { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Power.cs b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Power.cs new file mode 100644 index 0000000..40f271d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Power.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_Sys_Power + { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public T_Sys_Power() + { + this.T_Sys_RoleLinkPower = new HashSet(); + } + + public System.Guid PowerID { get; set; } + public string PowerCode { get; set; } + public string PowerName { get; set; } + public string OpName { get; set; } + public Nullable OpTime { get; set; } + + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] + public virtual ICollection T_Sys_RoleLinkPower { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Role.cs b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Role.cs new file mode 100644 index 0000000..c7c5420 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Role.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_Sys_Role + { + public System.Guid RoleID { get; set; } + public string RoleName { get; set; } + public string Description { get; set; } + public string OpName { get; set; } + public Nullable OpTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_Sys_RoleLinkPower.cs b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_RoleLinkPower.cs new file mode 100644 index 0000000..578e39d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_RoleLinkPower.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_Sys_RoleLinkPower + { + public System.Guid RoleID { get; set; } + public System.Guid PowerID { get; set; } + public Nullable OpTime { get; set; } + public string OpName { get; set; } + + public virtual T_Sys_Power T_Sys_Power { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_Sys_UserRole.cs b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_UserRole.cs new file mode 100644 index 0000000..bc8f4dc --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_UserRole.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_Sys_UserRole + { + public System.Guid UserID { get; set; } + public System.Guid RoleID { get; set; } + public Nullable OpTime { get; set; } + public string OpName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Users.cs b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Users.cs new file mode 100644 index 0000000..f9989dd --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Users.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_Sys_Users + { + public System.Guid UserID { get; set; } + public string UserName { get; set; } + public string Password { get; set; } + public string IsEnabled { get; set; } + public string RealName { get; set; } + public string Sex { get; set; } + public string Tel { get; set; } + public Nullable LastLoginTime { get; set; } + public string LastLoginIP { get; set; } + public Nullable DepartmentID { get; set; } + public string OpName { get; set; } + public Nullable OpTime { get; set; } + public string Department { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Users_NavMenu.cs b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Users_NavMenu.cs new file mode 100644 index 0000000..8b8b008 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/T_Sys_Users_NavMenu.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class T_Sys_Users_NavMenu + { + public int ID { get; set; } + public Nullable UserID { get; set; } + public Nullable MenuID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_authority.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_authority.cs new file mode 100644 index 0000000..7d8d87f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_authority.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_authority + { + public string id { get; set; } + public int authority { get; set; } + public string authorityEntityId { get; set; } + public int authorityEntityType { get; set; } + public int authorityType { get; set; } + public string roleId { get; set; } + public int roleType { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_authority_object.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_authority_object.cs new file mode 100644 index 0000000..1504fc8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_authority_object.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_authority_object + { + public string id { get; set; } + public string expandId { get; set; } + public Nullable expandType { get; set; } + public string fullPath { get; set; } + public string parentId { get; set; } + public string coverId { get; set; } + public string description { get; set; } + public Nullable deviceType { get; set; } + public string displayName { get; set; } + public string icon { get; set; } + public string mobileIcon { get; set; } + public string path { get; set; } + public Nullable sortIndex { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_backup_node.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_backup_node.cs new file mode 100644 index 0000000..373170a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_backup_node.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_backup_node + { + public string id { get; set; } + public string backupModule { get; set; } + public string backupName { get; set; } + public Nullable backupTime { get; set; } + public string savePath { get; set; } + public Nullable backupSize { get; set; } + public string type { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_base_message.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_base_message.cs new file mode 100644 index 0000000..8b1ecd1 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_base_message.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_base_message + { + public string id { get; set; } + public Nullable createTime { get; set; } + public Nullable datetime { get; set; } + public string message { get; set; } + public Nullable readed { get; set; } + public Nullable toasted { get; set; } + public Nullable type { get; set; } + public string url { get; set; } + public Nullable urlType { get; set; } + public string userId { get; set; } + public string username { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_base_output.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_base_output.cs new file mode 100644 index 0000000..3b2d009 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_base_output.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_base_output + { + public string id { get; set; } + public string actionName { get; set; } + public bool executeByUser { get; set; } + public string outputId { get; set; } + public string resultURL { get; set; } + public int runType { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_block_ip.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_block_ip.cs new file mode 100644 index 0000000..a870be3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_block_ip.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_block_ip + { + public string id { get; set; } + public Nullable createTime { get; set; } + public string ip { get; set; } + public Nullable rejectedVisits { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_conf_classname.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_conf_classname.cs new file mode 100644 index 0000000..fea7941 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_conf_classname.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_conf_classname + { + public string id { get; set; } + public string className { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_conf_entity.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_conf_entity.cs new file mode 100644 index 0000000..864ac5d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_conf_entity.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_conf_entity + { + public string id { get; set; } + public string value { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_conf_xmlentity.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_conf_xmlentity.cs new file mode 100644 index 0000000..e949b50 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_conf_xmlentity.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_conf_xmlentity + { + public string id { get; set; } + public byte[] value { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_custom_role.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_custom_role.cs new file mode 100644 index 0000000..ada12b8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_custom_role.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_custom_role + { + public string id { get; set; } + public string alias { get; set; } + public int creationType { get; set; } + public string description { get; set; } + public Nullable enable { get; set; } + public int lastOperationType { get; set; } + public string name { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_dep_role.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_dep_role.cs new file mode 100644 index 0000000..6b46aa5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_dep_role.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_dep_role + { + public string id { get; set; } + public int creationType { get; set; } + public string departmentId { get; set; } + public string fullPath { get; set; } + public int lastOperationType { get; set; } + public string postId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_department.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_department.cs new file mode 100644 index 0000000..c86b048 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_department.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_department + { + public string id { get; set; } + public string alias { get; set; } + public int creationType { get; set; } + public string description { get; set; } + public Nullable enable { get; set; } + public string fullPath { get; set; } + public int lastOperationType { get; set; } + public string name { get; set; } + public string parentId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_extra_property.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_extra_property.cs new file mode 100644 index 0000000..e64c2ec --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_extra_property.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_extra_property + { + public string id { get; set; } + public string name { get; set; } + public string relatedId { get; set; } + public int type { get; set; } + public string value { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_favorite_entry.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_favorite_entry.cs new file mode 100644 index 0000000..748e7f9 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_favorite_entry.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_favorite_entry + { + public string id { get; set; } + public string entryId { get; set; } + public Nullable time { get; set; } + public string userId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_homepage_expand.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_homepage_expand.cs new file mode 100644 index 0000000..5a742ee --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_homepage_expand.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_homepage_expand + { + public string id { get; set; } + public string androidPadHomePage { get; set; } + public string androidPhoneHomePage { get; set; } + public string iPadHomePage { get; set; } + public string iPhoneHomePage { get; set; } + public string pcHomePage { get; set; } + public Nullable type { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_international.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_international.cs new file mode 100644 index 0000000..78f9f29 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_international.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_international + { + public string id { get; set; } + public string description { get; set; } + public string i18nKey { get; set; } + public string language { get; set; } + public string i18nValue { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_last_login.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_last_login.cs new file mode 100644 index 0000000..138191d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_last_login.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_last_login + { + public string id { get; set; } + public string city { get; set; } + public string ip { get; set; } + public Nullable time { get; set; } + public string userId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_login_lock.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_login_lock.cs new file mode 100644 index 0000000..cdd5140 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_login_lock.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_login_lock + { + public string id { get; set; } + public Nullable errorTime { get; set; } + public string lockObject { get; set; } + public string lockObjectValue { get; set; } + public Nullable lockTime { get; set; } + public Nullable locked { get; set; } + public Nullable unlockTime { get; set; } + public string userId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_mobile_device.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_mobile_device.cs new file mode 100644 index 0000000..3f81126 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_mobile_device.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_mobile_device + { + public string id { get; set; } + public Nullable createDate { get; set; } + public string deviceName { get; set; } + public string macAddress { get; set; } + public Nullable passed { get; set; } + public Nullable updateDate { get; set; } + public string username { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_mobile_push_message.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_mobile_push_message.cs new file mode 100644 index 0000000..0a16307 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_mobile_push_message.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_mobile_push_message + { + public string id { get; set; } + public string groupId { get; set; } + public string mediaId { get; set; } + public Nullable msgType { get; set; } + public Nullable terminal { get; set; } + public string title { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_class.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_class.cs new file mode 100644 index 0000000..0222ba4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_class.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_class + { + public string id { get; set; } + public string className { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_client_notice.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_client_notice.cs new file mode 100644 index 0000000..d38eb59 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_client_notice.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_client_notice + { + public string id { get; set; } + public string addressee { get; set; } + public string content { get; set; } + public string customizeLink { get; set; } + public Nullable linkOpenType { get; set; } + public string mediaId { get; set; } + public string subject { get; set; } + public Nullable terminal { get; set; } + public Nullable type { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_email.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_email.cs new file mode 100644 index 0000000..9bf60d6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_email.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_email + { + public string id { get; set; } + public Nullable addLink { get; set; } + public string bccAddress { get; set; } + public string bodyContent { get; set; } + public string ccAddress { get; set; } + public string customAddress { get; set; } + public string customBccAddress { get; set; } + public string customCcAddress { get; set; } + public Nullable previewAttach { get; set; } + public string subject { get; set; } + public Nullable useAttach { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_ftp.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_ftp.cs new file mode 100644 index 0000000..482eb9c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_ftp.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_ftp + { + public string id { get; set; } + public string ftpMode { get; set; } + public string password { get; set; } + public string port { get; set; } + public string savePath { get; set; } + public string serverAddress { get; set; } + public string username { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_mount.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_mount.cs new file mode 100644 index 0000000..30ef2c9 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_mount.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_mount + { + public string id { get; set; } + public string description { get; set; } + public string folderEntryID { get; set; } + public string folderEntryName { get; set; } + public string folderEntryStr { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_platform_msg.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_platform_msg.cs new file mode 100644 index 0000000..7e3de3a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_platform_msg.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_platform_msg + { + public string id { get; set; } + public string content { get; set; } + public Nullable linkOpenType { get; set; } + public string subject { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_print.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_print.cs new file mode 100644 index 0000000..c3b9a0a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_print.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_print + { + public string id { get; set; } + public string printerName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_sftp.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_sftp.cs new file mode 100644 index 0000000..71c07af --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_sftp.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_sftp + { + public string id { get; set; } + public string password { get; set; } + public string port { get; set; } + public string privateKey { get; set; } + public string savePath { get; set; } + public string serverAddress { get; set; } + public string username { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_output_sms.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_output_sms.cs new file mode 100644 index 0000000..5d695ca --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_output_sms.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_output_sms + { + public string id { get; set; } + public string smsParam { get; set; } + public Nullable templateID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_param_template.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_param_template.cs new file mode 100644 index 0000000..64e857d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_param_template.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_param_template + { + public string id { get; set; } + public string templateid { get; set; } + public string tpgroup { get; set; } + public string username { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_post.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_post.cs new file mode 100644 index 0000000..6ef6eef --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_post.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_post + { + public string id { get; set; } + public string alias { get; set; } + public int creationType { get; set; } + public string description { get; set; } + public Nullable enable { get; set; } + public int lastOperationType { get; set; } + public string name { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_print_offset.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_print_offset.cs new file mode 100644 index 0000000..f5bb209 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_print_offset.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_print_offset + { + public string id { get; set; } + public string cptName { get; set; } + public string ip { get; set; } + public string offsetX { get; set; } + public string offsetY { get; set; } + public string sign { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_print_offset_ip_relate.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_print_offset_ip_relate.cs new file mode 100644 index 0000000..c88d971 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_print_offset_ip_relate.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_print_offset_ip_relate + { + public string id { get; set; } + public string childIP { get; set; } + public string motherID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_process_expand.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_process_expand.cs new file mode 100644 index 0000000..239f104 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_process_expand.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_process_expand + { + public string id { get; set; } + public int processType { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_process_message.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_process_message.cs new file mode 100644 index 0000000..02416f7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_process_message.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_process_message + { + public string id { get; set; } + public string allTaskId { get; set; } + public Nullable deadLine { get; set; } + public Nullable processed { get; set; } + public string taskId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_remote_design_auth.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_remote_design_auth.cs new file mode 100644 index 0000000..d974442 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_remote_design_auth.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_remote_design_auth + { + public string id { get; set; } + public string path { get; set; } + public bool pathType { get; set; } + public int roleType { get; set; } + public string userId { get; set; } + public string userName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_report_expand.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_report_expand.cs new file mode 100644 index 0000000..5cde1b6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_report_expand.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_report_expand + { + public string id { get; set; } + public int showType { get; set; } + public string transmitParameters { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_output.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_output.cs new file mode 100644 index 0000000..6ace611 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_output.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_schedule_output + { + public string id { get; set; } + public string baseName { get; set; } + public Nullable createAttachByUsername { get; set; } + public string formats { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_record.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_record.cs new file mode 100644 index 0000000..399e319 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_record.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_schedule_record + { + public string id { get; set; } + public string creator { get; set; } + public string detailMessage { get; set; } + public string filePath { get; set; } + public string logMessage { get; set; } + public Nullable logTime { get; set; } + public Nullable logType { get; set; } + public Nullable nextFireTime { get; set; } + public Nullable runType { get; set; } + public string taskId { get; set; } + public string taskName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_task.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_task.cs new file mode 100644 index 0000000..e80829a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_task.cs @@ -0,0 +1,41 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_schedule_task + { + public string id { get; set; } + public string backupFilePath { get; set; } + public string conditionParameter { get; set; } + public string creator { get; set; } + public Nullable editable { get; set; } + public Nullable fileClearCount { get; set; } + public Nullable nextFireTime { get; set; } + public string outputStr { get; set; } + public Nullable preFireTime { get; set; } + public Nullable repeatTime { get; set; } + public Nullable repeatTimes { get; set; } + public string scheduleOutput { get; set; } + public Nullable sendBackupFile { get; set; } + public Nullable showType { get; set; } + public string taskCondition { get; set; } + public string taskDescription { get; set; } + public string taskName { get; set; } + public string taskParameter { get; set; } + public Nullable taskState { get; set; } + public Nullable taskType { get; set; } + public string templatePath { get; set; } + public string triggerGroup { get; set; } + public string userGroup { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_task_param.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_task_param.cs new file mode 100644 index 0000000..524d2fd --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_schedule_task_param.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_schedule_task_param + { + public string id { get; set; } + public string param { get; set; } + public string taskId { get; set; } + public string taskName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_cluster_size.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_cluster_size.cs new file mode 100644 index 0000000..c516130 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_cluster_size.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_cluster_size + { + public string id { get; set; } + public Nullable primary_cluster_size { get; set; } + public string description { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_col_idx_conf.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_col_idx_conf.cs new file mode 100644 index 0000000..3f96f2b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_col_idx_conf.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_col_idx_conf + { + public string columnName { get; set; } + public string tableKey { get; set; } + public Nullable requireGlobalDict { get; set; } + public Nullable requireIndex { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_config_entity.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_config_entity.cs new file mode 100644 index 0000000..c591e41 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_config_entity.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_config_entity + { + public string configKey { get; set; } + public string configValue { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_metadata.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_metadata.cs new file mode 100644 index 0000000..90ec7f4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_metadata.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_metadata + { + public string id { get; set; } + public string fields { get; set; } + public string remark { get; set; } + public string schemaName { get; set; } + public string swiftSchema { get; set; } + public string tableName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_seg_location.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_seg_location.cs new file mode 100644 index 0000000..1caae6f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_seg_location.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_seg_location + { + public string clusterId { get; set; } + public string segmentId { get; set; } + public string sourceKey { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_segments.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_segments.cs new file mode 100644 index 0000000..78b606f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_segments.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_segments + { + public string id { get; set; } + public Nullable segmentOrder { get; set; } + public string segmentOwner { get; set; } + public string segmentUri { get; set; } + public string storeType { get; set; } + public string swiftSchema { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_service_info.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_service_info.cs new file mode 100644 index 0000000..39cbf7c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_service_info.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_service_info + { + public string id { get; set; } + public string cluster_id { get; set; } + public Nullable is_singleton { get; set; } + public string service { get; set; } + public string service_info { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_tab_idx_conf.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_tab_idx_conf.cs new file mode 100644 index 0000000..9cb6fb6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_tab_idx_conf.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_tab_idx_conf + { + public string tableKey { get; set; } + public string allotRule { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_swift_table_path.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_table_path.cs new file mode 100644 index 0000000..a1b9f2b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_swift_table_path.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_swift_table_path + { + public string clusterId { get; set; } + public string tableKey { get; set; } + public Nullable lastPath { get; set; } + public Nullable tablePath { get; set; } + public Nullable tmpDir { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_system_message.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_system_message.cs new file mode 100644 index 0000000..7039ded --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_system_message.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_system_message + { + public string id { get; set; } + public Nullable terminal { get; set; } + public string title { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_user.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_user.cs new file mode 100644 index 0000000..25f23d7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_user.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_user + { + public string id { get; set; } + public Nullable birthday { get; set; } + public int creationType { get; set; } + public string description { get; set; } + public string email { get; set; } + public Nullable enable { get; set; } + public string language { get; set; } + public int lastOperationType { get; set; } + public Nullable male { get; set; } + public string mobile { get; set; } + public string password { get; set; } + public string realAlias { get; set; } + public string realName { get; set; } + public string userAlias { get; set; } + public string userName { get; set; } + public string workPhone { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_user_role_middle.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_user_role_middle.cs new file mode 100644 index 0000000..2ce0385 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_user_role_middle.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_user_role_middle + { + public string id { get; set; } + public string roleId { get; set; } + public int roleType { get; set; } + public string userId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_vcs.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_vcs.cs new file mode 100644 index 0000000..cf61d32 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_vcs.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_vcs + { + public string id { get; set; } + public string commitCode { get; set; } + public string commitMsg { get; set; } + public string filename { get; set; } + public Nullable time { get; set; } + public string username { get; set; } + public Nullable version { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_workflow.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow.cs new file mode 100644 index 0000000..d972d48 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_workflow + { + public string id { get; set; } + public Nullable createTime { get; set; } + public string creatorId { get; set; } + public string description { get; set; } + public string name { get; set; } + public string nodesId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_log.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_log.cs new file mode 100644 index 0000000..1b8f3d8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_log.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_workflow_log + { + public string id { get; set; } + public Nullable dateTime { get; set; } + public string message { get; set; } + public string operatorName { get; set; } + public string processName { get; set; } + public string taskName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_node.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_node.cs new file mode 100644 index 0000000..7ea2ff2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_node.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_workflow_node + { + public string id { get; set; } + public string alertControl { get; set; } + public string authority { get; set; } + public string description { get; set; } + public string name { get; set; } + public Nullable needAllComplete { get; set; } + public Nullable needOfflineReport { get; set; } + public string processId { get; set; } + public string reportControl { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_stash_data.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_stash_data.cs new file mode 100644 index 0000000..1eda279 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_stash_data.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_workflow_stash_data + { + public string id { get; set; } + public string data { get; set; } + public string reportPath { get; set; } + public string taskId { get; set; } + public string userId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_task.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_task.cs new file mode 100644 index 0000000..b6cf2c8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_task.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_workflow_task + { + public string id { get; set; } + public Nullable createTime { get; set; } + public string creatorId { get; set; } + public string creatorName { get; set; } + public Nullable deadLineDate { get; set; } + public string deadLineType { get; set; } + public string issueControl { get; set; } + public Nullable issueOver { get; set; } + public Nullable leapfrogBack { get; set; } + public string name { get; set; } + public string parentId { get; set; } + public string processId { get; set; } + public string remindControl { get; set; } + public Nullable taskNameCalculateOnce { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_task_impl.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_task_impl.cs new file mode 100644 index 0000000..f2e6b76 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_workflow_task_impl.cs @@ -0,0 +1,41 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_workflow_task_impl + { + public string id { get; set; } + public Nullable alerted { get; set; } + public string completeState { get; set; } + public Nullable createTime { get; set; } + public Nullable currentNodeIdx { get; set; } + public Nullable deadLine { get; set; } + public string frTaskId { get; set; } + public string name { get; set; } + public Nullable needAllComplete { get; set; } + public string nodeRoute { get; set; } + public string note { get; set; } + public string operatorJSON { get; set; } + public string operatorOffset { get; set; } + public string operatorOffsetName { get; set; } + public string parentId { get; set; } + public string processId { get; set; } + public Nullable reportOffset { get; set; } + public Nullable sendTime { get; set; } + public string sender { get; set; } + public string senderId { get; set; } + public string sonTaskId { get; set; } + public Nullable state { get; set; } + public string taskId { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/fine_write_stash.cs b/BBMPTMes/MESClassLibrary/EFModel/fine_write_stash.cs new file mode 100644 index 0000000..480419d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/fine_write_stash.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class fine_write_stash + { + public string id { get; set; } + public string data { get; set; } + public string reportPath { get; set; } + public string username { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_AndonButtonType.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_AndonButtonType.cs new file mode 100644 index 0000000..fa3a6ef --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_AndonButtonType.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_AndonButtonType + { + public string ID { get; set; } + public Nullable ButtonType { get; set; } + public string ButtonName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_AndonRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_AndonRecord.cs new file mode 100644 index 0000000..81caf76 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_AndonRecord.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_AndonRecord + { + public string ID { get; set; } + public string ButtonTypeID { get; set; } + public Nullable StartTime { get; set; } + public Nullable EndTime { get; set; } + public Nullable InterVal { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_243.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_243.cs new file mode 100644 index 0000000..1c07fb4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_243.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Assembly_243 + { + public string ID { get; set; } + public string PartNo { get; set; } + public string PartName { get; set; } + public string BatchNo { get; set; } + public string Color { get; set; } + public string ColorNo { get; set; } + public string PartType { get; set; } + public string TapeBatchNo { get; set; } + public string Validity { get; set; } + public string ValidityDate { get; set; } + public Nullable CreateTime { get; set; } + public Nullable PrintTime { get; set; } + public string Des { get; set; } + public Nullable Flag { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_247.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_247.cs new file mode 100644 index 0000000..e9d450c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_247.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Assembly_247 + { + public string ID { get; set; } + public string PartNo { get; set; } + public string PartName { get; set; } + public string BatchNo { get; set; } + public string Color { get; set; } + public string ColorNo { get; set; } + public string PartType { get; set; } + public string TapeBatchNo { get; set; } + public string Validity { get; set; } + public string ValidityDate { get; set; } + public Nullable CreateTime { get; set; } + public Nullable PrintTime { get; set; } + public string Des { get; set; } + public Nullable Flag { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + public Nullable IsCheck { get; set; } + public string DeviceNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_254.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_254.cs new file mode 100644 index 0000000..ab68eee --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Assembly_254.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Assembly_254 + { + public string ID { get; set; } + public string BarCode { get; set; } + public string PartNo { get; set; } + public string PartName { get; set; } + public string BatchNo { get; set; } + public string Color { get; set; } + public string ColorNo { get; set; } + public string PartType { get; set; } + public string TapeBatchNo { get; set; } + public string Validity { get; set; } + public string ValidityDate { get; set; } + public Nullable CreateTime { get; set; } + public Nullable PrintTime { get; set; } + public string Des { get; set; } + public Nullable Flag { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Bad_Injection.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Bad_Injection.cs new file mode 100644 index 0000000..a42d774 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Bad_Injection.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Bad_Injection + { + public string ID { get; set; } + public string OneBarCode { get; set; } + public string BarCode { get; set; } + public string BadPosition { get; set; } + public string BadReason { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_BarCode.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_BarCode.cs new file mode 100644 index 0000000..6bb6a0a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_BarCode.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_BarCode + { + public string ID { get; set; } + public string StationID { get; set; } + public string OneBarCode { get; set; } + public string BarCode { get; set; } + public string StockNo { get; set; } + public Nullable PrintType { get; set; } + public Nullable CreateTime { get; set; } + public Nullable PrintTime { get; set; } + public Nullable IsDel { get; set; } + public string IsImport { get; set; } + public string StationID2 { get; set; } + public string PlanID { get; set; } + public string BatchNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Bom.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Bom.cs new file mode 100644 index 0000000..176022a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Bom.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Bom + { + public string BomID { get; set; } + public string PartNo1 { get; set; } + public string PartNo2 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Bom_20190726.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Bom_20190726.cs new file mode 100644 index 0000000..5e13751 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Bom_20190726.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Bom_20190726 + { + public string BomID { get; set; } + public string PartNo1 { get; set; } + public string PartNo2 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Box_243.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Box_243.cs new file mode 100644 index 0000000..d35f8d3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Box_243.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Box_243 + { + public string ID { get; set; } + public string BoxNo { get; set; } + public string PartNo { get; set; } + public string PartName { get; set; } + public string BatchNo { get; set; } + public Nullable BoxCount { get; set; } + public Nullable CreateTime { get; set; } + public Nullable PrintTime { get; set; } + public string Des { get; set; } + public Nullable Flag { get; set; } + public string Validity { get; set; } + public string ValidityDate { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Box_247.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Box_247.cs new file mode 100644 index 0000000..56481cb --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Box_247.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Box_247 + { + public string ID { get; set; } + public string BoxNo { get; set; } + public string PartNo { get; set; } + public string PartName { get; set; } + public string BatchNo { get; set; } + public Nullable BoxCount { get; set; } + public Nullable CreateTime { get; set; } + public Nullable PrintTime { get; set; } + public string Des { get; set; } + public Nullable Flag { get; set; } + public string Validity { get; set; } + public string ValidityDate { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Box_Record.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Box_Record.cs new file mode 100644 index 0000000..e883357 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Box_Record.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Box_Record + { + public long ID { get; set; } + public string BarCode { get; set; } + public string BoxNo { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Box_WheelBrow.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Box_WheelBrow.cs new file mode 100644 index 0000000..27c9392 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Box_WheelBrow.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Box_WheelBrow + { + public long ID { get; set; } + public string BoxNo { get; set; } + public Nullable Flag { get; set; } + public string PartNo { get; set; } + public string PartName { get; set; } + public string BatchNo { get; set; } + public string Validity { get; set; } + public string ValidityDate { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_BucketInfo.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_BucketInfo.cs new file mode 100644 index 0000000..2d125de --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_BucketInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_BucketInfo + { + public string ID { get; set; } + public string BucketCode { get; set; } + public string BucketName { get; set; } + public Nullable IsUsing { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_CheckItem.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_CheckItem.cs new file mode 100644 index 0000000..21dac33 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_CheckItem.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_CheckItem + { + public string ID { get; set; } + public string DeviceID { get; set; } + public string CheckContent { get; set; } + public string CheckVersion { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Color.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Color.cs new file mode 100644 index 0000000..cf14a85 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Color.cs @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Color + { + public string ID { get; set; } + public string ColorCode { get; set; } + public string ColorNo { get; set; } + public string Des { get; set; } + public Nullable Circle { get; set; } + public string ColorQQCode { get; set; } + public string ColorDQCode { get; set; } + public Nullable CreateTime { get; set; } + public Nullable UpdateTime { get; set; } + public Nullable OrderNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Color_20191008.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Color_20191008.cs new file mode 100644 index 0000000..4c51355 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Color_20191008.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Color_20191008 + { + public string ID { get; set; } + public string ColorCode { get; set; } + public string ColorNo { get; set; } + public string Des { get; set; } + public Nullable Circle { get; set; } + public string ColorQQCode { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Color_20201101.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Color_20201101.cs new file mode 100644 index 0000000..8c69fd7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Color_20201101.cs @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Color_20201101 + { + public string ID { get; set; } + public string ColorCode { get; set; } + public string ColorNo { get; set; } + public string Des { get; set; } + public Nullable Circle { get; set; } + public string ColorQQCode { get; set; } + public string ColorDQCode { get; set; } + public Nullable CreateTime { get; set; } + public Nullable UpdateTime { get; set; } + public Nullable OrderNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspection.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspection.cs new file mode 100644 index 0000000..34687be --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspection.cs @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_CommonlyInspection + { + public string ID { get; set; } + public string VersionID { get; set; } + public string InspectionContentID { get; set; } + public System.DateTime CreateTime { get; set; } + public string CreateUserID { get; set; } + public Nullable UpdateTime { get; set; } + public string UpdateUserID { get; set; } + public int IsUseing { get; set; } + public Nullable DisableTime { get; set; } + public string DisableUserID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspectionRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspectionRecord.cs new file mode 100644 index 0000000..9c531ab --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspectionRecord.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_CommonlyInspectionRecord + { + public string CommonlyInspectionID { get; set; } + public string CheckResult { get; set; } + public string CheckUser { get; set; } + public System.DateTime CheckDate { get; set; } + public string ConfirmUser { get; set; } + public Nullable ConfirmUserDate { get; set; } + public string GroupLeaderConfirm { get; set; } + public Nullable GroupLeaderConfirmDate { get; set; } + public string DepartmentLeaderConfirm { get; set; } + public Nullable DepartmentLeaderConfirmDate { get; set; } + public System.DateTime CreateTime { get; set; } + public string CreateUserID { get; set; } + public Nullable UpdateTime { get; set; } + public string UpdateUserID { get; set; } + public int IsUseing { get; set; } + public Nullable DisableTime { get; set; } + public string DisableUserID { get; set; } + public string ID { get; set; } + public string CheckType { get; set; } + public string ErrMes { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspectionVersion.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspectionVersion.cs new file mode 100644 index 0000000..77767a8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_CommonlyInspectionVersion.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_CommonlyInspectionVersion + { + public string DeviceID { get; set; } + public string Version { get; set; } + public System.DateTime CreateTime { get; set; } + public string CreateUserID { get; set; } + public Nullable UpdateTime { get; set; } + public string UpdateUserID { get; set; } + public int IsUseing { get; set; } + public string Operation { get; set; } + public Nullable DisableTime { get; set; } + public string DisableUserID { get; set; } + public string Description { get; set; } + public string ID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Config.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Config.cs new file mode 100644 index 0000000..de2fbf5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Config.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Config + { + public string ID { get; set; } + public string name { get; set; } + public string value { get; set; } + public string des { get; set; } + public string remark1 { get; set; } + public string remark2 { get; set; } + public string remark3 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Cylinder.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Cylinder.cs new file mode 100644 index 0000000..5a24aa1 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Cylinder.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Cylinder + { + public string CylinderID { get; set; } + public string CylinderNo { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_CylinderAndRaw.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_CylinderAndRaw.cs new file mode 100644 index 0000000..0bf94c3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_CylinderAndRaw.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_CylinderAndRaw + { + public string ID { get; set; } + public string CylinderID { get; set; } + public string DrumBarCode { get; set; } + public string BarCode { get; set; } + public Nullable Time1 { get; set; } + public Nullable Time2 { get; set; } + public Nullable Flag { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Defect.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Defect.cs new file mode 100644 index 0000000..b72c99a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Defect.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Defect + { + public string ID { get; set; } + public string LineID { get; set; } + public string DefectName { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Defect_bak.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Defect_bak.cs new file mode 100644 index 0000000..4e761a9 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Defect_bak.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Defect_bak + { + public string ID { get; set; } + public string LineID { get; set; } + public string DefectName { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Device.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Device.cs new file mode 100644 index 0000000..12c60ac --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Device.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Device + { + public string DeviceID { get; set; } + public string StationID { get; set; } + public string DeviceNo { get; set; } + public string DeviceName { get; set; } + public string FixNo { get; set; } + public string Des { get; set; } + public string DeviceModel { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Factory.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Factory.cs new file mode 100644 index 0000000..e942aad --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Factory.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Factory + { + public string FactoryID { get; set; } + public string FactoryName { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_FinishProduct.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_FinishProduct.cs new file mode 100644 index 0000000..3fb3943 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_FinishProduct.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_FinishProduct + { + public string FinishProductID { get; set; } + public string FinishProductNo { get; set; } + public string FinishProductName { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_HybridPlan.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_HybridPlan.cs new file mode 100644 index 0000000..82a7a49 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_HybridPlan.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_HybridPlan + { + public string ID { get; set; } + public string ProductName { get; set; } + public string Color { get; set; } + public Nullable PlanCount { get; set; } + public Nullable Qty { get; set; } + public Nullable IsFinish { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_HybridScanRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_HybridScanRecord.cs new file mode 100644 index 0000000..3e801d5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_HybridScanRecord.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_HybridScanRecord + { + public string ID { get; set; } + public string BarCode { get; set; } + public Nullable CreatTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ImgVideo.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ImgVideo.cs new file mode 100644 index 0000000..f2181f8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ImgVideo.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ImgVideo + { + public string ID { get; set; } + public string fileUrl { get; set; } + public string fileName { get; set; } + public string fileType { get; set; } + public Nullable CreateTime { get; set; } + public Nullable UpdateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Inhection_DownReason.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Inhection_DownReason.cs new file mode 100644 index 0000000..e4daed4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Inhection_DownReason.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Inhection_DownReason + { + public string ID { get; set; } + public string Reason { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_InjectPlanReport.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_InjectPlanReport.cs new file mode 100644 index 0000000..b2bb4e5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_InjectPlanReport.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_InjectPlanReport + { + public string ID { get; set; } + public string InjectionPlanID { get; set; } + public string ProductName { get; set; } + public string MaterialName { get; set; } + public string Drum { get; set; } + public string BatchNo { get; set; } + public Nullable Time1 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_InjectionPlan.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_InjectionPlan.cs new file mode 100644 index 0000000..b37f260 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_InjectionPlan.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_InjectionPlan + { + public string InjectionPlanID { get; set; } + public string StationID { get; set; } + public string BeginTime { get; set; } + public string StockNo { get; set; } + public string PartNo { get; set; } + public Nullable PlanCount { get; set; } + public string EndTime { get; set; } + public Nullable PlanDate { get; set; } + public Nullable CompleteCount { get; set; } + public Nullable IsFinish { get; set; } + public Nullable FinishTime { get; set; } + public Nullable RealCycle { get; set; } + public string workClass { get; set; } + public Nullable JK_Weight { get; set; } + public Nullable Waste_Weight { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownRecord.cs new file mode 100644 index 0000000..5a0b9f6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownRecord.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Injection_DownRecord + { + public string ID { get; set; } + public string StationID { get; set; } + public string DownType { get; set; } + public string DownReason { get; set; } + public string Des { get; set; } + public Nullable StartTime { get; set; } + public Nullable EndTime { get; set; } + public Nullable DownTime { get; set; } + public string Remark1 { get; set; } + public string Remark2 { get; set; } + public string Remark3 { get; set; } + public string PlanID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownTime.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownTime.cs new file mode 100644 index 0000000..4013ce2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownTime.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Injection_DownTime + { + public string ID { get; set; } + public string StationID { get; set; } + public Nullable StartTime { get; set; } + public Nullable EndTime { get; set; } + public Nullable InterVal { get; set; } + public string DownTypeID { get; set; } + public string Remark1 { get; set; } + public string Remark2 { get; set; } + public string Remark3 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownType.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownType.cs new file mode 100644 index 0000000..10f69e7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_DownType.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Injection_DownType + { + public string ID { get; set; } + public string DownTypeName { get; set; } + public string Remark { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_Record.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_Record.cs new file mode 100644 index 0000000..4129ad8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Injection_Record.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Injection_Record + { + public string ID { get; set; } + public string workClass { get; set; } + public string StationID { get; set; } + public Nullable JK_Weight { get; set; } + public Nullable Waste_Weight { get; set; } + public Nullable RecordDate { get; set; } + public string StockNo { get; set; } + public string PartNo { get; set; } + public string PlanID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult.cs new file mode 100644 index 0000000..c04dd78 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_InspectResult + { + public string ID { get; set; } + public string barcode { get; set; } + public string side { get; set; } + public string position { get; set; } + public string stationNo { get; set; } + public string workClass { get; set; } + public string inspectResult { get; set; } + public string damnPosition { get; set; } + public string defectID { get; set; } + public string reason { get; set; } + public string productInfo { get; set; } + public string productOption { get; set; } + public Nullable createTime { get; set; } + public string InspectTimes { get; set; } + public string remark1 { get; set; } + public string remark2 { get; set; } + public string remark3 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20190902.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20190902.cs new file mode 100644 index 0000000..277ebb1 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20190902.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_InspectResult_20190902 + { + public string ID { get; set; } + public string barcode { get; set; } + public string side { get; set; } + public string position { get; set; } + public string stationNo { get; set; } + public string workClass { get; set; } + public string inspectResult { get; set; } + public string damnPosition { get; set; } + public string defectID { get; set; } + public string reason { get; set; } + public string productInfo { get; set; } + public string productOption { get; set; } + public Nullable createTime { get; set; } + public string InspectTimes { get; set; } + public string remark1 { get; set; } + public string remark2 { get; set; } + public string remark3 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20200717.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20200717.cs new file mode 100644 index 0000000..2b53aec --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20200717.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_InspectResult_20200717 + { + public string ID { get; set; } + public string barcode { get; set; } + public string side { get; set; } + public string position { get; set; } + public string stationNo { get; set; } + public string workClass { get; set; } + public string inspectResult { get; set; } + public string damnPosition { get; set; } + public string defectID { get; set; } + public string reason { get; set; } + public string productInfo { get; set; } + public string productOption { get; set; } + public Nullable createTime { get; set; } + public string InspectTimes { get; set; } + public string remark1 { get; set; } + public string remark2 { get; set; } + public string remark3 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20201021.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20201021.cs new file mode 100644 index 0000000..892ec63 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20201021.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_InspectResult_20201021 + { + public string ID { get; set; } + public string barcode { get; set; } + public string side { get; set; } + public string position { get; set; } + public string stationNo { get; set; } + public string workClass { get; set; } + public string inspectResult { get; set; } + public string damnPosition { get; set; } + public string defectID { get; set; } + public string reason { get; set; } + public string productInfo { get; set; } + public string productOption { get; set; } + public Nullable createTime { get; set; } + public string InspectTimes { get; set; } + public string remark1 { get; set; } + public string remark2 { get; set; } + public string remark3 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20210322.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20210322.cs new file mode 100644 index 0000000..98f1c67 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_InspectResult_20210322.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_InspectResult_20210322 + { + public string ID { get; set; } + public string barcode { get; set; } + public string side { get; set; } + public string position { get; set; } + public string stationNo { get; set; } + public string workClass { get; set; } + public string inspectResult { get; set; } + public string damnPosition { get; set; } + public string defectID { get; set; } + public string reason { get; set; } + public string productInfo { get; set; } + public string productOption { get; set; } + public Nullable createTime { get; set; } + public string InspectTimes { get; set; } + public string remark1 { get; set; } + public string remark2 { get; set; } + public string remark3 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_LayerAndBC.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_LayerAndBC.cs new file mode 100644 index 0000000..b515f2e --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_LayerAndBC.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_LayerAndBC + { + public string ID { get; set; } + public Nullable layer { get; set; } + public string floor { get; set; } + public string side { get; set; } + public string des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Line.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Line.cs new file mode 100644 index 0000000..d529848 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Line.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Line + { + public string LineID { get; set; } + public string PlaceID { get; set; } + public string LineName { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Location.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Location.cs new file mode 100644 index 0000000..7a66e6b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Location.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Location + { + public string ID { get; set; } + public string Location { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Machine.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Machine.cs new file mode 100644 index 0000000..01c11f8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Machine.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Machine + { + public string MachineID { get; set; } + public string MachineNo { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_243.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_243.cs new file mode 100644 index 0000000..618cdfa --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_243.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Mistake_243 + { + public string ID { get; set; } + public string PartNo1 { get; set; } + public string PartName1 { get; set; } + public string PartNo2 { get; set; } + public string PartName2 { get; set; } + public Nullable PackCount { get; set; } + public string DeviceNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_243_bak.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_243_bak.cs new file mode 100644 index 0000000..9d0efc6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_243_bak.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Mistake_243_bak + { + public string ID { get; set; } + public string PartNo1 { get; set; } + public string PartName1 { get; set; } + public string PartNo2 { get; set; } + public string PartName2 { get; set; } + public Nullable PackCount { get; set; } + public string DeviceNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_247.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_247.cs new file mode 100644 index 0000000..f460bb4 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_247.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Mistake_247 + { + public string ID { get; set; } + public string PartNo1 { get; set; } + public string PartName1 { get; set; } + public string PartNo2 { get; set; } + public string PartName2 { get; set; } + public Nullable PackCount { get; set; } + public string DeviceNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_247_bak.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_247_bak.cs new file mode 100644 index 0000000..2a3aa5b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_247_bak.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Mistake_247_bak + { + public string ID { get; set; } + public string PartNo1 { get; set; } + public string PartName1 { get; set; } + public string PartNo2 { get; set; } + public string PartName2 { get; set; } + public Nullable PackCount { get; set; } + public string DeviceNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_Gratings.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_Gratings.cs new file mode 100644 index 0000000..55ce794 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Mistake_Gratings.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Mistake_Gratings + { + public int ID { get; set; } + public string ZcPartNo { get; set; } + public string ZcPartName { get; set; } + public string PartNo1 { get; set; } + public string PartNo2 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ModelCount.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ModelCount.cs new file mode 100644 index 0000000..aea5b47 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ModelCount.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ModelCount + { + public string ID { get; set; } + public string ModelID { get; set; } + public string StationID { get; set; } + public decimal ModelPrintCount { get; set; } + public Nullable PrintDate { get; set; } + public decimal ModelSumCount { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ModelInfo.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ModelInfo.cs new file mode 100644 index 0000000..0fd9888 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ModelInfo.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ModelInfo + { + public string ID { get; set; } + public string ModelName { get; set; } + public string ModelNo { get; set; } + public string PermanentAssetsNo { get; set; } + public string Tonnage { get; set; } + public string ServiceLife { get; set; } + public string Supplier { get; set; } + public string PartWeight { get; set; } + public string InjectionPeriod { get; set; } + public string LocatingRingSize { get; set; } + public string OutForm { get; set; } + public string ModelWeight { get; set; } + public string RunnerForm { get; set; } + public string ModelCavityNo { get; set; } + public string ModelSize { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Model_Product.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Model_Product.cs new file mode 100644 index 0000000..14497e5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Model_Product.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Model_Product + { + public string ID { get; set; } + public string ModelID { get; set; } + public string ProuctID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Model_Update.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Model_Update.cs new file mode 100644 index 0000000..2908cf8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Model_Update.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Model_Update + { + public string ID { get; set; } + public string Purpose { get; set; } + public string State { get; set; } + public string Supplier { get; set; } + public string Remarks { get; set; } + public Nullable AddTime { get; set; } + public string ModelID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Operator.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Operator.cs new file mode 100644 index 0000000..a6d6b3a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Operator.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Operator + { + public string OperatorID { get; set; } + public string StationID { get; set; } + public string OperatorNo { get; set; } + public string OperatorName { get; set; } + public string OperatorPsw { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PaintBarCode.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintBarCode.cs new file mode 100644 index 0000000..1ba6255 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintBarCode.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PaintBarCode + { + public string ID { get; set; } + public string StationID { get; set; } + public string ProductID { get; set; } + public string OneBarCode { get; set; } + public string BarCode { get; set; } + public string StockNo { get; set; } + public string ColorDes { get; set; } + public string workClass { get; set; } + public string Side { get; set; } + public Nullable CreateTime { get; set; } + public Nullable PrintTime { get; set; } + public string ProductDate { get; set; } + public string PrintReason { get; set; } + public string PrintPerson { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PaintInfo.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintInfo.cs new file mode 100644 index 0000000..f1faa61 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintInfo.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PaintInfo + { + public string ID { get; set; } + public string PaintCode { get; set; } + public string PaintName { get; set; } + public string PaintModel { get; set; } + public string UnitCode { get; set; } + public string CarModelCode { get; set; } + public Nullable IsUsing { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PaintPerson.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintPerson.cs new file mode 100644 index 0000000..b11c6d3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintPerson.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PaintPerson + { + public int ID { get; set; } + public string PrintPerson { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PaintReason.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintReason.cs new file mode 100644 index 0000000..2535493 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintReason.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PaintReason + { + public int ID { get; set; } + public string PrintReason { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PaintScanRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintScanRecord.cs new file mode 100644 index 0000000..78cf948 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PaintScanRecord.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PaintScanRecord + { + public long ID { get; set; } + public string OneBarCode { get; set; } + public Nullable ScanTime { get; set; } + public string ScanPosition { get; set; } + public Nullable ScanResult { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Paint_Bucket.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Paint_Bucket.cs new file mode 100644 index 0000000..8897a74 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Paint_Bucket.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Paint_Bucket + { + public string PaintID { get; set; } + public string BucketID { get; set; } + public string ID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PartRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PartRecord.cs new file mode 100644 index 0000000..edc9446 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PartRecord.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PartRecord + { + public string ID { get; set; } + public string PartNo { get; set; } + public string TaskID { get; set; } + public string CommandType { get; set; } + public Nullable CreatTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Place.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Place.cs new file mode 100644 index 0000000..42ccde5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Place.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Place + { + public string PlaceID { get; set; } + public string FactoryID { get; set; } + public string PlaceName { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PlanScreenConfig.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PlanScreenConfig.cs new file mode 100644 index 0000000..4d77370 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PlanScreenConfig.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PlanScreenConfig + { + public string ID { get; set; } + public string IP { get; set; } + public string StationNo { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_243.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_243.cs new file mode 100644 index 0000000..e6a395d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_243.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Plan_243 + { + public string ID { get; set; } + public string OrderNo { get; set; } + public Nullable Item { get; set; } + public string PartNo { get; set; } + public Nullable OrderCount { get; set; } + public Nullable LyCount { get; set; } + public Nullable CompleteCount { get; set; } + public Nullable RepairCount { get; set; } + public Nullable ScrapCount1 { get; set; } + public Nullable ScrapCount2 { get; set; } + public string Des { get; set; } + public Nullable CreateTime { get; set; } + public Nullable IsFinish { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_247.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_247.cs new file mode 100644 index 0000000..adb988b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_247.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Plan_247 + { + public string ID { get; set; } + public string OrderNo { get; set; } + public Nullable Item { get; set; } + public string PartNo { get; set; } + public Nullable OrderCount { get; set; } + public Nullable LyCount { get; set; } + public Nullable CompleteCount { get; set; } + public Nullable RepairCount { get; set; } + public Nullable ScrapCount1 { get; set; } + public Nullable ScrapCount2 { get; set; } + public string Des { get; set; } + public Nullable CreateTime { get; set; } + public Nullable IsFinish { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch.cs new file mode 100644 index 0000000..76bdab2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Plan_Punch + { + public string ID { get; set; } + public string OrderNo { get; set; } + public Nullable Item { get; set; } + public string PartNo { get; set; } + public Nullable OrderCount { get; set; } + public Nullable LyCount { get; set; } + public Nullable CompleteCount { get; set; } + public Nullable BadCount { get; set; } + public string Des { get; set; } + public Nullable IsFinish { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch_20200509.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch_20200509.cs new file mode 100644 index 0000000..aa4e969 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch_20200509.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Plan_Punch_20200509 + { + public string ID { get; set; } + public string OrderNo { get; set; } + public Nullable Item { get; set; } + public string PartNo { get; set; } + public Nullable OrderCount { get; set; } + public Nullable LyCount { get; set; } + public Nullable CompleteCount { get; set; } + public Nullable BadCount { get; set; } + public string Des { get; set; } + public Nullable IsFinish { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch_214.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch_214.cs new file mode 100644 index 0000000..f31fee3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Plan_Punch_214.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Plan_Punch_214 + { + public string ID { get; set; } + public string OrderNo { get; set; } + public Nullable Item { get; set; } + public string StationId { get; set; } + public string PartNo { get; set; } + public Nullable OrderCount { get; set; } + public Nullable LyCount { get; set; } + public Nullable CompleteCount { get; set; } + public Nullable BadCount { get; set; } + public string Des { get; set; } + public Nullable IsFinish { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Plastic.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Plastic.cs new file mode 100644 index 0000000..41200ff --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Plastic.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Plastic + { + public string StockNo { get; set; } + public Nullable CycleTime { get; set; } + public string StationID { get; set; } + public Nullable IsBackup { get; set; } + public Nullable Weight { get; set; } + public Nullable OpenDebugTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PrintConfig.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PrintConfig.cs new file mode 100644 index 0000000..7ef4069 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PrintConfig.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PrintConfig + { + public int ID { get; set; } + public string StockNo { get; set; } + public string PrintCode { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PrintRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PrintRecord.cs new file mode 100644 index 0000000..d015aec --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PrintRecord.cs @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PrintRecord + { + public string ID { get; set; } + public string BarCode { get; set; } + public string PrintCode { get; set; } + public string ColorName { get; set; } + public string Color { get; set; } + public string ColorCode { get; set; } + public string ProductName { get; set; } + public string ProductInfo { get; set; } + public Nullable PrintType { get; set; } + public Nullable PrintTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product.cs new file mode 100644 index 0000000..7a279bf --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product + { + public string ProductID { get; set; } + public string ProductTypeID { get; set; } + public string ProjectID { get; set; } + public string StockNo { get; set; } + public string PartName { get; set; } + public string ProductName { get; set; } + public string ColorName { get; set; } + public string PartNo { get; set; } + public Nullable Rows { get; set; } + public Nullable Cols { get; set; } + public Nullable Layers { get; set; } + public string PicturePath { get; set; } + public string Des { get; set; } + public Nullable isImport { get; set; } + public string DeviceNo { get; set; } + public Nullable IsHigh { get; set; } + public Nullable OrderNo { get; set; } + public Nullable PackQty { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product0912.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product0912.cs new file mode 100644 index 0000000..812d566 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product0912.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product0912 + { + public string ProductID { get; set; } + public string ProductTypeID { get; set; } + public string ProjectID { get; set; } + public string StockNo { get; set; } + public string PartName { get; set; } + public string ProductName { get; set; } + public string ColorName { get; set; } + public string PartNo { get; set; } + public Nullable Rows { get; set; } + public Nullable Cols { get; set; } + public Nullable Layers { get; set; } + public string PicturePath { get; set; } + public string Des { get; set; } + public Nullable isImport { get; set; } + public string DeviceNo { get; set; } + public Nullable IsHigh { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product20200802.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product20200802.cs new file mode 100644 index 0000000..f8aec8d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product20200802.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product20200802 + { + public string ProductID { get; set; } + public string ProductTypeID { get; set; } + public string StockNo { get; set; } + public string PartName { get; set; } + public string ProductName { get; set; } + public string ColorName { get; set; } + public string PartNo { get; set; } + public Nullable Rows { get; set; } + public Nullable Cols { get; set; } + public Nullable Layers { get; set; } + public string PicturePath { get; set; } + public string Des { get; set; } + public Nullable isImport { get; set; } + public string DeviceNo { get; set; } + public Nullable IsHigh { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product20201016.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product20201016.cs new file mode 100644 index 0000000..dd26fa2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product20201016.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product20201016 + { + public string ProductID { get; set; } + public string ProductTypeID { get; set; } + public string ProjectID { get; set; } + public string StockNo { get; set; } + public string PartName { get; set; } + public string ProductName { get; set; } + public string ColorName { get; set; } + public string PartNo { get; set; } + public Nullable Rows { get; set; } + public Nullable Cols { get; set; } + public Nullable Layers { get; set; } + public string PicturePath { get; set; } + public string Des { get; set; } + public Nullable isImport { get; set; } + public string DeviceNo { get; set; } + public Nullable IsHigh { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ProductSotckIn.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ProductSotckIn.cs new file mode 100644 index 0000000..08fe2f3 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ProductSotckIn.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ProductSotckIn + { + public string ID { get; set; } + public string BarCode { get; set; } + public string ProductName { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ProductType.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ProductType.cs new file mode 100644 index 0000000..3fb2293 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ProductType.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ProductType + { + public string ProductTypeID { get; set; } + public string ProductTypeNo { get; set; } + public string ProductTypeName { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20200513.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20200513.cs new file mode 100644 index 0000000..ebef051 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20200513.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product_20200513 + { + public string ProductID { get; set; } + public string ProductTypeID { get; set; } + public string StockNo { get; set; } + public string PartName { get; set; } + public string ProductName { get; set; } + public string ColorName { get; set; } + public string PartNo { get; set; } + public Nullable Rows { get; set; } + public Nullable Cols { get; set; } + public Nullable Layers { get; set; } + public string PicturePath { get; set; } + public string Des { get; set; } + public Nullable isImport { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20201110.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20201110.cs new file mode 100644 index 0000000..582fc5c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20201110.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product_20201110 + { + public string ProductID { get; set; } + public string ProductTypeID { get; set; } + public string ProjectID { get; set; } + public string StockNo { get; set; } + public string PartName { get; set; } + public string ProductName { get; set; } + public string ColorName { get; set; } + public string PartNo { get; set; } + public Nullable Rows { get; set; } + public Nullable Cols { get; set; } + public Nullable Layers { get; set; } + public string PicturePath { get; set; } + public string Des { get; set; } + public Nullable isImport { get; set; } + public string DeviceNo { get; set; } + public Nullable IsHigh { get; set; } + public Nullable OrderNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20230901.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20230901.cs new file mode 100644 index 0000000..b8e2d2b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_20230901.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product_20230901 + { + public string ProductID { get; set; } + public string ProductTypeID { get; set; } + public string ProjectID { get; set; } + public string StockNo { get; set; } + public string PartName { get; set; } + public string ProductName { get; set; } + public string ColorName { get; set; } + public string PartNo { get; set; } + public Nullable Rows { get; set; } + public Nullable Cols { get; set; } + public Nullable Layers { get; set; } + public string PicturePath { get; set; } + public string Des { get; set; } + public Nullable isImport { get; set; } + public string DeviceNo { get; set; } + public Nullable IsHigh { get; set; } + public Nullable OrderNo { get; set; } + public Nullable PackQty { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection.cs new file mode 100644 index 0000000..a6ba901 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product_Injection + { + public string ID { get; set; } + public string PlanID { get; set; } + public string StationID { get; set; } + public string ProductDate { get; set; } + public string ClassName { get; set; } + public string StockNo { get; set; } + public string PartNo { get; set; } + public Nullable ProductCount { get; set; } + public Nullable BadCount { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection_20190726.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection_20190726.cs new file mode 100644 index 0000000..a51c95b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection_20190726.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product_Injection_20190726 + { + public string ID { get; set; } + public string StationID { get; set; } + public string ProductDate { get; set; } + public string ClassName { get; set; } + public string StockNo { get; set; } + public string PartNo { get; set; } + public Nullable ProductCount { get; set; } + public Nullable BadCount { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection_w.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection_w.cs new file mode 100644 index 0000000..ffa60be --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Product_Injection_w.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Product_Injection_w + { + public string ID { get; set; } + public Nullable RealCycle { get; set; } + public Nullable Waste_Weight { get; set; } + public Nullable JK_Weight { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Project.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Project.cs new file mode 100644 index 0000000..e898390 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Project.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Project + { + public string ID { get; set; } + public string Project { get; set; } + public string LocationID { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAddress.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAddress.cs new file mode 100644 index 0000000..b540f99 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAddress.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchAddress + { + public int ID { get; set; } + public string DeviceNo { get; set; } + public string Address { get; set; } + public string Des { get; set; } + public Nullable RW { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAndStation.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAndStation.cs new file mode 100644 index 0000000..31232c7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAndStation.cs @@ -0,0 +1,53 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchAndStation + { + public string ID { get; set; } + public string StationID { get; set; } + public string ProductID1 { get; set; } + public string ProductID2 { get; set; } + public string Qty2 { get; set; } + public string ProductID3 { get; set; } + public string Qty3 { get; set; } + public string ProductID4 { get; set; } + public string Qty4 { get; set; } + public string ProductID5 { get; set; } + public string Qty5 { get; set; } + public string ProductID9 { get; set; } + public string Qty9 { get; set; } + public string ProductID10 { get; set; } + public string Qty10 { get; set; } + public string ProductID11 { get; set; } + public string Qty11 { get; set; } + public Nullable CreateTine { get; set; } + public string DeviceNo { get; set; } + public Nullable IsCheck { get; set; } + public Nullable AddressNo { get; set; } + public string PortName { get; set; } + public Nullable CheckDone { get; set; } + public string ProductID6 { get; set; } + public string Qty6 { get; set; } + public string ProductID7 { get; set; } + public string Qty7 { get; set; } + public string ProductID8 { get; set; } + public string Qty8 { get; set; } + public string ProductID12 { get; set; } + public string Qty12 { get; set; } + public string ProductID13 { get; set; } + public string Qty13 { get; set; } + public string ProductID14 { get; set; } + public string Qty14 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAndStation_bak.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAndStation_bak.cs new file mode 100644 index 0000000..6f7055d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchAndStation_bak.cs @@ -0,0 +1,53 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchAndStation_bak + { + public string ID { get; set; } + public string StationID { get; set; } + public string ProductID1 { get; set; } + public string ProductID2 { get; set; } + public string Qty2 { get; set; } + public string ProductID3 { get; set; } + public string Qty3 { get; set; } + public string ProductID4 { get; set; } + public string Qty4 { get; set; } + public string ProductID5 { get; set; } + public string Qty5 { get; set; } + public string ProductID9 { get; set; } + public string Qty9 { get; set; } + public string ProductID10 { get; set; } + public string Qty10 { get; set; } + public string ProductID11 { get; set; } + public string Qty11 { get; set; } + public Nullable CreateTine { get; set; } + public string DeviceNo { get; set; } + public Nullable IsCheck { get; set; } + public Nullable AddressNo { get; set; } + public string PortName { get; set; } + public Nullable CheckDone { get; set; } + public string ProductID6 { get; set; } + public string Qty6 { get; set; } + public string ProductID7 { get; set; } + public string Qty7 { get; set; } + public string ProductID8 { get; set; } + public string Qty8 { get; set; } + public string ProductID12 { get; set; } + public string Qty12 { get; set; } + public string ProductID13 { get; set; } + public string Qty13 { get; set; } + public string ProductID14 { get; set; } + public string Qty14 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchDevice.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchDevice.cs new file mode 100644 index 0000000..c5e1738 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchDevice.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchDevice + { + public string ID { get; set; } + public string DeviceNo { get; set; } + public string DeviceName { get; set; } + public string Poject { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchMFAPlan.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchMFAPlan.cs new file mode 100644 index 0000000..0f854d6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchMFAPlan.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchMFAPlan + { + public int ID { get; set; } + public string CarModelCode { get; set; } + public string productionNumber { get; set; } + public string itemNumber { get; set; } + public string description { get; set; } + public Nullable assemblyDate { get; set; } + public string BillNo { get; set; } + public string partType { get; set; } + public string ColorName { get; set; } + public string BarCode { get; set; } + public Nullable Sort { get; set; } + public string ColorCode { get; set; } + public Nullable CheckTime { get; set; } + public Nullable IsFinish { get; set; } + public string DeviceNo { get; set; } + public Nullable IsHigh { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchNGCCPlan.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchNGCCPlan.cs new file mode 100644 index 0000000..92ba5c9 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchNGCCPlan.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchNGCCPlan + { + public int ID { get; set; } + public string CarModelCode { get; set; } + public string productionNumber { get; set; } + public string itemNumber { get; set; } + public string description { get; set; } + public Nullable assemblyDate { get; set; } + public string BillNo { get; set; } + public string partType { get; set; } + public string ColorName { get; set; } + public string BarCode { get; set; } + public Nullable Sort { get; set; } + public string ColorCode { get; set; } + public Nullable CheckTime { get; set; } + public Nullable IsFinish { get; set; } + public string DeviceNo { get; set; } + public Nullable IsHigh { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchPlan.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchPlan.cs new file mode 100644 index 0000000..c9366b1 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchPlan.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchPlan + { + public string ID { get; set; } + public string DeviceNo { get; set; } + public string ProductID { get; set; } + public Nullable PlanCount { get; set; } + public Nullable CompleteCount { get; set; } + public Nullable BadCount { get; set; } + public Nullable IsFinish { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchRecord.cs new file mode 100644 index 0000000..d87151d --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchRecord.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchRecord + { + public string ID { get; set; } + public string BarCode { get; set; } + public Nullable ScanTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchResult.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchResult.cs new file mode 100644 index 0000000..02656d7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchResult.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchResult + { + public long ID { get; set; } + public string barcode { get; set; } + public string stationNo { get; set; } + public string punchResult { get; set; } + public string damnPosition { get; set; } + public string reason { get; set; } + public string productInfo { get; set; } + public Nullable createTime { get; set; } + public string Responsibility { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_PunchValueRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchValueRecord.cs new file mode 100644 index 0000000..6dac164 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_PunchValueRecord.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_PunchValueRecord + { + public string ID { get; set; } + public string DeviceNo { get; set; } + public string Address { get; set; } + public string ItemValue { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record.cs new file mode 100644 index 0000000..1cb1f44 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record.cs @@ -0,0 +1,39 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record + { + public string ID { get; set; } + public string barcode { get; set; } + public string BcpID { get; set; } + public string ZcID { get; set; } + public string OrderNo { get; set; } + public string WorkClass { get; set; } + public Nullable CreateTime { get; set; } + public string PlanID { get; set; } + public string SerialNo { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + public Nullable PrintTime { get; set; } + public Nullable IsCheck { get; set; } + public string barCode1 { get; set; } + public string barCode2 { get; set; } + public string barCode3 { get; set; } + public string barCode4 { get; set; } + public string barCode5 { get; set; } + public string barCode6 { get; set; } + public string StationId { get; set; } + public Nullable Flag { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record2.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record2.cs new file mode 100644 index 0000000..9e0f92b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record2.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record2 + { + public string ID { get; set; } + public string barcode { get; set; } + public string isOK { get; set; } + public string planID { get; set; } + public Nullable createtime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20200721.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20200721.cs new file mode 100644 index 0000000..396db80 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20200721.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record_20200721 + { + public string ID { get; set; } + public string barcode { get; set; } + public string BcpID { get; set; } + public string ZcID { get; set; } + public string OrderNo { get; set; } + public string WorkClass { get; set; } + public Nullable CreateTime { get; set; } + public string PlanID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20200907.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20200907.cs new file mode 100644 index 0000000..2ed4632 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20200907.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record_20200907 + { + public string ID { get; set; } + public string barcode { get; set; } + public string BcpID { get; set; } + public string ZcID { get; set; } + public string OrderNo { get; set; } + public string WorkClass { get; set; } + public Nullable CreateTime { get; set; } + public string PlanID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20221231.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20221231.cs new file mode 100644 index 0000000..3d628ef --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20221231.cs @@ -0,0 +1,37 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record_20221231 + { + public string ID { get; set; } + public string barcode { get; set; } + public string BcpID { get; set; } + public string ZcID { get; set; } + public string OrderNo { get; set; } + public string WorkClass { get; set; } + public Nullable CreateTime { get; set; } + public string PlanID { get; set; } + public string SerialNo { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + public Nullable PrintTime { get; set; } + public Nullable IsCheck { get; set; } + public string barCode1 { get; set; } + public string barCode2 { get; set; } + public string barCode3 { get; set; } + public string barCode4 { get; set; } + public string barCode5 { get; set; } + public string barCode6 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20230630.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20230630.cs new file mode 100644 index 0000000..1e7b9f7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_20230630.cs @@ -0,0 +1,39 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record_20230630 + { + public string ID { get; set; } + public string barcode { get; set; } + public string BcpID { get; set; } + public string ZcID { get; set; } + public string OrderNo { get; set; } + public string WorkClass { get; set; } + public Nullable CreateTime { get; set; } + public string PlanID { get; set; } + public string SerialNo { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + public Nullable PrintTime { get; set; } + public Nullable IsCheck { get; set; } + public string barCode1 { get; set; } + public string barCode2 { get; set; } + public string barCode3 { get; set; } + public string barCode4 { get; set; } + public string barCode5 { get; set; } + public string barCode6 { get; set; } + public string StationId { get; set; } + public Nullable Flag { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_BF.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_BF.cs new file mode 100644 index 0000000..dbc971b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_BF.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record_BF + { + public string ID { get; set; } + public string barcode { get; set; } + public string BcpID { get; set; } + public string ZcID { get; set; } + public string OrderNo { get; set; } + public string WorkClass { get; set; } + public Nullable CreateTime { get; set; } + public string PlanID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_Del.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_Del.cs new file mode 100644 index 0000000..e3e71b9 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_Del.cs @@ -0,0 +1,37 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record_Del + { + public string ID { get; set; } + public string barcode { get; set; } + public string BcpID { get; set; } + public string ZcID { get; set; } + public string OrderNo { get; set; } + public string WorkClass { get; set; } + public Nullable CreateTime { get; set; } + public string PlanID { get; set; } + public string SerialNo { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + public Nullable PrintTime { get; set; } + public Nullable IsCheck { get; set; } + public string barCode1 { get; set; } + public string barCode2 { get; set; } + public string barCode3 { get; set; } + public string barCode4 { get; set; } + public string barCode5 { get; set; } + public string barCode6 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_DoorSill_214.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_DoorSill_214.cs new file mode 100644 index 0000000..63eff6f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Code_Record_DoorSill_214.cs @@ -0,0 +1,40 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Code_Record_DoorSill_214 + { + public string ID { get; set; } + public string barcode { get; set; } + public string BcpID { get; set; } + public string ZcID { get; set; } + public string OrderNo { get; set; } + public string WorkClass { get; set; } + public Nullable CreateTime { get; set; } + public string PlanID { get; set; } + public string SerialNo { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + public Nullable PrintTime { get; set; } + public Nullable IsCheck { get; set; } + public string barCode1 { get; set; } + public string barCode2 { get; set; } + public string barCode3 { get; set; } + public string barCode4 { get; set; } + public string barCode5 { get; set; } + public string barCode6 { get; set; } + public string StationId { get; set; } + public Nullable Flag { get; set; } + public Nullable IsIndia { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Proucting.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Proucting.cs new file mode 100644 index 0000000..419617f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Punch_Proucting.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Punch_Proucting + { + public int ID { get; set; } + public string StationNo { get; set; } + public string PlanID { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Record_243.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Record_243.cs new file mode 100644 index 0000000..90b471c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Record_243.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Record_243 + { + public string ID { get; set; } + public string PartNo1 { get; set; } + public string PartNo2 { get; set; } + public string BoxNo { get; set; } + public string OrderNo { get; set; } + public Nullable CreateTime1 { get; set; } + public Nullable CreateTime2 { get; set; } + public Nullable Flag { get; set; } + public Nullable Type { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Record_243_20220517.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Record_243_20220517.cs new file mode 100644 index 0000000..4b670d2 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Record_243_20220517.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Record_243_20220517 + { + public string ID { get; set; } + public string PartNo1 { get; set; } + public string PartNo2 { get; set; } + public string BoxNo { get; set; } + public string OrderNo { get; set; } + public Nullable CreateTime1 { get; set; } + public Nullable CreateTime2 { get; set; } + public Nullable Flag { get; set; } + public Nullable Type { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Record_247.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Record_247.cs new file mode 100644 index 0000000..820369a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Record_247.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Record_247 + { + public string ID { get; set; } + public string PartNo1 { get; set; } + public string PartNo2 { get; set; } + public string BoxNo { get; set; } + public string OrderNo { get; set; } + public Nullable CreateTime1 { get; set; } + public Nullable CreateTime2 { get; set; } + public Nullable Flag { get; set; } + public Nullable Type { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + public string DeviceNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Record_Gratings.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Record_Gratings.cs new file mode 100644 index 0000000..83c2629 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Record_Gratings.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Record_Gratings + { + public long ID { get; set; } + public string BarCode1 { get; set; } + public string BarCode2 { get; set; } + public string ZcCode { get; set; } + public Nullable CreateTime { get; set; } + public Nullable Flag { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportA1.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportA1.cs new file mode 100644 index 0000000..0900b1f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportA1.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportA1 + { + public long ID { get; set; } + public string barCode { get; set; } + public string side { get; set; } + public string inspectResult { get; set; } + public string reason { get; set; } + public Nullable createTime { get; set; } + public string inspectTimes { get; set; } + public string remark1 { get; set; } + public string weizhi { get; set; } + public string station { get; set; } + public string damnPosition { get; set; } + public string remark2 { get; set; } + public string Location { get; set; } + public string Project { get; set; } + public string workClass { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportF1.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportF1.cs new file mode 100644 index 0000000..a92ebe7 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportF1.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportF1 + { + public long ID { get; set; } + public string Location { get; set; } + public string Project { get; set; } + public string barCode { get; set; } + public string side { get; set; } + public string inspectResult { get; set; } + public string reason { get; set; } + public Nullable createTime { get; set; } + public string inspectTimes { get; set; } + public string remark1 { get; set; } + public string weizhi { get; set; } + public string station { get; set; } + public string damnPosition { get; set; } + public string remark2 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportF3.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportF3.cs new file mode 100644 index 0000000..13eaf7e --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportF3.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportF3 + { + public int ID { get; set; } + public string Location { get; set; } + public string Project { get; set; } + public string reason { get; set; } + public Nullable num { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportG1.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportG1.cs new file mode 100644 index 0000000..b575805 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportG1.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportG1 + { + public int ID { get; set; } + public string Location { get; set; } + public string Project { get; set; } + public string barCode { get; set; } + public string side { get; set; } + public string inspectResult { get; set; } + public string reason { get; set; } + public Nullable createTime { get; set; } + public string inspectTimes { get; set; } + public string remark1 { get; set; } + public string remark2 { get; set; } + public string weizhi { get; set; } + public string station { get; set; } + public string damnPosition { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportH1.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportH1.cs new file mode 100644 index 0000000..a62255a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportH1.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportH1 + { + public int ID { get; set; } + public string Location { get; set; } + public string Project { get; set; } + public string barCode { get; set; } + public string side { get; set; } + public string inspectResult { get; set; } + public string reason { get; set; } + public Nullable createTime { get; set; } + public string inspectTimes { get; set; } + public string remark1 { get; set; } + public string remark2 { get; set; } + public string weizhi { get; set; } + public string station { get; set; } + public string damnPosition { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen.cs new file mode 100644 index 0000000..1718801 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportPaintingScreen + { + public string color { get; set; } + public string productInfo { get; set; } + public int sumNum { get; set; } + public int oncePassNum { get; set; } + public string oncePassRate { get; set; } + public int sumPassNum { get; set; } + public string sumPassRate { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_bak.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_bak.cs new file mode 100644 index 0000000..a5e571a --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_bak.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportPaintingScreen_bak + { + public string color { get; set; } + public string productInfo { get; set; } + public int sumNum { get; set; } + public int oncePassNum { get; set; } + public string oncePassRate { get; set; } + public int sumPassNum { get; set; } + public string sumPassRate { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_pg.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_pg.cs new file mode 100644 index 0000000..2785b9c --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_pg.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportPaintingScreen_pg + { + public string color { get; set; } + public string productInfo { get; set; } + public int sumNum { get; set; } + public int hgNum { get; set; } + public string DefectName1 { get; set; } + public decimal defectRate1 { get; set; } + public string DefectName2 { get; set; } + public Nullable defectRate2 { get; set; } + public string DefectName3 { get; set; } + public Nullable defectRate3 { get; set; } + public string DefectName4 { get; set; } + public Nullable defectRate4 { get; set; } + public string DefectName5 { get; set; } + public Nullable defectRate5 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_pg_bak.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_pg_bak.cs new file mode 100644 index 0000000..f4b0f49 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportPaintingScreen_pg_bak.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportPaintingScreen_pg_bak + { + public string color { get; set; } + public string productInfo { get; set; } + public int sumNum { get; set; } + public int hgNum { get; set; } + public string DefectName1 { get; set; } + public decimal defectRate1 { get; set; } + public string DefectName2 { get; set; } + public Nullable defectRate2 { get; set; } + public string DefectName3 { get; set; } + public Nullable defectRate3 { get; set; } + public string DefectName4 { get; set; } + public Nullable defectRate4 { get; set; } + public string DefectName5 { get; set; } + public Nullable defectRate5 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ReportTest.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportTest.cs new file mode 100644 index 0000000..2a45db1 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ReportTest.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ReportTest + { + public long ID { get; set; } + public string barCode { get; set; } + public string side { get; set; } + public string inspectResult { get; set; } + public string reason { get; set; } + public Nullable createTime { get; set; } + public string inspectTimes { get; set; } + public string remark1 { get; set; } + public string weizhi { get; set; } + public string station { get; set; } + public string damnPosition { get; set; } + public string remark2 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen.cs new file mode 100644 index 0000000..bd3d4a5 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen.cs @@ -0,0 +1,65 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Report_FiveScreen + { + public string ID { get; set; } + public string Name { get; set; } + public Nullable LastYear { get; set; } + public Nullable Jan { get; set; } + public Nullable Feb { get; set; } + public Nullable Mar { get; set; } + public Nullable Apr { get; set; } + public Nullable May { get; set; } + public Nullable Jun { get; set; } + public Nullable Jul { get; set; } + public Nullable Aug { get; set; } + public Nullable Sept { get; set; } + public Nullable Oct { get; set; } + public Nullable Nov { get; set; } + public Nullable Dec { get; set; } + public Nullable day1 { get; set; } + public Nullable day2 { get; set; } + public Nullable day3 { get; set; } + public Nullable day4 { get; set; } + public Nullable day5 { get; set; } + public Nullable day6 { get; set; } + public Nullable day7 { get; set; } + public Nullable day8 { get; set; } + public Nullable day9 { get; set; } + public Nullable day10 { get; set; } + public Nullable day11 { get; set; } + public Nullable day12 { get; set; } + public Nullable day13 { get; set; } + public Nullable day14 { get; set; } + public Nullable day15 { get; set; } + public Nullable day16 { get; set; } + public Nullable day17 { get; set; } + public Nullable day18 { get; set; } + public Nullable day19 { get; set; } + public Nullable day20 { get; set; } + public Nullable day21 { get; set; } + public Nullable day22 { get; set; } + public Nullable day23 { get; set; } + public Nullable day24 { get; set; } + public Nullable day25 { get; set; } + public Nullable day26 { get; set; } + public Nullable day27 { get; set; } + public Nullable day28 { get; set; } + public Nullable day29 { get; set; } + public Nullable day30 { get; set; } + public Nullable day31 { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenConfig.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenConfig.cs new file mode 100644 index 0000000..9e76b9f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenConfig.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Report_FiveScreenConfig + { + public string ID { get; set; } + public string Name { get; set; } + public Nullable Min { get; set; } + public Nullable Max { get; set; } + public Nullable Scale { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenLast.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenLast.cs new file mode 100644 index 0000000..23bb6d0 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenLast.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Report_FiveScreenLast + { + public string ID { get; set; } + public string StationID { get; set; } + public string StationNo { get; set; } + public string UseRate { get; set; } + public string PassRate { get; set; } + public string Remark1 { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenStandard.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenStandard.cs new file mode 100644 index 0000000..0ddeb70 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreenStandard.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Report_FiveScreenStandard + { + public string ID { get; set; } + public string Name { get; set; } + public Nullable LastYear { get; set; } + public Nullable Jan { get; set; } + public Nullable Feb { get; set; } + public Nullable Mar { get; set; } + public Nullable Apr { get; set; } + public Nullable May { get; set; } + public Nullable Jun { get; set; } + public Nullable Jul { get; set; } + public Nullable Aug { get; set; } + public Nullable Sept { get; set; } + public Nullable Oct { get; set; } + public Nullable Nov { get; set; } + public Nullable Dec { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen_20191011.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen_20191011.cs new file mode 100644 index 0000000..4e7cb1f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen_20191011.cs @@ -0,0 +1,65 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Report_FiveScreen_20191011 + { + public string ID { get; set; } + public string Name { get; set; } + public Nullable LastYear { get; set; } + public Nullable Jan { get; set; } + public Nullable Feb { get; set; } + public Nullable Mar { get; set; } + public Nullable Apr { get; set; } + public Nullable May { get; set; } + public Nullable Jun { get; set; } + public Nullable Jul { get; set; } + public Nullable Aug { get; set; } + public Nullable Sept { get; set; } + public Nullable Oct { get; set; } + public Nullable Nov { get; set; } + public Nullable Dec { get; set; } + public Nullable day1 { get; set; } + public Nullable day2 { get; set; } + public Nullable day3 { get; set; } + public Nullable day4 { get; set; } + public Nullable day5 { get; set; } + public Nullable day6 { get; set; } + public Nullable day7 { get; set; } + public Nullable day8 { get; set; } + public Nullable day9 { get; set; } + public Nullable day10 { get; set; } + public Nullable day11 { get; set; } + public Nullable day12 { get; set; } + public Nullable day13 { get; set; } + public Nullable day14 { get; set; } + public Nullable day15 { get; set; } + public Nullable day16 { get; set; } + public Nullable day17 { get; set; } + public Nullable day18 { get; set; } + public Nullable day19 { get; set; } + public Nullable day20 { get; set; } + public Nullable day21 { get; set; } + public Nullable day22 { get; set; } + public Nullable day23 { get; set; } + public Nullable day24 { get; set; } + public Nullable day25 { get; set; } + public Nullable day26 { get; set; } + public Nullable day27 { get; set; } + public Nullable day28 { get; set; } + public Nullable day29 { get; set; } + public Nullable day30 { get; set; } + public Nullable day31 { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen_20191014.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen_20191014.cs new file mode 100644 index 0000000..f2d26fc --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Report_FiveScreen_20191014.cs @@ -0,0 +1,65 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Report_FiveScreen_20191014 + { + public string ID { get; set; } + public string Name { get; set; } + public Nullable LastYear { get; set; } + public Nullable Jan { get; set; } + public Nullable Feb { get; set; } + public Nullable Mar { get; set; } + public Nullable Apr { get; set; } + public Nullable May { get; set; } + public Nullable Jun { get; set; } + public Nullable Jul { get; set; } + public Nullable Aug { get; set; } + public Nullable Sept { get; set; } + public Nullable Oct { get; set; } + public Nullable Nov { get; set; } + public Nullable Dec { get; set; } + public Nullable day1 { get; set; } + public Nullable day2 { get; set; } + public Nullable day3 { get; set; } + public Nullable day4 { get; set; } + public Nullable day5 { get; set; } + public Nullable day6 { get; set; } + public Nullable day7 { get; set; } + public Nullable day8 { get; set; } + public Nullable day9 { get; set; } + public Nullable day10 { get; set; } + public Nullable day11 { get; set; } + public Nullable day12 { get; set; } + public Nullable day13 { get; set; } + public Nullable day14 { get; set; } + public Nullable day15 { get; set; } + public Nullable day16 { get; set; } + public Nullable day17 { get; set; } + public Nullable day18 { get; set; } + public Nullable day19 { get; set; } + public Nullable day20 { get; set; } + public Nullable day21 { get; set; } + public Nullable day22 { get; set; } + public Nullable day23 { get; set; } + public Nullable day24 { get; set; } + public Nullable day25 { get; set; } + public Nullable day26 { get; set; } + public Nullable day27 { get; set; } + public Nullable day28 { get; set; } + public Nullable day29 { get; set; } + public Nullable day30 { get; set; } + public Nullable day31 { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ScanAnalysis.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ScanAnalysis.cs new file mode 100644 index 0000000..b50ca69 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ScanAnalysis.cs @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ScanAnalysis + { + public long ID { get; set; } + public Nullable ProductDate { get; set; } + public string workClass { get; set; } + public Nullable Qty { get; set; } + public string ScanPosition1 { get; set; } + public Nullable P_Qty1 { get; set; } + public Nullable P_UnScanQty1 { get; set; } + public string ScanPosition2 { get; set; } + public Nullable P_Qty2 { get; set; } + public Nullable P_UnScanQty2 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ScanRecord_Laser.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ScanRecord_Laser.cs new file mode 100644 index 0000000..9e67a2e --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ScanRecord_Laser.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ScanRecord_Laser + { + public long ID { get; set; } + public string BarCode { get; set; } + public Nullable ScanTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_SkidInfo.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_SkidInfo.cs new file mode 100644 index 0000000..7c7a8ec --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_SkidInfo.cs @@ -0,0 +1,49 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_SkidInfo + { + public string ID { get; set; } + public string SkidNo { get; set; } + public string BarcodeLeft { get; set; } + public string BarcodeRight { get; set; } + public string Layer { get; set; } + public string ColorInfo { get; set; } + public Nullable CreateTime { get; set; } + public string Side_1_BC01 { get; set; } + public string Side_1_BC02 { get; set; } + public string Side_1_BC03 { get; set; } + public string Side_1_BC04 { get; set; } + public string Side_1_BC05 { get; set; } + public string Side_1_BC06 { get; set; } + public string Side_1_BC07 { get; set; } + public string Side_1_BC08 { get; set; } + public string Side_1_BC09 { get; set; } + public string Side_1_BC10 { get; set; } + public string Side_1_BC11 { get; set; } + public string Side_1_BC12 { get; set; } + public string Side_2_BC01 { get; set; } + public string Side_2_BC02 { get; set; } + public string Side_2_BC03 { get; set; } + public string Side_2_BC04 { get; set; } + public string Side_2_BC05 { get; set; } + public string Side_2_BC06 { get; set; } + public string Side_2_BC07 { get; set; } + public string Side_2_BC08 { get; set; } + public string Side_2_BC09 { get; set; } + public string Side_2_BC10 { get; set; } + public string Side_2_BC11 { get; set; } + public string Side_2_BC12 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_SkidInfo_20200904.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_SkidInfo_20200904.cs new file mode 100644 index 0000000..893fa33 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_SkidInfo_20200904.cs @@ -0,0 +1,49 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_SkidInfo_20200904 + { + public string ID { get; set; } + public string SkidNo { get; set; } + public string BarcodeLeft { get; set; } + public string BarcodeRight { get; set; } + public string Layer { get; set; } + public string ColorInfo { get; set; } + public Nullable CreateTime { get; set; } + public string Side_1_BC01 { get; set; } + public string Side_1_BC02 { get; set; } + public string Side_1_BC03 { get; set; } + public string Side_1_BC04 { get; set; } + public string Side_1_BC05 { get; set; } + public string Side_1_BC06 { get; set; } + public string Side_1_BC07 { get; set; } + public string Side_1_BC08 { get; set; } + public string Side_1_BC09 { get; set; } + public string Side_1_BC10 { get; set; } + public string Side_1_BC11 { get; set; } + public string Side_1_BC12 { get; set; } + public string Side_2_BC01 { get; set; } + public string Side_2_BC02 { get; set; } + public string Side_2_BC03 { get; set; } + public string Side_2_BC04 { get; set; } + public string Side_2_BC05 { get; set; } + public string Side_2_BC06 { get; set; } + public string Side_2_BC07 { get; set; } + public string Side_2_BC08 { get; set; } + public string Side_2_BC09 { get; set; } + public string Side_2_BC10 { get; set; } + public string Side_2_BC11 { get; set; } + public string Side_2_BC12 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_SpcialNotFacStockNo.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_SpcialNotFacStockNo.cs new file mode 100644 index 0000000..64d86fa --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_SpcialNotFacStockNo.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_SpcialNotFacStockNo + { + public string ID { get; set; } + public string NotFacStockNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_SpcialStockNo.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_SpcialStockNo.cs new file mode 100644 index 0000000..92933d0 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_SpcialStockNo.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_SpcialStockNo + { + public string ID { get; set; } + public string SpecialStockNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_SpecialHybrid.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_SpecialHybrid.cs new file mode 100644 index 0000000..f43a9c8 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_SpecialHybrid.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_SpecialHybrid + { + public int ID { get; set; } + public string SpecialPartNo { get; set; } + public Nullable IsHigh { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_SpecialVisual.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_SpecialVisual.cs new file mode 100644 index 0000000..8688a28 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_SpecialVisual.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_SpecialVisual + { + public int ID { get; set; } + public string SpecialPartNo { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_Station.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_Station.cs new file mode 100644 index 0000000..0188ba6 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_Station.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_Station + { + public string StationID { get; set; } + public string LineID { get; set; } + public string StationNo { get; set; } + public string Des { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_StationAndCylinder.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_StationAndCylinder.cs new file mode 100644 index 0000000..1ec8efb --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_StationAndCylinder.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_StationAndCylinder + { + public string ID { get; set; } + public string StationID { get; set; } + public string CylinderID { get; set; } + public Nullable Time1 { get; set; } + public Nullable Time2 { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn.cs new file mode 100644 index 0000000..8e3790b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_StockIn + { + public string ID { get; set; } + public string barcode { get; set; } + public string pass { get; set; } + public Nullable createTime { get; set; } + public string paintCode { get; set; } + public string ZcCode { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_StockInColor.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_StockInColor.cs new file mode 100644 index 0000000..5d0f31b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_StockInColor.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_StockInColor + { + public string ID { get; set; } + public string Barcode { get; set; } + public string ColorInfo { get; set; } + public Nullable CreateTime { get; set; } + public string CreateBy { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_20200511.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_20200511.cs new file mode 100644 index 0000000..8701405 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_20200511.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_StockIn_20200511 + { + public string ID { get; set; } + public string barcode { get; set; } + public string pass { get; set; } + public Nullable createTime { get; set; } + public string paintCode { get; set; } + public string ZcCode { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_20210322.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_20210322.cs new file mode 100644 index 0000000..21f943b --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_20210322.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_StockIn_20210322 + { + public string ID { get; set; } + public string barcode { get; set; } + public string pass { get; set; } + public Nullable createTime { get; set; } + public string paintCode { get; set; } + public string ZcCode { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_beif.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_beif.cs new file mode 100644 index 0000000..7d5d609 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_StockIn_beif.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_StockIn_beif + { + public string ID { get; set; } + public string barcode { get; set; } + public string pass { get; set; } + public Nullable createTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ToVisual_WheelBrow_243.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ToVisual_WheelBrow_243.cs new file mode 100644 index 0000000..7c5ab49 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ToVisual_WheelBrow_243.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ToVisual_WheelBrow_243 + { + public long ID { get; set; } + public string PartNo { get; set; } + public Nullable ToVisual { get; set; } + public Nullable CreateTime { get; set; } + public Nullable FinishTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ToVisual_WheelBrow_247.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ToVisual_WheelBrow_247.cs new file mode 100644 index 0000000..cd340dc --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ToVisual_WheelBrow_247.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ToVisual_WheelBrow_247 + { + public long ID { get; set; } + public string PartNo { get; set; } + public Nullable ToVisual { get; set; } + public Nullable CreateTime { get; set; } + public Nullable FinishTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_ToWmsRecord.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_ToWmsRecord.cs new file mode 100644 index 0000000..6bf2b2f --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_ToWmsRecord.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_ToWmsRecord + { + public long Id { get; set; } + public string BarCode { get; set; } + public Nullable CreateTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_aa.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_aa.cs new file mode 100644 index 0000000..32b5b56 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_aa.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_aa + { + public int ID { get; set; } + public string barcode { get; set; } + public string side { get; set; } + public Nullable createtime { get; set; } + public Nullable ToVisual { get; set; } + public Nullable FinishTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_reportA2.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_reportA2.cs new file mode 100644 index 0000000..4e0fe83 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_reportA2.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_reportA2 + { + public long ID { get; set; } + public string barCode { get; set; } + public string side { get; set; } + public string inspectResult { get; set; } + public string reason { get; set; } + public Nullable createTime { get; set; } + public string inspectTimes { get; set; } + public string remark1 { get; set; } + public string weizhi { get; set; } + public string station { get; set; } + public string damnPosition { get; set; } + public string remark2 { get; set; } + public string workClass { get; set; } + public string Location { get; set; } + public string Project { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/tb_test.cs b/BBMPTMes/MESClassLibrary/EFModel/tb_test.cs new file mode 100644 index 0000000..1fa5d67 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/tb_test.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class tb_test + { + public string ID { get; set; } + public string Reason { get; set; } + public Nullable createTime { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/test1.cs b/BBMPTMes/MESClassLibrary/EFModel/test1.cs new file mode 100644 index 0000000..4149670 --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/test1.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class test1 + { + public string ID { get; set; } + public string StationID { get; set; } + public string StockNo { get; set; } + public Nullable PrintType { get; set; } + public string OneBarCode { get; set; } + public string PlanID { get; set; } + public Nullable CreateTime { get; set; } + public string ProductName { get; set; } + public string PartNo { get; set; } + public string ProductDate { get; set; } + public string ClassName { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EFModel/test2.cs b/BBMPTMes/MESClassLibrary/EFModel/test2.cs new file mode 100644 index 0000000..c92b0ef --- /dev/null +++ b/BBMPTMes/MESClassLibrary/EFModel/test2.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace MESClassLibrary.EFModel +{ + using System; + using System.Collections.Generic; + + public partial class test2 + { + public int ID { get; set; } + public string PlanID { get; set; } + public string StationID { get; set; } + public string ProductDate { get; set; } + public string ClassName { get; set; } + public Nullable ProductCount { get; set; } + } +} diff --git a/BBMPTMes/MESClassLibrary/EncryptedDLL/MESClassLibrary.dll b/BBMPTMes/MESClassLibrary/EncryptedDLL/MESClassLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..a742b053c7ac2131dc59f8d4ba1fcfd9f771f272 GIT binary patch literal 721920 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 k9r=u^tmUh!<-4j$w8@_8{)~zp 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
序号点检内容" + i + "
" + (j + 1).ToString() + "" + info[j].InspectionContent + "
+ + + + + + + + + +
大屏幕数据选择 + 显示产品: +
+ + + + + + diff --git a/BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx.cs b/BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx.cs new file mode 100644 index 0000000..a0c8dc6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx.cs @@ -0,0 +1,364 @@ +using MESClassLibrary; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.Show; +using MESClassLibrary.EFModel; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class AnalysisApi : System.Web.UI.Page + { + public static string GoodsListHtml; + + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetBarDate(string side, string ProductName) + { + try + { + + AnalysisBLL bll = new AnalysisBLL(); + List list = bll.SearchInfo(ProductName); + + List listModel = new List(); + + BuildBar(side, "S前保", ProductName, list, ref listModel); + BuildBar(side, "S后保", ProductName, list, ref listModel); + BuildBar(side, "AMG前保", ProductName, list, ref listModel); + BuildBar(side, "AMG后保", ProductName, list, ref listModel); + + return JSONTools.ScriptSerialize(listModel); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + [WebMethod] + public static string GetLineTable(string side, string ProductName) + { + try + { + try + { + AnalysisBLL bll = new AnalysisBLL(); + List r_list = new List(); + + List list = bll.SearchInfo(ProductName); + list = list.Where(p => p.InspectTimes.Equals("1") && p.side.Equals(side)).ToList(); + + BuildLineTable("S前保", list, ref r_list); + BuildLineTable("S后保", list, ref r_list); + BuildLineTable("AMG前保", list, ref r_list); + BuildLineTable("AMG后保", list, ref r_list); + BuildLineTable("S左门槛", list, ref r_list); + BuildLineTable("S右门槛", list, ref r_list); + BuildLineTable("AMG左门槛", list, ref r_list); + BuildLineTable("AMG右门槛", list, ref r_list); + + return JSONTools.ScriptSerialize(r_list); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + [WebMethod] + public static string GetLineData(string side, string ProductName) + { + try + { + List categories = new List(); + List data = new List(); + AnalysisBLL bll = new AnalysisBLL(); + List list = bll.SearchInfo(ProductName); + list = list.Where(p => p.InspectTimes.Equals("1") && p.side.Equals(side)).ToList(); + DateTime date = DateTime.Now; + //DateTime date = Convert.ToDateTime("2019-06-20 7:00:00"); + string nowTime = date.ToString("yyyy-MM-dd"); + DateTime startTime = Convert.ToDateTime(nowTime + " 08:00:00");//班次开始时间 + DateTime endTime = Convert.ToDateTime(nowTime + " 19:59:59");//班次结束时间 + + if (DateTime.Compare(date, startTime) < 0) + { + //昨天夜班 + for (int i = 1; i <= 12; i++) + { + categories.Add(endTime.AddDays(-1).AddHours(i).Hour.ToString() + "点"); + + var t = list.Where(p => p.createTime >= endTime.AddDays(-1).AddHours(i - 1) && p.createTime <= endTime.AddDays(-1).AddHours(i)).ToList(); + + if (t != null && t.Count > 0) + { + double r = (double)t.Where(p => p.inspectResult.Equals("[合格]")).Count() / (double)t.Count; + data.Add(Math.Round(r * 100, 2).ToString()); + } + else + { + data.Add("0.00%"); + } + } + } + + if (DateTime.Compare(date, endTime) > 0) + { + //今天夜班 + for (int i = 1; i <= 12; i++) + { + categories.Add(endTime.AddHours(i).Hour.ToString() + "点"); + + var t = list.Where(p => p.createTime > endTime.AddHours(i - 1) && p.createTime <= endTime.AddHours(i)).ToList(); + + if (t != null && t.Count > 0) + { + double r = (double)t.Where(p => p.inspectResult.Equals("[合格]")).Count() / (double)t.Count; + data.Add(Math.Round(r * 100, 2).ToString()); + } + else + { + data.Add("0.00%"); + } + } + } + + if (DateTime.Compare(date, startTime) >= 0 && DateTime.Compare(date, endTime) <= 0) + { + //今天白班 + + for (int i = 1; i <= 12; i++) + { + categories.Add(startTime.AddHours(i).Hour.ToString() + "点"); + + var t = list.Where(p => p.createTime >= startTime.AddHours(i - 1) && p.createTime <= startTime.AddHours(i)).ToList(); + + if (t != null && t.Count > 0) + { + double r = (double)t.Where(p => p.inspectResult.Equals("[合格]")).Count() / (double)t.Count; + data.Add(Math.Round(r * 100, 2).ToString()); + } + else + { + data.Add("0.00"); + } + } + + } + + AnalysisBarModel analysisBarModel = new AnalysisBarModel(); + analysisBarModel.text = ""; + analysisBarModel.subtext = "一次合格率(%)"; + analysisBarModel.categories = categories; + analysisBarModel.data = data; + + return JSONTools.ScriptSerialize(analysisBarModel); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + [WebMethod] + public static string GetPieData(string reason, string ProductName) + { + try + { + AnalysisBLL bll = new AnalysisBLL(); + List list = bll.SearchInfo(ProductName); + List info = new List(); + + if ("其他".Equals(reason)) + { + info = list.Where(p => + p.reason != null + && !p.reason.Contains("颗粒;") + //&& !p.reason.Contains("浮泡;") + && !p.reason.Contains("流挂;") + && !p.reason.Contains("遮盖不良;") + //&& !p.reason.Contains("异色;") + //&& !p.reason.Contains("水迹;") + ).ToList(); + } + else + { + info = list.Where(p => p.reason != null && p.reason.Contains(reason + ";")).ToList(); + } + List listModel = new List(); + + BuildPieData("A侧", ProductName, "上支架", reason, info, ref listModel); + BuildPieData("A侧", ProductName, "中支架", reason, info, ref listModel); + BuildPieData("A侧", ProductName, "下支架", reason, info, ref listModel); + BuildPieData("B侧", ProductName, "上支架", reason, info, ref listModel); + BuildPieData("B侧", ProductName, "中支架", reason, info, ref listModel); + BuildPieData("B侧", ProductName, "下支架", reason, info, ref listModel); + + return JSONTools.ScriptSerialize(listModel); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + + + + private static void BuildBar(string side, string partName, string ProductName, List list, ref List listModel) + { + + try + { + var A_list = list.Where(p => side.Equals(p.side) && p.productInfo.Contains(partName)).OrderByDescending(p => p.createTime).ToList(); + List barcodeList = new List(); + List newlist = new List(); + foreach (var item in A_list) + { + if (barcodeList.Contains(item.barcode)) + { + continue; + } + barcodeList.Add(item.barcode); + newlist.Add(item); + } + + + Dictionary colorList = new Dictionary(); + foreach (var item in newlist) + { + string pinfo = item.productInfo; + pinfo = pinfo.Substring(0, pinfo.IndexOf(",")); + if (!colorList.ContainsKey(pinfo)) + { + colorList.Add(pinfo, 0); + } + + if ("[合格]".Equals(item.inspectResult)) + { + colorList[pinfo] = colorList[pinfo] + 1; + } + + + + } + + List categories = new List(); + List data = new List(); + + foreach (KeyValuePair kvp in colorList) + { + categories.Add(kvp.Key); + double r = (double)kvp.Value / (double)newlist.Count; + data.Add(Math.Round(r * 100, 2).ToString()); + } + + + AnalysisBarModel analysisBarModel = new AnalysisBarModel(); + analysisBarModel.text = side + " " + ProductName + " " + partName; + analysisBarModel.subtext = "颜色合格率分析"; + analysisBarModel.categories = categories; + analysisBarModel.data = data; + + listModel.Add(analysisBarModel); + } + catch (Exception) + { + + } + + } + + private static void BuildLineTable(string partName, List list, ref List listModel) + { + + double cnum = 0; + double num = 0; + double r = 0; + + var info = list.Where(p => p.productInfo.Contains(partName)); + + if (info.Count() > 0) + { + cnum = info.Count(); + num = info.Where(p => p.inspectResult.Equals("[合格]")).Count(); + r = num / cnum; + listModel.Add(Math.Round(r * 100, 2).ToString() + "%"); + } + else + { + listModel.Add("0.00%"); + } + + } + + private static void BuildPieData(string side, string ProductName, string position, string reason, List list, ref List listModel) + { + + List info = list.Where(p => p.side.Equals(side) && p.position.Contains(position)).ToList(); + List damnPositionList = new List(); + + foreach (var item in info) + { + if (String.IsNullOrWhiteSpace(item.damnPosition)) + { + continue; + } + + string[] sArray = item.damnPosition.Split(new char[1] { ';' }, StringSplitOptions.RemoveEmptyEntries); + if (sArray.Length > 0) + { + foreach (var damn in sArray) + { + if (!damnPositionList.Contains(damn)) + { + damnPositionList.Add(damn); + } + } + } + } + List data = new List(); + foreach (var item in damnPositionList) + { + PieDataModel pieDataModel = new PieDataModel(); + pieDataModel.value = info.Where(p => p.damnPosition.Contains(item)).Count(); + pieDataModel.name = item + "区"; + data.Add(pieDataModel); + + } + + AnalysisPieModel analysisPieModel = new AnalysisPieModel(); + analysisPieModel.text = side + " " + ProductName + " " + position + " " + reason; + analysisPieModel.data = data; + + listModel.Add(analysisPieModel); + + } + + + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx.designer.cs new file mode 100644 index 0000000..eb50c2a --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/AnalysisApi.aspx.designer.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage +{ + + + public partial class AnalysisApi { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx b/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx new file mode 100644 index 0000000..11f1386 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx @@ -0,0 +1,180 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AppendColorSearch.aspx.cs" Inherits="MESWebSite.Manage.AppendColorSearch" %> + + + + + + + + + + + + + + + + 附加颜色查询 + + +
+
+ + + + + + + +
附加颜色查询 + 时间: + 至 + +   条码: +   查询 + 导出 +
+
+ +
+ + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx.cs b/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx.cs new file mode 100644 index 0000000..a7c1804 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class AppendColorSearch : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx.designer.cs new file mode 100644 index 0000000..10251ee --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/AppendColorSearch.aspx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class AppendColorSearch { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Bom.aspx b/BBMPTMes/MESWebSite/Manage/Bom.aspx new file mode 100644 index 0000000..1a32ebd --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Bom.aspx @@ -0,0 +1,341 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Bom.aspx.cs" Inherits="MESWebSite.Manage.Bom" %> + + + + + + + + + + + + + + + + + BOM信息 + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Bom.aspx.cs b/BBMPTMes/MESWebSite/Manage/Bom.aspx.cs new file mode 100644 index 0000000..1c0c7a6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Bom.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Bom : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Bom.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Bom.aspx.designer.cs new file mode 100644 index 0000000..719479b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Bom.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Bom { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx b/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx new file mode 100644 index 0000000..edab604 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx @@ -0,0 +1,371 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BucketInfo.aspx.cs" Inherits="MESWebSite.Manage.BucketInfo" %> + + + + + + + + + + + + + + + + + 油漆桶信息 + + +
+
+ + + + + + + + + + + + <%-- --%> + + +
油漆桶信息 + 油漆桶条码: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.cs b/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.cs new file mode 100644 index 0000000..59e6017 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class BucketInfo : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.designer.cs new file mode 100644 index 0000000..8f27e15 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/BucketInfo.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class BucketInfo { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/CheckItem.aspx b/BBMPTMes/MESWebSite/Manage/CheckItem.aspx new file mode 100644 index 0000000..a93fb80 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CheckItem.aspx @@ -0,0 +1,362 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CheckItem.aspx.cs" Inherits="MESWebSite.Manage.CheckItem" %> + + + + + + + + + + + + + + + + + + 点检项信息 + + +
+
+ + + + + + + + + + + + + + +
点检项信息 + 设备: + 点检内容: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/CheckItem.aspx.cs b/BBMPTMes/MESWebSite/Manage/CheckItem.aspx.cs new file mode 100644 index 0000000..4a24e37 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CheckItem.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class CheckItem : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/CheckItem.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/CheckItem.aspx.designer.cs new file mode 100644 index 0000000..29c2de0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CheckItem.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class CheckItem { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Color.aspx b/BBMPTMes/MESWebSite/Manage/Color.aspx new file mode 100644 index 0000000..7f17ac0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Color.aspx @@ -0,0 +1,374 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Color.aspx.cs" Inherits="MESWebSite.Manage.Color" %> + + + + + + + + + + + + + + + + + 漆面颜色 + + +
+
+ + + + + + + + + + + + + + +
漆面颜色 + 颜色代码: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Color.aspx.cs b/BBMPTMes/MESWebSite/Manage/Color.aspx.cs new file mode 100644 index 0000000..fd70cd9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Color.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Color : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Color.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Color.aspx.designer.cs new file mode 100644 index 0000000..00cc8cd --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Color.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Color { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx b/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx new file mode 100644 index 0000000..719b2ed --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx @@ -0,0 +1,484 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CommonlyInspection.aspx.cs" Inherits="MESWebSite.Manage.CommonlyInspection" %> + + + + + + + + + + + + + + + 一般保全点检管理 + + +
+
+ + + + + + + + + + + + +
一般保全点检管理 + 点检日期: + + 产线: + 设备: + 版本: + 查询 + 编辑 +
+
+ +
+
+ + + + +
+
+ + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx.cs b/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx.cs new file mode 100644 index 0000000..aa9b4b5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx.cs @@ -0,0 +1,77 @@ +using MESClassLibrary.BLL.BasicInfo; +using MESClassLibrary.BLL.Inspection; +using MESClassLibrary.BLL.Log; +using MESWebSite.CommonClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class CommonlyInspection : System.Web.UI.Page + { + public string strusername = ""; + public string struserID = ""; + protected void Page_Load(object sender, EventArgs e) + { + if (Request.Cookies["LoginUserInfo"] != null) + { + strusername = Request.Cookies["LoginUserInfo"]["RealName"].Trim(); + struserID = Request.Cookies["LoginUserInfo"]["UserID"].Trim(); + UserID.Value = struserID; + } + } + + [WebMethod] + public static string GetDate(string VersionID, string CheckDate,string CheckType) + { + try + { + + CommonlyInspectionBLL bll = new CommonlyInspectionBLL(); + return bll.GetDate(VersionID, CheckDate, CheckType); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + [WebMethod] + public static string GetReportDate(string VersionID, string CheckDate) + { + try + { + + CommonlyInspectionBLL bll = new CommonlyInspectionBLL(); + return bll.GetReportDate(VersionID, CheckDate); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + [WebMethod] + public static string QueryOne(string DeviceID) + { + try + { + DeviceBLL bll = new DeviceBLL(); + return bll.SearchInfoByID(DeviceID); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx.designer.cs new file mode 100644 index 0000000..ebc4ffa --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CommonlyInspection.aspx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class CommonlyInspection { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx b/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx new file mode 100644 index 0000000..51aaad0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx @@ -0,0 +1,550 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CommonlyInspectionVersion.aspx.cs" Inherits="MESWebSite.Manage.CommonlyInspectionVersion" %> + + + + + + + + + + + + + + + + 点检版本管理 + + + +
+
+ + + + + + + + + + + + +
点检版本管理 + 设备: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx.cs b/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx.cs new file mode 100644 index 0000000..44620b6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class CommonlyInspectionVersion : System.Web.UI.Page + { + public string strusername = ""; + public string struserID = ""; + protected void Page_Load(object sender, EventArgs e) + { + if (Request.Cookies["LoginUserInfo"] != null) + { + strusername = Request.Cookies["LoginUserInfo"]["RealName"].Trim(); + struserID = Request.Cookies["LoginUserInfo"]["UserID"].Trim(); + UserID.Value = struserID; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx.designer.cs new file mode 100644 index 0000000..4d29da6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/CommonlyInspectionVersion.aspx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class CommonlyInspectionVersion { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Defect.aspx b/BBMPTMes/MESWebSite/Manage/Defect.aspx new file mode 100644 index 0000000..a515d16 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Defect.aspx @@ -0,0 +1,361 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Defect.aspx.cs" Inherits="MESWebSite.Manage.Defect" %> + + + + + + + + + + + + + + + + + 缺陷信息 + + +
+
+ + + + + + + + + + + + + + +
缺陷信息 + 产线: + 缺陷名称: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Defect.aspx.cs b/BBMPTMes/MESWebSite/Manage/Defect.aspx.cs new file mode 100644 index 0000000..d2ab7eb --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Defect.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Defect : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Defect.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Defect.aspx.designer.cs new file mode 100644 index 0000000..c092cf8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Defect.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Defect { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Dept.aspx b/BBMPTMes/MESWebSite/Manage/Dept.aspx new file mode 100644 index 0000000..555f9d6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Dept.aspx @@ -0,0 +1,131 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Dept.aspx.cs" Inherits="MESWebSite.Manage.Dept" %> + + + + + + + + + + + + + + + + + 部门信息 + + +
+
+ + + + + + + + + + +
部门信息 + 部门名称: + 查询
+
+ +
+ +
+ + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Dept.aspx.cs b/BBMPTMes/MESWebSite/Manage/Dept.aspx.cs new file mode 100644 index 0000000..70c2205 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Dept.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Dept : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Dept.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Dept.aspx.designer.cs new file mode 100644 index 0000000..0b7be90 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Dept.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Dept { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Device.aspx b/BBMPTMes/MESWebSite/Manage/Device.aspx new file mode 100644 index 0000000..85e1874 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Device.aspx @@ -0,0 +1,407 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Device.aspx.cs" Inherits="MESWebSite.Manage.Device" %> + + + + + + + + + + + + + + + + + + 设备信息 + + +
+
+ + + + + + + + + + + + + + +
设备信息 + 产线: + 设备编号: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Device.aspx.cs b/BBMPTMes/MESWebSite/Manage/Device.aspx.cs new file mode 100644 index 0000000..a4b7d30 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Device.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Device : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Device.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Device.aspx.designer.cs new file mode 100644 index 0000000..f80ab56 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Device.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Device { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Factory.aspx b/BBMPTMes/MESWebSite/Manage/Factory.aspx new file mode 100644 index 0000000..71f8c2e --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Factory.aspx @@ -0,0 +1,328 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Factory.aspx.cs" Inherits="MESWebSite.Manage.Factory" %> + + + + + + + + + + + + + + + + 工厂信 + + +
+
+ + + + + + + + + + + + + + +
工厂信息 + 工厂名称: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Factory.aspx.cs b/BBMPTMes/MESWebSite/Manage/Factory.aspx.cs new file mode 100644 index 0000000..cde9c8c --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Factory.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Factory : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Factory.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Factory.aspx.designer.cs new file mode 100644 index 0000000..96fd7ad --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Factory.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Factory { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx b/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx new file mode 100644 index 0000000..1021b94 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx @@ -0,0 +1,946 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FiveScreen.aspx.cs" Inherits="MESWebSite.Manage.FiveScreen" %> + + + + + + + + + + + + + + + + + 报表设置日统计 + + +
+
+ + + + + + + + + + + + + +
报表设置日统计 + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.cs b/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.cs new file mode 100644 index 0000000..14bfe64 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.cs @@ -0,0 +1,38 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.Report; +using MESClassLibrary.EFModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class FiveScreen : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static tb_Report_FiveScreen GetDate(string TableName) + { + try + { + FiveScreenBLL fiveScreenBLL = new FiveScreenBLL(); + tb_Report_FiveScreen fiveScreen = fiveScreenBLL.SearchInfoByNameLast(TableName); + return fiveScreen; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return null; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.designer.cs new file mode 100644 index 0000000..62e298d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreen.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class FiveScreen { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx b/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx new file mode 100644 index 0000000..de14f8b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx @@ -0,0 +1,349 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FiveScreenLast.aspx.cs" Inherits="MESWebSite.Manage.FiveScreenLast" %> + + + + + + + + + + + + + + + + + 注塑设备运行情况 + + +
+
+ + + + + + + + + + + + + +
注塑设备运行情况 + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + + diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx.cs b/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx.cs new file mode 100644 index 0000000..d0bbbff --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class FiveScreenLast : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx.designer.cs new file mode 100644 index 0000000..651e150 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreenLast.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class FiveScreenLast { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx b/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx new file mode 100644 index 0000000..b3c2ec3 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx @@ -0,0 +1,485 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FiveScreenStandard.aspx.cs" Inherits="MESWebSite.Manage.FiveScreenStandard" %> + + + + + + + + + + + + + + + + 报表设置月统计 + + +
+
+ + + + + + + + + + + + + +
报表设置月统计 + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx.cs b/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx.cs new file mode 100644 index 0000000..4c30685 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class FiveScreenStandard : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx.designer.cs new file mode 100644 index 0000000..4c7b2ac --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/FiveScreenStandard.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class FiveScreenStandard { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx b/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx new file mode 100644 index 0000000..85a85e6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx @@ -0,0 +1,464 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ImgVideo.aspx.cs" Inherits="MESWebSite.Manage.ImgVideo" %> + + + + + + + + + + + + + + + + + 图片和视频 + + +
+
+ + + + + + + +
图片和视频 + 上传时间: + 文件名称: + +   查询   + 新增图片   + 新增视频   + 删除 + +
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.cs b/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.cs new file mode 100644 index 0000000..e90f6a4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.cs @@ -0,0 +1,25 @@ +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Web; + +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.HtmlControls; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ImgVideo : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } + + +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.designer.cs new file mode 100644 index 0000000..32ca286 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ImgVideo.aspx.designer.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ImgVideo { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + + /// + /// imgUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText imgUrl; + + /// + /// VideoUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText VideoUrl; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Index.aspx b/BBMPTMes/MESWebSite/Manage/Index.aspx new file mode 100644 index 0000000..f558239 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Index.aspx @@ -0,0 +1,478 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="MESWebSite.Manage.Index" %> + + + + + + MES + + + + + + + + + + +
+
+
+
+ +
+
+ BBMPT管理系统 +
+ + <%--BBMPT管理系统--%> + <%----%> +
+
+ 当前用户: +          修改密码 +          + <%--登录时间:,--%> + 退出 +    +
+ +
+ <%--aa--%> + <%--更改密码--%> +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+
+
+
+ +
+
+ + +
+ + + diff --git a/BBMPTMes/MESWebSite/Manage/Index.aspx.cs b/BBMPTMes/MESWebSite/Manage/Index.aspx.cs new file mode 100644 index 0000000..fd7d291 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Index.aspx.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Index : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + string username = ""; + string userID = ""; + if (Request.Cookies["LoginUserInfo"] != null) + { + username = Request.Cookies["LoginUserInfo"]["RealName"].Trim(); + userID = Request.Cookies["LoginUserInfo"]["UserID"].Trim(); + } + + if (!string.IsNullOrWhiteSpace(username)) + { + lbl_UserName.Text = HttpUtility.UrlDecode(username, System.Text.Encoding.UTF8); + txt_UserID.Text = userID; + } + else + { + ClientScript.RegisterStartupScript(ClientScript.GetType(), "提示", ""); + Response.Redirect("../Login.aspx", false); + } + + this.ServerInformation.Text = "服务器地址: " + Request.ServerVariables.Get("Remote_Host").ToString() + "

" + + "浏览器: " + Request.Browser.Browser + "

" + + "浏览器版本号: " + Request.Browser.MajorVersion + "

" + + "客户端平台: " + Request.Browser.Platform + "

" + + "服务器ip: " + Request.ServerVariables.Get("Local_Addr").ToString() + "

" + + "服务器名: " + Request.ServerVariables.Get("Server_Name").ToString() + "

" + + "服务器地址: " + Request.ServerVariables["Url"].ToString() + "

" + + "客户端提供的路径信息: " + Request.ServerVariables["Path_Info"].ToString() + "

" + + "与应用程序元数据库路径相应的物理路径: " + Request.ServerVariables["Appl_Physical_Path"].ToString() + "

" + + "通过由虚拟至物理的映射后得到的路径: " + Request.ServerVariables["Path_Translated"].ToString() + "

" + + "执行脚本的名称: " + Request.ServerVariables["Script_Name"].ToString() + "

" + + "接受请求的服务器端口号: " + Request.ServerVariables["Server_Port"].ToString() + "

" + + "发出请求的远程主机的IP地址: " + Request.ServerVariables["Remote_Addr"].ToString() + "

" + + "发出请求的远程主机名称IP地址: " + Request.ServerVariables["Remote_Host"].ToString() + "

" + + "返回接受请求的服务器地址IP地址: " + Request.ServerVariables["Local_Addr"].ToString() + "

" + + "返回服务器地址IP地址: " + Request.ServerVariables["Http_Host"].ToString() + "

" + + "服务器的主机名、DNS地址或IP地址: " + Request.ServerVariables["Server_Name"].ToString() + "

" + + "提出请求的方法比如GET、HEAD、POST等等: " + Request.ServerVariables["Request_Method"].ToString() + "

" + + "如果接受请求的服务器端口为安全端口时,则为1,否则为0: " + Request.ServerVariables["Server_Port_Secure"].ToString() + "

" + + "服务器使用的协议的名称和版本: " + Request.ServerVariables["Server_Protocol"].ToString() + "

" + + "应答请求并运行网关的服务器软件的名称和版本: " + Request.ServerVariables["Server_Software"].ToString() + "

" + ; + } + + /// + /// 退出按钮 + /// + /// + /// + protected void lbtn_quit_Click(object sender, EventArgs e) + { + if (Request.Cookies["LoginUserInfo"] != null) + Request.Cookies["LoginUserInfo"].Expires = DateTime.Now.AddDays(-1); + + System.Web.Security.FormsAuthentication.SignOut(); + + Session.Abandon(); + Session.RemoveAll(); + Session.Clear(); + + this.Response.Redirect("../Login.aspx"); + this.Response.End(); + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Index.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Index.aspx.designer.cs new file mode 100644 index 0000000..f5c3ff1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Index.aspx.designer.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Index { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lbl_UserName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lbl_UserName; + + /// + /// lbtn_quit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton lbtn_quit; + + /// + /// txt_UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TextBox txt_UserID; + + /// + /// ServerInformation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Literal ServerInformation; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx b/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx new file mode 100644 index 0000000..cb68289 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx @@ -0,0 +1,231 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InjectionDownDay.aspx.cs" Inherits="MESWebSite.Manage.InjectionDownDay" %> + + + + + + + + + + + + + + + + + + + + 每日平均换膜统计 + + + +
+
+ + + + + + + + + + + + + + +
每日平均换膜统计
+ +    + 查询 +    + 导出 +
+
+
+
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx.cs b/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx.cs new file mode 100644 index 0000000..f5a20fd --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx.cs @@ -0,0 +1,36 @@ +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class InjectionDownDay : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime) + { + try + { + InjectionDownRecordBLL bll = new InjectionDownRecordBLL(); + return bll.SearchDay(StartTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx.designer.cs new file mode 100644 index 0000000..d31b21b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownDay.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class InjectionDownDay { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx b/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx new file mode 100644 index 0000000..577aebe --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx @@ -0,0 +1,230 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InjectionDownMonth.aspx.cs" Inherits="MESWebSite.Manage.InjectionDownMonth" %> + + + + + + + + + + + + + + + + + + + 每月平均换膜统计 + + + +
+
+ + + + + + + + + + + + + + +
每月平均换膜统计
+ +    + 查询 +    + 导出 +
+
+
+
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx.cs b/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx.cs new file mode 100644 index 0000000..9b0528e --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx.cs @@ -0,0 +1,35 @@ +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class InjectionDownMonth : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + [WebMethod] + public static string GetDate(string StartTime) + { + try + { + InjectionDownRecordBLL bll = new InjectionDownRecordBLL(); + return bll.SearchMonth(StartTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx.designer.cs new file mode 100644 index 0000000..3208a6d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownMonth.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class InjectionDownMonth { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx b/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx new file mode 100644 index 0000000..6dbab0e --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx @@ -0,0 +1,230 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InjectionDownMonthTimes.aspx.cs" Inherits="MESWebSite.Manage.InjectionDownMonthTimes" %> + + + + + + + + + + + + + + + + + + + 每月换膜次数统计 + + + +
+
+ + + + + + + + + + + + + + +
每月换膜次数统计
+ +    + 查询 +    + 导出 +
+
+
+
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx.cs b/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx.cs new file mode 100644 index 0000000..329e2c7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx.cs @@ -0,0 +1,36 @@ +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class InjectionDownMonthTimes : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime) + { + try + { + InjectionDownRecordBLL bll = new InjectionDownRecordBLL(); + return bll.SearchMonthTimes(StartTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx.designer.cs new file mode 100644 index 0000000..ab8dcf7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownMonthTimes.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class InjectionDownMonthTimes { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx b/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx new file mode 100644 index 0000000..c28b2c7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx @@ -0,0 +1,1125 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InjectionDownRecord.aspx.cs" Inherits="MESWebSite.Manage.InjectionDownRecord" %> + + + + + + + + + + + + + + + + 停机时间拆分 + + + +
+
+ + + + + + + + + + + + +
停机时间拆分
注塑机台: +    + 时间: +  至  + +    + 查询 + <%--    + 新增--%> +    + 编辑 + <%--    + 删除--%> +    + 更改 +
+
+ +
+ + + + + + + + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx.cs b/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx.cs new file mode 100644 index 0000000..37d4e63 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx.cs @@ -0,0 +1,41 @@ +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class InjectionDownRecord : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + + + [WebMethod] + public static string GetDate(List list) + { + try + { + InjectionDownRecordBLL bll = new InjectionDownRecordBLL(); + return ""; + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx.designer.cs new file mode 100644 index 0000000..a88723f --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionDownRecord.aspx.designer.cs @@ -0,0 +1,87 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class InjectionDownRecord { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// DownRecordID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText DownRecordID; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + + /// + /// StationID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText StationID; + + /// + /// StartTime_B 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText StartTime_B; + + /// + /// EndTime_B 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText EndTime_B; + + /// + /// PlanID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText PlanID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx b/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx new file mode 100644 index 0000000..268219b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx @@ -0,0 +1,552 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InjectionPlan.aspx.cs" Inherits="MESWebSite.Manage.InjectionPlan" %> + + + + + + + + + + + + + + + + + 注塑计划 + + +
+
+ + + + + + + + + + + + +
注塑计划 + 机台: + 配置: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx.cs b/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx.cs new file mode 100644 index 0000000..16ce284 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class InjectionPlan : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx.designer.cs new file mode 100644 index 0000000..1e4ed3b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionPlan.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class InjectionPlan { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx b/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx new file mode 100644 index 0000000..de8d1f1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx @@ -0,0 +1,517 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InjectionRecord.aspx.cs" Inherits="MESWebSite.Manage.InjectionRecord" %> + + + + + + + + + + + + + + + + 注塑浇口废料信息 + + + +
+
+ + + + + + + + + + + + +
注塑浇口废料信息
注塑机台: +    + 时间: +  至  + +    + 查询 +    + 新增 +    + 编辑 +    + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx.cs b/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx.cs new file mode 100644 index 0000000..762888a --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class InjectionRecord : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx.designer.cs new file mode 100644 index 0000000..72097d0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionRecord.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class InjectionRecord { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + + /// + /// PartNo 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText PartNo; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx b/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx new file mode 100644 index 0000000..0e71215 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx @@ -0,0 +1,429 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InjectionWasteRecord.aspx.cs" Inherits="MESWebSite.Manage.InjectionWasteRecord" %> + + + + + + + + + + + + + + + + 浇口废料信息 + + +
+
+ + + + + + + + + + + + +
注塑浇口废料信息
机台: + +   时间: +  至  + +    + 查询 +    + 编辑浇口废料信息 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx.cs b/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx.cs new file mode 100644 index 0000000..9ee16c1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class InjectionWasteRecord : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx.designer.cs new file mode 100644 index 0000000..2d6d88e --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/InjectionWasteRecord.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class InjectionWasteRecord { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Line.aspx b/BBMPTMes/MESWebSite/Manage/Line.aspx new file mode 100644 index 0000000..37ac68f --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Line.aspx @@ -0,0 +1,360 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Line.aspx.cs" Inherits="MESWebSite.Manage.Line" %> + + + + + + + + + + + + + + + + 生产线信息 + + +
+
+ + + + + + + + + + + + + + +
生产线信息 + 地点: + 产线名称: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Line.aspx.cs b/BBMPTMes/MESWebSite/Manage/Line.aspx.cs new file mode 100644 index 0000000..9ec8bab --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Line.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Line : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Line.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Line.aspx.designer.cs new file mode 100644 index 0000000..1fd52bb --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Line.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Line { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Location.aspx b/BBMPTMes/MESWebSite/Manage/Location.aspx new file mode 100644 index 0000000..0f86ef4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Location.aspx @@ -0,0 +1,310 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Location.aspx.cs" Inherits="MESWebSite.Manage.Location" %> + + + + + + + + + + + + + + + + 工厂信息 + + +
+
+ + + + + + + + + + + + + + +
工厂信息 + 工厂名称: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Location.aspx.cs b/BBMPTMes/MESWebSite/Manage/Location.aspx.cs new file mode 100644 index 0000000..1468a12 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Location.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Location : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Location.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Location.aspx.designer.cs new file mode 100644 index 0000000..82e9c1c --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Location.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Location { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Machine.aspx b/BBMPTMes/MESWebSite/Manage/Machine.aspx new file mode 100644 index 0000000..14080fe --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Machine.aspx @@ -0,0 +1,323 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Machine.aspx.cs" Inherits="MESWebSite.Manage.Machine" %> + + + + + + + + + + + + + + + + + 注塑机 + + +
+
+ + + + + + + + + + + + + + +
注塑机 + 注塑机编号: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Machine.aspx.cs b/BBMPTMes/MESWebSite/Manage/Machine.aspx.cs new file mode 100644 index 0000000..d1886bf --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Machine.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Machine : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Machine.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Machine.aspx.designer.cs new file mode 100644 index 0000000..3fb0322 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Machine.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Machine { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx new file mode 100644 index 0000000..57c8143 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx @@ -0,0 +1,354 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MaterialAvailabilityDay.aspx.cs" Inherits="MESWebSite.Manage.MaterialAvailabilityDay" %> + + + + + + + + + + + + + + + + + + + + 日原料利用率 + + + +
+
+ + + + + + + + + + + + + + +
日原料利用率
时间: + +    + 查询 +    + 导出 +
+
+
+
+ +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx.cs b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx.cs new file mode 100644 index 0000000..b8f96ff --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx.cs @@ -0,0 +1,56 @@ +using MESClassLibrary; +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class MaterialAvailabilityDay : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + return bll.SearchMaterialAvailabilityDay(StartTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + [WebMethod] + public static string GetBarDate(string StartTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + EcharBarModel md = bll.SearchMaterialAvailabilityDayBar(StartTime); + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx.designer.cs new file mode 100644 index 0000000..ee942c8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityDay.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class MaterialAvailabilityDay { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx new file mode 100644 index 0000000..a275dbd --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx @@ -0,0 +1,354 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MaterialAvailabilityMonth.aspx.cs" Inherits="MESWebSite.Manage.MaterialAvailabilityMonth" %> + + + + + + + + + + + + + + + + + + + + 月原料利用率 + + + +
+
+ + + + + + + + + + + + + + +
月原料利用率
时间: + +    + 查询 +    + 导出 +
+
+
+
+ +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx.cs b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx.cs new file mode 100644 index 0000000..466fde8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx.cs @@ -0,0 +1,54 @@ +using MESClassLibrary; +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class MaterialAvailabilityMonth : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + return bll.SearchMaterialAvailabilityMonth(StartTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + [WebMethod] + public static string GetBarDate(string StartTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + EcharBarModel md = bll.SearchMaterialAvailabilityMonthBar(StartTime); + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx.designer.cs new file mode 100644 index 0000000..09af4d0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/MaterialAvailabilityMonth.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class MaterialAvailabilityMonth { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx b/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx new file mode 100644 index 0000000..865269a --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx @@ -0,0 +1,197 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ModelChangeRecord.aspx.cs" Inherits="MESWebSite.Manage.ModelChangeRecord" %> + + + + + + + + + + + + + + + + + + + + 换膜记录单 + + + +
+
+ + + + + + + + + + + + + + +
换膜记录单
模具名称 + +    + 时间: +  至  + +    + 查询 +    + 导出 +
+
+
+
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx.cs b/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx.cs new file mode 100644 index 0000000..cd6ca84 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx.cs @@ -0,0 +1,36 @@ +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ModelChangeRecord : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime, string EndTime, string ModelId) + { + try + { + InjectionDownRecordBLL bll = new InjectionDownRecordBLL(); + return bll.SearchChangeRecord(StartTime, EndTime, ModelId); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx.designer.cs new file mode 100644 index 0000000..61d00bb --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ModelChangeRecord.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ModelChangeRecord { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx b/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx new file mode 100644 index 0000000..6d375a6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx @@ -0,0 +1,731 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ModelInfo.aspx.cs" Inherits="MESWebSite.Manage.ModelInfo" %> + + + + + + + + + + + + + + + + + 模具信息 + + +
+
+ + + + + + + + + + + + + + +
模具信息 + 模具编号: + 查询 + 新增 + + 编辑 + + 删除 + + 更改 +
+
+ +
+ + + + + + + + + + + + +
+ + + diff --git a/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.cs b/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.cs new file mode 100644 index 0000000..fe4023e --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ModelInfo : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.designer.cs new file mode 100644 index 0000000..9dd0428 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ModelInfo.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ModelInfo { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + + /// + /// ModelID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText ModelID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Operator.aspx b/BBMPTMes/MESWebSite/Manage/Operator.aspx new file mode 100644 index 0000000..a45417f --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Operator.aspx @@ -0,0 +1,391 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Operator.aspx.cs" Inherits="MESWebSite.Manage.Operator" %> + + + + + + + + + + + + + + + + + 员工信息 + + +
+
+ + + + + + + + + + + + + + +
员工信息 + 产线: + 员工姓名: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + + diff --git a/BBMPTMes/MESWebSite/Manage/Operator.aspx.cs b/BBMPTMes/MESWebSite/Manage/Operator.aspx.cs new file mode 100644 index 0000000..4c21a61 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Operator.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Operator : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Operator.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Operator.aspx.designer.cs new file mode 100644 index 0000000..734d2e5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Operator.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Operator { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx b/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx new file mode 100644 index 0000000..db4d315 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx @@ -0,0 +1,17 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PaintBarCodeSearch.aspx.cs" Inherits="MESWebSite.Manage.PaintBarCodeSearch" %> + + + + + + + + + +
+
+ +
+
+ + diff --git a/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx.cs b/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx.cs new file mode 100644 index 0000000..17ddd74 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class PaintBarCodeSearch : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx.designer.cs new file mode 100644 index 0000000..015eda8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PaintBarCodeSearch.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class PaintBarCodeSearch { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx b/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx new file mode 100644 index 0000000..7583060 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx @@ -0,0 +1,415 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PaintInfo.aspx.cs" Inherits="MESWebSite.Manage.PaintInfo" %> + + + + + + + + + + + + + + + + + 油漆信息 + + +
+
+ + + + + + + + + + + + <%-- --%> + + +
油漆信息 + 油漆条码: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.cs b/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.cs new file mode 100644 index 0000000..9337475 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class PaintInfo : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.designer.cs new file mode 100644 index 0000000..5975390 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PaintInfo.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class PaintInfo { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx b/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx new file mode 100644 index 0000000..99a0767 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx @@ -0,0 +1,356 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Paint_Bucket.aspx.cs" Inherits="MESWebSite.Manage.Paint_Bucket" %> + + + + + + + + + + + + + + + + 油漆与油漆桶关系 + + +
+
+ + + + + + + + + + + + + + +
油漆与油漆桶关系 + 油漆: + + 油漆桶: + + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx.cs b/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx.cs new file mode 100644 index 0000000..e145e62 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Paint_Bucket : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx.designer.cs new file mode 100644 index 0000000..544ef65 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Paint_Bucket.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Paint_Bucket { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Place.aspx b/BBMPTMes/MESWebSite/Manage/Place.aspx new file mode 100644 index 0000000..e911ac6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Place.aspx @@ -0,0 +1,361 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Place.aspx.cs" Inherits="MESWebSite.Manage.Place" %> + + + + + + + + + + + + + + + + 地点信息 + + +
+
+ + + + + + + + + + + + + + +
地点信息 + 工厂: + 地点名称: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Place.aspx.cs b/BBMPTMes/MESWebSite/Manage/Place.aspx.cs new file mode 100644 index 0000000..45b0e6a --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Place.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Place : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Place.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Place.aspx.designer.cs new file mode 100644 index 0000000..bd41f39 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Place.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Place { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx b/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx new file mode 100644 index 0000000..f7d14fa --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx @@ -0,0 +1,219 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PlaitingInspectionRepair.aspx.cs" Inherits="MESWebSite.Manage.PlaitingInspectionRepair" %> + + + + + + + + + + + + + + + 二次抛光记录 + + +
+
+ + + + + + + + + + + + + +
二次抛光记录
+ 结果: +    + 时间: +  至  + +    + 型号: + +    + 颜色: + +    + 查询 +    + 导出 +
+
+ +
+ + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx.cs b/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx.cs new file mode 100644 index 0000000..002833e --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class PlaitingInspectionRepair : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx.designer.cs new file mode 100644 index 0000000..abd0935 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlaitingInspectionRepair.aspx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class PlaitingInspectionRepair { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Plan_243.aspx b/BBMPTMes/MESWebSite/Manage/Plan_243.aspx new file mode 100644 index 0000000..e9a91c6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_243.aspx @@ -0,0 +1,1004 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Plan_243.aspx.cs" Inherits="MESWebSite.Manage.Plan_243" %> + + + + + + + + + + + + + + + + x243小件装配计划 + + +
+
+ + + + + + + +
x243小件装配计划 + 创建时间: +  至  + +   订单号: +   查询 + 新增生产计划   + 追加生产计划   + 编辑   + 删除 + 导入   + 导出 +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Plan_243.aspx.cs b/BBMPTMes/MESWebSite/Manage/Plan_243.aspx.cs new file mode 100644 index 0000000..6ce0e62 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_243.aspx.cs @@ -0,0 +1,252 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.OleDb; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.Plan243; +using MESClassLibrary.BLL.Plan247; +using MESClassLibrary.EFModel; + +namespace MESWebSite.Manage +{ + public partial class Plan_243 : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void ImportExcel_Click(object sender, EventArgs e) + { + try + { + if (input01.PostedFile.ContentLength > 0) + { + string strUrl = "../Excel/"; + if (Directory.Exists(Server.MapPath(strUrl)) == false) + { + Directory.CreateDirectory(Server.MapPath(strUrl)); + } + String fileExtension = System.IO.Path.GetExtension(input01.PostedFile.FileName).ToLower(); + String fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + fileExtension; + input01.PostedFile.SaveAs(Server.MapPath(strUrl) + fileName); + string excelPath = Server.MapPath(strUrl) + fileName; + DataTable dt = null; + #region 校验文件 + try + { + + dt = GetExcelTableByOleDB(excelPath, "Sheet1"); + + if (dt != null && dt.Rows.Count > 1) + { + + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + } + catch (Exception ex) + { + return; + } + #endregion + Plan243BLL bll = new Plan243BLL(); + List list = new List(); + #region 校验数据 + if (dt != null && dt.Rows.Count > 0) + { + for (int i = 1; i < dt.Rows.Count; i++) + { + #region 值校验 + string OrderNo = dt.Rows[i][0].ToString(); + if (OrderNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + string Item = dt.Rows[i][1].ToString(); + if (Item == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + int int_item = 0; + if (!Int32.TryParse(Item, out int_item)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + string PartNo = dt.Rows[i][2].ToString(); + if (PartNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + string PlanCount = dt.Rows[i][5].ToString(); + if (PlanCount == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + int int_planCount = 0; + if (!Int32.TryParse(PlanCount, out int_planCount)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + #endregion + + #region 业务逻辑校验 + + if (bll.QueryByOrderNo(OrderNo.Substring(0, 8), PartNo)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + if (list.Where(p => p.OrderNo.Contains(OrderNo.Substring(0, 8)) && p.PartNo.Equals(PartNo)).Count() > 0) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + if (bll.QueryByOrderNoAndItem(OrderNo, int_item)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + if (list.Where(p => p.OrderNo.Equals(OrderNo) && p.Item == int_item).Count() > 0) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + #endregion + + tb_Plan_243 md = new tb_Plan_243(); + md.ID = Guid.NewGuid().ToString(); + md.CreateTime = DateTime.Now; + md.LyCount = 0; + md.RepairCount = 0; + md.ScrapCount1 = 0; + md.ScrapCount2 = 0; + md.CompleteCount = 0; + md.IsFinish = 0; + + md.OrderNo = OrderNo; + md.PartNo = PartNo; + md.Des = ""; + md.Item = int_item; + md.OrderCount = int_planCount; + list.Add(md); + } + } + + + + #endregion + + #region 存储数据 + try + { + if (list.Count > 0) + { + foreach (var item in list) + { + bll.AddInfo(item); + } + } + + } + catch (Exception ex) + { + return; + } + #endregion + + #region 展示数据 + //SearchData(); + //BindSelectData(); + #endregion + + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + + public DataTable GetExcelTableByOleDB(string strExcelPath, string tableName) + { + OleDbConnection objConn = null; + try + { + DataTable dtExcel = new DataTable(); + //数据表 + DataSet ds = new DataSet(); + //获取文件扩展名 + string strExtension = System.IO.Path.GetExtension(strExcelPath); + string strFileName = System.IO.Path.GetFileName(strExcelPath); + //Excel的连接 + + switch (strExtension) + { + case ".xls": + objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;\""); + break; + case ".xlsx": + objConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 12.0;HDR=NO;IMEX=1;\""); + break; + + default: + objConn = null; + break; + } + if (objConn == null) + { + return null; + } + try + { + objConn.Open(); + } + catch (Exception ex) + { + + } + + //获取Excel中所有Sheet表的信息 + //System.Data.DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); + //获取Excel的第一个Sheet表名 + //string tableName = schemaTable.Rows[0][2].ToString().Trim(); + string strSql = "select * from [" + tableName + "$]"; + //获取Excel指定Sheet表中的信息 + OleDbCommand objCmd = new OleDbCommand(strSql, objConn); + OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn); + myData.Fill(ds, tableName);//填充数据 + objConn.Close(); + //dtExcel即为excel文件中指定表中存储的信息 + dtExcel = ds.Tables[tableName]; + return dtExcel; + } + catch (Exception ex) + { + if (objConn != null) + { + objConn.Close(); + } + + return null; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Plan_243.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Plan_243.aspx.designer.cs new file mode 100644 index 0000000..df5fd5d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_243.aspx.designer.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Plan_243 { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// ImportExcel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Button ImportExcel; + + /// + /// input01 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputFile input01; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Plan_247.aspx b/BBMPTMes/MESWebSite/Manage/Plan_247.aspx new file mode 100644 index 0000000..d018713 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_247.aspx @@ -0,0 +1,1003 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Plan_247.aspx.cs" Inherits="MESWebSite.Manage.Plan_247" %> + + + + + + + + + + + + + + + + + x247小件装配计划 + + +
+
+ + + + + + + +
x247小件装配计划 + 创建时间: +  至  + +   订单号: +   查询 + 新增生产计划   + 追加生产计划   + 编辑   + 删除 + 导入   + 导出 +
+
+ +
+ + + + + + + + + + + + + + + + + + +
+ + + diff --git a/BBMPTMes/MESWebSite/Manage/Plan_247.aspx.cs b/BBMPTMes/MESWebSite/Manage/Plan_247.aspx.cs new file mode 100644 index 0000000..f05425b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_247.aspx.cs @@ -0,0 +1,253 @@ +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.Plan247; +using MESClassLibrary.EFModel; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.OleDb; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Plan_247 : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + public void ImportExcel_Click(object sender, EventArgs e) + { + try + { + if (input01.PostedFile.ContentLength > 0) + { + string strUrl = "../Excel/"; + if (Directory.Exists(Server.MapPath(strUrl)) == false) + { + Directory.CreateDirectory(Server.MapPath(strUrl)); + } + String fileExtension = System.IO.Path.GetExtension(input01.PostedFile.FileName).ToLower(); + String fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + fileExtension; + input01.PostedFile.SaveAs(Server.MapPath(strUrl) + fileName); + string excelPath = Server.MapPath(strUrl) + fileName; + DataTable dt = null; + #region 校验文件 + try + { + + dt = GetExcelTableByOleDB(excelPath, "Sheet1"); + + if (dt != null && dt.Rows.Count > 1) + { + + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + } + catch (Exception ex) + { + return; + } + #endregion + Plan247BLL bll = new Plan247BLL(); + List list = new List(); + #region 校验数据 + if (dt != null && dt.Rows.Count > 0) + { + for (int i = 1; i < dt.Rows.Count; i++) + { + #region 值校验 + string OrderNo = dt.Rows[i][0].ToString(); + if (OrderNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + string Item = dt.Rows[i][1].ToString(); + if (Item == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + int int_item = 0; + if (!Int32.TryParse(Item, out int_item)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + string PartNo = dt.Rows[i][2].ToString(); + if (PartNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + string PlanCount = dt.Rows[i][5].ToString(); + if (PlanCount == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + int int_planCount = 0; + if (!Int32.TryParse(PlanCount, out int_planCount)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + #endregion + + #region 业务逻辑校验 + + if (bll.QueryByOrderNo(OrderNo.Substring(0, 8), PartNo)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + if (list.Where(p => p.OrderNo.Contains(OrderNo.Substring(0, 8)) && p.PartNo.Equals(PartNo)).Count() > 0) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + if (bll.QueryByOrderNoAndItem(OrderNo, int_item)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + if (list.Where(p => p.OrderNo.Equals(OrderNo) && p.Item == int_item).Count() > 0) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + #endregion + + tb_Plan_247 md = new tb_Plan_247(); + md.ID = Guid.NewGuid().ToString(); + md.CreateTime = DateTime.Now; + md.LyCount = 0; + md.RepairCount = 0; + md.ScrapCount1 = 0; + md.ScrapCount2 = 0; + md.CompleteCount = 0; + md.IsFinish = 0; + + md.OrderNo = OrderNo; + md.PartNo = PartNo; + md.Des = ""; + md.Item = int_item; + md.OrderCount = int_planCount; + list.Add(md); + } + } + + + + #endregion + + #region 存储数据 + try + { + if (list.Count > 0) + { + foreach (var item in list) + { + bll.AddInfo(item); + } + } + + } + catch (Exception ex) + { + return; + } + #endregion + + #region 展示数据 + //SearchData(); + //BindSelectData(); + #endregion + + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + + } + + public DataTable GetExcelTableByOleDB(string strExcelPath, string tableName) + { + OleDbConnection objConn = null; + try + { + DataTable dtExcel = new DataTable(); + //数据表 + DataSet ds = new DataSet(); + //获取文件扩展名 + string strExtension = System.IO.Path.GetExtension(strExcelPath); + string strFileName = System.IO.Path.GetFileName(strExcelPath); + //Excel的连接 + + switch (strExtension) + { + case ".xls": + objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;\""); + break; + case ".xlsx": + objConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 12.0;HDR=NO;IMEX=1;\""); + break; + + default: + objConn = null; + break; + } + if (objConn == null) + { + return null; + } + try + { + objConn.Open(); + } + catch (Exception ex) + { + + } + + //获取Excel中所有Sheet表的信息 + //System.Data.DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); + //获取Excel的第一个Sheet表名 + //string tableName = schemaTable.Rows[0][2].ToString().Trim(); + string strSql = "select * from [" + tableName + "$]"; + //获取Excel指定Sheet表中的信息 + OleDbCommand objCmd = new OleDbCommand(strSql, objConn); + OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn); + myData.Fill(ds, tableName);//填充数据 + objConn.Close(); + //dtExcel即为excel文件中指定表中存储的信息 + dtExcel = ds.Tables[tableName]; + return dtExcel; + } + catch (Exception ex) + { + if (objConn != null) + { + objConn.Close(); + } + + return null; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Plan_247.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Plan_247.aspx.designer.cs new file mode 100644 index 0000000..9158bcf --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_247.aspx.designer.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage +{ + + + public partial class Plan_247 + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// ImportExcel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Button ImportExcel; + + /// + /// input01 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputFile input01; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx b/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx new file mode 100644 index 0000000..fd5fc69 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx @@ -0,0 +1,1084 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Plan_Punch.aspx.cs" Inherits="MESWebSite.Manage.Plan_Punch" %> + + + + + + + + + + + + + + + + 冲孔装配计划 + + +
+
+ + + + + + + + +
冲孔装配计划 + 创建时间: +  至  + +   订单号: +   查询 + 新增生产计划   + 追加生产计划   + 编辑   + 删除 + 导入   + 导出 +
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.cs b/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.cs new file mode 100644 index 0000000..8410285 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.cs @@ -0,0 +1,297 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.OleDb; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.Plan247; +using MESClassLibrary.BLL.PunchAndWeld; +using MESClassLibrary.EFModel; + +namespace MESWebSite.Manage +{ + public partial class Plan_Punch : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void ImportExcel_Click(object sender, EventArgs e) + { + try + { + if (input01.PostedFile.ContentLength > 0) + { + string strUrl = "../Excel/"; + if (Directory.Exists(Server.MapPath(strUrl)) == false) + { + Directory.CreateDirectory(Server.MapPath(strUrl)); + } + String fileExtension = System.IO.Path.GetExtension(input01.PostedFile.FileName).ToLower(); + String fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + fileExtension; + input01.PostedFile.SaveAs(Server.MapPath(strUrl) + fileName); + string excelPath = Server.MapPath(strUrl) + fileName; + DataTable dt = null; + #region 校验文件 + try + { + + dt = GetExcelTableByOleDB(excelPath, "Sheet1"); + + if (dt != null && dt.Rows.Count > 1) + { + + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + } + catch (Exception ex) + { + return; + } + #endregion + PlanPunchBLL bll = new PlanPunchBLL(); + List list = new List(); + string[] no = null; + + #region 校验数据 + + if (dt != null && dt.Rows.Count > 0) + { + no = new string[dt.Rows.Count-1]; + for (int i = 1; i < dt.Rows.Count; i++) + { + + #region 值校验 + + string banci = dt.Rows[i][0].ToString(); + if (banci == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + if (banci!="A" && banci!="B") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + #region 屏蔽掉 20200516 + //string OrderNo = dt.Rows[i][0].ToString(); + //if (OrderNo == "") + //{ + // ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + // return; + //} + //string Item = dt.Rows[i][1].ToString(); + //if (Item == "") + //{ + // ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + // return; + //} + //int int_item = 0; + //if (!Int32.TryParse(Item, out int_item)) + //{ + // ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + // return; + //} + #endregion + + string date = dt.Rows[i][1].ToString(); + if (date == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + + string PartNo = dt.Rows[i][2].ToString(); + if (PartNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + string PlanCount = dt.Rows[i][3].ToString(); + if (PlanCount == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + int int_planCount = 0; + if (!Int32.TryParse(PlanCount, out int_planCount)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + if (Array.IndexOf(no, PartNo) != -1) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + no[i-1] = dt.Rows[i][1].ToString(); + + #endregion + + #region 业务逻辑校验 + + #region 屏蔽掉 + //if (bll.QueryByOrderNo(OrderNo.Substring(0, 8), PartNo)) + //{ + // ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + // return; + //} + //if (list.Where(p => p.OrderNo.Contains(OrderNo.Substring(0, 8)) && p.PartNo.Equals(PartNo)).Count() > 0) + //{ + // ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + // return; + //} + //if (bll.QueryByOrderNoAndItem(OrderNo, int_item)) + //{ + // ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + // return; + //} + //if (list.Where(p => p.OrderNo.Equals(OrderNo) && p.Item == int_item).Count() > 0) + //{ + // ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + // return; + //} + #endregion + + string orderNo = bll.GetOrderNo(banci,date); + + #endregion + + tb_Plan_Punch md = new tb_Plan_Punch(); + if (i == 1) + { + md.CreateTime = DateTime.Now; + } + else + { + md.CreateTime = list[i - 2].CreateTime.Value.AddSeconds(1); + } + + md.ID = Guid.NewGuid().ToString(); + md.LyCount = 0; + //md.CreateTime = DateTime.Now; + md.BadCount = 0; + md.CompleteCount = 0; + md.IsFinish = 0; + + md.OrderNo = orderNo; + md.PartNo = PartNo; + md.Des = ""; + md.Item = i; + md.OrderCount = int_planCount; + list.Add(md); + } + } + + #endregion + + #region 存储数据 + try + { + if (list.Count > 0) + { + foreach (var item in list) + { + bll.AddInfo(item); + } + } + + } + catch (Exception ex) + { + return; + } + #endregion + + #region 展示数据 + //SearchData(); + //BindSelectData(); + #endregion + + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + + public DataTable GetExcelTableByOleDB(string strExcelPath, string tableName) + { + OleDbConnection objConn = null; + try + { + DataTable dtExcel = new DataTable(); + //数据表 + DataSet ds = new DataSet(); + //获取文件扩展名 + string strExtension = System.IO.Path.GetExtension(strExcelPath); + string strFileName = System.IO.Path.GetFileName(strExcelPath); + //Excel的连接 + + switch (strExtension) + { + case ".xls": + objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;\""); + break; + case ".xlsx": + objConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 12.0;HDR=NO;IMEX=1;\""); + break; + + default: + objConn = null; + break; + } + if (objConn == null) + { + return null; + } + try + { + objConn.Open(); + } + catch (Exception ex) + { + + } + + //获取Excel中所有Sheet表的信息 + //System.Data.DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); + //获取Excel的第一个Sheet表名 + //string tableName = schemaTable.Rows[0][2].ToString().Trim(); + string strSql = "select * from [" + tableName + "$]"; + //获取Excel指定Sheet表中的信息 + OleDbCommand objCmd = new OleDbCommand(strSql, objConn); + OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn); + myData.Fill(ds, tableName);//填充数据 + objConn.Close(); + //dtExcel即为excel文件中指定表中存储的信息 + dtExcel = ds.Tables[tableName]; + return dtExcel; + } + catch (Exception ex) + { + if (objConn != null) + { + objConn.Close(); + } + + return null; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.designer.cs new file mode 100644 index 0000000..570c554 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_Punch.aspx.designer.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Plan_Punch { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// ImportExcel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Button ImportExcel; + + /// + /// input01 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputFile input01; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx b/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx new file mode 100644 index 0000000..14ce9f2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx @@ -0,0 +1,1122 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Plan_Punch_new.aspx.cs" Inherits="MESWebSite.Manage.Plan_Punch_new" %> + + + + + + + + + + + + + + + + 冲孔装配计划-新 + + +
+
+ + + + + + + +
冲孔装配计划-新 + 创建时间: +  至  + +   订单号: +   查询 + 新增生产计划   + 追加生产计划   + 编辑   + 删除 + 导入   + 导出 +
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx.cs b/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx.cs new file mode 100644 index 0000000..f214406 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx.cs @@ -0,0 +1,280 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.OleDb; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using MESClassLibrary.BLL.BasicInfo; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.PunchAndWeld; +using MESClassLibrary.EFModel; +using NPOI.OpenXmlFormats.Wordprocessing; + +namespace MESWebSite.Manage +{ + public partial class Plan_Punch_new : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void ImportExcel_Click(object sender, EventArgs e) + { + try + { + if (input01.PostedFile.ContentLength > 0) + { + string strUrl = "../Excel/"; + if (Directory.Exists(Server.MapPath(strUrl)) == false) + { + Directory.CreateDirectory(Server.MapPath(strUrl)); + } + String fileExtension = System.IO.Path.GetExtension(input01.PostedFile.FileName).ToLower(); + String fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + fileExtension; + input01.PostedFile.SaveAs(Server.MapPath(strUrl) + fileName); + string excelPath = Server.MapPath(strUrl) + fileName; + DataTable dt = null; + #region 校验文件 + try + { + + dt = GetExcelTableByOleDB(excelPath, "Sheet1"); + + if (dt != null && dt.Rows.Count > 1) + { + + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + } + catch (Exception ex) + { + return; + } + #endregion + + PlanPunchNewBLL bll = new PlanPunchNewBLL(); + StationBLL sbll=new StationBLL(); + PunchAndStationBLL psbll=new PunchAndStationBLL(); + List list = new List(); + + string[] no = null; + + #region 校验数据 + + if (dt.Rows.Count > 0) + { + no = new string[dt.Rows.Count - 1]; + for (int i = 1; i < dt.Rows.Count; i++) + { + #region 值校验 + + string orderNo = dt.Rows[i][0].ToString(); + if (orderNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + string item = dt.Rows[i][1].ToString(); + if (item == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + string partNo = dt.Rows[i][2].ToString(); + if (partNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + string planCount = dt.Rows[i][3].ToString(); + if (planCount == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + string stationNo = dt.Rows[i][4].ToString(); + if (stationNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + int int_item = 0; + if (!Int32.TryParse(item, out int_item)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + int int_planCount = 0; + if (!Int32.TryParse(planCount, out int_planCount)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + if (Array.IndexOf(no, partNo) != -1) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + no[i - 1] = dt.Rows[i][2].ToString(); + + #endregion + + #region 业务逻辑校验 + + if (bll.IsExist(orderNo, int_item)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + DataTable mdt = psbll.IsMath1(partNo, stationNo); + if (mdt != null && mdt.Rows.Count > 0) + { + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + + #endregion + + tb_Plan_Punch_214 md = new tb_Plan_Punch_214(); + if (i == 1) + { + md.CreateTime = DateTime.Now; + } + else + { + md.CreateTime = list[i - 2].CreateTime.Value.AddSeconds(1); + } + + md.ID = Guid.NewGuid().ToString(); + md.LyCount = 0; + //md.CreateTime = DateTime.Now; + md.BadCount = 0; + md.CompleteCount = 0; + md.IsFinish = 0; + + DataTable sdt = sbll.SearchInfoByNo(stationNo); + if (sdt != null && sdt.Rows.Count > 0) + { + md.StationId = sdt.Rows[0]["StationID"].ToString(); + } + + md.OrderNo = orderNo; + md.PartNo = partNo; + md.Des = ""; + md.Item = int_item; + md.OrderCount = int_planCount; + list.Add(md); + } + } + + #endregion + + #region 存储数据 + try + { + if (list.Count > 0) + { + foreach (var item in list) + { + bll.AddInfo(item); + } + } + + } + catch (Exception ex) + { + return; + } + #endregion + + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + + public DataTable GetExcelTableByOleDB(string strExcelPath, string tableName) + { + OleDbConnection objConn = null; + try + { + DataTable dtExcel = new DataTable(); + //数据表 + DataSet ds = new DataSet(); + //获取文件扩展名 + string strExtension = System.IO.Path.GetExtension(strExcelPath); + string strFileName = System.IO.Path.GetFileName(strExcelPath); + //Excel的连接 + + switch (strExtension) + { + case ".xls": + objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;\""); + break; + case ".xlsx": + objConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 12.0;HDR=NO;IMEX=1;\""); + break; + + default: + objConn = null; + break; + } + if (objConn == null) + { + return null; + } + try + { + objConn.Open(); + } + catch (Exception ex) + { + + } + + //获取Excel中所有Sheet表的信息 + //System.Data.DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); + //获取Excel的第一个Sheet表名 + //string tableName = schemaTable.Rows[0][2].ToString().Trim(); + string strSql = "select * from [" + tableName + "$]"; + //获取Excel指定Sheet表中的信息 + OleDbCommand objCmd = new OleDbCommand(strSql, objConn); + OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn); + myData.Fill(ds, tableName);//填充数据 + objConn.Close(); + //dtExcel即为excel文件中指定表中存储的信息 + dtExcel = ds.Tables[tableName]; + return dtExcel; + } + catch (Exception ex) + { + if (objConn != null) + { + objConn.Close(); + } + + return null; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx.designer.cs new file mode 100644 index 0000000..bc90120 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plan_Punch_new.aspx.designer.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Plan_Punch_new { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// ImportExcel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Button ImportExcel; + + /// + /// input01 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputFile input01; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Plastic.aspx b/BBMPTMes/MESWebSite/Manage/Plastic.aspx new file mode 100644 index 0000000..b41ff7d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plastic.aspx @@ -0,0 +1,441 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Plastic.aspx.cs" Inherits="MESWebSite.Manage.Plastic" %> + + + + + + + + + + + + + + + + + 注塑件基础信息 + + +
+
+ + + + + + + + + + + + + +
注塑件基础信息 + 存货代码: + 零件号: + 产线: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Plastic.aspx.cs b/BBMPTMes/MESWebSite/Manage/Plastic.aspx.cs new file mode 100644 index 0000000..d75e2b7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plastic.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Plastic : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Plastic.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Plastic.aspx.designer.cs new file mode 100644 index 0000000..484bde9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Plastic.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Plastic { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx b/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx new file mode 100644 index 0000000..eb8a4ed --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx @@ -0,0 +1,257 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PlatingInspection.aspx.cs" Inherits="MESWebSite.Manage.PlatingInspection" %> + + + + + + + + + + + + + + + + 喷涂检测记录 + + + +
+
+ + + + + + + + + + + + + + +
喷涂检测记录
位置: +    + 结果: +    + 时间: + <%--  至  + --%> +  至  + +    + 查询 +    + 导出 +
+
+ +
+ + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx.cs b/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx.cs new file mode 100644 index 0000000..99d84fc --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class PlatingInspection : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx.designer.cs new file mode 100644 index 0000000..c64fe4f --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingInspection.aspx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class PlatingInspection { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx b/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx new file mode 100644 index 0000000..445f8e5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx @@ -0,0 +1,14 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PlatingInspectionNew.aspx.cs" Inherits="MESWebSite.Manage.PlatingInspectionNew" %> + + + + + + + + + +
+ +
+ diff --git a/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx.cs b/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx.cs new file mode 100644 index 0000000..fe36b0f --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class PlatingInspectionNew : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx.designer.cs new file mode 100644 index 0000000..4c1fa2a --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingInspectionNew.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class PlatingInspectionNew { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx b/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx new file mode 100644 index 0000000..9a344d4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx @@ -0,0 +1,206 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PlatingPolish.aspx.cs" Inherits="MESWebSite.Manage.PlatingPolish" %> + + + + + + + + + + + + + + + + + 抛光统计 + + + +
+
+ + + + + + + + + + + + + + +
抛光统计
位置: +    + 时间: +  至  + +    + 型号: + +    + 颜色: + +    + 查询 +    + 导出 +
+
+
+
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx.cs b/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx.cs new file mode 100644 index 0000000..8619315 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx.cs @@ -0,0 +1,31 @@ +using MESClassLibrary.BLL.Check; +using MESClassLibrary.BLL.Log; +using System; +using System.Reflection; +using System.Web.Services; + +namespace MESWebSite.Manage +{ + public partial class PlatingPolish : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime, string EndTime, string side,string Project ,string color) + { + try + { + InspectResultBLL bll = new InspectResultBLL(); + return bll.SearchPlatingPolish(StartTime, EndTime, side, Project, color); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx.designer.cs new file mode 100644 index 0000000..156035e --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingPolish.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class PlatingPolish { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx b/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx new file mode 100644 index 0000000..986714b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx @@ -0,0 +1,209 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PlatingScrap.aspx.cs" Inherits="MESWebSite.Manage.PlatingScrap" %> + + + + + + + + + + + + <%----%> + + + + + + 报废统计 + + + +
+
+ + + + + + + + + + + + + + +
报废统计
位置: +    + 时间: +  至  + +    + 型号: + +    + 颜色: + +    + 查询 +    + 导出 +
+
+
+
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx.cs b/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx.cs new file mode 100644 index 0000000..2805328 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx.cs @@ -0,0 +1,32 @@ +using MESClassLibrary.BLL.Check; +using MESClassLibrary.BLL.Log; +using System; +using System.Reflection; +using System.Web.Services; + + +namespace MESWebSite.Manage +{ + public partial class PlatingScrap : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime, string EndTime, string side,string Project,string color) + { + try + { + InspectResultBLL bll = new InspectResultBLL(); + return bll.SearchPlatingScrap(StartTime, EndTime, side,Project,color); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx.designer.cs new file mode 100644 index 0000000..bc89cf3 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PlatingScrap.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class PlatingScrap { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Product.aspx b/BBMPTMes/MESWebSite/Manage/Product.aspx new file mode 100644 index 0000000..eb53e60 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Product.aspx @@ -0,0 +1,629 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Product.aspx.cs" Inherits="MESWebSite.Manage.Product" %> + + + + + + + + + + + + + + + + + 产品 + + +
+
+ + + + + + + + + + + + + + + + +
产品 + 存货代码: + 类型名称: + 产品名称: + 零件号: + 查询 + 新增 + + 编辑 + + 删除 + + 导入 + + 导出 +
+
+ +
+ + + + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Product.aspx.cs b/BBMPTMes/MESWebSite/Manage/Product.aspx.cs new file mode 100644 index 0000000..4b21711 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Product.aspx.cs @@ -0,0 +1,256 @@ +using MESClassLibrary.BLL.BasicInfo; +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.EFModel; +using MESWebSite.Tool; + +namespace MESWebSite.Manage +{ + public partial class Product : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + public void ImportPDF_Click(object sender, EventArgs e) + { + try + { + if (input02.PostedFile.ContentLength > 0) + { + string strUrl = "../PDF/"; + if (Directory.Exists(Server.MapPath(strUrl)) == false) + { + Directory.CreateDirectory(Server.MapPath(strUrl)); + } + String fileExtension = System.IO.Path.GetExtension(input02.PostedFile.FileName).ToLower(); + String fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + fileExtension; + input02.PostedFile.SaveAs(Server.MapPath(strUrl) + fileName); + + + ProductBLL bll = new ProductBLL(); + if (bll.UpdatePDF(this.lb_ID.Value, fileName)) + { + + } + + + + } + } + catch (Exception ex) + { + + } + } + + + protected void Button1_OnClick(object sender, EventArgs e) + { + try + { + if (input01.PostedFile.ContentLength > 0) + { + string strUrl = "../Excel/"; + if (Directory.Exists(Server.MapPath(strUrl)) == false) + { + Directory.CreateDirectory(Server.MapPath(strUrl)); + } + + String fileExtension = Path.GetExtension(input01.PostedFile.FileName).ToLower(); + String fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + fileExtension; + input01.PostedFile.SaveAs(Server.MapPath(strUrl) + fileName); + string excelPath = Server.MapPath(strUrl) + fileName; + DataTable dt = null; + + ProductBLL bll = new ProductBLL(); + List list = new List(); + + + #region 校验文件 + + try + { + dt = ExcelTool.GetExcelTableByOleDB(excelPath, "Sheet1"); + if (dt != null && dt.Rows.Count > 1) + { + + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return; + } + + #endregion + + #region 校验数据 + + if (dt != null && dt.Rows.Count > 1) + { + for (int i = 1; i < dt.Rows.Count; i++) + { + #region 值校验 + + string productType = dt.Rows[i][0].ToString(); + if (productType == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + string stockNo = dt.Rows[i][1].ToString(); + if (stockNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + string productName = dt.Rows[i][2].ToString(); + if (productName == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + string colorName = dt.Rows[i][3].ToString(); + + string partNo = dt.Rows[i][4].ToString(); + if (partNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + #endregion + + #region 业务逻辑校验 + + + if (!string.IsNullOrEmpty(productType)) + { + ProductTypeBLL ptbll = new ProductTypeBLL(); + + DataTable sdt = MESClassLibrary.Tool.ListToDataTable(ptbll.SearchAll() + .Where(p => p.ProductTypeNo.Equals(productType)).ToList()); + if (sdt != null && sdt.Rows.Count > 0) + { + productType = sdt.Rows[0]["ProductTypeID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + + if (!string.IsNullOrEmpty(stockNo)) + { + DataTable sdt = + MESClassLibrary.Tool.ListToDataTable(bll.SearchAll() + .Where(p => p.StockNo == stockNo).ToList()); + + if (sdt != null && sdt.Rows.Count > 0) + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + + if (!string.IsNullOrEmpty(partNo)) + { + DataTable sdt = + MESClassLibrary.Tool.ListToDataTable(bll.SearchAll() + .Where(p => p.PartNo == partNo).ToList()); + + if (sdt != null && sdt.Rows.Count > 0) + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + + + #endregion + + tb_Product md = new tb_Product(); + + var info = Request.Cookies.Get("LoginUserInfo"); + if (info != null) + { + //md.UserID = info["UserID"].ToUpper(); + } + + md.ProductID = Guid.NewGuid().ToString(); + md.ProductTypeID = productType; + md.StockNo = stockNo; + md.ProductName = productName; + md.ColorName = colorName; + md.PartNo = partNo; + + list.Add(md); + } + } + + #endregion + + #region 存储数据 + + try + { + bool flag = false; + if (list.Count > 0) + { + foreach (var item in list) + { + flag = bll.AddInfo(item); + } + } + if (flag) + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + } + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + #endregion + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Product.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Product.aspx.designer.cs new file mode 100644 index 0000000..3437cdf --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Product.aspx.designer.cs @@ -0,0 +1,87 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Product { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// ImportPDF 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Button ImportPDF; + + /// + /// input02 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputFile input02; + + /// + /// lb_ID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText lb_ID; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Button Button1; + + /// + /// input01 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputFile input01; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ProductType.aspx b/BBMPTMes/MESWebSite/Manage/ProductType.aspx new file mode 100644 index 0000000..4953cd2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ProductType.aspx @@ -0,0 +1,335 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ProductType.aspx.cs" Inherits="MESWebSite.Manage.ProductType" %> + + + + + + + + + + + + + + + + + 产品类型 + + +
+
+ + + + + + + + + + + + + + +
产品类型 + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ProductType.aspx.cs b/BBMPTMes/MESWebSite/Manage/ProductType.aspx.cs new file mode 100644 index 0000000..2fe90ef --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ProductType.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ProductType : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ProductType.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ProductType.aspx.designer.cs new file mode 100644 index 0000000..9fdd183 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ProductType.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ProductType { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx b/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx new file mode 100644 index 0000000..709955f --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx @@ -0,0 +1,197 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ProductionRecords.aspx.cs" Inherits="MESWebSite.Manage.ProductionRecords" %> + + + + + + + + + + + + + + + + + + + 注塑生产记录 + + + +
+
+ + + + + + + + + + + + + + +
注塑生产记录
+ 时间: +  至  + +    + 查询 +    + 导出 +
+
+
+
+
+
+ + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx.cs b/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx.cs new file mode 100644 index 0000000..affb9bb --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx.cs @@ -0,0 +1,36 @@ +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ProductionRecords : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime, string EndTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + return bll.SearchProductInjectionRecord(StartTime, EndTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx.designer.cs new file mode 100644 index 0000000..7bf7ee1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ProductionRecords.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ProductionRecords { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Project.aspx b/BBMPTMes/MESWebSite/Manage/Project.aspx new file mode 100644 index 0000000..c326f54 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Project.aspx @@ -0,0 +1,347 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Project.aspx.cs" Inherits="MESWebSite.Manage.Project" %> + + + + + + + + + + + + + + + + 项目信息 + + +
+
+ + + + + + + + + + + + + + +
项目信息 + 车间: + 项目名称: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Project.aspx.cs b/BBMPTMes/MESWebSite/Manage/Project.aspx.cs new file mode 100644 index 0000000..edfcd9d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Project.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Project : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Project.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Project.aspx.designer.cs new file mode 100644 index 0000000..ff6edf9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Project.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Project { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/PunchBom.aspx b/BBMPTMes/MESWebSite/Manage/PunchBom.aspx new file mode 100644 index 0000000..d9e7f75 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PunchBom.aspx @@ -0,0 +1,801 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PunchBom.aspx.cs" Inherits="MESWebSite.Manage.PunchBom" %> + + + + + + + + + + + + + + + + + 总成BOM + + +
+
+ + + + + + + + + + + + + + +
总成BOM信息 + 总成零件号: + 查询 + 新增 + + 编辑 + + 删除 + + 导入 + + 导出 +
+
+ +
+ + + + + + + + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/PunchBom.aspx.cs b/BBMPTMes/MESWebSite/Manage/PunchBom.aspx.cs new file mode 100644 index 0000000..b4df659 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PunchBom.aspx.cs @@ -0,0 +1,442 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using MESClassLibrary.BLL.BasicInfo; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.BLL.PunchAndWeld; +using MESClassLibrary.EFModel; +using MESWebSite.Tool; + +namespace MESWebSite.Manage +{ + public partial class PunchBom : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void Button1_Click(object sender, EventArgs e) + { + try + { + if (input01.PostedFile.ContentLength > 0) + { + string strUrl = "../Excel/"; + if (Directory.Exists(Server.MapPath(strUrl)) == false) + { + Directory.CreateDirectory(Server.MapPath(strUrl)); + } + + String fileExtension = Path.GetExtension(input01.PostedFile.FileName).ToLower(); + String fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + fileExtension; + input01.PostedFile.SaveAs(Server.MapPath(strUrl) + fileName); + string excelPath = Server.MapPath(strUrl) + fileName; + DataTable dt = null; + + PunchAndStationBLL bll = new PunchAndStationBLL(); + ProductBLL pbll = new ProductBLL(); + StationBLL sbll=new StationBLL(); + List list = new List(); + + + #region 校验文件 + + try + { + dt = ExcelTool.GetExcelTableByOleDB(excelPath, "Sheet1"); + if (dt != null && dt.Rows.Count > 1) + { + + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", ""); + return; + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return; + } + + #endregion + + #region 校验数据 + + if (dt != null && dt.Rows.Count > 1) + { + for (int i = 1; i < dt.Rows.Count; i++) + { + #region 值校验 + + string zcPartNo = dt.Rows[i][0].ToString(); + if (zcPartNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + string partNo = dt.Rows[i][1].ToString(); + if (partNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + string partNo1 = dt.Rows[i][2].ToString(); + string partNo2 = dt.Rows[i][3].ToString(); + string partNo3 = dt.Rows[i][4].ToString(); + string partNo4 = dt.Rows[i][5].ToString(); + string partNo5 = dt.Rows[i][6].ToString(); + string partNo6 = dt.Rows[i][7].ToString(); + string stationNo = dt.Rows[i][8].ToString(); + string partNo7 = dt.Rows[i][9].ToString(); + string partNo8 = dt.Rows[i][10].ToString(); + string partNo9 = dt.Rows[i][11].ToString(); + string partNo10 = dt.Rows[i][12].ToString(); + string partNo11 = dt.Rows[i][13].ToString(); + string partNo12 = dt.Rows[i][14].ToString(); + if (stationNo == "") + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + if (string.IsNullOrWhiteSpace(partNo1) && !string.IsNullOrWhiteSpace(partNo2)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + if (string.IsNullOrWhiteSpace(partNo2) && !string.IsNullOrWhiteSpace(partNo3)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + if (string.IsNullOrWhiteSpace(partNo1) && string.IsNullOrWhiteSpace(partNo2) && !string.IsNullOrWhiteSpace(partNo3)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + if (string.IsNullOrWhiteSpace(partNo4) && !string.IsNullOrWhiteSpace(partNo5)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + if (string.IsNullOrWhiteSpace(partNo5) && !string.IsNullOrWhiteSpace(partNo6)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + if (string.IsNullOrWhiteSpace(partNo4) && string.IsNullOrWhiteSpace(partNo5) && !string.IsNullOrWhiteSpace(partNo6)) + { + ClientScript.RegisterStartupScript(this.GetType(), "tishi", + ""); + return; + } + + #endregion + + #region 业务逻辑校验 + + if (!string.IsNullOrEmpty(zcPartNo)) + { + DataTable sdt = pbll.SearchInfoByPartNo(zcPartNo); + if (sdt != null && sdt.Rows.Count > 0) + { + zcPartNo = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + + if (!string.IsNullOrEmpty(partNo)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + + if (!string.IsNullOrWhiteSpace(stationNo)) + { + DataTable sdt = sbll.SearchInfoByNo(stationNo); + if (sdt != null && sdt.Rows.Count > 0) + { + stationNo = sdt.Rows[0]["StationID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + + if (!string.IsNullOrEmpty(partNo1)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo1); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo1 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo2)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo2); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo2 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo3)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo3); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo3 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo7)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo7); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo7 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo8)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo8); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo8 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo9)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo9); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo9 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + + if (!string.IsNullOrEmpty(partNo4)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo4); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo4 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo5)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo5); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo5= sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo6)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo6); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo6 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo10)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo10); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo10 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo11)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo11); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo11 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + if (!string.IsNullOrEmpty(partNo12)) + { + DataTable sdt = pbll.SearchInfoByPartNo(partNo12); + if (sdt != null && sdt.Rows.Count > 0) + { + partNo12 = sdt.Rows[0]["ProductID"].ToString(); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + return; + } + } + + #endregion + + tb_PunchAndStation md = new tb_PunchAndStation(); + + var info = Request.Cookies.Get("LoginUserInfo"); + if (info != null) + { + //md.UserID = info["UserID"].ToUpper(); + } + + md.ID = Guid.NewGuid().ToString(); + md.StationID = stationNo; + md.ProductID1 = zcPartNo; + md.ProductID2 = partNo; + md.ProductID3 = partNo1; + md.ProductID4 = partNo2; + md.ProductID5 = partNo3; + md.ProductID6 = partNo4; + md.ProductID7 = partNo5; + md.ProductID8 = partNo6; + + md.ProductID9 = partNo7; + md.ProductID10 = partNo8; + md.ProductID11 = partNo9; + md.ProductID12 = partNo10; + md.ProductID13 = partNo11; + md.ProductID14 = partNo12; + + list.Add(md); + } + } + + #endregion + + #region 存储数据 + + try + { + bool flag = false; + if (list.Count > 0) + { + foreach (var item in list) + { + flag = bll.AddInfo(item); + } + } + if (flag) + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + } + else + { + ClientScript.RegisterStartupScript(this.GetType(), "提示", ""); + } + + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + + #endregion + } + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + } + } + + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/PunchBom.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/PunchBom.aspx.designer.cs new file mode 100644 index 0000000..ad547d6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/PunchBom.aspx.designer.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class PunchBom { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Button Button1; + + /// + /// input01 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputFile input01; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx b/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx new file mode 100644 index 0000000..3234dac --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx @@ -0,0 +1,360 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="QualifiedDay.aspx.cs" Inherits="MESWebSite.Manage.QualifiedDay" %> + + + + + + + + + + + + + + + + + + + + 日合格率趋势报表 + + + +
+
+ + + + + + + + + + + + + + +
日合格率趋势报表
+ +    + 查询 +    + 导出 +
+
+
+
+ +
+ + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx.cs b/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx.cs new file mode 100644 index 0000000..248c928 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx.cs @@ -0,0 +1,52 @@ +using MESClassLibrary; +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Reflection; +using System.Web.Services; + + +namespace MESWebSite.Manage +{ + public partial class QualifiedDay : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + return bll.SearchQualifiedDay(StartTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + [WebMethod] + public static string GetBarDate(string StartTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + EcharBarModel md = bll.SearchQualifiedDayBar(StartTime); + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx.designer.cs new file mode 100644 index 0000000..6ee5df6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedDay.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class QualifiedDay { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx b/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx new file mode 100644 index 0000000..93f20aa --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx @@ -0,0 +1,360 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="QualifiedMonth.aspx.cs" Inherits="MESWebSite.Manage.QualifiedMonth" %> + + + + + + + + + + + + + + + + + + + + 月合格率趋势报表 + + + +
+
+ + + + + + + + + + + + + + +
月合格率趋势报表
+ +    + 查询 +    + 导出 +
+
+
+
+ +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx.cs b/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx.cs new file mode 100644 index 0000000..74900fa --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx.cs @@ -0,0 +1,57 @@ +using MESClassLibrary; +using MESClassLibrary.BLL.Check; +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using MESClassLibrary.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class QualifiedMonth : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + return bll.SearchQualifiedMonth(StartTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + [WebMethod] + public static string GetBarDate(string StartTime) + { + try + { + InjectionRecordBLL bll = new InjectionRecordBLL(); + EcharBarModel md = bll.SearchQualifiedMonthBar(StartTime); + return JSONTools.ScriptSerialize(md); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + + + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx.designer.cs new file mode 100644 index 0000000..1040261 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedMonth.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class QualifiedMonth { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx b/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx new file mode 100644 index 0000000..23e1ec8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx @@ -0,0 +1,201 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="QualifiedTrendExcel.aspx.cs" Inherits="MESWebSite.Manage.QualifiedTrendExcel" %> + + + + + + + + + + + + + + + + 合格率趋势报表 + + + +
+
+ + + + + + + + + + + + + + +
合格率趋势报表
产品: +    + 位置: +    + 时间: +  至  + + <%--  至  + --%> +    + 查询 +    + 导出 +
+
+
+
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx.cs b/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx.cs new file mode 100644 index 0000000..f9f62f0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx.cs @@ -0,0 +1,37 @@ +using MESClassLibrary.BLL.Check; +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class QualifiedTrendExcel : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + + [WebMethod] + public static string GetDate(string StartTime, string EndTime, string side, string product) + { + try + { + InspectResultBLL bll = new InspectResultBLL(); + return bll.SearchQualifiedTrend(StartTime, EndTime, side, product); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx.designer.cs new file mode 100644 index 0000000..b801f0d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/QualifiedTrendExcel.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class QualifiedTrendExcel { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Record_243.aspx b/BBMPTMes/MESWebSite/Manage/Record_243.aspx new file mode 100644 index 0000000..3fdff50 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Record_243.aspx @@ -0,0 +1,198 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Record_243.aspx.cs" Inherits="MESWebSite.Manage.Record_243" %> + + + + + + + + + + + + + + + + x243小件装配记录 + + +
+
+ + + + + + +
x243小件装配记录 + 生产时间: +  至  + +   装箱单: + +   总成: + +   半成品: + +   订单号: + +   查询
+
+ +
+ + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Record_243.aspx.cs b/BBMPTMes/MESWebSite/Manage/Record_243.aspx.cs new file mode 100644 index 0000000..327fd67 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Record_243.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Record_243 : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Record_243.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Record_243.aspx.designer.cs new file mode 100644 index 0000000..7fbd7e4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Record_243.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Record_243 { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Record_247.aspx b/BBMPTMes/MESWebSite/Manage/Record_247.aspx new file mode 100644 index 0000000..aa9c137 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Record_247.aspx @@ -0,0 +1,198 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Record_247.aspx.cs" Inherits="MESWebSite.Manage.Record_247" %> + + + + + + + + + + + + + + + + + x247小件装配记录 + + +
+
+ + + + + + +
x247小件装配记录 + 生产时间: +  至  + +   装箱单: + +   总成: + +   半成品: + +   订单号: + +   查询
+
+ +
+ + + + +
+ + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Record_247.aspx.cs b/BBMPTMes/MESWebSite/Manage/Record_247.aspx.cs new file mode 100644 index 0000000..3702d46 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Record_247.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Record_247 : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Record_247.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Record_247.aspx.designer.cs new file mode 100644 index 0000000..ad19fef --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Record_247.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Record_247 { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx b/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx new file mode 100644 index 0000000..8c215b9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx @@ -0,0 +1,194 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RepairRecord.aspx.cs" Inherits="MESWebSite.Manage.RepairRecord" %> + + + + + + + + + + + + + + + + + + + + 设备维修记录 + + + +
+
+ + + + + + + + + + + + + + +
设备维修记录
+ 时间: +  至  + +    + 查询 +    + 导出 +
+
+
+
+ +
+ + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx.cs b/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx.cs new file mode 100644 index 0000000..8b6d2c9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx.cs @@ -0,0 +1,36 @@ +using MESClassLibrary.BLL.Injection; +using MESClassLibrary.BLL.Log; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web; +using System.Web.Services; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class RepairRecord : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + [WebMethod] + public static string GetDate(string StartTime,string EndTime) + { + try + { + InjectionDownRecordBLL bll = new InjectionDownRecordBLL(); + return bll.SearchRepairRecord(StartTime, EndTime); + } + catch (Exception ex) + { + LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); + return ""; + } + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx.designer.cs new file mode 100644 index 0000000..9377251 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/RepairRecord.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class RepairRecord { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportA.aspx b/BBMPTMes/MESWebSite/Manage/ReportA.aspx new file mode 100644 index 0000000..75aa606 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportA.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportA.aspx.cs" Inherits="MESWebSite.Manage.ReportA" %> + + + + + + + + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportA.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportA.aspx.cs new file mode 100644 index 0000000..0b4dafa --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportA.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportA : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportA.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportA.aspx.designer.cs new file mode 100644 index 0000000..17ca6ec --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportA.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportA { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx b/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx new file mode 100644 index 0000000..0d9ec94 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx @@ -0,0 +1,17 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportA_H.aspx.cs" Inherits="MESWebSite.Manage.ReportA_H" %> + + + + + + + + + +
+
+ +
+
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.cs new file mode 100644 index 0000000..6361934 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportA_H : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.designer.cs new file mode 100644 index 0000000..c4c71c8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportA_H.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportA_H { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportB.aspx b/BBMPTMes/MESWebSite/Manage/ReportB.aspx new file mode 100644 index 0000000..fed42f0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportB.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportB.aspx.cs" Inherits="MESWebSite.Manage.ReportB" %> + + + + + + + + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportB.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportB.aspx.cs new file mode 100644 index 0000000..8fc79e0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportB.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportB : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportB.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportB.aspx.designer.cs new file mode 100644 index 0000000..3bbeb40 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportB.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportB { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx b/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx new file mode 100644 index 0000000..9a147ee --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportB_H.aspx.cs" Inherits="MESWebSite.Manage.ReportB_H" %> + + + + + + + + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.cs new file mode 100644 index 0000000..8612f3b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportB_H : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.designer.cs new file mode 100644 index 0000000..6b2a586 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportB_H.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportB_H { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx b/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx new file mode 100644 index 0000000..4c55596 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportBaofei.aspx.cs" Inherits="MESWebSite.Manage.ReportBaofei" %> + + + + + + + 报废统计 + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx.cs new file mode 100644 index 0000000..41d0d1a --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportBaofei : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx.designer.cs new file mode 100644 index 0000000..cba489d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportBaofei.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportBaofei { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportC.aspx b/BBMPTMes/MESWebSite/Manage/ReportC.aspx new file mode 100644 index 0000000..bfa1586 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportC.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportC.aspx.cs" Inherits="MESWebSite.Manage.ReportC" %> + + + + + + + + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportC.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportC.aspx.cs new file mode 100644 index 0000000..6ce4c44 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportC.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportC : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportC.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportC.aspx.designer.cs new file mode 100644 index 0000000..c24587b --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportC.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportC { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx b/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx new file mode 100644 index 0000000..1c6d0e8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportC_H.aspx.cs" Inherits="MESWebSite.Manage.ReportC_H" %> + + + + + + + + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.cs new file mode 100644 index 0000000..da2ff66 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportC_H : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.designer.cs new file mode 100644 index 0000000..2a32b05 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportC_H.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportC_H { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportJ.aspx b/BBMPTMes/MESWebSite/Manage/ReportJ.aspx new file mode 100644 index 0000000..18c645d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportJ.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportJ.aspx.cs" Inherits="MESWebSite.Manage.ReportJ" %> + + + + + + + 分项目产品合格率报废TOP5 + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportJ.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportJ.aspx.cs new file mode 100644 index 0000000..6ca8149 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportJ.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportJ : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportJ.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportJ.aspx.designer.cs new file mode 100644 index 0000000..6259a8d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportJ.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportJ { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx b/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx new file mode 100644 index 0000000..5553987 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportJ_H.aspx.cs" Inherits="MESWebSite.Manage.ReportJ_H" %> + + + + + + + + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.cs new file mode 100644 index 0000000..3b7fe68 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportJ_H : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.designer.cs new file mode 100644 index 0000000..468ce38 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportJ_H.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportJ_H { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportK.aspx b/BBMPTMes/MESWebSite/Manage/ReportK.aspx new file mode 100644 index 0000000..7a3f2d7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportK.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportK.aspx.cs" Inherits="MESWebSite.Manage.ReportK" %> + + + + + + + 早会数据抛光Top5 + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportK.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportK.aspx.cs new file mode 100644 index 0000000..13e1da4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportK.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportK : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportK.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportK.aspx.designer.cs new file mode 100644 index 0000000..3b87e43 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportK.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportK { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx b/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx new file mode 100644 index 0000000..8e49fac --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportK_H.aspx.cs" Inherits="MESWebSite.Manage.ReportK_H" %> + + + + + + + + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.cs new file mode 100644 index 0000000..5dae8f0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportK_H : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.designer.cs new file mode 100644 index 0000000..826313a --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportK_H.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportK_H { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportL.aspx b/BBMPTMes/MESWebSite/Manage/ReportL.aspx new file mode 100644 index 0000000..4028831 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportL.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportL.aspx.cs" Inherits="MESWebSite.Manage.ReportL" %> + + + + + + + 早会数据报废Top5 + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportL.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportL.aspx.cs new file mode 100644 index 0000000..b658f27 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportL.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportL : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportL.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportL.aspx.designer.cs new file mode 100644 index 0000000..e0bcac2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportL.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportL { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx b/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx new file mode 100644 index 0000000..f0b2b5f --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportL_H.aspx.cs" Inherits="MESWebSite.Manage.ReportL_H" %> + + + + + + + + + +
+ +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.cs b/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.cs new file mode 100644 index 0000000..22452b8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class ReportL_H : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.designer.cs new file mode 100644 index 0000000..2e98dee --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/ReportL_H.aspx.designer.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class ReportL_H { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/Station.aspx b/BBMPTMes/MESWebSite/Manage/Station.aspx new file mode 100644 index 0000000..12868c0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Station.aspx @@ -0,0 +1,361 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Station.aspx.cs" Inherits="MESWebSite.Manage.Station" %> + + + + + + + + + + + + + + + + + 工位信息 + + +
+
+ + + + + + + + + + + + + + +
工位信息 + 产线: + 工位名称: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/Station.aspx.cs b/BBMPTMes/MESWebSite/Manage/Station.aspx.cs new file mode 100644 index 0000000..147255d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Station.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class Station : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/Station.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/Station.aspx.designer.cs new file mode 100644 index 0000000..162e826 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/Station.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class Station { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// lblMessage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblMessage; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/StockIn.aspx b/BBMPTMes/MESWebSite/Manage/StockIn.aspx new file mode 100644 index 0000000..d6570fb --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/StockIn.aspx @@ -0,0 +1,272 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="StockIn.aspx.cs" Inherits="MESWebSite.Manage.StockIn" %> + + + + + + + + + + + + + + + + + 喷涂入库记录 + + + +
+
+ + + + + + + + + + + + +
喷涂入库记录
班次: + +    + 颜色: +    + 产品: +    + 时间: +  至  + +    + 查询 +    + 导出 +
+
+ +
+ + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/StockIn.aspx.cs b/BBMPTMes/MESWebSite/Manage/StockIn.aspx.cs new file mode 100644 index 0000000..d4e6d2a --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/StockIn.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class StockIn : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/StockIn.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/StockIn.aspx.designer.cs new file mode 100644 index 0000000..68b4420 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/StockIn.aspx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class StockIn { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/Manage/User.aspx b/BBMPTMes/MESWebSite/Manage/User.aspx new file mode 100644 index 0000000..8110fad --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/User.aspx @@ -0,0 +1,440 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="User.aspx.cs" Inherits="MESWebSite.Manage.User" %> + + + + + + + + + + + + + + + 用户管理 + + + +
+
+ + + + + + + + + + + + +
用户档案 + 用户名: + 查询 + 新增 + + 编辑 + + 删除 +
+
+ +
+ + + + + + + +
+ + diff --git a/BBMPTMes/MESWebSite/Manage/User.aspx.cs b/BBMPTMes/MESWebSite/Manage/User.aspx.cs new file mode 100644 index 0000000..2b13b40 --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/User.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MESWebSite.Manage +{ + public partial class User : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Manage/User.aspx.designer.cs b/BBMPTMes/MESWebSite/Manage/User.aspx.designer.cs new file mode 100644 index 0000000..ed4d86d --- /dev/null +++ b/BBMPTMes/MESWebSite/Manage/User.aspx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MESWebSite.Manage { + + + public partial class User { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// UserID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText UserID; + } +} diff --git a/BBMPTMes/MESWebSite/PDF/20210527104331937.png b/BBMPTMes/MESWebSite/PDF/20210527104331937.png new file mode 100644 index 0000000000000000000000000000000000000000..95b72d20fff53637a41cc8ac7313cb498f4ed509 GIT binary patch literal 63812 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%0DyqO7Sd0BSa* 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
  • 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 z%0D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%0DyqO7Sd0BSa* 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
  • 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 z%0D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 + + + + FileSystem + Release + Any CPU + + True + False + C:\website + True + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/changelog.txt b/BBMPTMes/MESWebSite/Scripts/EasyUI/changelog.txt new file mode 100644 index 0000000..c918ecb --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/changelog.txt @@ -0,0 +1,388 @@ +Version 1.3.6 +* Bug + * treegrid: The 'getChecked' method can not return correct checked rows. fixed. + * tree: The checkbox does not display properly on async tree when 'onlyLeafCheck' property is true. fixed. +* Improvement + * treegrid: All the selecting and checking methods are extended from datagrid component. + * linkbutton: The icon alignment is fully supported, possible values are: 'top','bottom','left','right'. + * linkbutton: Add 'size' property, possible values are: 'small','large'. + * linkbutton: Add 'onClick' event. + * menubutton: Add 'menuAlign' property that allows the user set top level menu alignment. + * combo: Add 'panelAlign' property, possible values are: 'left','right'. + * calendar: The 'formatter','styler' and 'validator' options are available to custom the calendar dates. + * calendar: Add 'onChange' event. + * panel: Add 'method','queryParams' and 'loader' options. + * panel: Add 'onLoadError' event. + * datagrid: Add 'onBeginEdit' event that fires when a row goes into edit mode. + * datagrid: Add 'onEndEdit' event that fires when finishing editing but before destroying editors. + * datagrid: Add 'sort' method and 'onBeforeSortColumn' event. + * datagrid: The 'combogrid' editor has been integrated into datagrid. + * datagrid: Add 'ctrlSelect' property that only allows multi-selection when ctrl+click is used. + * slider: Add 'converter' option that allows users determine how to convert a value to the slider position or the slider position to the value. + * searchbox: Add 'disabled' property. + * searchbox: Add 'disable','enable','clear','reset' methods. + * spinner: Add 'readonly' property, 'readonly' method and 'onChange' event. + +Version 1.3.5 +------------- +* Bug + * searchbox: The 'searcher' function can not offer 'name' parameter value correctly. fixed. + * combo: The 'isValid' method can not return boolean value. fixed. + * combo: Clicking combo will trigger the 'onHidePanel' event of other combo components that have hidden drop-down panels. fixed. + * combogrid: Some methods can not inherit from combo. fixed. +* Improvement + * datagrid: Improve performance on checking rows. + * menu: Allows to append a menu separator. + * menu: Add 'hideOnUnhover' property to indicate if the menu should be hidden when mouse exits it. + * slider: Add 'clear' and 'reset' methods. + * tabs: Add 'unselect' method that will trigger 'onUnselect' event. + * tabs: Add 'selected' property to specify what tab panel will be opened. + * tabs: The 'collapsible' property of tab panel is supported to determine if the tab panel can be collapsed. + * tabs: Add 'showHeader' property, 'showHeader' and 'hideHeader' methods. + * combobox: The 'disabled' property can be used to disable some items. + * tree: Improve loading performance. + * pagination: The 'layout' property can be used to customize the pagination layout. + * accordion: Add 'unselect' method that will trigger 'onUnselect' event. + * accordion: Add 'selected' and 'multiple' properties. + * accordion: Add 'getSelections' method. + * datebox: Add 'sharedCalendar' property that allows multiple datebox components share one calendar component. + +Version 1.3.4 +------------- +* Bug + * combobox: The onLoadSuccess event fires when parsing empty local data. fixed. + * form: Calling 'reset' method can not reset datebox field. fixed. +* Improvement + * mobile: The context menu and double click features are supported on mobile devices. + * combobox: The 'groupField' and 'groupFormatter' options are available to display items in groups. + * tree: When append or insert nodes, the 'data' parameter accepts one or more nodes data. + * tree: The 'getChecked' method accepts a single 'state' or an array of 'state'. + * tree: Add 'scrollTo' method. + * datagrid: The 'multiSort' property is added to support multiple column sorting. + * datagrid: The 'rowStyler' and column 'styler' can return CSS class name or inline styles. + * treegrid: Add 'load' method to load data and navigate to the first page. + * tabs: Add 'tabWidth' and 'tabHeight' properties. + * validatebox: The 'novalidate' property is available to indicate whether to perform the validation. + * validatebox: Add 'enableValidation' and 'disableValidation' methods. + * form: Add 'enableValidation' and 'disableValidation' methods. + * slider: Add 'onComplete' event. + * pagination: The 'buttons' property accepts the existing element. + +Version 1.3.3 +------------- +* Bug + * datagrid: Some style features are not supported by column styler function. fixed. + * datagrid: IE 31 stylesheet limit. fixed. + * treegrid: Some style features are not supported by column styler function. fixed. + * menu: The auto width of menu item displays incorrect in ie6. fixed. + * combo: The 'onHidePanel' event can not fire when clicked outside the combo area. fixed. +* Improvement + * datagrid: Add 'scrollTo' and 'highlightRow' methods. + * treegrid: Enable treegrid to parse data from element. + * combo: Add 'selectOnNavigation' and 'readonly' options. + * combobox: Add 'loadFilter' option to allow users to change data format before loading into combobox. + * tree: Add 'onBeforeDrop' callback event. + * validatebox: Dependent on tooltip plugin now, add 'deltaX' property. + * numberbox: The 'filter' options can be used to determine if the key pressed was accepted. + * linkbutton: The group button is available. + * layout: The 'minWidth','maxWidth','minHeight','maxHeight' and 'collapsible' properties are available for region panel. +* New Plugins + * tooltip: Display a popup message when moving mouse over an element. + +Version 1.3.2 +------------- +* Bug + * datagrid: The loading message window can not be centered when changing the width of datagrid. fixed. + * treegrid: The 'mergeCells' method can not work normally. fixed. + * propertygrid: Calling 'endEdit' method to stop editing a row will cause errors. fixed. + * tree: Can not load empty data when 'lines' property set to true. fixed. +* Improvement + * RTL feature is supported now. + * tabs: Add 'scrollBy' method to scroll the tab header by the specified amount of pixels + * tabs: Add 'toolPosition' property to set tab tools to left or right. + * tabs: Add 'tabPosition' property to define the tab position, possible values are: 'top','bottom','left','right'. + * datagrid: Add a column level property 'order' that allows users to define different default sort order per column. + * datagrid: Add a column level property 'halign' that allows users to define how to align the column header. + * datagrid: Add 'resizeHandle' property to define the resizing column position, by grabbing the left or right edge of the column. + * datagrid: Add 'freezeRow' method to freeze some rows that will always be displayed at the top when the datagrid is scrolled down. + * datagrid: Add 'clearChecked' method to clear all checked records. + * datagrid: Add 'data' property to initialize the datagrid data. + * linkbutton: Add 'iconAlgin' property to define the icon position, supported values are: 'left','right'. + * menu: Add 'minWidth' property. + * menu: The menu width can be automatically calculated. + * tree: New events are available including 'onBeforeDrag','onStartDrag','onDragEnter','onDragOver','onDragLeave',etc. + * combo: Add 'height' property to allow users to define the height of combo. + * combo: Add 'reset' method. + * numberbox: Add 'reset' method. + * spinner: Add 'reset' method. + * spinner: Add 'height' property to allow users to define the height of spinner. + * searchbox: Add 'height' property to allow users to define the height of searchbox. + * form: Add 'reset' method. + * validatebox: Add 'delay' property to delay validating from the last inputting value. + * validatebox: Add 'tipPosition' property to define the tip position, supported values are: 'left','right'. + * validatebox: Multiple validate rules on a field is supported now. + * slider: Add 'reversed' property to determine if the min value and max value will switch their positions. + * progressbar: Add 'height' property to allow users to define the height of progressbar. + +Version 1.3.1 +------------- +* Bug + * datagrid: Setting the 'pageNumber' property is not valid. fixed. + * datagrid: The id attribute of rows isn't adjusted properly while calling 'insertRow' or 'deleteRow' method. + * dialog: When load content from 'href', the script will run twice. fixed. + * propertygrid: The editors that extended from combo can not accept its changed value. fixed. +* Improvement + * droppable: Add 'disabled' property. + * droppable: Add 'options','enable' and 'disable' methods. + * tabs: The tab panel tools can be changed by calling 'update' method. + * messager: When show a message window, the user can define the window position by applying 'style' property. + * window: Prevent script on window body from running twice. + * window: Add 'hcenter','vcenter' and 'center' methods. + * tree: Add 'onBeforeCheck' callback event. + * tree: Extend the 'getChecked' method to allow users to get 'checked','unchecked' or 'indeterminate' nodes. + * treegrid: Add 'update' method to update a specified node. + * treegrid: Add 'insert' method to insert a new node. + * treegrid: Add 'pop' method to remove a node and get the removed node data. + +Version 1.3 +----------- +* Bug + * combogrid: When set to 'remote' query mode, the 'queryParams' parameters can't be sent to server. fixed. + * combotree: The tree nodes on drop-down panel can not be unchecked while calling 'clear' method. fixed. + * datetimebox: Setting 'showSeconds' property to false cannot hide seconds info. fixed. + * datagrid: Calling 'mergeCells' method can't auto resize the merged cell while header is hidden. fixed. + * dialog: Set cache to false and load data via ajax, the content cannot be refreshed. fixed. +* Improvement + * The HTML5 'data-options' attribute is available for components to declare all custom options, including properties and events. + * More detailed documentation is available. + * panel: Prevent script on panel body from running twice. + * accordion: Add 'getPanelIndex' method. + * accordion: The tools can be added on panel header. + * datetimebox: Add 'timeSeparator' option that allows users to define the time separator. + * pagination: Add 'refresh' and 'select' methods. + * datagrid: Auto resize the column width to fit the contents when the column width is not defined. + * datagrid: Double click on the right border of columns to auto resize the columns to the contents in the columns. + * datagrid: Add 'autoSizeColumn' method that allows users to adjust the column width to fit the contents. + * datagrid: Add 'getChecked' method to get all rows where the checkbox has been checked. + * datagrid: Add 'selectOnCheck' and 'checkOnSelect' properties and some checking methods to enhance the row selections. + * datagrid: Add 'pagePosition' property to allow users to display pager bar at either top,bottom or both places of the grid. + * datagrid: The buffer view and virtual scroll view are supported to display large amounts of records without pagination. + * tabs: Add 'disableTab' and 'enableTab' methods to allow users to disable or enable a tab panel. + +Version 1.2.6 +------------- +* Bug + * tabs: Call 'add' method with 'selected:false' option, the added tab panel is always selected. fixed. + * treegrid: The 'onSelect' and 'onUnselect' events can't be triggered. fixed. + * treegrid: Cannot display zero value field. fixed. +* Improvement + * propertygrid: Add 'expandGroup' and 'collapseGroup' methods. + * layout: Allow users to create collapsed layout panels by assigning 'collapsed' property to true. + * layout: Add 'add' and 'remove' methods that allow users to dynamically add or remove region panel. + * layout: Additional tool icons can be added on region panel header. + * calendar: Add 'firstDay' option that allow users to set first day of week. Sunday is 0, Monday is 1, ... + * tree: Add 'lines' option, true to display tree lines. + * tree: Add 'loadFilter' option that allow users to change data format before loading into the tree. + * tree: Add 'loader' option that allow users to define how to load data from remote server. + * treegrid: Add 'onClickCell' and 'onDblClickCell' callback function options. + * datagrid: Add 'autoRowHeight' property that allow users to determine if set the row height based on the contents of that row. + * datagrid: Improve performance to load large data set. + * datagrid: Add 'loader' option that allow users to define how to load data from remote server. + * treegrid: Add 'loader' option that allow users to define how to load data from remote server. + * combobox: Add 'onBeforeLoad' callback event function. + * combobox: Add 'loader' option that allow users to define how to load data from remote server. + * Add support for other loading mode such as dwr,xml,etc. +* New Plugins + * slider: Allows the user to choose a numeric value from a finite range. + +Version 1.2.5 +------------- +* Bug + * tabs: When add a new tab panel with href property, the content page is loaded twice. fixed. + * form: Failed to call 'load' method to load form input with complex name. fixed. + * draggable: End drag in ie9, the cursor cannot be restored. fixed. +* Improvement + * panel: The tools can be defined via html markup. + * tabs: Call 'close' method to close specified tab panel, users can pass tab title or index of tab panel. Other methods such 'select','getTab' and 'exists' are similar to 'close' method. + * tabs: Add 'getTabIndex' method. + * tabs: Users can define mini tools on tabs. + * tree: The mouse must move a specified distance to begin drag and drop operation. + * resizable: Add 'options','enable' and 'disable' methods. + * numberbox: Allow users to change number format. + * datagrid: The subgrid is supported now. + * searchbox: Add 'selectName' method to select searching type name. + +Version 1.2.4 +------------- +* Bug + * menu: The menu position is wrong when scroll bar appears. fixed. + * accordion: Cannot display the default selected panel in jQuery 1.6.2. fixed. + * tabs: Cannot display the default selected tab panel in jQuery 1.6.2. fixed. +* Improvement + * menu: Allow users to disable or enable menu item. + * combo: Add 'delay' property to set the delay time to do searching from the last key input event. + * treegrid: The 'getEditors' and 'getEditor' methods are supported now. + * treegrid: The 'loadFilter' option is supported now. + * messager: Add 'progress' method to display a message box with a progress bar. + * panel: Add 'extractor' option to allow users to extract panel content from ajax response. +* New Plugins + * searchbox: Allow users to type words into box and do searching operation. + * progressbar: To display the progress of a task. + +Version 1.2.3 +------------- +* Bug + * window: Cannot resize the window with iframe content. fixed. + * tree: The node will be removed when dragging to its child. fixed. + * combogrid: The onChange event fires multiple times. fixed. + * accordion: Cannot add batch new panels when animate property is set to true. fixed. +* Improvement + * treegrid: The footer row and row styler features are supported now. + * treegrid: Add 'getLevel','reloadFooter','getFooterRows' methods. + * treegrid: Support root nodes pagination and editable features. + * datagrid: Add 'getFooterRows','reloadFooter','insertRow' methods and improve editing performance. + * datagrid: Add 'loadFilter' option that allow users to change original source data to standard data format. + * draggable: Add 'onBeforeDrag' callback event function. + * validatebox: Add 'remote' validation type. + * combobox: Add 'method' option. +* New Plugins + * propertygrid: Allow users to edit property value in datagrid. + +Version 1.2.2 +------------- +* Bug + * datagrid: Apply fitColumns cannot work fine while set checkbox column. fixed. + * datagrid: The validateRow method cannot return boolean type value. fixed. + * numberbox: Cannot fix value in chrome when min or max property isn't defined. fixed. +* Improvement + * menu: Add some crud methods. + * combo: Add hasDownArrow property to determine whether to display the down arrow button. + * tree: Supports inline editing. + * calendar: Add some useful methods such as 'resize', 'moveTo' etc. + * timespinner: Add some useful methods. + * datebox: Refactoring based on combo and calendar plugin now. + * datagrid: Allow users to change row style in some conditions. + * datagrid: Users can use the footer row to display summary information. +* New Plugins + * datetimebox: Combines datebox with timespinner component. + +Version 1.2.1 +------------- +* Bug + * easyloader: Some dependencies cannot be loaded by their order. fixed. + * tree: The checkbox is setted incorrectly when removing a node. fixed. + * dialog: The dialog layout incorrectly when 'closed' property is setted to true. fixed. +* Improvement + * parser: Add onComplete callback function that can indicate whether the parse action is complete. + * menu: Add onClick callback function and some other methods. + * tree: Add some useful methods. + * tree: Drag and Drop feature is supported now. + * tree: Add onContextMenu callback function. + * tabs: Add onContextMenu callback function. + * tabs: Add 'tools' property that can create buttons on right bar. + * datagrid: Add onHeaderContextMenu and onRowContextMenu callback functions. + * datagrid: Custom view is supported. + * treegrid: Add onContextMenu callback function and append,remove methods. + +Version 1.2 +------------- +* Improvement + * tree: Add cascadeCheck,onlyLeafCheck properties and select event. + * combobox: Enable multiple selection. + * combotree: Enable multiple selection. + * tabs: Remember the trace of selection, when current tab panel is closed, the previous selected tab will be selected. + * datagrid: Extend from panel, so many properties defined in panel can be used for datagrid. +* New Plugins + * treegrid: Represent tabular data in hierarchical view, combines tree view and datagrid. + * combo: The basic component that allow user to extend their combo component such as combobox,combotree,etc. + * combogrid: Combines combobox with drop-down datagrid component. + * spinner: The basic plugin to create numberspinner,timespinner,etc. + * numberspinner: The numberbox that allow user to change value by clicking up and down spin buttons. + * timespinner: The time selector that allow user to quickly inc/dec a time. + +Version 1.1.2 +------------- +* Bug + * messager: When call show method in layout, the message window will be blocked. fixed. +* Improvement + * datagrid: Add validateRow method, remember the current editing row status when do editing action. + * datagrid: Add the ability to create merged cells. + * form: Add callback functions when loading data. + * panel,window,dialog: Add maximize,minimize,restore,collapse,expand methods. + * panel,tabs,accordion: The lazy loading feature is supported. + * tabs: Add getSelected,update,getTab methods. + * accordion: Add crud methods. + * linkbutton: Accept an id option to set the id attribute. + * tree: Enhance tree node operation. + +Version 1.1.1 +------------- +* Bug + * form: Cannot clear the value of combobox and combotree component. fixed. +* Improvement + * tree: Add some useful methods such as 'getRoot','getChildren','update',etc. + * datagrid: Add editable feature, improve performance while loading data. + * datebox: Add destroy method. + * combobox: Add destroy and clear method. + * combotree: Add destroy and clear method. + +Version 1.1 +------------- +* Bug + * messager: When call show method with timeout property setted, an error occurs while clicking the close button. fixed. + * combobox: The editable property of combobox plugin is invalid. fixed. + * window: The proxy box will not be removed when dragging or resizing exceed browser border in ie. fixed. +* Improvement + * menu: The menu item can use markup to display a different page. + * tree: The tree node can use markup to act as a tree menu. + * pagination: Add some event on refresh button and page list. + * datagrid: Add a 'param' parameter for reload method, with which users can pass query parameter when reload data. + * numberbox: Add required validation support, the usage is same as validatebox plugin. + * combobox: Add required validation support. + * combotree: Add required validation support. + * layout: Add some method that can get a region panel and attach event handlers. +* New Plugins + * droppable: A droppable plugin that supports drag drop operation. + * calendar: A calendar plugin that can either be embedded within a page or popup. + * datebox: Combines a textbox with a calendar that let users to select date. + * easyloader: A JavaScript loader that allows you to load plugin and their dependencies into your page. + +Version 1.0.5 +* Bug + * panel: The fit property of panel performs incorrectly. fixed. +* Improvement + * menu: Add a href attribute for menu item, with which user can display a different page in the current browser window. + * form: Add a validate method to do validation for validatebox component. + * dialog: The dialog can read collapsible,minimizable,maximizable and resizable attribute from markup. +* New Plugins + * validatebox: A validation plugin that checks to make sure the user's input value is valid. + +Version 1.0.4 +------------- +* Bug + * panel: When panel is invisible, it is abnormal when resized. fixed. + * panel: Memory leak in method 'destroy'. fixed. + * messager: Memory leak when messager box is closed. fixed. + * dialog: No onLoad event occurs when loading remote data. fixed. +* Improvement + * panel: Add method 'setTitle'. + * window: Add method 'setTitle'. + * dialog: Add method 'setTitle'. + * combotree: Add method 'getValue'. + * combobox: Add method 'getValue'. + * form: The 'load' method can load data and fill combobox and combotree field correctly. + +Version 1.0.3 +------------- +* Bug + * menu: When menu is show in a DIV container, it will be cropped. fixed. + * layout: If you collpase a region panel and then expand it immediately, the region panel will not show normally. fixed. + * accordion: If no panel selected then the first one will become selected and the first panel's body height will not set correctly. fixed. +* Improvement + * tree: Add some methods to support CRUD operation. + * datagrid: Toolbar can accept a new property named 'disabled' to disable the specified tool button. +* New Plugins + * combobox: Combines a textbox with a list of options that users are able to choose from. + * combotree: Combines combobox with drop-down tree component. + * numberbox: Make input element can only enter number char. + * dialog: rewrite the dialog plugin, dialog can contains toolbar and buttons. diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/_content.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/_content.html new file mode 100644 index 0000000..f7b8e2e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

    Here is the content loaded via AJAX.

    +
      +
    • easyui is a collection of user-interface plugin based on jQuery.
    • +
    • easyui provides essential functionality for building modern, interactive, javascript applications.
    • +
    • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
    • +
    • complete framework for HTML5 web page.
    • +
    • easyui save your time and scales while developing your products.
    • +
    • easyui is very easy but powerful.
    • +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/actions.html new file mode 100644 index 0000000..28935d7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/actions.html @@ -0,0 +1,51 @@ + + + + + Accordion Actions - jQuery EasyUI Demo + + + + + + + +

    Accordion Actions

    +

    Click the buttons below to add or remove accordion items.

    +
    +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/ajax.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/ajax.html new file mode 100644 index 0000000..87c1a01 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/ajax.html @@ -0,0 +1,28 @@ + + + + + Loading Accordion Content with AJAX - jQuery EasyUI Demo + + + + + + + +

    Loading Accordion Content with AJAX

    +

    Click AJAX panel header to load content via AJAX.

    +
    +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    +

    The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/basic.html new file mode 100644 index 0000000..1f6c8f5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/basic.html @@ -0,0 +1,52 @@ + + + + + Basic Accordion - jQuery EasyUI Demo + + + + + + + +

    Basic Accordion

    +

    Click on panel header to show its content.

    +
    +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    +

    The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

    +
    +
    +
      +
    • + Foods +
        +
      • + Fruits +
          +
        • apple
        • +
        • orange
        • +
        +
      • +
      • + Vegetables +
          +
        • tomato
        • +
        • carrot
        • +
        • cabbage
        • +
        • potato
        • +
        • lettuce
        • +
        +
      • +
      +
    • +
    +
    +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/datagrid_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/datagrid_data1.json new file mode 100644 index 0000000..e9a5be2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/datagrid_data1.json @@ -0,0 +1,12 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/expandable.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/expandable.html new file mode 100644 index 0000000..8f20f16 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/expandable.html @@ -0,0 +1,33 @@ + + + + + Keep Expandable Panel in Accordion - jQuery EasyUI Demo + + + + + + + +

    Keep Expandable Panel in Accordion

    +

    Keep a expandable panel and prevent it from collapsing.

    +
    +
    +
    + +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    +

    Content1

    +
    +
    +

    Content2

    +
    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/multiple.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/multiple.html new file mode 100644 index 0000000..d75bfbc --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/multiple.html @@ -0,0 +1,34 @@ + + + + + Multiple Accordion Panels - jQuery EasyUI Demo + + + + + + + +

    Multiple Accordion Panels

    +

    Enable 'multiple' mode to expand multiple panels at one time.

    +
    +
    +
    +

    A programming language is a formal language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.

    +
    +
    +

    Java (Indonesian: Jawa) is an island of Indonesia. With a population of 135 million (excluding the 3.6 million on the island of Madura which is administered as part of the provinces of Java), Java is the world's most populous island, and one of the most densely populated places in the world.

    +
    +
    +

    C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.

    +
    +
    +

    A dynamic, reflective, general-purpose object-oriented programming language.

    +
    +
    +

    Fortran (previously FORTRAN) is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing.

    +
    +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/tools.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/tools.html new file mode 100644 index 0000000..6351a91 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/accordion/tools.html @@ -0,0 +1,48 @@ + + + + + Accordion Tools - jQuery EasyUI Demo + + + + + + + +

    Accordion Tools

    +

    Click the tools on top right of panel to perform actions.

    +
    +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    +

    The accordion allows you to provide multiple panels and display one ore more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

    +
    +
    + + + + + + + + + + + +
    Item IDProduct IDList PriceUnit CostAttributeStatus
    +
    +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/basic.html new file mode 100644 index 0000000..9d0d672 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/basic.html @@ -0,0 +1,19 @@ + + + + + Basic Calendar - jQuery EasyUI Demo + + + + + + + +

    Basic Calendar

    +

    Click to select date.

    +
    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/custom.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/custom.html new file mode 100644 index 0000000..7c570e6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/custom.html @@ -0,0 +1,46 @@ + + + + + Custom Calendar - jQuery EasyUI Demo + + + + + + + +

    Custom Calendar

    +

    This example shows how to custom the calendar date by using 'formatter' function.

    +
    + +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/disabledate.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/disabledate.html new file mode 100644 index 0000000..0b1edeb --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/disabledate.html @@ -0,0 +1,28 @@ + + + + + Disable Calendar Date - jQuery EasyUI Demo + + + + + + + +

    Disable Calendar Date

    +

    This example shows how to disable specified dates, only allows the user to select Mondays.

    +
    + +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/firstday.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/firstday.html new file mode 100644 index 0000000..dd414c5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/calendar/firstday.html @@ -0,0 +1,30 @@ + + + + + First Day of Week - jQuery EasyUI Demo + + + + + + + +

    First Day of Week

    +

    Choose the first day of the week.

    + +
    + +
    + +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combo/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combo/basic.html new file mode 100644 index 0000000..cba9b8d --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combo/basic.html @@ -0,0 +1,42 @@ + + + + + Basic Combo - jQuery EasyUI Demo + + + + + + + +

    Basic Combo

    +

    Click the right arrow button to show drop down panel that can be filled with any content.

    +
    + +
    +
    Select a language
    +
    + Java
    + C#
    + Ruby
    + Basic
    + Fortran +
    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/actions.html new file mode 100644 index 0000000..d2605fc --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/actions.html @@ -0,0 +1,86 @@ + + + + + ComboBox Actions - jQuery EasyUI Demo + + + + + + + +

    ComboBox

    +

    Click the buttons below to perform actions.

    + + + + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/basic.html new file mode 100644 index 0000000..bfa2b34 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/basic.html @@ -0,0 +1,71 @@ + + + + + Basic ComboBox - jQuery EasyUI Demo + + + + + + + +

    Basic ComboBox

    +

    Type in ComboBox to try auto complete.

    +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/combobox_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/combobox_data1.json new file mode 100644 index 0000000..8bfba76 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/combobox_data1.json @@ -0,0 +1,22 @@ +[{ + "id":1, + "text":"Java", + "desc":"Write once, run anywhere" +},{ + "id":2, + "text":"C#", + "desc":"One of the programming languages designed for the Common Language Infrastructure" +},{ + "id":3, + "text":"Ruby", + "selected":true, + "desc":"A dynamic, reflective, general-purpose object-oriented programming language" +},{ + "id":4, + "text":"Perl", + "desc":"A high-level, general-purpose, interpreted, dynamic programming language" +},{ + "id":5, + "text":"Basic", + "desc":"A family of general-purpose, high-level programming languages" +}] \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/combobox_data2.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/combobox_data2.json new file mode 100644 index 0000000..fcaca4f --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/combobox_data2.json @@ -0,0 +1,47 @@ +[{ + "value":"f20", + "text":"Firefox 2.0 or higher", + "group":"Firefox" +},{ + "value":"f15", + "text":"Firefox 1.5.x", + "group":"Firefox" +},{ + "value":"f10", + "text":"Firefox 1.0.x", + "group":"Firefox" +},{ + "value":"ie7", + "text":"Microsoft Internet Explorer 7.0 or higher", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie6", + "text":"Microsoft Internet Explorer 6.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie5", + "text":"Microsoft Internet Explorer 5.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie4", + "text":"Microsoft Internet Explorer 4.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"op9", + "text":"Opera 9.0 or higher", + "group":"Opera" +},{ + "value":"op8", + "text":"Opera 8.x", + "group":"Opera" +},{ + "value":"op7", + "text":"Opera 7.x", + "group":"Opera" +},{ + "value":"Safari", + "text":"Safari" +},{ + "value":"Other", + "text":"Other" +}] \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/customformat.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/customformat.html new file mode 100644 index 0000000..82664ea --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/customformat.html @@ -0,0 +1,33 @@ + + + + + Custom Format in ComboBox - jQuery EasyUI Demo + + + + + + + +

    Custom Format in ComboBox

    +

    This sample shows how to custom the format of list item.

    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/dynamicdata.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/dynamicdata.html new file mode 100644 index 0000000..1857e48 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/dynamicdata.html @@ -0,0 +1,23 @@ + + + + + Load Dynamic ComboBox Data - jQuery EasyUI Demo + + + + + + + +

    Load Dynamic ComboBox Data

    +

    Click the button below to load data.

    + +
    + LoadData +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/group.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/group.html new file mode 100644 index 0000000..d1431b7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/group.html @@ -0,0 +1,26 @@ + + + + + Group ComboBox - jQuery EasyUI Demo + + + + + + + +

    Group ComboBox

    +

    This example shows how to display combobox items in groups.

    +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/multiple.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/multiple.html new file mode 100644 index 0000000..3eb2526 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/multiple.html @@ -0,0 +1,29 @@ + + + + + Multiple Select - jQuery EasyUI Demo + + + + + + + +

    Load Dynamic ComboBox Data

    +

    Drop down the panel and select multiple items.

    +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/navigation.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/navigation.html new file mode 100644 index 0000000..4299d42 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/navigation.html @@ -0,0 +1,73 @@ + + + + + Navigate ComboBox - jQuery EasyUI Demo + + + + + + + +

    Navigate ComboBox

    +

    Navigate through combobox items width keyboard to select an item.

    +
    + + SelectOnNavigation +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/remotedata.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/remotedata.html new file mode 100644 index 0000000..42dda5d --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/remotedata.html @@ -0,0 +1,27 @@ + + + + + Binding to Remote Data - jQuery EasyUI Demo + + + + + + + +

    Binding to Remote Data

    +

    The ComboBox is bound to a remote data.

    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/remotejsonp.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/remotejsonp.html new file mode 100644 index 0000000..9cfbebd --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combobox/remotejsonp.html @@ -0,0 +1,51 @@ + + + + + Remote JSONP - jQuery EasyUI Demo + + + + + + + +

    Remote JSONP

    +

    This sample shows how to use JSONP to retrieve data from a remote site.

    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/actions.html new file mode 100644 index 0000000..e09588a --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/actions.html @@ -0,0 +1,53 @@ + + + + + ComboGrid Actions - jQuery EasyUI Demo + + + + + + + +

    ComboGrid Actions

    +

    Click the buttons below to perform actions.

    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/basic.html new file mode 100644 index 0000000..9c71e52 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/basic.html @@ -0,0 +1,34 @@ + + + + + Basic ComboGrid - jQuery EasyUI Demo + + + + + + + +

    Basic ComboGrid

    +

    Click the right arrow button to show the DataGrid.

    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/datagrid_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/datagrid_data1.json new file mode 100644 index 0000000..3a62a71 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/datagrid_data1.json @@ -0,0 +1,12 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"selected":true,"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/initvalue.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/initvalue.html new file mode 100644 index 0000000..b88f245 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/initvalue.html @@ -0,0 +1,33 @@ + + + + + Initialize Value for ComboGrid - jQuery EasyUI Demo + + + + + + + +

    Initialize Value for ComboGrid

    +

    Initialize value when ComboGrid is created.

    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/multiple.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/multiple.html new file mode 100644 index 0000000..8f9cc80 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/multiple.html @@ -0,0 +1,37 @@ + + + + + Multiple ComboGrid - jQuery EasyUI Demo + + + + + + + +

    Multiple ComboGrid

    +

    Click the right arrow button to show the DataGrid and select items.

    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/navigation.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/navigation.html new file mode 100644 index 0000000..646ba82 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combogrid/navigation.html @@ -0,0 +1,38 @@ + + + + + Navigate ComboGrid - jQuery EasyUI Demo + + + + + + + +

    Navigate ComboGrid

    +

    Navigate through grid items with keyboard to select an item.

    +
    + + SelectOnNavigation +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/actions.html new file mode 100644 index 0000000..d5d86a3 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/actions.html @@ -0,0 +1,39 @@ + + + + + ComboTree Actions - jQuery EasyUI Demo + + + + + + + +

    ComboTree Actions

    +

    Click the buttons below to perform actions

    + + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/basic.html new file mode 100644 index 0000000..c168d7a --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/basic.html @@ -0,0 +1,19 @@ + + + + + Basic ComboTree - jQuery EasyUI Demo + + + + + + + +

    Basic ComboTree

    +

    Click the right arrow button to show the tree panel.

    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/initvalue.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/initvalue.html new file mode 100644 index 0000000..a5ac8a8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/initvalue.html @@ -0,0 +1,19 @@ + + + + + Initialize Value for ComboTree - jQuery EasyUI Demo + + + + + + + +

    Initialize Value for ComboTree

    +

    Initialize Value when ComboTree is created.

    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/multiple.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/multiple.html new file mode 100644 index 0000000..704e86e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/multiple.html @@ -0,0 +1,22 @@ + + + + + Multiple ComboTree - jQuery EasyUI Demo + + + + + + + +

    Multiple ComboTree

    +

    Click the right arrow button to show the tree panel and select multiple nodes.

    +
    + Cascade Check: + +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/tree_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/tree_data1.json new file mode 100644 index 0000000..83fb0d6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/combotree/tree_data1.json @@ -0,0 +1,49 @@ +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/aligncolumns.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/aligncolumns.html new file mode 100644 index 0000000..cc86de6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/aligncolumns.html @@ -0,0 +1,32 @@ + + + + + Aligning Columns in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Aligning Columns in DataGrid

    +

    Use align and halign properties to set the alignment of the columns and their header.

    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/basic.html new file mode 100644 index 0000000..8dcc2f3 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/basic.html @@ -0,0 +1,32 @@ + + + + + Basic DataGrid - jQuery EasyUI Demo + + + + + + + +

    Basic DataGrid

    +

    The DataGrid is created from markup, no JavaScript code needed.

    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/cellediting.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/cellediting.html new file mode 100644 index 0000000..e67b1bf --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/cellediting.html @@ -0,0 +1,79 @@ + + + + + Cell Editing in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Cell Editing in DataGrid

    +

    Click a cell to start editing.

    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/cellstyle.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/cellstyle.html new file mode 100644 index 0000000..3140fa3 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/cellstyle.html @@ -0,0 +1,42 @@ + + + + + DataGrid Cell Style - jQuery EasyUI Demo + + + + + + + +

    DataGrid Cell Style

    +

    The cells which listprice value is less than 30 are highlighted.

    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/checkbox.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/checkbox.html new file mode 100644 index 0000000..3ea251d --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/checkbox.html @@ -0,0 +1,42 @@ + + + + + CheckBox Selection on DataGrid - jQuery EasyUI Demo + + + + + + + +

    CheckBox Selection on DataGrid

    +

    Click the checkbox on header to select or unselect all selections.

    +
    + + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    +
    + Selection Mode: +
    + SelectOnCheck:
    + CheckOnSelect: +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/clientpagination.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/clientpagination.html new file mode 100644 index 0000000..960a1a3 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/clientpagination.html @@ -0,0 +1,89 @@ + + + + + Client Side Pagination in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Client Side Pagination in DataGrid

    +

    This sample shows how to implement client side pagination in DataGrid.

    +
    + + + + + + + + + + + + + +
    Inv NoDateNameAmountPriceCostNote
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/columngroup.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/columngroup.html new file mode 100644 index 0000000..af8f0f9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/columngroup.html @@ -0,0 +1,34 @@ + + + + + Column Group - jQuery EasyUI Demo + + + + + + + +

    Column Group

    +

    The header cells can be merged. Useful to group columns under a category.

    +
    + + + + + + + + + + + + + + +
    Item IDProductItem Details
    List PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/complextoolbar.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/complextoolbar.html new file mode 100644 index 0000000..5e6cdff --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/complextoolbar.html @@ -0,0 +1,52 @@ + + + + + DataGrid Complex Toolbar - jQuery EasyUI Demo + + + + + + + +

    DataGrid Complex Toolbar

    +

    The DataGrid toolbar can be defined from a <div/> markup, so you can define the layout of toolbar easily.

    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    +
    +
    + + + + + +
    +
    + Date From: + To: + Language: + + Search +
    +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/contextmenu.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/contextmenu.html new file mode 100644 index 0000000..e9a64fa --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/contextmenu.html @@ -0,0 +1,81 @@ + + + + + Context Menu on DataGrid - jQuery EasyUI Demo + + + + + + + +

    Context Menu on DataGrid

    +

    Right click on the header of DataGrid to display context menu.

    +
    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/custompager.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/custompager.html new file mode 100644 index 0000000..baa66a4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/custompager.html @@ -0,0 +1,53 @@ + + + + + Custom DataGrid Pager - jQuery EasyUI Demo + + + + + + + +

    Custom DataGrid Pager

    +

    You can append some buttons to the standard datagrid pager bar.

    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/datagrid_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/datagrid_data1.json new file mode 100644 index 0000000..e9a5be2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/datagrid_data1.json @@ -0,0 +1,12 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/datagrid_data2.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/datagrid_data2.json new file mode 100644 index 0000000..4a27e14 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/datagrid_data2.json @@ -0,0 +1,15 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":28.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":63.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +],"footer":[ + {"unitcost":19.80,"listprice":60.40,"productid":"Average:"}, + {"unitcost":198.00,"listprice":604.00,"productid":"Total:"} +]} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/footer.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/footer.html new file mode 100644 index 0000000..53a3fbd --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/footer.html @@ -0,0 +1,38 @@ + + + + + Footer Rows in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Footer Rows in DataGrid

    +

    The summary informations can be displayed in footer rows.

    +
    + + + + + + + + + + + +
    Item IDProduct IDList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/formatcolumns.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/formatcolumns.html new file mode 100644 index 0000000..c2b0076 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/formatcolumns.html @@ -0,0 +1,39 @@ + + + + + Format DataGrid Columns - jQuery EasyUI Demo + + + + + + + +

    Format DataGrid Columns

    +

    The list price value will show red color when less than 30.

    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/frozencolumns.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/frozencolumns.html new file mode 100644 index 0000000..2bc21b1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/frozencolumns.html @@ -0,0 +1,35 @@ + + + + + Frozen Columns in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Frozen Columns in DataGrid

    +

    You can freeze some columns that can't scroll out of view.

    +
    + + + + + + + + + + + + + + + +
    Item IDProduct
    List PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/frozenrows.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/frozenrows.html new file mode 100644 index 0000000..72310dd --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/frozenrows.html @@ -0,0 +1,44 @@ + + + + + Frozen Rows in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Frozen Rows in DataGrid

    +

    This sample shows how to freeze some rows that will always be displayed at the top when the datagrid is scrolled down.

    +
    + + + + + + + + + + + + + + + +
    Item IDProduct
    List PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/mergecells.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/mergecells.html new file mode 100644 index 0000000..a50f934 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/mergecells.html @@ -0,0 +1,58 @@ + + + + + Merge Cells for DataGrid - jQuery EasyUI Demo + + + + + + + +

    Merge Cells for DataGrid

    +

    Cells in DataGrid body can be merged.

    +
    + + + + + + + + + + + +
    ProductItem IDList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/multisorting.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/multisorting.html new file mode 100644 index 0000000..a04c3ef --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/multisorting.html @@ -0,0 +1,37 @@ + + + + + Multiple Sorting - jQuery EasyUI Demo + + + + + + + +

    Multiple Sorting

    +

    Set 'multiSort' property to true to enable multiple column sorting.

    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/products.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/products.json new file mode 100644 index 0000000..2c512bc --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/products.json @@ -0,0 +1,9 @@ +[ +{"productid":"FI-SW-01","productname":"Koi"}, +{"productid":"K9-DL-01","productname":"Dalmation"}, +{"productid":"RP-SN-01","productname":"Rattlesnake"}, +{"productid":"RP-LI-02","productname":"Iguana"}, +{"productid":"FL-DSH-01","productname":"Manx"}, +{"productid":"FL-DLH-02","productname":"Persian"}, +{"productid":"AV-CB-01","productname":"Amazon Parrot"} +] diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowborder.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowborder.html new file mode 100644 index 0000000..24a18b7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowborder.html @@ -0,0 +1,60 @@ + + + + + Row Border in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Row Border in DataGrid

    +

    This sample shows how to change the row border style of datagrid.

    +
    + Border: + + Striped: + +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowediting.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowediting.html new file mode 100644 index 0000000..e020811 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowediting.html @@ -0,0 +1,113 @@ + + + + + Row Editing in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Row Editing in DataGrid

    +

    Click the row to start editing.

    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowstyle.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowstyle.html new file mode 100644 index 0000000..d65a5c8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/rowstyle.html @@ -0,0 +1,41 @@ + + + + + DataGrid Row Style - jQuery EasyUI Demo + + + + + + + +

    DataGrid Row Style

    +

    The rows which listprice value is less than 30 are highlighted.

    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/selection.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/selection.html new file mode 100644 index 0000000..1118561 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/selection.html @@ -0,0 +1,57 @@ + + + + + DataGrid Selection - jQuery EasyUI Demo + + + + + + + +

    DataGrid Selection

    +

    Choose a selection mode and select one or more rows.

    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    +
    + Selection Mode: + +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/simpletoolbar.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/simpletoolbar.html new file mode 100644 index 0000000..cbb918b --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/simpletoolbar.html @@ -0,0 +1,45 @@ + + + + + DataGrid with Toolbar - jQuery EasyUI Demo + + + + + + + +

    DataGrid with Toolbar

    +

    Put buttons on top toolbar of DataGrid.

    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/transform.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/transform.html new file mode 100644 index 0000000..ddc3a30 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datagrid/transform.html @@ -0,0 +1,46 @@ + + + + + Transform DataGrid from Table - jQuery EasyUI Demo + + + + + + + +

    Transform DataGrid from Table

    +

    Transform DataGrid from an existing, unformatted html table.

    +
    + Transform +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Item IDProductList PriceAttribute
    EST-1FI-SW-0136.50Large
    EST-10K9-DL-0118.50Spotted Adult Female
    EST-11RP-SN-0128.50Venomless
    EST-12RP-SN-0126.50Rattleless
    EST-13RP-LI-0235.50Green Adult
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/basic.html new file mode 100644 index 0000000..eb3417b --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/basic.html @@ -0,0 +1,18 @@ + + + + + Basic DateBox - jQuery EasyUI Demo + + + + + + + +

    Basic DateBox

    +

    Click the calendar image on the right side.

    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/buttons.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/buttons.html new file mode 100644 index 0000000..7ba5e5c --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/buttons.html @@ -0,0 +1,28 @@ + + + + + DateBox Buttons - jQuery EasyUI Demo + + + + + + + +

    DateBox Buttons

    +

    This example shows how to customize the datebox buttons underneath the calendar.

    +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/dateformat.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/dateformat.html new file mode 100644 index 0000000..ead2064 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/dateformat.html @@ -0,0 +1,39 @@ + + + + + Date Format - jQuery EasyUI Demo + + + + + + + +

    Date Format

    +

    Different date formats are applied to different DateBox components.

    +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/events.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/events.html new file mode 100644 index 0000000..bf5c912 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/events.html @@ -0,0 +1,27 @@ + + + + + DateBox Events - jQuery EasyUI Demo + + + + + + + +

    DateBox Events

    +

    Click the calendar image on the right side.

    +
    + +
    + Selected Date: + +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/sharedcalendar.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/sharedcalendar.html new file mode 100644 index 0000000..48c3c1e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/sharedcalendar.html @@ -0,0 +1,30 @@ + + + + + Shared Calendar in DateBox - jQuery EasyUI Demo + + + + + + + +

    Shared Calendar in DateBox

    +

    Multiple datebox components can share a calendar and use it to pick dates.

    +
    + + + + + + + +
    Start Date: + + End Date: + +
    +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/validate.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/validate.html new file mode 100644 index 0000000..fae9b07 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datebox/validate.html @@ -0,0 +1,30 @@ + + + + + Validate DateBox - jQuery EasyUI Demo + + + + + + + +

    Validate DateBox

    +

    When the selected date is greater than specified date. The field validator will raise an error.

    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/basic.html new file mode 100644 index 0000000..a09f245 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/basic.html @@ -0,0 +1,18 @@ + + + + + Basic DateTimeBox - jQuery EasyUI Demo + + + + + + + +

    Basic DateTimeBox

    +

    Click the calendar image on the right side.

    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/initvalue.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/initvalue.html new file mode 100644 index 0000000..c9d2e11 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/initvalue.html @@ -0,0 +1,19 @@ + + + + + Initialize Value for DateTime - jQuery EasyUI Demo + + + + + + + +

    Initialize Value for DateTime

    +

    The value is initialized when DateTimeBox has been created.

    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/showseconds.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/showseconds.html new file mode 100644 index 0000000..54f9c37 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/datetimebox/showseconds.html @@ -0,0 +1,22 @@ + + + + + Display Seconds - jQuery EasyUI Demo + + + + + + + +

    Display Seconds

    +

    The user can decide to display seconds part or not.

    +
    + Show Seconds: + +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/demo.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/demo.css new file mode 100644 index 0000000..5c01467 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/demo.css @@ -0,0 +1,21 @@ +*{ + font-size:12px; +} +body { + font-family:verdana,helvetica,arial,sans-serif; + padding:20px; + font-size:12px; + margin:0; +} +h2 { + font-size:18px; + font-weight:bold; + margin:0; + margin-bottom:15px; +} +.demo-info{ + padding:0 0 12px 0; +} +.demo-tip{ + display:none; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/basic.html new file mode 100644 index 0000000..e745b37 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/basic.html @@ -0,0 +1,23 @@ + + + + + Basic Dialog - jQuery EasyUI Demo + + + + + + + +

    Basic Dialog

    +

    Click below button to open or close dialog.

    +
    + Open + Close +
    +
    + The dialog content. +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/complextoolbar.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/complextoolbar.html new file mode 100644 index 0000000..175fa73 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/complextoolbar.html @@ -0,0 +1,46 @@ + + + + + Complex Toolbar on Dialog - jQuery EasyUI Demo + + + + + + + +

    Complex Toolbar on Dialog

    +

    This sample shows how to create complex toolbar on dialog.

    +
    + Open + Close +
    +
    + The dialog content. +
    +
    + + + + + +
    + Edit + Help + + +
    +
    +
    + Save + Close +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/toolbarbuttons.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/toolbarbuttons.html new file mode 100644 index 0000000..35013a5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/dialog/toolbarbuttons.html @@ -0,0 +1,52 @@ + + + + + Toolbar and Buttons - jQuery EasyUI Demo + + + + + + + +

    Toolbar and Buttons

    +

    The toolbar and buttons can be added to dialog.

    +
    + Open + Close +
    +
    + The dialog content. +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/basic.html new file mode 100644 index 0000000..0c96a05 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/basic.html @@ -0,0 +1,21 @@ + + + + + Basic Draggable - jQuery EasyUI Demo + + + + + + + +

    Basic Draggable

    +

    Move the boxes below by clicking on it with mouse.

    +
    +
    +
    +
    Title
    +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/constain.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/constain.html new file mode 100644 index 0000000..a2dfa6c --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/constain.html @@ -0,0 +1,35 @@ + + + + + Constrain Draggable - jQuery EasyUI Demo + + + + + + + +

    Constrain Draggable

    +

    The draggable object can only be moved within its parent container.

    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/snap.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/snap.html new file mode 100644 index 0000000..5f0103a --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/draggable/snap.html @@ -0,0 +1,37 @@ + + + + + Snap Draggable - jQuery EasyUI Demo + + + + + + + +

    Snap Draggable

    +

    This sample shows how to snap a draggable object to a 20x20 grid.

    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/accept.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/accept.html new file mode 100644 index 0000000..cf56d08 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/accept.html @@ -0,0 +1,78 @@ + + + + + Accept a Drop - jQuery EasyUI Demo + + + + + + + +

    Accept a Drop

    +

    Some draggable object can not be accepted.

    +
    +
    + drag me! +
    Drag 1
    +
    Drag 2
    +
    Drag 3
    +
    +
    + drop here! +
    +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/basic.html new file mode 100644 index 0000000..ecf803a --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/basic.html @@ -0,0 +1,77 @@ + + + + + Basic Droppable - jQuery EasyUI Demo + + + + + + + +

    Basic Droppable

    +

    Drag the boxed on left to the target area on right.

    +
    +
    +
    Source
    +
    +
    Apple
    +
    Peach
    +
    Orange
    +
    +
    +
    +
    Target
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/sort.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/sort.html new file mode 100644 index 0000000..37c0d2f --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/droppable/sort.html @@ -0,0 +1,71 @@ + + + + + Change Items Order - jQuery EasyUI Demo + + + + + + + +

    Change Items Order

    +

    Drag the list items to change their order.

    +
    +
      +
    • Drag 1
    • +
    • Drag 2
    • +
    • Drag 3
    • +
    • Drag 4
    • +
    • Drag 5
    • +
    • Drag 6
    • +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/easyloader/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/easyloader/basic.html new file mode 100644 index 0000000..44a09eb --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/easyloader/basic.html @@ -0,0 +1,75 @@ + + + + + Basic EasyLoader - jQuery EasyUI Demo + + + + + + + +

    Basic EasyLoader

    +
    +
    +
    Click the buttons below to load components dynamically.
    +
    + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/basic.html new file mode 100644 index 0000000..7e23d51 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/basic.html @@ -0,0 +1,67 @@ + + + + + Basic Form - jQuery EasyUI Demo + + + + + + + +

    Basic Form

    +

    Fill the form and submit it.

    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Name:
    Email:
    Subject:
    Message:
    Language: + +
    +
    +
    + Submit + Clear +
    +
    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/form_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/form_data1.json new file mode 100644 index 0000000..7103c83 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/form_data1.json @@ -0,0 +1,7 @@ +{ + "name":"easyui", + "email":"easyui@gmail.com", + "subject":"Subject Title", + "message":"Message Content", + "language":"de" +} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/load.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/load.html new file mode 100644 index 0000000..a80f585 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/form/load.html @@ -0,0 +1,76 @@ + + + + + Load Form Data - jQuery EasyUI Demo + + + + + + + +

    Load Form Data

    +

    Click the buttons below to load form data.

    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Name:
    Email:
    Subject:
    Message:
    Language: + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/_content.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/_content.html new file mode 100644 index 0000000..66c1bd5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

    jQuery EasyUI framework help you build your web page easily.

    +
      +
    • easyui is a collection of user-interface plugin based on jQuery.
    • +
    • easyui provides essential functionality for building modern, interactive, javascript applications.
    • +
    • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
    • +
    • complete framework for HTML5 web page.
    • +
    • easyui save your time and scales while developing your products.
    • +
    • easyui is very easy but powerful.
    • +
    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/addremove.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/addremove.html new file mode 100644 index 0000000..34977c4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/addremove.html @@ -0,0 +1,53 @@ + + + + + Add and Remove Layout - jQuery EasyUI Demo + + + + + + + +

    Add and Remove Layout

    +

    Click the buttons below to add or remove region panel of layout.

    +
    + Select Region Panel: + + Add + Remove +
    +
    +
    +
    +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/autoheight.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/autoheight.html new file mode 100644 index 0000000..8400a23 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/autoheight.html @@ -0,0 +1,58 @@ + + + + + Auto Height for Layout - jQuery EasyUI Demo + + + + + + + +

    Auto Height for Layout

    +

    This example shows how to auto adjust layout height after dynamically adding items.

    + +
    +
    +
    +
    +
    +

    Panel Content.

    +

    Panel Content.

    +

    Panel Content.

    +

    Panel Content.

    +

    Panel Content.

    +
    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/basic.html new file mode 100644 index 0000000..29e2c39 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/basic.html @@ -0,0 +1,39 @@ + + + + + Basic Layout - jQuery EasyUI Demo + + + + + + + +

    Basic Layout

    +

    The layout contains north,south,west,east and center regions.

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + +
    Item IDProduct IDList PriceUnit CostAttributeStatus
    +
    +
    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/complex.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/complex.html new file mode 100644 index 0000000..833eb09 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/complex.html @@ -0,0 +1,57 @@ + + + + + Complex Layout - jQuery EasyUI Demo + + + + + + + +

    Complex Layout

    +

    This sample shows how to create a complex layout.

    +
    +
    +
    +
    +
    +
      +
      +
      +
      +
      + content1 +
      +
      + content2 +
      +
      + content3 +
      +
      +
      +
      +
      +
      +
      + + + + + + + + + + + +
      Item IDProduct IDList PriceUnit CostAttributeStatus
      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/datagrid_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/datagrid_data1.json new file mode 100644 index 0000000..e9a5be2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/datagrid_data1.json @@ -0,0 +1,12 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/full.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/full.html new file mode 100644 index 0000000..c83bf07 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/full.html @@ -0,0 +1,19 @@ + + + + + Full Layout - jQuery EasyUI Demo + + + + + + + +
      north region
      +
      west content
      +
      east region
      +
      south region
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/nestedlayout.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/nestedlayout.html new file mode 100644 index 0000000..1f8cc04 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/nestedlayout.html @@ -0,0 +1,31 @@ + + + + + Nested Layout - jQuery EasyUI Demo + + + + + + + +

      Nested Layout

      +

      The layout region panel contains another layout or other components.

      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/nocollapsible.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/nocollapsible.html new file mode 100644 index 0000000..a6914a0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/nocollapsible.html @@ -0,0 +1,34 @@ + + + + + No collapsible button in Layout - jQuery EasyUI Demo + + + + + + + +

      No collapsible button in Layout

      +

      The layout region panel has no collapsible button.

      +
      +
      +
      +
      +
      + +
      +
      +
      +
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/propertygrid_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/propertygrid_data1.json new file mode 100644 index 0000000..12b2d00 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/propertygrid_data1.json @@ -0,0 +1,20 @@ +{"total":7,"rows":[ + {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, + {"name":"Address","value":"","group":"ID Settings","editor":"text"}, + {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, + {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, + {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, + {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ + "type":"validatebox", + "options":{ + "validType":"email" + } + }}, + {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ + "type":"checkbox", + "options":{ + "on":true, + "off":false + } + }} +]} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/tree_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/tree_data1.json new file mode 100644 index 0000000..83fb0d6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/layout/tree_data1.json @@ -0,0 +1,49 @@ +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/basic.html new file mode 100644 index 0000000..741d68c --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/basic.html @@ -0,0 +1,33 @@ + + + + + Basic LinkButton - jQuery EasyUI Demo + + + + + + + +

      Basic LinkButton

      +

      Buttons can be created from <a> or <button> elements.

      +
      +

      Basic Buttons

      +
      + Add + Remove + Save + Cut + Text Button +
      +

      Fixed Width Buttons

      +
      + Search + Print + Reload + Help +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/group.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/group.html new file mode 100644 index 0000000..852db67 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/group.html @@ -0,0 +1,33 @@ + + + + + Button Group - jQuery EasyUI Demo + + + + + + + +

      Button Group

      +

      In a button group only one button can be selected.

      +
      + +
      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/iconalign.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/iconalign.html new file mode 100644 index 0000000..99a8ec2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/iconalign.html @@ -0,0 +1,32 @@ + + + + + Icon Align on LinkButton - jQuery EasyUI Demo + + + + + + + +

      Icon Align on LinkButton

      +

      Change the icon align to place icon on left, right, top or bottom of button.

      +
      +
      + Select Icon Align: + +
      +
      + Add + Remove + Save + Cut +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/plain.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/plain.html new file mode 100644 index 0000000..0143c20 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/plain.html @@ -0,0 +1,28 @@ + + + + + Plain LinkButton - jQuery EasyUI Demo + + + + + + + +

      Plain LinkButton

      +

      The buttons with plain style have transparent background.

      +
      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/size.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/size.html new file mode 100644 index 0000000..265ecb5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/size.html @@ -0,0 +1,34 @@ + + + + + LinkButton Size - jQuery EasyUI Demo + + + + + + + +

      LinkButton Size

      +

      This sample shows how to display small buttons and large buttons.

      +
      +

      Small Buttons

      +
      + Add + Remove + Save + Cut + Text Button +
      +

      Large Buttons

      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/toggle.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/toggle.html new file mode 100644 index 0000000..ebab0d1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/linkbutton/toggle.html @@ -0,0 +1,25 @@ + + + + + Toggle Button - jQuery EasyUI Demo + + + + + + + +

      Toggle Button

      +

      Click the button below to switch its selected state.

      +
      +
      + Add + Remove + Save + Cut + Text Button +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/basic.html new file mode 100644 index 0000000..ac6e171 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/basic.html @@ -0,0 +1,68 @@ + + + + + Basic Menu - jQuery EasyUI Demo + + + + + + + +

      Basic Menu

      +

      Right click on page to display menu.

      +
      + +
      +
      New
      +
      + Open +
      +
      Word
      +
      Excel
      +
      PowerPoint
      +
      + M1 +
      +
      sub1
      +
      sub2
      +
      + Sub +
      +
      sub21
      +
      sub22
      +
      sub23
      +
      +
      +
      sub3
      +
      +
      +
      + Window Demos +
      +
      Window
      +
      Dialog
      + +
      +
      +
      +
      +
      Save
      +
      Print
      + +
      Exit
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/customitem.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/customitem.html new file mode 100644 index 0000000..bf4df9c --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/customitem.html @@ -0,0 +1,55 @@ + + + + + Custom Menu Item - jQuery EasyUI Demo + + + + + + + +

      Custom Menu Item

      +

      Right click on page to display menu, move to the 'Open' item to display its custom sub content.

      +
      +
      +
      New
      +
      + Open + +
      +
      Save
      +
      Print
      + +
      Exit
      +
      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/events.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/events.html new file mode 100644 index 0000000..41f4b57 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menu/events.html @@ -0,0 +1,40 @@ + + + + + Menu Events - jQuery EasyUI Demo + + + + + + + +

      Menu Events

      +

      Right click on page to display menu and click an item.

      +
      +
      +
      New
      +
      Save
      +
      Print
      + +
      Exit
      +
      +
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/actions.html new file mode 100644 index 0000000..6623d3d --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/actions.html @@ -0,0 +1,58 @@ + + + + + MenuButton Actions - jQuery EasyUI Demo + + + + + + + +

      MenuButton Actions

      +

      Click the buttons below to perform actions.

      + +
      + Home + Edit + Help + About +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/alignment.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/alignment.html new file mode 100644 index 0000000..5362745 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/alignment.html @@ -0,0 +1,69 @@ + + + + + Menu Alignment on MenuButton - jQuery EasyUI Demo + + + + + + + +

      Menu Alignment on MenuButton

      +

      This example shows how to change the alignment of the top level menu.

      +
      + Change Alignment: + +
      +
      + Home + Edit + Help + About + +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      +
      +
      History
      +
      Faq
      +
      Our Team
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/basic.html new file mode 100644 index 0000000..e277296 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/menubutton/basic.html @@ -0,0 +1,54 @@ + + + + + Basic MenuButton - jQuery EasyUI Demo + + + + + + + +

      Basic MenuButton

      +

      Move mouse over the button to drop down menu.

      +
      +
      + Home + Edit + Help + About +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/alert.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/alert.html new file mode 100644 index 0000000..ff7129d --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/alert.html @@ -0,0 +1,40 @@ + + + + + Alert Messager - jQuery EasyUI Demo + + + + + + + +

      Alert Messager

      +

      Click on each button to display different alert message box.

      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/basic.html new file mode 100644 index 0000000..373c7ca --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/basic.html @@ -0,0 +1,56 @@ + + + + + Basic Messager - jQuery EasyUI Demo + + + + + + + +

      Basic Messager

      +

      Click on each button to see a distinct message box.

      +
      + Show + Slide + Fade + Progress +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/interactive.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/interactive.html new file mode 100644 index 0000000..9ba70bf --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/interactive.html @@ -0,0 +1,36 @@ + + + + + Interactive Messager - jQuery EasyUI Demo + + + + + + + +

      Interactive Messager

      +

      Click on each button to display interactive message box.

      +
      + Confirm + Prompt +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/position.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/position.html new file mode 100644 index 0000000..58886f1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/messager/position.html @@ -0,0 +1,140 @@ + + + + + Message Box Position - jQuery EasyUI Demo + + + + + + + +

      Message Box Position

      +

      Click the buttons below to display message box on different position.

      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/basic.html new file mode 100644 index 0000000..945c7c1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/basic.html @@ -0,0 +1,24 @@ + + + + + Basic NumberBox - jQuery EasyUI Demo + + + + + + + +

      Basic NumberBox

      +

      The NumberBox can only accept inputing numbers.

      +
      +
      +

      List Price:

      + +

      Amount:

      + +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/format.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/format.html new file mode 100644 index 0000000..ec5b6ff --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/format.html @@ -0,0 +1,40 @@ + + + + + Format NumberBox - jQuery EasyUI Demo + + + + + + + +

      Format NumberBox

      +

      Number formatting is the ability to control how a number is displayed.

      +
      + + + + + + + + + + + + + + + + + + + + + +
      Number in the United States
      Number in France
      Currency:USD
      Currency:EUR
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/range.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/range.html new file mode 100644 index 0000000..f2b96c0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberbox/range.html @@ -0,0 +1,25 @@ + + + + + Number Range - jQuery EasyUI Demo + + + + + + + +

      Number Range

      +

      The value is constrained to a specified range.

      +
      +
      +

      Amount:

      + +

      Weight:

      + +

      Age:

      + +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/basic.html new file mode 100644 index 0000000..a8b8863 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/basic.html @@ -0,0 +1,25 @@ + + + + + Basic NumberSpinner - jQuery EasyUI Demo + + + + + + + +

      Basic NumberSpinner

      +

      Click spinner button to change value.

      +
      + +
      + Value: +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/increment.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/increment.html new file mode 100644 index 0000000..95b5a5f --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/increment.html @@ -0,0 +1,18 @@ + + + + + Increment Number - jQuery EasyUI Demo + + + + + + + +

      Increment Number

      +

      The sample shows how to set the increment step.

      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/range.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/range.html new file mode 100644 index 0000000..00e1307 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/numberspinner/range.html @@ -0,0 +1,18 @@ + + + + + Number Range - jQuery EasyUI Demo + + + + + + + +

      Number Range

      +

      The value is constrained to a range between 10 and 100.

      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/attaching.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/attaching.html new file mode 100644 index 0000000..5c87427 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/attaching.html @@ -0,0 +1,32 @@ + + + + + Attaching Other Components - jQuery EasyUI Demo + + + + + + + +

      Attaching Other Components

      +

      Any other components can be attached to page bar.

      +
      +
      +
      +
      +
      + + + + + +
      + + + +
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/basic.html new file mode 100644 index 0000000..98f7c49 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/basic.html @@ -0,0 +1,20 @@ + + + + + Basic Pagination - jQuery EasyUI Demo + + + + + + + +

      Basic Pagination

      +

      The user can change page number and page size on page bar.

      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/custombuttons.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/custombuttons.html new file mode 100644 index 0000000..2a75b88 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/custombuttons.html @@ -0,0 +1,38 @@ + + + + + Custom Pagination Buttons - jQuery EasyUI Demo + + + + + + + +

      Custom Pagination Buttons

      +

      The customized buttons can be appended to page bar.

      +
      +
      +
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/layout.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/layout.html new file mode 100644 index 0000000..dcb679a --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/layout.html @@ -0,0 +1,62 @@ + + + + + Pagination Layout - jQuery EasyUI Demo + + + + + + + +

      Pagination Layout

      +

      The pagination layout supports various types of pages which you can choose.

      +
      +
      +
      +
      +
      + +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/links.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/links.html new file mode 100644 index 0000000..5ec8b38 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/links.html @@ -0,0 +1,23 @@ + + + + + Pagination Links - jQuery EasyUI Demo + + + + + + + +

      Pagination Links

      +

      The example shows how to customize numbered pagination links.

      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/simple.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/simple.html new file mode 100644 index 0000000..ca59ae2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/pagination/simple.html @@ -0,0 +1,25 @@ + + + + + Simplify Pagination - jQuery EasyUI Demo + + + + + + + +

      Simplify Pagination

      +

      The sample shows how to simplify pagination.

      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/_content.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/_content.html new file mode 100644 index 0000000..f7b8e2e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

      Here is the content loaded via AJAX.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modern, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/basic.html new file mode 100644 index 0000000..e2220df --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/basic.html @@ -0,0 +1,31 @@ + + + + + Basic Panel - jQuery EasyUI Demo + + + + + + + +

      Basic Panel

      +

      The panel is a container for other components or elements.

      +
      + Open + Close +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/customtools.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/customtools.html new file mode 100644 index 0000000..299b7fa --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/customtools.html @@ -0,0 +1,35 @@ + + + + + Custom Panel Tools - jQuery EasyUI Demo + + + + + + + +

      Custom Panel Tools

      +

      Click the right top buttons to perform actions with panel.

      +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      +
      + + + + +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/loadcontent.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/loadcontent.html new file mode 100644 index 0000000..c4b1417 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/loadcontent.html @@ -0,0 +1,27 @@ + + + + + Load Panel Content - jQuery EasyUI Demo + + + + + + + +

      Load Panel Content

      +

      Click the refresh button on top right of panel to load content.

      +
      +
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/nestedpanel.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/nestedpanel.html new file mode 100644 index 0000000..64865c6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/nestedpanel.html @@ -0,0 +1,30 @@ + + + + + Nested Panel - jQuery EasyUI Demo + + + + + + + +

      Nested Panel

      +

      The panel can be placed inside containers and can contain other components.

      +
      +
      +
      +
      + Left Content +
      +
      + Right Content +
      +
      + Right Content +
      +
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/paneltools.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/paneltools.html new file mode 100644 index 0000000..eb0d87f --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/panel/paneltools.html @@ -0,0 +1,37 @@ + + + + + Panel Tools - jQuery EasyUI Demo + + + + + + + +

      Panel Tools

      +

      Click the right top buttons to perform actions with panel.

      + +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/progressbar/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/progressbar/basic.html new file mode 100644 index 0000000..910777b --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/progressbar/basic.html @@ -0,0 +1,30 @@ + + + + + Basic ProgressBar - jQuery EasyUI Demo + + + + + + + +

      Basic ProgressBar

      +

      Click the button below to show progress information.

      +
      + Start +
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/basic.html new file mode 100644 index 0000000..a7c3cb5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/basic.html @@ -0,0 +1,61 @@ + + + + + Basic PropertyGrid - jQuery EasyUI Demo + + + + + + + +

      Basic PropertyGrid

      +

      Click on row to change each property value.

      + + +
      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/customcolumns.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/customcolumns.html new file mode 100644 index 0000000..a8aabd3 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/customcolumns.html @@ -0,0 +1,31 @@ + + + + + Customize Columns of PropertyGrid - jQuery EasyUI Demo + + + + + + + +

      Customize Columns of PropertyGrid

      +

      The columns of PropertyGrid can be changed.

      +
      + +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/groupformat.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/groupformat.html new file mode 100644 index 0000000..27cc305 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/groupformat.html @@ -0,0 +1,30 @@ + + + + + Group Format - jQuery EasyUI Demo + + + + + + + +

      Group Format

      +

      The user can change the group information.

      +
      + +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/propertygrid_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/propertygrid_data1.json new file mode 100644 index 0000000..12b2d00 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/propertygrid/propertygrid_data1.json @@ -0,0 +1,20 @@ +{"total":7,"rows":[ + {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, + {"name":"Address","value":"","group":"ID Settings","editor":"text"}, + {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, + {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, + {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, + {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ + "type":"validatebox", + "options":{ + "validType":"email" + } + }}, + {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ + "type":"checkbox", + "options":{ + "on":true, + "off":false + } + }} +]} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/resizable/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/resizable/basic.html new file mode 100644 index 0000000..a4d5a61 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/resizable/basic.html @@ -0,0 +1,24 @@ + + + + + Basic Resizable - jQuery EasyUI Demo + + + + + + + +

      Basic Resizable

      +

      Click on the edge of box and move the edge to resize the box.

      +
      +
      +
      Resize Me
      +
      +
      +
      Title
      +
      Drag and Resize Me
      +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/searchbox/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/searchbox/basic.html new file mode 100644 index 0000000..1eb5275 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/searchbox/basic.html @@ -0,0 +1,23 @@ + + + + + Basic SearchBox - jQuery EasyUI Demo + + + + + + + +

      Basic SearchBox

      +

      Click search button or press enter key in input box to do searching.

      +
      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/searchbox/category.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/searchbox/category.html new file mode 100644 index 0000000..5a2b866 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/searchbox/category.html @@ -0,0 +1,28 @@ + + + + + Search Category - jQuery EasyUI Demo + + + + + + + +

      Search Category

      +

      Select a category and click search button or press enter key in input box to do searching.

      +
      + +
      +
      All News
      +
      Sports News
      +
      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/basic.html new file mode 100644 index 0000000..e2a0f59 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/basic.html @@ -0,0 +1,18 @@ + + + + + Basic Slider - jQuery EasyUI Demo + + + + + + + +

      Basic Slider

      +

      Drag the slider to change value.

      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/formattip.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/formattip.html new file mode 100644 index 0000000..f0d666b --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/formattip.html @@ -0,0 +1,28 @@ + + + + + Format Tip Information - jQuery EasyUI Demo + + + + + + + +

      Format Tip Information

      +

      This sample shows how to format tip information.

      +
      + +
      jQuery EasyUI
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/nonlinear.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/nonlinear.html new file mode 100644 index 0000000..7570833 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/nonlinear.html @@ -0,0 +1,58 @@ + + + + + Non Linear Slider - jQuery EasyUI Demo + + + + + + + +

      Non Linear Slider

      +

      This example shows how to create a slider with a non-linear scale.

      +
      +
      + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/rule.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/rule.html new file mode 100644 index 0000000..6f0e08c --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/rule.html @@ -0,0 +1,21 @@ + + + + + Slider Rule - jQuery EasyUI Demo + + + + + + + +

      Slider Rule

      +

      This sample shows how to define slider rule.

      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/vertical.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/vertical.html new file mode 100644 index 0000000..6bc8b59 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/slider/vertical.html @@ -0,0 +1,25 @@ + + + + + Vertical Slider - jQuery EasyUI Demo + + + + + + + +

      Vertical Slider

      +

      This sample shows how to create a vertical slider.

      +
      +
      + +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/splitbutton/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/splitbutton/actions.html new file mode 100644 index 0000000..0fa343e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/splitbutton/actions.html @@ -0,0 +1,64 @@ + + + + + SplitButton Actions - jQuery EasyUI Demo + + + + + + + +

      SplitButton Actions

      +

      Click the buttons below to perform actions.

      + +
      + Home + Edit + Ok + Help +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Ok
      +
      Cancel
      +
      +
      +
      Help
      +
      Update
      +
      + About + +
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/splitbutton/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/splitbutton/basic.html new file mode 100644 index 0000000..2f31ec1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/splitbutton/basic.html @@ -0,0 +1,61 @@ + + + + + Basic SplitButton - jQuery EasyUI Demo + + + + + + + +

      Basic SplitButton

      +

      Move mouse over the arrow area of button to drop down menu.

      +
      +
      + Home + Edit + Ok + Help +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Ok
      +
      Cancel
      +
      +
      +
      Help
      +
      Update
      +
      + About + +
      +
      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/_content.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/_content.html new file mode 100644 index 0000000..f7b8e2e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

      Here is the content loaded via AJAX.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modern, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/autoheight.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/autoheight.html new file mode 100644 index 0000000..e34a3dc --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/autoheight.html @@ -0,0 +1,36 @@ + + + + + Auto Height for Tabs - jQuery EasyUI Demo + + + + + + + +

      Auto Height for Tabs

      +

      The tabs height is auto adjusted according to tab panel content.

      +
      +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      +
      +
        +
        +
        + This is the help content. +
        +
        + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/basic.html new file mode 100644 index 0000000..293b91c --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/basic.html @@ -0,0 +1,36 @@ + + + + + Basic Tabs - jQuery EasyUI Demo + + + + + + + +

        Basic Tabs

        +

        Click tab strip to swap tab panel content.

        +
        +
        +
        +

        jQuery EasyUI framework helps you build your web pages easily.

        +
          +
        • easyui is a collection of user-interface plugin based on jQuery.
        • +
        • easyui provides essential functionality for building modem, interactive, javascript applications.
        • +
        • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
        • +
        • complete framework for HTML5 web page.
        • +
        • easyui save your time and scales while developing your products.
        • +
        • easyui is very easy but powerful.
        • +
        +
        +
        +
          +
          +
          + This is the help content. +
          +
          + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/dropdown.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/dropdown.html new file mode 100644 index 0000000..7c9daac --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/dropdown.html @@ -0,0 +1,55 @@ + + + + + Tabs with DropDown - jQuery EasyUI Demo + + + + + + + +

          Tabs with DropDown

          +

          This sample shows how to add a dropdown menu over a tab strip.

          +
          +
          +
          +

          jQuery EasyUI framework helps you build your web pages easily.

          +
            +
          • easyui is a collection of user-interface plugin based on jQuery.
          • +
          • easyui provides essential functionality for building modem, interactive, javascript applications.
          • +
          • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
          • +
          • complete framework for HTML5 web page.
          • +
          • easyui save your time and scales while developing your products.
          • +
          • easyui is very easy but powerful.
          • +
          +
          +
          +
            +
            +
            + This is the help content. +
            +
            +
            +
            Welcome
            +
            Help Contents
            +
            Search
            +
            Dynamic Help
            +
            + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/fixedwidth.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/fixedwidth.html new file mode 100644 index 0000000..390e987 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/fixedwidth.html @@ -0,0 +1,37 @@ + + + + + Fixed Tab Width - jQuery EasyUI Demo + + + + + + + +

            Fixed Tab Width

            +

            The tab strips have fixed width and height.

            +
            +
            +
            +

            Home Content.

            +
            +
            +

            Maps Content.

            +
            +
            +

            Journal Content.

            +
            +
            +

            History Content.

            +
            +
            +

            References Content.

            +
            +
            +

            Contact Content.

            +
            +
            + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/hover.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/hover.html new file mode 100644 index 0000000..5b62ac9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/hover.html @@ -0,0 +1,46 @@ + + + + + Hover Tabs - jQuery EasyUI Demo + + + + + + + +

            Hover Tabs

            +

            Move mouse over the tab strip to open the tab panel.

            +
            +
            +
            +

            jQuery EasyUI framework helps you build your web pages easily.

            +
              +
            • easyui is a collection of user-interface plugin based on jQuery.
            • +
            • easyui provides essential functionality for building modem, interactive, javascript applications.
            • +
            • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
            • +
            • complete framework for HTML5 web page.
            • +
            • easyui save your time and scales while developing your products.
            • +
            • easyui is very easy but powerful.
            • +
            +
            +
            +
              +
              +
              + This is the help content. +
              +
              + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/images/modem.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/images/modem.png new file mode 100644 index 0000000000000000000000000000000000000000..be5a2eb2fc48a8f16681b591f4ef74888ee09c33 GIT binary patch literal 1633 zcmV-n2A=teP)DSXo(n z6%-WGq@<)6*xA{^2Ei8OFVPRn@pc;RG z0K(}2kU_v;uacIQE|igxVPIil0lOU8LJ$V2gBcFvgF+DKL$KN}U%tQ{3j&`%e`fgj z@gvL=d;kH2(*Zz33V;^3sH&=hEe8c1aykKFkQgk@fP4zVAcH}^2L(OIK_D>@4RRES ze)sMj*gUAC{s9CKRtErm69G(cJz`>Fj2}LHfCnwe5SVX(p#$bKGczNn7qEqVe0*Tb zKx$wP1gU%b_AT5|K=waih<*VGAQtps2Pz2H)YP1#tEdz1LA-G{v90jAo(|M-Y{Iec=5@nPoJ&=1Q2>IaFvsjn`>!l$t@@-2(}dD z0GK0?EkXud!iJNWd(GMH9%!pb!uh6=itz=n=!YbLZ{?6XRZ>k+%Q> zhy`Q`&;nIpmRY8(tSkWx7KUffo-s&DO2QK#$WmB3Ko0?!SPXU#m1Z4_<00M=8Jg|USYhq#|2XZmU!j~^!g0l-ZH#ay%!+e4s0^qV7 zCl zzk}l%xnx6*cces$;#;tKkUTJDgZV%`;9LP^gB$_!J;-ce!utdC{SlxvDE_~K)Byw# z3oyP-K}9Sx5VA6|Gca)cV_^9Y%36#J|Cs)QM1f48BN)Nn1tk_xApwc!e}BRC+4mpc z86F%z4whpB71y9L1E@wA=qY;#2Zjsh&of-Ue3{|QnKSo*QNADMdk_E!AQqr6xn4eh z#qi+MGlt6_&NBGR1u$ z0{{Yu<Cx%1A~kt11BpmeSi!CrWZyY9!TmJ7G?m2;TK>OdVJl%92G$?!48NGZF}SmPF>w9nW%&C26N4Xf z00ZYQUWPA1Um5-f1~UBq_k)2IR52MCGQ4~95>y1jif%}W2lO#BFiL>+E&~^z05CCs zVmN;M_>U(~p6rME{s*!H00M|*&z?PPz=SkSTvS{D7-$Skj7;G4z`*hXOoI&m$Mlkc znS+yo>HT}K&zO058JK{<%mPXaz!VNj<)Add07`g3`se1&48M$w7?`+u!SR3g?Afcp z#0yIKkI;*KfB*tHn;DoBY=PJr$mRzc!~(>uKtn+^3nLRF3ou86#ef(n%*@Kf$jA&< z2T=p$g5`mpXJG*;`2Fr3Gnc3+Gb50H=l1Ql4<9~U4~&|{K=YrVI{+Yn7?GN0TtLhY zauAfygvLh4gw(;r{y;5$3@UKZ9RLtOj04>>0tlc1ZXtfG21Qdk=RTSi)EQ1{_6i^UCwl}dq?)Kwu=icw$3Vv(^&DzBp z003H4WY{5#gx(W{WZ?xTPp(-6A&d7n9sqO>1QNe~ZLyh!;faNxAImH(PRkboJmIl) z5ft@hT9)XLC{1`m{6Mq^07z$}!gz5dlj%kb<7#2N1V~S32mm?^E&&!@<5jOx&3q{o za+2cX&tua)2r{taVogmAuD$W)qm~2Jb-st=OE#9C%TaGk*+GINT|sbi^6jAAyQ69v z8kDn-+d5(SDD|F*MUq!Y8 zc(PIdZebZiFlP5@(-6e!MAaf;@5+D2xe6|d8cfdKc6~j+K7)-5c4y4Sx{BFnKaWtq z>5TRFH=1ZgLzdQf!x{T;+PrT8Xs^e8w-+;+?n9TsNf?}i%e{^x&~3>;nZbF>Wk~-xi=)I9adQP-N!XQOOPah0O(QZ>2owWjyN~2)5!9nUX;qfIGvsHp@IVxcl=2QSj-aDrbsm+71?S} z(P`Ip&yPj&*46_(_|&4!Hz=_a?i71#2Li$LLi<)nVL z!{}WfIN}P&}jcP#>G?Gb4@Dg8Slpya_Y>1sq)VLm%q6alT7GG9ciH z=o`?VqJQAg0KhTaeay7TgYio%ePJb?E);6I?M9S?xW$@CT%}tOf{H0q7 zl`i}Cu}DQlJM)s>yd2C@xO01?p`g&-I~j%}`IIk6Y_>=2dpr+&3oX_Q8)ei(kFHYPxu*ps zYp-_l-RgrA8RDn!$Lm2bgGYu5Mdd0wSFTWOo4`S!NZ7|18*^m7=q?+~d$Wx!S3~ad z+qd`d_qu8q#;X~go_&(vYbA?;RKI^rk(F-U-T(#aumx`5F2EK1)KvG2^wc{g_+chg z$@@b)Sm!5c3i<3aJ0E2Ax4)~wB=r2XF8_c%C3(*EJ1#I%Qc@Vr&3)3U6U3N=3DN{@*z34hoRim^Arg_jcG>cCncl_cW}jS2nCa`kchCB!qvQ7I z=uc6;itt-`r&{6r(~xd+mFyq3twZh~O*rUVb*%k2+a5q+M`OXKY6x!|)7R8~b} zRQte@Xl8~+psdw=Kq)?VK}7sJE0SkH5r z2LOO|aL}fmrbzs@EHI}1#M!gcreGEyuq^-pDqDQe*`ua2K4o)M%1?=LDW{poV}XE} z#OPRJ@KI)b?9Nzb%$elYSU&);tP9>05W)H1iWnwxi( z35bh~vl9bllm9;Bm|~5OTm-YU69c^q@(A*Cv!8l93qnHH5jc8{4qtAxavOpx)su3t zmNn(O!v?S*3Q-NI+Vr2lbQX(pkjT`>3dQHP@o`xjqaih3qnq&vH|)yjEDq3ENj~*X zHu!OjW0JD%1loDs^o+wRE&(SBPF;+pu?5j!9T3>*lVMBnrwD~YZ{KzQkk_w2SMZ=J zIZE+guB(d+&c)T$a-Fj2l1G_{6W`s{-5owOJPc~IUwufI!6p&g5H~n7!W>j8mF%zY zFMYYQ<@79aQSRyzgqfW~RX>{FM*E8)BA;%`zTE52*1u5AsTqPkuL_*w27&a?l9IN; z_wVB>%gb-tu1a$%d}5MpQ%I3vYUrh5^%3U}6K~I`B$W(~xC9!omvc*|iW^^r7c}#oKM-NxzD*T(-)|KN1dXb}#%=YvteLUV5fj?QWh?F#CY?Buwoy4L z=R{FRcUdeJ4u{8YHp$&Oqnr8qj_$^m$dKPUCU^0(=R~(VZA6bUq)go=uBAqky{lu% zKBp0-hnxjVXxt1HYRIW5*NEKu6jf1CANS=;c1UPw=wN#0$^fI$kcs%UORLpFBlDg% zUiZi=N;T@IJY_@(K&}VXpRdyydb2uQOiLmrGV&DW)TvV#cXwwntDO4rBcJ+lY!6vj zRYeU7UIsO>O^I_aE?;VX@?`UmQmHf@Z`|lPXI-Nw@G&>C!DM&$HJGrlH7^q7?89;q zXYQkj!zt!21nlUZeQ6rgjo>$6Uy#9Quo@>_;g^(HlSqyJJ0rTI4SFpv|5_TZ;C8*E zc3D89fkJ-s&M*}KsBvH2-$)o&e` zeQZ5Jk_XdpQME?zdYwK`@frob;-GYTS2q-mYQ^*Qa^U$AtayNjD=$k-!<_t?DR8UB zAA9RNX`3QGZ1R;Q36%0ky~Hx~5dMwxZ-2ab6L?MC5Ja8+eF$V3Gr8QodJk0dg18KZ zoR7!#@wqmLYCIpuHpa(jR3l!JujVwIf4!~)NcnMNaGE3UV%2;}W*!Z9!;|>|>Eea8 zqq7zPA%671(%VaWl*3>`+Yc2|;n3m*l99>;EN2rAZ^i+v?s$poGHzbw+Nba4L#rH6 zq+MiGe?o-}D~G1MR<^zfzq+(@km=Q-(zW}5CylOrwh4>Vb%z8_K1v z{}MwZw_Q@a*%FqqwK59Fw(zE8C3}B&C? zVuA%ti8StfH{XZc2D8U_J|AyH{NhfILtZi<_ZTM@xbX@teKzjklX>M9=8`#Ed1Jrk z`Gv38>mF)aL&|8kP52^nQ#%GVws*XEG5;VahotE%ja@!`-&8RZhC-_mDh+X z=UGQpR`C`B!&I*F7JfdG22&_W)fCFGR!FUNO{VG(#$axsU>vlzfI0g2&z!Q*(e=i$ zp6es@6#)$*^JItW*m3o4-rEJ#L9 z*=8N2x83C0Xso1i*qhR#qLO0@sT3UP1j_21GkA#Notip#m8q2W%RhAdUiaZ;f%+xn zK4GR*3$K_M2~m(W_C`&j2-->mlPx`~d~q7cUxC`=j;vVIpx3_?Pt6e|1)Vuq4x5{b zPFZAERh{-X!c9^ml40Giad7jeVKOO5Mb;ZTWn!D0;=MJC$qygRJR7J@)^-%rL@UvI zl5kl&T-?98E1c60o$b2I)!8x#^2ut6A*9!6Isf^KKJv)K7Y%>4YSykdhIk% zG3y$bafGoO=g*Eumo9S0Y=2UTz4{vsI?HNo>_F$-kz{s~yL)T=)}^wV_XwIHzG9Uf zyrDDs82Z;OeZGFzLA43QCeL`1*}N`1?pHA_%fC;wv@OD4F+%=u9u zt-<>(M_a6z@xfr+c7ypZJpinAWK!d!Ghh8dYNbMFnq_p$qt8!?WC$6CA`S#_9<50R>^sn!rDR{DTdpKSy zZnNCkjFc6LaB=N>W^3-<8=3AZQ#+&DD znap!$rDu-T1i*cbI2HlTBPDG_Nil0PGBd4YM!nW`BSW6UxbA+Ea8~^pO{zMIezf1h zX$C-~-(vtWbL>jHE0^Cf%t?YrO9MI9##yQY#miw?pxwq6g9^*n`9 zsG$Q$SFfL-v2nrJMU08YC1iBZ160*gviuODFfn)e^088ae|`Mg)1O-qhoYaF{TULJ z4A6nAW5Dp6RUV{vfKm>dkEQ#6*K^zsupk2q+Ea4=oYE*vUp*jrbJ(W)8^E;x12P5j A&;S4c literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/images/tablet.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/images/tablet.png new file mode 100644 index 0000000000000000000000000000000000000000..fa871f54035fcd0bb0f7f2068d2b2ed4e5e0e0cf GIT binary patch literal 2505 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 + + + + Nested Tabs - jQuery EasyUI Demo + + + + + + + +

              Nested Tabs

              +

              The tab panel can contain sub tabs or other components.

              +
              +
              +
              +
              +
              Content 1
              +
              Content 2
              +
              Content 3
              +
              +
              +
              +
              + +
              +
              + + + + + + + + + + + + + + + + + + + + +
              Title1Title2Title3
              d11d12d13
              d21d22d23
              +
              +
              + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/striptools.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/striptools.html new file mode 100644 index 0000000..83e6ba0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/striptools.html @@ -0,0 +1,39 @@ + + + + + Tabs Strip Tools - jQuery EasyUI Demo + + + + + + + +

              Tabs Strip Tools

              +

              Click the mini-buttons on the tab strip to perform actions.

              +
              +
              +
              +

              jQuery EasyUI framework helps you build your web pages easily.

              +
                +
              • easyui is a collection of user-interface plugin based on jQuery.
              • +
              • easyui provides essential functionality for building modem, interactive, javascript applications.
              • +
              • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
              • +
              • complete framework for HTML5 web page.
              • +
              • easyui save your time and scales while developing your products.
              • +
              • easyui is very easy but powerful.
              • +
              +
              +
              + This is the help content. +
              +
              +
              + + + +
              + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabimage.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabimage.html new file mode 100644 index 0000000..e9df65d --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabimage.html @@ -0,0 +1,41 @@ + + + + + Tabs with Images - jQuery EasyUI Demo + + + + + + + +

              Tabs with Images

              +

              The tab strip can display big images.

              +
              +
              +
              +

              A modem (modulator-demodulator) is a device that modulates an analog carrier signal to encode digital information, and also demodulates such a carrier signal to decode the transmitted information.

              +
              +
              +

              In computing, an image scanner—often abbreviated to just scanner—is a device that optically scans images, printed text, handwriting, or an object, and converts it to a digital image.

              +
              +
              +

              A personal digital assistant (PDA), also known as a palmtop computer, or personal data assistant, is a mobile device that functions as a personal information manager. PDAs are largely considered obsolete with the widespread adoption of smartphones.

              +
              +
              +

              A tablet computer, or simply tablet, is a one-piece mobile computer. Devices typically have a touchscreen, with finger or stylus gestures replacing the conventional computer mouse.

              +
              +
              + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabposition.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabposition.html new file mode 100644 index 0000000..9f1bc19 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabposition.html @@ -0,0 +1,45 @@ + + + + + Tab Position - jQuery EasyUI Demo + + + + + + + +

              Tab Position

              +

              Click the 'position' drop-down list and select an item to change the tab position.

              +
              + Position: + +
              +
              +
              +

              jQuery EasyUI framework helps you build your web pages easily.

              +
                +
              • easyui is a collection of user-interface plugin based on jQuery.
              • +
              • easyui provides essential functionality for building modem, interactive, javascript applications.
              • +
              • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
              • +
              • complete framework for HTML5 web page.
              • +
              • easyui save your time and scales while developing your products.
              • +
              • easyui is very easy but powerful.
              • +
              +
              +
              +
                +
                +
                + This is the help content. +
                +
                + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabstools.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabstools.html new file mode 100644 index 0000000..48bdda8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tabstools.html @@ -0,0 +1,41 @@ + + + + + Tabs Tools - jQuery EasyUI Demo + + + + + + + +

                Tabs Tools

                +

                Click the buttons on the top right of tabs header to add or remove tab panel.

                +
                +
                +
                +
                + + +
                + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tree_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tree_data1.json new file mode 100644 index 0000000..83fb0d6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tabs/tree_data1.json @@ -0,0 +1,49 @@ +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/actions.html new file mode 100644 index 0000000..62a70bf --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/actions.html @@ -0,0 +1,38 @@ + + + + + TimeSpinner Actions - jQuery EasyUI Demo + + + + + + + +

                TimeSpinner Actions

                +

                Click the buttons below to perform actions.

                + + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/basic.html new file mode 100644 index 0000000..8c32d30 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/basic.html @@ -0,0 +1,18 @@ + + + + + Basic TimeSpinner - jQuery EasyUI Demo + + + + + + + +

                Basic TimeSpinner

                +

                Click spin button to adjust time.

                +
                + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/range.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/range.html new file mode 100644 index 0000000..63bbf55 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/timespinner/range.html @@ -0,0 +1,20 @@ + + + + + Time Range - jQuery EasyUI Demo + + + + + + + +

                Time Range

                +

                The time value is constrained in specified range.

                +
                + From 08:30 to 18:00 +
                + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/_content.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/_content.html new file mode 100644 index 0000000..f7b8e2e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

                Here is the content loaded via AJAX.

                +
                  +
                • easyui is a collection of user-interface plugin based on jQuery.
                • +
                • easyui provides essential functionality for building modern, interactive, javascript applications.
                • +
                • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                • +
                • complete framework for HTML5 web page.
                • +
                • easyui save your time and scales while developing your products.
                • +
                • easyui is very easy but powerful.
                • +
                + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/_dialog.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/_dialog.html new file mode 100644 index 0000000..2c1b464 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/_dialog.html @@ -0,0 +1,23 @@ + + + + + Dialog Content + + +
                +
                +
                User Name:
                + +
                +
                +
                Password:
                + +
                +
                + Login + Cancel +
                +
                + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/ajax.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/ajax.html new file mode 100644 index 0000000..2de45de --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/ajax.html @@ -0,0 +1,32 @@ + + + + + Ajax Tooltip - jQuery EasyUI Demo + + + + + + + +

                Ajax Tooltip

                +

                The tooltip content can be loaded via AJAX.

                +
                + Hove me to display tooltip content via AJAX. + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/basic.html new file mode 100644 index 0000000..b9ad0e0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/basic.html @@ -0,0 +1,20 @@ + + + + + Basic Tooltip - jQuery EasyUI Demo + + + + + + + +

                Basic Tooltip

                +

                Hover the links to display tooltip message.

                +
                +

                The tooltip can use each elements title attribute. + Hover me to display tooltip. +

                + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/customcontent.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/customcontent.html new file mode 100644 index 0000000..3e1ce97 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/customcontent.html @@ -0,0 +1,32 @@ + + + + + Custom Tooltip Content - jQuery EasyUI Demo + + + + + + + +

                Custom Tooltip Content

                +

                Access to each elements attribute to get the tooltip content.

                +
                +
                +
                +
                + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/customstyle.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/customstyle.html new file mode 100644 index 0000000..b5c8f3e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/customstyle.html @@ -0,0 +1,52 @@ + + + + + Custom Tooltip Style - jQuery EasyUI Demo + + + + + + + +

                Custom Tooltip Style

                +

                This sample shows how to change the tooltip style.

                +
                +
                +
                Hover Me
                +
                +
                +
                Hover Me
                +
                + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/position.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/position.html new file mode 100644 index 0000000..ac97d67 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/position.html @@ -0,0 +1,34 @@ + + + + + Tooltip Position - jQuery EasyUI Demo + + + + + + + +

                Tooltip Position

                +

                Click the drop-down list below to change where the tooltip appears.

                +
                + Select position: + +
                +
                Hover Me
                +
                + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/toolbar.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/toolbar.html new file mode 100644 index 0000000..ac1dff7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/toolbar.html @@ -0,0 +1,40 @@ + + + + + Tooltip as Toolbar - jQuery EasyUI Demo + + + + + + + +

                Tooltip as Toolbar

                +

                This sample shows how to create a tooltip style toolbar.

                +
                +
                +

                Hover me to display toolbar.

                +
                +
                +
                + + + + + +
                +
                + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/tooltipdialog.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/tooltipdialog.html new file mode 100644 index 0000000..caee524 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tooltip/tooltipdialog.html @@ -0,0 +1,44 @@ + + + + + Tooltip Dialog - jQuery EasyUI Demo + + + + + + + +

                Tooltip Dialog

                +

                This sample shows how to create a tooltip dialog.

                +
                +
                +

                Click here to see the tooltip dialog. +

                + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/actions.html new file mode 100644 index 0000000..b5e2d4b --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/actions.html @@ -0,0 +1,47 @@ + + + + + Tree Actions - jQuery EasyUI Demo + + + + + + + +

                Tree Actions

                +

                Click the buttons below to perform actions.

                + +
                +
                  +
                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/animation.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/animation.html new file mode 100644 index 0000000..d7ea6cc --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/animation.html @@ -0,0 +1,20 @@ + + + + + Animation Tree - jQuery EasyUI Demo + + + + + + + +

                  Animation Tree

                  +

                  Apply 'animate' property to true to enable animation effect.

                  +
                  +
                  +
                    +
                    + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/basic.html new file mode 100644 index 0000000..9d937a7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/basic.html @@ -0,0 +1,53 @@ + + + + + Basic Tree - jQuery EasyUI Demo + + + + + + + +

                    Basic Tree

                    +

                    Click the arrow on the left to expand or collapse nodes.

                    +
                    +
                    +
                      +
                    • + My Documents +
                        +
                      • + Photos +
                          +
                        • + Friend +
                        • +
                        • + Wife +
                        • +
                        • + Company +
                        • +
                        +
                      • +
                      • + Program Files +
                          +
                        • Intel
                        • +
                        • Java
                        • +
                        • Microsoft Office
                        • +
                        • Games
                        • +
                        +
                      • +
                      • index.html
                      • +
                      • about.html
                      • +
                      • welcome.html
                      • +
                      +
                    • +
                    +
                    + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/checkbox.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/checkbox.html new file mode 100644 index 0000000..734266e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/checkbox.html @@ -0,0 +1,37 @@ + + + + + CheckBox Tree - jQuery EasyUI Demo + + + + + + + +

                    CheckBox Tree

                    +

                    Tree nodes with check boxes.

                    + +
                    + CascadeCheck + OnlyLeafCheck +
                    +
                    +
                      +
                      + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/contextmenu.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/contextmenu.html new file mode 100644 index 0000000..67f14d0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/contextmenu.html @@ -0,0 +1,65 @@ + + + + + Tree Context Menu - jQuery EasyUI Demo + + + + + + + +

                      Tree Context Menu

                      +

                      Right click on a node to display context menu.

                      +
                      +
                      +
                        +
                        +
                        +
                        Append
                        +
                        Remove
                        + +
                        Expand
                        +
                        Collapse
                        +
                        + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/dnd.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/dnd.html new file mode 100644 index 0000000..fdf4c1f --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/dnd.html @@ -0,0 +1,20 @@ + + + + + Drag Drop Tree Nodes - jQuery EasyUI Demo + + + + + + + +

                        Drag Drop Tree Nodes

                        +

                        Press mouse down and drag a node to another position.

                        +
                        +
                        +
                          +
                          + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/editable.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/editable.html new file mode 100644 index 0000000..afbb8c6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/editable.html @@ -0,0 +1,27 @@ + + + + + Editable Tree - jQuery EasyUI Demo + + + + + + + +

                          Editable Tree

                          +

                          Click the node to begin edit, press enter key to stop edit or esc key to cancel edit.

                          +
                          +
                          +
                            +
                            + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/formatting.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/formatting.html new file mode 100644 index 0000000..e83d180 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/formatting.html @@ -0,0 +1,32 @@ + + + + + Formatting Tree Nodes - jQuery EasyUI Demo + + + + + + + +

                            Formatting Tree Nodes

                            +

                            This example shows how to display extra information on nodes.

                            +
                            +
                            +
                              +
                            +
                            + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/icons.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/icons.html new file mode 100644 index 0000000..c50df79 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/icons.html @@ -0,0 +1,20 @@ + + + + + Tree Node Icons - jQuery EasyUI Demo + + + + + + + +

                            Tree Node Icons

                            +

                            This sample illustrates how to add icons to tree node.

                            +
                            +
                            +
                              +
                              + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/lazyload.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/lazyload.html new file mode 100644 index 0000000..014b255 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/lazyload.html @@ -0,0 +1,82 @@ + + + + + Lazy Load Tree Nodes - jQuery EasyUI Demo + + + + + + + +

                              Lazy Load Tree Nodes

                              +

                              Get full hierarchical tree data but lazy load nodes level by level.

                              +
                              +
                              +
                                +
                                + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/lines.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/lines.html new file mode 100644 index 0000000..820ac44 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/lines.html @@ -0,0 +1,20 @@ + + + + + Tree Lines - jQuery EasyUI Demo + + + + + + + +

                                Tree Lines

                                +

                                This sample shows how to show tree lines.

                                +
                                +
                                +
                                  +
                                  + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/tree_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/tree_data1.json new file mode 100644 index 0000000..83fb0d6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/tree_data1.json @@ -0,0 +1,49 @@ +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/tree_data2.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/tree_data2.json new file mode 100644 index 0000000..14e3429 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/tree/tree_data2.json @@ -0,0 +1,61 @@ +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "state":"closed", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java" + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games" + }] + },{ + "id":16, + "text":"Actions", + "children":[{ + "text":"Add", + "iconCls":"icon-add" + },{ + "text":"Remove", + "iconCls":"icon-remove" + },{ + "text":"Save", + "iconCls":"icon-save" + },{ + "text":"Search", + "iconCls":"icon-search" + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/actions.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/actions.html new file mode 100644 index 0000000..31430a5 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/actions.html @@ -0,0 +1,64 @@ + + + + + TreeGrid Actions - jQuery EasyUI Demo + + + + + + + +

                                  TreeGrid Actions

                                  +

                                  Click the buttons below to perform actions.

                                  + + + + + + + + + + + +
                                  Task NamePersonsBegin DateEnd DateProgress
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/basic.html new file mode 100644 index 0000000..7daefeb --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/basic.html @@ -0,0 +1,34 @@ + + + + + Basic TreeGrid - jQuery EasyUI Demo + + + + + + + +

                                  Basic TreeGrid

                                  +

                                  TreeGrid allows you to expand or collapse group rows.

                                  +
                                  + + + + + + + + +
                                  NameSizeModified Date
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/clientpagination.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/clientpagination.html new file mode 100644 index 0000000..a8ae3c6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/clientpagination.html @@ -0,0 +1,92 @@ + + + + + Client Side Pagination in TreeGrid - jQuery EasyUI Demo + + + + + + + +

                                  Client Side Pagination in TreeGrid

                                  +

                                  This sample shows how to implement client side pagination in TreeGrid.

                                  +
                                  + + + + + + + + + + +
                                  Task NamePersonsBegin DateEnd DateProgress
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/contextmenu.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/contextmenu.html new file mode 100644 index 0000000..eebf20f --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/contextmenu.html @@ -0,0 +1,104 @@ + + + + + TreeGrid ContextMenu - jQuery EasyUI Demo + + + + + + + +

                                  TreeGrid ContextMenu

                                  +

                                  Right click to display the context menu.

                                  +
                                  + + + + + + + + + + +
                                  Task NamePersonsBegin DateEnd DateProgress
                                  +
                                  +
                                  Append
                                  +
                                  Remove
                                  + +
                                  Collapse
                                  +
                                  Expand
                                  +
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/editable.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/editable.html new file mode 100644 index 0000000..30713e6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/editable.html @@ -0,0 +1,93 @@ + + + + + Editable TreeGrid - jQuery EasyUI Demo + + + + + + + +

                                  Editable TreeGrid

                                  +

                                  Select one node and click edit button to perform editing.

                                  +
                                  + Edit + Save + Cancel +
                                  + + + + + + + + + + +
                                  Task NamePersonsBegin DateEnd DateProgress
                                  + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/footer.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/footer.html new file mode 100644 index 0000000..5d1cff9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/footer.html @@ -0,0 +1,55 @@ + + + + + TreeGrid with Footer - jQuery EasyUI Demo + + + + + + + +

                                  TreeGrid with Footer

                                  +

                                  Show summary information on TreeGrid footer.

                                  +
                                  +
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/reports.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/reports.html new file mode 100644 index 0000000..94f27f4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/reports.html @@ -0,0 +1,49 @@ + + + + + Reports using TreeGrid - jQuery EasyUI Demo + + + + + + + +

                                  Reports using TreeGrid

                                  +

                                  Using TreeGrid to show complex reports.

                                  +
                                  + + + + + + + + + + + + + + + + + + + + + + +
                                  Region
                                  20092010
                                  1st qrt.2st qrt.3st qrt.4st qrt.1st qrt.2st qrt.3st qrt.4st qrt.
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data1.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data1.json new file mode 100644 index 0000000..0313d46 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data1.json @@ -0,0 +1,73 @@ +[{ + "id":1, + "name":"C", + "size":"", + "date":"02/19/2010", + "children":[{ + "id":2, + "name":"Program Files", + "size":"120 MB", + "date":"03/20/2010", + "children":[{ + "id":21, + "name":"Java", + "size":"", + "date":"01/13/2010", + "state":"closed", + "children":[{ + "id":211, + "name":"java.exe", + "size":"142 KB", + "date":"01/13/2010" + },{ + "id":212, + "name":"jawt.dll", + "size":"5 KB", + "date":"01/13/2010" + }] + },{ + "id":22, + "name":"MySQL", + "size":"", + "date":"01/13/2010", + "state":"closed", + "children":[{ + "id":221, + "name":"my.ini", + "size":"10 KB", + "date":"02/26/2009" + },{ + "id":222, + "name":"my-huge.ini", + "size":"5 KB", + "date":"02/26/2009" + },{ + "id":223, + "name":"my-large.ini", + "size":"5 KB", + "date":"02/26/2009" + }] + }] + },{ + "id":3, + "name":"eclipse", + "size":"", + "date":"01/20/2010", + "children":[{ + "id":31, + "name":"eclipse.exe", + "size":"56 KB", + "date":"05/19/2009" + },{ + "id":32, + "name":"eclipse.ini", + "size":"1 KB", + "date":"04/20/2010" + },{ + "id":33, + "name":"notice.html", + "size":"7 KB", + "date":"03/17/2005" + }] + }] +}] \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data2.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data2.json new file mode 100644 index 0000000..f917507 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data2.json @@ -0,0 +1,11 @@ +{"total":7,"rows":[ + {"id":1,"name":"All Tasks","begin":"3/4/2010","end":"3/20/2010","progress":60,"iconCls":"icon-ok"}, + {"id":2,"name":"Designing","begin":"3/4/2010","end":"3/10/2010","progress":100,"_parentId":1,"state":"closed"}, + {"id":21,"name":"Database","persons":2,"begin":"3/4/2010","end":"3/6/2010","progress":100,"_parentId":2}, + {"id":22,"name":"UML","persons":1,"begin":"3/7/2010","end":"3/8/2010","progress":100,"_parentId":2}, + {"id":23,"name":"Export Document","persons":1,"begin":"3/9/2010","end":"3/10/2010","progress":100,"_parentId":2}, + {"id":3,"name":"Coding","persons":2,"begin":"3/11/2010","end":"3/18/2010","progress":80}, + {"id":4,"name":"Testing","persons":1,"begin":"3/19/2010","end":"3/20/2010","progress":20} +],"footer":[ + {"name":"Total Persons:","persons":7,"iconCls":"icon-sum"} +]} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data3.json b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data3.json new file mode 100644 index 0000000..0475c38 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/treegrid/treegrid_data3.json @@ -0,0 +1,13 @@ +{"total":9,"rows":[ + {"id":1,"region":"Wyoming"}, + {"id":11,"region":"Albin","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":12,"region":"Canon","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":13,"region":"Egbert","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":2,"region":"Washington"}, + {"id":21,"region":"Bellingham","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":22,"region":"Chehalis","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":23,"region":"Ellensburg","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":24,"region":"Monroe","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2} +],"footer":[ + {"region":"Total","f1":14000,"f2":12600,"f3":13321,"f4":15281,"f5":14931,"f6":13461,"f7":14126,"f8":12866} +]} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/validatebox/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/validatebox/basic.html new file mode 100644 index 0000000..701bca2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/validatebox/basic.html @@ -0,0 +1,50 @@ + + + + + Basic ValidateBox - jQuery EasyUI Demo + + + + + + + +

                                  Basic ValidateBox

                                  +

                                  It's easy to add validate logic to a input box.

                                  +
                                  +
                                  + + + + + + + + + + + + + + + + + + + + + +
                                  User Name:
                                  Email:
                                  Birthday:
                                  URL:
                                  Phone:
                                  +
                                  + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/validatebox/customtooltip.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/validatebox/customtooltip.html new file mode 100644 index 0000000..8574793 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/validatebox/customtooltip.html @@ -0,0 +1,95 @@ + + + + + Custom ValidateBox Tooltip - jQuery EasyUI Demo + + + + + + + +

                                  Custom ValidateBox Tooltip

                                  +

                                  This sample shows how to display another tooltip message on a valid textbox.

                                  +
                                  +
                                  + + + + + + + + + + + + + + + + + + + + + +
                                  User Name:
                                  Email:
                                  Birthday:
                                  URL:
                                  Phone:
                                  +
                                  + + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/basic.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/basic.html new file mode 100644 index 0000000..4c3c551 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/basic.html @@ -0,0 +1,23 @@ + + + + + Basic Window - jQuery EasyUI Demo + + + + + + + +

                                  Basic Window

                                  +

                                  Window can be dragged freely on screen.

                                  +
                                  + Open + Close +
                                  +
                                  + The window content. +
                                  + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/customtools.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/customtools.html new file mode 100644 index 0000000..1a22ad1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/customtools.html @@ -0,0 +1,30 @@ + + + + + Custom Window Tools - jQuery EasyUI Demo + + + + + + + +

                                  Custom Window Tools

                                  +

                                  Click the right top buttons to perform actions.

                                  +
                                  + Open + Close +
                                  +
                                  + The window content. +
                                  +
                                  + + + + +
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/inlinewindow.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/inlinewindow.html new file mode 100644 index 0000000..8335880 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/inlinewindow.html @@ -0,0 +1,26 @@ + + + + + Inline Window - jQuery EasyUI Demo + + + + + + + +

                                  Inline Window

                                  +

                                  The inline window stay inside its parent.

                                  +
                                  + Open + Close +
                                  +
                                  +
                                  + This window stay inside its parent +
                                  +
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/modalwindow.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/modalwindow.html new file mode 100644 index 0000000..59e79ca --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/modalwindow.html @@ -0,0 +1,24 @@ + + + + + Modal Window - jQuery EasyUI Demo + + + + + + + +

                                  Modal Window

                                  +

                                  Click the open button below to open the modal window.

                                  +
                                  + Open + Close +
                                  +
                                  + The window content. +
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/windowlayout.html b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/windowlayout.html new file mode 100644 index 0000000..7311ef6 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/demo/window/windowlayout.html @@ -0,0 +1,33 @@ + + + + + Window Layout - jQuery EasyUI Demo + + + + + + + +

                                  Window Layout

                                  +

                                  Using layout on window.

                                  +
                                  + Open + Close +
                                  +
                                  +
                                  +
                                  +
                                  + jQuery EasyUI framework help you build your web page easily. +
                                  +
                                  + Ok + Cancel +
                                  +
                                  +
                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/easyloader.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/easyloader.js new file mode 100644 index 0000000..ee2a056 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/easyloader.js @@ -0,0 +1,190 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function(){ +var _1={draggable:{js:"jquery.draggable.js"},droppable:{js:"jquery.droppable.js"},resizable:{js:"jquery.resizable.js"},linkbutton:{js:"jquery.linkbutton.js",css:"linkbutton.css"},progressbar:{js:"jquery.progressbar.js",css:"progressbar.css"},tooltip:{js:"jquery.tooltip.js",css:"tooltip.css"},pagination:{js:"jquery.pagination.js",css:"pagination.css",dependencies:["linkbutton"]},datagrid:{js:"jquery.datagrid.js",css:"datagrid.css",dependencies:["panel","resizable","linkbutton","pagination"]},treegrid:{js:"jquery.treegrid.js",css:"tree.css",dependencies:["datagrid"]},propertygrid:{js:"jquery.propertygrid.js",css:"propertygrid.css",dependencies:["datagrid"]},panel:{js:"jquery.panel.js",css:"panel.css"},window:{js:"jquery.window.js",css:"window.css",dependencies:["resizable","draggable","panel"]},dialog:{js:"jquery.dialog.js",css:"dialog.css",dependencies:["linkbutton","window"]},messager:{js:"jquery.messager.js",css:"messager.css",dependencies:["linkbutton","window","progressbar"]},layout:{js:"jquery.layout.js",css:"layout.css",dependencies:["resizable","panel"]},form:{js:"jquery.form.js"},menu:{js:"jquery.menu.js",css:"menu.css"},tabs:{js:"jquery.tabs.js",css:"tabs.css",dependencies:["panel","linkbutton"]},menubutton:{js:"jquery.menubutton.js",css:"menubutton.css",dependencies:["linkbutton","menu"]},splitbutton:{js:"jquery.splitbutton.js",css:"splitbutton.css",dependencies:["menubutton"]},accordion:{js:"jquery.accordion.js",css:"accordion.css",dependencies:["panel"]},calendar:{js:"jquery.calendar.js",css:"calendar.css"},combo:{js:"jquery.combo.js",css:"combo.css",dependencies:["panel","validatebox"]},combobox:{js:"jquery.combobox.js",css:"combobox.css",dependencies:["combo"]},combotree:{js:"jquery.combotree.js",dependencies:["combo","tree"]},combogrid:{js:"jquery.combogrid.js",dependencies:["combo","datagrid"]},validatebox:{js:"jquery.validatebox.js",css:"validatebox.css",dependencies:["tooltip"]},numberbox:{js:"jquery.numberbox.js",dependencies:["validatebox"]},searchbox:{js:"jquery.searchbox.js",css:"searchbox.css",dependencies:["menubutton"]},spinner:{js:"jquery.spinner.js",css:"spinner.css",dependencies:["validatebox"]},numberspinner:{js:"jquery.numberspinner.js",dependencies:["spinner","numberbox"]},timespinner:{js:"jquery.timespinner.js",dependencies:["spinner"]},tree:{js:"jquery.tree.js",css:"tree.css",dependencies:["draggable","droppable"]},datebox:{js:"jquery.datebox.js",css:"datebox.css",dependencies:["calendar","combo"]},datetimebox:{js:"jquery.datetimebox.js",dependencies:["datebox","timespinner"]},slider:{js:"jquery.slider.js",dependencies:["draggable"]},tooltip:{js:"jquery.tooltip.js"},parser:{js:"jquery.parser.js"}}; +var _2={"af":"easyui-lang-af.js","ar":"easyui-lang-ar.js","bg":"easyui-lang-bg.js","ca":"easyui-lang-ca.js","cs":"easyui-lang-cs.js","cz":"easyui-lang-cz.js","da":"easyui-lang-da.js","de":"easyui-lang-de.js","el":"easyui-lang-el.js","en":"easyui-lang-en.js","es":"easyui-lang-es.js","fr":"easyui-lang-fr.js","it":"easyui-lang-it.js","jp":"easyui-lang-jp.js","nl":"easyui-lang-nl.js","pl":"easyui-lang-pl.js","pt_BR":"easyui-lang-pt_BR.js","ru":"easyui-lang-ru.js","sv_SE":"easyui-lang-sv_SE.js","tr":"easyui-lang-tr.js","zh_CN":"easyui-lang-zh_CN.js","zh_TW":"easyui-lang-zh_TW.js"}; +var _3={}; +function _4(_5,_6){ +var _7=false; +var _8=document.createElement("script"); +_8.type="text/javascript"; +_8.language="javascript"; +_8.src=_5; +_8.onload=_8.onreadystatechange=function(){ +if(!_7&&(!_8.readyState||_8.readyState=="loaded"||_8.readyState=="complete")){ +_7=true; +_8.onload=_8.onreadystatechange=null; +if(_6){ +_6.call(_8); +} +} +}; +document.getElementsByTagName("head")[0].appendChild(_8); +}; +function _9(_a,_b){ +_4(_a,function(){ +document.getElementsByTagName("head")[0].removeChild(this); +if(_b){ +_b(); +} +}); +}; +function _c(_d,_e){ +var _f=document.createElement("link"); +_f.rel="stylesheet"; +_f.type="text/css"; +_f.media="screen"; +_f.href=_d; +document.getElementsByTagName("head")[0].appendChild(_f); +if(_e){ +_e.call(_f); +} +}; +function _10(_11,_12){ +_3[_11]="loading"; +var _13=_1[_11]; +var _14="loading"; +var _15=(easyloader.css&&_13["css"])?"loading":"loaded"; +if(easyloader.css&&_13["css"]){ +if(/^http/i.test(_13["css"])){ +var url=_13["css"]; +}else{ +var url=easyloader.base+"themes/"+easyloader.theme+"/"+_13["css"]; +} +_c(url,function(){ +_15="loaded"; +if(_14=="loaded"&&_15=="loaded"){ +_16(); +} +}); +} +if(/^http/i.test(_13["js"])){ +var url=_13["js"]; +}else{ +var url=easyloader.base+"plugins/"+_13["js"]; +} +_4(url,function(){ +_14="loaded"; +if(_14=="loaded"&&_15=="loaded"){ +_16(); +} +}); +function _16(){ +_3[_11]="loaded"; +easyloader.onProgress(_11); +if(_12){ +_12(); +} +}; +}; +function _17(_18,_19){ +var mm=[]; +var _1a=false; +if(typeof _18=="string"){ +add(_18); +}else{ +for(var i=0;i<_18.length;i++){ +add(_18[i]); +} +} +function add(_1b){ +if(!_1[_1b]){ +return; +} +var d=_1[_1b]["dependencies"]; +if(d){ +for(var i=0;i=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
                                  a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
                                  t
                                  ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
                                  ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;jq&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;ai){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="
                                  ",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="

                                  ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
                                  ","
                                  "],thead:[1,"","
                                  "],tr:[2,"","
                                  "],td:[3,"","
                                  "],col:[2,"","
                                  "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
                                  ","
                                  "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
                                  ").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/jquery.easyui.min.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/jquery.easyui.min.js new file mode 100644 index 0000000..c53bd79 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/jquery.easyui.min.js @@ -0,0 +1,12873 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +$.parser={auto:true,onComplete:function(_1){ +},plugins:["draggable","droppable","resizable","pagination","tooltip","linkbutton","menu","menubutton","splitbutton","progressbar","tree","combobox","combotree","combogrid","numberbox","validatebox","searchbox","numberspinner","timespinner","calendar","datebox","datetimebox","slider","layout","panel","datagrid","propertygrid","treegrid","tabs","accordion","window","dialog"],parse:function(_2){ +var aa=[]; +for(var i=0;i<$.parser.plugins.length;i++){ +var _3=$.parser.plugins[i]; +var r=$(".easyui-"+_3,_2); +if(r.length){ +if(r[_3]){ +r[_3](); +}else{ +aa.push({name:_3,jq:r}); +} +} +} +if(aa.length&&window.easyloader){ +var _4=[]; +for(var i=0;i
                                  ").appendTo("body"); +d.width(100); +$._boxModel=parseInt(d.width())==100; +d.remove(); +if(!window.easyloader&&$.parser.auto){ +$.parser.parse(); +} +}); +$.fn._outerWidth=function(_c){ +if(_c==undefined){ +if(this[0]==window){ +return this.width()||document.body.clientWidth; +} +return this.outerWidth()||0; +} +return this.each(function(){ +if($._boxModel){ +$(this).width(_c-($(this).outerWidth()-$(this).width())); +}else{ +$(this).width(_c); +} +}); +}; +$.fn._outerHeight=function(_d){ +if(_d==undefined){ +if(this[0]==window){ +return this.height()||document.body.clientHeight; +} +return this.outerHeight()||0; +} +return this.each(function(){ +if($._boxModel){ +$(this).height(_d-($(this).outerHeight()-$(this).height())); +}else{ +$(this).height(_d); +} +}); +}; +$.fn._scrollLeft=function(_e){ +if(_e==undefined){ +return this.scrollLeft(); +}else{ +return this.each(function(){ +$(this).scrollLeft(_e); +}); +} +}; +$.fn._propAttr=$.fn.prop||$.fn.attr; +$.fn._fit=function(_f){ +_f=_f==undefined?true:_f; +var t=this[0]; +var p=(t.tagName=="BODY"?t:this.parent()[0]); +var _10=p.fcount||0; +if(_f){ +if(!t.fitted){ +t.fitted=true; +p.fcount=_10+1; +$(p).addClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").addClass("panel-fit"); +} +} +}else{ +if(t.fitted){ +t.fitted=false; +p.fcount=_10-1; +if(p.fcount==0){ +$(p).removeClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").removeClass("panel-fit"); +} +} +} +} +return {width:$(p).width(),height:$(p).height()}; +}; +})(jQuery); +(function($){ +var _11=null; +var _12=null; +var _13=false; +function _14(e){ +if(e.touches.length!=1){ +return; +} +if(!_13){ +_13=true; +dblClickTimer=setTimeout(function(){ +_13=false; +},500); +}else{ +clearTimeout(dblClickTimer); +_13=false; +_15(e,"dblclick"); +} +_11=setTimeout(function(){ +_15(e,"contextmenu",3); +},1000); +_15(e,"mousedown"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _16(e){ +if(e.touches.length!=1){ +return; +} +if(_11){ +clearTimeout(_11); +} +_15(e,"mousemove"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _17(e){ +if(_11){ +clearTimeout(_11); +} +_15(e,"mouseup"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _15(e,_18,_19){ +var _1a=new $.Event(_18); +_1a.pageX=e.changedTouches[0].pageX; +_1a.pageY=e.changedTouches[0].pageY; +_1a.which=_19||1; +$(e.target).trigger(_1a); +}; +if(document.addEventListener){ +document.addEventListener("touchstart",_14,true); +document.addEventListener("touchmove",_16,true); +document.addEventListener("touchend",_17,true); +} +})(jQuery); +(function($){ +function _1b(e){ +var _1c=$.data(e.data.target,"draggable"); +var _1d=_1c.options; +var _1e=_1c.proxy; +var _1f=e.data; +var _20=_1f.startLeft+e.pageX-_1f.startX; +var top=_1f.startTop+e.pageY-_1f.startY; +if(_1e){ +if(_1e.parent()[0]==document.body){ +if(_1d.deltaX!=null&&_1d.deltaX!=undefined){ +_20=e.pageX+_1d.deltaX; +}else{ +_20=e.pageX-e.data.offsetWidth; +} +if(_1d.deltaY!=null&&_1d.deltaY!=undefined){ +top=e.pageY+_1d.deltaY; +}else{ +top=e.pageY-e.data.offsetHeight; +} +}else{ +if(_1d.deltaX!=null&&_1d.deltaX!=undefined){ +_20+=e.data.offsetWidth+_1d.deltaX; +} +if(_1d.deltaY!=null&&_1d.deltaY!=undefined){ +top+=e.data.offsetHeight+_1d.deltaY; +} +} +} +if(e.data.parent!=document.body){ +_20+=$(e.data.parent).scrollLeft(); +top+=$(e.data.parent).scrollTop(); +} +if(_1d.axis=="h"){ +_1f.left=_20; +}else{ +if(_1d.axis=="v"){ +_1f.top=top; +}else{ +_1f.left=_20; +_1f.top=top; +} +} +}; +function _21(e){ +var _22=$.data(e.data.target,"draggable"); +var _23=_22.options; +var _24=_22.proxy; +if(!_24){ +_24=$(e.data.target); +} +_24.css({left:e.data.left,top:e.data.top}); +$("body").css("cursor",_23.cursor); +}; +function _25(e){ +$.fn.draggable.isDragging=true; +var _26=$.data(e.data.target,"draggable"); +var _27=_26.options; +var _28=$(".droppable").filter(function(){ +return e.data.target!=this; +}).filter(function(){ +var _29=$.data(this,"droppable").options.accept; +if(_29){ +return $(_29).filter(function(){ +return this==e.data.target; +}).length>0; +}else{ +return true; +} +}); +_26.droppables=_28; +var _2a=_26.proxy; +if(!_2a){ +if(_27.proxy){ +if(_27.proxy=="clone"){ +_2a=$(e.data.target).clone().insertAfter(e.data.target); +}else{ +_2a=_27.proxy.call(e.data.target,e.data.target); +} +_26.proxy=_2a; +}else{ +_2a=$(e.data.target); +} +} +_2a.css("position","absolute"); +_1b(e); +_21(e); +_27.onStartDrag.call(e.data.target,e); +return false; +}; +function _2b(e){ +var _2c=$.data(e.data.target,"draggable"); +_1b(e); +if(_2c.options.onDrag.call(e.data.target,e)!=false){ +_21(e); +} +var _2d=e.data.target; +_2c.droppables.each(function(){ +var _2e=$(this); +if(_2e.droppable("options").disabled){ +return; +} +var p2=_2e.offset(); +if(e.pageX>p2.left&&e.pageXp2.top&&e.pageYp2.left&&e.pageXp2.top&&e.pageY_43.options.edge; +}; +}); +}; +$.fn.draggable.methods={options:function(jq){ +return $.data(jq[0],"draggable").options; +},proxy:function(jq){ +return $.data(jq[0],"draggable").proxy; +},enable:function(jq){ +return jq.each(function(){ +$(this).draggable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).draggable({disabled:true}); +}); +}}; +$.fn.draggable.parseOptions=function(_48){ +var t=$(_48); +return $.extend({},$.parser.parseOptions(_48,["cursor","handle","axis",{"revert":"boolean","deltaX":"number","deltaY":"number","edge":"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.draggable.defaults={proxy:null,revert:false,cursor:"move",deltaX:null,deltaY:null,handle:null,disabled:false,edge:0,axis:null,onBeforeDrag:function(e){ +},onStartDrag:function(e){ +},onDrag:function(e){ +},onStopDrag:function(e){ +}}; +$.fn.draggable.isDragging=false; +})(jQuery); +(function($){ +function _49(_4a){ +$(_4a).addClass("droppable"); +$(_4a).bind("_dragenter",function(e,_4b){ +$.data(_4a,"droppable").options.onDragEnter.apply(_4a,[e,_4b]); +}); +$(_4a).bind("_dragleave",function(e,_4c){ +$.data(_4a,"droppable").options.onDragLeave.apply(_4a,[e,_4c]); +}); +$(_4a).bind("_dragover",function(e,_4d){ +$.data(_4a,"droppable").options.onDragOver.apply(_4a,[e,_4d]); +}); +$(_4a).bind("_drop",function(e,_4e){ +$.data(_4a,"droppable").options.onDrop.apply(_4a,[e,_4e]); +}); +}; +$.fn.droppable=function(_4f,_50){ +if(typeof _4f=="string"){ +return $.fn.droppable.methods[_4f](this,_50); +} +_4f=_4f||{}; +return this.each(function(){ +var _51=$.data(this,"droppable"); +if(_51){ +$.extend(_51.options,_4f); +}else{ +_49(this); +$.data(this,"droppable",{options:$.extend({},$.fn.droppable.defaults,$.fn.droppable.parseOptions(this),_4f)}); +} +}); +}; +$.fn.droppable.methods={options:function(jq){ +return $.data(jq[0],"droppable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).droppable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).droppable({disabled:true}); +}); +}}; +$.fn.droppable.parseOptions=function(_52){ +var t=$(_52); +return $.extend({},$.parser.parseOptions(_52,["accept"]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.droppable.defaults={accept:null,disabled:false,onDragEnter:function(e,_53){ +},onDragOver:function(e,_54){ +},onDragLeave:function(e,_55){ +},onDrop:function(e,_56){ +}}; +})(jQuery); +(function($){ +$.fn.resizable=function(_57,_58){ +if(typeof _57=="string"){ +return $.fn.resizable.methods[_57](this,_58); +} +function _59(e){ +var _5a=e.data; +var _5b=$.data(_5a.target,"resizable").options; +if(_5a.dir.indexOf("e")!=-1){ +var _5c=_5a.startWidth+e.pageX-_5a.startX; +_5c=Math.min(Math.max(_5c,_5b.minWidth),_5b.maxWidth); +_5a.width=_5c; +} +if(_5a.dir.indexOf("s")!=-1){ +var _5d=_5a.startHeight+e.pageY-_5a.startY; +_5d=Math.min(Math.max(_5d,_5b.minHeight),_5b.maxHeight); +_5a.height=_5d; +} +if(_5a.dir.indexOf("w")!=-1){ +var _5c=_5a.startWidth-e.pageX+_5a.startX; +_5c=Math.min(Math.max(_5c,_5b.minWidth),_5b.maxWidth); +_5a.width=_5c; +_5a.left=_5a.startLeft+_5a.startWidth-_5a.width; +} +if(_5a.dir.indexOf("n")!=-1){ +var _5d=_5a.startHeight-e.pageY+_5a.startY; +_5d=Math.min(Math.max(_5d,_5b.minHeight),_5b.maxHeight); +_5a.height=_5d; +_5a.top=_5a.startTop+_5a.startHeight-_5a.height; +} +}; +function _5e(e){ +var _5f=e.data; +var t=$(_5f.target); +t.css({left:_5f.left,top:_5f.top}); +if(t.outerWidth()!=_5f.width){ +t._outerWidth(_5f.width); +} +if(t.outerHeight()!=_5f.height){ +t._outerHeight(_5f.height); +} +}; +function _60(e){ +$.fn.resizable.isResizing=true; +$.data(e.data.target,"resizable").options.onStartResize.call(e.data.target,e); +return false; +}; +function _61(e){ +_59(e); +if($.data(e.data.target,"resizable").options.onResize.call(e.data.target,e)!=false){ +_5e(e); +} +return false; +}; +function _62(e){ +$.fn.resizable.isResizing=false; +_59(e,true); +_5e(e); +$.data(e.data.target,"resizable").options.onStopResize.call(e.data.target,e); +$(document).unbind(".resizable"); +$("body").css("cursor",""); +return false; +}; +return this.each(function(){ +var _63=null; +var _64=$.data(this,"resizable"); +if(_64){ +$(this).unbind(".resizable"); +_63=$.extend(_64.options,_57||{}); +}else{ +_63=$.extend({},$.fn.resizable.defaults,$.fn.resizable.parseOptions(this),_57||{}); +$.data(this,"resizable",{options:_63}); +} +if(_63.disabled==true){ +return; +} +$(this).bind("mousemove.resizable",{target:this},function(e){ +if($.fn.resizable.isResizing){ +return; +} +var dir=_65(e); +if(dir==""){ +$(e.data.target).css("cursor",""); +}else{ +$(e.data.target).css("cursor",dir+"-resize"); +} +}).bind("mouseleave.resizable",{target:this},function(e){ +$(e.data.target).css("cursor",""); +}).bind("mousedown.resizable",{target:this},function(e){ +var dir=_65(e); +if(dir==""){ +return; +} +function _66(css){ +var val=parseInt($(e.data.target).css(css)); +if(isNaN(val)){ +return 0; +}else{ +return val; +} +}; +var _67={target:e.data.target,dir:dir,startLeft:_66("left"),startTop:_66("top"),left:_66("left"),top:_66("top"),startX:e.pageX,startY:e.pageY,startWidth:$(e.data.target).outerWidth(),startHeight:$(e.data.target).outerHeight(),width:$(e.data.target).outerWidth(),height:$(e.data.target).outerHeight(),deltaWidth:$(e.data.target).outerWidth()-$(e.data.target).width(),deltaHeight:$(e.data.target).outerHeight()-$(e.data.target).height()}; +$(document).bind("mousedown.resizable",_67,_60); +$(document).bind("mousemove.resizable",_67,_61); +$(document).bind("mouseup.resizable",_67,_62); +$("body").css("cursor",dir+"-resize"); +}); +function _65(e){ +var tt=$(e.data.target); +var dir=""; +var _68=tt.offset(); +var _69=tt.outerWidth(); +var _6a=tt.outerHeight(); +var _6b=_63.edge; +if(e.pageY>_68.top&&e.pageY<_68.top+_6b){ +dir+="n"; +}else{ +if(e.pageY<_68.top+_6a&&e.pageY>_68.top+_6a-_6b){ +dir+="s"; +} +} +if(e.pageX>_68.left&&e.pageX<_68.left+_6b){ +dir+="w"; +}else{ +if(e.pageX<_68.left+_69&&e.pageX>_68.left+_69-_6b){ +dir+="e"; +} +} +var _6c=_63.handles.split(","); +for(var i=0;i<_6c.length;i++){ +var _6d=_6c[i].replace(/(^\s*)|(\s*$)/g,""); +if(_6d=="all"||_6d==dir){ +return dir; +} +} +return ""; +}; +}); +}; +$.fn.resizable.methods={options:function(jq){ +return $.data(jq[0],"resizable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:true}); +}); +}}; +$.fn.resizable.parseOptions=function(_6e){ +var t=$(_6e); +return $.extend({},$.parser.parseOptions(_6e,["handles",{minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number",edge:"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.resizable.defaults={disabled:false,handles:"n, e, s, w, ne, se, sw, nw, all",minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000,edge:5,onStartResize:function(e){ +},onResize:function(e){ +},onStopResize:function(e){ +}}; +$.fn.resizable.isResizing=false; +})(jQuery); +(function($){ +function _6f(_70){ +var _71=$.data(_70,"linkbutton").options; +var t=$(_70).empty(); +t.addClass("l-btn").removeClass("l-btn-plain l-btn-selected l-btn-plain-selected"); +t.removeClass("l-btn-small l-btn-medium l-btn-large").addClass("l-btn-"+_71.size); +if(_71.plain){ +t.addClass("l-btn-plain"); +} +if(_71.selected){ +t.addClass(_71.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +} +t.attr("group",_71.group||""); +t.attr("id",_71.id||""); +var _72=$("").appendTo(t); +if(_71.text){ +$("").html(_71.text).appendTo(_72); +}else{ +$(" ").appendTo(_72); +} +if(_71.iconCls){ +$(" ").addClass(_71.iconCls).appendTo(_72); +_72.addClass("l-btn-icon-"+_71.iconAlign); +} +t.unbind(".linkbutton").bind("focus.linkbutton",function(){ +if(!_71.disabled){ +$(this).addClass("l-btn-focus"); +} +}).bind("blur.linkbutton",function(){ +$(this).removeClass("l-btn-focus"); +}).bind("click.linkbutton",function(){ +if(!_71.disabled){ +if(_71.toggle){ +if(_71.selected){ +$(this).linkbutton("unselect"); +}else{ +$(this).linkbutton("select"); +} +} +_71.onClick.call(this); +} +return false; +}); +_73(_70,_71.selected); +_74(_70,_71.disabled); +}; +function _73(_75,_76){ +var _77=$.data(_75,"linkbutton").options; +if(_76){ +if(_77.group){ +$("a.l-btn[group=\""+_77.group+"\"]").each(function(){ +var o=$(this).linkbutton("options"); +if(o.toggle){ +$(this).removeClass("l-btn-selected l-btn-plain-selected"); +o.selected=false; +} +}); +} +$(_75).addClass(_77.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +_77.selected=true; +}else{ +if(!_77.group){ +$(_75).removeClass("l-btn-selected l-btn-plain-selected"); +_77.selected=false; +} +} +}; +function _74(_78,_79){ +var _7a=$.data(_78,"linkbutton"); +var _7b=_7a.options; +$(_78).removeClass("l-btn-disabled l-btn-plain-disabled"); +if(_79){ +_7b.disabled=true; +var _7c=$(_78).attr("href"); +if(_7c){ +_7a.href=_7c; +$(_78).attr("href","javascript:void(0)"); +} +if(_78.onclick){ +_7a.onclick=_78.onclick; +_78.onclick=null; +} +_7b.plain?$(_78).addClass("l-btn-disabled l-btn-plain-disabled"):$(_78).addClass("l-btn-disabled"); +}else{ +_7b.disabled=false; +if(_7a.href){ +$(_78).attr("href",_7a.href); +} +if(_7a.onclick){ +_78.onclick=_7a.onclick; +} +} +}; +$.fn.linkbutton=function(_7d,_7e){ +if(typeof _7d=="string"){ +return $.fn.linkbutton.methods[_7d](this,_7e); +} +_7d=_7d||{}; +return this.each(function(){ +var _7f=$.data(this,"linkbutton"); +if(_7f){ +$.extend(_7f.options,_7d); +}else{ +$.data(this,"linkbutton",{options:$.extend({},$.fn.linkbutton.defaults,$.fn.linkbutton.parseOptions(this),_7d)}); +$(this).removeAttr("disabled"); +} +_6f(this); +}); +}; +$.fn.linkbutton.methods={options:function(jq){ +return $.data(jq[0],"linkbutton").options; +},enable:function(jq){ +return jq.each(function(){ +_74(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_74(this,true); +}); +},select:function(jq){ +return jq.each(function(){ +_73(this,true); +}); +},unselect:function(jq){ +return jq.each(function(){ +_73(this,false); +}); +}}; +$.fn.linkbutton.parseOptions=function(_80){ +var t=$(_80); +return $.extend({},$.parser.parseOptions(_80,["id","iconCls","iconAlign","group","size",{plain:"boolean",toggle:"boolean",selected:"boolean"}]),{disabled:(t.attr("disabled")?true:undefined),text:$.trim(t.html()),iconCls:(t.attr("icon")||t.attr("iconCls"))}); +}; +$.fn.linkbutton.defaults={id:null,disabled:false,toggle:false,selected:false,group:null,plain:false,text:"",iconCls:null,iconAlign:"left",size:"small",onClick:function(){ +}}; +})(jQuery); +(function($){ +function _81(_82){ +var _83=$.data(_82,"pagination"); +var _84=_83.options; +var bb=_83.bb={}; +var _85=$(_82).addClass("pagination").html("
                                  "); +var tr=_85.find("tr"); +var aa=$.extend([],_84.layout); +if(!_84.showPageList){ +_86(aa,"list"); +} +if(!_84.showRefresh){ +_86(aa,"refresh"); +} +if(aa[0]=="sep"){ +aa.shift(); +} +if(aa[aa.length-1]=="sep"){ +aa.pop(); +} +for(var _87=0;_87"); +ps.bind("change",function(){ +_84.pageSize=parseInt($(this).val()); +_84.onChangePageSize.call(_82,_84.pageSize); +_8e(_82,_84.pageNumber); +}); +for(var i=0;i<_84.pageList.length;i++){ +$("").text(_84.pageList[i]).appendTo(ps); +} +$("").append(ps).appendTo(tr); +}else{ +if(_88=="sep"){ +$("
                                  ").appendTo(tr); +}else{ +if(_88=="first"){ +bb.first=_89("first"); +}else{ +if(_88=="prev"){ +bb.prev=_89("prev"); +}else{ +if(_88=="next"){ +bb.next=_89("next"); +}else{ +if(_88=="last"){ +bb.last=_89("last"); +}else{ +if(_88=="manual"){ +$("").html(_84.beforePageText).appendTo(tr).wrap(""); +bb.num=$("").appendTo(tr).wrap(""); +bb.num.unbind(".pagination").bind("keydown.pagination",function(e){ +if(e.keyCode==13){ +var _8a=parseInt($(this).val())||1; +_8e(_82,_8a); +return false; +} +}); +bb.after=$("").appendTo(tr).wrap(""); +}else{ +if(_88=="refresh"){ +bb.refresh=_89("refresh"); +}else{ +if(_88=="links"){ +$("").appendTo(tr); +} +} +} +} +} +} +} +} +} +} +if(_84.buttons){ +$("
                                  ").appendTo(tr); +if($.isArray(_84.buttons)){ +for(var i=0;i<_84.buttons.length;i++){ +var btn=_84.buttons[i]; +if(btn=="-"){ +$("
                                  ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var a=$("").appendTo(td); +a[0].onclick=eval(btn.handler||function(){ +}); +a.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +var td=$("").appendTo(tr); +$(_84.buttons).appendTo(td).show(); +} +} +$("
                                  ").appendTo(_85); +$("
                                  ").appendTo(_85); +function _89(_8b){ +var btn=_84.nav[_8b]; +var a=$("").appendTo(tr); +a.wrap(""); +a.linkbutton({iconCls:btn.iconCls,plain:true}).unbind(".pagination").bind("click.pagination",function(){ +btn.handler.call(_82); +}); +return a; +}; +function _86(aa,_8c){ +var _8d=$.inArray(_8c,aa); +if(_8d>=0){ +aa.splice(_8d,1); +} +return aa; +}; +}; +function _8e(_8f,_90){ +var _91=$.data(_8f,"pagination").options; +_92(_8f,{pageNumber:_90}); +_91.onSelectPage.call(_8f,_91.pageNumber,_91.pageSize); +}; +function _92(_93,_94){ +var _95=$.data(_93,"pagination"); +var _96=_95.options; +var bb=_95.bb; +$.extend(_96,_94||{}); +var ps=$(_93).find("select.pagination-page-list"); +if(ps.length){ +ps.val(_96.pageSize+""); +_96.pageSize=parseInt(ps.val()); +} +var _97=Math.ceil(_96.total/_96.pageSize)||1; +if(_96.pageNumber<1){ +_96.pageNumber=1; +} +if(_96.pageNumber>_97){ +_96.pageNumber=_97; +} +if(bb.num){ +bb.num.val(_96.pageNumber); +} +if(bb.after){ +bb.after.html(_96.afterPageText.replace(/{pages}/,_97)); +} +var td=$(_93).find("td.pagination-links"); +if(td.length){ +td.empty(); +var _98=_96.pageNumber-Math.floor(_96.links/2); +if(_98<1){ +_98=1; +} +var _99=_98+_96.links-1; +if(_99>_97){ +_99=_97; +} +_98=_99-_96.links+1; +if(_98<1){ +_98=1; +} +for(var i=_98;i<=_99;i++){ +var a=$("").appendTo(td); +a.linkbutton({plain:true,text:i}); +if(i==_96.pageNumber){ +a.linkbutton("select"); +}else{ +a.unbind(".pagination").bind("click.pagination",{pageNumber:i},function(e){ +_8e(_93,e.data.pageNumber); +}); +} +} +} +var _9a=_96.displayMsg; +_9a=_9a.replace(/{from}/,_96.total==0?0:_96.pageSize*(_96.pageNumber-1)+1); +_9a=_9a.replace(/{to}/,Math.min(_96.pageSize*(_96.pageNumber),_96.total)); +_9a=_9a.replace(/{total}/,_96.total); +$(_93).find("div.pagination-info").html(_9a); +if(bb.first){ +bb.first.linkbutton({disabled:(_96.pageNumber==1)}); +} +if(bb.prev){ +bb.prev.linkbutton({disabled:(_96.pageNumber==1)}); +} +if(bb.next){ +bb.next.linkbutton({disabled:(_96.pageNumber==_97)}); +} +if(bb.last){ +bb.last.linkbutton({disabled:(_96.pageNumber==_97)}); +} +_9b(_93,_96.loading); +}; +function _9b(_9c,_9d){ +var _9e=$.data(_9c,"pagination"); +var _9f=_9e.options; +_9f.loading=_9d; +if(_9f.showRefresh&&_9e.bb.refresh){ +_9e.bb.refresh.linkbutton({iconCls:(_9f.loading?"pagination-loading":"pagination-load")}); +} +}; +$.fn.pagination=function(_a0,_a1){ +if(typeof _a0=="string"){ +return $.fn.pagination.methods[_a0](this,_a1); +} +_a0=_a0||{}; +return this.each(function(){ +var _a2; +var _a3=$.data(this,"pagination"); +if(_a3){ +_a2=$.extend(_a3.options,_a0); +}else{ +_a2=$.extend({},$.fn.pagination.defaults,$.fn.pagination.parseOptions(this),_a0); +$.data(this,"pagination",{options:_a2}); +} +_81(this); +_92(this); +}); +}; +$.fn.pagination.methods={options:function(jq){ +return $.data(jq[0],"pagination").options; +},loading:function(jq){ +return jq.each(function(){ +_9b(this,true); +}); +},loaded:function(jq){ +return jq.each(function(){ +_9b(this,false); +}); +},refresh:function(jq,_a4){ +return jq.each(function(){ +_92(this,_a4); +}); +},select:function(jq,_a5){ +return jq.each(function(){ +_8e(this,_a5); +}); +}}; +$.fn.pagination.parseOptions=function(_a6){ +var t=$(_a6); +return $.extend({},$.parser.parseOptions(_a6,[{total:"number",pageSize:"number",pageNumber:"number",links:"number"},{loading:"boolean",showPageList:"boolean",showRefresh:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined)}); +}; +$.fn.pagination.defaults={total:1,pageSize:10,pageNumber:1,pageList:[10,20,30,50],loading:false,buttons:null,showPageList:true,showRefresh:true,links:10,layout:["list","sep","first","prev","sep","manual","sep","next","last","sep","refresh"],onSelectPage:function(_a7,_a8){ +},onBeforeRefresh:function(_a9,_aa){ +},onRefresh:function(_ab,_ac){ +},onChangePageSize:function(_ad){ +},beforePageText:"Page",afterPageText:"of {pages}",displayMsg:"Displaying {from} to {to} of {total} items",nav:{first:{iconCls:"pagination-first",handler:function(){ +var _ae=$(this).pagination("options"); +if(_ae.pageNumber>1){ +$(this).pagination("select",1); +} +}},prev:{iconCls:"pagination-prev",handler:function(){ +var _af=$(this).pagination("options"); +if(_af.pageNumber>1){ +$(this).pagination("select",_af.pageNumber-1); +} +}},next:{iconCls:"pagination-next",handler:function(){ +var _b0=$(this).pagination("options"); +var _b1=Math.ceil(_b0.total/_b0.pageSize); +if(_b0.pageNumber<_b1){ +$(this).pagination("select",_b0.pageNumber+1); +} +}},last:{iconCls:"pagination-last",handler:function(){ +var _b2=$(this).pagination("options"); +var _b3=Math.ceil(_b2.total/_b2.pageSize); +if(_b2.pageNumber<_b3){ +$(this).pagination("select",_b3); +} +}},refresh:{iconCls:"pagination-refresh",handler:function(){ +var _b4=$(this).pagination("options"); +if(_b4.onBeforeRefresh.call(this,_b4.pageNumber,_b4.pageSize)!=false){ +$(this).pagination("select",_b4.pageNumber); +_b4.onRefresh.call(this,_b4.pageNumber,_b4.pageSize); +} +}}}}; +})(jQuery); +(function($){ +function _b5(_b6){ +var _b7=$(_b6); +_b7.addClass("tree"); +return _b7; +}; +function _b8(_b9){ +var _ba=$.data(_b9,"tree").options; +$(_b9).unbind().bind("mouseover",function(e){ +var tt=$(e.target); +var _bb=tt.closest("div.tree-node"); +if(!_bb.length){ +return; +} +_bb.addClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.addClass("tree-expanded-hover"); +}else{ +tt.addClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var _bc=tt.closest("div.tree-node"); +if(!_bc.length){ +return; +} +_bc.removeClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.removeClass("tree-expanded-hover"); +}else{ +tt.removeClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("click",function(e){ +var tt=$(e.target); +var _bd=tt.closest("div.tree-node"); +if(!_bd.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_125(_b9,_bd[0]); +return false; +}else{ +if(tt.hasClass("tree-checkbox")){ +_e8(_b9,_bd[0],!tt.hasClass("tree-checkbox1")); +return false; +}else{ +_16a(_b9,_bd[0]); +_ba.onClick.call(_b9,_c0(_b9,_bd[0])); +} +} +e.stopPropagation(); +}).bind("dblclick",function(e){ +var _be=$(e.target).closest("div.tree-node"); +if(!_be.length){ +return; +} +_16a(_b9,_be[0]); +_ba.onDblClick.call(_b9,_c0(_b9,_be[0])); +e.stopPropagation(); +}).bind("contextmenu",function(e){ +var _bf=$(e.target).closest("div.tree-node"); +if(!_bf.length){ +return; +} +_ba.onContextMenu.call(_b9,e,_c0(_b9,_bf[0])); +e.stopPropagation(); +}); +}; +function _c1(_c2){ +var _c3=$.data(_c2,"tree").options; +_c3.dnd=false; +var _c4=$(_c2).find("div.tree-node"); +_c4.draggable("disable"); +_c4.css("cursor","pointer"); +}; +function _c5(_c6){ +var _c7=$.data(_c6,"tree"); +var _c8=_c7.options; +var _c9=_c7.tree; +_c7.disabledNodes=[]; +_c8.dnd=true; +_c9.find("div.tree-node").draggable({disabled:false,revert:true,cursor:"pointer",proxy:function(_ca){ +var p=$("
                                  ").appendTo("body"); +p.html(" "+$(_ca).find(".tree-title").html()); +p.hide(); +return p; +},deltaX:15,deltaY:15,onBeforeDrag:function(e){ +if(_c8.onBeforeDrag.call(_c6,_c0(_c6,this))==false){ +return false; +} +if($(e.target).hasClass("tree-hit")||$(e.target).hasClass("tree-checkbox")){ +return false; +} +if(e.which!=1){ +return false; +} +$(this).next("ul").find("div.tree-node").droppable({accept:"no-accept"}); +var _cb=$(this).find("span.tree-indent"); +if(_cb.length){ +e.data.offsetWidth-=_cb.length*_cb.width(); +} +},onStartDrag:function(){ +$(this).draggable("proxy").css({left:-10000,top:-10000}); +_c8.onStartDrag.call(_c6,_c0(_c6,this)); +var _cc=_c0(_c6,this); +if(_cc.id==undefined){ +_cc.id="easyui_tree_node_id_temp"; +_108(_c6,_cc); +} +_c7.draggingNodeId=_cc.id; +},onDrag:function(e){ +var x1=e.pageX,y1=e.pageY,x2=e.data.startX,y2=e.data.startY; +var d=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); +if(d>3){ +$(this).draggable("proxy").show(); +} +this.pageY=e.pageY; +},onStopDrag:function(){ +$(this).next("ul").find("div.tree-node").droppable({accept:"div.tree-node"}); +for(var i=0;i<_c7.disabledNodes.length;i++){ +$(_c7.disabledNodes[i]).droppable("enable"); +} +_c7.disabledNodes=[]; +var _cd=_162(_c6,_c7.draggingNodeId); +if(_cd&&_cd.id=="easyui_tree_node_id_temp"){ +_cd.id=""; +_108(_c6,_cd); +} +_c8.onStopDrag.call(_c6,_cd); +}}).droppable({accept:"div.tree-node",onDragEnter:function(e,_ce){ +if(_c8.onDragEnter.call(_c6,this,_cf(_ce))==false){ +_d0(_ce,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_c7.disabledNodes.push(this); +} +},onDragOver:function(e,_d1){ +if($(this).droppable("options").disabled){ +return; +} +var _d2=_d1.pageY; +var top=$(this).offset().top; +var _d3=top+$(this).outerHeight(); +_d0(_d1,true); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +if(_d2>top+(_d3-top)/2){ +if(_d3-_d2<5){ +$(this).addClass("tree-node-bottom"); +}else{ +$(this).addClass("tree-node-append"); +} +}else{ +if(_d2-top<5){ +$(this).addClass("tree-node-top"); +}else{ +$(this).addClass("tree-node-append"); +} +} +if(_c8.onDragOver.call(_c6,this,_cf(_d1))==false){ +_d0(_d1,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_c7.disabledNodes.push(this); +} +},onDragLeave:function(e,_d4){ +_d0(_d4,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +_c8.onDragLeave.call(_c6,this,_cf(_d4)); +},onDrop:function(e,_d5){ +var _d6=this; +var _d7,_d8; +if($(this).hasClass("tree-node-append")){ +_d7=_d9; +_d8="append"; +}else{ +_d7=_da; +_d8=$(this).hasClass("tree-node-top")?"top":"bottom"; +} +if(_c8.onBeforeDrop.call(_c6,_d6,_cf(_d5),_d8)==false){ +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +return; +} +_d7(_d5,_d6,_d8); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +}}); +function _cf(_db,pop){ +return $(_db).closest("ul.tree").tree(pop?"pop":"getData",_db); +}; +function _d0(_dc,_dd){ +var _de=$(_dc).draggable("proxy").find("span.tree-dnd-icon"); +_de.removeClass("tree-dnd-yes tree-dnd-no").addClass(_dd?"tree-dnd-yes":"tree-dnd-no"); +}; +function _d9(_df,_e0){ +if(_c0(_c6,_e0).state=="closed"){ +_11d(_c6,_e0,function(){ +_e1(); +}); +}else{ +_e1(); +} +function _e1(){ +var _e2=_cf(_df,true); +$(_c6).tree("append",{parent:_e0,data:[_e2]}); +_c8.onDrop.call(_c6,_e0,_e2,"append"); +}; +}; +function _da(_e3,_e4,_e5){ +var _e6={}; +if(_e5=="top"){ +_e6.before=_e4; +}else{ +_e6.after=_e4; +} +var _e7=_cf(_e3,true); +_e6.data=_e7; +$(_c6).tree("insert",_e6); +_c8.onDrop.call(_c6,_e4,_e7,_e5); +}; +}; +function _e8(_e9,_ea,_eb){ +var _ec=$.data(_e9,"tree").options; +if(!_ec.checkbox){ +return; +} +var _ed=_c0(_e9,_ea); +if(_ec.onBeforeCheck.call(_e9,_ed,_eb)==false){ +return; +} +var _ee=$(_ea); +var ck=_ee.find(".tree-checkbox"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_eb){ +ck.addClass("tree-checkbox1"); +}else{ +ck.addClass("tree-checkbox0"); +} +if(_ec.cascadeCheck){ +_ef(_ee); +_f0(_ee); +} +_ec.onCheck.call(_e9,_ed,_eb); +function _f0(_f1){ +var _f2=_f1.next().find(".tree-checkbox"); +_f2.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_f1.find(".tree-checkbox").hasClass("tree-checkbox1")){ +_f2.addClass("tree-checkbox1"); +}else{ +_f2.addClass("tree-checkbox0"); +} +}; +function _ef(_f3){ +var _f4=_130(_e9,_f3[0]); +if(_f4){ +var ck=$(_f4.target).find(".tree-checkbox"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_f5(_f3)){ +ck.addClass("tree-checkbox1"); +}else{ +if(_f6(_f3)){ +ck.addClass("tree-checkbox0"); +}else{ +ck.addClass("tree-checkbox2"); +} +} +_ef($(_f4.target)); +} +function _f5(n){ +var ck=n.find(".tree-checkbox"); +if(ck.hasClass("tree-checkbox0")||ck.hasClass("tree-checkbox2")){ +return false; +} +var b=true; +n.parent().siblings().each(function(){ +if(!$(this).children("div.tree-node").children(".tree-checkbox").hasClass("tree-checkbox1")){ +b=false; +} +}); +return b; +}; +function _f6(n){ +var ck=n.find(".tree-checkbox"); +if(ck.hasClass("tree-checkbox1")||ck.hasClass("tree-checkbox2")){ +return false; +} +var b=true; +n.parent().siblings().each(function(){ +if(!$(this).children("div.tree-node").children(".tree-checkbox").hasClass("tree-checkbox0")){ +b=false; +} +}); +return b; +}; +}; +}; +function _f7(_f8,_f9){ +var _fa=$.data(_f8,"tree").options; +if(!_fa.checkbox){ +return; +} +var _fb=$(_f9); +if(_fc(_f8,_f9)){ +var ck=_fb.find(".tree-checkbox"); +if(ck.length){ +if(ck.hasClass("tree-checkbox1")){ +_e8(_f8,_f9,true); +}else{ +_e8(_f8,_f9,false); +} +}else{ +if(_fa.onlyLeafCheck){ +$("").insertBefore(_fb.find(".tree-title")); +} +} +}else{ +var ck=_fb.find(".tree-checkbox"); +if(_fa.onlyLeafCheck){ +ck.remove(); +}else{ +if(ck.hasClass("tree-checkbox1")){ +_e8(_f8,_f9,true); +}else{ +if(ck.hasClass("tree-checkbox2")){ +var _fd=true; +var _fe=true; +var _ff=_100(_f8,_f9); +for(var i=0;i<_ff.length;i++){ +if(_ff[i].checked){ +_fe=false; +}else{ +_fd=false; +} +} +if(_fd){ +_e8(_f8,_f9,true); +} +if(_fe){ +_e8(_f8,_f9,false); +} +} +} +} +} +}; +function _101(_102,ul,data,_103){ +var _104=$.data(_102,"tree"); +var opts=_104.options; +var _105=$(ul).prevAll("div.tree-node:first"); +data=opts.loadFilter.call(_102,data,_105[0]); +var _106=_107(_102,"domId",_105.attr("id")); +if(!_103){ +_106?_106.children=data:_104.data=data; +$(ul).empty(); +}else{ +if(_106){ +_106.children?_106.children=_106.children.concat(data):_106.children=data; +}else{ +_104.data=_104.data.concat(data); +} +} +opts.view.render.call(opts.view,_102,ul,data); +if(opts.dnd){ +_c5(_102); +} +if(_106){ +_108(_102,_106); +} +var _109=[]; +var _10a=[]; +for(var i=0;i1){ +$(_110[0].target).addClass("tree-root-first"); +}else{ +if(_110.length==1){ +$(_110[0].target).addClass("tree-root-one"); +} +} +} +$(ul).children("li").each(function(){ +var node=$(this).children("div.tree-node"); +var ul=node.next("ul"); +if(ul.length){ +if($(this).next().length){ +_111(node); +} +_10d(_10e,ul,_10f); +}else{ +_112(node); +} +}); +var _113=$(ul).children("li:last").children("div.tree-node").addClass("tree-node-last"); +_113.children("span.tree-join").removeClass("tree-join").addClass("tree-joinbottom"); +function _112(node,_114){ +var icon=node.find("span.tree-icon"); +icon.prev("span.tree-indent").addClass("tree-join"); +}; +function _111(node){ +var _115=node.find("span.tree-indent, span.tree-hit").length; +node.next().find("div.tree-node").each(function(){ +$(this).children("span:eq("+(_115-1)+")").addClass("tree-line"); +}); +}; +}; +function _116(_117,ul,_118,_119){ +var opts=$.data(_117,"tree").options; +_118=_118||{}; +var _11a=null; +if(_117!=ul){ +var node=$(ul).prev(); +_11a=_c0(_117,node[0]); +} +if(opts.onBeforeLoad.call(_117,_11a,_118)==false){ +return; +} +var _11b=$(ul).prev().children("span.tree-folder"); +_11b.addClass("tree-loading"); +var _11c=opts.loader.call(_117,_118,function(data){ +_11b.removeClass("tree-loading"); +_101(_117,ul,data); +if(_119){ +_119(); +} +},function(){ +_11b.removeClass("tree-loading"); +opts.onLoadError.apply(_117,arguments); +if(_119){ +_119(); +} +}); +if(_11c==false){ +_11b.removeClass("tree-loading"); +} +}; +function _11d(_11e,_11f,_120){ +var opts=$.data(_11e,"tree").options; +var hit=$(_11f).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +return; +} +var node=_c0(_11e,_11f); +if(opts.onBeforeExpand.call(_11e,node)==false){ +return; +} +hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded"); +hit.next().addClass("tree-folder-open"); +var ul=$(_11f).next(); +if(ul.length){ +if(opts.animate){ +ul.slideDown("normal",function(){ +node.state="open"; +opts.onExpand.call(_11e,node); +if(_120){ +_120(); +} +}); +}else{ +ul.css("display","block"); +node.state="open"; +opts.onExpand.call(_11e,node); +if(_120){ +_120(); +} +} +}else{ +var _121=$("
                                    ").insertAfter(_11f); +_116(_11e,_121[0],{id:node.id},function(){ +if(_121.is(":empty")){ +_121.remove(); +} +if(opts.animate){ +_121.slideDown("normal",function(){ +node.state="open"; +opts.onExpand.call(_11e,node); +if(_120){ +_120(); +} +}); +}else{ +_121.css("display","block"); +node.state="open"; +opts.onExpand.call(_11e,node); +if(_120){ +_120(); +} +} +}); +} +}; +function _122(_123,_124){ +var opts=$.data(_123,"tree").options; +var hit=$(_124).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-collapsed")){ +return; +} +var node=_c0(_123,_124); +if(opts.onBeforeCollapse.call(_123,node)==false){ +return; +} +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +hit.next().removeClass("tree-folder-open"); +var ul=$(_124).next(); +if(opts.animate){ +ul.slideUp("normal",function(){ +node.state="closed"; +opts.onCollapse.call(_123,node); +}); +}else{ +ul.css("display","none"); +node.state="closed"; +opts.onCollapse.call(_123,node); +} +}; +function _125(_126,_127){ +var hit=$(_127).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +_122(_126,_127); +}else{ +_11d(_126,_127); +} +}; +function _128(_129,_12a){ +var _12b=_100(_129,_12a); +if(_12a){ +_12b.unshift(_c0(_129,_12a)); +} +for(var i=0;i<_12b.length;i++){ +_11d(_129,_12b[i].target); +} +}; +function _12c(_12d,_12e){ +var _12f=[]; +var p=_130(_12d,_12e); +while(p){ +_12f.unshift(p); +p=_130(_12d,p.target); +} +for(var i=0;i<_12f.length;i++){ +_11d(_12d,_12f[i].target); +} +}; +function _131(_132,_133){ +var c=$(_132).parent(); +while(c[0].tagName!="BODY"&&c.css("overflow-y")!="auto"){ +c=c.parent(); +} +var n=$(_133); +var ntop=n.offset().top; +if(c[0].tagName!="BODY"){ +var ctop=c.offset().top; +if(ntopctop+c.outerHeight()-18){ +c.scrollTop(c.scrollTop()+ntop+n.outerHeight()-ctop-c.outerHeight()+18); +} +} +}else{ +c.scrollTop(ntop); +} +}; +function _134(_135,_136){ +var _137=_100(_135,_136); +if(_136){ +_137.unshift(_c0(_135,_136)); +} +for(var i=0;i<_137.length;i++){ +_122(_135,_137[i].target); +} +}; +function _138(_139,_13a){ +var node=$(_13a.parent); +var data=_13a.data; +if(!data){ +return; +} +data=$.isArray(data)?data:[data]; +if(!data.length){ +return; +} +var ul; +if(node.length==0){ +ul=$(_139); +}else{ +if(_fc(_139,node[0])){ +var _13b=node.find("span.tree-icon"); +_13b.removeClass("tree-file").addClass("tree-folder tree-folder-open"); +var hit=$("").insertBefore(_13b); +if(hit.prev().length){ +hit.prev().remove(); +} +} +ul=node.next(); +if(!ul.length){ +ul=$("
                                      ").insertAfter(node); +} +} +_101(_139,ul[0],data,true); +_f7(_139,ul.prev()); +}; +function _13c(_13d,_13e){ +var ref=_13e.before||_13e.after; +var _13f=_130(_13d,ref); +var data=_13e.data; +if(!data){ +return; +} +data=$.isArray(data)?data:[data]; +if(!data.length){ +return; +} +_138(_13d,{parent:(_13f?_13f.target:null),data:data}); +var _140=_13f?_13f.children:$(_13d).tree("getRoots"); +for(var i=0;i<_140.length;i++){ +if(_140[i].domId==$(ref).attr("id")){ +for(var j=data.length-1;j>=0;j--){ +_140.splice((_13e.before?i:(i+1)),0,data[j]); +} +_140.splice(_140.length-data.length,data.length); +break; +} +} +var li=$(); +for(var i=0;i").prependTo(node); +node.next().remove(); +} +_108(_142,_144); +_f7(_142,_144.target); +} +_10d(_142,_142); +function del(_145){ +var id=$(_145).attr("id"); +var _146=_130(_142,_145); +var cc=_146?_146.children:$.data(_142,"tree").data; +for(var i=0;i=0;i--){ +_169.unshift(node.children[i]); +} +} +} +}; +function _16a(_16b,_16c){ +var opts=$.data(_16b,"tree").options; +var node=_c0(_16b,_16c); +if(opts.onBeforeSelect.call(_16b,node)==false){ +return; +} +$(_16b).find("div.tree-node-selected").removeClass("tree-node-selected"); +$(_16c).addClass("tree-node-selected"); +opts.onSelect.call(_16b,node); +}; +function _fc(_16d,_16e){ +return $(_16e).children("span.tree-hit").length==0; +}; +function _16f(_170,_171){ +var opts=$.data(_170,"tree").options; +var node=_c0(_170,_171); +if(opts.onBeforeEdit.call(_170,node)==false){ +return; +} +$(_171).css("position","relative"); +var nt=$(_171).find(".tree-title"); +var _172=nt.outerWidth(); +nt.empty(); +var _173=$("").appendTo(nt); +_173.val(node.text).focus(); +_173.width(_172+20); +_173.height(document.compatMode=="CSS1Compat"?(18-(_173.outerHeight()-_173.height())):18); +_173.bind("click",function(e){ +return false; +}).bind("mousedown",function(e){ +e.stopPropagation(); +}).bind("mousemove",function(e){ +e.stopPropagation(); +}).bind("keydown",function(e){ +if(e.keyCode==13){ +_174(_170,_171); +return false; +}else{ +if(e.keyCode==27){ +_178(_170,_171); +return false; +} +} +}).bind("blur",function(e){ +e.stopPropagation(); +_174(_170,_171); +}); +}; +function _174(_175,_176){ +var opts=$.data(_175,"tree").options; +$(_176).css("position",""); +var _177=$(_176).find("input.tree-editor"); +var val=_177.val(); +_177.remove(); +var node=_c0(_175,_176); +node.text=val; +_108(_175,node); +opts.onAfterEdit.call(_175,node); +}; +function _178(_179,_17a){ +var opts=$.data(_179,"tree").options; +$(_17a).css("position",""); +$(_17a).find("input.tree-editor").remove(); +var node=_c0(_179,_17a); +_108(_179,node); +opts.onCancelEdit.call(_179,node); +}; +$.fn.tree=function(_17b,_17c){ +if(typeof _17b=="string"){ +return $.fn.tree.methods[_17b](this,_17c); +} +var _17b=_17b||{}; +return this.each(function(){ +var _17d=$.data(this,"tree"); +var opts; +if(_17d){ +opts=$.extend(_17d.options,_17b); +_17d.options=opts; +}else{ +opts=$.extend({},$.fn.tree.defaults,$.fn.tree.parseOptions(this),_17b); +$.data(this,"tree",{options:opts,tree:_b5(this),data:[]}); +var data=$.fn.tree.parseData(this); +if(data.length){ +_101(this,this,data); +} +} +_b8(this); +if(opts.data){ +_101(this,this,$.extend(true,[],opts.data)); +} +_116(this,this); +}); +}; +$.fn.tree.methods={options:function(jq){ +return $.data(jq[0],"tree").options; +},loadData:function(jq,data){ +return jq.each(function(){ +_101(this,this,data); +}); +},getNode:function(jq,_17e){ +return _c0(jq[0],_17e); +},getData:function(jq,_17f){ +return _15d(jq[0],_17f); +},reload:function(jq,_180){ +return jq.each(function(){ +if(_180){ +var node=$(_180); +var hit=node.children("span.tree-hit"); +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +node.next().remove(); +_11d(this,_180); +}else{ +$(this).empty(); +_116(this,this); +} +}); +},getRoot:function(jq){ +return _14a(jq[0]); +},getRoots:function(jq){ +return _14d(jq[0]); +},getParent:function(jq,_181){ +return _130(jq[0],_181); +},getChildren:function(jq,_182){ +return _100(jq[0],_182); +},getChecked:function(jq,_183){ +return _156(jq[0],_183); +},getSelected:function(jq){ +return _15b(jq[0]); +},isLeaf:function(jq,_184){ +return _fc(jq[0],_184); +},find:function(jq,id){ +return _162(jq[0],id); +},select:function(jq,_185){ +return jq.each(function(){ +_16a(this,_185); +}); +},check:function(jq,_186){ +return jq.each(function(){ +_e8(this,_186,true); +}); +},uncheck:function(jq,_187){ +return jq.each(function(){ +_e8(this,_187,false); +}); +},collapse:function(jq,_188){ +return jq.each(function(){ +_122(this,_188); +}); +},expand:function(jq,_189){ +return jq.each(function(){ +_11d(this,_189); +}); +},collapseAll:function(jq,_18a){ +return jq.each(function(){ +_134(this,_18a); +}); +},expandAll:function(jq,_18b){ +return jq.each(function(){ +_128(this,_18b); +}); +},expandTo:function(jq,_18c){ +return jq.each(function(){ +_12c(this,_18c); +}); +},scrollTo:function(jq,_18d){ +return jq.each(function(){ +_131(this,_18d); +}); +},toggle:function(jq,_18e){ +return jq.each(function(){ +_125(this,_18e); +}); +},append:function(jq,_18f){ +return jq.each(function(){ +_138(this,_18f); +}); +},insert:function(jq,_190){ +return jq.each(function(){ +_13c(this,_190); +}); +},remove:function(jq,_191){ +return jq.each(function(){ +_141(this,_191); +}); +},pop:function(jq,_192){ +var node=jq.tree("getData",_192); +jq.tree("remove",_192); +return node; +},update:function(jq,_193){ +return jq.each(function(){ +_108(this,_193); +}); +},enableDnd:function(jq){ +return jq.each(function(){ +_c5(this); +}); +},disableDnd:function(jq){ +return jq.each(function(){ +_c1(this); +}); +},beginEdit:function(jq,_194){ +return jq.each(function(){ +_16f(this,_194); +}); +},endEdit:function(jq,_195){ +return jq.each(function(){ +_174(this,_195); +}); +},cancelEdit:function(jq,_196){ +return jq.each(function(){ +_178(this,_196); +}); +}}; +$.fn.tree.parseOptions=function(_197){ +var t=$(_197); +return $.extend({},$.parser.parseOptions(_197,["url","method",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean",lines:"boolean",dnd:"boolean"}])); +}; +$.fn.tree.parseData=function(_198){ +var data=[]; +_199(data,$(_198)); +return data; +function _199(aa,tree){ +tree.children("li").each(function(){ +var node=$(this); +var item=$.extend({},$.parser.parseOptions(this,["id","iconCls","state"]),{checked:(node.attr("checked")?true:undefined)}); +item.text=node.children("span").html(); +if(!item.text){ +item.text=node.html(); +} +var _19a=node.children("ul"); +if(_19a.length){ +item.children=[]; +_199(item.children,_19a); +} +aa.push(item); +}); +}; +}; +var _19b=1; +var _19c={render:function(_19d,ul,data){ +var opts=$.data(_19d,"tree").options; +var _19e=$(ul).prev("div.tree-node").find("span.tree-indent, span.tree-hit").length; +var cc=_19f(_19e,data); +$(ul).append(cc.join("")); +function _19f(_1a0,_1a1){ +var cc=[]; +for(var i=0;i<_1a1.length;i++){ +var item=_1a1[i]; +if(item.state!="open"&&item.state!="closed"){ +item.state="open"; +} +item.domId="_easyui_tree_"+_19b++; +cc.push("
                                    • "); +cc.push("
                                      "); +for(var j=0;j<_1a0;j++){ +cc.push(""); +} +var _1a2=false; +if(item.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(item.children&&item.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +_1a2=true; +} +} +if(opts.checkbox){ +if((!opts.onlyLeafCheck)||_1a2){ +cc.push(""); +} +} +cc.push(""+opts.formatter.call(_19d,item)+""); +cc.push("
                                      "); +if(item.children&&item.children.length){ +var tmp=_19f(_1a0+1,item.children); +cc.push("
                                        "); +cc=cc.concat(tmp); +cc.push("
                                      "); +} +cc.push("
                                    • "); +} +return cc; +}; +}}; +$.fn.tree.defaults={url:null,method:"post",animate:false,checkbox:false,cascadeCheck:true,onlyLeafCheck:false,lines:false,dnd:false,data:null,formatter:function(node){ +return node.text; +},loader:function(_1a3,_1a4,_1a5){ +var opts=$(this).tree("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_1a3,dataType:"json",success:function(data){ +_1a4(data); +},error:function(){ +_1a5.apply(this,arguments); +}}); +},loadFilter:function(data,_1a6){ +return data; +},view:_19c,onBeforeLoad:function(node,_1a7){ +},onLoadSuccess:function(node,data){ +},onLoadError:function(){ +},onClick:function(node){ +},onDblClick:function(node){ +},onBeforeExpand:function(node){ +},onExpand:function(node){ +},onBeforeCollapse:function(node){ +},onCollapse:function(node){ +},onBeforeCheck:function(node,_1a8){ +},onCheck:function(node,_1a9){ +},onBeforeSelect:function(node){ +},onSelect:function(node){ +},onContextMenu:function(e,node){ +},onBeforeDrag:function(node){ +},onStartDrag:function(node){ +},onStopDrag:function(node){ +},onDragEnter:function(_1aa,_1ab){ +},onDragOver:function(_1ac,_1ad){ +},onDragLeave:function(_1ae,_1af){ +},onBeforeDrop:function(_1b0,_1b1,_1b2){ +},onDrop:function(_1b3,_1b4,_1b5){ +},onBeforeEdit:function(node){ +},onAfterEdit:function(node){ +},onCancelEdit:function(node){ +}}; +})(jQuery); +(function($){ +function init(_1b6){ +$(_1b6).addClass("progressbar"); +$(_1b6).html("
                                      "); +return $(_1b6); +}; +function _1b7(_1b8,_1b9){ +var opts=$.data(_1b8,"progressbar").options; +var bar=$.data(_1b8,"progressbar").bar; +if(_1b9){ +opts.width=_1b9; +} +bar._outerWidth(opts.width)._outerHeight(opts.height); +bar.find("div.progressbar-text").width(bar.width()); +bar.find("div.progressbar-text,div.progressbar-value").css({height:bar.height()+"px",lineHeight:bar.height()+"px"}); +}; +$.fn.progressbar=function(_1ba,_1bb){ +if(typeof _1ba=="string"){ +var _1bc=$.fn.progressbar.methods[_1ba]; +if(_1bc){ +return _1bc(this,_1bb); +} +} +_1ba=_1ba||{}; +return this.each(function(){ +var _1bd=$.data(this,"progressbar"); +if(_1bd){ +$.extend(_1bd.options,_1ba); +}else{ +_1bd=$.data(this,"progressbar",{options:$.extend({},$.fn.progressbar.defaults,$.fn.progressbar.parseOptions(this),_1ba),bar:init(this)}); +} +$(this).progressbar("setValue",_1bd.options.value); +_1b7(this); +}); +}; +$.fn.progressbar.methods={options:function(jq){ +return $.data(jq[0],"progressbar").options; +},resize:function(jq,_1be){ +return jq.each(function(){ +_1b7(this,_1be); +}); +},getValue:function(jq){ +return $.data(jq[0],"progressbar").options.value; +},setValue:function(jq,_1bf){ +if(_1bf<0){ +_1bf=0; +} +if(_1bf>100){ +_1bf=100; +} +return jq.each(function(){ +var opts=$.data(this,"progressbar").options; +var text=opts.text.replace(/{value}/,_1bf); +var _1c0=opts.value; +opts.value=_1bf; +$(this).find("div.progressbar-value").width(_1bf+"%"); +$(this).find("div.progressbar-text").html(text); +if(_1c0!=_1bf){ +opts.onChange.call(this,_1bf,_1c0); +} +}); +}}; +$.fn.progressbar.parseOptions=function(_1c1){ +return $.extend({},$.parser.parseOptions(_1c1,["width","height","text",{value:"number"}])); +}; +$.fn.progressbar.defaults={width:"auto",height:22,value:0,text:"{value}%",onChange:function(_1c2,_1c3){ +}}; +})(jQuery); +(function($){ +function init(_1c4){ +$(_1c4).addClass("tooltip-f"); +}; +function _1c5(_1c6){ +var opts=$.data(_1c6,"tooltip").options; +$(_1c6).unbind(".tooltip").bind(opts.showEvent+".tooltip",function(e){ +_1cd(_1c6,e); +}).bind(opts.hideEvent+".tooltip",function(e){ +_1d3(_1c6,e); +}).bind("mousemove.tooltip",function(e){ +if(opts.trackMouse){ +opts.trackMouseX=e.pageX; +opts.trackMouseY=e.pageY; +_1c7(_1c6); +} +}); +}; +function _1c8(_1c9){ +var _1ca=$.data(_1c9,"tooltip"); +if(_1ca.showTimer){ +clearTimeout(_1ca.showTimer); +_1ca.showTimer=null; +} +if(_1ca.hideTimer){ +clearTimeout(_1ca.hideTimer); +_1ca.hideTimer=null; +} +}; +function _1c7(_1cb){ +var _1cc=$.data(_1cb,"tooltip"); +if(!_1cc||!_1cc.tip){ +return; +} +var opts=_1cc.options; +var tip=_1cc.tip; +if(opts.trackMouse){ +t=$(); +var left=opts.trackMouseX+opts.deltaX; +var top=opts.trackMouseY+opts.deltaY; +}else{ +var t=$(_1cb); +var left=t.offset().left+opts.deltaX; +var top=t.offset().top+opts.deltaY; +} +switch(opts.position){ +case "right": +left+=t._outerWidth()+12+(opts.trackMouse?12:0); +top-=(tip._outerHeight()-t._outerHeight())/2; +break; +case "left": +left-=tip._outerWidth()+12+(opts.trackMouse?12:0); +top-=(tip._outerHeight()-t._outerHeight())/2; +break; +case "top": +left-=(tip._outerWidth()-t._outerWidth())/2; +top-=tip._outerHeight()+12+(opts.trackMouse?12:0); +break; +case "bottom": +left-=(tip._outerWidth()-t._outerWidth())/2; +top+=t._outerHeight()+12+(opts.trackMouse?12:0); +break; +} +if(!$(_1cb).is(":visible")){ +left=-100000; +top=-100000; +} +tip.css({left:left,top:top,zIndex:(opts.zIndex!=undefined?opts.zIndex:($.fn.window?$.fn.window.defaults.zIndex++:""))}); +opts.onPosition.call(_1cb,left,top); +}; +function _1cd(_1ce,e){ +var _1cf=$.data(_1ce,"tooltip"); +var opts=_1cf.options; +var tip=_1cf.tip; +if(!tip){ +tip=$("
                                      "+"
                                      "+"
                                      "+"
                                      "+"
                                      ").appendTo("body"); +_1cf.tip=tip; +_1d0(_1ce); +} +tip.removeClass("tooltip-top tooltip-bottom tooltip-left tooltip-right").addClass("tooltip-"+opts.position); +_1c8(_1ce); +_1cf.showTimer=setTimeout(function(){ +_1c7(_1ce); +tip.show(); +opts.onShow.call(_1ce,e); +var _1d1=tip.children(".tooltip-arrow-outer"); +var _1d2=tip.children(".tooltip-arrow"); +var bc="border-"+opts.position+"-color"; +_1d1.add(_1d2).css({borderTopColor:"",borderBottomColor:"",borderLeftColor:"",borderRightColor:""}); +_1d1.css(bc,tip.css(bc)); +_1d2.css(bc,tip.css("backgroundColor")); +},opts.showDelay); +}; +function _1d3(_1d4,e){ +var _1d5=$.data(_1d4,"tooltip"); +if(_1d5&&_1d5.tip){ +_1c8(_1d4); +_1d5.hideTimer=setTimeout(function(){ +_1d5.tip.hide(); +_1d5.options.onHide.call(_1d4,e); +},_1d5.options.hideDelay); +} +}; +function _1d0(_1d6,_1d7){ +var _1d8=$.data(_1d6,"tooltip"); +var opts=_1d8.options; +if(_1d7){ +opts.content=_1d7; +} +if(!_1d8.tip){ +return; +} +var cc=typeof opts.content=="function"?opts.content.call(_1d6):opts.content; +_1d8.tip.children(".tooltip-content").html(cc); +opts.onUpdate.call(_1d6,cc); +}; +function _1d9(_1da){ +var _1db=$.data(_1da,"tooltip"); +if(_1db){ +_1c8(_1da); +var opts=_1db.options; +if(_1db.tip){ +_1db.tip.remove(); +} +if(opts._title){ +$(_1da).attr("title",opts._title); +} +$.removeData(_1da,"tooltip"); +$(_1da).unbind(".tooltip").removeClass("tooltip-f"); +opts.onDestroy.call(_1da); +} +}; +$.fn.tooltip=function(_1dc,_1dd){ +if(typeof _1dc=="string"){ +return $.fn.tooltip.methods[_1dc](this,_1dd); +} +_1dc=_1dc||{}; +return this.each(function(){ +var _1de=$.data(this,"tooltip"); +if(_1de){ +$.extend(_1de.options,_1dc); +}else{ +$.data(this,"tooltip",{options:$.extend({},$.fn.tooltip.defaults,$.fn.tooltip.parseOptions(this),_1dc)}); +init(this); +} +_1c5(this); +_1d0(this); +}); +}; +$.fn.tooltip.methods={options:function(jq){ +return $.data(jq[0],"tooltip").options; +},tip:function(jq){ +return $.data(jq[0],"tooltip").tip; +},arrow:function(jq){ +return jq.tooltip("tip").children(".tooltip-arrow-outer,.tooltip-arrow"); +},show:function(jq,e){ +return jq.each(function(){ +_1cd(this,e); +}); +},hide:function(jq,e){ +return jq.each(function(){ +_1d3(this,e); +}); +},update:function(jq,_1df){ +return jq.each(function(){ +_1d0(this,_1df); +}); +},reposition:function(jq){ +return jq.each(function(){ +_1c7(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_1d9(this); +}); +}}; +$.fn.tooltip.parseOptions=function(_1e0){ +var t=$(_1e0); +var opts=$.extend({},$.parser.parseOptions(_1e0,["position","showEvent","hideEvent","content",{deltaX:"number",deltaY:"number",showDelay:"number",hideDelay:"number"}]),{_title:t.attr("title")}); +t.attr("title",""); +if(!opts.content){ +opts.content=opts._title; +} +return opts; +}; +$.fn.tooltip.defaults={position:"bottom",content:null,trackMouse:false,deltaX:0,deltaY:0,showEvent:"mouseenter",hideEvent:"mouseleave",showDelay:200,hideDelay:100,onShow:function(e){ +},onHide:function(e){ +},onUpdate:function(_1e1){ +},onPosition:function(left,top){ +},onDestroy:function(){ +}}; +})(jQuery); +(function($){ +$.fn._remove=function(){ +return this.each(function(){ +$(this).remove(); +try{ +this.outerHTML=""; +} +catch(err){ +} +}); +}; +function _1e2(node){ +node._remove(); +}; +function _1e3(_1e4,_1e5){ +var opts=$.data(_1e4,"panel").options; +var _1e6=$.data(_1e4,"panel").panel; +var _1e7=_1e6.children("div.panel-header"); +var _1e8=_1e6.children("div.panel-body"); +if(_1e5){ +$.extend(opts,{width:_1e5.width,height:_1e5.height,left:_1e5.left,top:_1e5.top}); +} +opts.fit?$.extend(opts,_1e6._fit()):_1e6._fit(false); +_1e6.css({left:opts.left,top:opts.top}); +if(!isNaN(opts.width)){ +_1e6._outerWidth(opts.width); +}else{ +_1e6.width("auto"); +} +_1e7.add(_1e8)._outerWidth(_1e6.width()); +if(!isNaN(opts.height)){ +_1e6._outerHeight(opts.height); +_1e8._outerHeight(_1e6.height()-_1e7._outerHeight()); +}else{ +_1e8.height("auto"); +} +_1e6.css("height",""); +opts.onResize.apply(_1e4,[opts.width,opts.height]); +$(_1e4).find(">div:visible,>form>div:visible").triggerHandler("_resize"); +}; +function _1e9(_1ea,_1eb){ +var opts=$.data(_1ea,"panel").options; +var _1ec=$.data(_1ea,"panel").panel; +if(_1eb){ +if(_1eb.left!=null){ +opts.left=_1eb.left; +} +if(_1eb.top!=null){ +opts.top=_1eb.top; +} +} +_1ec.css({left:opts.left,top:opts.top}); +opts.onMove.apply(_1ea,[opts.left,opts.top]); +}; +function _1ed(_1ee){ +$(_1ee).addClass("panel-body"); +var _1ef=$("
                                      ").insertBefore(_1ee); +_1ef[0].appendChild(_1ee); +_1ef.bind("_resize",function(){ +var opts=$.data(_1ee,"panel").options; +if(opts.fit==true){ +_1e3(_1ee); +} +return false; +}); +return _1ef; +}; +function _1f0(_1f1){ +var opts=$.data(_1f1,"panel").options; +var _1f2=$.data(_1f1,"panel").panel; +if(opts.tools&&typeof opts.tools=="string"){ +_1f2.find(">div.panel-header>div.panel-tool .panel-tool-a").appendTo(opts.tools); +} +_1e2(_1f2.children("div.panel-header")); +if(opts.title&&!opts.noheader){ +var _1f3=$("
                                      "+opts.title+"
                                      ").prependTo(_1f2); +if(opts.iconCls){ +_1f3.find(".panel-title").addClass("panel-with-icon"); +$("
                                      ").addClass(opts.iconCls).appendTo(_1f3); +} +var tool=$("
                                      ").appendTo(_1f3); +tool.bind("click",function(e){ +e.stopPropagation(); +}); +if(opts.tools){ +if($.isArray(opts.tools)){ +for(var i=0;i").addClass(opts.tools[i].iconCls).appendTo(tool); +if(opts.tools[i].handler){ +t.bind("click",eval(opts.tools[i].handler)); +} +} +}else{ +$(opts.tools).children().each(function(){ +$(this).addClass($(this).attr("iconCls")).addClass("panel-tool-a").appendTo(tool); +}); +} +} +if(opts.collapsible){ +$("").appendTo(tool).bind("click",function(){ +if(opts.collapsed==true){ +_210(_1f1,true); +}else{ +_205(_1f1,true); +} +return false; +}); +} +if(opts.minimizable){ +$("").appendTo(tool).bind("click",function(){ +_216(_1f1); +return false; +}); +} +if(opts.maximizable){ +$("").appendTo(tool).bind("click",function(){ +if(opts.maximized==true){ +_219(_1f1); +}else{ +_204(_1f1); +} +return false; +}); +} +if(opts.closable){ +$("").appendTo(tool).bind("click",function(){ +_1f4(_1f1); +return false; +}); +} +_1f2.children("div.panel-body").removeClass("panel-body-noheader"); +}else{ +_1f2.children("div.panel-body").addClass("panel-body-noheader"); +} +}; +function _1f5(_1f6,_1f7){ +var _1f8=$.data(_1f6,"panel"); +var opts=_1f8.options; +if(_1f9){ +opts.queryParams=_1f7; +} +if(opts.href){ +if(!_1f8.isLoaded||!opts.cache){ +var _1f9=$.extend({},opts.queryParams); +if(opts.onBeforeLoad.call(_1f6,_1f9)==false){ +return; +} +_1f8.isLoaded=false; +_1fa(_1f6); +if(opts.loadingMessage){ +$(_1f6).html($("
                                      ").html(opts.loadingMessage)); +} +opts.loader.call(_1f6,_1f9,function(data){ +_1fb(opts.extractor.call(_1f6,data)); +opts.onLoad.apply(_1f6,arguments); +_1f8.isLoaded=true; +},function(){ +opts.onLoadError.apply(_1f6,arguments); +}); +} +}else{ +if(opts.content){ +if(!_1f8.isLoaded){ +_1fa(_1f6); +_1fb(opts.content); +_1f8.isLoaded=true; +} +} +} +function _1fb(_1fc){ +$(_1f6).html(_1fc); +$.parser.parse($(_1f6)); +}; +}; +function _1fa(_1fd){ +var t=$(_1fd); +t.find(".combo-f").each(function(){ +$(this).combo("destroy"); +}); +t.find(".m-btn").each(function(){ +$(this).menubutton("destroy"); +}); +t.find(".s-btn").each(function(){ +$(this).splitbutton("destroy"); +}); +t.find(".tooltip-f").each(function(){ +$(this).tooltip("destroy"); +}); +t.children("div").each(function(){ +$(this)._fit(false); +}); +}; +function _1fe(_1ff){ +$(_1ff).find("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible").each(function(){ +$(this).triggerHandler("_resize",[true]); +}); +}; +function _200(_201,_202){ +var opts=$.data(_201,"panel").options; +var _203=$.data(_201,"panel").panel; +if(_202!=true){ +if(opts.onBeforeOpen.call(_201)==false){ +return; +} +} +_203.show(); +opts.closed=false; +opts.minimized=false; +var tool=_203.children("div.panel-header").find("a.panel-tool-restore"); +if(tool.length){ +opts.maximized=true; +} +opts.onOpen.call(_201); +if(opts.maximized==true){ +opts.maximized=false; +_204(_201); +} +if(opts.collapsed==true){ +opts.collapsed=false; +_205(_201); +} +if(!opts.collapsed){ +_1f5(_201); +_1fe(_201); +} +}; +function _1f4(_206,_207){ +var opts=$.data(_206,"panel").options; +var _208=$.data(_206,"panel").panel; +if(_207!=true){ +if(opts.onBeforeClose.call(_206)==false){ +return; +} +} +_208._fit(false); +_208.hide(); +opts.closed=true; +opts.onClose.call(_206); +}; +function _209(_20a,_20b){ +var opts=$.data(_20a,"panel").options; +var _20c=$.data(_20a,"panel").panel; +if(_20b!=true){ +if(opts.onBeforeDestroy.call(_20a)==false){ +return; +} +} +_1fa(_20a); +_1e2(_20c); +opts.onDestroy.call(_20a); +}; +function _205(_20d,_20e){ +var opts=$.data(_20d,"panel").options; +var _20f=$.data(_20d,"panel").panel; +var body=_20f.children("div.panel-body"); +var tool=_20f.children("div.panel-header").find("a.panel-tool-collapse"); +if(opts.collapsed==true){ +return; +} +body.stop(true,true); +if(opts.onBeforeCollapse.call(_20d)==false){ +return; +} +tool.addClass("panel-tool-expand"); +if(_20e==true){ +body.slideUp("normal",function(){ +opts.collapsed=true; +opts.onCollapse.call(_20d); +}); +}else{ +body.hide(); +opts.collapsed=true; +opts.onCollapse.call(_20d); +} +}; +function _210(_211,_212){ +var opts=$.data(_211,"panel").options; +var _213=$.data(_211,"panel").panel; +var body=_213.children("div.panel-body"); +var tool=_213.children("div.panel-header").find("a.panel-tool-collapse"); +if(opts.collapsed==false){ +return; +} +body.stop(true,true); +if(opts.onBeforeExpand.call(_211)==false){ +return; +} +tool.removeClass("panel-tool-expand"); +if(_212==true){ +body.slideDown("normal",function(){ +opts.collapsed=false; +opts.onExpand.call(_211); +_1f5(_211); +_1fe(_211); +}); +}else{ +body.show(); +opts.collapsed=false; +opts.onExpand.call(_211); +_1f5(_211); +_1fe(_211); +} +}; +function _204(_214){ +var opts=$.data(_214,"panel").options; +var _215=$.data(_214,"panel").panel; +var tool=_215.children("div.panel-header").find("a.panel-tool-max"); +if(opts.maximized==true){ +return; +} +tool.addClass("panel-tool-restore"); +if(!$.data(_214,"panel").original){ +$.data(_214,"panel").original={width:opts.width,height:opts.height,left:opts.left,top:opts.top,fit:opts.fit}; +} +opts.left=0; +opts.top=0; +opts.fit=true; +_1e3(_214); +opts.minimized=false; +opts.maximized=true; +opts.onMaximize.call(_214); +}; +function _216(_217){ +var opts=$.data(_217,"panel").options; +var _218=$.data(_217,"panel").panel; +_218._fit(false); +_218.hide(); +opts.minimized=true; +opts.maximized=false; +opts.onMinimize.call(_217); +}; +function _219(_21a){ +var opts=$.data(_21a,"panel").options; +var _21b=$.data(_21a,"panel").panel; +var tool=_21b.children("div.panel-header").find("a.panel-tool-max"); +if(opts.maximized==false){ +return; +} +_21b.show(); +tool.removeClass("panel-tool-restore"); +$.extend(opts,$.data(_21a,"panel").original); +_1e3(_21a); +opts.minimized=false; +opts.maximized=false; +$.data(_21a,"panel").original=null; +opts.onRestore.call(_21a); +}; +function _21c(_21d){ +var opts=$.data(_21d,"panel").options; +var _21e=$.data(_21d,"panel").panel; +var _21f=$(_21d).panel("header"); +var body=$(_21d).panel("body"); +_21e.css(opts.style); +_21e.addClass(opts.cls); +if(opts.border){ +_21f.removeClass("panel-header-noborder"); +body.removeClass("panel-body-noborder"); +}else{ +_21f.addClass("panel-header-noborder"); +body.addClass("panel-body-noborder"); +} +_21f.addClass(opts.headerCls); +body.addClass(opts.bodyCls); +if(opts.id){ +$(_21d).attr("id",opts.id); +}else{ +$(_21d).attr("id",""); +} +}; +function _220(_221,_222){ +$.data(_221,"panel").options.title=_222; +$(_221).panel("header").find("div.panel-title").html(_222); +}; +var TO=false; +var _223=true; +$(window).unbind(".panel").bind("resize.panel",function(){ +if(!_223){ +return; +} +if(TO!==false){ +clearTimeout(TO); +} +TO=setTimeout(function(){ +_223=false; +var _224=$("body.layout"); +if(_224.length){ +_224.layout("resize"); +}else{ +$("body").children("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible").triggerHandler("_resize"); +} +_223=true; +TO=false; +},200); +}); +$.fn.panel=function(_225,_226){ +if(typeof _225=="string"){ +return $.fn.panel.methods[_225](this,_226); +} +_225=_225||{}; +return this.each(function(){ +var _227=$.data(this,"panel"); +var opts; +if(_227){ +opts=$.extend(_227.options,_225); +_227.isLoaded=false; +}else{ +opts=$.extend({},$.fn.panel.defaults,$.fn.panel.parseOptions(this),_225); +$(this).attr("title",""); +_227=$.data(this,"panel",{options:opts,panel:_1ed(this),isLoaded:false}); +} +_1f0(this); +_21c(this); +if(opts.doSize==true){ +_227.panel.css("display","block"); +_1e3(this); +} +if(opts.closed==true||opts.minimized==true){ +_227.panel.hide(); +}else{ +_200(this); +} +}); +}; +$.fn.panel.methods={options:function(jq){ +return $.data(jq[0],"panel").options; +},panel:function(jq){ +return $.data(jq[0],"panel").panel; +},header:function(jq){ +return $.data(jq[0],"panel").panel.find(">div.panel-header"); +},body:function(jq){ +return $.data(jq[0],"panel").panel.find(">div.panel-body"); +},setTitle:function(jq,_228){ +return jq.each(function(){ +_220(this,_228); +}); +},open:function(jq,_229){ +return jq.each(function(){ +_200(this,_229); +}); +},close:function(jq,_22a){ +return jq.each(function(){ +_1f4(this,_22a); +}); +},destroy:function(jq,_22b){ +return jq.each(function(){ +_209(this,_22b); +}); +},refresh:function(jq,href){ +return jq.each(function(){ +var _22c=$.data(this,"panel"); +_22c.isLoaded=false; +if(href){ +if(typeof href=="string"){ +_22c.options.href=href; +}else{ +_22c.options.queryParams=href; +} +} +_1f5(this); +}); +},resize:function(jq,_22d){ +return jq.each(function(){ +_1e3(this,_22d); +}); +},move:function(jq,_22e){ +return jq.each(function(){ +_1e9(this,_22e); +}); +},maximize:function(jq){ +return jq.each(function(){ +_204(this); +}); +},minimize:function(jq){ +return jq.each(function(){ +_216(this); +}); +},restore:function(jq){ +return jq.each(function(){ +_219(this); +}); +},collapse:function(jq,_22f){ +return jq.each(function(){ +_205(this,_22f); +}); +},expand:function(jq,_230){ +return jq.each(function(){ +_210(this,_230); +}); +}}; +$.fn.panel.parseOptions=function(_231){ +var t=$(_231); +return $.extend({},$.parser.parseOptions(_231,["id","width","height","left","top","title","iconCls","cls","headerCls","bodyCls","tools","href","method",{cache:"boolean",fit:"boolean",border:"boolean",noheader:"boolean"},{collapsible:"boolean",minimizable:"boolean",maximizable:"boolean"},{closable:"boolean",collapsed:"boolean",minimized:"boolean",maximized:"boolean",closed:"boolean"}]),{loadingMessage:(t.attr("loadingMessage")!=undefined?t.attr("loadingMessage"):undefined)}); +}; +$.fn.panel.defaults={id:null,title:null,iconCls:null,width:"auto",height:"auto",left:null,top:null,cls:null,headerCls:null,bodyCls:null,style:{},href:null,cache:true,fit:false,border:true,doSize:true,noheader:false,content:null,collapsible:false,minimizable:false,maximizable:false,closable:false,collapsed:false,minimized:false,maximized:false,closed:false,tools:null,queryParams:{},method:"get",href:null,loadingMessage:"Loading...",loader:function(_232,_233,_234){ +var opts=$(this).panel("options"); +if(!opts.href){ +return false; +} +$.ajax({type:opts.method,url:opts.href,cache:false,data:_232,dataType:"html",success:function(data){ +_233(data); +},error:function(){ +_234.apply(this,arguments); +}}); +},extractor:function(data){ +var _235=/]*>((.|[\n\r])*)<\/body>/im; +var _236=_235.exec(data); +if(_236){ +return _236[1]; +}else{ +return data; +} +},onBeforeLoad:function(_237){ +},onLoad:function(){ +},onLoadError:function(){ +},onBeforeOpen:function(){ +},onOpen:function(){ +},onBeforeClose:function(){ +},onClose:function(){ +},onBeforeDestroy:function(){ +},onDestroy:function(){ +},onResize:function(_238,_239){ +},onMove:function(left,top){ +},onMaximize:function(){ +},onRestore:function(){ +},onMinimize:function(){ +},onBeforeCollapse:function(){ +},onBeforeExpand:function(){ +},onCollapse:function(){ +},onExpand:function(){ +}}; +})(jQuery); +(function($){ +function _23a(_23b,_23c){ +var opts=$.data(_23b,"window").options; +if(_23c){ +$.extend(opts,_23c); +} +$(_23b).panel("resize",opts); +}; +function _23d(_23e,_23f){ +var _240=$.data(_23e,"window"); +if(_23f){ +if(_23f.left!=null){ +_240.options.left=_23f.left; +} +if(_23f.top!=null){ +_240.options.top=_23f.top; +} +} +$(_23e).panel("move",_240.options); +if(_240.shadow){ +_240.shadow.css({left:_240.options.left,top:_240.options.top}); +} +}; +function _241(_242,_243){ +var _244=$.data(_242,"window"); +var opts=_244.options; +var _245=opts.width; +if(isNaN(_245)){ +_245=_244.window._outerWidth(); +} +if(opts.inline){ +var _246=_244.window.parent(); +opts.left=(_246.width()-_245)/2+_246.scrollLeft(); +}else{ +opts.left=($(window)._outerWidth()-_245)/2+$(document).scrollLeft(); +} +if(_243){ +_23d(_242); +} +}; +function _247(_248,_249){ +var _24a=$.data(_248,"window"); +var opts=_24a.options; +var _24b=opts.height; +if(isNaN(_24b)){ +_24b=_24a.window._outerHeight(); +} +if(opts.inline){ +var _24c=_24a.window.parent(); +opts.top=(_24c.height()-_24b)/2+_24c.scrollTop(); +}else{ +opts.top=($(window)._outerHeight()-_24b)/2+$(document).scrollTop(); +} +if(_249){ +_23d(_248); +} +}; +function _24d(_24e){ +var _24f=$.data(_24e,"window"); +var _250=_24f.options.closed; +var win=$(_24e).panel($.extend({},_24f.options,{border:false,doSize:true,closed:true,cls:"window",headerCls:"window-header",bodyCls:"window-body "+(_24f.options.noheader?"window-body-noheader":""),onBeforeDestroy:function(){ +if(_24f.options.onBeforeDestroy.call(_24e)==false){ +return false; +} +if(_24f.shadow){ +_24f.shadow.remove(); +} +if(_24f.mask){ +_24f.mask.remove(); +} +},onClose:function(){ +if(_24f.shadow){ +_24f.shadow.hide(); +} +if(_24f.mask){ +_24f.mask.hide(); +} +_24f.options.onClose.call(_24e); +},onOpen:function(){ +if(_24f.mask){ +_24f.mask.css({display:"block",zIndex:$.fn.window.defaults.zIndex++}); +} +if(_24f.shadow){ +_24f.shadow.css({display:"block",zIndex:$.fn.window.defaults.zIndex++,left:_24f.options.left,top:_24f.options.top,width:_24f.window._outerWidth(),height:_24f.window._outerHeight()}); +} +_24f.window.css("z-index",$.fn.window.defaults.zIndex++); +_24f.options.onOpen.call(_24e); +},onResize:function(_251,_252){ +var opts=$(this).panel("options"); +$.extend(_24f.options,{width:opts.width,height:opts.height,left:opts.left,top:opts.top}); +if(_24f.shadow){ +_24f.shadow.css({left:_24f.options.left,top:_24f.options.top,width:_24f.window._outerWidth(),height:_24f.window._outerHeight()}); +} +_24f.options.onResize.call(_24e,_251,_252); +},onMinimize:function(){ +if(_24f.shadow){ +_24f.shadow.hide(); +} +if(_24f.mask){ +_24f.mask.hide(); +} +_24f.options.onMinimize.call(_24e); +},onBeforeCollapse:function(){ +if(_24f.options.onBeforeCollapse.call(_24e)==false){ +return false; +} +if(_24f.shadow){ +_24f.shadow.hide(); +} +},onExpand:function(){ +if(_24f.shadow){ +_24f.shadow.show(); +} +_24f.options.onExpand.call(_24e); +}})); +_24f.window=win.panel("panel"); +if(_24f.mask){ +_24f.mask.remove(); +} +if(_24f.options.modal==true){ +_24f.mask=$("
                                      ").insertAfter(_24f.window); +_24f.mask.css({width:(_24f.options.inline?_24f.mask.parent().width():_253().width),height:(_24f.options.inline?_24f.mask.parent().height():_253().height),display:"none"}); +} +if(_24f.shadow){ +_24f.shadow.remove(); +} +if(_24f.options.shadow==true){ +_24f.shadow=$("
                                      ").insertAfter(_24f.window); +_24f.shadow.css({display:"none"}); +} +if(_24f.options.left==null){ +_241(_24e); +} +if(_24f.options.top==null){ +_247(_24e); +} +_23d(_24e); +if(!_250){ +win.window("open"); +} +}; +function _254(_255){ +var _256=$.data(_255,"window"); +_256.window.draggable({handle:">div.panel-header>div.panel-title",disabled:_256.options.draggable==false,onStartDrag:function(e){ +if(_256.mask){ +_256.mask.css("z-index",$.fn.window.defaults.zIndex++); +} +if(_256.shadow){ +_256.shadow.css("z-index",$.fn.window.defaults.zIndex++); +} +_256.window.css("z-index",$.fn.window.defaults.zIndex++); +if(!_256.proxy){ +_256.proxy=$("
                                      ").insertAfter(_256.window); +} +_256.proxy.css({display:"none",zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_256.proxy._outerWidth(_256.window._outerWidth()); +_256.proxy._outerHeight(_256.window._outerHeight()); +setTimeout(function(){ +if(_256.proxy){ +_256.proxy.show(); +} +},500); +},onDrag:function(e){ +_256.proxy.css({display:"block",left:e.data.left,top:e.data.top}); +return false; +},onStopDrag:function(e){ +_256.options.left=e.data.left; +_256.options.top=e.data.top; +$(_255).window("move"); +_256.proxy.remove(); +_256.proxy=null; +}}); +_256.window.resizable({disabled:_256.options.resizable==false,onStartResize:function(e){ +_256.pmask=$("
                                      ").insertAfter(_256.window); +_256.pmask.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top,width:_256.window._outerWidth(),height:_256.window._outerHeight()}); +if(!_256.proxy){ +_256.proxy=$("
                                      ").insertAfter(_256.window); +} +_256.proxy.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_256.proxy._outerWidth(e.data.width); +_256.proxy._outerHeight(e.data.height); +},onResize:function(e){ +_256.proxy.css({left:e.data.left,top:e.data.top}); +_256.proxy._outerWidth(e.data.width); +_256.proxy._outerHeight(e.data.height); +return false; +},onStopResize:function(e){ +$.extend(_256.options,{left:e.data.left,top:e.data.top,width:e.data.width,height:e.data.height}); +_23a(_255); +_256.pmask.remove(); +_256.pmask=null; +_256.proxy.remove(); +_256.proxy=null; +}}); +}; +function _253(){ +if(document.compatMode=="BackCompat"){ +return {width:Math.max(document.body.scrollWidth,document.body.clientWidth),height:Math.max(document.body.scrollHeight,document.body.clientHeight)}; +}else{ +return {width:Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth),height:Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight)}; +} +}; +$(window).resize(function(){ +$("body>div.window-mask").css({width:$(window)._outerWidth(),height:$(window)._outerHeight()}); +setTimeout(function(){ +$("body>div.window-mask").css({width:_253().width,height:_253().height}); +},50); +}); +$.fn.window=function(_257,_258){ +if(typeof _257=="string"){ +var _259=$.fn.window.methods[_257]; +if(_259){ +return _259(this,_258); +}else{ +return this.panel(_257,_258); +} +} +_257=_257||{}; +return this.each(function(){ +var _25a=$.data(this,"window"); +if(_25a){ +$.extend(_25a.options,_257); +}else{ +_25a=$.data(this,"window",{options:$.extend({},$.fn.window.defaults,$.fn.window.parseOptions(this),_257)}); +if(!_25a.options.inline){ +document.body.appendChild(this); +} +} +_24d(this); +_254(this); +}); +}; +$.fn.window.methods={options:function(jq){ +var _25b=jq.panel("options"); +var _25c=$.data(jq[0],"window").options; +return $.extend(_25c,{closed:_25b.closed,collapsed:_25b.collapsed,minimized:_25b.minimized,maximized:_25b.maximized}); +},window:function(jq){ +return $.data(jq[0],"window").window; +},resize:function(jq,_25d){ +return jq.each(function(){ +_23a(this,_25d); +}); +},move:function(jq,_25e){ +return jq.each(function(){ +_23d(this,_25e); +}); +},hcenter:function(jq){ +return jq.each(function(){ +_241(this,true); +}); +},vcenter:function(jq){ +return jq.each(function(){ +_247(this,true); +}); +},center:function(jq){ +return jq.each(function(){ +_241(this); +_247(this); +_23d(this); +}); +}}; +$.fn.window.parseOptions=function(_25f){ +return $.extend({},$.fn.panel.parseOptions(_25f),$.parser.parseOptions(_25f,[{draggable:"boolean",resizable:"boolean",shadow:"boolean",modal:"boolean",inline:"boolean"}])); +}; +$.fn.window.defaults=$.extend({},$.fn.panel.defaults,{zIndex:9000,draggable:true,resizable:true,shadow:true,modal:false,inline:false,title:"New Window",collapsible:true,minimizable:true,maximizable:true,closable:true,closed:false}); +})(jQuery); +(function($){ +function _260(_261){ +var cp=document.createElement("div"); +while(_261.firstChild){ +cp.appendChild(_261.firstChild); +} +_261.appendChild(cp); +var _262=$(cp); +_262.attr("style",$(_261).attr("style")); +$(_261).removeAttr("style").css("overflow","hidden"); +_262.panel({border:false,doSize:false,bodyCls:"dialog-content"}); +return _262; +}; +function _263(_264){ +var opts=$.data(_264,"dialog").options; +var _265=$.data(_264,"dialog").contentPanel; +if(opts.toolbar){ +if($.isArray(opts.toolbar)){ +$(_264).find("div.dialog-toolbar").remove(); +var _266=$("
                                      ").prependTo(_264); +var tr=_266.find("tr"); +for(var i=0;i
                                      ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(btn.handler||function(){ +}); +tool.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +$(opts.toolbar).addClass("dialog-toolbar").prependTo(_264); +$(opts.toolbar).show(); +} +}else{ +$(_264).find("div.dialog-toolbar").remove(); +} +if(opts.buttons){ +if($.isArray(opts.buttons)){ +$(_264).find("div.dialog-button").remove(); +var _267=$("
                                      ").appendTo(_264); +for(var i=0;i").appendTo(_267); +if(p.handler){ +_268[0].onclick=p.handler; +} +_268.linkbutton(p); +} +}else{ +$(opts.buttons).addClass("dialog-button").appendTo(_264); +$(opts.buttons).show(); +} +}else{ +$(_264).find("div.dialog-button").remove(); +} +var _269=opts.href; +var _26a=opts.content; +opts.href=null; +opts.content=null; +_265.panel({closed:opts.closed,cache:opts.cache,href:_269,content:_26a,onLoad:function(){ +if(opts.height=="auto"){ +$(_264).window("resize"); +} +opts.onLoad.apply(_264,arguments); +}}); +$(_264).window($.extend({},opts,{onOpen:function(){ +if(_265.panel("options").closed){ +_265.panel("open"); +} +if(opts.onOpen){ +opts.onOpen.call(_264); +} +},onResize:function(_26b,_26c){ +var _26d=$(_264); +_265.panel("panel").show(); +_265.panel("resize",{width:_26d.width(),height:(_26c=="auto")?"auto":_26d.height()-_26d.children("div.dialog-toolbar")._outerHeight()-_26d.children("div.dialog-button")._outerHeight()}); +if(opts.onResize){ +opts.onResize.call(_264,_26b,_26c); +} +}})); +opts.href=_269; +opts.content=_26a; +}; +function _26e(_26f,href){ +var _270=$.data(_26f,"dialog").contentPanel; +_270.panel("refresh",href); +}; +$.fn.dialog=function(_271,_272){ +if(typeof _271=="string"){ +var _273=$.fn.dialog.methods[_271]; +if(_273){ +return _273(this,_272); +}else{ +return this.window(_271,_272); +} +} +_271=_271||{}; +return this.each(function(){ +var _274=$.data(this,"dialog"); +if(_274){ +$.extend(_274.options,_271); +}else{ +$.data(this,"dialog",{options:$.extend({},$.fn.dialog.defaults,$.fn.dialog.parseOptions(this),_271),contentPanel:_260(this)}); +} +_263(this); +}); +}; +$.fn.dialog.methods={options:function(jq){ +var _275=$.data(jq[0],"dialog").options; +var _276=jq.panel("options"); +$.extend(_275,{closed:_276.closed,collapsed:_276.collapsed,minimized:_276.minimized,maximized:_276.maximized}); +var _277=$.data(jq[0],"dialog").contentPanel; +return _275; +},dialog:function(jq){ +return jq.window("window"); +},refresh:function(jq,href){ +return jq.each(function(){ +_26e(this,href); +}); +}}; +$.fn.dialog.parseOptions=function(_278){ +return $.extend({},$.fn.window.parseOptions(_278),$.parser.parseOptions(_278,["toolbar","buttons"])); +}; +$.fn.dialog.defaults=$.extend({},$.fn.window.defaults,{title:"New Dialog",collapsible:false,minimizable:false,maximizable:false,resizable:false,toolbar:null,buttons:null}); +})(jQuery); +(function($){ +function show(el,type,_279,_27a){ +var win=$(el).window("window"); +if(!win){ +return; +} +switch(type){ +case null: +win.show(); +break; +case "slide": +win.slideDown(_279); +break; +case "fade": +win.fadeIn(_279); +break; +case "show": +win.show(_279); +break; +} +var _27b=null; +if(_27a>0){ +_27b=setTimeout(function(){ +hide(el,type,_279); +},_27a); +} +win.hover(function(){ +if(_27b){ +clearTimeout(_27b); +} +},function(){ +if(_27a>0){ +_27b=setTimeout(function(){ +hide(el,type,_279); +},_27a); +} +}); +}; +function hide(el,type,_27c){ +if(el.locked==true){ +return; +} +el.locked=true; +var win=$(el).window("window"); +if(!win){ +return; +} +switch(type){ +case null: +win.hide(); +break; +case "slide": +win.slideUp(_27c); +break; +case "fade": +win.fadeOut(_27c); +break; +case "show": +win.hide(_27c); +break; +} +setTimeout(function(){ +$(el).window("destroy"); +},_27c); +}; +function _27d(_27e){ +var opts=$.extend({},$.fn.window.defaults,{collapsible:false,minimizable:false,maximizable:false,shadow:false,draggable:false,resizable:false,closed:true,style:{left:"",top:"",right:0,zIndex:$.fn.window.defaults.zIndex++,bottom:-document.body.scrollTop-document.documentElement.scrollTop},onBeforeOpen:function(){ +show(this,opts.showType,opts.showSpeed,opts.timeout); +return false; +},onBeforeClose:function(){ +hide(this,opts.showType,opts.showSpeed); +return false; +}},{title:"",width:250,height:100,showType:"slide",showSpeed:600,msg:"",timeout:4000},_27e); +opts.style.zIndex=$.fn.window.defaults.zIndex++; +var win=$("
                                      ").html(opts.msg).appendTo("body"); +win.window(opts); +win.window("window").css(opts.style); +win.window("open"); +return win; +}; +function _27f(_280,_281,_282){ +var win=$("
                                      ").appendTo("body"); +win.append(_281); +if(_282){ +var tb=$("
                                      ").appendTo(win); +for(var _283 in _282){ +$("").attr("href","javascript:void(0)").text(_283).css("margin-left",10).bind("click",eval(_282[_283])).appendTo(tb).linkbutton(); +} +} +win.window({title:_280,noheader:(_280?false:true),width:300,height:"auto",modal:true,collapsible:false,minimizable:false,maximizable:false,resizable:false,onClose:function(){ +setTimeout(function(){ +win.window("destroy"); +},100); +}}); +win.window("window").addClass("messager-window"); +win.children("div.messager-button").children("a:first").focus(); +return win; +}; +$.messager={show:function(_284){ +return _27d(_284); +},alert:function(_285,msg,icon,fn){ +var _286="
                                      "+msg+"
                                      "; +switch(icon){ +case "error": +_286="
                                      "+_286; +break; +case "info": +_286="
                                      "+_286; +break; +case "question": +_286="
                                      "+_286; +break; +case "warning": +_286="
                                      "+_286; +break; +} +_286+="
                                      "; +var _287={}; +_287[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn(); +return false; +} +}; +var win=_27f(_285,_286,_287); +return win; +},confirm:function(_288,msg,fn){ +var _289="
                                      "+"
                                      "+msg+"
                                      "+"
                                      "; +var _28a={}; +_28a[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn(true); +return false; +} +}; +_28a[$.messager.defaults.cancel]=function(){ +win.window("close"); +if(fn){ +fn(false); +return false; +} +}; +var win=_27f(_288,_289,_28a); +return win; +},prompt:function(_28b,msg,fn){ +var _28c="
                                      "+"
                                      "+msg+"
                                      "+"
                                      "+"
                                      "+"
                                      "; +var _28d={}; +_28d[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn($(".messager-input",win).val()); +return false; +} +}; +_28d[$.messager.defaults.cancel]=function(){ +win.window("close"); +if(fn){ +fn(); +return false; +} +}; +var win=_27f(_28b,_28c,_28d); +win.children("input.messager-input").focus(); +return win; +},progress:function(_28e){ +var _28f={bar:function(){ +return $("body>div.messager-window").find("div.messager-p-bar"); +},close:function(){ +var win=$("body>div.messager-window>div.messager-body:has(div.messager-progress)"); +if(win.length){ +win.window("close"); +} +}}; +if(typeof _28e=="string"){ +var _290=_28f[_28e]; +return _290(); +} +var opts=$.extend({title:"",msg:"",text:undefined,interval:300},_28e||{}); +var _291="
                                      "; +var win=_27f(opts.title,_291,null); +win.find("div.messager-p-msg").html(opts.msg); +var bar=win.find("div.messager-p-bar"); +bar.progressbar({text:opts.text}); +win.window({closable:false,onClose:function(){ +if(this.timer){ +clearInterval(this.timer); +} +$(this).window("destroy"); +}}); +if(opts.interval){ +win[0].timer=setInterval(function(){ +var v=bar.progressbar("getValue"); +v+=10; +if(v>100){ +v=0; +} +bar.progressbar("setValue",v); +},opts.interval); +} +return win; +}}; +$.messager.defaults={ok:"Ok",cancel:"Cancel"}; +})(jQuery); +(function($){ +function _292(_293){ +var _294=$.data(_293,"accordion"); +var opts=_294.options; +var _295=_294.panels; +var cc=$(_293); +opts.fit?$.extend(opts,cc._fit()):cc._fit(false); +if(!isNaN(opts.width)){ +cc._outerWidth(opts.width); +}else{ +cc.css("width",""); +} +var _296=0; +var _297="auto"; +var _298=cc.find(">div.panel>div.accordion-header"); +if(_298.length){ +_296=$(_298[0]).css("height","")._outerHeight(); +} +if(!isNaN(opts.height)){ +cc._outerHeight(opts.height); +_297=cc.height()-_296*_298.length; +}else{ +cc.css("height",""); +} +_299(true,_297-_299(false)+1); +function _299(_29a,_29b){ +var _29c=0; +for(var i=0;i<_295.length;i++){ +var p=_295[i]; +var h=p.panel("header")._outerHeight(_296); +if(p.panel("options").collapsible==_29a){ +var _29d=isNaN(_29b)?undefined:(_29b+_296*h.length); +p.panel("resize",{width:cc.width(),height:(_29a?_29d:undefined)}); +_29c+=p.panel("panel").outerHeight()-_296; +} +} +return _29c; +}; +}; +function _29e(_29f,_2a0,_2a1,all){ +var _2a2=$.data(_29f,"accordion").panels; +var pp=[]; +for(var i=0;i<_2a2.length;i++){ +var p=_2a2[i]; +if(_2a0){ +if(p.panel("options")[_2a0]==_2a1){ +pp.push(p); +} +}else{ +if(p[0]==$(_2a1)[0]){ +return i; +} +} +} +if(_2a0){ +return all?pp:(pp.length?pp[0]:null); +}else{ +return -1; +} +}; +function _2a3(_2a4){ +return _29e(_2a4,"collapsed",false,true); +}; +function _2a5(_2a6){ +var pp=_2a3(_2a6); +return pp.length?pp[0]:null; +}; +function _2a7(_2a8,_2a9){ +return _29e(_2a8,null,_2a9); +}; +function _2aa(_2ab,_2ac){ +var _2ad=$.data(_2ab,"accordion").panels; +if(typeof _2ac=="number"){ +if(_2ac<0||_2ac>=_2ad.length){ +return null; +}else{ +return _2ad[_2ac]; +} +} +return _29e(_2ab,"title",_2ac); +}; +function _2ae(_2af){ +var opts=$.data(_2af,"accordion").options; +var cc=$(_2af); +if(opts.border){ +cc.removeClass("accordion-noborder"); +}else{ +cc.addClass("accordion-noborder"); +} +}; +function init(_2b0){ +var _2b1=$.data(_2b0,"accordion"); +var cc=$(_2b0); +cc.addClass("accordion"); +_2b1.panels=[]; +cc.children("div").each(function(){ +var opts=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +var pp=$(this); +_2b1.panels.push(pp); +_2b3(_2b0,pp,opts); +}); +cc.bind("_resize",function(e,_2b2){ +var opts=$.data(_2b0,"accordion").options; +if(opts.fit==true||_2b2){ +_292(_2b0); +} +return false; +}); +}; +function _2b3(_2b4,pp,_2b5){ +var opts=$.data(_2b4,"accordion").options; +pp.panel($.extend({},{collapsible:true,minimizable:false,maximizable:false,closable:false,doSize:false,collapsed:true,headerCls:"accordion-header",bodyCls:"accordion-body"},_2b5,{onBeforeExpand:function(){ +if(_2b5.onBeforeExpand){ +if(_2b5.onBeforeExpand.call(this)==false){ +return false; +} +} +if(!opts.multiple){ +var all=$.grep(_2a3(_2b4),function(p){ +return p.panel("options").collapsible; +}); +for(var i=0;i").addClass("accordion-collapse accordion-expand").appendTo(tool); +t.bind("click",function(){ +var _2b9=_2a7(_2b4,pp); +if(pp.panel("options").collapsed){ +_2ba(_2b4,_2b9); +}else{ +_2be(_2b4,_2b9); +} +return false; +}); +pp.panel("options").collapsible?t.show():t.hide(); +_2b8.click(function(){ +$(this).find("a.accordion-collapse:visible").triggerHandler("click"); +return false; +}); +}; +function _2ba(_2bb,_2bc){ +var p=_2aa(_2bb,_2bc); +if(!p){ +return; +} +_2bd(_2bb); +var opts=$.data(_2bb,"accordion").options; +p.panel("expand",opts.animate); +}; +function _2be(_2bf,_2c0){ +var p=_2aa(_2bf,_2c0); +if(!p){ +return; +} +_2bd(_2bf); +var opts=$.data(_2bf,"accordion").options; +p.panel("collapse",opts.animate); +}; +function _2c1(_2c2){ +var opts=$.data(_2c2,"accordion").options; +var p=_29e(_2c2,"selected",true); +if(p){ +_2c3(_2a7(_2c2,p)); +}else{ +_2c3(opts.selected); +} +function _2c3(_2c4){ +var _2c5=opts.animate; +opts.animate=false; +_2ba(_2c2,_2c4); +opts.animate=_2c5; +}; +}; +function _2bd(_2c6){ +var _2c7=$.data(_2c6,"accordion").panels; +for(var i=0;i<_2c7.length;i++){ +_2c7[i].stop(true,true); +} +}; +function add(_2c8,_2c9){ +var _2ca=$.data(_2c8,"accordion"); +var opts=_2ca.options; +var _2cb=_2ca.panels; +if(_2c9.selected==undefined){ +_2c9.selected=true; +} +_2bd(_2c8); +var pp=$("
                                      ").appendTo(_2c8); +_2cb.push(pp); +_2b3(_2c8,pp,_2c9); +_292(_2c8); +opts.onAdd.call(_2c8,_2c9.title,_2cb.length-1); +if(_2c9.selected){ +_2ba(_2c8,_2cb.length-1); +} +}; +function _2cc(_2cd,_2ce){ +var _2cf=$.data(_2cd,"accordion"); +var opts=_2cf.options; +var _2d0=_2cf.panels; +_2bd(_2cd); +var _2d1=_2aa(_2cd,_2ce); +var _2d2=_2d1.panel("options").title; +var _2d3=_2a7(_2cd,_2d1); +if(!_2d1){ +return; +} +if(opts.onBeforeRemove.call(_2cd,_2d2,_2d3)==false){ +return; +} +_2d0.splice(_2d3,1); +_2d1.panel("destroy"); +if(_2d0.length){ +_292(_2cd); +var curr=_2a5(_2cd); +if(!curr){ +_2ba(_2cd,0); +} +} +opts.onRemove.call(_2cd,_2d2,_2d3); +}; +$.fn.accordion=function(_2d4,_2d5){ +if(typeof _2d4=="string"){ +return $.fn.accordion.methods[_2d4](this,_2d5); +} +_2d4=_2d4||{}; +return this.each(function(){ +var _2d6=$.data(this,"accordion"); +if(_2d6){ +$.extend(_2d6.options,_2d4); +}else{ +$.data(this,"accordion",{options:$.extend({},$.fn.accordion.defaults,$.fn.accordion.parseOptions(this),_2d4),accordion:$(this).addClass("accordion"),panels:[]}); +init(this); +} +_2ae(this); +_292(this); +_2c1(this); +}); +}; +$.fn.accordion.methods={options:function(jq){ +return $.data(jq[0],"accordion").options; +},panels:function(jq){ +return $.data(jq[0],"accordion").panels; +},resize:function(jq){ +return jq.each(function(){ +_292(this); +}); +},getSelections:function(jq){ +return _2a3(jq[0]); +},getSelected:function(jq){ +return _2a5(jq[0]); +},getPanel:function(jq,_2d7){ +return _2aa(jq[0],_2d7); +},getPanelIndex:function(jq,_2d8){ +return _2a7(jq[0],_2d8); +},select:function(jq,_2d9){ +return jq.each(function(){ +_2ba(this,_2d9); +}); +},unselect:function(jq,_2da){ +return jq.each(function(){ +_2be(this,_2da); +}); +},add:function(jq,_2db){ +return jq.each(function(){ +add(this,_2db); +}); +},remove:function(jq,_2dc){ +return jq.each(function(){ +_2cc(this,_2dc); +}); +}}; +$.fn.accordion.parseOptions=function(_2dd){ +var t=$(_2dd); +return $.extend({},$.parser.parseOptions(_2dd,["width","height",{fit:"boolean",border:"boolean",animate:"boolean",multiple:"boolean",selected:"number"}])); +}; +$.fn.accordion.defaults={width:"auto",height:"auto",fit:false,border:true,animate:true,multiple:false,selected:0,onSelect:function(_2de,_2df){ +},onUnselect:function(_2e0,_2e1){ +},onAdd:function(_2e2,_2e3){ +},onBeforeRemove:function(_2e4,_2e5){ +},onRemove:function(_2e6,_2e7){ +}}; +})(jQuery); +(function($){ +function _2e8(_2e9){ +var opts=$.data(_2e9,"tabs").options; +if(opts.tabPosition=="left"||opts.tabPosition=="right"||!opts.showHeader){ +return; +} +var _2ea=$(_2e9).children("div.tabs-header"); +var tool=_2ea.children("div.tabs-tool"); +var _2eb=_2ea.children("div.tabs-scroller-left"); +var _2ec=_2ea.children("div.tabs-scroller-right"); +var wrap=_2ea.children("div.tabs-wrap"); +var _2ed=_2ea.outerHeight(); +if(opts.plain){ +_2ed-=_2ed-_2ea.height(); +} +tool._outerHeight(_2ed); +var _2ee=0; +$("ul.tabs li",_2ea).each(function(){ +_2ee+=$(this).outerWidth(true); +}); +var _2ef=_2ea.width()-tool._outerWidth(); +if(_2ee>_2ef){ +_2eb.add(_2ec).show()._outerHeight(_2ed); +if(opts.toolPosition=="left"){ +tool.css({left:_2eb.outerWidth(),right:""}); +wrap.css({marginLeft:_2eb.outerWidth()+tool._outerWidth(),marginRight:_2ec._outerWidth(),width:_2ef-_2eb.outerWidth()-_2ec.outerWidth()}); +}else{ +tool.css({left:"",right:_2ec.outerWidth()}); +wrap.css({marginLeft:_2eb.outerWidth(),marginRight:_2ec.outerWidth()+tool._outerWidth(),width:_2ef-_2eb.outerWidth()-_2ec.outerWidth()}); +} +}else{ +_2eb.add(_2ec).hide(); +if(opts.toolPosition=="left"){ +tool.css({left:0,right:""}); +wrap.css({marginLeft:tool._outerWidth(),marginRight:0,width:_2ef}); +}else{ +tool.css({left:"",right:0}); +wrap.css({marginLeft:0,marginRight:tool._outerWidth(),width:_2ef}); +} +} +}; +function _2f0(_2f1){ +var opts=$.data(_2f1,"tabs").options; +var _2f2=$(_2f1).children("div.tabs-header"); +if(opts.tools){ +if(typeof opts.tools=="string"){ +$(opts.tools).addClass("tabs-tool").appendTo(_2f2); +$(opts.tools).show(); +}else{ +_2f2.children("div.tabs-tool").remove(); +var _2f3=$("
                                      ").appendTo(_2f2); +var tr=_2f3.find("tr"); +for(var i=0;i").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(opts.tools[i].handler||function(){ +}); +tool.linkbutton($.extend({},opts.tools[i],{plain:true})); +} +} +}else{ +_2f2.children("div.tabs-tool").remove(); +} +}; +function _2f4(_2f5){ +var _2f6=$.data(_2f5,"tabs"); +var opts=_2f6.options; +var cc=$(_2f5); +opts.fit?$.extend(opts,cc._fit()):cc._fit(false); +cc.width(opts.width).height(opts.height); +var _2f7=$(_2f5).children("div.tabs-header"); +var _2f8=$(_2f5).children("div.tabs-panels"); +var wrap=_2f7.find("div.tabs-wrap"); +var ul=wrap.find(".tabs"); +for(var i=0;i<_2f6.tabs.length;i++){ +var _2f9=_2f6.tabs[i].panel("options"); +var p_t=_2f9.tab.find("a.tabs-inner"); +var _2fa=parseInt(_2f9.tabWidth||opts.tabWidth)||undefined; +if(_2fa){ +p_t._outerWidth(_2fa); +}else{ +p_t.css("width",""); +} +p_t._outerHeight(opts.tabHeight); +p_t.css("lineHeight",p_t.height()+"px"); +} +if(opts.tabPosition=="left"||opts.tabPosition=="right"){ +_2f7._outerWidth(opts.showHeader?opts.headerWidth:0); +_2f8._outerWidth(cc.width()-_2f7.outerWidth()); +_2f7.add(_2f8)._outerHeight(opts.height); +wrap._outerWidth(_2f7.width()); +ul._outerWidth(wrap.width()).css("height",""); +}else{ +var lrt=_2f7.children("div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool"); +_2f7._outerWidth(opts.width).css("height",""); +if(opts.showHeader){ +_2f7.css("background-color",""); +wrap.css("height",""); +lrt.show(); +}else{ +_2f7.css("background-color","transparent"); +_2f7._outerHeight(0); +wrap._outerHeight(0); +lrt.hide(); +} +ul._outerHeight(opts.tabHeight).css("width",""); +_2e8(_2f5); +var _2fb=opts.height; +if(!isNaN(_2fb)){ +_2f8._outerHeight(_2fb-_2f7.outerHeight()); +}else{ +_2f8.height("auto"); +} +var _2fa=opts.width; +if(!isNaN(_2fa)){ +_2f8._outerWidth(_2fa); +}else{ +_2f8.width("auto"); +} +} +}; +function _2fc(_2fd){ +var opts=$.data(_2fd,"tabs").options; +var tab=_2fe(_2fd); +if(tab){ +var _2ff=$(_2fd).children("div.tabs-panels"); +var _300=opts.width=="auto"?"auto":_2ff.width(); +var _301=opts.height=="auto"?"auto":_2ff.height(); +tab.panel("resize",{width:_300,height:_301}); +} +}; +function _302(_303){ +var tabs=$.data(_303,"tabs").tabs; +var cc=$(_303); +cc.addClass("tabs-container"); +var pp=$("
                                      ").insertBefore(cc); +cc.children("div").each(function(){ +pp[0].appendChild(this); +}); +cc[0].appendChild(pp[0]); +$("
                                      "+"
                                      "+"
                                      "+"
                                      "+"
                                        "+"
                                        "+"
                                        ").prependTo(_303); +cc.children("div.tabs-panels").children("div").each(function(i){ +var opts=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +var pp=$(this); +tabs.push(pp); +_310(_303,pp,opts); +}); +cc.children("div.tabs-header").find(".tabs-scroller-left, .tabs-scroller-right").hover(function(){ +$(this).addClass("tabs-scroller-over"); +},function(){ +$(this).removeClass("tabs-scroller-over"); +}); +cc.bind("_resize",function(e,_304){ +var opts=$.data(_303,"tabs").options; +if(opts.fit==true||_304){ +_2f4(_303); +_2fc(_303); +} +return false; +}); +}; +function _305(_306){ +var _307=$.data(_306,"tabs"); +var opts=_307.options; +$(_306).children("div.tabs-header").unbind().bind("click",function(e){ +if($(e.target).hasClass("tabs-scroller-left")){ +$(_306).tabs("scrollBy",-opts.scrollIncrement); +}else{ +if($(e.target).hasClass("tabs-scroller-right")){ +$(_306).tabs("scrollBy",opts.scrollIncrement); +}else{ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +var a=$(e.target).closest("a.tabs-close"); +if(a.length){ +_321(_306,_308(li)); +}else{ +if(li.length){ +var _309=_308(li); +var _30a=_307.tabs[_309].panel("options"); +if(_30a.collapsible){ +_30a.closed?_317(_306,_309):_338(_306,_309); +}else{ +_317(_306,_309); +} +} +} +} +} +}).bind("contextmenu",function(e){ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +if(li.length){ +opts.onContextMenu.call(_306,e,li.find("span.tabs-title").html(),_308(li)); +} +}); +function _308(li){ +var _30b=0; +li.parent().children("li").each(function(i){ +if(li[0]==this){ +_30b=i; +return false; +} +}); +return _30b; +}; +}; +function _30c(_30d){ +var opts=$.data(_30d,"tabs").options; +var _30e=$(_30d).children("div.tabs-header"); +var _30f=$(_30d).children("div.tabs-panels"); +_30e.removeClass("tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right"); +_30f.removeClass("tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right"); +if(opts.tabPosition=="top"){ +_30e.insertBefore(_30f); +}else{ +if(opts.tabPosition=="bottom"){ +_30e.insertAfter(_30f); +_30e.addClass("tabs-header-bottom"); +_30f.addClass("tabs-panels-top"); +}else{ +if(opts.tabPosition=="left"){ +_30e.addClass("tabs-header-left"); +_30f.addClass("tabs-panels-right"); +}else{ +if(opts.tabPosition=="right"){ +_30e.addClass("tabs-header-right"); +_30f.addClass("tabs-panels-left"); +} +} +} +} +if(opts.plain==true){ +_30e.addClass("tabs-header-plain"); +}else{ +_30e.removeClass("tabs-header-plain"); +} +if(opts.border==true){ +_30e.removeClass("tabs-header-noborder"); +_30f.removeClass("tabs-panels-noborder"); +}else{ +_30e.addClass("tabs-header-noborder"); +_30f.addClass("tabs-panels-noborder"); +} +}; +function _310(_311,pp,_312){ +var _313=$.data(_311,"tabs"); +_312=_312||{}; +pp.panel($.extend({},_312,{border:false,noheader:true,closed:true,doSize:false,iconCls:(_312.icon?_312.icon:undefined),onLoad:function(){ +if(_312.onLoad){ +_312.onLoad.call(this,arguments); +} +_313.options.onLoad.call(_311,$(this)); +}})); +var opts=pp.panel("options"); +var tabs=$(_311).children("div.tabs-header").find("ul.tabs"); +opts.tab=$("
                                      • ").appendTo(tabs); +opts.tab.append(""+""+""+""); +$(_311).tabs("update",{tab:pp,options:opts}); +}; +function _314(_315,_316){ +var opts=$.data(_315,"tabs").options; +var tabs=$.data(_315,"tabs").tabs; +if(_316.selected==undefined){ +_316.selected=true; +} +var pp=$("
                                        ").appendTo($(_315).children("div.tabs-panels")); +tabs.push(pp); +_310(_315,pp,_316); +opts.onAdd.call(_315,_316.title,tabs.length-1); +_2f4(_315); +if(_316.selected){ +_317(_315,tabs.length-1); +} +}; +function _318(_319,_31a){ +var _31b=$.data(_319,"tabs").selectHis; +var pp=_31a.tab; +var _31c=pp.panel("options").title; +pp.panel($.extend({},_31a.options,{iconCls:(_31a.options.icon?_31a.options.icon:undefined)})); +var opts=pp.panel("options"); +var tab=opts.tab; +var _31d=tab.find("span.tabs-title"); +var _31e=tab.find("span.tabs-icon"); +_31d.html(opts.title); +_31e.attr("class","tabs-icon"); +tab.find("a.tabs-close").remove(); +if(opts.closable){ +_31d.addClass("tabs-closable"); +$("").appendTo(tab); +}else{ +_31d.removeClass("tabs-closable"); +} +if(opts.iconCls){ +_31d.addClass("tabs-with-icon"); +_31e.addClass(opts.iconCls); +}else{ +_31d.removeClass("tabs-with-icon"); +} +if(_31c!=opts.title){ +for(var i=0;i<_31b.length;i++){ +if(_31b[i]==_31c){ +_31b[i]=opts.title; +} +} +} +tab.find("span.tabs-p-tool").remove(); +if(opts.tools){ +var _31f=$("").insertAfter(tab.find("a.tabs-inner")); +if($.isArray(opts.tools)){ +for(var i=0;i").appendTo(_31f); +t.addClass(opts.tools[i].iconCls); +if(opts.tools[i].handler){ +t.bind("click",{handler:opts.tools[i].handler},function(e){ +if($(this).parents("li").hasClass("tabs-disabled")){ +return; +} +e.data.handler.call(this); +}); +} +} +}else{ +$(opts.tools).children().appendTo(_31f); +} +var pr=_31f.children().length*12; +if(opts.closable){ +pr+=8; +}else{ +pr-=3; +_31f.css("right","5px"); +} +_31d.css("padding-right",pr+"px"); +} +_2f4(_319); +$.data(_319,"tabs").options.onUpdate.call(_319,opts.title,_320(_319,pp)); +}; +function _321(_322,_323){ +var opts=$.data(_322,"tabs").options; +var tabs=$.data(_322,"tabs").tabs; +var _324=$.data(_322,"tabs").selectHis; +if(!_325(_322,_323)){ +return; +} +var tab=_326(_322,_323); +var _327=tab.panel("options").title; +var _328=_320(_322,tab); +if(opts.onBeforeClose.call(_322,_327,_328)==false){ +return; +} +var tab=_326(_322,_323,true); +tab.panel("options").tab.remove(); +tab.panel("destroy"); +opts.onClose.call(_322,_327,_328); +_2f4(_322); +for(var i=0;i<_324.length;i++){ +if(_324[i]==_327){ +_324.splice(i,1); +i--; +} +} +var _329=_324.pop(); +if(_329){ +_317(_322,_329); +}else{ +if(tabs.length){ +_317(_322,0); +} +} +}; +function _326(_32a,_32b,_32c){ +var tabs=$.data(_32a,"tabs").tabs; +if(typeof _32b=="number"){ +if(_32b<0||_32b>=tabs.length){ +return null; +}else{ +var tab=tabs[_32b]; +if(_32c){ +tabs.splice(_32b,1); +} +return tab; +} +} +for(var i=0;idiv.tabs-header>div.tabs-wrap"); +var left=tab.position().left; +var _33a=left+tab.outerWidth(); +if(left<0||_33a>wrap.width()){ +var _33b=left-(wrap.width()-tab.width())/2; +$(_332).tabs("scrollBy",_33b); +}else{ +$(_332).tabs("scrollBy",0); +} +_2fc(_332); +opts.onSelect.call(_332,_339,_320(_332,_336)); +}; +function _338(_33c,_33d){ +var _33e=$.data(_33c,"tabs"); +var p=_326(_33c,_33d); +if(p){ +var opts=p.panel("options"); +if(!opts.closed){ +p.panel("close"); +if(opts.closed){ +opts.tab.removeClass("tabs-selected"); +_33e.options.onUnselect.call(_33c,opts.title,_320(_33c,p)); +} +} +} +}; +function _325(_33f,_340){ +return _326(_33f,_340)!=null; +}; +function _341(_342,_343){ +var opts=$.data(_342,"tabs").options; +opts.showHeader=_343; +$(_342).tabs("resize"); +}; +$.fn.tabs=function(_344,_345){ +if(typeof _344=="string"){ +return $.fn.tabs.methods[_344](this,_345); +} +_344=_344||{}; +return this.each(function(){ +var _346=$.data(this,"tabs"); +var opts; +if(_346){ +opts=$.extend(_346.options,_344); +_346.options=opts; +}else{ +$.data(this,"tabs",{options:$.extend({},$.fn.tabs.defaults,$.fn.tabs.parseOptions(this),_344),tabs:[],selectHis:[]}); +_302(this); +} +_2f0(this); +_30c(this); +_2f4(this); +_305(this); +_32f(this); +}); +}; +$.fn.tabs.methods={options:function(jq){ +var cc=jq[0]; +var opts=$.data(cc,"tabs").options; +var s=_2fe(cc); +opts.selected=s?_320(cc,s):-1; +return opts; +},tabs:function(jq){ +return $.data(jq[0],"tabs").tabs; +},resize:function(jq){ +return jq.each(function(){ +_2f4(this); +_2fc(this); +}); +},add:function(jq,_347){ +return jq.each(function(){ +_314(this,_347); +}); +},close:function(jq,_348){ +return jq.each(function(){ +_321(this,_348); +}); +},getTab:function(jq,_349){ +return _326(jq[0],_349); +},getTabIndex:function(jq,tab){ +return _320(jq[0],tab); +},getSelected:function(jq){ +return _2fe(jq[0]); +},select:function(jq,_34a){ +return jq.each(function(){ +_317(this,_34a); +}); +},unselect:function(jq,_34b){ +return jq.each(function(){ +_338(this,_34b); +}); +},exists:function(jq,_34c){ +return _325(jq[0],_34c); +},update:function(jq,_34d){ +return jq.each(function(){ +_318(this,_34d); +}); +},enableTab:function(jq,_34e){ +return jq.each(function(){ +$(this).tabs("getTab",_34e).panel("options").tab.removeClass("tabs-disabled"); +}); +},disableTab:function(jq,_34f){ +return jq.each(function(){ +$(this).tabs("getTab",_34f).panel("options").tab.addClass("tabs-disabled"); +}); +},showHeader:function(jq){ +return jq.each(function(){ +_341(this,true); +}); +},hideHeader:function(jq){ +return jq.each(function(){ +_341(this,false); +}); +},scrollBy:function(jq,_350){ +return jq.each(function(){ +var opts=$(this).tabs("options"); +var wrap=$(this).find(">div.tabs-header>div.tabs-wrap"); +var pos=Math.min(wrap._scrollLeft()+_350,_351()); +wrap.animate({scrollLeft:pos},opts.scrollDuration); +function _351(){ +var w=0; +var ul=wrap.children("ul"); +ul.children("li").each(function(){ +w+=$(this).outerWidth(true); +}); +return w-wrap.width()+(ul.outerWidth()-ul.width()); +}; +}); +}}; +$.fn.tabs.parseOptions=function(_352){ +return $.extend({},$.parser.parseOptions(_352,["width","height","tools","toolPosition","tabPosition",{fit:"boolean",border:"boolean",plain:"boolean",headerWidth:"number",tabWidth:"number",tabHeight:"number",selected:"number",showHeader:"boolean"}])); +}; +$.fn.tabs.defaults={width:"auto",height:"auto",headerWidth:150,tabWidth:"auto",tabHeight:27,selected:0,showHeader:true,plain:false,fit:false,border:true,tools:null,toolPosition:"right",tabPosition:"top",scrollIncrement:100,scrollDuration:400,onLoad:function(_353){ +},onSelect:function(_354,_355){ +},onUnselect:function(_356,_357){ +},onBeforeClose:function(_358,_359){ +},onClose:function(_35a,_35b){ +},onAdd:function(_35c,_35d){ +},onUpdate:function(_35e,_35f){ +},onContextMenu:function(e,_360,_361){ +}}; +})(jQuery); +(function($){ +var _362=false; +function _363(_364){ +var _365=$.data(_364,"layout"); +var opts=_365.options; +var _366=_365.panels; +var cc=$(_364); +if(_364.tagName=="BODY"){ +cc._fit(); +}else{ +opts.fit?cc.css(cc._fit()):cc._fit(false); +} +var cpos={top:0,left:0,width:cc.width(),height:cc.height()}; +_367(_368(_366.expandNorth)?_366.expandNorth:_366.north,"n"); +_367(_368(_366.expandSouth)?_366.expandSouth:_366.south,"s"); +_369(_368(_366.expandEast)?_366.expandEast:_366.east,"e"); +_369(_368(_366.expandWest)?_366.expandWest:_366.west,"w"); +_366.center.panel("resize",cpos); +function _36a(pp){ +var opts=pp.panel("options"); +return Math.min(Math.max(opts.height,opts.minHeight),opts.maxHeight); +}; +function _36b(pp){ +var opts=pp.panel("options"); +return Math.min(Math.max(opts.width,opts.minWidth),opts.maxWidth); +}; +function _367(pp,type){ +if(!pp.length||!_368(pp)){ +return; +} +var opts=pp.panel("options"); +var _36c=_36a(pp); +pp.panel("resize",{width:cc.width(),height:_36c,left:0,top:(type=="n"?0:cc.height()-_36c)}); +cpos.height-=_36c; +if(type=="n"){ +cpos.top+=_36c; +if(!opts.split&&opts.border){ +cpos.top--; +} +} +if(!opts.split&&opts.border){ +cpos.height++; +} +}; +function _369(pp,type){ +if(!pp.length||!_368(pp)){ +return; +} +var opts=pp.panel("options"); +var _36d=_36b(pp); +pp.panel("resize",{width:_36d,height:cpos.height,left:(type=="e"?cc.width()-_36d:0),top:cpos.top}); +cpos.width-=_36d; +if(type=="w"){ +cpos.left+=_36d; +if(!opts.split&&opts.border){ +cpos.left--; +} +} +if(!opts.split&&opts.border){ +cpos.width++; +} +}; +}; +function init(_36e){ +var cc=$(_36e); +cc.addClass("layout"); +function _36f(cc){ +cc.children("div").each(function(){ +var opts=$.fn.layout.parsePanelOptions(this); +if("north,south,east,west,center".indexOf(opts.region)>=0){ +_371(_36e,opts,this); +} +}); +}; +cc.children("form").length?_36f(cc.children("form")):_36f(cc); +cc.append("
                                        "); +cc.bind("_resize",function(e,_370){ +var opts=$.data(_36e,"layout").options; +if(opts.fit==true||_370){ +_363(_36e); +} +return false; +}); +}; +function _371(_372,_373,el){ +_373.region=_373.region||"center"; +var _374=$.data(_372,"layout").panels; +var cc=$(_372); +var dir=_373.region; +if(_374[dir].length){ +return; +} +var pp=$(el); +if(!pp.length){ +pp=$("
                                        ").appendTo(cc); +} +var _375=$.extend({},$.fn.layout.paneldefaults,{width:(pp.length?parseInt(pp[0].style.width)||pp.outerWidth():"auto"),height:(pp.length?parseInt(pp[0].style.height)||pp.outerHeight():"auto"),doSize:false,collapsible:true,cls:("layout-panel layout-panel-"+dir),bodyCls:"layout-body",onOpen:function(){ +var tool=$(this).panel("header").children("div.panel-tool"); +tool.children("a.panel-tool-collapse").hide(); +var _376={north:"up",south:"down",east:"right",west:"left"}; +if(!_376[dir]){ +return; +} +var _377="layout-button-"+_376[dir]; +var t=tool.children("a."+_377); +if(!t.length){ +t=$("").addClass(_377).appendTo(tool); +t.bind("click",{dir:dir},function(e){ +_383(_372,e.data.dir); +return false; +}); +} +$(this).panel("options").collapsible?t.show():t.hide(); +}},_373); +pp.panel(_375); +_374[dir]=pp; +if(pp.panel("options").split){ +var _378=pp.panel("panel"); +_378.addClass("layout-split-"+dir); +var _379=""; +if(dir=="north"){ +_379="s"; +} +if(dir=="south"){ +_379="n"; +} +if(dir=="east"){ +_379="w"; +} +if(dir=="west"){ +_379="e"; +} +_378.resizable($.extend({},{handles:_379,onStartResize:function(e){ +_362=true; +if(dir=="north"||dir=="south"){ +var _37a=$(">div.layout-split-proxy-v",_372); +}else{ +var _37a=$(">div.layout-split-proxy-h",_372); +} +var top=0,left=0,_37b=0,_37c=0; +var pos={display:"block"}; +if(dir=="north"){ +pos.top=parseInt(_378.css("top"))+_378.outerHeight()-_37a.height(); +pos.left=parseInt(_378.css("left")); +pos.width=_378.outerWidth(); +pos.height=_37a.height(); +}else{ +if(dir=="south"){ +pos.top=parseInt(_378.css("top")); +pos.left=parseInt(_378.css("left")); +pos.width=_378.outerWidth(); +pos.height=_37a.height(); +}else{ +if(dir=="east"){ +pos.top=parseInt(_378.css("top"))||0; +pos.left=parseInt(_378.css("left"))||0; +pos.width=_37a.width(); +pos.height=_378.outerHeight(); +}else{ +if(dir=="west"){ +pos.top=parseInt(_378.css("top"))||0; +pos.left=_378.outerWidth()-_37a.width(); +pos.width=_37a.width(); +pos.height=_378.outerHeight(); +} +} +} +} +_37a.css(pos); +$("
                                        ").css({left:0,top:0,width:cc.width(),height:cc.height()}).appendTo(cc); +},onResize:function(e){ +if(dir=="north"||dir=="south"){ +var _37d=$(">div.layout-split-proxy-v",_372); +_37d.css("top",e.pageY-$(_372).offset().top-_37d.height()/2); +}else{ +var _37d=$(">div.layout-split-proxy-h",_372); +_37d.css("left",e.pageX-$(_372).offset().left-_37d.width()/2); +} +return false; +},onStopResize:function(e){ +cc.children("div.layout-split-proxy-v,div.layout-split-proxy-h").hide(); +pp.panel("resize",e.data); +_363(_372); +_362=false; +cc.find(">div.layout-mask").remove(); +}},_373)); +} +}; +function _37e(_37f,_380){ +var _381=$.data(_37f,"layout").panels; +if(_381[_380].length){ +_381[_380].panel("destroy"); +_381[_380]=$(); +var _382="expand"+_380.substring(0,1).toUpperCase()+_380.substring(1); +if(_381[_382]){ +_381[_382].panel("destroy"); +_381[_382]=undefined; +} +} +}; +function _383(_384,_385,_386){ +if(_386==undefined){ +_386="normal"; +} +var _387=$.data(_384,"layout").panels; +var p=_387[_385]; +var _388=p.panel("options"); +if(_388.onBeforeCollapse.call(p)==false){ +return; +} +var _389="expand"+_385.substring(0,1).toUpperCase()+_385.substring(1); +if(!_387[_389]){ +_387[_389]=_38a(_385); +_387[_389].panel("panel").bind("click",function(){ +var _38b=_38c(); +p.panel("expand",false).panel("open").panel("resize",_38b.collapse); +p.panel("panel").animate(_38b.expand,function(){ +$(this).unbind(".layout").bind("mouseleave.layout",{region:_385},function(e){ +if(_362==true){ +return; +} +_383(_384,e.data.region); +}); +}); +return false; +}); +} +var _38d=_38c(); +if(!_368(_387[_389])){ +_387.center.panel("resize",_38d.resizeC); +} +p.panel("panel").animate(_38d.collapse,_386,function(){ +p.panel("collapse",false).panel("close"); +_387[_389].panel("open").panel("resize",_38d.expandP); +$(this).unbind(".layout"); +}); +function _38a(dir){ +var icon; +if(dir=="east"){ +icon="layout-button-left"; +}else{ +if(dir=="west"){ +icon="layout-button-right"; +}else{ +if(dir=="north"){ +icon="layout-button-down"; +}else{ +if(dir=="south"){ +icon="layout-button-up"; +} +} +} +} +var p=$("
                                        ").appendTo(_384); +p.panel($.extend({},$.fn.layout.paneldefaults,{cls:("layout-expand layout-expand-"+dir),title:" ",closed:true,minWidth:0,minHeight:0,doSize:false,tools:[{iconCls:icon,handler:function(){ +_390(_384,_385); +return false; +}}]})); +p.panel("panel").hover(function(){ +$(this).addClass("layout-expand-over"); +},function(){ +$(this).removeClass("layout-expand-over"); +}); +return p; +}; +function _38c(){ +var cc=$(_384); +var _38e=_387.center.panel("options"); +var _38f=_388.collapsedSize; +if(_385=="east"){ +var ww=_38e.width+_388.width-_38f; +if(_388.split||!_388.border){ +ww++; +} +return {resizeC:{width:ww},expand:{left:cc.width()-_388.width},expandP:{top:_38e.top,left:cc.width()-_38f,width:_38f,height:_38e.height},collapse:{left:cc.width(),top:_38e.top,height:_38e.height}}; +}else{ +if(_385=="west"){ +var ww=_38e.width+_388.width-_38f; +if(_388.split||!_388.border){ +ww++; +} +return {resizeC:{width:ww,left:_38f-1},expand:{left:0},expandP:{left:0,top:_38e.top,width:_38f,height:_38e.height},collapse:{left:-_388.width,top:_38e.top,height:_38e.height}}; +}else{ +if(_385=="north"){ +var hh=_38e.height; +if(!_368(_387.expandNorth)){ +hh+=_388.height-_38f+((_388.split||!_388.border)?1:0); +} +_387.east.add(_387.west).add(_387.expandEast).add(_387.expandWest).panel("resize",{top:_38f-1,height:hh}); +return {resizeC:{top:_38f-1,height:hh},expand:{top:0},expandP:{top:0,left:0,width:cc.width(),height:_38f},collapse:{top:-_388.height,width:cc.width()}}; +}else{ +if(_385=="south"){ +var hh=_38e.height; +if(!_368(_387.expandSouth)){ +hh+=_388.height-_38f+((_388.split||!_388.border)?1:0); +} +_387.east.add(_387.west).add(_387.expandEast).add(_387.expandWest).panel("resize",{height:hh}); +return {resizeC:{height:hh},expand:{top:cc.height()-_388.height},expandP:{top:cc.height()-_38f,left:0,width:cc.width(),height:_38f},collapse:{top:cc.height(),width:cc.width()}}; +} +} +} +} +}; +}; +function _390(_391,_392){ +var _393=$.data(_391,"layout").panels; +var p=_393[_392]; +var _394=p.panel("options"); +if(_394.onBeforeExpand.call(p)==false){ +return; +} +var _395=_396(); +var _397="expand"+_392.substring(0,1).toUpperCase()+_392.substring(1); +if(_393[_397]){ +_393[_397].panel("close"); +p.panel("panel").stop(true,true); +p.panel("expand",false).panel("open").panel("resize",_395.collapse); +p.panel("panel").animate(_395.expand,function(){ +_363(_391); +}); +} +function _396(){ +var cc=$(_391); +var _398=_393.center.panel("options"); +if(_392=="east"&&_393.expandEast){ +return {collapse:{left:cc.width(),top:_398.top,height:_398.height},expand:{left:cc.width()-_393["east"].panel("options").width}}; +}else{ +if(_392=="west"&&_393.expandWest){ +return {collapse:{left:-_393["west"].panel("options").width,top:_398.top,height:_398.height},expand:{left:0}}; +}else{ +if(_392=="north"&&_393.expandNorth){ +return {collapse:{top:-_393["north"].panel("options").height,width:cc.width()},expand:{top:0}}; +}else{ +if(_392=="south"&&_393.expandSouth){ +return {collapse:{top:cc.height(),width:cc.width()},expand:{top:cc.height()-_393["south"].panel("options").height}}; +} +} +} +} +}; +}; +function _368(pp){ +if(!pp){ +return false; +} +if(pp.length){ +return pp.panel("panel").is(":visible"); +}else{ +return false; +} +}; +function _399(_39a){ +var _39b=$.data(_39a,"layout").panels; +if(_39b.east.length&&_39b.east.panel("options").collapsed){ +_383(_39a,"east",0); +} +if(_39b.west.length&&_39b.west.panel("options").collapsed){ +_383(_39a,"west",0); +} +if(_39b.north.length&&_39b.north.panel("options").collapsed){ +_383(_39a,"north",0); +} +if(_39b.south.length&&_39b.south.panel("options").collapsed){ +_383(_39a,"south",0); +} +}; +$.fn.layout=function(_39c,_39d){ +if(typeof _39c=="string"){ +return $.fn.layout.methods[_39c](this,_39d); +} +_39c=_39c||{}; +return this.each(function(){ +var _39e=$.data(this,"layout"); +if(_39e){ +$.extend(_39e.options,_39c); +}else{ +var opts=$.extend({},$.fn.layout.defaults,$.fn.layout.parseOptions(this),_39c); +$.data(this,"layout",{options:opts,panels:{center:$(),north:$(),south:$(),east:$(),west:$()}}); +init(this); +} +_363(this); +_399(this); +}); +}; +$.fn.layout.methods={resize:function(jq){ +return jq.each(function(){ +_363(this); +}); +},panel:function(jq,_39f){ +return $.data(jq[0],"layout").panels[_39f]; +},collapse:function(jq,_3a0){ +return jq.each(function(){ +_383(this,_3a0); +}); +},expand:function(jq,_3a1){ +return jq.each(function(){ +_390(this,_3a1); +}); +},add:function(jq,_3a2){ +return jq.each(function(){ +_371(this,_3a2); +_363(this); +if($(this).layout("panel",_3a2.region).panel("options").collapsed){ +_383(this,_3a2.region,0); +} +}); +},remove:function(jq,_3a3){ +return jq.each(function(){ +_37e(this,_3a3); +_363(this); +}); +}}; +$.fn.layout.parseOptions=function(_3a4){ +return $.extend({},$.parser.parseOptions(_3a4,[{fit:"boolean"}])); +}; +$.fn.layout.defaults={fit:false}; +$.fn.layout.parsePanelOptions=function(_3a5){ +var t=$(_3a5); +return $.extend({},$.fn.panel.parseOptions(_3a5),$.parser.parseOptions(_3a5,["region",{split:"boolean",collpasedSize:"number",minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number"}])); +}; +$.fn.layout.paneldefaults=$.extend({},$.fn.panel.defaults,{region:null,split:false,collapsedSize:28,minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000}); +})(jQuery); +(function($){ +function init(_3a6){ +$(_3a6).appendTo("body"); +$(_3a6).addClass("menu-top"); +$(document).unbind(".menu").bind("mousedown.menu",function(e){ +var m=$(e.target).closest("div.menu,div.combo-p"); +if(m.length){ +return; +} +$("body>div.menu-top:visible").menu("hide"); +}); +var _3a7=_3a8($(_3a6)); +for(var i=0;i<_3a7.length;i++){ +_3a9(_3a7[i]); +} +function _3a8(menu){ +var _3aa=[]; +menu.addClass("menu"); +_3aa.push(menu); +if(!menu.hasClass("menu-content")){ +menu.children("div").each(function(){ +var _3ab=$(this).children("div"); +if(_3ab.length){ +_3ab.insertAfter(_3a6); +this.submenu=_3ab; +var mm=_3a8(_3ab); +_3aa=_3aa.concat(mm); +} +}); +} +return _3aa; +}; +function _3a9(menu){ +var wh=$.parser.parseOptions(menu[0],["width","height"]); +menu[0].originalHeight=wh.height||0; +if(menu.hasClass("menu-content")){ +menu[0].originalWidth=wh.width||menu._outerWidth(); +}else{ +menu[0].originalWidth=wh.width||0; +menu.children("div").each(function(){ +var item=$(this); +var _3ac=$.extend({},$.parser.parseOptions(this,["name","iconCls","href",{separator:"boolean"}]),{disabled:(item.attr("disabled")?true:undefined)}); +if(_3ac.separator){ +item.addClass("menu-sep"); +} +if(!item.hasClass("menu-sep")){ +item[0].itemName=_3ac.name||""; +item[0].itemHref=_3ac.href||""; +var text=item.addClass("menu-item").html(); +item.empty().append($("
                                        ").html(text)); +if(_3ac.iconCls){ +$("
                                        ").addClass(_3ac.iconCls).appendTo(item); +} +if(_3ac.disabled){ +_3ad(_3a6,item[0],true); +} +if(item[0].submenu){ +$("
                                        ").appendTo(item); +} +_3ae(_3a6,item); +} +}); +$("
                                        ").prependTo(menu); +} +_3af(_3a6,menu); +menu.hide(); +_3b0(_3a6,menu); +}; +}; +function _3af(_3b1,menu){ +var opts=$.data(_3b1,"menu").options; +var _3b2=menu.attr("style")||""; +menu.css({display:"block",left:-10000,height:"auto",overflow:"hidden"}); +var el=menu[0]; +var _3b3=el.originalWidth||0; +if(!_3b3){ +_3b3=0; +menu.find("div.menu-text").each(function(){ +if(_3b3<$(this)._outerWidth()){ +_3b3=$(this)._outerWidth(); +} +$(this).closest("div.menu-item")._outerHeight($(this)._outerHeight()+2); +}); +_3b3+=40; +} +_3b3=Math.max(_3b3,opts.minWidth); +var _3b4=el.originalHeight||menu.outerHeight(); +var _3b5=Math.max(el.originalHeight,menu.outerHeight())-2; +menu._outerWidth(_3b3)._outerHeight(_3b4); +menu.children("div.menu-line")._outerHeight(_3b5); +_3b2+=";width:"+el.style.width+";height:"+el.style.height; +menu.attr("style",_3b2); +}; +function _3b0(_3b6,menu){ +var _3b7=$.data(_3b6,"menu"); +menu.unbind(".menu").bind("mouseenter.menu",function(){ +if(_3b7.timer){ +clearTimeout(_3b7.timer); +_3b7.timer=null; +} +}).bind("mouseleave.menu",function(){ +if(_3b7.options.hideOnUnhover){ +_3b7.timer=setTimeout(function(){ +_3b8(_3b6); +},100); +} +}); +}; +function _3ae(_3b9,item){ +if(!item.hasClass("menu-item")){ +return; +} +item.unbind(".menu"); +item.bind("click.menu",function(){ +if($(this).hasClass("menu-item-disabled")){ +return; +} +if(!this.submenu){ +_3b8(_3b9); +var href=$(this).attr("href"); +if(href){ +location.href=href; +} +} +var item=$(_3b9).menu("getItem",this); +$.data(_3b9,"menu").options.onClick.call(_3b9,item); +}).bind("mouseenter.menu",function(e){ +item.siblings().each(function(){ +if(this.submenu){ +_3bc(this.submenu); +} +$(this).removeClass("menu-active"); +}); +item.addClass("menu-active"); +if($(this).hasClass("menu-item-disabled")){ +item.addClass("menu-active-disabled"); +return; +} +var _3ba=item[0].submenu; +if(_3ba){ +$(_3b9).menu("show",{menu:_3ba,parent:item}); +} +}).bind("mouseleave.menu",function(e){ +item.removeClass("menu-active menu-active-disabled"); +var _3bb=item[0].submenu; +if(_3bb){ +if(e.pageX>=parseInt(_3bb.css("left"))){ +item.addClass("menu-active"); +}else{ +_3bc(_3bb); +} +}else{ +item.removeClass("menu-active"); +} +}); +}; +function _3b8(_3bd){ +var _3be=$.data(_3bd,"menu"); +if(_3be){ +if($(_3bd).is(":visible")){ +_3bc($(_3bd)); +_3be.options.onHide.call(_3bd); +} +} +return false; +}; +function _3bf(_3c0,_3c1){ +var left,top; +_3c1=_3c1||{}; +var menu=$(_3c1.menu||_3c0); +if(menu.hasClass("menu-top")){ +var opts=$.data(_3c0,"menu").options; +$.extend(opts,_3c1); +left=opts.left; +top=opts.top; +if(opts.alignTo){ +var at=$(opts.alignTo); +left=at.offset().left; +top=at.offset().top+at._outerHeight(); +if(opts.align=="right"){ +left+=at.outerWidth()-menu.outerWidth(); +} +} +if(left+menu.outerWidth()>$(window)._outerWidth()+$(document)._scrollLeft()){ +left=$(window)._outerWidth()+$(document).scrollLeft()-menu.outerWidth()-5; +} +if(left<0){ +left=0; +} +if(top+menu.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=$(window)._outerHeight()+$(document).scrollTop()-menu.outerHeight()-5; +} +}else{ +var _3c2=_3c1.parent; +left=_3c2.offset().left+_3c2.outerWidth()-2; +if(left+menu.outerWidth()+5>$(window)._outerWidth()+$(document).scrollLeft()){ +left=_3c2.offset().left-menu.outerWidth()+2; +} +var top=_3c2.offset().top-3; +if(top+menu.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=$(window)._outerHeight()+$(document).scrollTop()-menu.outerHeight()-5; +} +} +menu.css({left:left,top:top}); +menu.show(0,function(){ +if(!menu[0].shadow){ +menu[0].shadow=$("
                                        ").insertAfter(menu); +} +menu[0].shadow.css({display:"block",zIndex:$.fn.menu.defaults.zIndex++,left:menu.css("left"),top:menu.css("top"),width:menu.outerWidth(),height:menu.outerHeight()}); +menu.css("z-index",$.fn.menu.defaults.zIndex++); +if(menu.hasClass("menu-top")){ +$.data(menu[0],"menu").options.onShow.call(menu[0]); +} +}); +}; +function _3bc(menu){ +if(!menu){ +return; +} +_3c3(menu); +menu.find("div.menu-item").each(function(){ +if(this.submenu){ +_3bc(this.submenu); +} +$(this).removeClass("menu-active"); +}); +function _3c3(m){ +m.stop(true,true); +if(m[0].shadow){ +m[0].shadow.hide(); +} +m.hide(); +}; +}; +function _3c4(_3c5,text){ +var _3c6=null; +var tmp=$("
                                        "); +function find(menu){ +menu.children("div.menu-item").each(function(){ +var item=$(_3c5).menu("getItem",this); +var s=tmp.empty().html(item.text).text(); +if(text==$.trim(s)){ +_3c6=item; +}else{ +if(this.submenu&&!_3c6){ +find(this.submenu); +} +} +}); +}; +find($(_3c5)); +tmp.remove(); +return _3c6; +}; +function _3ad(_3c7,_3c8,_3c9){ +var t=$(_3c8); +if(!t.hasClass("menu-item")){ +return; +} +if(_3c9){ +t.addClass("menu-item-disabled"); +if(_3c8.onclick){ +_3c8.onclick1=_3c8.onclick; +_3c8.onclick=null; +} +}else{ +t.removeClass("menu-item-disabled"); +if(_3c8.onclick1){ +_3c8.onclick=_3c8.onclick1; +_3c8.onclick1=null; +} +} +}; +function _3ca(_3cb,_3cc){ +var menu=$(_3cb); +if(_3cc.parent){ +if(!_3cc.parent.submenu){ +var _3cd=$("
                                        ").appendTo("body"); +_3cd.hide(); +_3cc.parent.submenu=_3cd; +$("
                                        ").appendTo(_3cc.parent); +} +menu=_3cc.parent.submenu; +} +if(_3cc.separator){ +var item=$("
                                        ").appendTo(menu); +}else{ +var item=$("
                                        ").appendTo(menu); +$("
                                        ").html(_3cc.text).appendTo(item); +} +if(_3cc.iconCls){ +$("
                                        ").addClass(_3cc.iconCls).appendTo(item); +} +if(_3cc.id){ +item.attr("id",_3cc.id); +} +if(_3cc.name){ +item[0].itemName=_3cc.name; +} +if(_3cc.href){ +item[0].itemHref=_3cc.href; +} +if(_3cc.onclick){ +if(typeof _3cc.onclick=="string"){ +item.attr("onclick",_3cc.onclick); +}else{ +item[0].onclick=eval(_3cc.onclick); +} +} +if(_3cc.handler){ +item[0].onclick=eval(_3cc.handler); +} +if(_3cc.disabled){ +_3ad(_3cb,item[0],true); +} +_3ae(_3cb,item); +_3b0(_3cb,menu); +_3af(_3cb,menu); +}; +function _3ce(_3cf,_3d0){ +function _3d1(el){ +if(el.submenu){ +el.submenu.children("div.menu-item").each(function(){ +_3d1(this); +}); +var _3d2=el.submenu[0].shadow; +if(_3d2){ +_3d2.remove(); +} +el.submenu.remove(); +} +$(el).remove(); +}; +_3d1(_3d0); +}; +function _3d3(_3d4){ +$(_3d4).children("div.menu-item").each(function(){ +_3ce(_3d4,this); +}); +if(_3d4.shadow){ +_3d4.shadow.remove(); +} +$(_3d4).remove(); +}; +$.fn.menu=function(_3d5,_3d6){ +if(typeof _3d5=="string"){ +return $.fn.menu.methods[_3d5](this,_3d6); +} +_3d5=_3d5||{}; +return this.each(function(){ +var _3d7=$.data(this,"menu"); +if(_3d7){ +$.extend(_3d7.options,_3d5); +}else{ +_3d7=$.data(this,"menu",{options:$.extend({},$.fn.menu.defaults,$.fn.menu.parseOptions(this),_3d5)}); +init(this); +} +$(this).css({left:_3d7.options.left,top:_3d7.options.top}); +}); +}; +$.fn.menu.methods={options:function(jq){ +return $.data(jq[0],"menu").options; +},show:function(jq,pos){ +return jq.each(function(){ +_3bf(this,pos); +}); +},hide:function(jq){ +return jq.each(function(){ +_3b8(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_3d3(this); +}); +},setText:function(jq,_3d8){ +return jq.each(function(){ +$(_3d8.target).children("div.menu-text").html(_3d8.text); +}); +},setIcon:function(jq,_3d9){ +return jq.each(function(){ +$(_3d9.target).children("div.menu-icon").remove(); +if(_3d9.iconCls){ +$("
                                        ").addClass(_3d9.iconCls).appendTo(_3d9.target); +} +}); +},getItem:function(jq,_3da){ +var t=$(_3da); +var item={target:_3da,id:t.attr("id"),text:$.trim(t.children("div.menu-text").html()),disabled:t.hasClass("menu-item-disabled"),name:_3da.itemName,href:_3da.itemHref,onclick:_3da.onclick}; +var icon=t.children("div.menu-icon"); +if(icon.length){ +var cc=[]; +var aa=icon.attr("class").split(" "); +for(var i=0;i").addClass(opts.cls.arrow).appendTo(_3e1); +$("").addClass("m-btn-line").appendTo(_3e1); +if(opts.menu){ +$(opts.menu).menu(); +var _3e2=$(opts.menu).menu("options"); +var _3e3=_3e2.onShow; +var _3e4=_3e2.onHide; +$.extend(_3e2,{onShow:function(){ +var _3e5=$(this).menu("options"); +var btn=$(_3e5.alignTo); +var opts=btn.menubutton("options"); +btn.addClass((opts.plain==true)?opts.cls.btn2:opts.cls.btn1); +_3e3.call(this); +},onHide:function(){ +var _3e6=$(this).menu("options"); +var btn=$(_3e6.alignTo); +var opts=btn.menubutton("options"); +btn.removeClass((opts.plain==true)?opts.cls.btn2:opts.cls.btn1); +_3e4.call(this); +}}); +} +_3e7(_3e0,opts.disabled); +}; +function _3e7(_3e8,_3e9){ +var opts=$.data(_3e8,"menubutton").options; +opts.disabled=_3e9; +var btn=$(_3e8); +var t=btn.find("."+opts.cls.trigger); +if(!t.length){ +t=btn; +} +t.unbind(".menubutton"); +if(_3e9){ +btn.linkbutton("disable"); +}else{ +btn.linkbutton("enable"); +var _3ea=null; +t.bind("click.menubutton",function(){ +_3eb(_3e8); +return false; +}).bind("mouseenter.menubutton",function(){ +_3ea=setTimeout(function(){ +_3eb(_3e8); +},opts.duration); +return false; +}).bind("mouseleave.menubutton",function(){ +if(_3ea){ +clearTimeout(_3ea); +} +}); +} +}; +function _3eb(_3ec){ +var opts=$.data(_3ec,"menubutton").options; +if(opts.disabled||!opts.menu){ +return; +} +$("body>div.menu-top").menu("hide"); +var btn=$(_3ec); +var mm=$(opts.menu); +if(mm.length){ +mm.menu("options").alignTo=btn; +mm.menu("show",{alignTo:btn,align:opts.menuAlign}); +} +btn.blur(); +}; +$.fn.menubutton=function(_3ed,_3ee){ +if(typeof _3ed=="string"){ +var _3ef=$.fn.menubutton.methods[_3ed]; +if(_3ef){ +return _3ef(this,_3ee); +}else{ +return this.linkbutton(_3ed,_3ee); +} +} +_3ed=_3ed||{}; +return this.each(function(){ +var _3f0=$.data(this,"menubutton"); +if(_3f0){ +$.extend(_3f0.options,_3ed); +}else{ +$.data(this,"menubutton",{options:$.extend({},$.fn.menubutton.defaults,$.fn.menubutton.parseOptions(this),_3ed)}); +$(this).removeAttr("disabled"); +} +init(this); +}); +}; +$.fn.menubutton.methods={options:function(jq){ +var _3f1=jq.linkbutton("options"); +var _3f2=$.data(jq[0],"menubutton").options; +_3f2.toggle=_3f1.toggle; +_3f2.selected=_3f1.selected; +return _3f2; +},enable:function(jq){ +return jq.each(function(){ +_3e7(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_3e7(this,true); +}); +},destroy:function(jq){ +return jq.each(function(){ +var opts=$(this).menubutton("options"); +if(opts.menu){ +$(opts.menu).menu("destroy"); +} +$(this).remove(); +}); +}}; +$.fn.menubutton.parseOptions=function(_3f3){ +var t=$(_3f3); +return $.extend({},$.fn.linkbutton.parseOptions(_3f3),$.parser.parseOptions(_3f3,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.menubutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,menuAlign:"left",duration:100,cls:{btn1:"m-btn-active",btn2:"m-btn-plain-active",arrow:"m-btn-downarrow",trigger:"m-btn"}}); +})(jQuery); +(function($){ +function init(_3f4){ +var opts=$.data(_3f4,"splitbutton").options; +$(_3f4).menubutton(opts); +$(_3f4).addClass("s-btn"); +}; +$.fn.splitbutton=function(_3f5,_3f6){ +if(typeof _3f5=="string"){ +var _3f7=$.fn.splitbutton.methods[_3f5]; +if(_3f7){ +return _3f7(this,_3f6); +}else{ +return this.menubutton(_3f5,_3f6); +} +} +_3f5=_3f5||{}; +return this.each(function(){ +var _3f8=$.data(this,"splitbutton"); +if(_3f8){ +$.extend(_3f8.options,_3f5); +}else{ +$.data(this,"splitbutton",{options:$.extend({},$.fn.splitbutton.defaults,$.fn.splitbutton.parseOptions(this),_3f5)}); +$(this).removeAttr("disabled"); +} +init(this); +}); +}; +$.fn.splitbutton.methods={options:function(jq){ +var _3f9=jq.menubutton("options"); +var _3fa=$.data(jq[0],"splitbutton").options; +$.extend(_3fa,{disabled:_3f9.disabled,toggle:_3f9.toggle,selected:_3f9.selected}); +return _3fa; +}}; +$.fn.splitbutton.parseOptions=function(_3fb){ +var t=$(_3fb); +return $.extend({},$.fn.linkbutton.parseOptions(_3fb),$.parser.parseOptions(_3fb,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.splitbutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,duration:100,cls:{btn1:"m-btn-active s-btn-active",btn2:"m-btn-plain-active s-btn-plain-active",arrow:"m-btn-downarrow",trigger:"m-btn-line"}}); +})(jQuery); +(function($){ +function init(_3fc){ +$(_3fc).addClass("searchbox-f").hide(); +var span=$("").insertAfter(_3fc); +var _3fd=$("").appendTo(span); +$("").appendTo(span); +var name=$(_3fc).attr("name"); +if(name){ +_3fd.attr("name",name); +$(_3fc).removeAttr("name").attr("searchboxName",name); +} +return span; +}; +function _3fe(_3ff,_400){ +var opts=$.data(_3ff,"searchbox").options; +var sb=$.data(_3ff,"searchbox").searchbox; +if(_400){ +opts.width=_400; +} +sb.appendTo("body"); +if(isNaN(opts.width)){ +opts.width=sb._outerWidth(); +} +var _401=sb.find("span.searchbox-button"); +var menu=sb.find("a.searchbox-menu"); +var _402=sb.find("input.searchbox-text"); +sb._outerWidth(opts.width)._outerHeight(opts.height); +_402._outerWidth(sb.width()-menu._outerWidth()-_401._outerWidth()); +_402.css({height:sb.height()+"px",lineHeight:sb.height()+"px"}); +menu._outerHeight(sb.height()); +_401._outerHeight(sb.height()); +var _403=menu.find("span.l-btn-left"); +_403._outerHeight(sb.height()); +_403.find("span.l-btn-text").css({height:_403.height()+"px",lineHeight:_403.height()+"px"}); +sb.insertAfter(_3ff); +}; +function _404(_405){ +var _406=$.data(_405,"searchbox"); +var opts=_406.options; +if(opts.menu){ +_406.menu=$(opts.menu).menu({onClick:function(item){ +_407(item); +}}); +var item=_406.menu.children("div.menu-item:first"); +_406.menu.children("div.menu-item").each(function(){ +var _408=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +if(_408.selected){ +item=$(this); +return false; +} +}); +item.triggerHandler("click"); +}else{ +_406.searchbox.find("a.searchbox-menu").remove(); +_406.menu=null; +} +function _407(item){ +_406.searchbox.find("a.searchbox-menu").remove(); +var mb=$("").html(item.text); +mb.prependTo(_406.searchbox).menubutton({menu:_406.menu,iconCls:item.iconCls}); +_406.searchbox.find("input.searchbox-text").attr("name",item.name||item.text); +_3fe(_405); +}; +}; +function _409(_40a){ +var _40b=$.data(_40a,"searchbox"); +var opts=_40b.options; +var _40c=_40b.searchbox.find("input.searchbox-text"); +var _40d=_40b.searchbox.find(".searchbox-button"); +_40c.unbind(".searchbox"); +_40d.unbind(".searchbox"); +if(!opts.disabled){ +_40c.bind("blur.searchbox",function(e){ +opts.value=$(this).val(); +if(opts.value==""){ +$(this).val(opts.prompt); +$(this).addClass("searchbox-prompt"); +}else{ +$(this).removeClass("searchbox-prompt"); +} +}).bind("focus.searchbox",function(e){ +if($(this).val()!=opts.value){ +$(this).val(opts.value); +} +$(this).removeClass("searchbox-prompt"); +}).bind("keydown.searchbox",function(e){ +if(e.keyCode==13){ +e.preventDefault(); +opts.value=$(this).val(); +opts.searcher.call(_40a,opts.value,_40c._propAttr("name")); +return false; +} +}); +_40d.bind("click.searchbox",function(){ +opts.searcher.call(_40a,opts.value,_40c._propAttr("name")); +}).bind("mouseenter.searchbox",function(){ +$(this).addClass("searchbox-button-hover"); +}).bind("mouseleave.searchbox",function(){ +$(this).removeClass("searchbox-button-hover"); +}); +} +}; +function _40e(_40f,_410){ +var _411=$.data(_40f,"searchbox"); +var opts=_411.options; +var _412=_411.searchbox.find("input.searchbox-text"); +var mb=_411.searchbox.find("a.searchbox-menu"); +if(_410){ +opts.disabled=true; +$(_40f).attr("disabled",true); +_412.attr("disabled",true); +if(mb.length){ +mb.menubutton("disable"); +} +}else{ +opts.disabled=false; +$(_40f).removeAttr("disabled"); +_412.removeAttr("disabled"); +if(mb.length){ +mb.menubutton("enable"); +} +} +}; +function _413(_414){ +var _415=$.data(_414,"searchbox"); +var opts=_415.options; +var _416=_415.searchbox.find("input.searchbox-text"); +opts.originalValue=opts.value; +if(opts.value){ +_416.val(opts.value); +_416.removeClass("searchbox-prompt"); +}else{ +_416.val(opts.prompt); +_416.addClass("searchbox-prompt"); +} +}; +$.fn.searchbox=function(_417,_418){ +if(typeof _417=="string"){ +return $.fn.searchbox.methods[_417](this,_418); +} +_417=_417||{}; +return this.each(function(){ +var _419=$.data(this,"searchbox"); +if(_419){ +$.extend(_419.options,_417); +}else{ +_419=$.data(this,"searchbox",{options:$.extend({},$.fn.searchbox.defaults,$.fn.searchbox.parseOptions(this),_417),searchbox:init(this)}); +} +_404(this); +_413(this); +_409(this); +_40e(this,_419.options.disabled); +_3fe(this); +}); +}; +$.fn.searchbox.methods={options:function(jq){ +return $.data(jq[0],"searchbox").options; +},menu:function(jq){ +return $.data(jq[0],"searchbox").menu; +},textbox:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text"); +},getValue:function(jq){ +return $.data(jq[0],"searchbox").options.value; +},setValue:function(jq,_41a){ +return jq.each(function(){ +$(this).searchbox("options").value=_41a; +$(this).searchbox("textbox").val(_41a); +$(this).searchbox("textbox").blur(); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).searchbox("setValue",""); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).searchbox("options"); +$(this).searchbox("setValue",opts.originalValue); +}); +},getName:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text").attr("name"); +},selectName:function(jq,name){ +return jq.each(function(){ +var menu=$.data(this,"searchbox").menu; +if(menu){ +menu.children("div.menu-item[name=\""+name+"\"]").triggerHandler("click"); +} +}); +},destroy:function(jq){ +return jq.each(function(){ +var menu=$(this).searchbox("menu"); +if(menu){ +menu.menu("destroy"); +} +$.data(this,"searchbox").searchbox.remove(); +$(this).remove(); +}); +},resize:function(jq,_41b){ +return jq.each(function(){ +_3fe(this,_41b); +}); +},disable:function(jq){ +return jq.each(function(){ +_40e(this,true); +_409(this); +}); +},enable:function(jq){ +return jq.each(function(){ +_40e(this,false); +_409(this); +}); +}}; +$.fn.searchbox.parseOptions=function(_41c){ +var t=$(_41c); +return $.extend({},$.parser.parseOptions(_41c,["width","height","prompt","menu"]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),searcher:(t.attr("searcher")?eval(t.attr("searcher")):undefined)}); +}; +$.fn.searchbox.defaults={width:"auto",height:22,prompt:"",value:"",menu:null,disabled:false,searcher:function(_41d,name){ +}}; +})(jQuery); +(function($){ +function init(_41e){ +$(_41e).addClass("validatebox-text"); +}; +function _41f(_420){ +var _421=$.data(_420,"validatebox"); +_421.validating=false; +if(_421.timer){ +clearTimeout(_421.timer); +} +$(_420).tooltip("destroy"); +$(_420).unbind(); +$(_420).remove(); +}; +function _422(_423){ +var box=$(_423); +var _424=$.data(_423,"validatebox"); +box.unbind(".validatebox"); +if(_424.options.novalidate){ +return; +} +box.bind("focus.validatebox",function(){ +_424.validating=true; +_424.value=undefined; +(function(){ +if(_424.validating){ +if(_424.value!=box.val()){ +_424.value=box.val(); +if(_424.timer){ +clearTimeout(_424.timer); +} +_424.timer=setTimeout(function(){ +$(_423).validatebox("validate"); +},_424.options.delay); +}else{ +_429(_423); +} +setTimeout(arguments.callee,200); +} +})(); +}).bind("blur.validatebox",function(){ +if(_424.timer){ +clearTimeout(_424.timer); +_424.timer=undefined; +} +_424.validating=false; +_425(_423); +}).bind("mouseenter.validatebox",function(){ +if(box.hasClass("validatebox-invalid")){ +_426(_423); +} +}).bind("mouseleave.validatebox",function(){ +if(!_424.validating){ +_425(_423); +} +}); +}; +function _426(_427){ +var _428=$.data(_427,"validatebox"); +var opts=_428.options; +$(_427).tooltip($.extend({},opts.tipOptions,{content:_428.message,position:opts.tipPosition,deltaX:opts.deltaX})).tooltip("show"); +_428.tip=true; +}; +function _429(_42a){ +var _42b=$.data(_42a,"validatebox"); +if(_42b&&_42b.tip){ +$(_42a).tooltip("reposition"); +} +}; +function _425(_42c){ +var _42d=$.data(_42c,"validatebox"); +_42d.tip=false; +$(_42c).tooltip("hide"); +}; +function _42e(_42f){ +var _430=$.data(_42f,"validatebox"); +var opts=_430.options; +var box=$(_42f); +var _431=box.val(); +function _432(msg){ +_430.message=msg; +}; +function _433(_434,_435){ +var _436=/([a-zA-Z_]+)(.*)/.exec(_434); +var rule=opts.rules[_436[1]]; +if(rule&&_431){ +var _437=_435||opts.validParams||eval(_436[2]); +if(!rule["validator"].call(_42f,_431,_437)){ +box.addClass("validatebox-invalid"); +var _438=rule["message"]; +if(_437){ +for(var i=0;i<_437.length;i++){ +_438=_438.replace(new RegExp("\\{"+i+"\\}","g"),_437[i]); +} +} +_432(opts.invalidMessage||_438); +if(_430.validating){ +_426(_42f); +} +return false; +} +} +return true; +}; +box.removeClass("validatebox-invalid"); +_425(_42f); +if(opts.novalidate||box.is(":disabled")){ +return true; +} +if(opts.required){ +if(_431==""){ +box.addClass("validatebox-invalid"); +_432(opts.missingMessage); +if(_430.validating){ +_426(_42f); +} +return false; +} +} +if(opts.validType){ +if($.isArray(opts.validType)){ +for(var i=0;i=_445[0]&&len<=_445[1]; +},message:"Please enter a value between {0} and {1}."},remote:{validator:function(_446,_447){ +var data={}; +data[_447[1]]=_446; +var _448=$.ajax({url:_447[0],dataType:"json",data:data,async:false,cache:false,type:"post"}).responseText; +return _448=="true"; +},message:"Please fix this field."}}}; +})(jQuery); +(function($){ +function _449(_44a,_44b){ +_44b=_44b||{}; +var _44c={}; +if(_44b.onSubmit){ +if(_44b.onSubmit.call(_44a,_44c)==false){ +return; +} +} +var form=$(_44a); +if(_44b.url){ +form.attr("action",_44b.url); +} +var _44d="easyui_frame_"+(new Date().getTime()); +var _44e=$("").attr("src",window.ActiveXObject?"javascript:false":"about:blank").css({position:"absolute",top:-1000,left:-1000}); +var t=form.attr("target"),a=form.attr("action"); +form.attr("target",_44d); +var _44f=$(); +try{ +_44e.appendTo("body"); +_44e.bind("load",cb); +for(var n in _44c){ +var f=$("").val(_44c[n]).appendTo(form); +_44f=_44f.add(f); +} +_450(); +form[0].submit(); +} +finally{ +form.attr("action",a); +t?form.attr("target",t):form.removeAttr("target"); +_44f.remove(); +} +function _450(){ +var f=$("#"+_44d); +if(!f.length){ +return; +} +try{ +var s=f.contents()[0].readyState; +if(s&&s.toLowerCase()=="uninitialized"){ +setTimeout(_450,100); +} +} +catch(e){ +cb(); +} +}; +var _451=10; +function cb(){ +var _452=$("#"+_44d); +if(!_452.length){ +return; +} +_452.unbind(); +var data=""; +try{ +var body=_452.contents().find("body"); +data=body.html(); +if(data==""){ +if(--_451){ +setTimeout(cb,100); +return; +} +} +var ta=body.find(">textarea"); +if(ta.length){ +data=ta.val(); +}else{ +var pre=body.find(">pre"); +if(pre.length){ +data=pre.html(); +} +} +} +catch(e){ +} +if(_44b.success){ +_44b.success(data); +} +setTimeout(function(){ +_452.unbind(); +_452.remove(); +},100); +}; +}; +function load(_453,data){ +if(!$.data(_453,"form")){ +$.data(_453,"form",{options:$.extend({},$.fn.form.defaults)}); +} +var opts=$.data(_453,"form").options; +if(typeof data=="string"){ +var _454={}; +if(opts.onBeforeLoad.call(_453,_454)==false){ +return; +} +$.ajax({url:data,data:_454,dataType:"json",success:function(data){ +_455(data); +},error:function(){ +opts.onLoadError.apply(_453,arguments); +}}); +}else{ +_455(data); +} +function _455(data){ +var form=$(_453); +for(var name in data){ +var val=data[name]; +var rr=_456(name,val); +if(!rr.length){ +var _457=_458(name,val); +if(!_457){ +$("input[name=\""+name+"\"]",form).val(val); +$("textarea[name=\""+name+"\"]",form).val(val); +$("select[name=\""+name+"\"]",form).val(val); +} +} +_459(name,val); +} +opts.onLoadSuccess.call(_453,data); +_460(_453); +}; +function _456(name,val){ +var rr=$(_453).find("input[name=\""+name+"\"][type=radio], input[name=\""+name+"\"][type=checkbox]"); +rr._propAttr("checked",false); +rr.each(function(){ +var f=$(this); +if(f.val()==String(val)||$.inArray(f.val(),$.isArray(val)?val:[val])>=0){ +f._propAttr("checked",true); +} +}); +return rr; +}; +function _458(name,val){ +var _45a=0; +var pp=["numberbox","slider"]; +for(var i=0;i").insertAfter(_472); +var name=$(_472).attr("name"); +if(name){ +v.attr("name",name); +$(_472).removeAttr("name").attr("numberboxName",name); +} +return v; +}; +function _473(_474){ +var opts=$.data(_474,"numberbox").options; +var fn=opts.onChange; +opts.onChange=function(){ +}; +_475(_474,opts.parser.call(_474,opts.value)); +opts.onChange=fn; +opts.originalValue=_476(_474); +}; +function _477(_478,_479){ +var opts=$.data(_478,"numberbox").options; +if(_479){ +opts.width=_479; +} +var t=$(_478); +var _47a=$("
                                        ").insertBefore(t); +t.appendTo("body"); +if(isNaN(opts.width)){ +opts.width=t.outerWidth(); +} +t._outerWidth(opts.width)._outerHeight(opts.height); +t.css("line-height",t.height()+"px"); +t.insertAfter(_47a); +_47a.remove(); +}; +function _476(_47b){ +return $.data(_47b,"numberbox").field.val(); +}; +function _475(_47c,_47d){ +var _47e=$.data(_47c,"numberbox"); +var opts=_47e.options; +var _47f=_476(_47c); +_47d=opts.parser.call(_47c,_47d); +opts.value=_47d; +_47e.field.val(_47d); +$(_47c).val(opts.formatter.call(_47c,_47d)); +if(_47f!=_47d){ +opts.onChange.call(_47c,_47d,_47f); +} +}; +function _480(_481){ +var opts=$.data(_481,"numberbox").options; +$(_481).unbind(".numberbox").bind("keypress.numberbox",function(e){ +return opts.filter.call(_481,e); +}).bind("blur.numberbox",function(){ +_475(_481,$(this).val()); +$(this).val(opts.formatter.call(_481,_476(_481))); +}).bind("focus.numberbox",function(){ +var vv=_476(_481); +if(vv!=opts.parser.call(_481,$(this).val())){ +$(this).val(opts.formatter.call(_481,vv)); +} +}); +}; +function _482(_483){ +if($.fn.validatebox){ +var opts=$.data(_483,"numberbox").options; +$(_483).validatebox(opts); +} +}; +function _484(_485,_486){ +var opts=$.data(_485,"numberbox").options; +if(_486){ +opts.disabled=true; +$(_485).attr("disabled",true); +}else{ +opts.disabled=false; +$(_485).removeAttr("disabled"); +} +}; +$.fn.numberbox=function(_487,_488){ +if(typeof _487=="string"){ +var _489=$.fn.numberbox.methods[_487]; +if(_489){ +return _489(this,_488); +}else{ +return this.validatebox(_487,_488); +} +} +_487=_487||{}; +return this.each(function(){ +var _48a=$.data(this,"numberbox"); +if(_48a){ +$.extend(_48a.options,_487); +}else{ +_48a=$.data(this,"numberbox",{options:$.extend({},$.fn.numberbox.defaults,$.fn.numberbox.parseOptions(this),_487),field:init(this)}); +$(this).removeAttr("disabled"); +$(this).css({imeMode:"disabled"}); +} +_484(this,_48a.options.disabled); +_477(this); +_480(this); +_482(this); +_473(this); +}); +}; +$.fn.numberbox.methods={options:function(jq){ +return $.data(jq[0],"numberbox").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"numberbox").field.remove(); +$(this).validatebox("destroy"); +$(this).remove(); +}); +},resize:function(jq,_48b){ +return jq.each(function(){ +_477(this,_48b); +}); +},disable:function(jq){ +return jq.each(function(){ +_484(this,true); +}); +},enable:function(jq){ +return jq.each(function(){ +_484(this,false); +}); +},fix:function(jq){ +return jq.each(function(){ +_475(this,$(this).val()); +}); +},setValue:function(jq,_48c){ +return jq.each(function(){ +_475(this,_48c); +}); +},getValue:function(jq){ +return _476(jq[0]); +},clear:function(jq){ +return jq.each(function(){ +var _48d=$.data(this,"numberbox"); +_48d.field.val(""); +$(this).val(""); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).numberbox("options"); +$(this).numberbox("setValue",opts.originalValue); +}); +}}; +$.fn.numberbox.parseOptions=function(_48e){ +var t=$(_48e); +return $.extend({},$.fn.validatebox.parseOptions(_48e),$.parser.parseOptions(_48e,["width","height","decimalSeparator","groupSeparator","suffix",{min:"number",max:"number",precision:"number"}]),{prefix:(t.attr("prefix")?t.attr("prefix"):undefined),disabled:(t.attr("disabled")?true:undefined),value:(t.val()||undefined)}); +}; +$.fn.numberbox.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,disabled:false,value:"",min:null,max:null,precision:0,decimalSeparator:".",groupSeparator:"",prefix:"",suffix:"",filter:function(e){ +var opts=$(this).numberbox("options"); +if(e.which==45){ +return ($(this).val().indexOf("-")==-1?true:false); +} +var c=String.fromCharCode(e.which); +if(c==opts.decimalSeparator){ +return ($(this).val().indexOf(c)==-1?true:false); +}else{ +if(c==opts.groupSeparator){ +return true; +}else{ +if((e.which>=48&&e.which<=57&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0||e.which==8){ +return true; +}else{ +if(e.ctrlKey==true&&(e.which==99||e.which==118)){ +return true; +}else{ +return false; +} +} +} +} +},formatter:function(_48f){ +if(!_48f){ +return _48f; +} +_48f=_48f+""; +var opts=$(this).numberbox("options"); +var s1=_48f,s2=""; +var dpos=_48f.indexOf("."); +if(dpos>=0){ +s1=_48f.substring(0,dpos); +s2=_48f.substring(dpos+1,_48f.length); +} +if(opts.groupSeparator){ +var p=/(\d+)(\d{3})/; +while(p.test(s1)){ +s1=s1.replace(p,"$1"+opts.groupSeparator+"$2"); +} +} +if(s2){ +return opts.prefix+s1+opts.decimalSeparator+s2+opts.suffix; +}else{ +return opts.prefix+s1+opts.suffix; +} +},parser:function(s){ +s=s+""; +var opts=$(this).numberbox("options"); +if(parseFloat(s)!=s){ +if(opts.prefix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(opts.prefix),"g"),"")); +} +if(opts.suffix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(opts.suffix),"g"),"")); +} +if(opts.groupSeparator){ +s=$.trim(s.replace(new RegExp("\\"+opts.groupSeparator,"g"),"")); +} +if(opts.decimalSeparator){ +s=$.trim(s.replace(new RegExp("\\"+opts.decimalSeparator,"g"),".")); +} +s=s.replace(/\s/g,""); +} +var val=parseFloat(s).toFixed(opts.precision); +if(isNaN(val)){ +val=""; +}else{ +if(typeof (opts.min)=="number"&&valopts.max){ +val=opts.max.toFixed(opts.precision); +} +} +} +return val; +},onChange:function(_490,_491){ +}}); +})(jQuery); +(function($){ +function _492(_493){ +var opts=$.data(_493,"calendar").options; +var t=$(_493); +opts.fit?$.extend(opts,t._fit()):t._fit(false); +var _494=t.find(".calendar-header"); +t._outerWidth(opts.width); +t._outerHeight(opts.height); +t.find(".calendar-body")._outerHeight(t.height()-_494._outerHeight()); +}; +function init(_495){ +$(_495).addClass("calendar").html("
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"Aprial 2010"+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+""+""+""+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "); +$(_495).find(".calendar-title span").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}).click(function(){ +var menu=$(_495).find(".calendar-menu"); +if(menu.is(":visible")){ +menu.hide(); +}else{ +_49c(_495); +} +}); +$(".calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear",_495).hover(function(){ +$(this).addClass("calendar-nav-hover"); +},function(){ +$(this).removeClass("calendar-nav-hover"); +}); +$(_495).find(".calendar-nextmonth").click(function(){ +_496(_495,1); +}); +$(_495).find(".calendar-prevmonth").click(function(){ +_496(_495,-1); +}); +$(_495).find(".calendar-nextyear").click(function(){ +_499(_495,1); +}); +$(_495).find(".calendar-prevyear").click(function(){ +_499(_495,-1); +}); +$(_495).bind("_resize",function(){ +var opts=$.data(_495,"calendar").options; +if(opts.fit==true){ +_492(_495); +} +return false; +}); +}; +function _496(_497,_498){ +var opts=$.data(_497,"calendar").options; +opts.month+=_498; +if(opts.month>12){ +opts.year++; +opts.month=1; +}else{ +if(opts.month<1){ +opts.year--; +opts.month=12; +} +} +show(_497); +var menu=$(_497).find(".calendar-menu-month-inner"); +menu.find("td.calendar-selected").removeClass("calendar-selected"); +menu.find("td:eq("+(opts.month-1)+")").addClass("calendar-selected"); +}; +function _499(_49a,_49b){ +var opts=$.data(_49a,"calendar").options; +opts.year+=_49b; +show(_49a); +var menu=$(_49a).find(".calendar-menu-year"); +menu.val(opts.year); +}; +function _49c(_49d){ +var opts=$.data(_49d,"calendar").options; +$(_49d).find(".calendar-menu").show(); +if($(_49d).find(".calendar-menu-month-inner").is(":empty")){ +$(_49d).find(".calendar-menu-month-inner").empty(); +var t=$("
                                        ").appendTo($(_49d).find(".calendar-menu-month-inner")); +var idx=0; +for(var i=0;i<3;i++){ +var tr=$("").appendTo(t); +for(var j=0;j<4;j++){ +$("").html(opts.months[idx++]).attr("abbr",idx).appendTo(tr); +} +} +$(_49d).find(".calendar-menu-prev,.calendar-menu-next").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}); +$(_49d).find(".calendar-menu-next").click(function(){ +var y=$(_49d).find(".calendar-menu-year"); +if(!isNaN(y.val())){ +y.val(parseInt(y.val())+1); +_49e(); +} +}); +$(_49d).find(".calendar-menu-prev").click(function(){ +var y=$(_49d).find(".calendar-menu-year"); +if(!isNaN(y.val())){ +y.val(parseInt(y.val()-1)); +_49e(); +} +}); +$(_49d).find(".calendar-menu-year").keypress(function(e){ +if(e.keyCode==13){ +_49e(true); +} +}); +$(_49d).find(".calendar-menu-month").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}).click(function(){ +var menu=$(_49d).find(".calendar-menu"); +menu.find(".calendar-selected").removeClass("calendar-selected"); +$(this).addClass("calendar-selected"); +_49e(true); +}); +} +function _49e(_49f){ +var menu=$(_49d).find(".calendar-menu"); +var year=menu.find(".calendar-menu-year").val(); +var _4a0=menu.find(".calendar-selected").attr("abbr"); +if(!isNaN(year)){ +opts.year=parseInt(year); +opts.month=parseInt(_4a0); +show(_49d); +} +if(_49f){ +menu.hide(); +} +}; +var body=$(_49d).find(".calendar-body"); +var sele=$(_49d).find(".calendar-menu"); +var _4a1=sele.find(".calendar-menu-year-inner"); +var _4a2=sele.find(".calendar-menu-month-inner"); +_4a1.find("input").val(opts.year).focus(); +_4a2.find("td.calendar-selected").removeClass("calendar-selected"); +_4a2.find("td:eq("+(opts.month-1)+")").addClass("calendar-selected"); +sele._outerWidth(body._outerWidth()); +sele._outerHeight(body._outerHeight()); +_4a2._outerHeight(sele.height()-_4a1._outerHeight()); +}; +function _4a3(_4a4,year,_4a5){ +var opts=$.data(_4a4,"calendar").options; +var _4a6=[]; +var _4a7=new Date(year,_4a5,0).getDate(); +for(var i=1;i<=_4a7;i++){ +_4a6.push([year,_4a5,i]); +} +var _4a8=[],week=[]; +var _4a9=-1; +while(_4a6.length>0){ +var date=_4a6.shift(); +week.push(date); +var day=new Date(date[0],date[1]-1,date[2]).getDay(); +if(_4a9==day){ +day=0; +}else{ +if(day==(opts.firstDay==0?7:opts.firstDay)-1){ +_4a8.push(week); +week=[]; +} +} +_4a9=day; +} +if(week.length){ +_4a8.push(week); +} +var _4aa=_4a8[0]; +if(_4aa.length<7){ +while(_4aa.length<7){ +var _4ab=_4aa[0]; +var date=new Date(_4ab[0],_4ab[1]-1,_4ab[2]-1); +_4aa.unshift([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +}else{ +var _4ab=_4aa[0]; +var week=[]; +for(var i=1;i<=7;i++){ +var date=new Date(_4ab[0],_4ab[1]-1,_4ab[2]-i); +week.unshift([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +_4a8.unshift(week); +} +var _4ac=_4a8[_4a8.length-1]; +while(_4ac.length<7){ +var _4ad=_4ac[_4ac.length-1]; +var date=new Date(_4ad[0],_4ad[1]-1,_4ad[2]+1); +_4ac.push([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +if(_4a8.length<6){ +var _4ad=_4ac[_4ac.length-1]; +var week=[]; +for(var i=1;i<=7;i++){ +var date=new Date(_4ad[0],_4ad[1]-1,_4ad[2]+i); +week.push([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +_4a8.push(week); +} +return _4a8; +}; +function show(_4ae){ +var opts=$.data(_4ae,"calendar").options; +if(opts.current&&!opts.validator.call(_4ae,opts.current)){ +opts.current=null; +} +var now=new Date(); +var _4af=now.getFullYear()+","+(now.getMonth()+1)+","+now.getDate(); +var _4b0=opts.current?(opts.current.getFullYear()+","+(opts.current.getMonth()+1)+","+opts.current.getDate()):""; +var _4b1=6-opts.firstDay; +var _4b2=_4b1+1; +if(_4b1>=7){ +_4b1-=7; +} +if(_4b2>=7){ +_4b2-=7; +} +$(_4ae).find(".calendar-title span").html(opts.months[opts.month-1]+" "+opts.year); +var body=$(_4ae).find("div.calendar-body"); +body.children("table").remove(); +var data=[""]; +data.push(""); +for(var i=opts.firstDay;i"+opts.weeks[i]+""); +} +for(var i=0;i"+opts.weeks[i]+""); +} +data.push(""); +data.push(""); +var _4b3=_4a3(_4ae,opts.year,opts.month); +for(var i=0;i<_4b3.length;i++){ +var week=_4b3[i]; +var cls=""; +if(i==0){ +cls="calendar-first"; +}else{ +if(i==_4b3.length-1){ +cls="calendar-last"; +} +} +data.push(""); +for(var j=0;j"+d+""); +} +data.push(""); +} +data.push(""); +data.push("
                                        "); +body.append(data.join("")); +var t=body.children("table.calendar-dtable").prependTo(body); +t.find("td.calendar-day:not(.calendar-disabled)").hover(function(){ +$(this).addClass("calendar-hover"); +},function(){ +$(this).removeClass("calendar-hover"); +}).click(function(){ +var _4b7=opts.current; +t.find(".calendar-selected").removeClass("calendar-selected"); +$(this).addClass("calendar-selected"); +var _4b8=$(this).attr("abbr").split(","); +opts.current=new Date(_4b8[0],parseInt(_4b8[1])-1,_4b8[2]); +opts.onSelect.call(_4ae,opts.current); +if(!_4b7||_4b7.getTime()!=opts.current.getTime()){ +opts.onChange.call(_4ae,opts.current,_4b7); +} +}); +}; +$.fn.calendar=function(_4b9,_4ba){ +if(typeof _4b9=="string"){ +return $.fn.calendar.methods[_4b9](this,_4ba); +} +_4b9=_4b9||{}; +return this.each(function(){ +var _4bb=$.data(this,"calendar"); +if(_4bb){ +$.extend(_4bb.options,_4b9); +}else{ +_4bb=$.data(this,"calendar",{options:$.extend({},$.fn.calendar.defaults,$.fn.calendar.parseOptions(this),_4b9)}); +init(this); +} +if(_4bb.options.border==false){ +$(this).addClass("calendar-noborder"); +} +_492(this); +show(this); +$(this).find("div.calendar-menu").hide(); +}); +}; +$.fn.calendar.methods={options:function(jq){ +return $.data(jq[0],"calendar").options; +},resize:function(jq){ +return jq.each(function(){ +_492(this); +}); +},moveTo:function(jq,date){ +return jq.each(function(){ +var opts=$(this).calendar("options"); +if(opts.validator.call(this,date)){ +var _4bc=opts.current; +$(this).calendar({year:date.getFullYear(),month:date.getMonth()+1,current:date}); +if(!_4bc||_4bc.getTime()!=date.getTime()){ +opts.onChange.call(this,opts.current,_4bc); +} +} +}); +}}; +$.fn.calendar.parseOptions=function(_4bd){ +var t=$(_4bd); +return $.extend({},$.parser.parseOptions(_4bd,["width","height",{firstDay:"number",fit:"boolean",border:"boolean"}])); +}; +$.fn.calendar.defaults={width:180,height:180,fit:false,border:true,firstDay:0,weeks:["S","M","T","W","T","F","S"],months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],year:new Date().getFullYear(),month:new Date().getMonth()+1,current:(function(){ +var d=new Date(); +return new Date(d.getFullYear(),d.getMonth(),d.getDate()); +})(),formatter:function(date){ +return date.getDate(); +},styler:function(date){ +return ""; +},validator:function(date){ +return true; +},onSelect:function(date){ +},onChange:function(_4be,_4bf){ +}}; +})(jQuery); +(function($){ +function init(_4c0){ +var _4c1=$(""+""+""+""+""+"").insertAfter(_4c0); +$(_4c0).addClass("spinner-text spinner-f").prependTo(_4c1); +return _4c1; +}; +function _4c2(_4c3,_4c4){ +var opts=$.data(_4c3,"spinner").options; +var _4c5=$.data(_4c3,"spinner").spinner; +if(_4c4){ +opts.width=_4c4; +} +var _4c6=$("
                                        ").insertBefore(_4c5); +_4c5.appendTo("body"); +if(isNaN(opts.width)){ +opts.width=$(_4c3).outerWidth(); +} +var _4c7=_4c5.find(".spinner-arrow"); +_4c5._outerWidth(opts.width)._outerHeight(opts.height); +$(_4c3)._outerWidth(_4c5.width()-_4c7.outerWidth()); +$(_4c3).css({height:_4c5.height()+"px",lineHeight:_4c5.height()+"px"}); +_4c7._outerHeight(_4c5.height()); +_4c7.find("span")._outerHeight(_4c7.height()/2); +_4c5.insertAfter(_4c6); +_4c6.remove(); +}; +function _4c8(_4c9){ +var opts=$.data(_4c9,"spinner").options; +var _4ca=$.data(_4c9,"spinner").spinner; +$(_4c9).unbind(".spinner"); +_4ca.find(".spinner-arrow-up,.spinner-arrow-down").unbind(".spinner"); +if(!opts.disabled&&!opts.readonly){ +_4ca.find(".spinner-arrow-up").bind("mouseenter.spinner",function(){ +$(this).addClass("spinner-arrow-hover"); +}).bind("mouseleave.spinner",function(){ +$(this).removeClass("spinner-arrow-hover"); +}).bind("click.spinner",function(){ +opts.spin.call(_4c9,false); +opts.onSpinUp.call(_4c9); +$(_4c9).validatebox("validate"); +}); +_4ca.find(".spinner-arrow-down").bind("mouseenter.spinner",function(){ +$(this).addClass("spinner-arrow-hover"); +}).bind("mouseleave.spinner",function(){ +$(this).removeClass("spinner-arrow-hover"); +}).bind("click.spinner",function(){ +opts.spin.call(_4c9,true); +opts.onSpinDown.call(_4c9); +$(_4c9).validatebox("validate"); +}); +$(_4c9).bind("change.spinner",function(){ +$(this).spinner("setValue",$(this).val()); +}); +} +}; +function _4cb(_4cc,_4cd){ +var opts=$.data(_4cc,"spinner").options; +if(_4cd){ +opts.disabled=true; +$(_4cc).attr("disabled",true); +}else{ +opts.disabled=false; +$(_4cc).removeAttr("disabled"); +} +}; +function _4ce(_4cf,mode){ +var _4d0=$.data(_4cf,"spinner"); +var opts=_4d0.options; +opts.readonly=mode==undefined?true:mode; +var _4d1=opts.readonly?true:(!opts.editable); +$(_4cf).attr("readonly",_4d1).css("cursor",_4d1?"pointer":""); +}; +$.fn.spinner=function(_4d2,_4d3){ +if(typeof _4d2=="string"){ +var _4d4=$.fn.spinner.methods[_4d2]; +if(_4d4){ +return _4d4(this,_4d3); +}else{ +return this.validatebox(_4d2,_4d3); +} +} +_4d2=_4d2||{}; +return this.each(function(){ +var _4d5=$.data(this,"spinner"); +if(_4d5){ +$.extend(_4d5.options,_4d2); +}else{ +_4d5=$.data(this,"spinner",{options:$.extend({},$.fn.spinner.defaults,$.fn.spinner.parseOptions(this),_4d2),spinner:init(this)}); +$(this).removeAttr("disabled"); +} +_4d5.options.originalValue=_4d5.options.value; +$(this).val(_4d5.options.value); +_4cb(this,_4d5.options.disabled); +_4ce(this,_4d5.options.readonly); +_4c2(this); +$(this).validatebox(_4d5.options); +_4c8(this); +}); +}; +$.fn.spinner.methods={options:function(jq){ +var opts=$.data(jq[0],"spinner").options; +return $.extend(opts,{value:jq.val()}); +},destroy:function(jq){ +return jq.each(function(){ +var _4d6=$.data(this,"spinner").spinner; +$(this).validatebox("destroy"); +_4d6.remove(); +}); +},resize:function(jq,_4d7){ +return jq.each(function(){ +_4c2(this,_4d7); +}); +},enable:function(jq){ +return jq.each(function(){ +_4cb(this,false); +_4c8(this); +}); +},disable:function(jq){ +return jq.each(function(){ +_4cb(this,true); +_4c8(this); +}); +},readonly:function(jq,mode){ +return jq.each(function(){ +_4ce(this,mode); +_4c8(this); +}); +},getValue:function(jq){ +return jq.val(); +},setValue:function(jq,_4d8){ +return jq.each(function(){ +var opts=$.data(this,"spinner").options; +var _4d9=opts.value; +opts.value=_4d8; +$(this).val(_4d8); +if(_4d9!=_4d8){ +opts.onChange.call(this,_4d8,_4d9); +} +}); +},clear:function(jq){ +return jq.each(function(){ +var opts=$.data(this,"spinner").options; +opts.value=""; +$(this).val(""); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).spinner("options"); +$(this).spinner("setValue",opts.originalValue); +}); +}}; +$.fn.spinner.parseOptions=function(_4da){ +var t=$(_4da); +return $.extend({},$.fn.validatebox.parseOptions(_4da),$.parser.parseOptions(_4da,["width","height","min","max",{increment:"number",editable:"boolean"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),readonly:(t.attr("readonly")?true:undefined)}); +}; +$.fn.spinner.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,deltaX:19,value:"",min:null,max:null,increment:1,editable:true,disabled:false,readonly:false,spin:function(down){ +},onSpinUp:function(){ +},onSpinDown:function(){ +},onChange:function(_4db,_4dc){ +}}); +})(jQuery); +(function($){ +function _4dd(_4de){ +$(_4de).addClass("numberspinner-f"); +var opts=$.data(_4de,"numberspinner").options; +$(_4de).spinner(opts).numberbox($.extend({},opts,{width:"auto"})); +}; +function _4df(_4e0,down){ +var opts=$.data(_4e0,"numberspinner").options; +var v=parseFloat($(_4e0).numberbox("getValue")||opts.value)||0; +if(down==true){ +v-=opts.increment; +}else{ +v+=opts.increment; +} +$(_4e0).numberbox("setValue",v); +}; +$.fn.numberspinner=function(_4e1,_4e2){ +if(typeof _4e1=="string"){ +var _4e3=$.fn.numberspinner.methods[_4e1]; +if(_4e3){ +return _4e3(this,_4e2); +}else{ +return this.spinner(_4e1,_4e2); +} +} +_4e1=_4e1||{}; +return this.each(function(){ +var _4e4=$.data(this,"numberspinner"); +if(_4e4){ +$.extend(_4e4.options,_4e1); +}else{ +$.data(this,"numberspinner",{options:$.extend({},$.fn.numberspinner.defaults,$.fn.numberspinner.parseOptions(this),_4e1)}); +} +_4dd(this); +}); +}; +$.fn.numberspinner.methods={options:function(jq){ +var opts=$.data(jq[0],"numberspinner").options; +return $.extend(opts,{value:jq.numberbox("getValue"),originalValue:jq.numberbox("options").originalValue}); +},setValue:function(jq,_4e5){ +return jq.each(function(){ +$(this).numberbox("setValue",_4e5); +}); +},getValue:function(jq){ +return jq.numberbox("getValue"); +},clear:function(jq){ +return jq.each(function(){ +$(this).spinner("clear"); +$(this).numberbox("clear"); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).numberspinner("options"); +$(this).numberspinner("setValue",opts.originalValue); +}); +}}; +$.fn.numberspinner.parseOptions=function(_4e6){ +return $.extend({},$.fn.spinner.parseOptions(_4e6),$.fn.numberbox.parseOptions(_4e6),{}); +}; +$.fn.numberspinner.defaults=$.extend({},$.fn.spinner.defaults,$.fn.numberbox.defaults,{spin:function(down){ +_4df(this,down); +}}); +})(jQuery); +(function($){ +function _4e7(_4e8){ +var opts=$.data(_4e8,"timespinner").options; +$(_4e8).addClass("timespinner-f"); +$(_4e8).spinner(opts); +$(_4e8).unbind(".timespinner"); +$(_4e8).bind("click.timespinner",function(){ +var _4e9=0; +if(this.selectionStart!=null){ +_4e9=this.selectionStart; +}else{ +if(this.createTextRange){ +var _4ea=_4e8.createTextRange(); +var s=document.selection.createRange(); +s.setEndPoint("StartToStart",_4ea); +_4e9=s.text.length; +} +} +if(_4e9>=0&&_4e9<=2){ +opts.highlight=0; +}else{ +if(_4e9>=3&&_4e9<=5){ +opts.highlight=1; +}else{ +if(_4e9>=6&&_4e9<=8){ +opts.highlight=2; +} +} +} +_4ec(_4e8); +}).bind("blur.timespinner",function(){ +_4eb(_4e8); +}); +}; +function _4ec(_4ed){ +var opts=$.data(_4ed,"timespinner").options; +var _4ee=0,end=0; +if(opts.highlight==0){ +_4ee=0; +end=2; +}else{ +if(opts.highlight==1){ +_4ee=3; +end=5; +}else{ +if(opts.highlight==2){ +_4ee=6; +end=8; +} +} +} +if(_4ed.selectionStart!=null){ +_4ed.setSelectionRange(_4ee,end); +}else{ +if(_4ed.createTextRange){ +var _4ef=_4ed.createTextRange(); +_4ef.collapse(); +_4ef.moveEnd("character",end); +_4ef.moveStart("character",_4ee); +_4ef.select(); +} +} +$(_4ed).focus(); +}; +function _4f0(_4f1,_4f2){ +var opts=$.data(_4f1,"timespinner").options; +if(!_4f2){ +return null; +} +var vv=_4f2.split(opts.separator); +for(var i=0;itime){ +time=_4f5; +} +if(_4f6&&_4f6"]; +for(var i=0;i<_50b.length;i++){ +_50a.cache[_50b[i][0]]={width:_50b[i][1]}; +} +var _50c=0; +for(var s in _50a.cache){ +var item=_50a.cache[s]; +item.index=_50c++; +ss.push(s+"{width:"+item.width+"}"); +} +ss.push(""); +$(ss.join("\n")).appendTo(cc); +cc.children("style[easyui]:not(:last)").remove(); +},getRule:function(_50d){ +var _50e=cc.children("style[easyui]:last")[0]; +var _50f=_50e.styleSheet?_50e.styleSheet:(_50e.sheet||document.styleSheets[document.styleSheets.length-1]); +var _510=_50f.cssRules||_50f.rules; +return _510[_50d]; +},set:function(_511,_512){ +var item=_50a.cache[_511]; +if(item){ +item.width=_512; +var rule=this.getRule(item.index); +if(rule){ +rule.style["width"]=_512; +} +} +},remove:function(_513){ +var tmp=[]; +for(var s in _50a.cache){ +if(s.indexOf(_513)==-1){ +tmp.push([s,_50a.cache[s].width]); +} +} +_50a.cache={}; +this.add(tmp); +},dirty:function(_514){ +if(_514){ +_50a.dirty.push(_514); +} +},clean:function(){ +for(var i=0;i<_50a.dirty.length;i++){ +this.remove(_50a.dirty[i]); +} +_50a.dirty=[]; +}}; +}; +function _515(_516,_517){ +var opts=$.data(_516,"datagrid").options; +var _518=$.data(_516,"datagrid").panel; +if(_517){ +if(_517.width){ +opts.width=_517.width; +} +if(_517.height){ +opts.height=_517.height; +} +} +if(opts.fit==true){ +var p=_518.panel("panel").parent(); +opts.width=p.width(); +opts.height=p.height(); +} +_518.panel("resize",{width:opts.width,height:opts.height}); +}; +function _519(_51a){ +var opts=$.data(_51a,"datagrid").options; +var dc=$.data(_51a,"datagrid").dc; +var wrap=$.data(_51a,"datagrid").panel; +var _51b=wrap.width(); +var _51c=wrap.height(); +var view=dc.view; +var _51d=dc.view1; +var _51e=dc.view2; +var _51f=_51d.children("div.datagrid-header"); +var _520=_51e.children("div.datagrid-header"); +var _521=_51f.find("table"); +var _522=_520.find("table"); +view.width(_51b); +var _523=_51f.children("div.datagrid-header-inner").show(); +_51d.width(_523.find("table").width()); +if(!opts.showHeader){ +_523.hide(); +} +_51e.width(_51b-_51d._outerWidth()); +_51d.children("div.datagrid-header,div.datagrid-body,div.datagrid-footer").width(_51d.width()); +_51e.children("div.datagrid-header,div.datagrid-body,div.datagrid-footer").width(_51e.width()); +var hh; +_51f.css("height",""); +_520.css("height",""); +_521.css("height",""); +_522.css("height",""); +hh=Math.max(_521.height(),_522.height()); +_521.height(hh); +_522.height(hh); +_51f.add(_520)._outerHeight(hh); +if(opts.height!="auto"){ +var _524=_51c-_51e.children("div.datagrid-header")._outerHeight()-_51e.children("div.datagrid-footer")._outerHeight()-wrap.children("div.datagrid-toolbar")._outerHeight(); +wrap.children("div.datagrid-pager").each(function(){ +_524-=$(this)._outerHeight(); +}); +dc.body1.add(dc.body2).children("table.datagrid-btable-frozen").css({position:"absolute",top:dc.header2._outerHeight()}); +var _525=dc.body2.children("table.datagrid-btable-frozen")._outerHeight(); +_51d.add(_51e).children("div.datagrid-body").css({marginTop:_525,height:(_524-_525)}); +} +view.height(_51e.height()); +}; +function _526(_527,_528,_529){ +var rows=$.data(_527,"datagrid").data.rows; +var opts=$.data(_527,"datagrid").options; +var dc=$.data(_527,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!opts.nowrap||opts.autoRowHeight||_529)){ +if(_528!=undefined){ +var tr1=opts.finder.getTr(_527,_528,"body",1); +var tr2=opts.finder.getTr(_527,_528,"body",2); +_52a(tr1,tr2); +}else{ +var tr1=opts.finder.getTr(_527,0,"allbody",1); +var tr2=opts.finder.getTr(_527,0,"allbody",2); +_52a(tr1,tr2); +if(opts.showFooter){ +var tr1=opts.finder.getTr(_527,0,"allfooter",1); +var tr2=opts.finder.getTr(_527,0,"allfooter",2); +_52a(tr1,tr2); +} +} +} +_519(_527); +if(opts.height=="auto"){ +var _52b=dc.body1.parent(); +var _52c=dc.body2; +var _52d=_52e(_52c); +var _52f=_52d.height; +if(_52d.width>_52c.width()){ +_52f+=18; +} +_52b.height(_52f); +_52c.height(_52f); +dc.view.height(dc.view2.height()); +} +dc.body2.triggerHandler("scroll"); +function _52a(trs1,trs2){ +for(var i=0;i"); +} +_537(true); +_537(false); +_519(_534); +function _537(_538){ +var _539=_538?1:2; +var tr=opts.finder.getTr(_534,_535,"body",_539); +(_538?dc.body1:dc.body2).children("table.datagrid-btable-frozen").append(tr); +}; +}; +function _53a(_53b,_53c){ +function _53d(){ +var _53e=[]; +var _53f=[]; +$(_53b).children("thead").each(function(){ +var opt=$.parser.parseOptions(this,[{frozen:"boolean"}]); +$(this).find("tr").each(function(){ +var cols=[]; +$(this).find("th").each(function(){ +var th=$(this); +var col=$.extend({},$.parser.parseOptions(this,["field","align","halign","order",{sortable:"boolean",checkbox:"boolean",resizable:"boolean",fixed:"boolean"},{rowspan:"number",colspan:"number",width:"number"}]),{title:(th.html()||undefined),hidden:(th.attr("hidden")?true:undefined),formatter:(th.attr("formatter")?eval(th.attr("formatter")):undefined),styler:(th.attr("styler")?eval(th.attr("styler")):undefined),sorter:(th.attr("sorter")?eval(th.attr("sorter")):undefined)}); +if(th.attr("editor")){ +var s=$.trim(th.attr("editor")); +if(s.substr(0,1)=="{"){ +col.editor=eval("("+s+")"); +}else{ +col.editor=s; +} +} +cols.push(col); +}); +opt.frozen?_53e.push(cols):_53f.push(cols); +}); +}); +return [_53e,_53f]; +}; +var _540=$("
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+""+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+"
                                        "+""+"
                                        "+"
                                        "+"
                                        "+"
                                        ").insertAfter(_53b); +_540.panel({doSize:false}); +_540.panel("panel").addClass("datagrid").bind("_resize",function(e,_541){ +var opts=$.data(_53b,"datagrid").options; +if(opts.fit==true||_541){ +_515(_53b); +setTimeout(function(){ +if($.data(_53b,"datagrid")){ +_542(_53b); +} +},0); +} +return false; +}); +$(_53b).hide().appendTo(_540.children("div.datagrid-view")); +var cc=_53d(); +var view=_540.children("div.datagrid-view"); +var _543=view.children("div.datagrid-view1"); +var _544=view.children("div.datagrid-view2"); +return {panel:_540,frozenColumns:cc[0],columns:cc[1],dc:{view:view,view1:_543,view2:_544,header1:_543.children("div.datagrid-header").children("div.datagrid-header-inner"),header2:_544.children("div.datagrid-header").children("div.datagrid-header-inner"),body1:_543.children("div.datagrid-body").children("div.datagrid-body-inner"),body2:_544.children("div.datagrid-body"),footer1:_543.children("div.datagrid-footer").children("div.datagrid-footer-inner"),footer2:_544.children("div.datagrid-footer").children("div.datagrid-footer-inner")}}; +}; +function _545(_546){ +var _547=$.data(_546,"datagrid"); +var opts=_547.options; +var dc=_547.dc; +var _548=_547.panel; +_547.ss=$(_546).datagrid("createStyleSheet"); +_548.panel($.extend({},opts,{id:null,doSize:false,onResize:function(_549,_54a){ +setTimeout(function(){ +if($.data(_546,"datagrid")){ +_519(_546); +_579(_546); +opts.onResize.call(_548,_549,_54a); +} +},0); +},onExpand:function(){ +_526(_546); +opts.onExpand.call(_548); +}})); +_547.rowIdPrefix="datagrid-row-r"+(++_501); +_547.cellClassPrefix="datagrid-cell-c"+_501; +_54b(dc.header1,opts.frozenColumns,true); +_54b(dc.header2,opts.columns,false); +_54c(); +dc.header1.add(dc.header2).css("display",opts.showHeader?"block":"none"); +dc.footer1.add(dc.footer2).css("display",opts.showFooter?"block":"none"); +if(opts.toolbar){ +if($.isArray(opts.toolbar)){ +$("div.datagrid-toolbar",_548).remove(); +var tb=$("
                                        ").prependTo(_548); +var tr=tb.find("tr"); +for(var i=0;i
                                        ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(btn.handler||function(){ +}); +tool.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +$(opts.toolbar).addClass("datagrid-toolbar").prependTo(_548); +$(opts.toolbar).show(); +} +}else{ +$("div.datagrid-toolbar",_548).remove(); +} +$("div.datagrid-pager",_548).remove(); +if(opts.pagination){ +var _54d=$("
                                        "); +if(opts.pagePosition=="bottom"){ +_54d.appendTo(_548); +}else{ +if(opts.pagePosition=="top"){ +_54d.addClass("datagrid-pager-top").prependTo(_548); +}else{ +var ptop=$("
                                        ").prependTo(_548); +_54d.appendTo(_548); +_54d=_54d.add(ptop); +} +} +_54d.pagination({total:(opts.pageNumber*opts.pageSize),pageNumber:opts.pageNumber,pageSize:opts.pageSize,pageList:opts.pageList,onSelectPage:function(_54e,_54f){ +opts.pageNumber=_54e; +opts.pageSize=_54f; +_54d.pagination("refresh",{pageNumber:_54e,pageSize:_54f}); +_577(_546); +}}); +opts.pageSize=_54d.pagination("options").pageSize; +} +function _54b(_550,_551,_552){ +if(!_551){ +return; +} +$(_550).show(); +$(_550).empty(); +var _553=[]; +var _554=[]; +if(opts.sortName){ +_553=opts.sortName.split(","); +_554=opts.sortOrder.split(","); +} +var t=$("
                                        ").appendTo(_550); +for(var i=0;i<_551.length;i++){ +var tr=$("").appendTo($("tbody",t)); +var cols=_551[i]; +for(var j=0;j").appendTo(tr); +if(col.checkbox){ +td.attr("field",col.field); +$("
                                        ").html("").appendTo(td); +}else{ +if(col.field){ +td.attr("field",col.field); +td.append("
                                        "); +$("span",td).html(col.title); +$("span.datagrid-sort-icon",td).html(" "); +var cell=td.find("div.datagrid-cell"); +var pos=_502(_553,col.field); +if(pos>=0){ +cell.addClass("datagrid-sort-"+_554[pos]); +} +if(col.resizable==false){ +cell.attr("resizable","false"); +} +if(col.width){ +cell._outerWidth(col.width); +col.boxWidth=parseInt(cell[0].style.width); +}else{ +col.auto=true; +} +cell.css("text-align",(col.halign||col.align||"")); +col.cellClass=_547.cellClassPrefix+"-"+col.field.replace(/[\.|\s]/g,"-"); +cell.addClass(col.cellClass).css("width",""); +}else{ +$("
                                        ").html(col.title).appendTo(td); +} +} +if(col.hidden){ +td.hide(); +} +} +} +if(_552&&opts.rownumbers){ +var td=$("
                                        "); +if($("tr",t).length==0){ +td.wrap("").parent().appendTo($("tbody",t)); +}else{ +td.prependTo($("tr:first",t)); +} +} +}; +function _54c(){ +var _555=[]; +var _556=_557(_546,true).concat(_557(_546)); +for(var i=0;i<_556.length;i++){ +var col=_558(_546,_556[i]); +if(col&&!col.checkbox){ +_555.push(["."+col.cellClass,col.boxWidth?col.boxWidth+"px":"auto"]); +} +} +_547.ss.add(_555); +_547.ss.dirty(_547.cellSelectorPrefix); +_547.cellSelectorPrefix="."+_547.cellClassPrefix; +}; +}; +function _559(_55a){ +var _55b=$.data(_55a,"datagrid"); +var _55c=_55b.panel; +var opts=_55b.options; +var dc=_55b.dc; +var _55d=dc.header1.add(dc.header2); +_55d.find("input[type=checkbox]").unbind(".datagrid").bind("click.datagrid",function(e){ +if(opts.singleSelect&&opts.selectOnCheck){ +return false; +} +if($(this).is(":checked")){ +_5df(_55a); +}else{ +_5e5(_55a); +} +e.stopPropagation(); +}); +var _55e=_55d.find("div.datagrid-cell"); +_55e.closest("td").unbind(".datagrid").bind("mouseenter.datagrid",function(){ +if(_55b.resizing){ +return; +} +$(this).addClass("datagrid-header-over"); +}).bind("mouseleave.datagrid",function(){ +$(this).removeClass("datagrid-header-over"); +}).bind("contextmenu.datagrid",function(e){ +var _55f=$(this).attr("field"); +opts.onHeaderContextMenu.call(_55a,e,_55f); +}); +_55e.unbind(".datagrid").bind("click.datagrid",function(e){ +var p1=$(this).offset().left+5; +var p2=$(this).offset().left+$(this)._outerWidth()-5; +if(e.pageXp1){ +_56c(_55a,$(this).parent().attr("field")); +} +}).bind("dblclick.datagrid",function(e){ +var p1=$(this).offset().left+5; +var p2=$(this).offset().left+$(this)._outerWidth()-5; +var cond=opts.resizeHandle=="right"?(e.pageX>p2):(opts.resizeHandle=="left"?(e.pageXp2)); +if(cond){ +var _560=$(this).parent().attr("field"); +var col=_558(_55a,_560); +if(col.resizable==false){ +return; +} +$(_55a).datagrid("autoSizeColumn",_560); +col.auto=false; +} +}); +var _561=opts.resizeHandle=="right"?"e":(opts.resizeHandle=="left"?"w":"e,w"); +_55e.each(function(){ +$(this).resizable({handles:_561,disabled:($(this).attr("resizable")?$(this).attr("resizable")=="false":false),minWidth:25,onStartResize:function(e){ +_55b.resizing=true; +_55d.css("cursor",$("body").css("cursor")); +if(!_55b.proxy){ +_55b.proxy=$("
                                        ").appendTo(dc.view); +} +_55b.proxy.css({left:e.pageX-$(_55c).offset().left-1,display:"none"}); +setTimeout(function(){ +if(_55b.proxy){ +_55b.proxy.show(); +} +},500); +},onResize:function(e){ +_55b.proxy.css({left:e.pageX-$(_55c).offset().left-1,display:"block"}); +return false; +},onStopResize:function(e){ +_55d.css("cursor",""); +$(this).css("height",""); +$(this)._outerWidth($(this)._outerWidth()); +var _562=$(this).parent().attr("field"); +var col=_558(_55a,_562); +col.width=$(this)._outerWidth(); +col.boxWidth=parseInt(this.style.width); +col.auto=undefined; +$(this).css("width",""); +_542(_55a,_562); +_55b.proxy.remove(); +_55b.proxy=null; +if($(this).parents("div:first.datagrid-header").parent().hasClass("datagrid-view1")){ +_519(_55a); +} +_579(_55a); +opts.onResizeColumn.call(_55a,_562,col.width); +setTimeout(function(){ +_55b.resizing=false; +},0); +}}); +}); +dc.body1.add(dc.body2).unbind().bind("mouseover",function(e){ +if(_55b.resizing){ +return; +} +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_563(tr)){ +return; +} +var _564=_565(tr); +_5c7(_55a,_564); +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_563(tr)){ +return; +} +var _566=_565(tr); +opts.finder.getTr(_55a,_566).removeClass("datagrid-row-over"); +e.stopPropagation(); +}).bind("click",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!_563(tr)){ +return; +} +var _567=_565(tr); +if(tt.parent().hasClass("datagrid-cell-check")){ +if(opts.singleSelect&&opts.selectOnCheck){ +if(!opts.checkOnSelect){ +_5e5(_55a,true); +} +_5d2(_55a,_567); +}else{ +if(tt.is(":checked")){ +_5d2(_55a,_567); +}else{ +_5d9(_55a,_567); +} +} +}else{ +var row=opts.finder.getRow(_55a,_567); +var td=tt.closest("td[field]",tr); +if(td.length){ +var _568=td.attr("field"); +opts.onClickCell.call(_55a,_567,_568,row[_568]); +} +if(opts.singleSelect==true){ +_5cb(_55a,_567); +}else{ +if(opts.ctrlSelect){ +if(e.ctrlKey){ +if(tr.hasClass("datagrid-row-selected")){ +_5d3(_55a,_567); +}else{ +_5cb(_55a,_567); +} +}else{ +$(_55a).datagrid("clearSelections"); +_5cb(_55a,_567); +} +}else{ +if(tr.hasClass("datagrid-row-selected")){ +_5d3(_55a,_567); +}else{ +_5cb(_55a,_567); +} +} +} +opts.onClickRow.call(_55a,_567,row); +} +e.stopPropagation(); +}).bind("dblclick",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!_563(tr)){ +return; +} +var _569=_565(tr); +var row=opts.finder.getRow(_55a,_569); +var td=tt.closest("td[field]",tr); +if(td.length){ +var _56a=td.attr("field"); +opts.onDblClickCell.call(_55a,_569,_56a,row[_56a]); +} +opts.onDblClickRow.call(_55a,_569,row); +e.stopPropagation(); +}).bind("contextmenu",function(e){ +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_563(tr)){ +return; +} +var _56b=_565(tr); +var row=opts.finder.getRow(_55a,_56b); +opts.onRowContextMenu.call(_55a,e,_56b,row); +e.stopPropagation(); +}); +dc.body2.bind("scroll",function(){ +var b1=dc.view1.children("div.datagrid-body"); +b1.scrollTop($(this).scrollTop()); +var c1=dc.body1.children(":first"); +var c2=dc.body2.children(":first"); +if(c1.length&&c2.length){ +var top1=c1.offset().top; +var top2=c2.offset().top; +if(top1!=top2){ +b1.scrollTop(b1.scrollTop()+top1-top2); +} +} +dc.view2.children("div.datagrid-header,div.datagrid-footer")._scrollLeft($(this)._scrollLeft()); +dc.body2.children("table.datagrid-btable-frozen").css("left",-$(this)._scrollLeft()); +}); +function _565(tr){ +if(tr.attr("datagrid-row-index")){ +return parseInt(tr.attr("datagrid-row-index")); +}else{ +return tr.attr("node-id"); +} +}; +function _563(tr){ +return tr.length&&tr.parent().length; +}; +}; +function _56c(_56d,_56e){ +var _56f=$.data(_56d,"datagrid"); +var opts=_56f.options; +_56e=_56e||{}; +var _570={sortName:opts.sortName,sortOrder:opts.sortOrder}; +if(typeof _56e=="object"){ +$.extend(_570,_56e); +} +var _571=[]; +var _572=[]; +if(_570.sortName){ +_571=_570.sortName.split(","); +_572=_570.sortOrder.split(","); +} +if(typeof _56e=="string"){ +var _573=_56e; +var col=_558(_56d,_573); +if(!col.sortable||_56f.resizing){ +return; +} +var _574=col.order||"asc"; +var pos=_502(_571,_573); +if(pos>=0){ +var _575=_572[pos]=="asc"?"desc":"asc"; +if(opts.multiSort&&_575==_574){ +_571.splice(pos,1); +_572.splice(pos,1); +}else{ +_572[pos]=_575; +} +}else{ +if(opts.multiSort){ +_571.push(_573); +_572.push(_574); +}else{ +_571=[_573]; +_572=[_574]; +} +} +_570.sortName=_571.join(","); +_570.sortOrder=_572.join(","); +} +if(opts.onBeforeSortColumn.call(_56d,_570.sortName,_570.sortOrder)==false){ +return; +} +$.extend(opts,_570); +var dc=_56f.dc; +var _576=dc.header1.add(dc.header2); +_576.find("div.datagrid-cell").removeClass("datagrid-sort-asc datagrid-sort-desc"); +for(var i=0;i<_571.length;i++){ +var col=_558(_56d,_571[i]); +_576.find("div."+col.cellClass).addClass("datagrid-sort-"+_572[i]); +} +if(opts.remoteSort){ +_577(_56d); +}else{ +_578(_56d,$(_56d).datagrid("getData")); +} +opts.onSortColumn.call(_56d,opts.sortName,opts.sortOrder); +}; +function _579(_57a){ +var _57b=$.data(_57a,"datagrid"); +var opts=_57b.options; +var dc=_57b.dc; +dc.body2.css("overflow-x",""); +if(!opts.fitColumns){ +return; +} +if(!_57b.leftWidth){ +_57b.leftWidth=0; +} +var _57c=dc.view2.children("div.datagrid-header"); +var _57d=0; +var _57e; +var _57f=_557(_57a,false); +for(var i=0;i<_57f.length;i++){ +var col=_558(_57a,_57f[i]); +if(_580(col)){ +_57d+=col.width; +_57e=col; +} +} +if(!_57d){ +return; +} +if(_57e){ +_581(_57e,-_57b.leftWidth); +} +var _582=_57c.children("div.datagrid-header-inner").show(); +var _583=_57c.width()-_57c.find("table").width()-opts.scrollbarSize+_57b.leftWidth; +var rate=_583/_57d; +if(!opts.showHeader){ +_582.hide(); +} +for(var i=0;i<_57f.length;i++){ +var col=_558(_57a,_57f[i]); +if(_580(col)){ +var _584=parseInt(col.width*rate); +_581(col,_584); +_583-=_584; +} +} +_57b.leftWidth=_583; +if(_57e){ +_581(_57e,_57b.leftWidth); +} +_542(_57a); +if(_57c.width()>=_57c.find("table").width()){ +dc.body2.css("overflow-x","hidden"); +} +function _581(col,_585){ +if(col.width+_585>0){ +col.width+=_585; +col.boxWidth+=_585; +} +}; +function _580(col){ +if(!col.hidden&&!col.checkbox&&!col.auto&&!col.fixed){ +return true; +} +}; +}; +function _586(_587,_588){ +var _589=$.data(_587,"datagrid"); +var opts=_589.options; +var dc=_589.dc; +var tmp=$("
                                        ").appendTo("body"); +if(_588){ +_515(_588); +if(opts.fitColumns){ +_519(_587); +_579(_587); +} +}else{ +var _58a=false; +var _58b=_557(_587,true).concat(_557(_587,false)); +for(var i=0;i<_58b.length;i++){ +var _588=_58b[i]; +var col=_558(_587,_588); +if(col.auto){ +_515(_588); +_58a=true; +} +} +if(_58a&&opts.fitColumns){ +_519(_587); +_579(_587); +} +} +tmp.remove(); +function _515(_58c){ +var _58d=dc.view.find("div.datagrid-header td[field=\""+_58c+"\"] div.datagrid-cell"); +_58d.css("width",""); +var col=$(_587).datagrid("getColumnOption",_58c); +col.width=undefined; +col.boxWidth=undefined; +col.auto=true; +$(_587).datagrid("fixColumnSize",_58c); +var _58e=Math.max(_58f("header"),_58f("allbody"),_58f("allfooter")); +_58d._outerWidth(_58e); +col.width=_58e; +col.boxWidth=parseInt(_58d[0].style.width); +_58d.css("width",""); +$(_587).datagrid("fixColumnSize",_58c); +opts.onResizeColumn.call(_587,_58c,col.width); +function _58f(type){ +var _590=0; +if(type=="header"){ +_590=_591(_58d); +}else{ +opts.finder.getTr(_587,0,type).find("td[field=\""+_58c+"\"] div.datagrid-cell").each(function(){ +var w=_591($(this)); +if(_590b?1:-1); +}; +r=_5ac(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +} +if(opts.view.onBeforeRender){ +opts.view.onBeforeRender.call(opts.view,_5a8,data.rows); +} +opts.view.render.call(opts.view,_5a8,dc.body2,false); +opts.view.render.call(opts.view,_5a8,dc.body1,true); +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,_5a8,dc.footer2,false); +opts.view.renderFooter.call(opts.view,_5a8,dc.footer1,true); +} +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,_5a8); +} +_5a9.ss.clean(); +opts.onLoadSuccess.call(_5a8,data); +var _5ad=$(_5a8).datagrid("getPager"); +if(_5ad.length){ +var _5ae=_5ad.pagination("options"); +if(_5ae.total!=data.total){ +_5ad.pagination("refresh",{total:data.total}); +if(opts.pageNumber!=_5ae.pageNumber){ +opts.pageNumber=_5ae.pageNumber; +_577(_5a8); +} +} +} +_526(_5a8); +dc.body2.triggerHandler("scroll"); +_5af(_5a8); +$(_5a8).datagrid("autoSizeColumn"); +}; +function _5af(_5b0){ +var _5b1=$.data(_5b0,"datagrid"); +var opts=_5b1.options; +if(opts.idField){ +var _5b2=$.data(_5b0,"treegrid")?true:false; +var _5b3=opts.onSelect; +var _5b4=opts.onCheck; +opts.onSelect=opts.onCheck=function(){ +}; +var rows=opts.finder.getRows(_5b0); +for(var i=0;i_5c5.height()-18){ +_5c5.scrollTop(_5c5.scrollTop()+top+tr._outerHeight()-_5c5.height()+18); +} +} +} +}; +function _5c7(_5c8,_5c9){ +var _5ca=$.data(_5c8,"datagrid"); +var opts=_5ca.options; +opts.finder.getTr(_5c8,_5ca.highlightIndex).removeClass("datagrid-row-over"); +opts.finder.getTr(_5c8,_5c9).addClass("datagrid-row-over"); +_5ca.highlightIndex=_5c9; +}; +function _5cb(_5cc,_5cd,_5ce){ +var _5cf=$.data(_5cc,"datagrid"); +var dc=_5cf.dc; +var opts=_5cf.options; +var _5d0=_5cf.selectedRows; +if(opts.singleSelect){ +_5d1(_5cc); +_5d0.splice(0,_5d0.length); +} +if(!_5ce&&opts.checkOnSelect){ +_5d2(_5cc,_5cd,true); +} +var row=opts.finder.getRow(_5cc,_5cd); +if(opts.idField){ +_505(_5d0,opts.idField,row); +} +opts.finder.getTr(_5cc,_5cd).addClass("datagrid-row-selected"); +opts.onSelect.call(_5cc,_5cd,row); +_5c0(_5cc,_5cd); +}; +function _5d3(_5d4,_5d5,_5d6){ +var _5d7=$.data(_5d4,"datagrid"); +var dc=_5d7.dc; +var opts=_5d7.options; +var _5d8=$.data(_5d4,"datagrid").selectedRows; +if(!_5d6&&opts.checkOnSelect){ +_5d9(_5d4,_5d5,true); +} +opts.finder.getTr(_5d4,_5d5).removeClass("datagrid-row-selected"); +var row=opts.finder.getRow(_5d4,_5d5); +if(opts.idField){ +_503(_5d8,opts.idField,row[opts.idField]); +} +opts.onUnselect.call(_5d4,_5d5,row); +}; +function _5da(_5db,_5dc){ +var _5dd=$.data(_5db,"datagrid"); +var opts=_5dd.options; +var rows=opts.finder.getRows(_5db); +var _5de=$.data(_5db,"datagrid").selectedRows; +if(!_5dc&&opts.checkOnSelect){ +_5df(_5db,true); +} +opts.finder.getTr(_5db,"","allbody").addClass("datagrid-row-selected"); +if(opts.idField){ +for(var _5e0=0;_5e0"); +cell.children("table").bind("click dblclick contextmenu",function(e){ +e.stopPropagation(); +}); +$.data(cell[0],"datagrid.editor",{actions:_615,target:_615.init(cell.find("td"),_614),field:_612,type:_613,oldHtml:_616}); +} +} +}); +_526(_610,_611,true); +}; +function _607(_618,_619){ +var opts=$.data(_618,"datagrid").options; +var tr=opts.finder.getTr(_618,_619); +tr.children("td").each(function(){ +var cell=$(this).find("div.datagrid-editable"); +if(cell.length){ +var ed=$.data(cell[0],"datagrid.editor"); +if(ed.actions.destroy){ +ed.actions.destroy(ed.target); +} +cell.html(ed.oldHtml); +$.removeData(cell[0],"datagrid.editor"); +cell.removeClass("datagrid-editable"); +cell.css("width",""); +} +}); +}; +function _5fc(_61a,_61b){ +var tr=$.data(_61a,"datagrid").options.finder.getTr(_61a,_61b); +if(!tr.hasClass("datagrid-row-editing")){ +return true; +} +var vbox=tr.find(".validatebox-text"); +vbox.validatebox("validate"); +vbox.trigger("mouseleave"); +var _61c=tr.find(".validatebox-invalid"); +return _61c.length==0; +}; +function _61d(_61e,_61f){ +var _620=$.data(_61e,"datagrid").insertedRows; +var _621=$.data(_61e,"datagrid").deletedRows; +var _622=$.data(_61e,"datagrid").updatedRows; +if(!_61f){ +var rows=[]; +rows=rows.concat(_620); +rows=rows.concat(_621); +rows=rows.concat(_622); +return rows; +}else{ +if(_61f=="inserted"){ +return _620; +}else{ +if(_61f=="deleted"){ +return _621; +}else{ +if(_61f=="updated"){ +return _622; +} +} +} +} +return []; +}; +function _623(_624,_625){ +var _626=$.data(_624,"datagrid"); +var opts=_626.options; +var data=_626.data; +var _627=_626.insertedRows; +var _628=_626.deletedRows; +$(_624).datagrid("cancelEdit",_625); +var row=opts.finder.getRow(_624,_625); +if(_502(_627,row)>=0){ +_503(_627,row); +}else{ +_628.push(row); +} +_503(_626.selectedRows,opts.idField,row[opts.idField]); +_503(_626.checkedRows,opts.idField,row[opts.idField]); +opts.view.deleteRow.call(opts.view,_624,_625); +if(opts.height=="auto"){ +_526(_624); +} +$(_624).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _629(_62a,_62b){ +var data=$.data(_62a,"datagrid").data; +var view=$.data(_62a,"datagrid").options.view; +var _62c=$.data(_62a,"datagrid").insertedRows; +view.insertRow.call(view,_62a,_62b.index,_62b.row); +_62c.push(_62b.row); +$(_62a).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _62d(_62e,row){ +var data=$.data(_62e,"datagrid").data; +var view=$.data(_62e,"datagrid").options.view; +var _62f=$.data(_62e,"datagrid").insertedRows; +view.insertRow.call(view,_62e,null,row); +_62f.push(row); +$(_62e).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _630(_631){ +var _632=$.data(_631,"datagrid"); +var data=_632.data; +var rows=data.rows; +var _633=[]; +for(var i=0;i=0){ +(_640=="s"?_5cb:_5d2)(_637,_641,true); +} +} +}; +for(var i=0;i0){ +_578(this,data); +_630(this); +} +} +_577(this); +}); +}; +var _651={text:{init:function(_652,_653){ +var _654=$("").appendTo(_652); +return _654; +},getValue:function(_655){ +return $(_655).val(); +},setValue:function(_656,_657){ +$(_656).val(_657); +},resize:function(_658,_659){ +$(_658)._outerWidth(_659)._outerHeight(22); +}},textarea:{init:function(_65a,_65b){ +var _65c=$("").appendTo(_65a); +return _65c; +},getValue:function(_65d){ +return $(_65d).val(); +},setValue:function(_65e,_65f){ +$(_65e).val(_65f); +},resize:function(_660,_661){ +$(_660)._outerWidth(_661); +}},checkbox:{init:function(_662,_663){ +var _664=$("").appendTo(_662); +_664.val(_663.on); +_664.attr("offval",_663.off); +return _664; +},getValue:function(_665){ +if($(_665).is(":checked")){ +return $(_665).val(); +}else{ +return $(_665).attr("offval"); +} +},setValue:function(_666,_667){ +var _668=false; +if($(_666).val()==_667){ +_668=true; +} +$(_666)._propAttr("checked",_668); +}},numberbox:{init:function(_669,_66a){ +var _66b=$("").appendTo(_669); +_66b.numberbox(_66a); +return _66b; +},destroy:function(_66c){ +$(_66c).numberbox("destroy"); +},getValue:function(_66d){ +$(_66d).blur(); +return $(_66d).numberbox("getValue"); +},setValue:function(_66e,_66f){ +$(_66e).numberbox("setValue",_66f); +},resize:function(_670,_671){ +$(_670)._outerWidth(_671)._outerHeight(22); +}},validatebox:{init:function(_672,_673){ +var _674=$("").appendTo(_672); +_674.validatebox(_673); +return _674; +},destroy:function(_675){ +$(_675).validatebox("destroy"); +},getValue:function(_676){ +return $(_676).val(); +},setValue:function(_677,_678){ +$(_677).val(_678); +},resize:function(_679,_67a){ +$(_679)._outerWidth(_67a)._outerHeight(22); +}},datebox:{init:function(_67b,_67c){ +var _67d=$("").appendTo(_67b); +_67d.datebox(_67c); +return _67d; +},destroy:function(_67e){ +$(_67e).datebox("destroy"); +},getValue:function(_67f){ +return $(_67f).datebox("getValue"); +},setValue:function(_680,_681){ +$(_680).datebox("setValue",_681); +},resize:function(_682,_683){ +$(_682).datebox("resize",_683); +}},combobox:{init:function(_684,_685){ +var _686=$("").appendTo(_684); +_686.combobox(_685||{}); +return _686; +},destroy:function(_687){ +$(_687).combobox("destroy"); +},getValue:function(_688){ +var opts=$(_688).combobox("options"); +if(opts.multiple){ +return $(_688).combobox("getValues").join(opts.separator); +}else{ +return $(_688).combobox("getValue"); +} +},setValue:function(_689,_68a){ +var opts=$(_689).combobox("options"); +if(opts.multiple){ +if(_68a){ +$(_689).combobox("setValues",_68a.split(opts.separator)); +}else{ +$(_689).combobox("clear"); +} +}else{ +$(_689).combobox("setValue",_68a); +} +},resize:function(_68b,_68c){ +$(_68b).combobox("resize",_68c); +}},combotree:{init:function(_68d,_68e){ +var _68f=$("").appendTo(_68d); +_68f.combotree(_68e); +return _68f; +},destroy:function(_690){ +$(_690).combotree("destroy"); +},getValue:function(_691){ +var opts=$(_691).combotree("options"); +if(opts.multiple){ +return $(_691).combotree("getValues").join(opts.separator); +}else{ +return $(_691).combotree("getValue"); +} +},setValue:function(_692,_693){ +var opts=$(_692).combotree("options"); +if(opts.multiple){ +if(_693){ +$(_692).combotree("setValues",_693.split(opts.separator)); +}else{ +$(_692).combotree("clear"); +} +}else{ +$(_692).combotree("setValue",_693); +} +},resize:function(_694,_695){ +$(_694).combotree("resize",_695); +}},combogrid:{init:function(_696,_697){ +var _698=$("").appendTo(_696); +_698.combogrid(_697); +return _698; +},destroy:function(_699){ +$(_699).combogrid("destroy"); +},getValue:function(_69a){ +var opts=$(_69a).combogrid("options"); +if(opts.multiple){ +return $(_69a).combogrid("getValues").join(opts.separator); +}else{ +return $(_69a).combogrid("getValue"); +} +},setValue:function(_69b,_69c){ +var opts=$(_69b).combogrid("options"); +if(opts.multiple){ +if(_69c){ +$(_69b).combogrid("setValues",_69c.split(opts.separator)); +}else{ +$(_69b).combogrid("clear"); +} +}else{ +$(_69b).combogrid("setValue",_69c); +} +},resize:function(_69d,_69e){ +$(_69d).combogrid("resize",_69e); +}}}; +$.fn.datagrid.methods={options:function(jq){ +var _69f=$.data(jq[0],"datagrid").options; +var _6a0=$.data(jq[0],"datagrid").panel.panel("options"); +var opts=$.extend(_69f,{width:_6a0.width,height:_6a0.height,closed:_6a0.closed,collapsed:_6a0.collapsed,minimized:_6a0.minimized,maximized:_6a0.maximized}); +return opts; +},setSelectionState:function(jq){ +return jq.each(function(){ +_5af(this); +}); +},createStyleSheet:function(jq){ +return _506(jq[0]); +},getPanel:function(jq){ +return $.data(jq[0],"datagrid").panel; +},getPager:function(jq){ +return $.data(jq[0],"datagrid").panel.children("div.datagrid-pager"); +},getColumnFields:function(jq,_6a1){ +return _557(jq[0],_6a1); +},getColumnOption:function(jq,_6a2){ +return _558(jq[0],_6a2); +},resize:function(jq,_6a3){ +return jq.each(function(){ +_515(this,_6a3); +}); +},load:function(jq,_6a4){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +opts.pageNumber=1; +var _6a5=$(this).datagrid("getPager"); +_6a5.pagination("refresh",{pageNumber:1}); +_577(this,_6a4); +}); +},reload:function(jq,_6a6){ +return jq.each(function(){ +_577(this,_6a6); +}); +},reloadFooter:function(jq,_6a7){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +var dc=$.data(this,"datagrid").dc; +if(_6a7){ +$.data(this,"datagrid").footer=_6a7; +} +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,this,dc.footer2,false); +opts.view.renderFooter.call(opts.view,this,dc.footer1,true); +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,this); +} +$(this).datagrid("fixRowHeight"); +} +}); +},loading:function(jq){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +$(this).datagrid("getPager").pagination("loading"); +if(opts.loadMsg){ +var _6a8=$(this).datagrid("getPanel"); +if(!_6a8.children("div.datagrid-mask").length){ +$("
                                        ").appendTo(_6a8); +var msg=$("
                                        ").html(opts.loadMsg).appendTo(_6a8); +msg._outerHeight(40); +msg.css({marginLeft:(-msg.outerWidth()/2),lineHeight:(msg.height()+"px")}); +} +} +}); +},loaded:function(jq){ +return jq.each(function(){ +$(this).datagrid("getPager").pagination("loaded"); +var _6a9=$(this).datagrid("getPanel"); +_6a9.children("div.datagrid-mask-msg").remove(); +_6a9.children("div.datagrid-mask").remove(); +}); +},fitColumns:function(jq){ +return jq.each(function(){ +_579(this); +}); +},fixColumnSize:function(jq,_6aa){ +return jq.each(function(){ +_542(this,_6aa); +}); +},fixRowHeight:function(jq,_6ab){ +return jq.each(function(){ +_526(this,_6ab); +}); +},freezeRow:function(jq,_6ac){ +return jq.each(function(){ +_533(this,_6ac); +}); +},autoSizeColumn:function(jq,_6ad){ +return jq.each(function(){ +_586(this,_6ad); +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_578(this,data); +_630(this); +}); +},getData:function(jq){ +return $.data(jq[0],"datagrid").data; +},getRows:function(jq){ +return $.data(jq[0],"datagrid").data.rows; +},getFooterRows:function(jq){ +return $.data(jq[0],"datagrid").footer; +},getRowIndex:function(jq,id){ +return _5b7(jq[0],id); +},getChecked:function(jq){ +return _5bd(jq[0]); +},getSelected:function(jq){ +var rows=_5ba(jq[0]); +return rows.length>0?rows[0]:null; +},getSelections:function(jq){ +return _5ba(jq[0]); +},clearSelections:function(jq){ +return jq.each(function(){ +var _6ae=$.data(this,"datagrid"); +var _6af=_6ae.selectedRows; +var _6b0=_6ae.checkedRows; +_6af.splice(0,_6af.length); +_5d1(this); +if(_6ae.options.checkOnSelect){ +_6b0.splice(0,_6b0.length); +} +}); +},clearChecked:function(jq){ +return jq.each(function(){ +var _6b1=$.data(this,"datagrid"); +var _6b2=_6b1.selectedRows; +var _6b3=_6b1.checkedRows; +_6b3.splice(0,_6b3.length); +_5e5(this); +if(_6b1.options.selectOnCheck){ +_6b2.splice(0,_6b2.length); +} +}); +},scrollTo:function(jq,_6b4){ +return jq.each(function(){ +_5c0(this,_6b4); +}); +},highlightRow:function(jq,_6b5){ +return jq.each(function(){ +_5c7(this,_6b5); +_5c0(this,_6b5); +}); +},selectAll:function(jq){ +return jq.each(function(){ +_5da(this); +}); +},unselectAll:function(jq){ +return jq.each(function(){ +_5d1(this); +}); +},selectRow:function(jq,_6b6){ +return jq.each(function(){ +_5cb(this,_6b6); +}); +},selectRecord:function(jq,id){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +if(opts.idField){ +var _6b7=_5b7(this,id); +if(_6b7>=0){ +$(this).datagrid("selectRow",_6b7); +} +} +}); +},unselectRow:function(jq,_6b8){ +return jq.each(function(){ +_5d3(this,_6b8); +}); +},checkRow:function(jq,_6b9){ +return jq.each(function(){ +_5d2(this,_6b9); +}); +},uncheckRow:function(jq,_6ba){ +return jq.each(function(){ +_5d9(this,_6ba); +}); +},checkAll:function(jq){ +return jq.each(function(){ +_5df(this); +}); +},uncheckAll:function(jq){ +return jq.each(function(){ +_5e5(this); +}); +},beginEdit:function(jq,_6bb){ +return jq.each(function(){ +_5f7(this,_6bb); +}); +},endEdit:function(jq,_6bc){ +return jq.each(function(){ +_5fd(this,_6bc,false); +}); +},cancelEdit:function(jq,_6bd){ +return jq.each(function(){ +_5fd(this,_6bd,true); +}); +},getEditors:function(jq,_6be){ +return _608(jq[0],_6be); +},getEditor:function(jq,_6bf){ +return _60c(jq[0],_6bf); +},refreshRow:function(jq,_6c0){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +opts.view.refreshRow.call(opts.view,this,_6c0); +}); +},validateRow:function(jq,_6c1){ +return _5fc(jq[0],_6c1); +},updateRow:function(jq,_6c2){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +opts.view.updateRow.call(opts.view,this,_6c2.index,_6c2.row); +}); +},appendRow:function(jq,row){ +return jq.each(function(){ +_62d(this,row); +}); +},insertRow:function(jq,_6c3){ +return jq.each(function(){ +_629(this,_6c3); +}); +},deleteRow:function(jq,_6c4){ +return jq.each(function(){ +_623(this,_6c4); +}); +},getChanges:function(jq,_6c5){ +return _61d(jq[0],_6c5); +},acceptChanges:function(jq){ +return jq.each(function(){ +_634(this); +}); +},rejectChanges:function(jq){ +return jq.each(function(){ +_636(this); +}); +},mergeCells:function(jq,_6c6){ +return jq.each(function(){ +_649(this,_6c6); +}); +},showColumn:function(jq,_6c7){ +return jq.each(function(){ +var _6c8=$(this).datagrid("getPanel"); +_6c8.find("td[field=\""+_6c7+"\"]").show(); +$(this).datagrid("getColumnOption",_6c7).hidden=false; +$(this).datagrid("fitColumns"); +}); +},hideColumn:function(jq,_6c9){ +return jq.each(function(){ +var _6ca=$(this).datagrid("getPanel"); +_6ca.find("td[field=\""+_6c9+"\"]").hide(); +$(this).datagrid("getColumnOption",_6c9).hidden=true; +$(this).datagrid("fitColumns"); +}); +},sort:function(jq,_6cb){ +return jq.each(function(){ +_56c(this,_6cb); +}); +}}; +$.fn.datagrid.parseOptions=function(_6cc){ +var t=$(_6cc); +return $.extend({},$.fn.panel.parseOptions(_6cc),$.parser.parseOptions(_6cc,["url","toolbar","idField","sortName","sortOrder","pagePosition","resizeHandle",{sharedStyleSheet:"boolean",fitColumns:"boolean",autoRowHeight:"boolean",striped:"boolean",nowrap:"boolean"},{rownumbers:"boolean",singleSelect:"boolean",ctrlSelect:"boolean",checkOnSelect:"boolean",selectOnCheck:"boolean"},{pagination:"boolean",pageSize:"number",pageNumber:"number"},{multiSort:"boolean",remoteSort:"boolean",showHeader:"boolean",showFooter:"boolean"},{scrollbarSize:"number"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined),loadMsg:(t.attr("loadMsg")!=undefined?t.attr("loadMsg"):undefined),rowStyler:(t.attr("rowStyler")?eval(t.attr("rowStyler")):undefined)}); +}; +$.fn.datagrid.parseData=function(_6cd){ +var t=$(_6cd); +var data={total:0,rows:[]}; +var _6ce=t.datagrid("getColumnFields",true).concat(t.datagrid("getColumnFields",false)); +t.find("tbody tr").each(function(){ +data.total++; +var row={}; +$.extend(row,$.parser.parseOptions(this,["iconCls","state"])); +for(var i=0;i<_6ce.length;i++){ +row[_6ce[i]]=$(this).find("td:eq("+i+")").html(); +} +data.rows.push(row); +}); +return data; +}; +var _6cf={render:function(_6d0,_6d1,_6d2){ +var _6d3=$.data(_6d0,"datagrid"); +var opts=_6d3.options; +var rows=_6d3.data.rows; +var _6d4=$(_6d0).datagrid("getColumnFields",_6d2); +if(_6d2){ +if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ +return; +} +} +var _6d5=[""]; +for(var i=0;i"); +_6d5.push(this.renderRow.call(this,_6d0,_6d4,_6d2,i,rows[i])); +_6d5.push(""); +} +_6d5.push("
                                        "); +$(_6d1).html(_6d5.join("")); +},renderFooter:function(_6da,_6db,_6dc){ +var opts=$.data(_6da,"datagrid").options; +var rows=$.data(_6da,"datagrid").footer||[]; +var _6dd=$(_6da).datagrid("getColumnFields",_6dc); +var _6de=[""]; +for(var i=0;i"); +_6de.push(this.renderRow.call(this,_6da,_6dd,_6dc,i,rows[i])); +_6de.push(""); +} +_6de.push("
                                        "); +$(_6db).html(_6de.join("")); +},renderRow:function(_6df,_6e0,_6e1,_6e2,_6e3){ +var opts=$.data(_6df,"datagrid").options; +var cc=[]; +if(_6e1&&opts.rownumbers){ +var _6e4=_6e2+1; +if(opts.pagination){ +_6e4+=(opts.pageNumber-1)*opts.pageSize; +} +cc.push("
                                        "+_6e4+"
                                        "); +} +for(var i=0;i<_6e0.length;i++){ +var _6e5=_6e0[i]; +var col=$(_6df).datagrid("getColumnOption",_6e5); +if(col){ +var _6e6=_6e3[_6e5]; +var css=col.styler?(col.styler(_6e6,_6e3,_6e2)||""):""; +var _6e7=""; +var _6e8=""; +if(typeof css=="string"){ +_6e8=css; +}else{ +if(css){ +_6e7=css["class"]||""; +_6e8=css["style"]||""; +} +} +var cls=_6e7?"class=\""+_6e7+"\"":""; +var _6e9=col.hidden?"style=\"display:none;"+_6e8+"\"":(_6e8?"style=\""+_6e8+"\"":""); +cc.push(""); +var _6e9=""; +if(!col.checkbox){ +if(col.align){ +_6e9+="text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_6e9+="white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_6e9+="height:auto;"; +} +} +} +cc.push("
                                        "); +if(col.checkbox){ +cc.push(""); +}else{ +if(col.formatter){ +cc.push(col.formatter(_6e6,_6e3,_6e2)); +}else{ +cc.push(_6e6); +} +} +cc.push("
                                        "); +cc.push(""); +} +} +return cc.join(""); +},refreshRow:function(_6ea,_6eb){ +this.updateRow.call(this,_6ea,_6eb,{}); +},updateRow:function(_6ec,_6ed,row){ +var opts=$.data(_6ec,"datagrid").options; +var rows=$(_6ec).datagrid("getRows"); +$.extend(rows[_6ed],row); +var css=opts.rowStyler?opts.rowStyler.call(_6ec,_6ed,rows[_6ed]):""; +var _6ee=""; +var _6ef=""; +if(typeof css=="string"){ +_6ef=css; +}else{ +if(css){ +_6ee=css["class"]||""; +_6ef=css["style"]||""; +} +} +var _6ee="datagrid-row "+(_6ed%2&&opts.striped?"datagrid-row-alt ":" ")+_6ee; +function _6f0(_6f1){ +var _6f2=$(_6ec).datagrid("getColumnFields",_6f1); +var tr=opts.finder.getTr(_6ec,_6ed,"body",(_6f1?1:2)); +var _6f3=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow.call(this,_6ec,_6f2,_6f1,_6ed,rows[_6ed])); +tr.attr("style",_6ef).attr("class",tr.hasClass("datagrid-row-selected")?_6ee+" datagrid-row-selected":_6ee); +if(_6f3){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_6f0.call(this,true); +_6f0.call(this,false); +$(_6ec).datagrid("fixRowHeight",_6ed); +},insertRow:function(_6f4,_6f5,row){ +var _6f6=$.data(_6f4,"datagrid"); +var opts=_6f6.options; +var dc=_6f6.dc; +var data=_6f6.data; +if(_6f5==undefined||_6f5==null){ +_6f5=data.rows.length; +} +if(_6f5>data.rows.length){ +_6f5=data.rows.length; +} +function _6f7(_6f8){ +var _6f9=_6f8?1:2; +for(var i=data.rows.length-1;i>=_6f5;i--){ +var tr=opts.finder.getTr(_6f4,i,"body",_6f9); +tr.attr("datagrid-row-index",i+1); +tr.attr("id",_6f6.rowIdPrefix+"-"+_6f9+"-"+(i+1)); +if(_6f8&&opts.rownumbers){ +var _6fa=i+2; +if(opts.pagination){ +_6fa+=(opts.pageNumber-1)*opts.pageSize; +} +tr.find("div.datagrid-cell-rownumber").html(_6fa); +} +if(opts.striped){ +tr.removeClass("datagrid-row-alt").addClass((i+1)%2?"datagrid-row-alt":""); +} +} +}; +function _6fb(_6fc){ +var _6fd=_6fc?1:2; +var _6fe=$(_6f4).datagrid("getColumnFields",_6fc); +var _6ff=_6f6.rowIdPrefix+"-"+_6fd+"-"+_6f5; +var tr=""; +if(_6f5>=data.rows.length){ +if(data.rows.length){ +opts.finder.getTr(_6f4,"","last",_6fd).after(tr); +}else{ +var cc=_6fc?dc.body1:dc.body2; +cc.html(""+tr+"
                                        "); +} +}else{ +opts.finder.getTr(_6f4,_6f5+1,"body",_6fd).before(tr); +} +}; +_6f7.call(this,true); +_6f7.call(this,false); +_6fb.call(this,true); +_6fb.call(this,false); +data.total+=1; +data.rows.splice(_6f5,0,row); +this.refreshRow.call(this,_6f4,_6f5); +},deleteRow:function(_700,_701){ +var _702=$.data(_700,"datagrid"); +var opts=_702.options; +var data=_702.data; +function _703(_704){ +var _705=_704?1:2; +for(var i=_701+1;itable>tbody>tr[datagrid-row-index="+_710+"]"); +} +return tr; +}else{ +if(type=="footer"){ +return (_711==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index="+_710+"]"); +}else{ +if(type=="selected"){ +return (_711==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-selected"); +}else{ +if(type=="highlight"){ +return (_711==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-over"); +}else{ +if(type=="checked"){ +return (_711==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-checked"); +}else{ +if(type=="last"){ +return (_711==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]:last"); +}else{ +if(type=="allbody"){ +return (_711==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]"); +}else{ +if(type=="allfooter"){ +return (_711==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index]"); +} +} +} +} +} +} +} +} +} +},getRow:function(_713,p){ +var _714=(typeof p=="object")?p.attr("datagrid-row-index"):p; +return $.data(_713,"datagrid").data.rows[parseInt(_714)]; +},getRows:function(_715){ +return $(_715).datagrid("getRows"); +}},view:_6cf,onBeforeLoad:function(_716){ +},onLoadSuccess:function(){ +},onLoadError:function(){ +},onClickRow:function(_717,_718){ +},onDblClickRow:function(_719,_71a){ +},onClickCell:function(_71b,_71c,_71d){ +},onDblClickCell:function(_71e,_71f,_720){ +},onBeforeSortColumn:function(sort,_721){ +},onSortColumn:function(sort,_722){ +},onResizeColumn:function(_723,_724){ +},onSelect:function(_725,_726){ +},onUnselect:function(_727,_728){ +},onSelectAll:function(rows){ +},onUnselectAll:function(rows){ +},onCheck:function(_729,_72a){ +},onUncheck:function(_72b,_72c){ +},onCheckAll:function(rows){ +},onUncheckAll:function(rows){ +},onBeforeEdit:function(_72d,_72e){ +},onBeginEdit:function(_72f,_730){ +},onEndEdit:function(_731,_732,_733){ +},onAfterEdit:function(_734,_735,_736){ +},onCancelEdit:function(_737,_738){ +},onHeaderContextMenu:function(e,_739){ +},onRowContextMenu:function(e,_73a,_73b){ +}}); +})(jQuery); +(function($){ +var _73c; +function _73d(_73e){ +var _73f=$.data(_73e,"propertygrid"); +var opts=$.data(_73e,"propertygrid").options; +$(_73e).datagrid($.extend({},opts,{cls:"propertygrid",view:(opts.showGroup?opts.groupView:opts.view),onClickRow:function(_740,row){ +if(_73c!=this){ +_741(_73c); +_73c=this; +} +if(opts.editIndex!=_740&&row.editor){ +var col=$(this).datagrid("getColumnOption","value"); +col.editor=row.editor; +_741(_73c); +$(this).datagrid("beginEdit",_740); +$(this).datagrid("getEditors",_740)[0].target.focus(); +opts.editIndex=_740; +} +opts.onClickRow.call(_73e,_740,row); +},loadFilter:function(data){ +_741(this); +return opts.loadFilter.call(this,data); +}})); +$(document).unbind(".propertygrid").bind("mousedown.propertygrid",function(e){ +var p=$(e.target).closest("div.datagrid-view,div.combo-panel"); +if(p.length){ +return; +} +_741(_73c); +_73c=undefined; +}); +}; +function _741(_742){ +var t=$(_742); +if(!t.length){ +return; +} +var opts=$.data(_742,"propertygrid").options; +var _743=opts.editIndex; +if(_743==undefined){ +return; +} +var ed=t.datagrid("getEditors",_743)[0]; +if(ed){ +ed.target.blur(); +if(t.datagrid("validateRow",_743)){ +t.datagrid("endEdit",_743); +}else{ +t.datagrid("cancelEdit",_743); +} +} +opts.editIndex=undefined; +}; +$.fn.propertygrid=function(_744,_745){ +if(typeof _744=="string"){ +var _746=$.fn.propertygrid.methods[_744]; +if(_746){ +return _746(this,_745); +}else{ +return this.datagrid(_744,_745); +} +} +_744=_744||{}; +return this.each(function(){ +var _747=$.data(this,"propertygrid"); +if(_747){ +$.extend(_747.options,_744); +}else{ +var opts=$.extend({},$.fn.propertygrid.defaults,$.fn.propertygrid.parseOptions(this),_744); +opts.frozenColumns=$.extend(true,[],opts.frozenColumns); +opts.columns=$.extend(true,[],opts.columns); +$.data(this,"propertygrid",{options:opts}); +} +_73d(this); +}); +}; +$.fn.propertygrid.methods={options:function(jq){ +return $.data(jq[0],"propertygrid").options; +}}; +$.fn.propertygrid.parseOptions=function(_748){ +return $.extend({},$.fn.datagrid.parseOptions(_748),$.parser.parseOptions(_748,[{showGroup:"boolean"}])); +}; +var _749=$.extend({},$.fn.datagrid.defaults.view,{render:function(_74a,_74b,_74c){ +var _74d=[]; +var _74e=this.groups; +for(var i=0;i<_74e.length;i++){ +_74d.push(this.renderGroup.call(this,_74a,i,_74e[i],_74c)); +} +$(_74b).html(_74d.join("")); +},renderGroup:function(_74f,_750,_751,_752){ +var _753=$.data(_74f,"datagrid"); +var opts=_753.options; +var _754=$(_74f).datagrid("getColumnFields",_752); +var _755=[]; +_755.push("
                                        "); +_755.push(""); +_755.push(""); +if((_752&&(opts.rownumbers||opts.frozenColumns.length))||(!_752&&!(opts.rownumbers||opts.frozenColumns.length))){ +_755.push(""); +} +_755.push(""); +_755.push(""); +_755.push("
                                         "); +if(!_752){ +_755.push(""); +_755.push(opts.groupFormatter.call(_74f,_751.value,_751.rows)); +_755.push(""); +} +_755.push("
                                        "); +_755.push("
                                        "); +_755.push(""); +var _756=_751.startIndex; +for(var j=0;j<_751.rows.length;j++){ +var css=opts.rowStyler?opts.rowStyler.call(_74f,_756,_751.rows[j]):""; +var _757=""; +var _758=""; +if(typeof css=="string"){ +_758=css; +}else{ +if(css){ +_757=css["class"]||""; +_758=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_756%2&&opts.striped?"datagrid-row-alt ":" ")+_757+"\""; +var _759=_758?"style=\""+_758+"\"":""; +var _75a=_753.rowIdPrefix+"-"+(_752?1:2)+"-"+_756; +_755.push(""); +_755.push(this.renderRow.call(this,_74f,_754,_752,_756,_751.rows[j])); +_755.push(""); +_756++; +} +_755.push("
                                        "); +return _755.join(""); +},bindEvents:function(_75b){ +var _75c=$.data(_75b,"datagrid"); +var dc=_75c.dc; +var body=dc.body1.add(dc.body2); +var _75d=($.data(body[0],"events")||$._data(body[0],"events")).click[0].handler; +body.unbind("click").bind("click",function(e){ +var tt=$(e.target); +var _75e=tt.closest("span.datagrid-row-expander"); +if(_75e.length){ +var _75f=_75e.closest("div.datagrid-group").attr("group-index"); +if(_75e.hasClass("datagrid-row-collapse")){ +$(_75b).datagrid("collapseGroup",_75f); +}else{ +$(_75b).datagrid("expandGroup",_75f); +} +}else{ +_75d(e); +} +e.stopPropagation(); +}); +},onBeforeRender:function(_760,rows){ +var _761=$.data(_760,"datagrid"); +var opts=_761.options; +_762(); +var _763=[]; +for(var i=0;i"+".datagrid-group{height:25px;overflow:hidden;font-weight:bold;border-bottom:1px solid #ccc;}"+""); +} +}; +}}); +$.extend($.fn.datagrid.methods,{expandGroup:function(jq,_76a){ +return jq.each(function(){ +var view=$.data(this,"datagrid").dc.view; +var _76b=view.find(_76a!=undefined?"div.datagrid-group[group-index=\""+_76a+"\"]":"div.datagrid-group"); +var _76c=_76b.find("span.datagrid-row-expander"); +if(_76c.hasClass("datagrid-row-expand")){ +_76c.removeClass("datagrid-row-expand").addClass("datagrid-row-collapse"); +_76b.next("table").show(); +} +$(this).datagrid("fixRowHeight"); +}); +},collapseGroup:function(jq,_76d){ +return jq.each(function(){ +var view=$.data(this,"datagrid").dc.view; +var _76e=view.find(_76d!=undefined?"div.datagrid-group[group-index=\""+_76d+"\"]":"div.datagrid-group"); +var _76f=_76e.find("span.datagrid-row-expander"); +if(_76f.hasClass("datagrid-row-collapse")){ +_76f.removeClass("datagrid-row-collapse").addClass("datagrid-row-expand"); +_76e.next("table").hide(); +} +$(this).datagrid("fixRowHeight"); +}); +}}); +$.fn.propertygrid.defaults=$.extend({},$.fn.datagrid.defaults,{singleSelect:true,remoteSort:false,fitColumns:true,loadMsg:"",frozenColumns:[[{field:"f",width:16,resizable:false}]],columns:[[{field:"name",title:"Name",width:100,sortable:true},{field:"value",title:"Value",width:100,resizable:false}]],showGroup:false,groupView:_749,groupField:"group",groupFormatter:function(_770,rows){ +return _770; +}}); +})(jQuery); +(function($){ +function _771(_772){ +var _773=$.data(_772,"treegrid"); +var opts=_773.options; +$(_772).datagrid($.extend({},opts,{url:null,data:null,loader:function(){ +return false; +},onBeforeLoad:function(){ +return false; +},onLoadSuccess:function(){ +},onResizeColumn:function(_774,_775){ +_78b(_772); +opts.onResizeColumn.call(_772,_774,_775); +},onSortColumn:function(sort,_776){ +opts.sortName=sort; +opts.sortOrder=_776; +if(opts.remoteSort){ +_78a(_772); +}else{ +var data=$(_772).treegrid("getData"); +_7a0(_772,0,data); +} +opts.onSortColumn.call(_772,sort,_776); +},onBeforeEdit:function(_777,row){ +if(opts.onBeforeEdit.call(_772,row)==false){ +return false; +} +},onAfterEdit:function(_778,row,_779){ +opts.onAfterEdit.call(_772,row,_779); +},onCancelEdit:function(_77a,row){ +opts.onCancelEdit.call(_772,row); +},onSelect:function(_77b){ +opts.onSelect.call(_772,find(_772,_77b)); +},onUnselect:function(_77c){ +opts.onUnselect.call(_772,find(_772,_77c)); +},onCheck:function(_77d){ +opts.onCheck.call(_772,find(_772,_77d)); +},onUncheck:function(_77e){ +opts.onUncheck.call(_772,find(_772,_77e)); +},onClickRow:function(_77f){ +opts.onClickRow.call(_772,find(_772,_77f)); +},onDblClickRow:function(_780){ +opts.onDblClickRow.call(_772,find(_772,_780)); +},onClickCell:function(_781,_782){ +opts.onClickCell.call(_772,_782,find(_772,_781)); +},onDblClickCell:function(_783,_784){ +opts.onDblClickCell.call(_772,_784,find(_772,_783)); +},onRowContextMenu:function(e,_785){ +opts.onContextMenu.call(_772,e,find(_772,_785)); +}})); +if(!opts.columns){ +var _786=$.data(_772,"datagrid").options; +opts.columns=_786.columns; +opts.frozenColumns=_786.frozenColumns; +} +_773.dc=$.data(_772,"datagrid").dc; +if(opts.pagination){ +var _787=$(_772).datagrid("getPager"); +_787.pagination({pageNumber:opts.pageNumber,pageSize:opts.pageSize,pageList:opts.pageList,onSelectPage:function(_788,_789){ +opts.pageNumber=_788; +opts.pageSize=_789; +_78a(_772); +}}); +opts.pageSize=_787.pagination("options").pageSize; +} +}; +function _78b(_78c,_78d){ +var opts=$.data(_78c,"datagrid").options; +var dc=$.data(_78c,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!opts.nowrap||opts.autoRowHeight)){ +if(_78d!=undefined){ +var _78e=_78f(_78c,_78d); +for(var i=0;i<_78e.length;i++){ +_790(_78e[i][opts.idField]); +} +} +} +$(_78c).datagrid("fixRowHeight",_78d); +function _790(_791){ +var tr1=opts.finder.getTr(_78c,_791,"body",1); +var tr2=opts.finder.getTr(_78c,_791,"body",2); +tr1.css("height",""); +tr2.css("height",""); +var _792=Math.max(tr1.height(),tr2.height()); +tr1.css("height",_792); +tr2.css("height",_792); +}; +}; +function _793(_794){ +var dc=$.data(_794,"datagrid").dc; +var opts=$.data(_794,"treegrid").options; +if(!opts.rownumbers){ +return; +} +dc.body1.find("div.datagrid-cell-rownumber").each(function(i){ +$(this).html(i+1); +}); +}; +function _795(_796){ +var dc=$.data(_796,"datagrid").dc; +var body=dc.body1.add(dc.body2); +var _797=($.data(body[0],"events")||$._data(body[0],"events")).click[0].handler; +dc.body1.add(dc.body2).bind("mouseover",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +tt.hasClass("tree-expanded")?tt.addClass("tree-expanded-hover"):tt.addClass("tree-collapsed-hover"); +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +tt.hasClass("tree-expanded")?tt.removeClass("tree-expanded-hover"):tt.removeClass("tree-collapsed-hover"); +} +e.stopPropagation(); +}).unbind("click").bind("click",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_798(_796,tr.attr("node-id")); +}else{ +_797(e); +} +e.stopPropagation(); +}); +}; +function _799(_79a,_79b){ +var opts=$.data(_79a,"treegrid").options; +var tr1=opts.finder.getTr(_79a,_79b,"body",1); +var tr2=opts.finder.getTr(_79a,_79b,"body",2); +var _79c=$(_79a).datagrid("getColumnFields",true).length+(opts.rownumbers?1:0); +var _79d=$(_79a).datagrid("getColumnFields",false).length; +_79e(tr1,_79c); +_79e(tr2,_79d); +function _79e(tr,_79f){ +$(""+""+"
                                        "+""+"").insertAfter(tr); +}; +}; +function _7a0(_7a1,_7a2,data,_7a3){ +var _7a4=$.data(_7a1,"treegrid"); +var opts=_7a4.options; +var dc=_7a4.dc; +data=opts.loadFilter.call(_7a1,data,_7a2); +var node=find(_7a1,_7a2); +if(node){ +var _7a5=opts.finder.getTr(_7a1,_7a2,"body",1); +var _7a6=opts.finder.getTr(_7a1,_7a2,"body",2); +var cc1=_7a5.next("tr.treegrid-tr-tree").children("td").children("div"); +var cc2=_7a6.next("tr.treegrid-tr-tree").children("td").children("div"); +if(!_7a3){ +node.children=[]; +} +}else{ +var cc1=dc.body1; +var cc2=dc.body2; +if(!_7a3){ +_7a4.data=[]; +} +} +if(!_7a3){ +cc1.empty(); +cc2.empty(); +} +if(opts.view.onBeforeRender){ +opts.view.onBeforeRender.call(opts.view,_7a1,_7a2,data); +} +opts.view.render.call(opts.view,_7a1,cc1,true); +opts.view.render.call(opts.view,_7a1,cc2,false); +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,_7a1,dc.footer1,true); +opts.view.renderFooter.call(opts.view,_7a1,dc.footer2,false); +} +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,_7a1); +} +opts.onLoadSuccess.call(_7a1,node,data); +if(!_7a2&&opts.pagination){ +var _7a7=$.data(_7a1,"treegrid").total; +var _7a8=$(_7a1).datagrid("getPager"); +if(_7a8.pagination("options").total!=_7a7){ +_7a8.pagination({total:_7a7}); +} +} +_78b(_7a1); +_793(_7a1); +$(_7a1).treegrid("setSelectionState"); +$(_7a1).treegrid("autoSizeColumn"); +}; +function _78a(_7a9,_7aa,_7ab,_7ac,_7ad){ +var opts=$.data(_7a9,"treegrid").options; +var body=$(_7a9).datagrid("getPanel").find("div.datagrid-body"); +if(_7ab){ +opts.queryParams=_7ab; +} +var _7ae=$.extend({},opts.queryParams); +if(opts.pagination){ +$.extend(_7ae,{page:opts.pageNumber,rows:opts.pageSize}); +} +if(opts.sortName){ +$.extend(_7ae,{sort:opts.sortName,order:opts.sortOrder}); +} +var row=find(_7a9,_7aa); +if(opts.onBeforeLoad.call(_7a9,row,_7ae)==false){ +return; +} +var _7af=body.find("tr[node-id=\""+_7aa+"\"] span.tree-folder"); +_7af.addClass("tree-loading"); +$(_7a9).treegrid("loading"); +var _7b0=opts.loader.call(_7a9,_7ae,function(data){ +_7af.removeClass("tree-loading"); +$(_7a9).treegrid("loaded"); +_7a0(_7a9,_7aa,data,_7ac); +if(_7ad){ +_7ad(); +} +},function(){ +_7af.removeClass("tree-loading"); +$(_7a9).treegrid("loaded"); +opts.onLoadError.apply(_7a9,arguments); +if(_7ad){ +_7ad(); +} +}); +if(_7b0==false){ +_7af.removeClass("tree-loading"); +$(_7a9).treegrid("loaded"); +} +}; +function _7b1(_7b2){ +var rows=_7b3(_7b2); +if(rows.length){ +return rows[0]; +}else{ +return null; +} +}; +function _7b3(_7b4){ +return $.data(_7b4,"treegrid").data; +}; +function _7b5(_7b6,_7b7){ +var row=find(_7b6,_7b7); +if(row._parentId){ +return find(_7b6,row._parentId); +}else{ +return null; +} +}; +function _78f(_7b8,_7b9){ +var opts=$.data(_7b8,"treegrid").options; +var body=$(_7b8).datagrid("getPanel").find("div.datagrid-view2 div.datagrid-body"); +var _7ba=[]; +if(_7b9){ +_7bb(_7b9); +}else{ +var _7bc=_7b3(_7b8); +for(var i=0;i<_7bc.length;i++){ +_7ba.push(_7bc[i]); +_7bb(_7bc[i][opts.idField]); +} +} +function _7bb(_7bd){ +var _7be=find(_7b8,_7bd); +if(_7be&&_7be.children){ +for(var i=0,len=_7be.children.length;i").insertBefore(_7de); +if(hit.prev().length){ +hit.prev().remove(); +} +} +} +_7a0(_7dc,_7dd.parent,_7dd.data,true); +}; +function _7df(_7e0,_7e1){ +var ref=_7e1.before||_7e1.after; +var opts=$.data(_7e0,"treegrid").options; +var _7e2=_7b5(_7e0,ref); +_7db(_7e0,{parent:(_7e2?_7e2[opts.idField]:null),data:[_7e1.data]}); +_7e3(true); +_7e3(false); +_793(_7e0); +function _7e3(_7e4){ +var _7e5=_7e4?1:2; +var tr=opts.finder.getTr(_7e0,_7e1.data[opts.idField],"body",_7e5); +var _7e6=tr.closest("table.datagrid-btable"); +tr=tr.parent().children(); +var dest=opts.finder.getTr(_7e0,ref,"body",_7e5); +if(_7e1.before){ +tr.insertBefore(dest); +}else{ +var sub=dest.next("tr.treegrid-tr-tree"); +tr.insertAfter(sub.length?sub:dest); +} +_7e6.remove(); +}; +}; +function _7e7(_7e8,_7e9){ +var _7ea=$.data(_7e8,"treegrid"); +$(_7e8).datagrid("deleteRow",_7e9); +_793(_7e8); +_7ea.total-=1; +$(_7e8).datagrid("getPager").pagination("refresh",{total:_7ea.total}); +}; +$.fn.treegrid=function(_7eb,_7ec){ +if(typeof _7eb=="string"){ +var _7ed=$.fn.treegrid.methods[_7eb]; +if(_7ed){ +return _7ed(this,_7ec); +}else{ +return this.datagrid(_7eb,_7ec); +} +} +_7eb=_7eb||{}; +return this.each(function(){ +var _7ee=$.data(this,"treegrid"); +if(_7ee){ +$.extend(_7ee.options,_7eb); +}else{ +_7ee=$.data(this,"treegrid",{options:$.extend({},$.fn.treegrid.defaults,$.fn.treegrid.parseOptions(this),_7eb),data:[]}); +} +_771(this); +if(_7ee.options.data){ +$(this).treegrid("loadData",_7ee.options.data); +} +_78a(this); +_795(this); +}); +}; +$.fn.treegrid.methods={options:function(jq){ +return $.data(jq[0],"treegrid").options; +},resize:function(jq,_7ef){ +return jq.each(function(){ +$(this).datagrid("resize",_7ef); +}); +},fixRowHeight:function(jq,_7f0){ +return jq.each(function(){ +_78b(this,_7f0); +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_7a0(this,data.parent,data); +}); +},load:function(jq,_7f1){ +return jq.each(function(){ +$(this).treegrid("options").pageNumber=1; +$(this).treegrid("getPager").pagination({pageNumber:1}); +$(this).treegrid("reload",_7f1); +}); +},reload:function(jq,id){ +return jq.each(function(){ +var opts=$(this).treegrid("options"); +var _7f2={}; +if(typeof id=="object"){ +_7f2=id; +}else{ +_7f2=$.extend({},opts.queryParams); +_7f2.id=id; +} +if(_7f2.id){ +var node=$(this).treegrid("find",_7f2.id); +if(node.children){ +node.children.splice(0,node.children.length); +} +opts.queryParams=_7f2; +var tr=opts.finder.getTr(this,_7f2.id); +tr.next("tr.treegrid-tr-tree").remove(); +tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +_7c8(this,_7f2.id); +}else{ +_78a(this,null,_7f2); +} +}); +},reloadFooter:function(jq,_7f3){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +var dc=$.data(this,"datagrid").dc; +if(_7f3){ +$.data(this,"treegrid").footer=_7f3; +} +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,this,dc.footer1,true); +opts.view.renderFooter.call(opts.view,this,dc.footer2,false); +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,this); +} +$(this).treegrid("fixRowHeight"); +} +}); +},getData:function(jq){ +return $.data(jq[0],"treegrid").data; +},getFooterRows:function(jq){ +return $.data(jq[0],"treegrid").footer; +},getRoot:function(jq){ +return _7b1(jq[0]); +},getRoots:function(jq){ +return _7b3(jq[0]); +},getParent:function(jq,id){ +return _7b5(jq[0],id); +},getChildren:function(jq,id){ +return _78f(jq[0],id); +},getLevel:function(jq,id){ +return _7c0(jq[0],id); +},find:function(jq,id){ +return find(jq[0],id); +},isLeaf:function(jq,id){ +var opts=$.data(jq[0],"treegrid").options; +var tr=opts.finder.getTr(jq[0],id); +var hit=tr.find("span.tree-hit"); +return hit.length==0; +},select:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("selectRow",id); +}); +},unselect:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("unselectRow",id); +}); +},collapse:function(jq,id){ +return jq.each(function(){ +_7c5(this,id); +}); +},expand:function(jq,id){ +return jq.each(function(){ +_7c8(this,id); +}); +},toggle:function(jq,id){ +return jq.each(function(){ +_798(this,id); +}); +},collapseAll:function(jq,id){ +return jq.each(function(){ +_7d0(this,id); +}); +},expandAll:function(jq,id){ +return jq.each(function(){ +_7d4(this,id); +}); +},expandTo:function(jq,id){ +return jq.each(function(){ +_7d8(this,id); +}); +},append:function(jq,_7f4){ +return jq.each(function(){ +_7db(this,_7f4); +}); +},insert:function(jq,_7f5){ +return jq.each(function(){ +_7df(this,_7f5); +}); +},remove:function(jq,id){ +return jq.each(function(){ +_7e7(this,id); +}); +},pop:function(jq,id){ +var row=jq.treegrid("find",id); +jq.treegrid("remove",id); +return row; +},refresh:function(jq,id){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +opts.view.refreshRow.call(opts.view,this,id); +}); +},update:function(jq,_7f6){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +opts.view.updateRow.call(opts.view,this,_7f6.id,_7f6.row); +}); +},beginEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("beginEdit",id); +$(this).treegrid("fixRowHeight",id); +}); +},endEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("endEdit",id); +}); +},cancelEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("cancelEdit",id); +}); +}}; +$.fn.treegrid.parseOptions=function(_7f7){ +return $.extend({},$.fn.datagrid.parseOptions(_7f7),$.parser.parseOptions(_7f7,["treeField",{animate:"boolean"}])); +}; +var _7f8=$.extend({},$.fn.datagrid.defaults.view,{render:function(_7f9,_7fa,_7fb){ +var opts=$.data(_7f9,"treegrid").options; +var _7fc=$(_7f9).datagrid("getColumnFields",_7fb); +var _7fd=$.data(_7f9,"datagrid").rowIdPrefix; +if(_7fb){ +if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ +return; +} +} +var _7fe=0; +var view=this; +var _7ff=_800(_7fb,this.treeLevel,this.treeNodes); +$(_7fa).append(_7ff.join("")); +function _800(_801,_802,_803){ +var _804=[""]; +for(var i=0;i<_803.length;i++){ +var row=_803[i]; +if(row.state!="open"&&row.state!="closed"){ +row.state="open"; +} +var css=opts.rowStyler?opts.rowStyler.call(_7f9,row):""; +var _805=""; +var _806=""; +if(typeof css=="string"){ +_806=css; +}else{ +if(css){ +_805=css["class"]||""; +_806=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_7fe++%2&&opts.striped?"datagrid-row-alt ":" ")+_805+"\""; +var _807=_806?"style=\""+_806+"\"":""; +var _808=_7fd+"-"+(_801?1:2)+"-"+row[opts.idField]; +_804.push(""); +_804=_804.concat(view.renderRow.call(view,_7f9,_7fc,_801,_802,row)); +_804.push(""); +if(row.children&&row.children.length){ +var tt=_800(_801,_802+1,row.children); +var v=row.state=="closed"?"none":"block"; +_804.push(""); +} +} +_804.push("
                                        "); +_804=_804.concat(tt); +_804.push("
                                        "); +return _804; +}; +},renderFooter:function(_809,_80a,_80b){ +var opts=$.data(_809,"treegrid").options; +var rows=$.data(_809,"treegrid").footer||[]; +var _80c=$(_809).datagrid("getColumnFields",_80b); +var _80d=[""]; +for(var i=0;i"); +_80d.push(this.renderRow.call(this,_809,_80c,_80b,0,row)); +_80d.push(""); +} +_80d.push("
                                        "); +$(_80a).html(_80d.join("")); +},renderRow:function(_80e,_80f,_810,_811,row){ +var opts=$.data(_80e,"treegrid").options; +var cc=[]; +if(_810&&opts.rownumbers){ +cc.push("
                                        0
                                        "); +} +for(var i=0;i<_80f.length;i++){ +var _812=_80f[i]; +var col=$(_80e).datagrid("getColumnOption",_812); +if(col){ +var css=col.styler?(col.styler(row[_812],row)||""):""; +var _813=""; +var _814=""; +if(typeof css=="string"){ +_814=css; +}else{ +if(cc){ +_813=css["class"]||""; +_814=css["style"]||""; +} +} +var cls=_813?"class=\""+_813+"\"":""; +var _815=col.hidden?"style=\"display:none;"+_814+"\"":(_814?"style=\""+_814+"\"":""); +cc.push(""); +var _815=""; +if(!col.checkbox){ +if(col.align){ +_815+="text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_815+="white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_815+="height:auto;"; +} +} +} +cc.push("
                                        "); +if(col.checkbox){ +if(row.checked){ +cc.push(""); +}else{ +var val=null; +if(col.formatter){ +val=col.formatter(row[_812],row); +}else{ +val=row[_812]; +} +if(_812==opts.treeField){ +for(var j=0;j<_811;j++){ +cc.push(""); +} +if(row.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(row.children&&row.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +cc.push(""+val+""); +}else{ +cc.push(val); +} +} +cc.push("
                                        "); +cc.push(""); +} +} +return cc.join(""); +},refreshRow:function(_816,id){ +this.updateRow.call(this,_816,id,{}); +},updateRow:function(_817,id,row){ +var opts=$.data(_817,"treegrid").options; +var _818=$(_817).treegrid("find",id); +$.extend(_818,row); +var _819=$(_817).treegrid("getLevel",id)-1; +var _81a=opts.rowStyler?opts.rowStyler.call(_817,_818):""; +function _81b(_81c){ +var _81d=$(_817).treegrid("getColumnFields",_81c); +var tr=opts.finder.getTr(_817,id,"body",(_81c?1:2)); +var _81e=tr.find("div.datagrid-cell-rownumber").html(); +var _81f=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow(_817,_81d,_81c,_819,_818)); +tr.attr("style",_81a||""); +tr.find("div.datagrid-cell-rownumber").html(_81e); +if(_81f){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_81b.call(this,true); +_81b.call(this,false); +$(_817).treegrid("fixRowHeight",id); +},deleteRow:function(_820,id){ +var opts=$.data(_820,"treegrid").options; +var tr=opts.finder.getTr(_820,id); +tr.next("tr.treegrid-tr-tree").remove(); +tr.remove(); +var _821=del(id); +if(_821){ +if(_821.children.length==0){ +tr=opts.finder.getTr(_820,_821[opts.idField]); +tr.next("tr.treegrid-tr-tree").remove(); +var cell=tr.children("td[field=\""+opts.treeField+"\"]").children("div.datagrid-cell"); +cell.find(".tree-icon").removeClass("tree-folder").addClass("tree-file"); +cell.find(".tree-hit").remove(); +$("").prependTo(cell); +} +} +function del(id){ +var cc; +var _822=$(_820).treegrid("getParent",id); +if(_822){ +cc=_822.children; +}else{ +cc=$(_820).treegrid("getData"); +} +for(var i=0;ib?1:-1); +}; +r=_82d(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +for(var i=0;i"+""+""+""+"").insertAfter(_847); +var _848=$("
                                        ").appendTo("body"); +_848.panel({doSize:false,closed:true,cls:"combo-p",style:{position:"absolute",zIndex:10},onOpen:function(){ +var p=$(this).panel("panel"); +if($.fn.menu){ +p.css("z-index",$.fn.menu.defaults.zIndex++); +}else{ +if($.fn.window){ +p.css("z-index",$.fn.window.defaults.zIndex++); +} +} +$(this).panel("resize"); +},onBeforeClose:function(){ +_854(this); +},onClose:function(){ +var _849=$.data(_847,"combo"); +if(_849){ +_849.options.onHidePanel.call(_847); +} +}}); +var name=$(_847).attr("name"); +if(name){ +span.find("input.combo-value").attr("name",name); +$(_847).removeAttr("name").attr("comboName",name); +} +return {combo:span,panel:_848}; +}; +function _84a(_84b){ +var _84c=$.data(_84b,"combo"); +var opts=_84c.options; +var _84d=_84c.combo; +if(opts.hasDownArrow){ +_84d.find(".combo-arrow").show(); +}else{ +_84d.find(".combo-arrow").hide(); +} +_84e(_84b,opts.disabled); +_84f(_84b,opts.readonly); +}; +function _850(_851){ +var _852=$.data(_851,"combo"); +var _853=_852.combo.find("input.combo-text"); +_853.validatebox("destroy"); +_852.panel.panel("destroy"); +_852.combo.remove(); +$(_851).remove(); +}; +function _854(_855){ +$(_855).find(".combo-f").each(function(){ +var p=$(this).combo("panel"); +if(p.is(":visible")){ +p.panel("close"); +} +}); +}; +function _856(_857){ +var _858=$.data(_857,"combo"); +var opts=_858.options; +var _859=_858.panel; +var _85a=_858.combo; +var _85b=_85a.find(".combo-text"); +var _85c=_85a.find(".combo-arrow"); +$(document).unbind(".combo").bind("mousedown.combo",function(e){ +var p=$(e.target).closest("span.combo,div.combo-p"); +if(p.length){ +_854(p); +return; +} +$("body>div.combo-p>div.combo-panel:visible").panel("close"); +}); +_85b.unbind(".combo"); +_85c.unbind(".combo"); +if(!opts.disabled&&!opts.readonly){ +_85b.bind("click.combo",function(e){ +if(!opts.editable){ +_85d.call(this); +}else{ +var p=$(this).closest("div.combo-panel"); +$("div.combo-panel:visible").not(_859).not(p).panel("close"); +} +}).bind("keydown.combo paste.combo drop.combo",function(e){ +switch(e.keyCode){ +case 38: +opts.keyHandler.up.call(_857,e); +break; +case 40: +opts.keyHandler.down.call(_857,e); +break; +case 37: +opts.keyHandler.left.call(_857,e); +break; +case 39: +opts.keyHandler.right.call(_857,e); +break; +case 13: +e.preventDefault(); +opts.keyHandler.enter.call(_857,e); +return false; +case 9: +case 27: +_85e(_857); +break; +default: +if(opts.editable){ +if(_858.timer){ +clearTimeout(_858.timer); +} +_858.timer=setTimeout(function(){ +var q=_85b.val(); +if(_858.previousValue!=q){ +_858.previousValue=q; +$(_857).combo("showPanel"); +opts.keyHandler.query.call(_857,_85b.val(),e); +$(_857).combo("validate"); +} +},opts.delay); +} +} +}); +_85c.bind("click.combo",function(){ +_85d.call(this); +}).bind("mouseenter.combo",function(){ +$(this).addClass("combo-arrow-hover"); +}).bind("mouseleave.combo",function(){ +$(this).removeClass("combo-arrow-hover"); +}); +} +function _85d(){ +if(_859.is(":visible")){ +_85e(_857); +}else{ +var p=$(this).closest("div.combo-panel"); +$("div.combo-panel:visible").not(_859).not(p).panel("close"); +$(_857).combo("showPanel"); +} +_85b.focus(); +}; +}; +function _85f(_860){ +var _861=$.data(_860,"combo"); +var opts=_861.options; +var _862=_861.combo; +var _863=_861.panel; +_863.panel("move",{left:_864(),top:_865()}); +if(_863.panel("options").closed){ +_863.panel("open"); +opts.onShowPanel.call(_860); +} +(function(){ +if(_863.is(":visible")){ +_863.panel("move",{left:_864(),top:_865()}); +setTimeout(arguments.callee,200); +} +})(); +function _864(){ +var left=_862.offset().left; +if(opts.panelAlign=="right"){ +left+=_862._outerWidth()-_863._outerWidth(); +} +if(left+_863._outerWidth()>$(window)._outerWidth()+$(document).scrollLeft()){ +left=$(window)._outerWidth()+$(document).scrollLeft()-_863._outerWidth(); +} +if(left<0){ +left=0; +} +return left; +}; +function _865(){ +var top=_862.offset().top+_862._outerHeight(); +if(top+_863._outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=_862.offset().top-_863._outerHeight(); +} +if(top<$(document).scrollTop()){ +top=_862.offset().top+_862._outerHeight(); +} +return top; +}; +}; +function _85e(_866){ +var _867=$.data(_866,"combo").panel; +_867.panel("close"); +}; +function _868(_869){ +var opts=$.data(_869,"combo").options; +var _86a=$(_869).combo("textbox"); +_86a.validatebox($.extend({},opts,{deltaX:(opts.hasDownArrow?opts.deltaX:(opts.deltaX>0?1:-1))})); +}; +function _84e(_86b,_86c){ +var _86d=$.data(_86b,"combo"); +var opts=_86d.options; +var _86e=_86d.combo; +if(_86c){ +opts.disabled=true; +$(_86b).attr("disabled",true); +_86e.find(".combo-value").attr("disabled",true); +_86e.find(".combo-text").attr("disabled",true); +}else{ +opts.disabled=false; +$(_86b).removeAttr("disabled"); +_86e.find(".combo-value").removeAttr("disabled"); +_86e.find(".combo-text").removeAttr("disabled"); +} +}; +function _84f(_86f,mode){ +var _870=$.data(_86f,"combo"); +var opts=_870.options; +opts.readonly=mode==undefined?true:mode; +var _871=opts.readonly?true:(!opts.editable); +_870.combo.find(".combo-text").attr("readonly",_871).css("cursor",_871?"pointer":""); +}; +function _872(_873){ +var _874=$.data(_873,"combo"); +var opts=_874.options; +var _875=_874.combo; +if(opts.multiple){ +_875.find("input.combo-value").remove(); +}else{ +_875.find("input.combo-value").val(""); +} +_875.find("input.combo-text").val(""); +}; +function _876(_877){ +var _878=$.data(_877,"combo").combo; +return _878.find("input.combo-text").val(); +}; +function _879(_87a,text){ +var _87b=$.data(_87a,"combo"); +var _87c=_87b.combo.find("input.combo-text"); +if(_87c.val()!=text){ +_87c.val(text); +$(_87a).combo("validate"); +_87b.previousValue=text; +} +}; +function _87d(_87e){ +var _87f=[]; +var _880=$.data(_87e,"combo").combo; +_880.find("input.combo-value").each(function(){ +_87f.push($(this).val()); +}); +return _87f; +}; +function _881(_882,_883){ +var opts=$.data(_882,"combo").options; +var _884=_87d(_882); +var _885=$.data(_882,"combo").combo; +_885.find("input.combo-value").remove(); +var name=$(_882).attr("comboName"); +for(var i=0;i<_883.length;i++){ +var _886=$("").appendTo(_885); +if(name){ +_886.attr("name",name); +} +_886.val(_883[i]); +} +var tmp=[]; +for(var i=0;i<_884.length;i++){ +tmp[i]=_884[i]; +} +var aa=[]; +for(var i=0;i<_883.length;i++){ +for(var j=0;j_8a3.height()){ +var h=_8a3.scrollTop()+item.position().top+item.outerHeight()-_8a3.height(); +_8a3.scrollTop(h); +} +} +} +}; +function nav(_8a4,dir){ +var opts=$.data(_8a4,"combobox").options; +var _8a5=$(_8a4).combobox("panel"); +var item=_8a5.children("div.combobox-item-hover"); +if(!item.length){ +item=_8a5.children("div.combobox-item-selected"); +} +item.removeClass("combobox-item-hover"); +var _8a6="div.combobox-item:visible:not(.combobox-item-disabled):first"; +var _8a7="div.combobox-item:visible:not(.combobox-item-disabled):last"; +if(!item.length){ +item=_8a5.children(dir=="next"?_8a6:_8a7); +}else{ +if(dir=="next"){ +item=item.nextAll(_8a6); +if(!item.length){ +item=_8a5.children(_8a6); +} +}else{ +item=item.prevAll(_8a6); +if(!item.length){ +item=_8a5.children(_8a7); +} +} +} +if(item.length){ +item.addClass("combobox-item-hover"); +var row=opts.finder.getRow(_8a4,item); +if(row){ +_8a0(_8a4,row[opts.valueField]); +if(opts.selectOnNavigation){ +_8a8(_8a4,row[opts.valueField]); +} +} +} +}; +function _8a8(_8a9,_8aa){ +var opts=$.data(_8a9,"combobox").options; +var _8ab=$(_8a9).combo("getValues"); +if($.inArray(_8aa+"",_8ab)==-1){ +if(opts.multiple){ +_8ab.push(_8aa); +}else{ +_8ab=[_8aa]; +} +_8ac(_8a9,_8ab); +opts.onSelect.call(_8a9,opts.finder.getRow(_8a9,_8aa)); +} +}; +function _8ad(_8ae,_8af){ +var opts=$.data(_8ae,"combobox").options; +var _8b0=$(_8ae).combo("getValues"); +var _8b1=$.inArray(_8af+"",_8b0); +if(_8b1>=0){ +_8b0.splice(_8b1,1); +_8ac(_8ae,_8b0); +opts.onUnselect.call(_8ae,opts.finder.getRow(_8ae,_8af)); +} +}; +function _8ac(_8b2,_8b3,_8b4){ +var opts=$.data(_8b2,"combobox").options; +var _8b5=$(_8b2).combo("panel"); +_8b5.find("div.combobox-item-selected").removeClass("combobox-item-selected"); +var vv=[],ss=[]; +for(var i=0;i<_8b3.length;i++){ +var v=_8b3[i]; +var s=v; +opts.finder.getEl(_8b2,v).addClass("combobox-item-selected"); +var row=opts.finder.getRow(_8b2,v); +if(row){ +s=row[opts.textField]; +} +vv.push(v); +ss.push(s); +} +$(_8b2).combo("setValues",vv); +if(!_8b4){ +$(_8b2).combo("setText",ss.join(opts.separator)); +} +}; +function _8b6(_8b7,data,_8b8){ +var _8b9=$.data(_8b7,"combobox"); +var opts=_8b9.options; +_8b9.data=opts.loadFilter.call(_8b7,data); +_8b9.groups=[]; +data=_8b9.data; +var _8ba=$(_8b7).combobox("getValues"); +var dd=[]; +var _8bb=undefined; +for(var i=0;i"); +dd.push(opts.groupFormatter?opts.groupFormatter.call(_8b7,g):g); +dd.push("
                                        "); +} +}else{ +_8bb=undefined; +} +var cls="combobox-item"+(row.disabled?" combobox-item-disabled":"")+(g?" combobox-gitem":""); +dd.push("
                                        "); +dd.push(opts.formatter?opts.formatter.call(_8b7,row):s); +dd.push("
                                        "); +if(row["selected"]&&$.inArray(v,_8ba)==-1){ +_8ba.push(v); +} +} +$(_8b7).combo("panel").html(dd.join("")); +if(opts.multiple){ +_8ac(_8b7,_8ba,_8b8); +}else{ +_8ac(_8b7,_8ba.length?[_8ba[_8ba.length-1]]:[],_8b8); +} +opts.onLoadSuccess.call(_8b7,data); +}; +function _8bc(_8bd,url,_8be,_8bf){ +var opts=$.data(_8bd,"combobox").options; +if(url){ +opts.url=url; +} +_8be=_8be||{}; +if(opts.onBeforeLoad.call(_8bd,_8be)==false){ +return; +} +opts.loader.call(_8bd,_8be,function(data){ +_8b6(_8bd,data,_8bf); +},function(){ +opts.onLoadError.apply(this,arguments); +}); +}; +function _8c0(_8c1,q){ +var _8c2=$.data(_8c1,"combobox"); +var opts=_8c2.options; +if(opts.multiple&&!q){ +_8ac(_8c1,[],true); +}else{ +_8ac(_8c1,[q],true); +} +if(opts.mode=="remote"){ +_8bc(_8c1,null,{q:q},true); +}else{ +var _8c3=$(_8c1).combo("panel"); +_8c3.find("div.combobox-item-selected,div.combobox-item-hover").removeClass("combobox-item-selected combobox-item-hover"); +_8c3.find("div.combobox-item,div.combobox-group").hide(); +var data=_8c2.data; +var vv=[]; +var qq=opts.multiple?q.split(opts.separator):[q]; +$.map(qq,function(q){ +q=$.trim(q); +var _8c4=undefined; +for(var i=0;i=0){ +vv.push(v); +} +}); +t.combobox("setValues",vv); +if(!opts.multiple){ +t.combobox("hidePanel"); +} +}; +function _8c9(_8ca){ +var _8cb=$.data(_8ca,"combobox"); +var opts=_8cb.options; +_89b++; +_8cb.itemIdPrefix="_easyui_combobox_i"+_89b; +_8cb.groupIdPrefix="_easyui_combobox_g"+_89b; +$(_8ca).addClass("combobox-f"); +$(_8ca).combo($.extend({},opts,{onShowPanel:function(){ +$(_8ca).combo("panel").find("div.combobox-item,div.combobox-group").show(); +_8a0(_8ca,$(_8ca).combobox("getValue")); +opts.onShowPanel.call(_8ca); +}})); +$(_8ca).combo("panel").unbind().bind("mouseover",function(e){ +$(this).children("div.combobox-item-hover").removeClass("combobox-item-hover"); +var item=$(e.target).closest("div.combobox-item"); +if(!item.hasClass("combobox-item-disabled")){ +item.addClass("combobox-item-hover"); +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +$(e.target).closest("div.combobox-item").removeClass("combobox-item-hover"); +e.stopPropagation(); +}).bind("click",function(e){ +var item=$(e.target).closest("div.combobox-item"); +if(!item.length||item.hasClass("combobox-item-disabled")){ +return; +} +var row=opts.finder.getRow(_8ca,item); +if(!row){ +return; +} +var _8cc=row[opts.valueField]; +if(opts.multiple){ +if(item.hasClass("combobox-item-selected")){ +_8ad(_8ca,_8cc); +}else{ +_8a8(_8ca,_8cc); +} +}else{ +_8a8(_8ca,_8cc); +$(_8ca).combo("hidePanel"); +} +e.stopPropagation(); +}); +}; +$.fn.combobox=function(_8cd,_8ce){ +if(typeof _8cd=="string"){ +var _8cf=$.fn.combobox.methods[_8cd]; +if(_8cf){ +return _8cf(this,_8ce); +}else{ +return this.combo(_8cd,_8ce); +} +} +_8cd=_8cd||{}; +return this.each(function(){ +var _8d0=$.data(this,"combobox"); +if(_8d0){ +$.extend(_8d0.options,_8cd); +_8c9(this); +}else{ +_8d0=$.data(this,"combobox",{options:$.extend({},$.fn.combobox.defaults,$.fn.combobox.parseOptions(this),_8cd),data:[]}); +_8c9(this); +var data=$.fn.combobox.parseData(this); +if(data.length){ +_8b6(this,data); +} +} +if(_8d0.options.data){ +_8b6(this,_8d0.options.data); +} +_8bc(this); +}); +}; +$.fn.combobox.methods={options:function(jq){ +var _8d1=jq.combo("options"); +return $.extend($.data(jq[0],"combobox").options,{originalValue:_8d1.originalValue,disabled:_8d1.disabled,readonly:_8d1.readonly}); +},getData:function(jq){ +return $.data(jq[0],"combobox").data; +},setValues:function(jq,_8d2){ +return jq.each(function(){ +_8ac(this,_8d2); +}); +},setValue:function(jq,_8d3){ +return jq.each(function(){ +_8ac(this,[_8d3]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combo("clear"); +var _8d4=$(this).combo("panel"); +_8d4.find("div.combobox-item-selected").removeClass("combobox-item-selected"); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combobox("options"); +if(opts.multiple){ +$(this).combobox("setValues",opts.originalValue); +}else{ +$(this).combobox("setValue",opts.originalValue); +} +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_8b6(this,data); +}); +},reload:function(jq,url){ +return jq.each(function(){ +_8bc(this,url); +}); +},select:function(jq,_8d5){ +return jq.each(function(){ +_8a8(this,_8d5); +}); +},unselect:function(jq,_8d6){ +return jq.each(function(){ +_8ad(this,_8d6); +}); +}}; +$.fn.combobox.parseOptions=function(_8d7){ +var t=$(_8d7); +return $.extend({},$.fn.combo.parseOptions(_8d7),$.parser.parseOptions(_8d7,["valueField","textField","groupField","mode","method","url"])); +}; +$.fn.combobox.parseData=function(_8d8){ +var data=[]; +var opts=$(_8d8).combobox("options"); +$(_8d8).children().each(function(){ +if(this.tagName.toLowerCase()=="optgroup"){ +var _8d9=$(this).attr("label"); +$(this).children().each(function(){ +_8da(this,_8d9); +}); +}else{ +_8da(this); +} +}); +return data; +function _8da(el,_8db){ +var t=$(el); +var row={}; +row[opts.valueField]=t.attr("value")!=undefined?t.attr("value"):t.text(); +row[opts.textField]=t.text(); +row["selected"]=t.is(":selected"); +row["disabled"]=t.is(":disabled"); +if(_8db){ +opts.groupField=opts.groupField||"group"; +row[opts.groupField]=_8db; +} +data.push(row); +}; +}; +$.fn.combobox.defaults=$.extend({},$.fn.combo.defaults,{valueField:"value",textField:"text",groupField:null,groupFormatter:function(_8dc){ +return _8dc; +},mode:"local",method:"post",url:null,data:null,keyHandler:{up:function(e){ +nav(this,"prev"); +e.preventDefault(); +},down:function(e){ +nav(this,"next"); +e.preventDefault(); +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_8c5(this); +},query:function(q,e){ +_8c0(this,q); +}},filter:function(q,row){ +var opts=$(this).combobox("options"); +return row[opts.textField].toLowerCase().indexOf(q.toLowerCase())==0; +},formatter:function(row){ +var opts=$(this).combobox("options"); +return row[opts.textField]; +},loader:function(_8dd,_8de,_8df){ +var opts=$(this).combobox("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_8dd,dataType:"json",success:function(data){ +_8de(data); +},error:function(){ +_8df.apply(this,arguments); +}}); +},loadFilter:function(data){ +return data; +},finder:{getEl:function(_8e0,_8e1){ +var _8e2=_89c(_8e0,_8e1); +var id=$.data(_8e0,"combobox").itemIdPrefix+"_"+_8e2; +return $("#"+id); +},getRow:function(_8e3,p){ +var _8e4=$.data(_8e3,"combobox"); +var _8e5=(p instanceof jQuery)?p.attr("id").substr(_8e4.itemIdPrefix.length+1):_89c(_8e3,p); +return _8e4.data[parseInt(_8e5)]; +}},onBeforeLoad:function(_8e6){ +},onLoadSuccess:function(){ +},onLoadError:function(){ +},onSelect:function(_8e7){ +},onUnselect:function(_8e8){ +}}); +})(jQuery); +(function($){ +function _8e9(_8ea){ +var _8eb=$.data(_8ea,"combotree"); +var opts=_8eb.options; +var tree=_8eb.tree; +$(_8ea).addClass("combotree-f"); +$(_8ea).combo(opts); +var _8ec=$(_8ea).combo("panel"); +if(!tree){ +tree=$("
                                          ").appendTo(_8ec); +$.data(_8ea,"combotree").tree=tree; +} +tree.tree($.extend({},opts,{checkbox:opts.multiple,onLoadSuccess:function(node,data){ +var _8ed=$(_8ea).combotree("getValues"); +if(opts.multiple){ +var _8ee=tree.tree("getChecked"); +for(var i=0;i<_8ee.length;i++){ +var id=_8ee[i].id; +(function(){ +for(var i=0;i<_8ed.length;i++){ +if(id==_8ed[i]){ +return; +} +} +_8ed.push(id); +})(); +} +} +var _8ef=$(this).tree("options"); +var _8f0=_8ef.onCheck; +var _8f1=_8ef.onSelect; +_8ef.onCheck=_8ef.onSelect=function(){ +}; +$(_8ea).combotree("setValues",_8ed); +_8ef.onCheck=_8f0; +_8ef.onSelect=_8f1; +opts.onLoadSuccess.call(this,node,data); +},onClick:function(node){ +if(opts.multiple){ +$(this).tree(node.checked?"uncheck":"check",node.target); +}else{ +$(_8ea).combo("hidePanel"); +} +_8f3(_8ea); +opts.onClick.call(this,node); +},onCheck:function(node,_8f2){ +_8f3(_8ea); +opts.onCheck.call(this,node,_8f2); +}})); +}; +function _8f3(_8f4){ +var _8f5=$.data(_8f4,"combotree"); +var opts=_8f5.options; +var tree=_8f5.tree; +var vv=[],ss=[]; +if(opts.multiple){ +var _8f6=tree.tree("getChecked"); +for(var i=0;i<_8f6.length;i++){ +vv.push(_8f6[i].id); +ss.push(_8f6[i].text); +} +}else{ +var node=tree.tree("getSelected"); +if(node){ +vv.push(node.id); +ss.push(node.text); +} +} +$(_8f4).combo("setValues",vv).combo("setText",ss.join(opts.separator)); +}; +function _8f7(_8f8,_8f9){ +var opts=$.data(_8f8,"combotree").options; +var tree=$.data(_8f8,"combotree").tree; +tree.find("span.tree-checkbox").addClass("tree-checkbox0").removeClass("tree-checkbox1 tree-checkbox2"); +var vv=[],ss=[]; +for(var i=0;i<_8f9.length;i++){ +var v=_8f9[i]; +var s=v; +var node=tree.tree("find",v); +if(node){ +s=node.text; +tree.tree("check",node.target); +tree.tree("select",node.target); +} +vv.push(v); +ss.push(s); +} +$(_8f8).combo("setValues",vv).combo("setText",ss.join(opts.separator)); +}; +$.fn.combotree=function(_8fa,_8fb){ +if(typeof _8fa=="string"){ +var _8fc=$.fn.combotree.methods[_8fa]; +if(_8fc){ +return _8fc(this,_8fb); +}else{ +return this.combo(_8fa,_8fb); +} +} +_8fa=_8fa||{}; +return this.each(function(){ +var _8fd=$.data(this,"combotree"); +if(_8fd){ +$.extend(_8fd.options,_8fa); +}else{ +$.data(this,"combotree",{options:$.extend({},$.fn.combotree.defaults,$.fn.combotree.parseOptions(this),_8fa)}); +} +_8e9(this); +}); +}; +$.fn.combotree.methods={options:function(jq){ +var _8fe=jq.combo("options"); +return $.extend($.data(jq[0],"combotree").options,{originalValue:_8fe.originalValue,disabled:_8fe.disabled,readonly:_8fe.readonly}); +},tree:function(jq){ +return $.data(jq[0],"combotree").tree; +},loadData:function(jq,data){ +return jq.each(function(){ +var opts=$.data(this,"combotree").options; +opts.data=data; +var tree=$.data(this,"combotree").tree; +tree.tree("loadData",data); +}); +},reload:function(jq,url){ +return jq.each(function(){ +var opts=$.data(this,"combotree").options; +var tree=$.data(this,"combotree").tree; +if(url){ +opts.url=url; +} +tree.tree({url:opts.url}); +}); +},setValues:function(jq,_8ff){ +return jq.each(function(){ +_8f7(this,_8ff); +}); +},setValue:function(jq,_900){ +return jq.each(function(){ +_8f7(this,[_900]); +}); +},clear:function(jq){ +return jq.each(function(){ +var tree=$.data(this,"combotree").tree; +tree.find("div.tree-node-selected").removeClass("tree-node-selected"); +var cc=tree.tree("getChecked"); +for(var i=0;i").appendTo(_905); +_904.grid=grid; +} +grid.datagrid($.extend({},opts,{border:false,fit:true,singleSelect:(!opts.multiple),onLoadSuccess:function(data){ +var _906=$(_903).combo("getValues"); +var _907=opts.onSelect; +opts.onSelect=function(){ +}; +_911(_903,_906,_904.remainText); +opts.onSelect=_907; +opts.onLoadSuccess.apply(_903,arguments); +},onClickRow:_908,onSelect:function(_909,row){ +_90a(); +opts.onSelect.call(this,_909,row); +},onUnselect:function(_90b,row){ +_90a(); +opts.onUnselect.call(this,_90b,row); +},onSelectAll:function(rows){ +_90a(); +opts.onSelectAll.call(this,rows); +},onUnselectAll:function(rows){ +if(opts.multiple){ +_90a(); +} +opts.onUnselectAll.call(this,rows); +}})); +function _908(_90c,row){ +_904.remainText=false; +_90a(); +if(!opts.multiple){ +$(_903).combo("hidePanel"); +} +opts.onClickRow.call(this,_90c,row); +}; +function _90a(){ +var rows=grid.datagrid("getSelections"); +var vv=[],ss=[]; +for(var i=0;i=_90f){ +_910=0; +} +} +grid.datagrid("highlightRow",_910); +if(opts.selectOnNavigation){ +_90e.remainText=false; +grid.datagrid("selectRow",_910); +} +}; +function _911(_912,_913,_914){ +var _915=$.data(_912,"combogrid"); +var opts=_915.options; +var grid=_915.grid; +var rows=grid.datagrid("getRows"); +var ss=[]; +var _916=$(_912).combo("getValues"); +var _917=$(_912).combo("options"); +var _918=_917.onChange; +_917.onChange=function(){ +}; +grid.datagrid("clearSelections"); +for(var i=0;i<_913.length;i++){ +var _919=grid.datagrid("getRowIndex",_913[i]); +if(_919>=0){ +grid.datagrid("selectRow",_919); +ss.push(rows[_919][opts.textField]); +}else{ +ss.push(_913[i]); +} +} +$(_912).combo("setValues",_916); +_917.onChange=_918; +$(_912).combo("setValues",_913); +if(!_914){ +var s=ss.join(opts.separator); +if($(_912).combo("getText")!=s){ +$(_912).combo("setText",s); +} +} +}; +function _91a(_91b,q){ +var _91c=$.data(_91b,"combogrid"); +var opts=_91c.options; +var grid=_91c.grid; +_91c.remainText=true; +if(opts.multiple&&!q){ +_911(_91b,[],true); +}else{ +_911(_91b,[q],true); +} +if(opts.mode=="remote"){ +grid.datagrid("clearSelections"); +grid.datagrid("load",$.extend({},opts.queryParams,{q:q})); +}else{ +if(!q){ +return; +} +grid.datagrid("clearSelections").datagrid("highlightRow",-1); +var rows=grid.datagrid("getRows"); +var qq=opts.multiple?q.split(opts.separator):[q]; +$.map(qq,function(q){ +q=$.trim(q); +if(q){ +$.map(rows,function(row,i){ +if(q==row[opts.textField]){ +grid.datagrid("selectRow",i); +}else{ +if(opts.filter.call(_91b,q,row)){ +grid.datagrid("highlightRow",i); +} +} +}); +} +}); +} +}; +function _91d(_91e){ +var _91f=$.data(_91e,"combogrid"); +var opts=_91f.options; +var grid=_91f.grid; +var tr=opts.finder.getTr(grid[0],null,"highlight"); +_91f.remainText=false; +if(tr.length){ +var _920=parseInt(tr.attr("datagrid-row-index")); +if(opts.multiple){ +if(tr.hasClass("datagrid-row-selected")){ +grid.datagrid("unselectRow",_920); +}else{ +grid.datagrid("selectRow",_920); +} +}else{ +grid.datagrid("selectRow",_920); +} +} +var vv=[]; +$.map(grid.datagrid("getSelections"),function(row){ +vv.push(row[opts.idField]); +}); +$(_91e).combogrid("setValues",vv); +if(!opts.multiple){ +$(_91e).combogrid("hidePanel"); +} +}; +$.fn.combogrid=function(_921,_922){ +if(typeof _921=="string"){ +var _923=$.fn.combogrid.methods[_921]; +if(_923){ +return _923(this,_922); +}else{ +return this.combo(_921,_922); +} +} +_921=_921||{}; +return this.each(function(){ +var _924=$.data(this,"combogrid"); +if(_924){ +$.extend(_924.options,_921); +}else{ +_924=$.data(this,"combogrid",{options:$.extend({},$.fn.combogrid.defaults,$.fn.combogrid.parseOptions(this),_921)}); +} +_902(this); +}); +}; +$.fn.combogrid.methods={options:function(jq){ +var _925=jq.combo("options"); +return $.extend($.data(jq[0],"combogrid").options,{originalValue:_925.originalValue,disabled:_925.disabled,readonly:_925.readonly}); +},grid:function(jq){ +return $.data(jq[0],"combogrid").grid; +},setValues:function(jq,_926){ +return jq.each(function(){ +_911(this,_926); +}); +},setValue:function(jq,_927){ +return jq.each(function(){ +_911(this,[_927]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combogrid("grid").datagrid("clearSelections"); +$(this).combo("clear"); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combogrid("options"); +if(opts.multiple){ +$(this).combogrid("setValues",opts.originalValue); +}else{ +$(this).combogrid("setValue",opts.originalValue); +} +}); +}}; +$.fn.combogrid.parseOptions=function(_928){ +var t=$(_928); +return $.extend({},$.fn.combo.parseOptions(_928),$.fn.datagrid.parseOptions(_928),$.parser.parseOptions(_928,["idField","textField","mode"])); +}; +$.fn.combogrid.defaults=$.extend({},$.fn.combo.defaults,$.fn.datagrid.defaults,{loadMsg:null,idField:null,textField:null,mode:"local",keyHandler:{up:function(e){ +nav(this,"prev"); +e.preventDefault(); +},down:function(e){ +nav(this,"next"); +e.preventDefault(); +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_91d(this); +},query:function(q,e){ +_91a(this,q); +}},filter:function(q,row){ +var opts=$(this).combogrid("options"); +return row[opts.textField].toLowerCase().indexOf(q.toLowerCase())==0; +}}); +})(jQuery); +(function($){ +function _929(_92a){ +var _92b=$.data(_92a,"datebox"); +var opts=_92b.options; +$(_92a).addClass("datebox-f").combo($.extend({},opts,{onShowPanel:function(){ +_92c(); +_934(_92a,$(_92a).datebox("getText"),true); +opts.onShowPanel.call(_92a); +}})); +$(_92a).combo("textbox").parent().addClass("datebox"); +if(!_92b.calendar){ +_92d(); +} +_934(_92a,opts.value); +function _92d(){ +var _92e=$(_92a).combo("panel").css("overflow","hidden"); +_92e.panel("options").onBeforeDestroy=function(){ +var sc=$(this).find(".calendar-shared"); +if(sc.length){ +sc.insertBefore(sc[0].pholder); +} +}; +var cc=$("
                                          ").appendTo(_92e); +if(opts.sharedCalendar){ +var sc=$(opts.sharedCalendar); +if(!sc[0].pholder){ +sc[0].pholder=$("
                                          ").insertAfter(sc); +} +sc.addClass("calendar-shared").appendTo(cc); +if(!sc.hasClass("calendar")){ +sc.calendar(); +} +_92b.calendar=sc; +}else{ +_92b.calendar=$("
                                          ").appendTo(cc).calendar(); +} +$.extend(_92b.calendar.calendar("options"),{fit:true,border:false,onSelect:function(date){ +var opts=$(this.target).datebox("options"); +_934(this.target,opts.formatter.call(this.target,date)); +$(this.target).combo("hidePanel"); +opts.onSelect.call(_92a,date); +}}); +var _92f=$("
                                          ").appendTo(_92e); +var tr=_92f.find("tr"); +for(var i=0;i").appendTo(tr); +var btn=opts.buttons[i]; +var t=$("").html($.isFunction(btn.text)?btn.text(_92a):btn.text).appendTo(td); +t.bind("click",{target:_92a,handler:btn.handler},function(e){ +e.data.handler.call(this,e.data.target); +}); +} +tr.find("td").css("width",(100/opts.buttons.length)+"%"); +}; +function _92c(){ +var _930=$(_92a).combo("panel"); +var cc=_930.children("div.datebox-calendar-inner"); +_930.children()._outerWidth(_930.width()); +_92b.calendar.appendTo(cc); +_92b.calendar[0].target=_92a; +if(opts.panelHeight!="auto"){ +var _931=_930.height(); +_930.children().not(cc).each(function(){ +_931-=$(this).outerHeight(); +}); +cc._outerHeight(_931); +} +_92b.calendar.calendar("resize"); +}; +}; +function _932(_933,q){ +_934(_933,q,true); +}; +function _935(_936){ +var _937=$.data(_936,"datebox"); +var opts=_937.options; +var _938=_937.calendar.calendar("options").current; +if(_938){ +_934(_936,opts.formatter.call(_936,_938)); +$(_936).combo("hidePanel"); +} +}; +function _934(_939,_93a,_93b){ +var _93c=$.data(_939,"datebox"); +var opts=_93c.options; +var _93d=_93c.calendar; +$(_939).combo("setValue",_93a); +_93d.calendar("moveTo",opts.parser.call(_939,_93a)); +if(!_93b){ +if(_93a){ +_93a=opts.formatter.call(_939,_93d.calendar("options").current); +$(_939).combo("setValue",_93a).combo("setText",_93a); +}else{ +$(_939).combo("setText",_93a); +} +} +}; +$.fn.datebox=function(_93e,_93f){ +if(typeof _93e=="string"){ +var _940=$.fn.datebox.methods[_93e]; +if(_940){ +return _940(this,_93f); +}else{ +return this.combo(_93e,_93f); +} +} +_93e=_93e||{}; +return this.each(function(){ +var _941=$.data(this,"datebox"); +if(_941){ +$.extend(_941.options,_93e); +}else{ +$.data(this,"datebox",{options:$.extend({},$.fn.datebox.defaults,$.fn.datebox.parseOptions(this),_93e)}); +} +_929(this); +}); +}; +$.fn.datebox.methods={options:function(jq){ +var _942=jq.combo("options"); +return $.extend($.data(jq[0],"datebox").options,{originalValue:_942.originalValue,disabled:_942.disabled,readonly:_942.readonly}); +},calendar:function(jq){ +return $.data(jq[0],"datebox").calendar; +},setValue:function(jq,_943){ +return jq.each(function(){ +_934(this,_943); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).datebox("options"); +$(this).datebox("setValue",opts.originalValue); +}); +}}; +$.fn.datebox.parseOptions=function(_944){ +return $.extend({},$.fn.combo.parseOptions(_944),$.parser.parseOptions(_944,["sharedCalendar"])); +}; +$.fn.datebox.defaults=$.extend({},$.fn.combo.defaults,{panelWidth:180,panelHeight:"auto",sharedCalendar:null,keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_935(this); +},query:function(q,e){ +_932(this,q); +}},currentText:"Today",closeText:"Close",okText:"Ok",buttons:[{text:function(_945){ +return $(_945).datebox("options").currentText; +},handler:function(_946){ +$(_946).datebox("calendar").calendar({year:new Date().getFullYear(),month:new Date().getMonth()+1,current:new Date()}); +_935(_946); +}},{text:function(_947){ +return $(_947).datebox("options").closeText; +},handler:function(_948){ +$(this).closest("div.combo-panel").panel("close"); +}}],formatter:function(date){ +var y=date.getFullYear(); +var m=date.getMonth()+1; +var d=date.getDate(); +return m+"/"+d+"/"+y; +},parser:function(s){ +var t=Date.parse(s); +if(!isNaN(t)){ +return new Date(t); +}else{ +return new Date(); +} +},onSelect:function(date){ +}}); +})(jQuery); +(function($){ +function _949(_94a){ +var _94b=$.data(_94a,"datetimebox"); +var opts=_94b.options; +$(_94a).datebox($.extend({},opts,{onShowPanel:function(){ +var _94c=$(_94a).datetimebox("getValue"); +_94e(_94a,_94c,true); +opts.onShowPanel.call(_94a); +},formatter:$.fn.datebox.defaults.formatter,parser:$.fn.datebox.defaults.parser})); +$(_94a).removeClass("datebox-f").addClass("datetimebox-f"); +$(_94a).datebox("calendar").calendar({onSelect:function(date){ +opts.onSelect.call(_94a,date); +}}); +var _94d=$(_94a).datebox("panel"); +if(!_94b.spinner){ +var p=$("
                                          ").insertAfter(_94d.children("div.datebox-calendar-inner")); +_94b.spinner=p.children("input"); +} +_94b.spinner.timespinner({showSeconds:opts.showSeconds,separator:opts.timeSeparator}).unbind(".datetimebox").bind("mousedown.datetimebox",function(e){ +e.stopPropagation(); +}); +_94e(_94a,opts.value); +}; +function _94f(_950){ +var c=$(_950).datetimebox("calendar"); +var t=$(_950).datetimebox("spinner"); +var date=c.calendar("options").current; +return new Date(date.getFullYear(),date.getMonth(),date.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds")); +}; +function _951(_952,q){ +_94e(_952,q,true); +}; +function _953(_954){ +var opts=$.data(_954,"datetimebox").options; +var date=_94f(_954); +_94e(_954,opts.formatter.call(_954,date)); +$(_954).combo("hidePanel"); +}; +function _94e(_955,_956,_957){ +var opts=$.data(_955,"datetimebox").options; +$(_955).combo("setValue",_956); +if(!_957){ +if(_956){ +var date=opts.parser.call(_955,_956); +$(_955).combo("setValue",opts.formatter.call(_955,date)); +$(_955).combo("setText",opts.formatter.call(_955,date)); +}else{ +$(_955).combo("setText",_956); +} +} +var date=opts.parser.call(_955,_956); +$(_955).datetimebox("calendar").calendar("moveTo",date); +$(_955).datetimebox("spinner").timespinner("setValue",_958(date)); +function _958(date){ +function _959(_95a){ +return (_95a<10?"0":"")+_95a; +}; +var tt=[_959(date.getHours()),_959(date.getMinutes())]; +if(opts.showSeconds){ +tt.push(_959(date.getSeconds())); +} +return tt.join($(_955).datetimebox("spinner").timespinner("options").separator); +}; +}; +$.fn.datetimebox=function(_95b,_95c){ +if(typeof _95b=="string"){ +var _95d=$.fn.datetimebox.methods[_95b]; +if(_95d){ +return _95d(this,_95c); +}else{ +return this.datebox(_95b,_95c); +} +} +_95b=_95b||{}; +return this.each(function(){ +var _95e=$.data(this,"datetimebox"); +if(_95e){ +$.extend(_95e.options,_95b); +}else{ +$.data(this,"datetimebox",{options:$.extend({},$.fn.datetimebox.defaults,$.fn.datetimebox.parseOptions(this),_95b)}); +} +_949(this); +}); +}; +$.fn.datetimebox.methods={options:function(jq){ +var _95f=jq.datebox("options"); +return $.extend($.data(jq[0],"datetimebox").options,{originalValue:_95f.originalValue,disabled:_95f.disabled,readonly:_95f.readonly}); +},spinner:function(jq){ +return $.data(jq[0],"datetimebox").spinner; +},setValue:function(jq,_960){ +return jq.each(function(){ +_94e(this,_960); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).datetimebox("options"); +$(this).datetimebox("setValue",opts.originalValue); +}); +}}; +$.fn.datetimebox.parseOptions=function(_961){ +var t=$(_961); +return $.extend({},$.fn.datebox.parseOptions(_961),$.parser.parseOptions(_961,["timeSeparator",{showSeconds:"boolean"}])); +}; +$.fn.datetimebox.defaults=$.extend({},$.fn.datebox.defaults,{showSeconds:true,timeSeparator:":",keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_953(this); +},query:function(q,e){ +_951(this,q); +}},buttons:[{text:function(_962){ +return $(_962).datetimebox("options").currentText; +},handler:function(_963){ +$(_963).datetimebox("calendar").calendar({year:new Date().getFullYear(),month:new Date().getMonth()+1,current:new Date()}); +_953(_963); +}},{text:function(_964){ +return $(_964).datetimebox("options").okText; +},handler:function(_965){ +_953(_965); +}},{text:function(_966){ +return $(_966).datetimebox("options").closeText; +},handler:function(_967){ +$(this).closest("div.combo-panel").panel("close"); +}}],formatter:function(date){ +var h=date.getHours(); +var M=date.getMinutes(); +var s=date.getSeconds(); +function _968(_969){ +return (_969<10?"0":"")+_969; +}; +var _96a=$(this).datetimebox("spinner").timespinner("options").separator; +var r=$.fn.datebox.defaults.formatter(date)+" "+_968(h)+_96a+_968(M); +if($(this).datetimebox("options").showSeconds){ +r+=_96a+_968(s); +} +return r; +},parser:function(s){ +if($.trim(s)==""){ +return new Date(); +} +var dt=s.split(" "); +var d=$.fn.datebox.defaults.parser(dt[0]); +if(dt.length<2){ +return d; +} +var _96b=$(this).datetimebox("spinner").timespinner("options").separator; +var tt=dt[1].split(_96b); +var hour=parseInt(tt[0],10)||0; +var _96c=parseInt(tt[1],10)||0; +var _96d=parseInt(tt[2],10)||0; +return new Date(d.getFullYear(),d.getMonth(),d.getDate(),hour,_96c,_96d); +}}); +})(jQuery); +(function($){ +function init(_96e){ +var _96f=$("
                                          "+"
                                          "+""+""+"
                                          "+"
                                          "+"
                                          "+"
                                          "+""+"
                                          ").insertAfter(_96e); +var t=$(_96e); +t.addClass("slider-f").hide(); +var name=t.attr("name"); +if(name){ +_96f.find("input.slider-value").attr("name",name); +t.removeAttr("name").attr("sliderName",name); +} +return _96f; +}; +function _970(_971,_972){ +var _973=$.data(_971,"slider"); +var opts=_973.options; +var _974=_973.slider; +if(_972){ +if(_972.width){ +opts.width=_972.width; +} +if(_972.height){ +opts.height=_972.height; +} +} +if(opts.mode=="h"){ +_974.css("height",""); +_974.children("div").css("height",""); +if(!isNaN(opts.width)){ +_974.width(opts.width); +} +}else{ +_974.css("width",""); +_974.children("div").css("width",""); +if(!isNaN(opts.height)){ +_974.height(opts.height); +_974.find("div.slider-rule").height(opts.height); +_974.find("div.slider-rulelabel").height(opts.height); +_974.find("div.slider-inner")._outerHeight(opts.height); +} +} +_975(_971); +}; +function _976(_977){ +var _978=$.data(_977,"slider"); +var opts=_978.options; +var _979=_978.slider; +var aa=opts.mode=="h"?opts.rule:opts.rule.slice(0).reverse(); +if(opts.reversed){ +aa=aa.slice(0).reverse(); +} +_97a(aa); +function _97a(aa){ +var rule=_979.find("div.slider-rule"); +var _97b=_979.find("div.slider-rulelabel"); +rule.empty(); +_97b.empty(); +for(var i=0;i").appendTo(rule); +span.css((opts.mode=="h"?"left":"top"),_97c); +if(aa[i]!="|"){ +span=$("").appendTo(_97b); +span.html(aa[i]); +if(opts.mode=="h"){ +span.css({left:_97c,marginLeft:-Math.round(span.outerWidth()/2)}); +}else{ +span.css({top:_97c,marginTop:-Math.round(span.outerHeight()/2)}); +} +} +} +}; +}; +function _97d(_97e){ +var _97f=$.data(_97e,"slider"); +var opts=_97f.options; +var _980=_97f.slider; +_980.removeClass("slider-h slider-v slider-disabled"); +_980.addClass(opts.mode=="h"?"slider-h":"slider-v"); +_980.addClass(opts.disabled?"slider-disabled":""); +_980.find("a.slider-handle").draggable({axis:opts.mode,cursor:"pointer",disabled:opts.disabled,onDrag:function(e){ +var left=e.data.left; +var _981=_980.width(); +if(opts.mode!="h"){ +left=e.data.top; +_981=_980.height(); +} +if(left<0||left>_981){ +return false; +}else{ +var _982=_994(_97e,left); +_983(_982); +return false; +} +},onBeforeDrag:function(){ +_97f.isDragging=true; +},onStartDrag:function(){ +opts.onSlideStart.call(_97e,opts.value); +},onStopDrag:function(e){ +var _984=_994(_97e,(opts.mode=="h"?e.data.left:e.data.top)); +_983(_984); +opts.onSlideEnd.call(_97e,opts.value); +opts.onComplete.call(_97e,opts.value); +_97f.isDragging=false; +}}); +_980.find("div.slider-inner").unbind(".slider").bind("mousedown.slider",function(e){ +if(_97f.isDragging){ +return; +} +var pos=$(this).offset(); +var _985=_994(_97e,(opts.mode=="h"?(e.pageX-pos.left):(e.pageY-pos.top))); +_983(_985); +opts.onComplete.call(_97e,opts.value); +}); +function _983(_986){ +var s=Math.abs(_986%opts.step); +if(sopts.max){ +_989=opts.max; +} +opts.value=_989; +$(_988).val(_989); +_98b.find("input.slider-value").val(_989); +var pos=_98d(_988,_989); +var tip=_98b.find(".slider-tip"); +if(opts.showTip){ +tip.show(); +tip.html(opts.tipFormatter.call(_988,opts.value)); +}else{ +tip.hide(); +} +if(opts.mode=="h"){ +var _98e="left:"+pos+"px;"; +_98b.find(".slider-handle").attr("style",_98e); +tip.attr("style",_98e+"margin-left:"+(-Math.round(tip.outerWidth()/2))+"px"); +}else{ +var _98e="top:"+pos+"px;"; +_98b.find(".slider-handle").attr("style",_98e); +tip.attr("style",_98e+"margin-left:"+(-Math.round(tip.outerWidth()))+"px"); +} +if(_98c!=_989){ +opts.onChange.call(_988,_989,_98c); +} +}; +function _975(_98f){ +var opts=$.data(_98f,"slider").options; +var fn=opts.onChange; +opts.onChange=function(){ +}; +_987(_98f,opts.value); +opts.onChange=fn; +}; +function _98d(_990,_991){ +var _992=$.data(_990,"slider"); +var opts=_992.options; +var _993=_992.slider; +var size=opts.mode=="h"?_993.width():_993.height(); +var pos=opts.converter.toPosition.call(_990,_991,size); +if(opts.mode=="v"){ +pos=_993.height()-pos; +} +if(opts.reversed){ +pos=size-pos; +} +return pos.toFixed(0); +}; +function _994(_995,pos){ +var _996=$.data(_995,"slider"); +var opts=_996.options; +var _997=_996.slider; +var size=opts.mode=="h"?_997.width():_997.height(); +var _998=opts.converter.toValue.call(_995,opts.mode=="h"?(opts.reversed?(size-pos):pos):(size-pos),size); +return _998.toFixed(0); +}; +$.fn.slider=function(_999,_99a){ +if(typeof _999=="string"){ +return $.fn.slider.methods[_999](this,_99a); +} +_999=_999||{}; +return this.each(function(){ +var _99b=$.data(this,"slider"); +if(_99b){ +$.extend(_99b.options,_999); +}else{ +_99b=$.data(this,"slider",{options:$.extend({},$.fn.slider.defaults,$.fn.slider.parseOptions(this),_999),slider:init(this)}); +$(this).removeAttr("disabled"); +} +var opts=_99b.options; +opts.min=parseFloat(opts.min); +opts.max=parseFloat(opts.max); +opts.value=parseFloat(opts.value); +opts.step=parseFloat(opts.step); +opts.originalValue=opts.value; +_97d(this); +_976(this); +_970(this); +}); +}; +$.fn.slider.methods={options:function(jq){ +return $.data(jq[0],"slider").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"slider").slider.remove(); +$(this).remove(); +}); +},resize:function(jq,_99c){ +return jq.each(function(){ +_970(this,_99c); +}); +},getValue:function(jq){ +return jq.slider("options").value; +},setValue:function(jq,_99d){ +return jq.each(function(){ +_987(this,_99d); +}); +},clear:function(jq){ +return jq.each(function(){ +var opts=$(this).slider("options"); +_987(this,opts.min); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).slider("options"); +_987(this,opts.originalValue); +}); +},enable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=false; +_97d(this); +}); +},disable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=true; +_97d(this); +}); +}}; +$.fn.slider.parseOptions=function(_99e){ +var t=$(_99e); +return $.extend({},$.parser.parseOptions(_99e,["width","height","mode",{reversed:"boolean",showTip:"boolean",min:"number",max:"number",step:"number"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),rule:(t.attr("rule")?eval(t.attr("rule")):undefined)}); +}; +$.fn.slider.defaults={width:"auto",height:"auto",mode:"h",reversed:false,showTip:false,disabled:false,value:0,min:0,max:100,step:1,rule:[],tipFormatter:function(_99f){ +return _99f; +},converter:{toPosition:function(_9a0,size){ +var opts=$(this).slider("options"); +return (_9a0-opts.min)/(opts.max-opts.min)*size; +},toValue:function(pos,size){ +var opts=$(this).slider("options"); +return opts.min+(opts.max-opts.min)*(pos/size); +}},onChange:function(_9a1,_9a2){ +},onSlideStart:function(_9a3){ +},onSlideEnd:function(_9a4){ +},onComplete:function(_9a5){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/jquery.min.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/jquery.min.js new file mode 100644 index 0000000..b18e05a --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/jquery.min.js @@ -0,0 +1,6 @@ +/*! jQuery v2.0.0 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery.min.map +*/ +(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],f="2.0.0",p=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=f.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return p.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,f,p,h,d,g,m,y="sizzle"+-new Date,v=e.document,b={},w=0,T=0,C=ot(),k=ot(),N=ot(),E=!1,S=function(){return 0},j=typeof undefined,D=1<<31,A=[],L=A.pop,q=A.push,H=A.push,O=A.slice,F=A.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",R="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=M.replace("w","w#"),$="\\["+R+"*("+M+")"+R+"*(?:([*^$|!~]?=)"+R+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+R+"*\\]",B=":("+M+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",I=RegExp("^"+R+"+|((?:^|[^\\\\])(?:\\\\.)*)"+R+"+$","g"),z=RegExp("^"+R+"*,"+R+"*"),_=RegExp("^"+R+"*([>+~]|"+R+")"+R+"*"),X=RegExp(R+"*[+~]"),U=RegExp("="+R+"*([^\\]'\"]*)"+R+"*\\]","g"),Y=RegExp(B),V=RegExp("^"+W+"$"),G={ID:RegExp("^#("+M+")"),CLASS:RegExp("^\\.("+M+")"),TAG:RegExp("^("+M.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+B),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),"boolean":RegExp("^(?:"+P+")$","i"),needsContext:RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},J=/^[^{]+\{\s*\[native \w/,Q=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,et=/'|\\/g,tt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,nt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{H.apply(A=O.call(v.childNodes),v.childNodes),A[v.childNodes.length].nodeType}catch(rt){H={apply:A.length?function(e,t){q.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function it(e){return J.test(e+"")}function ot(){var e,t=[];return e=function(n,i){return t.push(n+=" ")>r.cacheLength&&delete e[t.shift()],e[n]=i}}function st(e){return e[y]=!0,e}function at(e){var t=c.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ut(e,t,n,r){var i,o,s,a,u,f,d,g,x,w;if((t?t.ownerDocument||t:v)!==c&&l(t),t=t||c,n=n||[],!e||"string"!=typeof e)return n;if(1!==(a=t.nodeType)&&9!==a)return[];if(p&&!r){if(i=Q.exec(e))if(s=i[1]){if(9===a){if(o=t.getElementById(s),!o||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&m(t,o)&&o.id===s)return n.push(o),n}else{if(i[2])return H.apply(n,t.getElementsByTagName(e)),n;if((s=i[3])&&b.getElementsByClassName&&t.getElementsByClassName)return H.apply(n,t.getElementsByClassName(s)),n}if(b.qsa&&(!h||!h.test(e))){if(g=d=y,x=t,w=9===a&&e,1===a&&"object"!==t.nodeName.toLowerCase()){f=gt(e),(d=t.getAttribute("id"))?g=d.replace(et,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=f.length;while(u--)f[u]=g+mt(f[u]);x=X.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return H.apply(n,x.querySelectorAll(w)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(I,"$1"),t,n,r)}o=ut.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},l=ut.setDocument=function(e){var t=e?e.ownerDocument||e:v;return t!==c&&9===t.nodeType&&t.documentElement?(c=t,f=t.documentElement,p=!o(t),b.getElementsByTagName=at(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),b.attributes=at(function(e){return e.className="i",!e.getAttribute("className")}),b.getElementsByClassName=at(function(e){return e.innerHTML="
                                          ",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),b.sortDetached=at(function(e){return 1&e.compareDocumentPosition(c.createElement("div"))}),b.getById=at(function(e){return f.appendChild(e).id=y,!t.getElementsByName||!t.getElementsByName(y).length}),b.getById?(r.find.ID=function(e,t){if(typeof t.getElementById!==j&&p){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},r.filter.ID=function(e){var t=e.replace(tt,nt);return function(e){return e.getAttribute("id")===t}}):(r.find.ID=function(e,t){if(typeof t.getElementById!==j&&p){var n=t.getElementById(e);return n?n.id===e||typeof n.getAttributeNode!==j&&n.getAttributeNode("id").value===e?[n]:undefined:[]}},r.filter.ID=function(e){var t=e.replace(tt,nt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),r.find.TAG=b.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=b.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&p?t.getElementsByClassName(e):undefined},d=[],h=[],(b.qsa=it(t.querySelectorAll))&&(at(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||h.push("\\["+R+"*(?:value|"+P+")"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){var t=c.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&h.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(b.matchesSelector=it(g=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){b.disconnectedMatch=g.call(e,"div"),g.call(e,"[s!='']:x"),d.push("!=",B)}),h=h.length&&RegExp(h.join("|")),d=d.length&&RegExp(d.join("|")),m=it(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,n){if(e===n)return E=!0,0;var r=n.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(n);return r?1&r||!b.sortDetached&&n.compareDocumentPosition(e)===r?e===t||m(v,e)?-1:n===t||m(v,n)?1:u?F.call(u,e)-F.call(u,n):0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],l=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:u?F.call(u,e)-F.call(u,n):0;if(o===s)return lt(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)l.unshift(r);while(a[i]===l[i])i++;return i?lt(a[i],l[i]):a[i]===v?-1:l[i]===v?1:0},c):c},ut.matches=function(e,t){return ut(e,null,null,t)},ut.matchesSelector=function(e,t){if((e.ownerDocument||e)!==c&&l(e),t=t.replace(U,"='$1']"),!(!b.matchesSelector||!p||d&&d.test(t)||h&&h.test(t)))try{var n=g.call(e,t);if(n||b.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return ut(t,c,null,[e]).length>0},ut.contains=function(e,t){return(e.ownerDocument||e)!==c&&l(e),m(e,t)},ut.attr=function(e,t){(e.ownerDocument||e)!==c&&l(e);var n=r.attrHandle[t.toLowerCase()],i=n&&n(e,t,!p);return i===undefined?b.attributes||!p?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null:i},ut.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ut.uniqueSort=function(e){var t,n=[],r=0,i=0;if(E=!b.detectDuplicates,u=!b.sortStable&&e.slice(0),e.sort(S),E){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return e};function lt(e,t){var n=t&&e,r=n&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ct(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===!0?t.toLowerCase():null}function ft(e,t,n){var r;return n?undefined:r=e.getAttribute(t,"type"===t.toLowerCase()?1:2)}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ht(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function dt(e){return st(function(t){return t=+t,st(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}i=ut.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r];r++)n+=i(t);return n},r=ut.selectors={cacheLength:50,createPseudo:st,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(tt,nt),e[3]=(e[4]||e[5]||"").replace(tt,nt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ut.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ut.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return G.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&Y.test(n)&&(t=gt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(tt,nt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ut.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){f=t;while(f=f[g])if(a?f.nodeName.toLowerCase()===v:1===f.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[y]||(m[y]={}),l=c[e]||[],h=l[0]===w&&l[1],p=l[0]===w&&l[2],f=h&&m.childNodes[h];while(f=++h&&f&&f[g]||(p=h=0)||d.pop())if(1===f.nodeType&&++p&&f===t){c[e]=[w,h,p];break}}else if(x&&(l=(t[y]||(t[y]={}))[e])&&l[0]===w)p=l[1];else while(f=++h&&f&&f[g]||(p=h=0)||d.pop())if((a?f.nodeName.toLowerCase()===v:1===f.nodeType)&&++p&&(x&&((f[y]||(f[y]={}))[e]=[w,p]),f===t))break;return p-=i,p===r||0===p%r&&p/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||ut.error("unsupported pseudo: "+e);return i[y]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?st(function(e,n){var r,o=i(e,t),s=o.length;while(s--)r=F.call(e,o[s]),e[r]=!(n[r]=o[s])}):function(e){return i(e,0,n)}):i}},pseudos:{not:st(function(e){var t=[],n=[],r=s(e.replace(I,"$1"));return r[y]?st(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:st(function(e){return function(t){return ut(e,t).length>0}}),contains:st(function(e){return function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:st(function(e){return V.test(e||"")||ut.error("unsupported lang: "+e),e=e.replace(tt,nt).toLowerCase(),function(t){var n;do if(n=p?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===c.activeElement&&(!c.hasFocus||c.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Z.test(e.nodeName)},input:function(e){return K.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:dt(function(){return[0]}),last:dt(function(e,t){return[t-1]}),eq:dt(function(e,t,n){return[0>n?n+t:n]}),even:dt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:dt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:dt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:dt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=ht(t);function gt(e,t){var n,i,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=r.preFilter;while(a){(!n||(i=z.exec(a)))&&(i&&(a=a.slice(i[0].length)||a),u.push(o=[])),n=!1,(i=_.exec(a))&&(n=i.shift(),o.push({value:n,type:i[0].replace(I," ")}),a=a.slice(n.length));for(s in r.filter)!(i=G[s].exec(a))||l[s]&&!(i=l[s](i))||(n=i.shift(),o.push({value:n,type:s,matches:i}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ut.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function yt(e,t,r){var i=t.dir,o=r&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,r,a){var u,l,c,f=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,r,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[y]||(t[y]={}),(l=c[i])&&l[0]===f){if((u=l[1])===!0||u===n)return u===!0}else if(l=c[i]=[f],l[1]=e(t,r,a)||n,l[1]===!0)return!0}}function vt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function bt(e,t,n,r,i,o){return r&&!r[y]&&(r=bt(r)),i&&!i[y]&&(i=bt(i,o)),st(function(o,s,a,u){var l,c,f,p=[],h=[],d=s.length,g=o||Ct(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:xt(g,p,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(f=l[c])&&(y[h[c]]=!(m[h[c]]=f))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(f=y[c])&&l.push(m[c]=f);i(null,y=[],l,u)}c=y.length;while(c--)(f=y[c])&&(l=i?F.call(o,f):p[c])>-1&&(o[l]=!(s[l]=f))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):H.apply(s,y)})}function wt(e){var t,n,i,o=e.length,s=r.relative[e[0].type],u=s||r.relative[" "],l=s?1:0,c=yt(function(e){return e===t},u,!0),f=yt(function(e){return F.call(t,e)>-1},u,!0),p=[function(e,n,r){return!s&&(r||n!==a)||((t=n).nodeType?c(e,n,r):f(e,n,r))}];for(;o>l;l++)if(n=r.relative[e[l].type])p=[yt(vt(p),n)];else{if(n=r.filter[e[l].type].apply(null,e[l].matches),n[y]){for(i=++l;o>i;i++)if(r.relative[e[i].type])break;return bt(l>1&&vt(p),l>1&&mt(e.slice(0,l-1)).replace(I,"$1"),n,i>l&&wt(e.slice(l,i)),o>i&&wt(e=e.slice(i)),o>i&&mt(e))}p.push(n)}return vt(p)}function Tt(e,t){var i=0,o=t.length>0,s=e.length>0,u=function(u,l,f,p,h){var d,g,m,y=[],v=0,x="0",b=u&&[],T=null!=h,C=a,k=u||s&&r.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(a=l!==c&&l,n=i);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,f)){p.push(d);break}T&&(w=N,n=++i)}o&&((d=!m&&d)&&v--,u&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,f);if(u){if(v>0)while(x--)b[x]||y[x]||(y[x]=L.call(p));y=xt(y)}H.apply(p,y),T&&!u&&y.length>0&&v+t.length>1&&ut.uniqueSort(p)}return T&&(w=N,a=C),b};return o?st(u):u}s=ut.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[y]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i>r;r++)ut(e,t[r],n);return n}function kt(e,t,n,i){var o,a,u,l,c,f=gt(e);if(!i&&1===f.length){if(a=f[0]=f[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&p&&r.relative[a[1].type]){if(t=(r.find.ID(u.matches[0].replace(tt,nt),t)||[])[0],!t)return n;e=e.slice(a.shift().value.length)}o=G.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],r.relative[l=u.type])break;if((c=r.find[l])&&(i=c(u.matches[0].replace(tt,nt),X.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=i.length&&mt(a),!e)return H.apply(n,i),n;break}}}return s(e,f)(i,t,!p,n,X.test(e)),n}r.pseudos.nth=r.pseudos.eq;function Nt(){}Nt.prototype=r.filters=r.pseudos,r.setFilters=new Nt,b.sortStable=y.split("").sort(S).join("")===y,l(),[0,0].sort(S),b.detectDuplicates=E,at(function(e){if(e.innerHTML="","#"!==e.firstChild.getAttribute("href")){var t="type|href|height|width".split("|"),n=t.length;while(n--)r.attrHandle[t[n]]=ft}}),at(function(e){if(null!=e.getAttribute("disabled")){var t=P.split("|"),n=t.length;while(n--)r.attrHandle[t[n]]=ct}}),x.find=ut,x.expr=ut.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ut.uniqueSort,x.text=ut.getText,x.isXMLDoc=ut.isXML,x.contains=ut.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(f){for(t=e.memory&&f,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(f[0],f[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!a||n&&!u||(r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))this.cache[i]=t;else for(r in t)o[r]=t[r]},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){return t===undefined||t&&"string"==typeof t&&n===undefined?this.get(e,t):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i=this.key(e),o=this.cache[i];if(t===undefined)this.cache[i]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):t in o?r=[t]:(r=x.camelCase(t),r=r in o?[r]:r.match(w)||[]),n=r.length;while(n--)delete o[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){delete this.cache[this.key(e)]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!q.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.substring(5)),P(i,r,s[r]));q.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=q.get(e,t),n&&(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t); +x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=q.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,i="boolean"==typeof t;return x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,s=0,a=x(this),u=t,l=e.match(w)||[];while(o=l[s++])u=i?u:!a.hasClass(o),a[u?"addClass":"removeClass"](o)}else(n===r||"boolean"===n)&&(this.className&&q.set(this,"__className__",this.className),this.className=this.className||e===!1?"":q.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i,o=x(this);1===this.nodeType&&(i=r?e.call(this,n,o.val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.boolean.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.boolean.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.boolean.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,f,p,h,d,g,m,y=q.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(p=x.event.special[d]||{},d=(o?p.delegateType:p.bindType)||d,p=x.event.special[d]||{},f=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,p.setup&&p.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),p.add&&(p.add.call(e,f),f.handler.guid||(f.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,f):h.push(f),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,f,p,h,d,g,m=q.hasData(e)&&q.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){f=x.event.special[h]||{},h=(r?f.delegateType:f.bindType)||h,p=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));s&&!p.length&&(f.teardown&&f.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,q.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,f,p,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),p=x.event.special[d]||{},i||!p.trigger||p.trigger.apply(r,n)!==!1)){if(!i&&!p.noBubble&&!x.isWindow(r)){for(l=p.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:p.bindType||d,f=(q.get(a,"events")||{})[t.type]&&q.get(a,"handle"),f&&f.apply(a,n),f=c&&a[c],f&&x.acceptData(a)&&f.apply&&f.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||p._default&&p._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return 3===e.target.nodeType&&(e.target=e.target.parentNode),s.filter?s.filter(e,o):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=x.expr.match.needsContext,Q={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return t=this,this.pushStack(x(e).filter(function(){for(r=0;i>r;r++)if(x.contains(t[r],this))return!0}));for(n=[],r=0;i>r;r++)x.find(e,this[r],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(Z(this,e||[],!0))},filter:function(e){return this.pushStack(Z(this,e||[],!1))},is:function(e){return!!e&&("string"==typeof e?J.test(e)?x(e,this.context).index(this[0])>=0:x.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],s=J.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function K(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return K(e,"nextSibling")},prev:function(e){return K(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(Q[e]||x.unique(i),"p"===e[0]&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function Z(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var et=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,tt=/<([\w:]+)/,nt=/<|&#?\w+;/,rt=/<(?:script|style|link)/i,it=/^(?:checkbox|radio)$/i,ot=/checked\s*(?:[^=]|=\s*.checked.)/i,st=/^$|\/(?:java|ecma)script/i,at=/^true\/(.*)/,ut=/^\s*\s*$/g,lt={option:[1,""],thead:[1,"","
                                          "],tr:[2,"","
                                          "],td:[3,"","
                                          "],_default:[0,"",""]};lt.optgroup=lt.option,lt.tbody=lt.tfoot=lt.colgroup=lt.caption=lt.col=lt.thead,lt.th=lt.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=ct(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=ct(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(gt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&ht(gt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(gt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!rt.test(e)&&!lt[(tt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(et,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(gt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=p.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,f=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&ot.test(d))return this.each(function(r){var i=f.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(gt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,gt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,pt),l=0;s>l;l++)a=o[l],st.test(a.type||"")&&!q.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(ut,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=gt(a),o=gt(e),r=0,i=o.length;i>r;r++)mt(o[r],s[r]);if(t)if(n)for(o=o||gt(e),s=s||gt(a),r=0,i=o.length;i>r;r++)dt(o[r],s[r]);else dt(e,a);return s=gt(a,"script"),s.length>0&&ht(s,!u&>(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,f=e.length,p=t.createDocumentFragment(),h=[];for(;f>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(nt.test(i)){o=o||p.appendChild(t.createElement("div")),s=(tt.exec(i)||["",""])[1].toLowerCase(),a=lt[s]||lt._default,o.innerHTML=a[1]+i.replace(et,"<$1>")+a[2],l=a[0];while(l--)o=o.firstChild;x.merge(h,o.childNodes),o=p.firstChild,o.textContent=""}else h.push(t.createTextNode(i));p.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=gt(p.appendChild(i),"script"),u&&ht(o),n)){l=0;while(i=o[l++])st.test(i.type||"")&&n.push(i)}return p},cleanData:function(e){var t,n,r,i=e.length,o=0,s=x.event.special;for(;i>o;o++){if(n=e[o],x.acceptData(n)&&(t=q.access(n)))for(r in t.events)s[r]?x.event.remove(n,r):x.removeEvent(n,r,t.handle);L.discard(n),q.discard(n)}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"text",async:!1,global:!1,success:x.globalEval})}});function ct(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function pt(e){var t=at.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function ht(e,t){var n=e.length,r=0;for(;n>r;r++)q.set(e[r],"globalEval",!t||q.get(t[r],"globalEval"))}function dt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&&(o=q.access(e),s=x.extend({},o),l=o.events,q.set(t,s),l)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function gt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function mt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&it.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var yt,vt,xt=/^(none|table(?!-c[ea]).+)/,bt=/^margin/,wt=RegExp("^("+b+")(.*)$","i"),Tt=RegExp("^("+b+")(?!px)[a-z%]+$","i"),Ct=RegExp("^([+-])=("+b+")","i"),kt={BODY:"block"},Nt={position:"absolute",visibility:"hidden",display:"block"},Et={letterSpacing:0,fontWeight:400},St=["Top","Right","Bottom","Left"],jt=["Webkit","O","Moz","ms"];function Dt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=jt.length;while(i--)if(t=jt[i]+n,t in e)return t;return r}function At(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function Lt(t){return e.getComputedStyle(t,null)}function qt(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=q.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&At(r)&&(o[s]=q.access(r,"olddisplay",Pt(r.nodeName)))):o[s]||(i=At(r),(n&&"none"!==n||!i)&&q.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=Lt(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return qt(this,!0)},hide:function(){return qt(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:At(this))?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=yt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=Dt(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=Ct.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=Dt(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=yt(e,t,r)),"normal"===i&&t in Et&&(i=Et[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),yt=function(e,t,n){var r,i,o,s=n||Lt(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Tt.test(a)&&bt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ht(e,t,n){var r=wt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ot(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+St[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+St[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+St[o]+"Width",!0,i))):(s+=x.css(e,"padding"+St[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+St[o]+"Width",!0,i)));return s}function Ft(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Lt(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=yt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Tt.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ot(e,t,n||(s?"border":"content"),r,o)+"px"}function Pt(e){var t=o,n=kt[e];return n||(n=Rt(e,t),"none"!==n&&n||(vt=(vt||x("").attr("src",window.ActiveXObject?"javascript:false":"about:blank").css({position:"absolute",top:-1000,left:-1000}); +var t=_5.attr("target"),a=_5.attr("action"); +_5.attr("target",_6); +var _8=$(); +try{ +_7.appendTo("body"); +_7.bind("load",cb); +for(var n in _4){ +var f=$("").val(_4[n]).appendTo(_5); +_8=_8.add(f); +} +_9(); +_5[0].submit(); +} +finally{ +_5.attr("action",a); +t?_5.attr("target",t):_5.removeAttr("target"); +_8.remove(); +} +function _9(){ +var f=$("#"+_6); +if(!f.length){ +return; +} +try{ +var s=f.contents()[0].readyState; +if(s&&s.toLowerCase()=="uninitialized"){ +setTimeout(_9,100); +} +} +catch(e){ +cb(); +} +}; +var _a=10; +function cb(){ +var _b=$("#"+_6); +if(!_b.length){ +return; +} +_b.unbind(); +var _c=""; +try{ +var _d=_b.contents().find("body"); +_c=_d.html(); +if(_c==""){ +if(--_a){ +setTimeout(cb,100); +return; +} +} +var ta=_d.find(">textarea"); +if(ta.length){ +_c=ta.val(); +}else{ +var _e=_d.find(">pre"); +if(_e.length){ +_c=_e.html(); +} +} +} +catch(e){ +} +if(_3.success){ +_3.success(_c); +} +setTimeout(function(){ +_b.unbind(); +_b.remove(); +},100); +}; +}; +function _f(_10,_11){ +if(!$.data(_10,"form")){ +$.data(_10,"form",{options:$.extend({},$.fn.form.defaults)}); +} +var _12=$.data(_10,"form").options; +if(typeof _11=="string"){ +var _13={}; +if(_12.onBeforeLoad.call(_10,_13)==false){ +return; +} +$.ajax({url:_11,data:_13,dataType:"json",success:function(_14){ +_15(_14); +},error:function(){ +_12.onLoadError.apply(_10,arguments); +}}); +}else{ +_15(_11); +} +function _15(_16){ +var _17=$(_10); +for(var _18 in _16){ +var val=_16[_18]; +var rr=_19(_18,val); +if(!rr.length){ +var _1a=_1b(_18,val); +if(!_1a){ +$("input[name=\""+_18+"\"]",_17).val(val); +$("textarea[name=\""+_18+"\"]",_17).val(val); +$("select[name=\""+_18+"\"]",_17).val(val); +} +} +_1c(_18,val); +} +_12.onLoadSuccess.call(_10,_16); +_29(_10); +}; +function _19(_1d,val){ +var rr=$(_10).find("input[name=\""+_1d+"\"][type=radio], input[name=\""+_1d+"\"][type=checkbox]"); +rr._propAttr("checked",false); +rr.each(function(){ +var f=$(this); +if(f.val()==String(val)||$.inArray(f.val(),$.isArray(val)?val:[val])>=0){ +f._propAttr("checked",true); +} +}); +return rr; +}; +function _1b(_1e,val){ +var _1f=0; +var pp=["numberbox","slider"]; +for(var i=0;i=0){ +_1b(_16,_18,this); +} +}); +}; +cc.children("form").length?_17(cc.children("form")):_17(cc); +cc.append("
                                          "); +cc.bind("_resize",function(e,_19){ +var _1a=$.data(_16,"layout").options; +if(_1a.fit==true||_19){ +_2(_16); +} +return false; +}); +}; +function _1b(_1c,_1d,el){ +_1d.region=_1d.region||"center"; +var _1e=$.data(_1c,"layout").panels; +var cc=$(_1c); +var dir=_1d.region; +if(_1e[dir].length){ +return; +} +var pp=$(el); +if(!pp.length){ +pp=$("
                                          ").appendTo(cc); +} +var _1f=$.extend({},$.fn.layout.paneldefaults,{width:(pp.length?parseInt(pp[0].style.width)||pp.outerWidth():"auto"),height:(pp.length?parseInt(pp[0].style.height)||pp.outerHeight():"auto"),doSize:false,collapsible:true,cls:("layout-panel layout-panel-"+dir),bodyCls:"layout-body",onOpen:function(){ +var _20=$(this).panel("header").children("div.panel-tool"); +_20.children("a.panel-tool-collapse").hide(); +var _21={north:"up",south:"down",east:"right",west:"left"}; +if(!_21[dir]){ +return; +} +var _22="layout-button-"+_21[dir]; +var t=_20.children("a."+_22); +if(!t.length){ +t=$("").addClass(_22).appendTo(_20); +t.bind("click",{dir:dir},function(e){ +_2f(_1c,e.data.dir); +return false; +}); +} +$(this).panel("options").collapsible?t.show():t.hide(); +}},_1d); +pp.panel(_1f); +_1e[dir]=pp; +if(pp.panel("options").split){ +var _23=pp.panel("panel"); +_23.addClass("layout-split-"+dir); +var _24=""; +if(dir=="north"){ +_24="s"; +} +if(dir=="south"){ +_24="n"; +} +if(dir=="east"){ +_24="w"; +} +if(dir=="west"){ +_24="e"; +} +_23.resizable($.extend({},{handles:_24,onStartResize:function(e){ +_1=true; +if(dir=="north"||dir=="south"){ +var _25=$(">div.layout-split-proxy-v",_1c); +}else{ +var _25=$(">div.layout-split-proxy-h",_1c); +} +var top=0,_26=0,_27=0,_28=0; +var pos={display:"block"}; +if(dir=="north"){ +pos.top=parseInt(_23.css("top"))+_23.outerHeight()-_25.height(); +pos.left=parseInt(_23.css("left")); +pos.width=_23.outerWidth(); +pos.height=_25.height(); +}else{ +if(dir=="south"){ +pos.top=parseInt(_23.css("top")); +pos.left=parseInt(_23.css("left")); +pos.width=_23.outerWidth(); +pos.height=_25.height(); +}else{ +if(dir=="east"){ +pos.top=parseInt(_23.css("top"))||0; +pos.left=parseInt(_23.css("left"))||0; +pos.width=_25.width(); +pos.height=_23.outerHeight(); +}else{ +if(dir=="west"){ +pos.top=parseInt(_23.css("top"))||0; +pos.left=_23.outerWidth()-_25.width(); +pos.width=_25.width(); +pos.height=_23.outerHeight(); +} +} +} +} +_25.css(pos); +$("
                                          ").css({left:0,top:0,width:cc.width(),height:cc.height()}).appendTo(cc); +},onResize:function(e){ +if(dir=="north"||dir=="south"){ +var _29=$(">div.layout-split-proxy-v",_1c); +_29.css("top",e.pageY-$(_1c).offset().top-_29.height()/2); +}else{ +var _29=$(">div.layout-split-proxy-h",_1c); +_29.css("left",e.pageX-$(_1c).offset().left-_29.width()/2); +} +return false; +},onStopResize:function(e){ +cc.children("div.layout-split-proxy-v,div.layout-split-proxy-h").hide(); +pp.panel("resize",e.data); +_2(_1c); +_1=false; +cc.find(">div.layout-mask").remove(); +}},_1d)); +} +}; +function _2a(_2b,_2c){ +var _2d=$.data(_2b,"layout").panels; +if(_2d[_2c].length){ +_2d[_2c].panel("destroy"); +_2d[_2c]=$(); +var _2e="expand"+_2c.substring(0,1).toUpperCase()+_2c.substring(1); +if(_2d[_2e]){ +_2d[_2e].panel("destroy"); +_2d[_2e]=undefined; +} +} +}; +function _2f(_30,_31,_32){ +if(_32==undefined){ +_32="normal"; +} +var _33=$.data(_30,"layout").panels; +var p=_33[_31]; +var _34=p.panel("options"); +if(_34.onBeforeCollapse.call(p)==false){ +return; +} +var _35="expand"+_31.substring(0,1).toUpperCase()+_31.substring(1); +if(!_33[_35]){ +_33[_35]=_36(_31); +_33[_35].panel("panel").bind("click",function(){ +var _37=_38(); +p.panel("expand",false).panel("open").panel("resize",_37.collapse); +p.panel("panel").animate(_37.expand,function(){ +$(this).unbind(".layout").bind("mouseleave.layout",{region:_31},function(e){ +if(_1==true){ +return; +} +_2f(_30,e.data.region); +}); +}); +return false; +}); +} +var _39=_38(); +if(!_9(_33[_35])){ +_33.center.panel("resize",_39.resizeC); +} +p.panel("panel").animate(_39.collapse,_32,function(){ +p.panel("collapse",false).panel("close"); +_33[_35].panel("open").panel("resize",_39.expandP); +$(this).unbind(".layout"); +}); +function _36(dir){ +var _3a; +if(dir=="east"){ +_3a="layout-button-left"; +}else{ +if(dir=="west"){ +_3a="layout-button-right"; +}else{ +if(dir=="north"){ +_3a="layout-button-down"; +}else{ +if(dir=="south"){ +_3a="layout-button-up"; +} +} +} +} +var p=$("
                                          ").appendTo(_30); +p.panel($.extend({},$.fn.layout.paneldefaults,{cls:("layout-expand layout-expand-"+dir),title:" ",closed:true,minWidth:0,minHeight:0,doSize:false,tools:[{iconCls:_3a,handler:function(){ +_3d(_30,_31); +return false; +}}]})); +p.panel("panel").hover(function(){ +$(this).addClass("layout-expand-over"); +},function(){ +$(this).removeClass("layout-expand-over"); +}); +return p; +}; +function _38(){ +var cc=$(_30); +var _3b=_33.center.panel("options"); +var _3c=_34.collapsedSize; +if(_31=="east"){ +var ww=_3b.width+_34.width-_3c; +if(_34.split||!_34.border){ +ww++; +} +return {resizeC:{width:ww},expand:{left:cc.width()-_34.width},expandP:{top:_3b.top,left:cc.width()-_3c,width:_3c,height:_3b.height},collapse:{left:cc.width(),top:_3b.top,height:_3b.height}}; +}else{ +if(_31=="west"){ +var ww=_3b.width+_34.width-_3c; +if(_34.split||!_34.border){ +ww++; +} +return {resizeC:{width:ww,left:_3c-1},expand:{left:0},expandP:{left:0,top:_3b.top,width:_3c,height:_3b.height},collapse:{left:-_34.width,top:_3b.top,height:_3b.height}}; +}else{ +if(_31=="north"){ +var hh=_3b.height; +if(!_9(_33.expandNorth)){ +hh+=_34.height-_3c+((_34.split||!_34.border)?1:0); +} +_33.east.add(_33.west).add(_33.expandEast).add(_33.expandWest).panel("resize",{top:_3c-1,height:hh}); +return {resizeC:{top:_3c-1,height:hh},expand:{top:0},expandP:{top:0,left:0,width:cc.width(),height:_3c},collapse:{top:-_34.height,width:cc.width()}}; +}else{ +if(_31=="south"){ +var hh=_3b.height; +if(!_9(_33.expandSouth)){ +hh+=_34.height-_3c+((_34.split||!_34.border)?1:0); +} +_33.east.add(_33.west).add(_33.expandEast).add(_33.expandWest).panel("resize",{height:hh}); +return {resizeC:{height:hh},expand:{top:cc.height()-_34.height},expandP:{top:cc.height()-_3c,left:0,width:cc.width(),height:_3c},collapse:{top:cc.height(),width:cc.width()}}; +} +} +} +} +}; +}; +function _3d(_3e,_3f){ +var _40=$.data(_3e,"layout").panels; +var p=_40[_3f]; +var _41=p.panel("options"); +if(_41.onBeforeExpand.call(p)==false){ +return; +} +var _42=_43(); +var _44="expand"+_3f.substring(0,1).toUpperCase()+_3f.substring(1); +if(_40[_44]){ +_40[_44].panel("close"); +p.panel("panel").stop(true,true); +p.panel("expand",false).panel("open").panel("resize",_42.collapse); +p.panel("panel").animate(_42.expand,function(){ +_2(_3e); +}); +} +function _43(){ +var cc=$(_3e); +var _45=_40.center.panel("options"); +if(_3f=="east"&&_40.expandEast){ +return {collapse:{left:cc.width(),top:_45.top,height:_45.height},expand:{left:cc.width()-_40["east"].panel("options").width}}; +}else{ +if(_3f=="west"&&_40.expandWest){ +return {collapse:{left:-_40["west"].panel("options").width,top:_45.top,height:_45.height},expand:{left:0}}; +}else{ +if(_3f=="north"&&_40.expandNorth){ +return {collapse:{top:-_40["north"].panel("options").height,width:cc.width()},expand:{top:0}}; +}else{ +if(_3f=="south"&&_40.expandSouth){ +return {collapse:{top:cc.height(),width:cc.width()},expand:{top:cc.height()-_40["south"].panel("options").height}}; +} +} +} +} +}; +}; +function _9(pp){ +if(!pp){ +return false; +} +if(pp.length){ +return pp.panel("panel").is(":visible"); +}else{ +return false; +} +}; +function _46(_47){ +var _48=$.data(_47,"layout").panels; +if(_48.east.length&&_48.east.panel("options").collapsed){ +_2f(_47,"east",0); +} +if(_48.west.length&&_48.west.panel("options").collapsed){ +_2f(_47,"west",0); +} +if(_48.north.length&&_48.north.panel("options").collapsed){ +_2f(_47,"north",0); +} +if(_48.south.length&&_48.south.panel("options").collapsed){ +_2f(_47,"south",0); +} +}; +$.fn.layout=function(_49,_4a){ +if(typeof _49=="string"){ +return $.fn.layout.methods[_49](this,_4a); +} +_49=_49||{}; +return this.each(function(){ +var _4b=$.data(this,"layout"); +if(_4b){ +$.extend(_4b.options,_49); +}else{ +var _4c=$.extend({},$.fn.layout.defaults,$.fn.layout.parseOptions(this),_49); +$.data(this,"layout",{options:_4c,panels:{center:$(),north:$(),south:$(),east:$(),west:$()}}); +_15(this); +} +_2(this); +_46(this); +}); +}; +$.fn.layout.methods={resize:function(jq){ +return jq.each(function(){ +_2(this); +}); +},panel:function(jq,_4d){ +return $.data(jq[0],"layout").panels[_4d]; +},collapse:function(jq,_4e){ +return jq.each(function(){ +_2f(this,_4e); +}); +},expand:function(jq,_4f){ +return jq.each(function(){ +_3d(this,_4f); +}); +},add:function(jq,_50){ +return jq.each(function(){ +_1b(this,_50); +_2(this); +if($(this).layout("panel",_50.region).panel("options").collapsed){ +_2f(this,_50.region,0); +} +}); +},remove:function(jq,_51){ +return jq.each(function(){ +_2a(this,_51); +_2(this); +}); +}}; +$.fn.layout.parseOptions=function(_52){ +return $.extend({},$.parser.parseOptions(_52,[{fit:"boolean"}])); +}; +$.fn.layout.defaults={fit:false}; +$.fn.layout.parsePanelOptions=function(_53){ +var t=$(_53); +return $.extend({},$.fn.panel.parseOptions(_53),$.parser.parseOptions(_53,["region",{split:"boolean",collpasedSize:"number",minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number"}])); +}; +$.fn.layout.paneldefaults=$.extend({},$.fn.panel.defaults,{region:null,split:false,collapsedSize:28,minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.linkbutton.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.linkbutton.js new file mode 100644 index 0000000..b11b919 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.linkbutton.js @@ -0,0 +1,145 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"linkbutton").options; +var t=$(_2).empty(); +t.addClass("l-btn").removeClass("l-btn-plain l-btn-selected l-btn-plain-selected"); +t.removeClass("l-btn-small l-btn-medium l-btn-large").addClass("l-btn-"+_3.size); +if(_3.plain){ +t.addClass("l-btn-plain"); +} +if(_3.selected){ +t.addClass(_3.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +} +t.attr("group",_3.group||""); +t.attr("id",_3.id||""); +var _4=$("").appendTo(t); +if(_3.text){ +$("").html(_3.text).appendTo(_4); +}else{ +$(" ").appendTo(_4); +} +if(_3.iconCls){ +$(" ").addClass(_3.iconCls).appendTo(_4); +_4.addClass("l-btn-icon-"+_3.iconAlign); +} +t.unbind(".linkbutton").bind("focus.linkbutton",function(){ +if(!_3.disabled){ +$(this).addClass("l-btn-focus"); +} +}).bind("blur.linkbutton",function(){ +$(this).removeClass("l-btn-focus"); +}).bind("click.linkbutton",function(){ +if(!_3.disabled){ +if(_3.toggle){ +if(_3.selected){ +$(this).linkbutton("unselect"); +}else{ +$(this).linkbutton("select"); +} +} +_3.onClick.call(this); +} +return false; +}); +_5(_2,_3.selected); +_6(_2,_3.disabled); +}; +function _5(_7,_8){ +var _9=$.data(_7,"linkbutton").options; +if(_8){ +if(_9.group){ +$("a.l-btn[group=\""+_9.group+"\"]").each(function(){ +var o=$(this).linkbutton("options"); +if(o.toggle){ +$(this).removeClass("l-btn-selected l-btn-plain-selected"); +o.selected=false; +} +}); +} +$(_7).addClass(_9.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +_9.selected=true; +}else{ +if(!_9.group){ +$(_7).removeClass("l-btn-selected l-btn-plain-selected"); +_9.selected=false; +} +} +}; +function _6(_a,_b){ +var _c=$.data(_a,"linkbutton"); +var _d=_c.options; +$(_a).removeClass("l-btn-disabled l-btn-plain-disabled"); +if(_b){ +_d.disabled=true; +var _e=$(_a).attr("href"); +if(_e){ +_c.href=_e; +$(_a).attr("href","javascript:void(0)"); +} +if(_a.onclick){ +_c.onclick=_a.onclick; +_a.onclick=null; +} +_d.plain?$(_a).addClass("l-btn-disabled l-btn-plain-disabled"):$(_a).addClass("l-btn-disabled"); +}else{ +_d.disabled=false; +if(_c.href){ +$(_a).attr("href",_c.href); +} +if(_c.onclick){ +_a.onclick=_c.onclick; +} +} +}; +$.fn.linkbutton=function(_f,_10){ +if(typeof _f=="string"){ +return $.fn.linkbutton.methods[_f](this,_10); +} +_f=_f||{}; +return this.each(function(){ +var _11=$.data(this,"linkbutton"); +if(_11){ +$.extend(_11.options,_f); +}else{ +$.data(this,"linkbutton",{options:$.extend({},$.fn.linkbutton.defaults,$.fn.linkbutton.parseOptions(this),_f)}); +$(this).removeAttr("disabled"); +} +_1(this); +}); +}; +$.fn.linkbutton.methods={options:function(jq){ +return $.data(jq[0],"linkbutton").options; +},enable:function(jq){ +return jq.each(function(){ +_6(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_6(this,true); +}); +},select:function(jq){ +return jq.each(function(){ +_5(this,true); +}); +},unselect:function(jq){ +return jq.each(function(){ +_5(this,false); +}); +}}; +$.fn.linkbutton.parseOptions=function(_12){ +var t=$(_12); +return $.extend({},$.parser.parseOptions(_12,["id","iconCls","iconAlign","group","size",{plain:"boolean",toggle:"boolean",selected:"boolean"}]),{disabled:(t.attr("disabled")?true:undefined),text:$.trim(t.html()),iconCls:(t.attr("icon")||t.attr("iconCls"))}); +}; +$.fn.linkbutton.defaults={id:null,disabled:false,toggle:false,selected:false,group:null,plain:false,text:"",iconCls:null,iconAlign:"left",size:"small",onClick:function(){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.menu.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.menu.js new file mode 100644 index 0000000..8651e9c --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.menu.js @@ -0,0 +1,437 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +$(_2).appendTo("body"); +$(_2).addClass("menu-top"); +$(document).unbind(".menu").bind("mousedown.menu",function(e){ +var m=$(e.target).closest("div.menu,div.combo-p"); +if(m.length){ +return; +} +$("body>div.menu-top:visible").menu("hide"); +}); +var _3=_4($(_2)); +for(var i=0;i<_3.length;i++){ +_5(_3[i]); +} +function _4(_6){ +var _7=[]; +_6.addClass("menu"); +_7.push(_6); +if(!_6.hasClass("menu-content")){ +_6.children("div").each(function(){ +var _8=$(this).children("div"); +if(_8.length){ +_8.insertAfter(_2); +this.submenu=_8; +var mm=_4(_8); +_7=_7.concat(mm); +} +}); +} +return _7; +}; +function _5(_9){ +var wh=$.parser.parseOptions(_9[0],["width","height"]); +_9[0].originalHeight=wh.height||0; +if(_9.hasClass("menu-content")){ +_9[0].originalWidth=wh.width||_9._outerWidth(); +}else{ +_9[0].originalWidth=wh.width||0; +_9.children("div").each(function(){ +var _a=$(this); +var _b=$.extend({},$.parser.parseOptions(this,["name","iconCls","href",{separator:"boolean"}]),{disabled:(_a.attr("disabled")?true:undefined)}); +if(_b.separator){ +_a.addClass("menu-sep"); +} +if(!_a.hasClass("menu-sep")){ +_a[0].itemName=_b.name||""; +_a[0].itemHref=_b.href||""; +var _c=_a.addClass("menu-item").html(); +_a.empty().append($("
                                          ").html(_c)); +if(_b.iconCls){ +$("
                                          ").addClass(_b.iconCls).appendTo(_a); +} +if(_b.disabled){ +_d(_2,_a[0],true); +} +if(_a[0].submenu){ +$("
                                          ").appendTo(_a); +} +_e(_2,_a); +} +}); +$("
                                          ").prependTo(_9); +} +_f(_2,_9); +_9.hide(); +_10(_2,_9); +}; +}; +function _f(_11,_12){ +var _13=$.data(_11,"menu").options; +var _14=_12.attr("style")||""; +_12.css({display:"block",left:-10000,height:"auto",overflow:"hidden"}); +var el=_12[0]; +var _15=el.originalWidth||0; +if(!_15){ +_15=0; +_12.find("div.menu-text").each(function(){ +if(_15<$(this)._outerWidth()){ +_15=$(this)._outerWidth(); +} +$(this).closest("div.menu-item")._outerHeight($(this)._outerHeight()+2); +}); +_15+=40; +} +_15=Math.max(_15,_13.minWidth); +var _16=el.originalHeight||_12.outerHeight(); +var _17=Math.max(el.originalHeight,_12.outerHeight())-2; +_12._outerWidth(_15)._outerHeight(_16); +_12.children("div.menu-line")._outerHeight(_17); +_14+=";width:"+el.style.width+";height:"+el.style.height; +_12.attr("style",_14); +}; +function _10(_18,_19){ +var _1a=$.data(_18,"menu"); +_19.unbind(".menu").bind("mouseenter.menu",function(){ +if(_1a.timer){ +clearTimeout(_1a.timer); +_1a.timer=null; +} +}).bind("mouseleave.menu",function(){ +if(_1a.options.hideOnUnhover){ +_1a.timer=setTimeout(function(){ +_1b(_18); +},100); +} +}); +}; +function _e(_1c,_1d){ +if(!_1d.hasClass("menu-item")){ +return; +} +_1d.unbind(".menu"); +_1d.bind("click.menu",function(){ +if($(this).hasClass("menu-item-disabled")){ +return; +} +if(!this.submenu){ +_1b(_1c); +var _1e=$(this).attr("href"); +if(_1e){ +location.href=_1e; +} +} +var _1f=$(_1c).menu("getItem",this); +$.data(_1c,"menu").options.onClick.call(_1c,_1f); +}).bind("mouseenter.menu",function(e){ +_1d.siblings().each(function(){ +if(this.submenu){ +_22(this.submenu); +} +$(this).removeClass("menu-active"); +}); +_1d.addClass("menu-active"); +if($(this).hasClass("menu-item-disabled")){ +_1d.addClass("menu-active-disabled"); +return; +} +var _20=_1d[0].submenu; +if(_20){ +$(_1c).menu("show",{menu:_20,parent:_1d}); +} +}).bind("mouseleave.menu",function(e){ +_1d.removeClass("menu-active menu-active-disabled"); +var _21=_1d[0].submenu; +if(_21){ +if(e.pageX>=parseInt(_21.css("left"))){ +_1d.addClass("menu-active"); +}else{ +_22(_21); +} +}else{ +_1d.removeClass("menu-active"); +} +}); +}; +function _1b(_23){ +var _24=$.data(_23,"menu"); +if(_24){ +if($(_23).is(":visible")){ +_22($(_23)); +_24.options.onHide.call(_23); +} +} +return false; +}; +function _25(_26,_27){ +var _28,top; +_27=_27||{}; +var _29=$(_27.menu||_26); +if(_29.hasClass("menu-top")){ +var _2a=$.data(_26,"menu").options; +$.extend(_2a,_27); +_28=_2a.left; +top=_2a.top; +if(_2a.alignTo){ +var at=$(_2a.alignTo); +_28=at.offset().left; +top=at.offset().top+at._outerHeight(); +if(_2a.align=="right"){ +_28+=at.outerWidth()-_29.outerWidth(); +} +} +if(_28+_29.outerWidth()>$(window)._outerWidth()+$(document)._scrollLeft()){ +_28=$(window)._outerWidth()+$(document).scrollLeft()-_29.outerWidth()-5; +} +if(_28<0){ +_28=0; +} +if(top+_29.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=$(window)._outerHeight()+$(document).scrollTop()-_29.outerHeight()-5; +} +}else{ +var _2b=_27.parent; +_28=_2b.offset().left+_2b.outerWidth()-2; +if(_28+_29.outerWidth()+5>$(window)._outerWidth()+$(document).scrollLeft()){ +_28=_2b.offset().left-_29.outerWidth()+2; +} +var top=_2b.offset().top-3; +if(top+_29.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=$(window)._outerHeight()+$(document).scrollTop()-_29.outerHeight()-5; +} +} +_29.css({left:_28,top:top}); +_29.show(0,function(){ +if(!_29[0].shadow){ +_29[0].shadow=$("
                                          ").insertAfter(_29); +} +_29[0].shadow.css({display:"block",zIndex:$.fn.menu.defaults.zIndex++,left:_29.css("left"),top:_29.css("top"),width:_29.outerWidth(),height:_29.outerHeight()}); +_29.css("z-index",$.fn.menu.defaults.zIndex++); +if(_29.hasClass("menu-top")){ +$.data(_29[0],"menu").options.onShow.call(_29[0]); +} +}); +}; +function _22(_2c){ +if(!_2c){ +return; +} +_2d(_2c); +_2c.find("div.menu-item").each(function(){ +if(this.submenu){ +_22(this.submenu); +} +$(this).removeClass("menu-active"); +}); +function _2d(m){ +m.stop(true,true); +if(m[0].shadow){ +m[0].shadow.hide(); +} +m.hide(); +}; +}; +function _2e(_2f,_30){ +var _31=null; +var tmp=$("
                                          "); +function _32(_33){ +_33.children("div.menu-item").each(function(){ +var _34=$(_2f).menu("getItem",this); +var s=tmp.empty().html(_34.text).text(); +if(_30==$.trim(s)){ +_31=_34; +}else{ +if(this.submenu&&!_31){ +_32(this.submenu); +} +} +}); +}; +_32($(_2f)); +tmp.remove(); +return _31; +}; +function _d(_35,_36,_37){ +var t=$(_36); +if(!t.hasClass("menu-item")){ +return; +} +if(_37){ +t.addClass("menu-item-disabled"); +if(_36.onclick){ +_36.onclick1=_36.onclick; +_36.onclick=null; +} +}else{ +t.removeClass("menu-item-disabled"); +if(_36.onclick1){ +_36.onclick=_36.onclick1; +_36.onclick1=null; +} +} +}; +function _38(_39,_3a){ +var _3b=$(_39); +if(_3a.parent){ +if(!_3a.parent.submenu){ +var _3c=$("
                                          ").appendTo("body"); +_3c.hide(); +_3a.parent.submenu=_3c; +$("
                                          ").appendTo(_3a.parent); +} +_3b=_3a.parent.submenu; +} +if(_3a.separator){ +var _3d=$("
                                          ").appendTo(_3b); +}else{ +var _3d=$("
                                          ").appendTo(_3b); +$("
                                          ").html(_3a.text).appendTo(_3d); +} +if(_3a.iconCls){ +$("
                                          ").addClass(_3a.iconCls).appendTo(_3d); +} +if(_3a.id){ +_3d.attr("id",_3a.id); +} +if(_3a.name){ +_3d[0].itemName=_3a.name; +} +if(_3a.href){ +_3d[0].itemHref=_3a.href; +} +if(_3a.onclick){ +if(typeof _3a.onclick=="string"){ +_3d.attr("onclick",_3a.onclick); +}else{ +_3d[0].onclick=eval(_3a.onclick); +} +} +if(_3a.handler){ +_3d[0].onclick=eval(_3a.handler); +} +if(_3a.disabled){ +_d(_39,_3d[0],true); +} +_e(_39,_3d); +_10(_39,_3b); +_f(_39,_3b); +}; +function _3e(_3f,_40){ +function _41(el){ +if(el.submenu){ +el.submenu.children("div.menu-item").each(function(){ +_41(this); +}); +var _42=el.submenu[0].shadow; +if(_42){ +_42.remove(); +} +el.submenu.remove(); +} +$(el).remove(); +}; +_41(_40); +}; +function _43(_44){ +$(_44).children("div.menu-item").each(function(){ +_3e(_44,this); +}); +if(_44.shadow){ +_44.shadow.remove(); +} +$(_44).remove(); +}; +$.fn.menu=function(_45,_46){ +if(typeof _45=="string"){ +return $.fn.menu.methods[_45](this,_46); +} +_45=_45||{}; +return this.each(function(){ +var _47=$.data(this,"menu"); +if(_47){ +$.extend(_47.options,_45); +}else{ +_47=$.data(this,"menu",{options:$.extend({},$.fn.menu.defaults,$.fn.menu.parseOptions(this),_45)}); +_1(this); +} +$(this).css({left:_47.options.left,top:_47.options.top}); +}); +}; +$.fn.menu.methods={options:function(jq){ +return $.data(jq[0],"menu").options; +},show:function(jq,pos){ +return jq.each(function(){ +_25(this,pos); +}); +},hide:function(jq){ +return jq.each(function(){ +_1b(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_43(this); +}); +},setText:function(jq,_48){ +return jq.each(function(){ +$(_48.target).children("div.menu-text").html(_48.text); +}); +},setIcon:function(jq,_49){ +return jq.each(function(){ +$(_49.target).children("div.menu-icon").remove(); +if(_49.iconCls){ +$("
                                          ").addClass(_49.iconCls).appendTo(_49.target); +} +}); +},getItem:function(jq,_4a){ +var t=$(_4a); +var _4b={target:_4a,id:t.attr("id"),text:$.trim(t.children("div.menu-text").html()),disabled:t.hasClass("menu-item-disabled"),name:_4a.itemName,href:_4a.itemHref,onclick:_4a.onclick}; +var _4c=t.children("div.menu-icon"); +if(_4c.length){ +var cc=[]; +var aa=_4c.attr("class").split(" "); +for(var i=0;i").addClass(_3.cls.arrow).appendTo(_5); +$("").addClass("m-btn-line").appendTo(_5); +if(_3.menu){ +$(_3.menu).menu(); +var _6=$(_3.menu).menu("options"); +var _7=_6.onShow; +var _8=_6.onHide; +$.extend(_6,{onShow:function(){ +var _9=$(this).menu("options"); +var _a=$(_9.alignTo); +var _b=_a.menubutton("options"); +_a.addClass((_b.plain==true)?_b.cls.btn2:_b.cls.btn1); +_7.call(this); +},onHide:function(){ +var _c=$(this).menu("options"); +var _d=$(_c.alignTo); +var _e=_d.menubutton("options"); +_d.removeClass((_e.plain==true)?_e.cls.btn2:_e.cls.btn1); +_8.call(this); +}}); +} +_f(_2,_3.disabled); +}; +function _f(_10,_11){ +var _12=$.data(_10,"menubutton").options; +_12.disabled=_11; +var btn=$(_10); +var t=btn.find("."+_12.cls.trigger); +if(!t.length){ +t=btn; +} +t.unbind(".menubutton"); +if(_11){ +btn.linkbutton("disable"); +}else{ +btn.linkbutton("enable"); +var _13=null; +t.bind("click.menubutton",function(){ +_14(_10); +return false; +}).bind("mouseenter.menubutton",function(){ +_13=setTimeout(function(){ +_14(_10); +},_12.duration); +return false; +}).bind("mouseleave.menubutton",function(){ +if(_13){ +clearTimeout(_13); +} +}); +} +}; +function _14(_15){ +var _16=$.data(_15,"menubutton").options; +if(_16.disabled||!_16.menu){ +return; +} +$("body>div.menu-top").menu("hide"); +var btn=$(_15); +var mm=$(_16.menu); +if(mm.length){ +mm.menu("options").alignTo=btn; +mm.menu("show",{alignTo:btn,align:_16.menuAlign}); +} +btn.blur(); +}; +$.fn.menubutton=function(_17,_18){ +if(typeof _17=="string"){ +var _19=$.fn.menubutton.methods[_17]; +if(_19){ +return _19(this,_18); +}else{ +return this.linkbutton(_17,_18); +} +} +_17=_17||{}; +return this.each(function(){ +var _1a=$.data(this,"menubutton"); +if(_1a){ +$.extend(_1a.options,_17); +}else{ +$.data(this,"menubutton",{options:$.extend({},$.fn.menubutton.defaults,$.fn.menubutton.parseOptions(this),_17)}); +$(this).removeAttr("disabled"); +} +_1(this); +}); +}; +$.fn.menubutton.methods={options:function(jq){ +var _1b=jq.linkbutton("options"); +var _1c=$.data(jq[0],"menubutton").options; +_1c.toggle=_1b.toggle; +_1c.selected=_1b.selected; +return _1c; +},enable:function(jq){ +return jq.each(function(){ +_f(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_f(this,true); +}); +},destroy:function(jq){ +return jq.each(function(){ +var _1d=$(this).menubutton("options"); +if(_1d.menu){ +$(_1d.menu).menu("destroy"); +} +$(this).remove(); +}); +}}; +$.fn.menubutton.parseOptions=function(_1e){ +var t=$(_1e); +return $.extend({},$.fn.linkbutton.parseOptions(_1e),$.parser.parseOptions(_1e,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.menubutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,menuAlign:"left",duration:100,cls:{btn1:"m-btn-active",btn2:"m-btn-plain-active",arrow:"m-btn-downarrow",trigger:"m-btn"}}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.messager.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.messager.js new file mode 100644 index 0000000..e68fb47 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.messager.js @@ -0,0 +1,215 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(el,_2,_3,_4){ +var _5=$(el).window("window"); +if(!_5){ +return; +} +switch(_2){ +case null: +_5.show(); +break; +case "slide": +_5.slideDown(_3); +break; +case "fade": +_5.fadeIn(_3); +break; +case "show": +_5.show(_3); +break; +} +var _6=null; +if(_4>0){ +_6=setTimeout(function(){ +_7(el,_2,_3); +},_4); +} +_5.hover(function(){ +if(_6){ +clearTimeout(_6); +} +},function(){ +if(_4>0){ +_6=setTimeout(function(){ +_7(el,_2,_3); +},_4); +} +}); +}; +function _7(el,_8,_9){ +if(el.locked==true){ +return; +} +el.locked=true; +var _a=$(el).window("window"); +if(!_a){ +return; +} +switch(_8){ +case null: +_a.hide(); +break; +case "slide": +_a.slideUp(_9); +break; +case "fade": +_a.fadeOut(_9); +break; +case "show": +_a.hide(_9); +break; +} +setTimeout(function(){ +$(el).window("destroy"); +},_9); +}; +function _b(_c){ +var _d=$.extend({},$.fn.window.defaults,{collapsible:false,minimizable:false,maximizable:false,shadow:false,draggable:false,resizable:false,closed:true,style:{left:"",top:"",right:0,zIndex:$.fn.window.defaults.zIndex++,bottom:-document.body.scrollTop-document.documentElement.scrollTop},onBeforeOpen:function(){ +_1(this,_d.showType,_d.showSpeed,_d.timeout); +return false; +},onBeforeClose:function(){ +_7(this,_d.showType,_d.showSpeed); +return false; +}},{title:"",width:250,height:100,showType:"slide",showSpeed:600,msg:"",timeout:4000},_c); +_d.style.zIndex=$.fn.window.defaults.zIndex++; +var _e=$("
                                          ").html(_d.msg).appendTo("body"); +_e.window(_d); +_e.window("window").css(_d.style); +_e.window("open"); +return _e; +}; +function _f(_10,_11,_12){ +var win=$("
                                          ").appendTo("body"); +win.append(_11); +if(_12){ +var tb=$("
                                          ").appendTo(win); +for(var _13 in _12){ +$("").attr("href","javascript:void(0)").text(_13).css("margin-left",10).bind("click",eval(_12[_13])).appendTo(tb).linkbutton(); +} +} +win.window({title:_10,noheader:(_10?false:true),width:300,height:"auto",modal:true,collapsible:false,minimizable:false,maximizable:false,resizable:false,onClose:function(){ +setTimeout(function(){ +win.window("destroy"); +},100); +}}); +win.window("window").addClass("messager-window"); +win.children("div.messager-button").children("a:first").focus(); +return win; +}; +$.messager={show:function(_14){ +return _b(_14); +},alert:function(_15,msg,_16,fn){ +var _17="
                                          "+msg+"
                                          "; +switch(_16){ +case "error": +_17="
                                          "+_17; +break; +case "info": +_17="
                                          "+_17; +break; +case "question": +_17="
                                          "+_17; +break; +case "warning": +_17="
                                          "+_17; +break; +} +_17+="
                                          "; +var _18={}; +_18[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn(); +return false; +} +}; +var win=_f(_15,_17,_18); +return win; +},confirm:function(_19,msg,fn){ +var _1a="
                                          "+"
                                          "+msg+"
                                          "+"
                                          "; +var _1b={}; +_1b[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn(true); +return false; +} +}; +_1b[$.messager.defaults.cancel]=function(){ +win.window("close"); +if(fn){ +fn(false); +return false; +} +}; +var win=_f(_19,_1a,_1b); +return win; +},prompt:function(_1c,msg,fn){ +var _1d="
                                          "+"
                                          "+msg+"
                                          "+"
                                          "+"
                                          "+"
                                          "; +var _1e={}; +_1e[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn($(".messager-input",win).val()); +return false; +} +}; +_1e[$.messager.defaults.cancel]=function(){ +win.window("close"); +if(fn){ +fn(); +return false; +} +}; +var win=_f(_1c,_1d,_1e); +win.children("input.messager-input").focus(); +return win; +},progress:function(_1f){ +var _20={bar:function(){ +return $("body>div.messager-window").find("div.messager-p-bar"); +},close:function(){ +var win=$("body>div.messager-window>div.messager-body:has(div.messager-progress)"); +if(win.length){ +win.window("close"); +} +}}; +if(typeof _1f=="string"){ +var _21=_20[_1f]; +return _21(); +} +var _22=$.extend({title:"",msg:"",text:undefined,interval:300},_1f||{}); +var _23="
                                          "; +var win=_f(_22.title,_23,null); +win.find("div.messager-p-msg").html(_22.msg); +var bar=win.find("div.messager-p-bar"); +bar.progressbar({text:_22.text}); +win.window({closable:false,onClose:function(){ +if(this.timer){ +clearInterval(this.timer); +} +$(this).window("destroy"); +}}); +if(_22.interval){ +win[0].timer=setInterval(function(){ +var v=bar.progressbar("getValue"); +v+=10; +if(v>100){ +v=0; +} +bar.progressbar("setValue",v); +},_22.interval); +} +return win; +}}; +$.messager.defaults={ok:"Ok",cancel:"Cancel"}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.numberbox.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.numberbox.js new file mode 100644 index 0000000..709379d --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.numberbox.js @@ -0,0 +1,243 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("numberbox numberbox-f"); +var v=$("").insertAfter(_2); +var _3=$(_2).attr("name"); +if(_3){ +v.attr("name",_3); +$(_2).removeAttr("name").attr("numberboxName",_3); +} +return v; +}; +function _4(_5){ +var _6=$.data(_5,"numberbox").options; +var fn=_6.onChange; +_6.onChange=function(){ +}; +_7(_5,_6.parser.call(_5,_6.value)); +_6.onChange=fn; +_6.originalValue=_8(_5); +}; +function _9(_a,_b){ +var _c=$.data(_a,"numberbox").options; +if(_b){ +_c.width=_b; +} +var t=$(_a); +var _d=$("
                                          ").insertBefore(t); +t.appendTo("body"); +if(isNaN(_c.width)){ +_c.width=t.outerWidth(); +} +t._outerWidth(_c.width)._outerHeight(_c.height); +t.css("line-height",t.height()+"px"); +t.insertAfter(_d); +_d.remove(); +}; +function _8(_e){ +return $.data(_e,"numberbox").field.val(); +}; +function _7(_f,_10){ +var _11=$.data(_f,"numberbox"); +var _12=_11.options; +var _13=_8(_f); +_10=_12.parser.call(_f,_10); +_12.value=_10; +_11.field.val(_10); +$(_f).val(_12.formatter.call(_f,_10)); +if(_13!=_10){ +_12.onChange.call(_f,_10,_13); +} +}; +function _14(_15){ +var _16=$.data(_15,"numberbox").options; +$(_15).unbind(".numberbox").bind("keypress.numberbox",function(e){ +return _16.filter.call(_15,e); +}).bind("blur.numberbox",function(){ +_7(_15,$(this).val()); +$(this).val(_16.formatter.call(_15,_8(_15))); +}).bind("focus.numberbox",function(){ +var vv=_8(_15); +if(vv!=_16.parser.call(_15,$(this).val())){ +$(this).val(_16.formatter.call(_15,vv)); +} +}); +}; +function _17(_18){ +if($.fn.validatebox){ +var _19=$.data(_18,"numberbox").options; +$(_18).validatebox(_19); +} +}; +function _1a(_1b,_1c){ +var _1d=$.data(_1b,"numberbox").options; +if(_1c){ +_1d.disabled=true; +$(_1b).attr("disabled",true); +}else{ +_1d.disabled=false; +$(_1b).removeAttr("disabled"); +} +}; +$.fn.numberbox=function(_1e,_1f){ +if(typeof _1e=="string"){ +var _20=$.fn.numberbox.methods[_1e]; +if(_20){ +return _20(this,_1f); +}else{ +return this.validatebox(_1e,_1f); +} +} +_1e=_1e||{}; +return this.each(function(){ +var _21=$.data(this,"numberbox"); +if(_21){ +$.extend(_21.options,_1e); +}else{ +_21=$.data(this,"numberbox",{options:$.extend({},$.fn.numberbox.defaults,$.fn.numberbox.parseOptions(this),_1e),field:_1(this)}); +$(this).removeAttr("disabled"); +$(this).css({imeMode:"disabled"}); +} +_1a(this,_21.options.disabled); +_9(this); +_14(this); +_17(this); +_4(this); +}); +}; +$.fn.numberbox.methods={options:function(jq){ +return $.data(jq[0],"numberbox").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"numberbox").field.remove(); +$(this).validatebox("destroy"); +$(this).remove(); +}); +},resize:function(jq,_22){ +return jq.each(function(){ +_9(this,_22); +}); +},disable:function(jq){ +return jq.each(function(){ +_1a(this,true); +}); +},enable:function(jq){ +return jq.each(function(){ +_1a(this,false); +}); +},fix:function(jq){ +return jq.each(function(){ +_7(this,$(this).val()); +}); +},setValue:function(jq,_23){ +return jq.each(function(){ +_7(this,_23); +}); +},getValue:function(jq){ +return _8(jq[0]); +},clear:function(jq){ +return jq.each(function(){ +var _24=$.data(this,"numberbox"); +_24.field.val(""); +$(this).val(""); +}); +},reset:function(jq){ +return jq.each(function(){ +var _25=$(this).numberbox("options"); +$(this).numberbox("setValue",_25.originalValue); +}); +}}; +$.fn.numberbox.parseOptions=function(_26){ +var t=$(_26); +return $.extend({},$.fn.validatebox.parseOptions(_26),$.parser.parseOptions(_26,["width","height","decimalSeparator","groupSeparator","suffix",{min:"number",max:"number",precision:"number"}]),{prefix:(t.attr("prefix")?t.attr("prefix"):undefined),disabled:(t.attr("disabled")?true:undefined),value:(t.val()||undefined)}); +}; +$.fn.numberbox.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,disabled:false,value:"",min:null,max:null,precision:0,decimalSeparator:".",groupSeparator:"",prefix:"",suffix:"",filter:function(e){ +var _27=$(this).numberbox("options"); +if(e.which==45){ +return ($(this).val().indexOf("-")==-1?true:false); +} +var c=String.fromCharCode(e.which); +if(c==_27.decimalSeparator){ +return ($(this).val().indexOf(c)==-1?true:false); +}else{ +if(c==_27.groupSeparator){ +return true; +}else{ +if((e.which>=48&&e.which<=57&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0||e.which==8){ +return true; +}else{ +if(e.ctrlKey==true&&(e.which==99||e.which==118)){ +return true; +}else{ +return false; +} +} +} +} +},formatter:function(_28){ +if(!_28){ +return _28; +} +_28=_28+""; +var _29=$(this).numberbox("options"); +var s1=_28,s2=""; +var _2a=_28.indexOf("."); +if(_2a>=0){ +s1=_28.substring(0,_2a); +s2=_28.substring(_2a+1,_28.length); +} +if(_29.groupSeparator){ +var p=/(\d+)(\d{3})/; +while(p.test(s1)){ +s1=s1.replace(p,"$1"+_29.groupSeparator+"$2"); +} +} +if(s2){ +return _29.prefix+s1+_29.decimalSeparator+s2+_29.suffix; +}else{ +return _29.prefix+s1+_29.suffix; +} +},parser:function(s){ +s=s+""; +var _2b=$(this).numberbox("options"); +if(parseFloat(s)!=s){ +if(_2b.prefix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(_2b.prefix),"g"),"")); +} +if(_2b.suffix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(_2b.suffix),"g"),"")); +} +if(_2b.groupSeparator){ +s=$.trim(s.replace(new RegExp("\\"+_2b.groupSeparator,"g"),"")); +} +if(_2b.decimalSeparator){ +s=$.trim(s.replace(new RegExp("\\"+_2b.decimalSeparator,"g"),".")); +} +s=s.replace(/\s/g,""); +} +var val=parseFloat(s).toFixed(_2b.precision); +if(isNaN(val)){ +val=""; +}else{ +if(typeof (_2b.min)=="number"&&val<_2b.min){ +val=_2b.min.toFixed(_2b.precision); +}else{ +if(typeof (_2b.max)=="number"&&val>_2b.max){ +val=_2b.max.toFixed(_2b.precision); +} +} +} +return val; +},onChange:function(_2c,_2d){ +}}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.numberspinner.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.numberspinner.js new file mode 100644 index 0000000..97b4097 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.numberspinner.js @@ -0,0 +1,73 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("numberspinner-f"); +var _3=$.data(_2,"numberspinner").options; +$(_2).spinner(_3).numberbox($.extend({},_3,{width:"auto"})); +}; +function _4(_5,_6){ +var _7=$.data(_5,"numberspinner").options; +var v=parseFloat($(_5).numberbox("getValue")||_7.value)||0; +if(_6==true){ +v-=_7.increment; +}else{ +v+=_7.increment; +} +$(_5).numberbox("setValue",v); +}; +$.fn.numberspinner=function(_8,_9){ +if(typeof _8=="string"){ +var _a=$.fn.numberspinner.methods[_8]; +if(_a){ +return _a(this,_9); +}else{ +return this.spinner(_8,_9); +} +} +_8=_8||{}; +return this.each(function(){ +var _b=$.data(this,"numberspinner"); +if(_b){ +$.extend(_b.options,_8); +}else{ +$.data(this,"numberspinner",{options:$.extend({},$.fn.numberspinner.defaults,$.fn.numberspinner.parseOptions(this),_8)}); +} +_1(this); +}); +}; +$.fn.numberspinner.methods={options:function(jq){ +var _c=$.data(jq[0],"numberspinner").options; +return $.extend(_c,{value:jq.numberbox("getValue"),originalValue:jq.numberbox("options").originalValue}); +},setValue:function(jq,_d){ +return jq.each(function(){ +$(this).numberbox("setValue",_d); +}); +},getValue:function(jq){ +return jq.numberbox("getValue"); +},clear:function(jq){ +return jq.each(function(){ +$(this).spinner("clear"); +$(this).numberbox("clear"); +}); +},reset:function(jq){ +return jq.each(function(){ +var _e=$(this).numberspinner("options"); +$(this).numberspinner("setValue",_e.originalValue); +}); +}}; +$.fn.numberspinner.parseOptions=function(_f){ +return $.extend({},$.fn.spinner.parseOptions(_f),$.fn.numberbox.parseOptions(_f),{}); +}; +$.fn.numberspinner.defaults=$.extend({},$.fn.spinner.defaults,$.fn.numberbox.defaults,{spin:function(_10){ +_4(this,_10); +}}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.pagination.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.pagination.js new file mode 100644 index 0000000..0b4ddfd --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.pagination.js @@ -0,0 +1,282 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"pagination"); +var _4=_3.options; +var bb=_3.bb={}; +var _5=$(_2).addClass("pagination").html("
                                          "); +var tr=_5.find("tr"); +var aa=$.extend([],_4.layout); +if(!_4.showPageList){ +_6(aa,"list"); +} +if(!_4.showRefresh){ +_6(aa,"refresh"); +} +if(aa[0]=="sep"){ +aa.shift(); +} +if(aa[aa.length-1]=="sep"){ +aa.pop(); +} +for(var _7=0;_7"); +ps.bind("change",function(){ +_4.pageSize=parseInt($(this).val()); +_4.onChangePageSize.call(_2,_4.pageSize); +_10(_2,_4.pageNumber); +}); +for(var i=0;i<_4.pageList.length;i++){ +$("").text(_4.pageList[i]).appendTo(ps); +} +$("").append(ps).appendTo(tr); +}else{ +if(_8=="sep"){ +$("
                                          ").appendTo(tr); +}else{ +if(_8=="first"){ +bb.first=_9("first"); +}else{ +if(_8=="prev"){ +bb.prev=_9("prev"); +}else{ +if(_8=="next"){ +bb.next=_9("next"); +}else{ +if(_8=="last"){ +bb.last=_9("last"); +}else{ +if(_8=="manual"){ +$("").html(_4.beforePageText).appendTo(tr).wrap(""); +bb.num=$("").appendTo(tr).wrap(""); +bb.num.unbind(".pagination").bind("keydown.pagination",function(e){ +if(e.keyCode==13){ +var _a=parseInt($(this).val())||1; +_10(_2,_a); +return false; +} +}); +bb.after=$("").appendTo(tr).wrap(""); +}else{ +if(_8=="refresh"){ +bb.refresh=_9("refresh"); +}else{ +if(_8=="links"){ +$("").appendTo(tr); +} +} +} +} +} +} +} +} +} +} +if(_4.buttons){ +$("
                                          ").appendTo(tr); +if($.isArray(_4.buttons)){ +for(var i=0;i<_4.buttons.length;i++){ +var _b=_4.buttons[i]; +if(_b=="-"){ +$("
                                          ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var a=$("").appendTo(td); +a[0].onclick=eval(_b.handler||function(){ +}); +a.linkbutton($.extend({},_b,{plain:true})); +} +} +}else{ +var td=$("").appendTo(tr); +$(_4.buttons).appendTo(td).show(); +} +} +$("
                                          ").appendTo(_5); +$("
                                          ").appendTo(_5); +function _9(_c){ +var _d=_4.nav[_c]; +var a=$("").appendTo(tr); +a.wrap(""); +a.linkbutton({iconCls:_d.iconCls,plain:true}).unbind(".pagination").bind("click.pagination",function(){ +_d.handler.call(_2); +}); +return a; +}; +function _6(aa,_e){ +var _f=$.inArray(_e,aa); +if(_f>=0){ +aa.splice(_f,1); +} +return aa; +}; +}; +function _10(_11,_12){ +var _13=$.data(_11,"pagination").options; +_14(_11,{pageNumber:_12}); +_13.onSelectPage.call(_11,_13.pageNumber,_13.pageSize); +}; +function _14(_15,_16){ +var _17=$.data(_15,"pagination"); +var _18=_17.options; +var bb=_17.bb; +$.extend(_18,_16||{}); +var ps=$(_15).find("select.pagination-page-list"); +if(ps.length){ +ps.val(_18.pageSize+""); +_18.pageSize=parseInt(ps.val()); +} +var _19=Math.ceil(_18.total/_18.pageSize)||1; +if(_18.pageNumber<1){ +_18.pageNumber=1; +} +if(_18.pageNumber>_19){ +_18.pageNumber=_19; +} +if(bb.num){ +bb.num.val(_18.pageNumber); +} +if(bb.after){ +bb.after.html(_18.afterPageText.replace(/{pages}/,_19)); +} +var td=$(_15).find("td.pagination-links"); +if(td.length){ +td.empty(); +var _1a=_18.pageNumber-Math.floor(_18.links/2); +if(_1a<1){ +_1a=1; +} +var _1b=_1a+_18.links-1; +if(_1b>_19){ +_1b=_19; +} +_1a=_1b-_18.links+1; +if(_1a<1){ +_1a=1; +} +for(var i=_1a;i<=_1b;i++){ +var a=$("").appendTo(td); +a.linkbutton({plain:true,text:i}); +if(i==_18.pageNumber){ +a.linkbutton("select"); +}else{ +a.unbind(".pagination").bind("click.pagination",{pageNumber:i},function(e){ +_10(_15,e.data.pageNumber); +}); +} +} +} +var _1c=_18.displayMsg; +_1c=_1c.replace(/{from}/,_18.total==0?0:_18.pageSize*(_18.pageNumber-1)+1); +_1c=_1c.replace(/{to}/,Math.min(_18.pageSize*(_18.pageNumber),_18.total)); +_1c=_1c.replace(/{total}/,_18.total); +$(_15).find("div.pagination-info").html(_1c); +if(bb.first){ +bb.first.linkbutton({disabled:(_18.pageNumber==1)}); +} +if(bb.prev){ +bb.prev.linkbutton({disabled:(_18.pageNumber==1)}); +} +if(bb.next){ +bb.next.linkbutton({disabled:(_18.pageNumber==_19)}); +} +if(bb.last){ +bb.last.linkbutton({disabled:(_18.pageNumber==_19)}); +} +_1d(_15,_18.loading); +}; +function _1d(_1e,_1f){ +var _20=$.data(_1e,"pagination"); +var _21=_20.options; +_21.loading=_1f; +if(_21.showRefresh&&_20.bb.refresh){ +_20.bb.refresh.linkbutton({iconCls:(_21.loading?"pagination-loading":"pagination-load")}); +} +}; +$.fn.pagination=function(_22,_23){ +if(typeof _22=="string"){ +return $.fn.pagination.methods[_22](this,_23); +} +_22=_22||{}; +return this.each(function(){ +var _24; +var _25=$.data(this,"pagination"); +if(_25){ +_24=$.extend(_25.options,_22); +}else{ +_24=$.extend({},$.fn.pagination.defaults,$.fn.pagination.parseOptions(this),_22); +$.data(this,"pagination",{options:_24}); +} +_1(this); +_14(this); +}); +}; +$.fn.pagination.methods={options:function(jq){ +return $.data(jq[0],"pagination").options; +},loading:function(jq){ +return jq.each(function(){ +_1d(this,true); +}); +},loaded:function(jq){ +return jq.each(function(){ +_1d(this,false); +}); +},refresh:function(jq,_26){ +return jq.each(function(){ +_14(this,_26); +}); +},select:function(jq,_27){ +return jq.each(function(){ +_10(this,_27); +}); +}}; +$.fn.pagination.parseOptions=function(_28){ +var t=$(_28); +return $.extend({},$.parser.parseOptions(_28,[{total:"number",pageSize:"number",pageNumber:"number",links:"number"},{loading:"boolean",showPageList:"boolean",showRefresh:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined)}); +}; +$.fn.pagination.defaults={total:1,pageSize:10,pageNumber:1,pageList:[10,20,30,50],loading:false,buttons:null,showPageList:true,showRefresh:true,links:10,layout:["list","sep","first","prev","sep","manual","sep","next","last","sep","refresh"],onSelectPage:function(_29,_2a){ +},onBeforeRefresh:function(_2b,_2c){ +},onRefresh:function(_2d,_2e){ +},onChangePageSize:function(_2f){ +},beforePageText:"Page",afterPageText:"of {pages}",displayMsg:"Displaying {from} to {to} of {total} items",nav:{first:{iconCls:"pagination-first",handler:function(){ +var _30=$(this).pagination("options"); +if(_30.pageNumber>1){ +$(this).pagination("select",1); +} +}},prev:{iconCls:"pagination-prev",handler:function(){ +var _31=$(this).pagination("options"); +if(_31.pageNumber>1){ +$(this).pagination("select",_31.pageNumber-1); +} +}},next:{iconCls:"pagination-next",handler:function(){ +var _32=$(this).pagination("options"); +var _33=Math.ceil(_32.total/_32.pageSize); +if(_32.pageNumber<_33){ +$(this).pagination("select",_32.pageNumber+1); +} +}},last:{iconCls:"pagination-last",handler:function(){ +var _34=$(this).pagination("options"); +var _35=Math.ceil(_34.total/_34.pageSize); +if(_34.pageNumber<_35){ +$(this).pagination("select",_35); +} +}},refresh:{iconCls:"pagination-refresh",handler:function(){ +var _36=$(this).pagination("options"); +if(_36.onBeforeRefresh.call(this,_36.pageNumber,_36.pageSize)!=false){ +$(this).pagination("select",_36.pageNumber); +_36.onRefresh.call(this,_36.pageNumber,_36.pageSize); +} +}}}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.panel.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.panel.js new file mode 100644 index 0000000..18a5d5f --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.panel.js @@ -0,0 +1,541 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +$.fn._remove=function(){ +return this.each(function(){ +$(this).remove(); +try{ +this.outerHTML=""; +} +catch(err){ +} +}); +}; +function _1(_2){ +_2._remove(); +}; +function _3(_4,_5){ +var _6=$.data(_4,"panel").options; +var _7=$.data(_4,"panel").panel; +var _8=_7.children("div.panel-header"); +var _9=_7.children("div.panel-body"); +if(_5){ +$.extend(_6,{width:_5.width,height:_5.height,left:_5.left,top:_5.top}); +} +_6.fit?$.extend(_6,_7._fit()):_7._fit(false); +_7.css({left:_6.left,top:_6.top}); +if(!isNaN(_6.width)){ +_7._outerWidth(_6.width); +}else{ +_7.width("auto"); +} +_8.add(_9)._outerWidth(_7.width()); +if(!isNaN(_6.height)){ +_7._outerHeight(_6.height); +_9._outerHeight(_7.height()-_8._outerHeight()); +}else{ +_9.height("auto"); +} +_7.css("height",""); +_6.onResize.apply(_4,[_6.width,_6.height]); +$(_4).find(">div:visible,>form>div:visible").triggerHandler("_resize"); +}; +function _a(_b,_c){ +var _d=$.data(_b,"panel").options; +var _e=$.data(_b,"panel").panel; +if(_c){ +if(_c.left!=null){ +_d.left=_c.left; +} +if(_c.top!=null){ +_d.top=_c.top; +} +} +_e.css({left:_d.left,top:_d.top}); +_d.onMove.apply(_b,[_d.left,_d.top]); +}; +function _f(_10){ +$(_10).addClass("panel-body"); +var _11=$("
                                          ").insertBefore(_10); +_11[0].appendChild(_10); +_11.bind("_resize",function(){ +var _12=$.data(_10,"panel").options; +if(_12.fit==true){ +_3(_10); +} +return false; +}); +return _11; +}; +function _13(_14){ +var _15=$.data(_14,"panel").options; +var _16=$.data(_14,"panel").panel; +if(_15.tools&&typeof _15.tools=="string"){ +_16.find(">div.panel-header>div.panel-tool .panel-tool-a").appendTo(_15.tools); +} +_1(_16.children("div.panel-header")); +if(_15.title&&!_15.noheader){ +var _17=$("
                                          "+_15.title+"
                                          ").prependTo(_16); +if(_15.iconCls){ +_17.find(".panel-title").addClass("panel-with-icon"); +$("
                                          ").addClass(_15.iconCls).appendTo(_17); +} +var _18=$("
                                          ").appendTo(_17); +_18.bind("click",function(e){ +e.stopPropagation(); +}); +if(_15.tools){ +if($.isArray(_15.tools)){ +for(var i=0;i<_15.tools.length;i++){ +var t=$("").addClass(_15.tools[i].iconCls).appendTo(_18); +if(_15.tools[i].handler){ +t.bind("click",eval(_15.tools[i].handler)); +} +} +}else{ +$(_15.tools).children().each(function(){ +$(this).addClass($(this).attr("iconCls")).addClass("panel-tool-a").appendTo(_18); +}); +} +} +if(_15.collapsible){ +$("").appendTo(_18).bind("click",function(){ +if(_15.collapsed==true){ +_3e(_14,true); +}else{ +_2e(_14,true); +} +return false; +}); +} +if(_15.minimizable){ +$("").appendTo(_18).bind("click",function(){ +_49(_14); +return false; +}); +} +if(_15.maximizable){ +$("").appendTo(_18).bind("click",function(){ +if(_15.maximized==true){ +_4d(_14); +}else{ +_2d(_14); +} +return false; +}); +} +if(_15.closable){ +$("").appendTo(_18).bind("click",function(){ +_19(_14); +return false; +}); +} +_16.children("div.panel-body").removeClass("panel-body-noheader"); +}else{ +_16.children("div.panel-body").addClass("panel-body-noheader"); +} +}; +function _1a(_1b,_1c){ +var _1d=$.data(_1b,"panel"); +var _1e=_1d.options; +if(_1f){ +_1e.queryParams=_1c; +} +if(_1e.href){ +if(!_1d.isLoaded||!_1e.cache){ +var _1f=$.extend({},_1e.queryParams); +if(_1e.onBeforeLoad.call(_1b,_1f)==false){ +return; +} +_1d.isLoaded=false; +_20(_1b); +if(_1e.loadingMessage){ +$(_1b).html($("
                                          ").html(_1e.loadingMessage)); +} +_1e.loader.call(_1b,_1f,function(_21){ +_22(_1e.extractor.call(_1b,_21)); +_1e.onLoad.apply(_1b,arguments); +_1d.isLoaded=true; +},function(){ +_1e.onLoadError.apply(_1b,arguments); +}); +} +}else{ +if(_1e.content){ +if(!_1d.isLoaded){ +_20(_1b); +_22(_1e.content); +_1d.isLoaded=true; +} +} +} +function _22(_23){ +$(_1b).html(_23); +$.parser.parse($(_1b)); +}; +}; +function _20(_24){ +var t=$(_24); +t.find(".combo-f").each(function(){ +$(this).combo("destroy"); +}); +t.find(".m-btn").each(function(){ +$(this).menubutton("destroy"); +}); +t.find(".s-btn").each(function(){ +$(this).splitbutton("destroy"); +}); +t.find(".tooltip-f").each(function(){ +$(this).tooltip("destroy"); +}); +t.children("div").each(function(){ +$(this)._fit(false); +}); +}; +function _25(_26){ +$(_26).find("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible").each(function(){ +$(this).triggerHandler("_resize",[true]); +}); +}; +function _27(_28,_29){ +var _2a=$.data(_28,"panel").options; +var _2b=$.data(_28,"panel").panel; +if(_29!=true){ +if(_2a.onBeforeOpen.call(_28)==false){ +return; +} +} +_2b.show(); +_2a.closed=false; +_2a.minimized=false; +var _2c=_2b.children("div.panel-header").find("a.panel-tool-restore"); +if(_2c.length){ +_2a.maximized=true; +} +_2a.onOpen.call(_28); +if(_2a.maximized==true){ +_2a.maximized=false; +_2d(_28); +} +if(_2a.collapsed==true){ +_2a.collapsed=false; +_2e(_28); +} +if(!_2a.collapsed){ +_1a(_28); +_25(_28); +} +}; +function _19(_2f,_30){ +var _31=$.data(_2f,"panel").options; +var _32=$.data(_2f,"panel").panel; +if(_30!=true){ +if(_31.onBeforeClose.call(_2f)==false){ +return; +} +} +_32._fit(false); +_32.hide(); +_31.closed=true; +_31.onClose.call(_2f); +}; +function _33(_34,_35){ +var _36=$.data(_34,"panel").options; +var _37=$.data(_34,"panel").panel; +if(_35!=true){ +if(_36.onBeforeDestroy.call(_34)==false){ +return; +} +} +_20(_34); +_1(_37); +_36.onDestroy.call(_34); +}; +function _2e(_38,_39){ +var _3a=$.data(_38,"panel").options; +var _3b=$.data(_38,"panel").panel; +var _3c=_3b.children("div.panel-body"); +var _3d=_3b.children("div.panel-header").find("a.panel-tool-collapse"); +if(_3a.collapsed==true){ +return; +} +_3c.stop(true,true); +if(_3a.onBeforeCollapse.call(_38)==false){ +return; +} +_3d.addClass("panel-tool-expand"); +if(_39==true){ +_3c.slideUp("normal",function(){ +_3a.collapsed=true; +_3a.onCollapse.call(_38); +}); +}else{ +_3c.hide(); +_3a.collapsed=true; +_3a.onCollapse.call(_38); +} +}; +function _3e(_3f,_40){ +var _41=$.data(_3f,"panel").options; +var _42=$.data(_3f,"panel").panel; +var _43=_42.children("div.panel-body"); +var _44=_42.children("div.panel-header").find("a.panel-tool-collapse"); +if(_41.collapsed==false){ +return; +} +_43.stop(true,true); +if(_41.onBeforeExpand.call(_3f)==false){ +return; +} +_44.removeClass("panel-tool-expand"); +if(_40==true){ +_43.slideDown("normal",function(){ +_41.collapsed=false; +_41.onExpand.call(_3f); +_1a(_3f); +_25(_3f); +}); +}else{ +_43.show(); +_41.collapsed=false; +_41.onExpand.call(_3f); +_1a(_3f); +_25(_3f); +} +}; +function _2d(_45){ +var _46=$.data(_45,"panel").options; +var _47=$.data(_45,"panel").panel; +var _48=_47.children("div.panel-header").find("a.panel-tool-max"); +if(_46.maximized==true){ +return; +} +_48.addClass("panel-tool-restore"); +if(!$.data(_45,"panel").original){ +$.data(_45,"panel").original={width:_46.width,height:_46.height,left:_46.left,top:_46.top,fit:_46.fit}; +} +_46.left=0; +_46.top=0; +_46.fit=true; +_3(_45); +_46.minimized=false; +_46.maximized=true; +_46.onMaximize.call(_45); +}; +function _49(_4a){ +var _4b=$.data(_4a,"panel").options; +var _4c=$.data(_4a,"panel").panel; +_4c._fit(false); +_4c.hide(); +_4b.minimized=true; +_4b.maximized=false; +_4b.onMinimize.call(_4a); +}; +function _4d(_4e){ +var _4f=$.data(_4e,"panel").options; +var _50=$.data(_4e,"panel").panel; +var _51=_50.children("div.panel-header").find("a.panel-tool-max"); +if(_4f.maximized==false){ +return; +} +_50.show(); +_51.removeClass("panel-tool-restore"); +$.extend(_4f,$.data(_4e,"panel").original); +_3(_4e); +_4f.minimized=false; +_4f.maximized=false; +$.data(_4e,"panel").original=null; +_4f.onRestore.call(_4e); +}; +function _52(_53){ +var _54=$.data(_53,"panel").options; +var _55=$.data(_53,"panel").panel; +var _56=$(_53).panel("header"); +var _57=$(_53).panel("body"); +_55.css(_54.style); +_55.addClass(_54.cls); +if(_54.border){ +_56.removeClass("panel-header-noborder"); +_57.removeClass("panel-body-noborder"); +}else{ +_56.addClass("panel-header-noborder"); +_57.addClass("panel-body-noborder"); +} +_56.addClass(_54.headerCls); +_57.addClass(_54.bodyCls); +if(_54.id){ +$(_53).attr("id",_54.id); +}else{ +$(_53).attr("id",""); +} +}; +function _58(_59,_5a){ +$.data(_59,"panel").options.title=_5a; +$(_59).panel("header").find("div.panel-title").html(_5a); +}; +var TO=false; +var _5b=true; +$(window).unbind(".panel").bind("resize.panel",function(){ +if(!_5b){ +return; +} +if(TO!==false){ +clearTimeout(TO); +} +TO=setTimeout(function(){ +_5b=false; +var _5c=$("body.layout"); +if(_5c.length){ +_5c.layout("resize"); +}else{ +$("body").children("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible").triggerHandler("_resize"); +} +_5b=true; +TO=false; +},200); +}); +$.fn.panel=function(_5d,_5e){ +if(typeof _5d=="string"){ +return $.fn.panel.methods[_5d](this,_5e); +} +_5d=_5d||{}; +return this.each(function(){ +var _5f=$.data(this,"panel"); +var _60; +if(_5f){ +_60=$.extend(_5f.options,_5d); +_5f.isLoaded=false; +}else{ +_60=$.extend({},$.fn.panel.defaults,$.fn.panel.parseOptions(this),_5d); +$(this).attr("title",""); +_5f=$.data(this,"panel",{options:_60,panel:_f(this),isLoaded:false}); +} +_13(this); +_52(this); +if(_60.doSize==true){ +_5f.panel.css("display","block"); +_3(this); +} +if(_60.closed==true||_60.minimized==true){ +_5f.panel.hide(); +}else{ +_27(this); +} +}); +}; +$.fn.panel.methods={options:function(jq){ +return $.data(jq[0],"panel").options; +},panel:function(jq){ +return $.data(jq[0],"panel").panel; +},header:function(jq){ +return $.data(jq[0],"panel").panel.find(">div.panel-header"); +},body:function(jq){ +return $.data(jq[0],"panel").panel.find(">div.panel-body"); +},setTitle:function(jq,_61){ +return jq.each(function(){ +_58(this,_61); +}); +},open:function(jq,_62){ +return jq.each(function(){ +_27(this,_62); +}); +},close:function(jq,_63){ +return jq.each(function(){ +_19(this,_63); +}); +},destroy:function(jq,_64){ +return jq.each(function(){ +_33(this,_64); +}); +},refresh:function(jq,_65){ +return jq.each(function(){ +var _66=$.data(this,"panel"); +_66.isLoaded=false; +if(_65){ +if(typeof _65=="string"){ +_66.options.href=_65; +}else{ +_66.options.queryParams=_65; +} +} +_1a(this); +}); +},resize:function(jq,_67){ +return jq.each(function(){ +_3(this,_67); +}); +},move:function(jq,_68){ +return jq.each(function(){ +_a(this,_68); +}); +},maximize:function(jq){ +return jq.each(function(){ +_2d(this); +}); +},minimize:function(jq){ +return jq.each(function(){ +_49(this); +}); +},restore:function(jq){ +return jq.each(function(){ +_4d(this); +}); +},collapse:function(jq,_69){ +return jq.each(function(){ +_2e(this,_69); +}); +},expand:function(jq,_6a){ +return jq.each(function(){ +_3e(this,_6a); +}); +}}; +$.fn.panel.parseOptions=function(_6b){ +var t=$(_6b); +return $.extend({},$.parser.parseOptions(_6b,["id","width","height","left","top","title","iconCls","cls","headerCls","bodyCls","tools","href","method",{cache:"boolean",fit:"boolean",border:"boolean",noheader:"boolean"},{collapsible:"boolean",minimizable:"boolean",maximizable:"boolean"},{closable:"boolean",collapsed:"boolean",minimized:"boolean",maximized:"boolean",closed:"boolean"}]),{loadingMessage:(t.attr("loadingMessage")!=undefined?t.attr("loadingMessage"):undefined)}); +}; +$.fn.panel.defaults={id:null,title:null,iconCls:null,width:"auto",height:"auto",left:null,top:null,cls:null,headerCls:null,bodyCls:null,style:{},href:null,cache:true,fit:false,border:true,doSize:true,noheader:false,content:null,collapsible:false,minimizable:false,maximizable:false,closable:false,collapsed:false,minimized:false,maximized:false,closed:false,tools:null,queryParams:{},method:"get",href:null,loadingMessage:"Loading...",loader:function(_6c,_6d,_6e){ +var _6f=$(this).panel("options"); +if(!_6f.href){ +return false; +} +$.ajax({type:_6f.method,url:_6f.href,cache:false,data:_6c,dataType:"html",success:function(_70){ +_6d(_70); +},error:function(){ +_6e.apply(this,arguments); +}}); +},extractor:function(_71){ +var _72=/]*>((.|[\n\r])*)<\/body>/im; +var _73=_72.exec(_71); +if(_73){ +return _73[1]; +}else{ +return _71; +} +},onBeforeLoad:function(_74){ +},onLoad:function(){ +},onLoadError:function(){ +},onBeforeOpen:function(){ +},onOpen:function(){ +},onBeforeClose:function(){ +},onClose:function(){ +},onBeforeDestroy:function(){ +},onDestroy:function(){ +},onResize:function(_75,_76){ +},onMove:function(_77,top){ +},onMaximize:function(){ +},onRestore:function(){ +},onMinimize:function(){ +},onBeforeCollapse:function(){ +},onBeforeExpand:function(){ +},onCollapse:function(){ +},onExpand:function(){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.parser.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.parser.js new file mode 100644 index 0000000..69c2ba8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.parser.js @@ -0,0 +1,216 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +$.parser={auto:true,onComplete:function(_1){ +},plugins:["draggable","droppable","resizable","pagination","tooltip","linkbutton","menu","menubutton","splitbutton","progressbar","tree","combobox","combotree","combogrid","numberbox","validatebox","searchbox","numberspinner","timespinner","calendar","datebox","datetimebox","slider","layout","panel","datagrid","propertygrid","treegrid","tabs","accordion","window","dialog"],parse:function(_2){ +var aa=[]; +for(var i=0;i<$.parser.plugins.length;i++){ +var _3=$.parser.plugins[i]; +var r=$(".easyui-"+_3,_2); +if(r.length){ +if(r[_3]){ +r[_3](); +}else{ +aa.push({name:_3,jq:r}); +} +} +} +if(aa.length&&window.easyloader){ +var _4=[]; +for(var i=0;i
                                          ").appendTo("body"); +d.width(100); +$._boxModel=parseInt(d.width())==100; +d.remove(); +if(!window.easyloader&&$.parser.auto){ +$.parser.parse(); +} +}); +$.fn._outerWidth=function(_c){ +if(_c==undefined){ +if(this[0]==window){ +return this.width()||document.body.clientWidth; +} +return this.outerWidth()||0; +} +return this.each(function(){ +if($._boxModel){ +$(this).width(_c-($(this).outerWidth()-$(this).width())); +}else{ +$(this).width(_c); +} +}); +}; +$.fn._outerHeight=function(_d){ +if(_d==undefined){ +if(this[0]==window){ +return this.height()||document.body.clientHeight; +} +return this.outerHeight()||0; +} +return this.each(function(){ +if($._boxModel){ +$(this).height(_d-($(this).outerHeight()-$(this).height())); +}else{ +$(this).height(_d); +} +}); +}; +$.fn._scrollLeft=function(_e){ +if(_e==undefined){ +return this.scrollLeft(); +}else{ +return this.each(function(){ +$(this).scrollLeft(_e); +}); +} +}; +$.fn._propAttr=$.fn.prop||$.fn.attr; +$.fn._fit=function(_f){ +_f=_f==undefined?true:_f; +var t=this[0]; +var p=(t.tagName=="BODY"?t:this.parent()[0]); +var _10=p.fcount||0; +if(_f){ +if(!t.fitted){ +t.fitted=true; +p.fcount=_10+1; +$(p).addClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").addClass("panel-fit"); +} +} +}else{ +if(t.fitted){ +t.fitted=false; +p.fcount=_10-1; +if(p.fcount==0){ +$(p).removeClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").removeClass("panel-fit"); +} +} +} +} +return {width:$(p).width(),height:$(p).height()}; +}; +})(jQuery); +(function($){ +var _11=null; +var _12=null; +var _13=false; +function _14(e){ +if(e.touches.length!=1){ +return; +} +if(!_13){ +_13=true; +dblClickTimer=setTimeout(function(){ +_13=false; +},500); +}else{ +clearTimeout(dblClickTimer); +_13=false; +_15(e,"dblclick"); +} +_11=setTimeout(function(){ +_15(e,"contextmenu",3); +},1000); +_15(e,"mousedown"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _16(e){ +if(e.touches.length!=1){ +return; +} +if(_11){ +clearTimeout(_11); +} +_15(e,"mousemove"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _17(e){ +if(_11){ +clearTimeout(_11); +} +_15(e,"mouseup"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _15(e,_18,_19){ +var _1a=new $.Event(_18); +_1a.pageX=e.changedTouches[0].pageX; +_1a.pageY=e.changedTouches[0].pageY; +_1a.which=_19||1; +$(e.target).trigger(_1a); +}; +if(document.addEventListener){ +document.addEventListener("touchstart",_14,true); +document.addEventListener("touchmove",_16,true); +document.addEventListener("touchend",_17,true); +} +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.progressbar.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.progressbar.js new file mode 100644 index 0000000..71eae68 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.progressbar.js @@ -0,0 +1,78 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("progressbar"); +$(_2).html("
                                          "); +return $(_2); +}; +function _3(_4,_5){ +var _6=$.data(_4,"progressbar").options; +var _7=$.data(_4,"progressbar").bar; +if(_5){ +_6.width=_5; +} +_7._outerWidth(_6.width)._outerHeight(_6.height); +_7.find("div.progressbar-text").width(_7.width()); +_7.find("div.progressbar-text,div.progressbar-value").css({height:_7.height()+"px",lineHeight:_7.height()+"px"}); +}; +$.fn.progressbar=function(_8,_9){ +if(typeof _8=="string"){ +var _a=$.fn.progressbar.methods[_8]; +if(_a){ +return _a(this,_9); +} +} +_8=_8||{}; +return this.each(function(){ +var _b=$.data(this,"progressbar"); +if(_b){ +$.extend(_b.options,_8); +}else{ +_b=$.data(this,"progressbar",{options:$.extend({},$.fn.progressbar.defaults,$.fn.progressbar.parseOptions(this),_8),bar:_1(this)}); +} +$(this).progressbar("setValue",_b.options.value); +_3(this); +}); +}; +$.fn.progressbar.methods={options:function(jq){ +return $.data(jq[0],"progressbar").options; +},resize:function(jq,_c){ +return jq.each(function(){ +_3(this,_c); +}); +},getValue:function(jq){ +return $.data(jq[0],"progressbar").options.value; +},setValue:function(jq,_d){ +if(_d<0){ +_d=0; +} +if(_d>100){ +_d=100; +} +return jq.each(function(){ +var _e=$.data(this,"progressbar").options; +var _f=_e.text.replace(/{value}/,_d); +var _10=_e.value; +_e.value=_d; +$(this).find("div.progressbar-value").width(_d+"%"); +$(this).find("div.progressbar-text").html(_f); +if(_10!=_d){ +_e.onChange.call(this,_d,_10); +} +}); +}}; +$.fn.progressbar.parseOptions=function(_11){ +return $.extend({},$.parser.parseOptions(_11,["width","height","text",{value:"number"}])); +}; +$.fn.progressbar.defaults={width:"auto",height:22,value:0,text:"{value}%",onChange:function(_12,_13){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.propertygrid.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.propertygrid.js new file mode 100644 index 0000000..8484775 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.propertygrid.js @@ -0,0 +1,235 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +var _1; +function _2(_3){ +var _4=$.data(_3,"propertygrid"); +var _5=$.data(_3,"propertygrid").options; +$(_3).datagrid($.extend({},_5,{cls:"propertygrid",view:(_5.showGroup?_5.groupView:_5.view),onClickRow:function(_6,_7){ +if(_1!=this){ +_a(_1); +_1=this; +} +if(_5.editIndex!=_6&&_7.editor){ +var _8=$(this).datagrid("getColumnOption","value"); +_8.editor=_7.editor; +_a(_1); +$(this).datagrid("beginEdit",_6); +$(this).datagrid("getEditors",_6)[0].target.focus(); +_5.editIndex=_6; +} +_5.onClickRow.call(_3,_6,_7); +},loadFilter:function(_9){ +_a(this); +return _5.loadFilter.call(this,_9); +}})); +$(document).unbind(".propertygrid").bind("mousedown.propertygrid",function(e){ +var p=$(e.target).closest("div.datagrid-view,div.combo-panel"); +if(p.length){ +return; +} +_a(_1); +_1=undefined; +}); +}; +function _a(_b){ +var t=$(_b); +if(!t.length){ +return; +} +var _c=$.data(_b,"propertygrid").options; +var _d=_c.editIndex; +if(_d==undefined){ +return; +} +var ed=t.datagrid("getEditors",_d)[0]; +if(ed){ +ed.target.blur(); +if(t.datagrid("validateRow",_d)){ +t.datagrid("endEdit",_d); +}else{ +t.datagrid("cancelEdit",_d); +} +} +_c.editIndex=undefined; +}; +$.fn.propertygrid=function(_e,_f){ +if(typeof _e=="string"){ +var _10=$.fn.propertygrid.methods[_e]; +if(_10){ +return _10(this,_f); +}else{ +return this.datagrid(_e,_f); +} +} +_e=_e||{}; +return this.each(function(){ +var _11=$.data(this,"propertygrid"); +if(_11){ +$.extend(_11.options,_e); +}else{ +var _12=$.extend({},$.fn.propertygrid.defaults,$.fn.propertygrid.parseOptions(this),_e); +_12.frozenColumns=$.extend(true,[],_12.frozenColumns); +_12.columns=$.extend(true,[],_12.columns); +$.data(this,"propertygrid",{options:_12}); +} +_2(this); +}); +}; +$.fn.propertygrid.methods={options:function(jq){ +return $.data(jq[0],"propertygrid").options; +}}; +$.fn.propertygrid.parseOptions=function(_13){ +return $.extend({},$.fn.datagrid.parseOptions(_13),$.parser.parseOptions(_13,[{showGroup:"boolean"}])); +}; +var _14=$.extend({},$.fn.datagrid.defaults.view,{render:function(_15,_16,_17){ +var _18=[]; +var _19=this.groups; +for(var i=0;i<_19.length;i++){ +_18.push(this.renderGroup.call(this,_15,i,_19[i],_17)); +} +$(_16).html(_18.join("")); +},renderGroup:function(_1a,_1b,_1c,_1d){ +var _1e=$.data(_1a,"datagrid"); +var _1f=_1e.options; +var _20=$(_1a).datagrid("getColumnFields",_1d); +var _21=[]; +_21.push("
                                          "); +_21.push(""); +_21.push(""); +if((_1d&&(_1f.rownumbers||_1f.frozenColumns.length))||(!_1d&&!(_1f.rownumbers||_1f.frozenColumns.length))){ +_21.push(""); +} +_21.push(""); +_21.push(""); +_21.push("
                                           "); +if(!_1d){ +_21.push(""); +_21.push(_1f.groupFormatter.call(_1a,_1c.value,_1c.rows)); +_21.push(""); +} +_21.push("
                                          "); +_21.push("
                                          "); +_21.push(""); +var _22=_1c.startIndex; +for(var j=0;j<_1c.rows.length;j++){ +var css=_1f.rowStyler?_1f.rowStyler.call(_1a,_22,_1c.rows[j]):""; +var _23=""; +var _24=""; +if(typeof css=="string"){ +_24=css; +}else{ +if(css){ +_23=css["class"]||""; +_24=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_22%2&&_1f.striped?"datagrid-row-alt ":" ")+_23+"\""; +var _25=_24?"style=\""+_24+"\"":""; +var _26=_1e.rowIdPrefix+"-"+(_1d?1:2)+"-"+_22; +_21.push(""); +_21.push(this.renderRow.call(this,_1a,_20,_1d,_22,_1c.rows[j])); +_21.push(""); +_22++; +} +_21.push("
                                          "); +return _21.join(""); +},bindEvents:function(_27){ +var _28=$.data(_27,"datagrid"); +var dc=_28.dc; +var _29=dc.body1.add(dc.body2); +var _2a=($.data(_29[0],"events")||$._data(_29[0],"events")).click[0].handler; +_29.unbind("click").bind("click",function(e){ +var tt=$(e.target); +var _2b=tt.closest("span.datagrid-row-expander"); +if(_2b.length){ +var _2c=_2b.closest("div.datagrid-group").attr("group-index"); +if(_2b.hasClass("datagrid-row-collapse")){ +$(_27).datagrid("collapseGroup",_2c); +}else{ +$(_27).datagrid("expandGroup",_2c); +} +}else{ +_2a(e); +} +e.stopPropagation(); +}); +},onBeforeRender:function(_2d,_2e){ +var _2f=$.data(_2d,"datagrid"); +var _30=_2f.options; +_31(); +var _32=[]; +for(var i=0;i<_2e.length;i++){ +var row=_2e[i]; +var _33=_34(row[_30.groupField]); +if(!_33){ +_33={value:row[_30.groupField],rows:[row]}; +_32.push(_33); +}else{ +_33.rows.push(row); +} +} +var _35=0; +var _36=[]; +for(var i=0;i<_32.length;i++){ +var _33=_32[i]; +_33.startIndex=_35; +_35+=_33.rows.length; +_36=_36.concat(_33.rows); +} +_2f.data.rows=_36; +this.groups=_32; +var _37=this; +setTimeout(function(){ +_37.bindEvents(_2d); +},0); +function _34(_38){ +for(var i=0;i<_32.length;i++){ +var _39=_32[i]; +if(_39.value==_38){ +return _39; +} +} +return null; +}; +function _31(){ +if(!$("#datagrid-group-style").length){ +$("head").append(""); +} +}; +}}); +$.extend($.fn.datagrid.methods,{expandGroup:function(jq,_3a){ +return jq.each(function(){ +var _3b=$.data(this,"datagrid").dc.view; +var _3c=_3b.find(_3a!=undefined?"div.datagrid-group[group-index=\""+_3a+"\"]":"div.datagrid-group"); +var _3d=_3c.find("span.datagrid-row-expander"); +if(_3d.hasClass("datagrid-row-expand")){ +_3d.removeClass("datagrid-row-expand").addClass("datagrid-row-collapse"); +_3c.next("table").show(); +} +$(this).datagrid("fixRowHeight"); +}); +},collapseGroup:function(jq,_3e){ +return jq.each(function(){ +var _3f=$.data(this,"datagrid").dc.view; +var _40=_3f.find(_3e!=undefined?"div.datagrid-group[group-index=\""+_3e+"\"]":"div.datagrid-group"); +var _41=_40.find("span.datagrid-row-expander"); +if(_41.hasClass("datagrid-row-collapse")){ +_41.removeClass("datagrid-row-collapse").addClass("datagrid-row-expand"); +_40.next("table").hide(); +} +$(this).datagrid("fixRowHeight"); +}); +}}); +$.fn.propertygrid.defaults=$.extend({},$.fn.datagrid.defaults,{singleSelect:true,remoteSort:false,fitColumns:true,loadMsg:"",frozenColumns:[[{field:"f",width:16,resizable:false}]],columns:[[{field:"name",title:"Name",width:100,sortable:true},{field:"value",title:"Value",width:100,resizable:false}]],showGroup:false,groupView:_14,groupField:"group",groupFormatter:function(_42,_43){ +return _42; +}}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.resizable.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.resizable.js new file mode 100644 index 0000000..fa3b62e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.resizable.js @@ -0,0 +1,170 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +$.fn.resizable=function(_1,_2){ +if(typeof _1=="string"){ +return $.fn.resizable.methods[_1](this,_2); +} +function _3(e){ +var _4=e.data; +var _5=$.data(_4.target,"resizable").options; +if(_4.dir.indexOf("e")!=-1){ +var _6=_4.startWidth+e.pageX-_4.startX; +_6=Math.min(Math.max(_6,_5.minWidth),_5.maxWidth); +_4.width=_6; +} +if(_4.dir.indexOf("s")!=-1){ +var _7=_4.startHeight+e.pageY-_4.startY; +_7=Math.min(Math.max(_7,_5.minHeight),_5.maxHeight); +_4.height=_7; +} +if(_4.dir.indexOf("w")!=-1){ +var _6=_4.startWidth-e.pageX+_4.startX; +_6=Math.min(Math.max(_6,_5.minWidth),_5.maxWidth); +_4.width=_6; +_4.left=_4.startLeft+_4.startWidth-_4.width; +} +if(_4.dir.indexOf("n")!=-1){ +var _7=_4.startHeight-e.pageY+_4.startY; +_7=Math.min(Math.max(_7,_5.minHeight),_5.maxHeight); +_4.height=_7; +_4.top=_4.startTop+_4.startHeight-_4.height; +} +}; +function _8(e){ +var _9=e.data; +var t=$(_9.target); +t.css({left:_9.left,top:_9.top}); +if(t.outerWidth()!=_9.width){ +t._outerWidth(_9.width); +} +if(t.outerHeight()!=_9.height){ +t._outerHeight(_9.height); +} +}; +function _a(e){ +$.fn.resizable.isResizing=true; +$.data(e.data.target,"resizable").options.onStartResize.call(e.data.target,e); +return false; +}; +function _b(e){ +_3(e); +if($.data(e.data.target,"resizable").options.onResize.call(e.data.target,e)!=false){ +_8(e); +} +return false; +}; +function _c(e){ +$.fn.resizable.isResizing=false; +_3(e,true); +_8(e); +$.data(e.data.target,"resizable").options.onStopResize.call(e.data.target,e); +$(document).unbind(".resizable"); +$("body").css("cursor",""); +return false; +}; +return this.each(function(){ +var _d=null; +var _e=$.data(this,"resizable"); +if(_e){ +$(this).unbind(".resizable"); +_d=$.extend(_e.options,_1||{}); +}else{ +_d=$.extend({},$.fn.resizable.defaults,$.fn.resizable.parseOptions(this),_1||{}); +$.data(this,"resizable",{options:_d}); +} +if(_d.disabled==true){ +return; +} +$(this).bind("mousemove.resizable",{target:this},function(e){ +if($.fn.resizable.isResizing){ +return; +} +var _f=_10(e); +if(_f==""){ +$(e.data.target).css("cursor",""); +}else{ +$(e.data.target).css("cursor",_f+"-resize"); +} +}).bind("mouseleave.resizable",{target:this},function(e){ +$(e.data.target).css("cursor",""); +}).bind("mousedown.resizable",{target:this},function(e){ +var dir=_10(e); +if(dir==""){ +return; +} +function _11(css){ +var val=parseInt($(e.data.target).css(css)); +if(isNaN(val)){ +return 0; +}else{ +return val; +} +}; +var _12={target:e.data.target,dir:dir,startLeft:_11("left"),startTop:_11("top"),left:_11("left"),top:_11("top"),startX:e.pageX,startY:e.pageY,startWidth:$(e.data.target).outerWidth(),startHeight:$(e.data.target).outerHeight(),width:$(e.data.target).outerWidth(),height:$(e.data.target).outerHeight(),deltaWidth:$(e.data.target).outerWidth()-$(e.data.target).width(),deltaHeight:$(e.data.target).outerHeight()-$(e.data.target).height()}; +$(document).bind("mousedown.resizable",_12,_a); +$(document).bind("mousemove.resizable",_12,_b); +$(document).bind("mouseup.resizable",_12,_c); +$("body").css("cursor",dir+"-resize"); +}); +function _10(e){ +var tt=$(e.data.target); +var dir=""; +var _13=tt.offset(); +var _14=tt.outerWidth(); +var _15=tt.outerHeight(); +var _16=_d.edge; +if(e.pageY>_13.top&&e.pageY<_13.top+_16){ +dir+="n"; +}else{ +if(e.pageY<_13.top+_15&&e.pageY>_13.top+_15-_16){ +dir+="s"; +} +} +if(e.pageX>_13.left&&e.pageX<_13.left+_16){ +dir+="w"; +}else{ +if(e.pageX<_13.left+_14&&e.pageX>_13.left+_14-_16){ +dir+="e"; +} +} +var _17=_d.handles.split(","); +for(var i=0;i<_17.length;i++){ +var _18=_17[i].replace(/(^\s*)|(\s*$)/g,""); +if(_18=="all"||_18==dir){ +return dir; +} +} +return ""; +}; +}); +}; +$.fn.resizable.methods={options:function(jq){ +return $.data(jq[0],"resizable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:true}); +}); +}}; +$.fn.resizable.parseOptions=function(_19){ +var t=$(_19); +return $.extend({},$.parser.parseOptions(_19,["handles",{minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number",edge:"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.resizable.defaults={disabled:false,handles:"n, e, s, w, ne, se, sw, nw, all",minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000,edge:5,onStartResize:function(e){ +},onResize:function(e){ +},onStopResize:function(e){ +}}; +$.fn.resizable.isResizing=false; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.searchbox.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.searchbox.js new file mode 100644 index 0000000..b8916b9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.searchbox.js @@ -0,0 +1,228 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("searchbox-f").hide(); +var _3=$("").insertAfter(_2); +var _4=$("").appendTo(_3); +$("").appendTo(_3); +var _5=$(_2).attr("name"); +if(_5){ +_4.attr("name",_5); +$(_2).removeAttr("name").attr("searchboxName",_5); +} +return _3; +}; +function _6(_7,_8){ +var _9=$.data(_7,"searchbox").options; +var sb=$.data(_7,"searchbox").searchbox; +if(_8){ +_9.width=_8; +} +sb.appendTo("body"); +if(isNaN(_9.width)){ +_9.width=sb._outerWidth(); +} +var _a=sb.find("span.searchbox-button"); +var _b=sb.find("a.searchbox-menu"); +var _c=sb.find("input.searchbox-text"); +sb._outerWidth(_9.width)._outerHeight(_9.height); +_c._outerWidth(sb.width()-_b._outerWidth()-_a._outerWidth()); +_c.css({height:sb.height()+"px",lineHeight:sb.height()+"px"}); +_b._outerHeight(sb.height()); +_a._outerHeight(sb.height()); +var _d=_b.find("span.l-btn-left"); +_d._outerHeight(sb.height()); +_d.find("span.l-btn-text").css({height:_d.height()+"px",lineHeight:_d.height()+"px"}); +sb.insertAfter(_7); +}; +function _e(_f){ +var _10=$.data(_f,"searchbox"); +var _11=_10.options; +if(_11.menu){ +_10.menu=$(_11.menu).menu({onClick:function(_12){ +_13(_12); +}}); +var _14=_10.menu.children("div.menu-item:first"); +_10.menu.children("div.menu-item").each(function(){ +var _15=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +if(_15.selected){ +_14=$(this); +return false; +} +}); +_14.triggerHandler("click"); +}else{ +_10.searchbox.find("a.searchbox-menu").remove(); +_10.menu=null; +} +function _13(_16){ +_10.searchbox.find("a.searchbox-menu").remove(); +var mb=$("").html(_16.text); +mb.prependTo(_10.searchbox).menubutton({menu:_10.menu,iconCls:_16.iconCls}); +_10.searchbox.find("input.searchbox-text").attr("name",_16.name||_16.text); +_6(_f); +}; +}; +function _17(_18){ +var _19=$.data(_18,"searchbox"); +var _1a=_19.options; +var _1b=_19.searchbox.find("input.searchbox-text"); +var _1c=_19.searchbox.find(".searchbox-button"); +_1b.unbind(".searchbox"); +_1c.unbind(".searchbox"); +if(!_1a.disabled){ +_1b.bind("blur.searchbox",function(e){ +_1a.value=$(this).val(); +if(_1a.value==""){ +$(this).val(_1a.prompt); +$(this).addClass("searchbox-prompt"); +}else{ +$(this).removeClass("searchbox-prompt"); +} +}).bind("focus.searchbox",function(e){ +if($(this).val()!=_1a.value){ +$(this).val(_1a.value); +} +$(this).removeClass("searchbox-prompt"); +}).bind("keydown.searchbox",function(e){ +if(e.keyCode==13){ +e.preventDefault(); +_1a.value=$(this).val(); +_1a.searcher.call(_18,_1a.value,_1b._propAttr("name")); +return false; +} +}); +_1c.bind("click.searchbox",function(){ +_1a.searcher.call(_18,_1a.value,_1b._propAttr("name")); +}).bind("mouseenter.searchbox",function(){ +$(this).addClass("searchbox-button-hover"); +}).bind("mouseleave.searchbox",function(){ +$(this).removeClass("searchbox-button-hover"); +}); +} +}; +function _1d(_1e,_1f){ +var _20=$.data(_1e,"searchbox"); +var _21=_20.options; +var _22=_20.searchbox.find("input.searchbox-text"); +var mb=_20.searchbox.find("a.searchbox-menu"); +if(_1f){ +_21.disabled=true; +$(_1e).attr("disabled",true); +_22.attr("disabled",true); +if(mb.length){ +mb.menubutton("disable"); +} +}else{ +_21.disabled=false; +$(_1e).removeAttr("disabled"); +_22.removeAttr("disabled"); +if(mb.length){ +mb.menubutton("enable"); +} +} +}; +function _23(_24){ +var _25=$.data(_24,"searchbox"); +var _26=_25.options; +var _27=_25.searchbox.find("input.searchbox-text"); +_26.originalValue=_26.value; +if(_26.value){ +_27.val(_26.value); +_27.removeClass("searchbox-prompt"); +}else{ +_27.val(_26.prompt); +_27.addClass("searchbox-prompt"); +} +}; +$.fn.searchbox=function(_28,_29){ +if(typeof _28=="string"){ +return $.fn.searchbox.methods[_28](this,_29); +} +_28=_28||{}; +return this.each(function(){ +var _2a=$.data(this,"searchbox"); +if(_2a){ +$.extend(_2a.options,_28); +}else{ +_2a=$.data(this,"searchbox",{options:$.extend({},$.fn.searchbox.defaults,$.fn.searchbox.parseOptions(this),_28),searchbox:_1(this)}); +} +_e(this); +_23(this); +_17(this); +_1d(this,_2a.options.disabled); +_6(this); +}); +}; +$.fn.searchbox.methods={options:function(jq){ +return $.data(jq[0],"searchbox").options; +},menu:function(jq){ +return $.data(jq[0],"searchbox").menu; +},textbox:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text"); +},getValue:function(jq){ +return $.data(jq[0],"searchbox").options.value; +},setValue:function(jq,_2b){ +return jq.each(function(){ +$(this).searchbox("options").value=_2b; +$(this).searchbox("textbox").val(_2b); +$(this).searchbox("textbox").blur(); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).searchbox("setValue",""); +}); +},reset:function(jq){ +return jq.each(function(){ +var _2c=$(this).searchbox("options"); +$(this).searchbox("setValue",_2c.originalValue); +}); +},getName:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text").attr("name"); +},selectName:function(jq,_2d){ +return jq.each(function(){ +var _2e=$.data(this,"searchbox").menu; +if(_2e){ +_2e.children("div.menu-item[name=\""+_2d+"\"]").triggerHandler("click"); +} +}); +},destroy:function(jq){ +return jq.each(function(){ +var _2f=$(this).searchbox("menu"); +if(_2f){ +_2f.menu("destroy"); +} +$.data(this,"searchbox").searchbox.remove(); +$(this).remove(); +}); +},resize:function(jq,_30){ +return jq.each(function(){ +_6(this,_30); +}); +},disable:function(jq){ +return jq.each(function(){ +_1d(this,true); +_17(this); +}); +},enable:function(jq){ +return jq.each(function(){ +_1d(this,false); +_17(this); +}); +}}; +$.fn.searchbox.parseOptions=function(_31){ +var t=$(_31); +return $.extend({},$.parser.parseOptions(_31,["width","height","prompt","menu"]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),searcher:(t.attr("searcher")?eval(t.attr("searcher")):undefined)}); +}; +$.fn.searchbox.defaults={width:"auto",height:22,prompt:"",value:"",menu:null,disabled:false,searcher:function(_32,_33){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.slider.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.slider.js new file mode 100644 index 0000000..a2dfb4c --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.slider.js @@ -0,0 +1,278 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$("
                                          "+"
                                          "+""+""+"
                                          "+"
                                          "+"
                                          "+"
                                          "+""+"
                                          ").insertAfter(_2); +var t=$(_2); +t.addClass("slider-f").hide(); +var _4=t.attr("name"); +if(_4){ +_3.find("input.slider-value").attr("name",_4); +t.removeAttr("name").attr("sliderName",_4); +} +return _3; +}; +function _5(_6,_7){ +var _8=$.data(_6,"slider"); +var _9=_8.options; +var _a=_8.slider; +if(_7){ +if(_7.width){ +_9.width=_7.width; +} +if(_7.height){ +_9.height=_7.height; +} +} +if(_9.mode=="h"){ +_a.css("height",""); +_a.children("div").css("height",""); +if(!isNaN(_9.width)){ +_a.width(_9.width); +} +}else{ +_a.css("width",""); +_a.children("div").css("width",""); +if(!isNaN(_9.height)){ +_a.height(_9.height); +_a.find("div.slider-rule").height(_9.height); +_a.find("div.slider-rulelabel").height(_9.height); +_a.find("div.slider-inner")._outerHeight(_9.height); +} +} +_b(_6); +}; +function _c(_d){ +var _e=$.data(_d,"slider"); +var _f=_e.options; +var _10=_e.slider; +var aa=_f.mode=="h"?_f.rule:_f.rule.slice(0).reverse(); +if(_f.reversed){ +aa=aa.slice(0).reverse(); +} +_11(aa); +function _11(aa){ +var _12=_10.find("div.slider-rule"); +var _13=_10.find("div.slider-rulelabel"); +_12.empty(); +_13.empty(); +for(var i=0;i").appendTo(_12); +_15.css((_f.mode=="h"?"left":"top"),_14); +if(aa[i]!="|"){ +_15=$("").appendTo(_13); +_15.html(aa[i]); +if(_f.mode=="h"){ +_15.css({left:_14,marginLeft:-Math.round(_15.outerWidth()/2)}); +}else{ +_15.css({top:_14,marginTop:-Math.round(_15.outerHeight()/2)}); +} +} +} +}; +}; +function _16(_17){ +var _18=$.data(_17,"slider"); +var _19=_18.options; +var _1a=_18.slider; +_1a.removeClass("slider-h slider-v slider-disabled"); +_1a.addClass(_19.mode=="h"?"slider-h":"slider-v"); +_1a.addClass(_19.disabled?"slider-disabled":""); +_1a.find("a.slider-handle").draggable({axis:_19.mode,cursor:"pointer",disabled:_19.disabled,onDrag:function(e){ +var _1b=e.data.left; +var _1c=_1a.width(); +if(_19.mode!="h"){ +_1b=e.data.top; +_1c=_1a.height(); +} +if(_1b<0||_1b>_1c){ +return false; +}else{ +var _1d=_33(_17,_1b); +_1e(_1d); +return false; +} +},onBeforeDrag:function(){ +_18.isDragging=true; +},onStartDrag:function(){ +_19.onSlideStart.call(_17,_19.value); +},onStopDrag:function(e){ +var _1f=_33(_17,(_19.mode=="h"?e.data.left:e.data.top)); +_1e(_1f); +_19.onSlideEnd.call(_17,_19.value); +_19.onComplete.call(_17,_19.value); +_18.isDragging=false; +}}); +_1a.find("div.slider-inner").unbind(".slider").bind("mousedown.slider",function(e){ +if(_18.isDragging){ +return; +} +var pos=$(this).offset(); +var _20=_33(_17,(_19.mode=="h"?(e.pageX-pos.left):(e.pageY-pos.top))); +_1e(_20); +_19.onComplete.call(_17,_19.value); +}); +function _1e(_21){ +var s=Math.abs(_21%_19.step); +if(s<_19.step/2){ +_21-=s; +}else{ +_21=_21-s+_19.step; +} +_22(_17,_21); +}; +}; +function _22(_23,_24){ +var _25=$.data(_23,"slider"); +var _26=_25.options; +var _27=_25.slider; +var _28=_26.value; +if(_24<_26.min){ +_24=_26.min; +} +if(_24>_26.max){ +_24=_26.max; +} +_26.value=_24; +$(_23).val(_24); +_27.find("input.slider-value").val(_24); +var pos=_29(_23,_24); +var tip=_27.find(".slider-tip"); +if(_26.showTip){ +tip.show(); +tip.html(_26.tipFormatter.call(_23,_26.value)); +}else{ +tip.hide(); +} +if(_26.mode=="h"){ +var _2a="left:"+pos+"px;"; +_27.find(".slider-handle").attr("style",_2a); +tip.attr("style",_2a+"margin-left:"+(-Math.round(tip.outerWidth()/2))+"px"); +}else{ +var _2a="top:"+pos+"px;"; +_27.find(".slider-handle").attr("style",_2a); +tip.attr("style",_2a+"margin-left:"+(-Math.round(tip.outerWidth()))+"px"); +} +if(_28!=_24){ +_26.onChange.call(_23,_24,_28); +} +}; +function _b(_2b){ +var _2c=$.data(_2b,"slider").options; +var fn=_2c.onChange; +_2c.onChange=function(){ +}; +_22(_2b,_2c.value); +_2c.onChange=fn; +}; +function _29(_2d,_2e){ +var _2f=$.data(_2d,"slider"); +var _30=_2f.options; +var _31=_2f.slider; +var _32=_30.mode=="h"?_31.width():_31.height(); +var pos=_30.converter.toPosition.call(_2d,_2e,_32); +if(_30.mode=="v"){ +pos=_31.height()-pos; +} +if(_30.reversed){ +pos=_32-pos; +} +return pos.toFixed(0); +}; +function _33(_34,pos){ +var _35=$.data(_34,"slider"); +var _36=_35.options; +var _37=_35.slider; +var _38=_36.mode=="h"?_37.width():_37.height(); +var _39=_36.converter.toValue.call(_34,_36.mode=="h"?(_36.reversed?(_38-pos):pos):(_38-pos),_38); +return _39.toFixed(0); +}; +$.fn.slider=function(_3a,_3b){ +if(typeof _3a=="string"){ +return $.fn.slider.methods[_3a](this,_3b); +} +_3a=_3a||{}; +return this.each(function(){ +var _3c=$.data(this,"slider"); +if(_3c){ +$.extend(_3c.options,_3a); +}else{ +_3c=$.data(this,"slider",{options:$.extend({},$.fn.slider.defaults,$.fn.slider.parseOptions(this),_3a),slider:_1(this)}); +$(this).removeAttr("disabled"); +} +var _3d=_3c.options; +_3d.min=parseFloat(_3d.min); +_3d.max=parseFloat(_3d.max); +_3d.value=parseFloat(_3d.value); +_3d.step=parseFloat(_3d.step); +_3d.originalValue=_3d.value; +_16(this); +_c(this); +_5(this); +}); +}; +$.fn.slider.methods={options:function(jq){ +return $.data(jq[0],"slider").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"slider").slider.remove(); +$(this).remove(); +}); +},resize:function(jq,_3e){ +return jq.each(function(){ +_5(this,_3e); +}); +},getValue:function(jq){ +return jq.slider("options").value; +},setValue:function(jq,_3f){ +return jq.each(function(){ +_22(this,_3f); +}); +},clear:function(jq){ +return jq.each(function(){ +var _40=$(this).slider("options"); +_22(this,_40.min); +}); +},reset:function(jq){ +return jq.each(function(){ +var _41=$(this).slider("options"); +_22(this,_41.originalValue); +}); +},enable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=false; +_16(this); +}); +},disable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=true; +_16(this); +}); +}}; +$.fn.slider.parseOptions=function(_42){ +var t=$(_42); +return $.extend({},$.parser.parseOptions(_42,["width","height","mode",{reversed:"boolean",showTip:"boolean",min:"number",max:"number",step:"number"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),rule:(t.attr("rule")?eval(t.attr("rule")):undefined)}); +}; +$.fn.slider.defaults={width:"auto",height:"auto",mode:"h",reversed:false,showTip:false,disabled:false,value:0,min:0,max:100,step:1,rule:[],tipFormatter:function(_43){ +return _43; +},converter:{toPosition:function(_44,_45){ +var _46=$(this).slider("options"); +return (_44-_46.min)/(_46.max-_46.min)*_45; +},toValue:function(pos,_47){ +var _48=$(this).slider("options"); +return _48.min+(_48.max-_48.min)*(pos/_47); +}},onChange:function(_49,_4a){ +},onSlideStart:function(_4b){ +},onSlideEnd:function(_4c){ +},onComplete:function(_4d){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.spinner.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.spinner.js new file mode 100644 index 0000000..37616e8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.spinner.js @@ -0,0 +1,171 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$(""+""+""+""+""+"").insertAfter(_2); +$(_2).addClass("spinner-text spinner-f").prependTo(_3); +return _3; +}; +function _4(_5,_6){ +var _7=$.data(_5,"spinner").options; +var _8=$.data(_5,"spinner").spinner; +if(_6){ +_7.width=_6; +} +var _9=$("
                                          ").insertBefore(_8); +_8.appendTo("body"); +if(isNaN(_7.width)){ +_7.width=$(_5).outerWidth(); +} +var _a=_8.find(".spinner-arrow"); +_8._outerWidth(_7.width)._outerHeight(_7.height); +$(_5)._outerWidth(_8.width()-_a.outerWidth()); +$(_5).css({height:_8.height()+"px",lineHeight:_8.height()+"px"}); +_a._outerHeight(_8.height()); +_a.find("span")._outerHeight(_a.height()/2); +_8.insertAfter(_9); +_9.remove(); +}; +function _b(_c){ +var _d=$.data(_c,"spinner").options; +var _e=$.data(_c,"spinner").spinner; +$(_c).unbind(".spinner"); +_e.find(".spinner-arrow-up,.spinner-arrow-down").unbind(".spinner"); +if(!_d.disabled&&!_d.readonly){ +_e.find(".spinner-arrow-up").bind("mouseenter.spinner",function(){ +$(this).addClass("spinner-arrow-hover"); +}).bind("mouseleave.spinner",function(){ +$(this).removeClass("spinner-arrow-hover"); +}).bind("click.spinner",function(){ +_d.spin.call(_c,false); +_d.onSpinUp.call(_c); +$(_c).validatebox("validate"); +}); +_e.find(".spinner-arrow-down").bind("mouseenter.spinner",function(){ +$(this).addClass("spinner-arrow-hover"); +}).bind("mouseleave.spinner",function(){ +$(this).removeClass("spinner-arrow-hover"); +}).bind("click.spinner",function(){ +_d.spin.call(_c,true); +_d.onSpinDown.call(_c); +$(_c).validatebox("validate"); +}); +$(_c).bind("change.spinner",function(){ +$(this).spinner("setValue",$(this).val()); +}); +} +}; +function _f(_10,_11){ +var _12=$.data(_10,"spinner").options; +if(_11){ +_12.disabled=true; +$(_10).attr("disabled",true); +}else{ +_12.disabled=false; +$(_10).removeAttr("disabled"); +} +}; +function _13(_14,_15){ +var _16=$.data(_14,"spinner"); +var _17=_16.options; +_17.readonly=_15==undefined?true:_15; +var _18=_17.readonly?true:(!_17.editable); +$(_14).attr("readonly",_18).css("cursor",_18?"pointer":""); +}; +$.fn.spinner=function(_19,_1a){ +if(typeof _19=="string"){ +var _1b=$.fn.spinner.methods[_19]; +if(_1b){ +return _1b(this,_1a); +}else{ +return this.validatebox(_19,_1a); +} +} +_19=_19||{}; +return this.each(function(){ +var _1c=$.data(this,"spinner"); +if(_1c){ +$.extend(_1c.options,_19); +}else{ +_1c=$.data(this,"spinner",{options:$.extend({},$.fn.spinner.defaults,$.fn.spinner.parseOptions(this),_19),spinner:_1(this)}); +$(this).removeAttr("disabled"); +} +_1c.options.originalValue=_1c.options.value; +$(this).val(_1c.options.value); +_f(this,_1c.options.disabled); +_13(this,_1c.options.readonly); +_4(this); +$(this).validatebox(_1c.options); +_b(this); +}); +}; +$.fn.spinner.methods={options:function(jq){ +var _1d=$.data(jq[0],"spinner").options; +return $.extend(_1d,{value:jq.val()}); +},destroy:function(jq){ +return jq.each(function(){ +var _1e=$.data(this,"spinner").spinner; +$(this).validatebox("destroy"); +_1e.remove(); +}); +},resize:function(jq,_1f){ +return jq.each(function(){ +_4(this,_1f); +}); +},enable:function(jq){ +return jq.each(function(){ +_f(this,false); +_b(this); +}); +},disable:function(jq){ +return jq.each(function(){ +_f(this,true); +_b(this); +}); +},readonly:function(jq,_20){ +return jq.each(function(){ +_13(this,_20); +_b(this); +}); +},getValue:function(jq){ +return jq.val(); +},setValue:function(jq,_21){ +return jq.each(function(){ +var _22=$.data(this,"spinner").options; +var _23=_22.value; +_22.value=_21; +$(this).val(_21); +if(_23!=_21){ +_22.onChange.call(this,_21,_23); +} +}); +},clear:function(jq){ +return jq.each(function(){ +var _24=$.data(this,"spinner").options; +_24.value=""; +$(this).val(""); +}); +},reset:function(jq){ +return jq.each(function(){ +var _25=$(this).spinner("options"); +$(this).spinner("setValue",_25.originalValue); +}); +}}; +$.fn.spinner.parseOptions=function(_26){ +var t=$(_26); +return $.extend({},$.fn.validatebox.parseOptions(_26),$.parser.parseOptions(_26,["width","height","min","max",{increment:"number",editable:"boolean"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),readonly:(t.attr("readonly")?true:undefined)}); +}; +$.fn.spinner.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,deltaX:19,value:"",min:null,max:null,increment:1,editable:true,disabled:false,readonly:false,spin:function(_27){ +},onSpinUp:function(){ +},onSpinDown:function(){ +},onChange:function(_28,_29){ +}}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.splitbutton.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.splitbutton.js new file mode 100644 index 0000000..120c49b --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.splitbutton.js @@ -0,0 +1,49 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"splitbutton").options; +$(_2).menubutton(_3); +$(_2).addClass("s-btn"); +}; +$.fn.splitbutton=function(_4,_5){ +if(typeof _4=="string"){ +var _6=$.fn.splitbutton.methods[_4]; +if(_6){ +return _6(this,_5); +}else{ +return this.menubutton(_4,_5); +} +} +_4=_4||{}; +return this.each(function(){ +var _7=$.data(this,"splitbutton"); +if(_7){ +$.extend(_7.options,_4); +}else{ +$.data(this,"splitbutton",{options:$.extend({},$.fn.splitbutton.defaults,$.fn.splitbutton.parseOptions(this),_4)}); +$(this).removeAttr("disabled"); +} +_1(this); +}); +}; +$.fn.splitbutton.methods={options:function(jq){ +var _8=jq.menubutton("options"); +var _9=$.data(jq[0],"splitbutton").options; +$.extend(_9,{disabled:_8.disabled,toggle:_8.toggle,selected:_8.selected}); +return _9; +}}; +$.fn.splitbutton.parseOptions=function(_a){ +var t=$(_a); +return $.extend({},$.fn.linkbutton.parseOptions(_a),$.parser.parseOptions(_a,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.splitbutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,duration:100,cls:{btn1:"m-btn-active s-btn-active",btn2:"m-btn-plain-active s-btn-plain-active",arrow:"m-btn-downarrow",trigger:"m-btn-line"}}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tabs.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tabs.js new file mode 100644 index 0000000..647551a --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tabs.js @@ -0,0 +1,608 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"tabs").options; +if(_3.tabPosition=="left"||_3.tabPosition=="right"||!_3.showHeader){ +return; +} +var _4=$(_2).children("div.tabs-header"); +var _5=_4.children("div.tabs-tool"); +var _6=_4.children("div.tabs-scroller-left"); +var _7=_4.children("div.tabs-scroller-right"); +var _8=_4.children("div.tabs-wrap"); +var _9=_4.outerHeight(); +if(_3.plain){ +_9-=_9-_4.height(); +} +_5._outerHeight(_9); +var _a=0; +$("ul.tabs li",_4).each(function(){ +_a+=$(this).outerWidth(true); +}); +var _b=_4.width()-_5._outerWidth(); +if(_a>_b){ +_6.add(_7).show()._outerHeight(_9); +if(_3.toolPosition=="left"){ +_5.css({left:_6.outerWidth(),right:""}); +_8.css({marginLeft:_6.outerWidth()+_5._outerWidth(),marginRight:_7._outerWidth(),width:_b-_6.outerWidth()-_7.outerWidth()}); +}else{ +_5.css({left:"",right:_7.outerWidth()}); +_8.css({marginLeft:_6.outerWidth(),marginRight:_7.outerWidth()+_5._outerWidth(),width:_b-_6.outerWidth()-_7.outerWidth()}); +} +}else{ +_6.add(_7).hide(); +if(_3.toolPosition=="left"){ +_5.css({left:0,right:""}); +_8.css({marginLeft:_5._outerWidth(),marginRight:0,width:_b}); +}else{ +_5.css({left:"",right:0}); +_8.css({marginLeft:0,marginRight:_5._outerWidth(),width:_b}); +} +} +}; +function _c(_d){ +var _e=$.data(_d,"tabs").options; +var _f=$(_d).children("div.tabs-header"); +if(_e.tools){ +if(typeof _e.tools=="string"){ +$(_e.tools).addClass("tabs-tool").appendTo(_f); +$(_e.tools).show(); +}else{ +_f.children("div.tabs-tool").remove(); +var _10=$("
                                          ").appendTo(_f); +var tr=_10.find("tr"); +for(var i=0;i<_e.tools.length;i++){ +var td=$("").appendTo(tr); +var _11=$("").appendTo(td); +_11[0].onclick=eval(_e.tools[i].handler||function(){ +}); +_11.linkbutton($.extend({},_e.tools[i],{plain:true})); +} +} +}else{ +_f.children("div.tabs-tool").remove(); +} +}; +function _12(_13){ +var _14=$.data(_13,"tabs"); +var _15=_14.options; +var cc=$(_13); +_15.fit?$.extend(_15,cc._fit()):cc._fit(false); +cc.width(_15.width).height(_15.height); +var _16=$(_13).children("div.tabs-header"); +var _17=$(_13).children("div.tabs-panels"); +var _18=_16.find("div.tabs-wrap"); +var ul=_18.find(".tabs"); +for(var i=0;i<_14.tabs.length;i++){ +var _19=_14.tabs[i].panel("options"); +var p_t=_19.tab.find("a.tabs-inner"); +var _1a=parseInt(_19.tabWidth||_15.tabWidth)||undefined; +if(_1a){ +p_t._outerWidth(_1a); +}else{ +p_t.css("width",""); +} +p_t._outerHeight(_15.tabHeight); +p_t.css("lineHeight",p_t.height()+"px"); +} +if(_15.tabPosition=="left"||_15.tabPosition=="right"){ +_16._outerWidth(_15.showHeader?_15.headerWidth:0); +_17._outerWidth(cc.width()-_16.outerWidth()); +_16.add(_17)._outerHeight(_15.height); +_18._outerWidth(_16.width()); +ul._outerWidth(_18.width()).css("height",""); +}else{ +var lrt=_16.children("div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool"); +_16._outerWidth(_15.width).css("height",""); +if(_15.showHeader){ +_16.css("background-color",""); +_18.css("height",""); +lrt.show(); +}else{ +_16.css("background-color","transparent"); +_16._outerHeight(0); +_18._outerHeight(0); +lrt.hide(); +} +ul._outerHeight(_15.tabHeight).css("width",""); +_1(_13); +var _1b=_15.height; +if(!isNaN(_1b)){ +_17._outerHeight(_1b-_16.outerHeight()); +}else{ +_17.height("auto"); +} +var _1a=_15.width; +if(!isNaN(_1a)){ +_17._outerWidth(_1a); +}else{ +_17.width("auto"); +} +} +}; +function _1c(_1d){ +var _1e=$.data(_1d,"tabs").options; +var tab=_1f(_1d); +if(tab){ +var _20=$(_1d).children("div.tabs-panels"); +var _21=_1e.width=="auto"?"auto":_20.width(); +var _22=_1e.height=="auto"?"auto":_20.height(); +tab.panel("resize",{width:_21,height:_22}); +} +}; +function _23(_24){ +var _25=$.data(_24,"tabs").tabs; +var cc=$(_24); +cc.addClass("tabs-container"); +var pp=$("
                                          ").insertBefore(cc); +cc.children("div").each(function(){ +pp[0].appendChild(this); +}); +cc[0].appendChild(pp[0]); +$("
                                          "+"
                                          "+"
                                          "+"
                                          "+"
                                            "+"
                                            "+"
                                            ").prependTo(_24); +cc.children("div.tabs-panels").children("div").each(function(i){ +var _26=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +var pp=$(this); +_25.push(pp); +_36(_24,pp,_26); +}); +cc.children("div.tabs-header").find(".tabs-scroller-left, .tabs-scroller-right").hover(function(){ +$(this).addClass("tabs-scroller-over"); +},function(){ +$(this).removeClass("tabs-scroller-over"); +}); +cc.bind("_resize",function(e,_27){ +var _28=$.data(_24,"tabs").options; +if(_28.fit==true||_27){ +_12(_24); +_1c(_24); +} +return false; +}); +}; +function _29(_2a){ +var _2b=$.data(_2a,"tabs"); +var _2c=_2b.options; +$(_2a).children("div.tabs-header").unbind().bind("click",function(e){ +if($(e.target).hasClass("tabs-scroller-left")){ +$(_2a).tabs("scrollBy",-_2c.scrollIncrement); +}else{ +if($(e.target).hasClass("tabs-scroller-right")){ +$(_2a).tabs("scrollBy",_2c.scrollIncrement); +}else{ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +var a=$(e.target).closest("a.tabs-close"); +if(a.length){ +_4c(_2a,_2d(li)); +}else{ +if(li.length){ +var _2e=_2d(li); +var _2f=_2b.tabs[_2e].panel("options"); +if(_2f.collapsible){ +_2f.closed?_41(_2a,_2e):_6b(_2a,_2e); +}else{ +_41(_2a,_2e); +} +} +} +} +} +}).bind("contextmenu",function(e){ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +if(li.length){ +_2c.onContextMenu.call(_2a,e,li.find("span.tabs-title").html(),_2d(li)); +} +}); +function _2d(li){ +var _30=0; +li.parent().children("li").each(function(i){ +if(li[0]==this){ +_30=i; +return false; +} +}); +return _30; +}; +}; +function _31(_32){ +var _33=$.data(_32,"tabs").options; +var _34=$(_32).children("div.tabs-header"); +var _35=$(_32).children("div.tabs-panels"); +_34.removeClass("tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right"); +_35.removeClass("tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right"); +if(_33.tabPosition=="top"){ +_34.insertBefore(_35); +}else{ +if(_33.tabPosition=="bottom"){ +_34.insertAfter(_35); +_34.addClass("tabs-header-bottom"); +_35.addClass("tabs-panels-top"); +}else{ +if(_33.tabPosition=="left"){ +_34.addClass("tabs-header-left"); +_35.addClass("tabs-panels-right"); +}else{ +if(_33.tabPosition=="right"){ +_34.addClass("tabs-header-right"); +_35.addClass("tabs-panels-left"); +} +} +} +} +if(_33.plain==true){ +_34.addClass("tabs-header-plain"); +}else{ +_34.removeClass("tabs-header-plain"); +} +if(_33.border==true){ +_34.removeClass("tabs-header-noborder"); +_35.removeClass("tabs-panels-noborder"); +}else{ +_34.addClass("tabs-header-noborder"); +_35.addClass("tabs-panels-noborder"); +} +}; +function _36(_37,pp,_38){ +var _39=$.data(_37,"tabs"); +_38=_38||{}; +pp.panel($.extend({},_38,{border:false,noheader:true,closed:true,doSize:false,iconCls:(_38.icon?_38.icon:undefined),onLoad:function(){ +if(_38.onLoad){ +_38.onLoad.call(this,arguments); +} +_39.options.onLoad.call(_37,$(this)); +}})); +var _3a=pp.panel("options"); +var _3b=$(_37).children("div.tabs-header").find("ul.tabs"); +_3a.tab=$("
                                          • ").appendTo(_3b); +_3a.tab.append(""+""+""+""); +$(_37).tabs("update",{tab:pp,options:_3a}); +}; +function _3c(_3d,_3e){ +var _3f=$.data(_3d,"tabs").options; +var _40=$.data(_3d,"tabs").tabs; +if(_3e.selected==undefined){ +_3e.selected=true; +} +var pp=$("
                                            ").appendTo($(_3d).children("div.tabs-panels")); +_40.push(pp); +_36(_3d,pp,_3e); +_3f.onAdd.call(_3d,_3e.title,_40.length-1); +_12(_3d); +if(_3e.selected){ +_41(_3d,_40.length-1); +} +}; +function _42(_43,_44){ +var _45=$.data(_43,"tabs").selectHis; +var pp=_44.tab; +var _46=pp.panel("options").title; +pp.panel($.extend({},_44.options,{iconCls:(_44.options.icon?_44.options.icon:undefined)})); +var _47=pp.panel("options"); +var tab=_47.tab; +var _48=tab.find("span.tabs-title"); +var _49=tab.find("span.tabs-icon"); +_48.html(_47.title); +_49.attr("class","tabs-icon"); +tab.find("a.tabs-close").remove(); +if(_47.closable){ +_48.addClass("tabs-closable"); +$("").appendTo(tab); +}else{ +_48.removeClass("tabs-closable"); +} +if(_47.iconCls){ +_48.addClass("tabs-with-icon"); +_49.addClass(_47.iconCls); +}else{ +_48.removeClass("tabs-with-icon"); +} +if(_46!=_47.title){ +for(var i=0;i<_45.length;i++){ +if(_45[i]==_46){ +_45[i]=_47.title; +} +} +} +tab.find("span.tabs-p-tool").remove(); +if(_47.tools){ +var _4a=$("").insertAfter(tab.find("a.tabs-inner")); +if($.isArray(_47.tools)){ +for(var i=0;i<_47.tools.length;i++){ +var t=$("").appendTo(_4a); +t.addClass(_47.tools[i].iconCls); +if(_47.tools[i].handler){ +t.bind("click",{handler:_47.tools[i].handler},function(e){ +if($(this).parents("li").hasClass("tabs-disabled")){ +return; +} +e.data.handler.call(this); +}); +} +} +}else{ +$(_47.tools).children().appendTo(_4a); +} +var pr=_4a.children().length*12; +if(_47.closable){ +pr+=8; +}else{ +pr-=3; +_4a.css("right","5px"); +} +_48.css("padding-right",pr+"px"); +} +_12(_43); +$.data(_43,"tabs").options.onUpdate.call(_43,_47.title,_4b(_43,pp)); +}; +function _4c(_4d,_4e){ +var _4f=$.data(_4d,"tabs").options; +var _50=$.data(_4d,"tabs").tabs; +var _51=$.data(_4d,"tabs").selectHis; +if(!_52(_4d,_4e)){ +return; +} +var tab=_53(_4d,_4e); +var _54=tab.panel("options").title; +var _55=_4b(_4d,tab); +if(_4f.onBeforeClose.call(_4d,_54,_55)==false){ +return; +} +var tab=_53(_4d,_4e,true); +tab.panel("options").tab.remove(); +tab.panel("destroy"); +_4f.onClose.call(_4d,_54,_55); +_12(_4d); +for(var i=0;i<_51.length;i++){ +if(_51[i]==_54){ +_51.splice(i,1); +i--; +} +} +var _56=_51.pop(); +if(_56){ +_41(_4d,_56); +}else{ +if(_50.length){ +_41(_4d,0); +} +} +}; +function _53(_57,_58,_59){ +var _5a=$.data(_57,"tabs").tabs; +if(typeof _58=="number"){ +if(_58<0||_58>=_5a.length){ +return null; +}else{ +var tab=_5a[_58]; +if(_59){ +_5a.splice(_58,1); +} +return tab; +} +} +for(var i=0;i<_5a.length;i++){ +var tab=_5a[i]; +if(tab.panel("options").title==_58){ +if(_59){ +_5a.splice(i,1); +} +return tab; +} +} +return null; +}; +function _4b(_5b,tab){ +var _5c=$.data(_5b,"tabs").tabs; +for(var i=0;i<_5c.length;i++){ +if(_5c[i][0]==$(tab)[0]){ +return i; +} +} +return -1; +}; +function _1f(_5d){ +var _5e=$.data(_5d,"tabs").tabs; +for(var i=0;i<_5e.length;i++){ +var tab=_5e[i]; +if(tab.panel("options").closed==false){ +return tab; +} +} +return null; +}; +function _5f(_60){ +var _61=$.data(_60,"tabs"); +var _62=_61.tabs; +for(var i=0;i<_62.length;i++){ +if(_62[i].panel("options").selected){ +_41(_60,i); +return; +} +} +_41(_60,_61.options.selected); +}; +function _41(_63,_64){ +var _65=$.data(_63,"tabs"); +var _66=_65.options; +var _67=_65.tabs; +var _68=_65.selectHis; +if(_67.length==0){ +return; +} +var _69=_53(_63,_64); +if(!_69){ +return; +} +var _6a=_1f(_63); +if(_6a){ +if(_69[0]==_6a[0]){ +_1c(_63); +return; +} +_6b(_63,_4b(_63,_6a)); +if(!_6a.panel("options").closed){ +return; +} +} +_69.panel("open"); +var _6c=_69.panel("options").title; +_68.push(_6c); +var tab=_69.panel("options").tab; +tab.addClass("tabs-selected"); +var _6d=$(_63).find(">div.tabs-header>div.tabs-wrap"); +var _6e=tab.position().left; +var _6f=_6e+tab.outerWidth(); +if(_6e<0||_6f>_6d.width()){ +var _70=_6e-(_6d.width()-tab.width())/2; +$(_63).tabs("scrollBy",_70); +}else{ +$(_63).tabs("scrollBy",0); +} +_1c(_63); +_66.onSelect.call(_63,_6c,_4b(_63,_69)); +}; +function _6b(_71,_72){ +var _73=$.data(_71,"tabs"); +var p=_53(_71,_72); +if(p){ +var _74=p.panel("options"); +if(!_74.closed){ +p.panel("close"); +if(_74.closed){ +_74.tab.removeClass("tabs-selected"); +_73.options.onUnselect.call(_71,_74.title,_4b(_71,p)); +} +} +} +}; +function _52(_75,_76){ +return _53(_75,_76)!=null; +}; +function _77(_78,_79){ +var _7a=$.data(_78,"tabs").options; +_7a.showHeader=_79; +$(_78).tabs("resize"); +}; +$.fn.tabs=function(_7b,_7c){ +if(typeof _7b=="string"){ +return $.fn.tabs.methods[_7b](this,_7c); +} +_7b=_7b||{}; +return this.each(function(){ +var _7d=$.data(this,"tabs"); +var _7e; +if(_7d){ +_7e=$.extend(_7d.options,_7b); +_7d.options=_7e; +}else{ +$.data(this,"tabs",{options:$.extend({},$.fn.tabs.defaults,$.fn.tabs.parseOptions(this),_7b),tabs:[],selectHis:[]}); +_23(this); +} +_c(this); +_31(this); +_12(this); +_29(this); +_5f(this); +}); +}; +$.fn.tabs.methods={options:function(jq){ +var cc=jq[0]; +var _7f=$.data(cc,"tabs").options; +var s=_1f(cc); +_7f.selected=s?_4b(cc,s):-1; +return _7f; +},tabs:function(jq){ +return $.data(jq[0],"tabs").tabs; +},resize:function(jq){ +return jq.each(function(){ +_12(this); +_1c(this); +}); +},add:function(jq,_80){ +return jq.each(function(){ +_3c(this,_80); +}); +},close:function(jq,_81){ +return jq.each(function(){ +_4c(this,_81); +}); +},getTab:function(jq,_82){ +return _53(jq[0],_82); +},getTabIndex:function(jq,tab){ +return _4b(jq[0],tab); +},getSelected:function(jq){ +return _1f(jq[0]); +},select:function(jq,_83){ +return jq.each(function(){ +_41(this,_83); +}); +},unselect:function(jq,_84){ +return jq.each(function(){ +_6b(this,_84); +}); +},exists:function(jq,_85){ +return _52(jq[0],_85); +},update:function(jq,_86){ +return jq.each(function(){ +_42(this,_86); +}); +},enableTab:function(jq,_87){ +return jq.each(function(){ +$(this).tabs("getTab",_87).panel("options").tab.removeClass("tabs-disabled"); +}); +},disableTab:function(jq,_88){ +return jq.each(function(){ +$(this).tabs("getTab",_88).panel("options").tab.addClass("tabs-disabled"); +}); +},showHeader:function(jq){ +return jq.each(function(){ +_77(this,true); +}); +},hideHeader:function(jq){ +return jq.each(function(){ +_77(this,false); +}); +},scrollBy:function(jq,_89){ +return jq.each(function(){ +var _8a=$(this).tabs("options"); +var _8b=$(this).find(">div.tabs-header>div.tabs-wrap"); +var pos=Math.min(_8b._scrollLeft()+_89,_8c()); +_8b.animate({scrollLeft:pos},_8a.scrollDuration); +function _8c(){ +var w=0; +var ul=_8b.children("ul"); +ul.children("li").each(function(){ +w+=$(this).outerWidth(true); +}); +return w-_8b.width()+(ul.outerWidth()-ul.width()); +}; +}); +}}; +$.fn.tabs.parseOptions=function(_8d){ +return $.extend({},$.parser.parseOptions(_8d,["width","height","tools","toolPosition","tabPosition",{fit:"boolean",border:"boolean",plain:"boolean",headerWidth:"number",tabWidth:"number",tabHeight:"number",selected:"number",showHeader:"boolean"}])); +}; +$.fn.tabs.defaults={width:"auto",height:"auto",headerWidth:150,tabWidth:"auto",tabHeight:27,selected:0,showHeader:true,plain:false,fit:false,border:true,tools:null,toolPosition:"right",tabPosition:"top",scrollIncrement:100,scrollDuration:400,onLoad:function(_8e){ +},onSelect:function(_8f,_90){ +},onUnselect:function(_91,_92){ +},onBeforeClose:function(_93,_94){ +},onClose:function(_95,_96){ +},onAdd:function(_97,_98){ +},onUpdate:function(_99,_9a){ +},onContextMenu:function(e,_9b,_9c){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.timespinner.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.timespinner.js new file mode 100644 index 0000000..b071de0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.timespinner.js @@ -0,0 +1,185 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"timespinner").options; +$(_2).addClass("timespinner-f"); +$(_2).spinner(_3); +$(_2).unbind(".timespinner"); +$(_2).bind("click.timespinner",function(){ +var _4=0; +if(this.selectionStart!=null){ +_4=this.selectionStart; +}else{ +if(this.createTextRange){ +var _5=_2.createTextRange(); +var s=document.selection.createRange(); +s.setEndPoint("StartToStart",_5); +_4=s.text.length; +} +} +if(_4>=0&&_4<=2){ +_3.highlight=0; +}else{ +if(_4>=3&&_4<=5){ +_3.highlight=1; +}else{ +if(_4>=6&&_4<=8){ +_3.highlight=2; +} +} +} +_7(_2); +}).bind("blur.timespinner",function(){ +_6(_2); +}); +}; +function _7(_8){ +var _9=$.data(_8,"timespinner").options; +var _a=0,_b=0; +if(_9.highlight==0){ +_a=0; +_b=2; +}else{ +if(_9.highlight==1){ +_a=3; +_b=5; +}else{ +if(_9.highlight==2){ +_a=6; +_b=8; +} +} +} +if(_8.selectionStart!=null){ +_8.setSelectionRange(_a,_b); +}else{ +if(_8.createTextRange){ +var _c=_8.createTextRange(); +_c.collapse(); +_c.moveEnd("character",_b); +_c.moveStart("character",_a); +_c.select(); +} +} +$(_8).focus(); +}; +function _d(_e,_f){ +var _10=$.data(_e,"timespinner").options; +if(!_f){ +return null; +} +var vv=_f.split(_10.separator); +for(var i=0;i_14){ +_14=_15; +} +if(_16&&_16<_14){ +_14=_16; +} +var tt=[_17(_14.getHours()),_17(_14.getMinutes())]; +if(_12.showSeconds){ +tt.push(_17(_14.getSeconds())); +} +var val=tt.join(_12.separator); +_12.value=val; +$(_11).spinner("setValue",val); +function _17(_18){ +return (_18<10?"0":"")+_18; +}; +}; +function _19(_1a,_1b){ +var _1c=$.data(_1a,"timespinner").options; +var val=$(_1a).val(); +if(val==""){ +val=[0,0,0].join(_1c.separator); +} +var vv=val.split(_1c.separator); +for(var i=0;i"+"
                                            "+"
                                            "+"
                                            "+"
                                            ").appendTo("body"); +_12.tip=tip; +_14(_11); +} +tip.removeClass("tooltip-top tooltip-bottom tooltip-left tooltip-right").addClass("tooltip-"+_13.position); +_7(_11); +_12.showTimer=setTimeout(function(){ +_6(_11); +tip.show(); +_13.onShow.call(_11,e); +var _15=tip.children(".tooltip-arrow-outer"); +var _16=tip.children(".tooltip-arrow"); +var bc="border-"+_13.position+"-color"; +_15.add(_16).css({borderTopColor:"",borderBottomColor:"",borderLeftColor:"",borderRightColor:""}); +_15.css(bc,tip.css(bc)); +_16.css(bc,tip.css("backgroundColor")); +},_13.showDelay); +}; +function _17(_18,e){ +var _19=$.data(_18,"tooltip"); +if(_19&&_19.tip){ +_7(_18); +_19.hideTimer=setTimeout(function(){ +_19.tip.hide(); +_19.options.onHide.call(_18,e); +},_19.options.hideDelay); +} +}; +function _14(_1a,_1b){ +var _1c=$.data(_1a,"tooltip"); +var _1d=_1c.options; +if(_1b){ +_1d.content=_1b; +} +if(!_1c.tip){ +return; +} +var cc=typeof _1d.content=="function"?_1d.content.call(_1a):_1d.content; +_1c.tip.children(".tooltip-content").html(cc); +_1d.onUpdate.call(_1a,cc); +}; +function _1e(_1f){ +var _20=$.data(_1f,"tooltip"); +if(_20){ +_7(_1f); +var _21=_20.options; +if(_20.tip){ +_20.tip.remove(); +} +if(_21._title){ +$(_1f).attr("title",_21._title); +} +$.removeData(_1f,"tooltip"); +$(_1f).unbind(".tooltip").removeClass("tooltip-f"); +_21.onDestroy.call(_1f); +} +}; +$.fn.tooltip=function(_22,_23){ +if(typeof _22=="string"){ +return $.fn.tooltip.methods[_22](this,_23); +} +_22=_22||{}; +return this.each(function(){ +var _24=$.data(this,"tooltip"); +if(_24){ +$.extend(_24.options,_22); +}else{ +$.data(this,"tooltip",{options:$.extend({},$.fn.tooltip.defaults,$.fn.tooltip.parseOptions(this),_22)}); +_1(this); +} +_3(this); +_14(this); +}); +}; +$.fn.tooltip.methods={options:function(jq){ +return $.data(jq[0],"tooltip").options; +},tip:function(jq){ +return $.data(jq[0],"tooltip").tip; +},arrow:function(jq){ +return jq.tooltip("tip").children(".tooltip-arrow-outer,.tooltip-arrow"); +},show:function(jq,e){ +return jq.each(function(){ +_10(this,e); +}); +},hide:function(jq,e){ +return jq.each(function(){ +_17(this,e); +}); +},update:function(jq,_25){ +return jq.each(function(){ +_14(this,_25); +}); +},reposition:function(jq){ +return jq.each(function(){ +_6(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_1e(this); +}); +}}; +$.fn.tooltip.parseOptions=function(_26){ +var t=$(_26); +var _27=$.extend({},$.parser.parseOptions(_26,["position","showEvent","hideEvent","content",{deltaX:"number",deltaY:"number",showDelay:"number",hideDelay:"number"}]),{_title:t.attr("title")}); +t.attr("title",""); +if(!_27.content){ +_27.content=_27._title; +} +return _27; +}; +$.fn.tooltip.defaults={position:"bottom",content:null,trackMouse:false,deltaX:0,deltaY:0,showEvent:"mouseenter",hideEvent:"mouseleave",showDelay:200,hideDelay:100,onShow:function(e){ +},onHide:function(e){ +},onUpdate:function(_28){ +},onPosition:function(_29,top){ +},onDestroy:function(){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tree.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tree.js new file mode 100644 index 0000000..f4a0752 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.tree.js @@ -0,0 +1,1172 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$(_2); +_3.addClass("tree"); +return _3; +}; +function _4(_5){ +var _6=$.data(_5,"tree").options; +$(_5).unbind().bind("mouseover",function(e){ +var tt=$(e.target); +var _7=tt.closest("div.tree-node"); +if(!_7.length){ +return; +} +_7.addClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.addClass("tree-expanded-hover"); +}else{ +tt.addClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var _8=tt.closest("div.tree-node"); +if(!_8.length){ +return; +} +_8.removeClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.removeClass("tree-expanded-hover"); +}else{ +tt.removeClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("click",function(e){ +var tt=$(e.target); +var _9=tt.closest("div.tree-node"); +if(!_9.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_81(_5,_9[0]); +return false; +}else{ +if(tt.hasClass("tree-checkbox")){ +_34(_5,_9[0],!tt.hasClass("tree-checkbox1")); +return false; +}else{ +_da(_5,_9[0]); +_6.onClick.call(_5,_c(_5,_9[0])); +} +} +e.stopPropagation(); +}).bind("dblclick",function(e){ +var _a=$(e.target).closest("div.tree-node"); +if(!_a.length){ +return; +} +_da(_5,_a[0]); +_6.onDblClick.call(_5,_c(_5,_a[0])); +e.stopPropagation(); +}).bind("contextmenu",function(e){ +var _b=$(e.target).closest("div.tree-node"); +if(!_b.length){ +return; +} +_6.onContextMenu.call(_5,e,_c(_5,_b[0])); +e.stopPropagation(); +}); +}; +function _d(_e){ +var _f=$.data(_e,"tree").options; +_f.dnd=false; +var _10=$(_e).find("div.tree-node"); +_10.draggable("disable"); +_10.css("cursor","pointer"); +}; +function _11(_12){ +var _13=$.data(_12,"tree"); +var _14=_13.options; +var _15=_13.tree; +_13.disabledNodes=[]; +_14.dnd=true; +_15.find("div.tree-node").draggable({disabled:false,revert:true,cursor:"pointer",proxy:function(_16){ +var p=$("
                                            ").appendTo("body"); +p.html(" "+$(_16).find(".tree-title").html()); +p.hide(); +return p; +},deltaX:15,deltaY:15,onBeforeDrag:function(e){ +if(_14.onBeforeDrag.call(_12,_c(_12,this))==false){ +return false; +} +if($(e.target).hasClass("tree-hit")||$(e.target).hasClass("tree-checkbox")){ +return false; +} +if(e.which!=1){ +return false; +} +$(this).next("ul").find("div.tree-node").droppable({accept:"no-accept"}); +var _17=$(this).find("span.tree-indent"); +if(_17.length){ +e.data.offsetWidth-=_17.length*_17.width(); +} +},onStartDrag:function(){ +$(this).draggable("proxy").css({left:-10000,top:-10000}); +_14.onStartDrag.call(_12,_c(_12,this)); +var _18=_c(_12,this); +if(_18.id==undefined){ +_18.id="easyui_tree_node_id_temp"; +_56(_12,_18); +} +_13.draggingNodeId=_18.id; +},onDrag:function(e){ +var x1=e.pageX,y1=e.pageY,x2=e.data.startX,y2=e.data.startY; +var d=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); +if(d>3){ +$(this).draggable("proxy").show(); +} +this.pageY=e.pageY; +},onStopDrag:function(){ +$(this).next("ul").find("div.tree-node").droppable({accept:"div.tree-node"}); +for(var i=0;i<_13.disabledNodes.length;i++){ +$(_13.disabledNodes[i]).droppable("enable"); +} +_13.disabledNodes=[]; +var _19=_cd(_12,_13.draggingNodeId); +if(_19&&_19.id=="easyui_tree_node_id_temp"){ +_19.id=""; +_56(_12,_19); +} +_14.onStopDrag.call(_12,_19); +}}).droppable({accept:"div.tree-node",onDragEnter:function(e,_1a){ +if(_14.onDragEnter.call(_12,this,_1b(_1a))==false){ +_1c(_1a,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_13.disabledNodes.push(this); +} +},onDragOver:function(e,_1d){ +if($(this).droppable("options").disabled){ +return; +} +var _1e=_1d.pageY; +var top=$(this).offset().top; +var _1f=top+$(this).outerHeight(); +_1c(_1d,true); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +if(_1e>top+(_1f-top)/2){ +if(_1f-_1e<5){ +$(this).addClass("tree-node-bottom"); +}else{ +$(this).addClass("tree-node-append"); +} +}else{ +if(_1e-top<5){ +$(this).addClass("tree-node-top"); +}else{ +$(this).addClass("tree-node-append"); +} +} +if(_14.onDragOver.call(_12,this,_1b(_1d))==false){ +_1c(_1d,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_13.disabledNodes.push(this); +} +},onDragLeave:function(e,_20){ +_1c(_20,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +_14.onDragLeave.call(_12,this,_1b(_20)); +},onDrop:function(e,_21){ +var _22=this; +var _23,_24; +if($(this).hasClass("tree-node-append")){ +_23=_25; +_24="append"; +}else{ +_23=_26; +_24=$(this).hasClass("tree-node-top")?"top":"bottom"; +} +if(_14.onBeforeDrop.call(_12,_22,_1b(_21),_24)==false){ +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +return; +} +_23(_21,_22,_24); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +}}); +function _1b(_27,pop){ +return $(_27).closest("ul.tree").tree(pop?"pop":"getData",_27); +}; +function _1c(_28,_29){ +var _2a=$(_28).draggable("proxy").find("span.tree-dnd-icon"); +_2a.removeClass("tree-dnd-yes tree-dnd-no").addClass(_29?"tree-dnd-yes":"tree-dnd-no"); +}; +function _25(_2b,_2c){ +if(_c(_12,_2c).state=="closed"){ +_75(_12,_2c,function(){ +_2d(); +}); +}else{ +_2d(); +} +function _2d(){ +var _2e=_1b(_2b,true); +$(_12).tree("append",{parent:_2c,data:[_2e]}); +_14.onDrop.call(_12,_2c,_2e,"append"); +}; +}; +function _26(_2f,_30,_31){ +var _32={}; +if(_31=="top"){ +_32.before=_30; +}else{ +_32.after=_30; +} +var _33=_1b(_2f,true); +_32.data=_33; +$(_12).tree("insert",_32); +_14.onDrop.call(_12,_30,_33,_31); +}; +}; +function _34(_35,_36,_37){ +var _38=$.data(_35,"tree").options; +if(!_38.checkbox){ +return; +} +var _39=_c(_35,_36); +if(_38.onBeforeCheck.call(_35,_39,_37)==false){ +return; +} +var _3a=$(_36); +var ck=_3a.find(".tree-checkbox"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_37){ +ck.addClass("tree-checkbox1"); +}else{ +ck.addClass("tree-checkbox0"); +} +if(_38.cascadeCheck){ +_3b(_3a); +_3c(_3a); +} +_38.onCheck.call(_35,_39,_37); +function _3c(_3d){ +var _3e=_3d.next().find(".tree-checkbox"); +_3e.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_3d.find(".tree-checkbox").hasClass("tree-checkbox1")){ +_3e.addClass("tree-checkbox1"); +}else{ +_3e.addClass("tree-checkbox0"); +} +}; +function _3b(_3f){ +var _40=_8c(_35,_3f[0]); +if(_40){ +var ck=$(_40.target).find(".tree-checkbox"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_41(_3f)){ +ck.addClass("tree-checkbox1"); +}else{ +if(_42(_3f)){ +ck.addClass("tree-checkbox0"); +}else{ +ck.addClass("tree-checkbox2"); +} +} +_3b($(_40.target)); +} +function _41(n){ +var ck=n.find(".tree-checkbox"); +if(ck.hasClass("tree-checkbox0")||ck.hasClass("tree-checkbox2")){ +return false; +} +var b=true; +n.parent().siblings().each(function(){ +if(!$(this).children("div.tree-node").children(".tree-checkbox").hasClass("tree-checkbox1")){ +b=false; +} +}); +return b; +}; +function _42(n){ +var ck=n.find(".tree-checkbox"); +if(ck.hasClass("tree-checkbox1")||ck.hasClass("tree-checkbox2")){ +return false; +} +var b=true; +n.parent().siblings().each(function(){ +if(!$(this).children("div.tree-node").children(".tree-checkbox").hasClass("tree-checkbox0")){ +b=false; +} +}); +return b; +}; +}; +}; +function _43(_44,_45){ +var _46=$.data(_44,"tree").options; +if(!_46.checkbox){ +return; +} +var _47=$(_45); +if(_48(_44,_45)){ +var ck=_47.find(".tree-checkbox"); +if(ck.length){ +if(ck.hasClass("tree-checkbox1")){ +_34(_44,_45,true); +}else{ +_34(_44,_45,false); +} +}else{ +if(_46.onlyLeafCheck){ +$("").insertBefore(_47.find(".tree-title")); +} +} +}else{ +var ck=_47.find(".tree-checkbox"); +if(_46.onlyLeafCheck){ +ck.remove(); +}else{ +if(ck.hasClass("tree-checkbox1")){ +_34(_44,_45,true); +}else{ +if(ck.hasClass("tree-checkbox2")){ +var _49=true; +var _4a=true; +var _4b=_4c(_44,_45); +for(var i=0;i<_4b.length;i++){ +if(_4b[i].checked){ +_4a=false; +}else{ +_49=false; +} +} +if(_49){ +_34(_44,_45,true); +} +if(_4a){ +_34(_44,_45,false); +} +} +} +} +} +}; +function _4d(_4e,ul,_4f,_50){ +var _51=$.data(_4e,"tree"); +var _52=_51.options; +var _53=$(ul).prevAll("div.tree-node:first"); +_4f=_52.loadFilter.call(_4e,_4f,_53[0]); +var _54=_55(_4e,"domId",_53.attr("id")); +if(!_50){ +_54?_54.children=_4f:_51.data=_4f; +$(ul).empty(); +}else{ +if(_54){ +_54.children?_54.children=_54.children.concat(_4f):_54.children=_4f; +}else{ +_51.data=_51.data.concat(_4f); +} +} +_52.view.render.call(_52.view,_4e,ul,_4f); +if(_52.dnd){ +_11(_4e); +} +if(_54){ +_56(_4e,_54); +} +var _57=[]; +var _58=[]; +for(var i=0;i<_4f.length;i++){ +var _59=_4f[i]; +if(!_59.checked){ +_57.push(_59); +} +} +_5a(_4f,function(_5b){ +if(_5b.checked){ +_58.push(_5b); +} +}); +var _5c=_52.onCheck; +_52.onCheck=function(){ +}; +if(_57.length){ +_34(_4e,$("#"+_57[0].domId)[0],false); +} +for(var i=0;i<_58.length;i++){ +_34(_4e,$("#"+_58[i].domId)[0],true); +} +_52.onCheck=_5c; +setTimeout(function(){ +_5d(_4e,_4e); +},0); +_52.onLoadSuccess.call(_4e,_54,_4f); +}; +function _5d(_5e,ul,_5f){ +var _60=$.data(_5e,"tree").options; +if(_60.lines){ +$(_5e).addClass("tree-lines"); +}else{ +$(_5e).removeClass("tree-lines"); +return; +} +if(!_5f){ +_5f=true; +$(_5e).find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom"); +$(_5e).find("div.tree-node").removeClass("tree-node-last tree-root-first tree-root-one"); +var _61=$(_5e).tree("getRoots"); +if(_61.length>1){ +$(_61[0].target).addClass("tree-root-first"); +}else{ +if(_61.length==1){ +$(_61[0].target).addClass("tree-root-one"); +} +} +} +$(ul).children("li").each(function(){ +var _62=$(this).children("div.tree-node"); +var ul=_62.next("ul"); +if(ul.length){ +if($(this).next().length){ +_63(_62); +} +_5d(_5e,ul,_5f); +}else{ +_64(_62); +} +}); +var _65=$(ul).children("li:last").children("div.tree-node").addClass("tree-node-last"); +_65.children("span.tree-join").removeClass("tree-join").addClass("tree-joinbottom"); +function _64(_66,_67){ +var _68=_66.find("span.tree-icon"); +_68.prev("span.tree-indent").addClass("tree-join"); +}; +function _63(_69){ +var _6a=_69.find("span.tree-indent, span.tree-hit").length; +_69.next().find("div.tree-node").each(function(){ +$(this).children("span:eq("+(_6a-1)+")").addClass("tree-line"); +}); +}; +}; +function _6b(_6c,ul,_6d,_6e){ +var _6f=$.data(_6c,"tree").options; +_6d=_6d||{}; +var _70=null; +if(_6c!=ul){ +var _71=$(ul).prev(); +_70=_c(_6c,_71[0]); +} +if(_6f.onBeforeLoad.call(_6c,_70,_6d)==false){ +return; +} +var _72=$(ul).prev().children("span.tree-folder"); +_72.addClass("tree-loading"); +var _73=_6f.loader.call(_6c,_6d,function(_74){ +_72.removeClass("tree-loading"); +_4d(_6c,ul,_74); +if(_6e){ +_6e(); +} +},function(){ +_72.removeClass("tree-loading"); +_6f.onLoadError.apply(_6c,arguments); +if(_6e){ +_6e(); +} +}); +if(_73==false){ +_72.removeClass("tree-loading"); +} +}; +function _75(_76,_77,_78){ +var _79=$.data(_76,"tree").options; +var hit=$(_77).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +return; +} +var _7a=_c(_76,_77); +if(_79.onBeforeExpand.call(_76,_7a)==false){ +return; +} +hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded"); +hit.next().addClass("tree-folder-open"); +var ul=$(_77).next(); +if(ul.length){ +if(_79.animate){ +ul.slideDown("normal",function(){ +_7a.state="open"; +_79.onExpand.call(_76,_7a); +if(_78){ +_78(); +} +}); +}else{ +ul.css("display","block"); +_7a.state="open"; +_79.onExpand.call(_76,_7a); +if(_78){ +_78(); +} +} +}else{ +var _7b=$("
                                              ").insertAfter(_77); +_6b(_76,_7b[0],{id:_7a.id},function(){ +if(_7b.is(":empty")){ +_7b.remove(); +} +if(_79.animate){ +_7b.slideDown("normal",function(){ +_7a.state="open"; +_79.onExpand.call(_76,_7a); +if(_78){ +_78(); +} +}); +}else{ +_7b.css("display","block"); +_7a.state="open"; +_79.onExpand.call(_76,_7a); +if(_78){ +_78(); +} +} +}); +} +}; +function _7c(_7d,_7e){ +var _7f=$.data(_7d,"tree").options; +var hit=$(_7e).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-collapsed")){ +return; +} +var _80=_c(_7d,_7e); +if(_7f.onBeforeCollapse.call(_7d,_80)==false){ +return; +} +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +hit.next().removeClass("tree-folder-open"); +var ul=$(_7e).next(); +if(_7f.animate){ +ul.slideUp("normal",function(){ +_80.state="closed"; +_7f.onCollapse.call(_7d,_80); +}); +}else{ +ul.css("display","none"); +_80.state="closed"; +_7f.onCollapse.call(_7d,_80); +} +}; +function _81(_82,_83){ +var hit=$(_83).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +_7c(_82,_83); +}else{ +_75(_82,_83); +} +}; +function _84(_85,_86){ +var _87=_4c(_85,_86); +if(_86){ +_87.unshift(_c(_85,_86)); +} +for(var i=0;i<_87.length;i++){ +_75(_85,_87[i].target); +} +}; +function _88(_89,_8a){ +var _8b=[]; +var p=_8c(_89,_8a); +while(p){ +_8b.unshift(p); +p=_8c(_89,p.target); +} +for(var i=0;i<_8b.length;i++){ +_75(_89,_8b[i].target); +} +}; +function _8d(_8e,_8f){ +var c=$(_8e).parent(); +while(c[0].tagName!="BODY"&&c.css("overflow-y")!="auto"){ +c=c.parent(); +} +var n=$(_8f); +var _90=n.offset().top; +if(c[0].tagName!="BODY"){ +var _91=c.offset().top; +if(_90<_91){ +c.scrollTop(c.scrollTop()+_90-_91); +}else{ +if(_90+n.outerHeight()>_91+c.outerHeight()-18){ +c.scrollTop(c.scrollTop()+_90+n.outerHeight()-_91-c.outerHeight()+18); +} +} +}else{ +c.scrollTop(_90); +} +}; +function _92(_93,_94){ +var _95=_4c(_93,_94); +if(_94){ +_95.unshift(_c(_93,_94)); +} +for(var i=0;i<_95.length;i++){ +_7c(_93,_95[i].target); +} +}; +function _96(_97,_98){ +var _99=$(_98.parent); +var _9a=_98.data; +if(!_9a){ +return; +} +_9a=$.isArray(_9a)?_9a:[_9a]; +if(!_9a.length){ +return; +} +var ul; +if(_99.length==0){ +ul=$(_97); +}else{ +if(_48(_97,_99[0])){ +var _9b=_99.find("span.tree-icon"); +_9b.removeClass("tree-file").addClass("tree-folder tree-folder-open"); +var hit=$("").insertBefore(_9b); +if(hit.prev().length){ +hit.prev().remove(); +} +} +ul=_99.next(); +if(!ul.length){ +ul=$("
                                                ").insertAfter(_99); +} +} +_4d(_97,ul[0],_9a,true); +_43(_97,ul.prev()); +}; +function _9c(_9d,_9e){ +var ref=_9e.before||_9e.after; +var _9f=_8c(_9d,ref); +var _a0=_9e.data; +if(!_a0){ +return; +} +_a0=$.isArray(_a0)?_a0:[_a0]; +if(!_a0.length){ +return; +} +_96(_9d,{parent:(_9f?_9f.target:null),data:_a0}); +var _a1=_9f?_9f.children:$(_9d).tree("getRoots"); +for(var i=0;i<_a1.length;i++){ +if(_a1[i].domId==$(ref).attr("id")){ +for(var j=_a0.length-1;j>=0;j--){ +_a1.splice((_9e.before?i:(i+1)),0,_a0[j]); +} +_a1.splice(_a1.length-_a0.length,_a0.length); +break; +} +} +var li=$(); +for(var i=0;i<_a0.length;i++){ +li=li.add($("#"+_a0[i].domId).parent()); +} +if(_9e.before){ +li.insertBefore($(ref).parent()); +}else{ +li.insertAfter($(ref).parent()); +} +}; +function _a2(_a3,_a4){ +var _a5=del(_a4); +$(_a4).parent().remove(); +if(_a5){ +if(!_a5.children||!_a5.children.length){ +var _a6=$(_a5.target); +_a6.find(".tree-icon").removeClass("tree-folder").addClass("tree-file"); +_a6.find(".tree-hit").remove(); +$("").prependTo(_a6); +_a6.next().remove(); +} +_56(_a3,_a5); +_43(_a3,_a5.target); +} +_5d(_a3,_a3); +function del(_a7){ +var id=$(_a7).attr("id"); +var _a8=_8c(_a3,_a7); +var cc=_a8?_a8.children:$.data(_a3,"tree").data; +for(var i=0;i=0;i--){ +_d8.unshift(_d9.children[i]); +} +} +} +}; +function _da(_db,_dc){ +var _dd=$.data(_db,"tree").options; +var _de=_c(_db,_dc); +if(_dd.onBeforeSelect.call(_db,_de)==false){ +return; +} +$(_db).find("div.tree-node-selected").removeClass("tree-node-selected"); +$(_dc).addClass("tree-node-selected"); +_dd.onSelect.call(_db,_de); +}; +function _48(_df,_e0){ +return $(_e0).children("span.tree-hit").length==0; +}; +function _e1(_e2,_e3){ +var _e4=$.data(_e2,"tree").options; +var _e5=_c(_e2,_e3); +if(_e4.onBeforeEdit.call(_e2,_e5)==false){ +return; +} +$(_e3).css("position","relative"); +var nt=$(_e3).find(".tree-title"); +var _e6=nt.outerWidth(); +nt.empty(); +var _e7=$("").appendTo(nt); +_e7.val(_e5.text).focus(); +_e7.width(_e6+20); +_e7.height(document.compatMode=="CSS1Compat"?(18-(_e7.outerHeight()-_e7.height())):18); +_e7.bind("click",function(e){ +return false; +}).bind("mousedown",function(e){ +e.stopPropagation(); +}).bind("mousemove",function(e){ +e.stopPropagation(); +}).bind("keydown",function(e){ +if(e.keyCode==13){ +_e8(_e2,_e3); +return false; +}else{ +if(e.keyCode==27){ +_ee(_e2,_e3); +return false; +} +} +}).bind("blur",function(e){ +e.stopPropagation(); +_e8(_e2,_e3); +}); +}; +function _e8(_e9,_ea){ +var _eb=$.data(_e9,"tree").options; +$(_ea).css("position",""); +var _ec=$(_ea).find("input.tree-editor"); +var val=_ec.val(); +_ec.remove(); +var _ed=_c(_e9,_ea); +_ed.text=val; +_56(_e9,_ed); +_eb.onAfterEdit.call(_e9,_ed); +}; +function _ee(_ef,_f0){ +var _f1=$.data(_ef,"tree").options; +$(_f0).css("position",""); +$(_f0).find("input.tree-editor").remove(); +var _f2=_c(_ef,_f0); +_56(_ef,_f2); +_f1.onCancelEdit.call(_ef,_f2); +}; +$.fn.tree=function(_f3,_f4){ +if(typeof _f3=="string"){ +return $.fn.tree.methods[_f3](this,_f4); +} +var _f3=_f3||{}; +return this.each(function(){ +var _f5=$.data(this,"tree"); +var _f6; +if(_f5){ +_f6=$.extend(_f5.options,_f3); +_f5.options=_f6; +}else{ +_f6=$.extend({},$.fn.tree.defaults,$.fn.tree.parseOptions(this),_f3); +$.data(this,"tree",{options:_f6,tree:_1(this),data:[]}); +var _f7=$.fn.tree.parseData(this); +if(_f7.length){ +_4d(this,this,_f7); +} +} +_4(this); +if(_f6.data){ +_4d(this,this,$.extend(true,[],_f6.data)); +} +_6b(this,this); +}); +}; +$.fn.tree.methods={options:function(jq){ +return $.data(jq[0],"tree").options; +},loadData:function(jq,_f8){ +return jq.each(function(){ +_4d(this,this,_f8); +}); +},getNode:function(jq,_f9){ +return _c(jq[0],_f9); +},getData:function(jq,_fa){ +return _c6(jq[0],_fa); +},reload:function(jq,_fb){ +return jq.each(function(){ +if(_fb){ +var _fc=$(_fb); +var hit=_fc.children("span.tree-hit"); +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +_fc.next().remove(); +_75(this,_fb); +}else{ +$(this).empty(); +_6b(this,this); +} +}); +},getRoot:function(jq){ +return _af(jq[0]); +},getRoots:function(jq){ +return _b2(jq[0]); +},getParent:function(jq,_fd){ +return _8c(jq[0],_fd); +},getChildren:function(jq,_fe){ +return _4c(jq[0],_fe); +},getChecked:function(jq,_ff){ +return _bd(jq[0],_ff); +},getSelected:function(jq){ +return _c3(jq[0]); +},isLeaf:function(jq,_100){ +return _48(jq[0],_100); +},find:function(jq,id){ +return _cd(jq[0],id); +},select:function(jq,_101){ +return jq.each(function(){ +_da(this,_101); +}); +},check:function(jq,_102){ +return jq.each(function(){ +_34(this,_102,true); +}); +},uncheck:function(jq,_103){ +return jq.each(function(){ +_34(this,_103,false); +}); +},collapse:function(jq,_104){ +return jq.each(function(){ +_7c(this,_104); +}); +},expand:function(jq,_105){ +return jq.each(function(){ +_75(this,_105); +}); +},collapseAll:function(jq,_106){ +return jq.each(function(){ +_92(this,_106); +}); +},expandAll:function(jq,_107){ +return jq.each(function(){ +_84(this,_107); +}); +},expandTo:function(jq,_108){ +return jq.each(function(){ +_88(this,_108); +}); +},scrollTo:function(jq,_109){ +return jq.each(function(){ +_8d(this,_109); +}); +},toggle:function(jq,_10a){ +return jq.each(function(){ +_81(this,_10a); +}); +},append:function(jq,_10b){ +return jq.each(function(){ +_96(this,_10b); +}); +},insert:function(jq,_10c){ +return jq.each(function(){ +_9c(this,_10c); +}); +},remove:function(jq,_10d){ +return jq.each(function(){ +_a2(this,_10d); +}); +},pop:function(jq,_10e){ +var node=jq.tree("getData",_10e); +jq.tree("remove",_10e); +return node; +},update:function(jq,_10f){ +return jq.each(function(){ +_56(this,_10f); +}); +},enableDnd:function(jq){ +return jq.each(function(){ +_11(this); +}); +},disableDnd:function(jq){ +return jq.each(function(){ +_d(this); +}); +},beginEdit:function(jq,_110){ +return jq.each(function(){ +_e1(this,_110); +}); +},endEdit:function(jq,_111){ +return jq.each(function(){ +_e8(this,_111); +}); +},cancelEdit:function(jq,_112){ +return jq.each(function(){ +_ee(this,_112); +}); +}}; +$.fn.tree.parseOptions=function(_113){ +var t=$(_113); +return $.extend({},$.parser.parseOptions(_113,["url","method",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean",lines:"boolean",dnd:"boolean"}])); +}; +$.fn.tree.parseData=function(_114){ +var data=[]; +_115(data,$(_114)); +return data; +function _115(aa,tree){ +tree.children("li").each(function(){ +var node=$(this); +var item=$.extend({},$.parser.parseOptions(this,["id","iconCls","state"]),{checked:(node.attr("checked")?true:undefined)}); +item.text=node.children("span").html(); +if(!item.text){ +item.text=node.html(); +} +var _116=node.children("ul"); +if(_116.length){ +item.children=[]; +_115(item.children,_116); +} +aa.push(item); +}); +}; +}; +var _117=1; +var _118={render:function(_119,ul,data){ +var opts=$.data(_119,"tree").options; +var _11a=$(ul).prev("div.tree-node").find("span.tree-indent, span.tree-hit").length; +var cc=_11b(_11a,data); +$(ul).append(cc.join("")); +function _11b(_11c,_11d){ +var cc=[]; +for(var i=0;i<_11d.length;i++){ +var item=_11d[i]; +if(item.state!="open"&&item.state!="closed"){ +item.state="open"; +} +item.domId="_easyui_tree_"+_117++; +cc.push("
                                              • "); +cc.push("
                                                "); +for(var j=0;j<_11c;j++){ +cc.push(""); +} +var _11e=false; +if(item.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(item.children&&item.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +_11e=true; +} +} +if(opts.checkbox){ +if((!opts.onlyLeafCheck)||_11e){ +cc.push(""); +} +} +cc.push(""+opts.formatter.call(_119,item)+""); +cc.push("
                                                "); +if(item.children&&item.children.length){ +var tmp=_11b(_11c+1,item.children); +cc.push("
                                                  "); +cc=cc.concat(tmp); +cc.push("
                                                "); +} +cc.push("
                                              • "); +} +return cc; +}; +}}; +$.fn.tree.defaults={url:null,method:"post",animate:false,checkbox:false,cascadeCheck:true,onlyLeafCheck:false,lines:false,dnd:false,data:null,formatter:function(node){ +return node.text; +},loader:function(_11f,_120,_121){ +var opts=$(this).tree("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_11f,dataType:"json",success:function(data){ +_120(data); +},error:function(){ +_121.apply(this,arguments); +}}); +},loadFilter:function(data,_122){ +return data; +},view:_118,onBeforeLoad:function(node,_123){ +},onLoadSuccess:function(node,data){ +},onLoadError:function(){ +},onClick:function(node){ +},onDblClick:function(node){ +},onBeforeExpand:function(node){ +},onExpand:function(node){ +},onBeforeCollapse:function(node){ +},onCollapse:function(node){ +},onBeforeCheck:function(node,_124){ +},onCheck:function(node,_125){ +},onBeforeSelect:function(node){ +},onSelect:function(node){ +},onContextMenu:function(e,node){ +},onBeforeDrag:function(node){ +},onStartDrag:function(node){ +},onStopDrag:function(node){ +},onDragEnter:function(_126,_127){ +},onDragOver:function(_128,_129){ +},onDragLeave:function(_12a,_12b){ +},onBeforeDrop:function(_12c,_12d,_12e){ +},onDrop:function(_12f,_130,_131){ +},onBeforeEdit:function(node){ +},onAfterEdit:function(node){ +},onCancelEdit:function(node){ +}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.treegrid.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.treegrid.js new file mode 100644 index 0000000..334adfb --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.treegrid.js @@ -0,0 +1,1075 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"treegrid"); +var _4=_3.options; +$(_2).datagrid($.extend({},_4,{url:null,data:null,loader:function(){ +return false; +},onBeforeLoad:function(){ +return false; +},onLoadSuccess:function(){ +},onResizeColumn:function(_5,_6){ +_20(_2); +_4.onResizeColumn.call(_2,_5,_6); +},onSortColumn:function(_7,_8){ +_4.sortName=_7; +_4.sortOrder=_8; +if(_4.remoteSort){ +_1f(_2); +}else{ +var _9=$(_2).treegrid("getData"); +_39(_2,0,_9); +} +_4.onSortColumn.call(_2,_7,_8); +},onBeforeEdit:function(_a,_b){ +if(_4.onBeforeEdit.call(_2,_b)==false){ +return false; +} +},onAfterEdit:function(_c,_d,_e){ +_4.onAfterEdit.call(_2,_d,_e); +},onCancelEdit:function(_f,row){ +_4.onCancelEdit.call(_2,row); +},onSelect:function(_10){ +_4.onSelect.call(_2,_41(_2,_10)); +},onUnselect:function(_11){ +_4.onUnselect.call(_2,_41(_2,_11)); +},onCheck:function(_12){ +_4.onCheck.call(_2,_41(_2,_12)); +},onUncheck:function(_13){ +_4.onUncheck.call(_2,_41(_2,_13)); +},onClickRow:function(_14){ +_4.onClickRow.call(_2,_41(_2,_14)); +},onDblClickRow:function(_15){ +_4.onDblClickRow.call(_2,_41(_2,_15)); +},onClickCell:function(_16,_17){ +_4.onClickCell.call(_2,_17,_41(_2,_16)); +},onDblClickCell:function(_18,_19){ +_4.onDblClickCell.call(_2,_19,_41(_2,_18)); +},onRowContextMenu:function(e,_1a){ +_4.onContextMenu.call(_2,e,_41(_2,_1a)); +}})); +if(!_4.columns){ +var _1b=$.data(_2,"datagrid").options; +_4.columns=_1b.columns; +_4.frozenColumns=_1b.frozenColumns; +} +_3.dc=$.data(_2,"datagrid").dc; +if(_4.pagination){ +var _1c=$(_2).datagrid("getPager"); +_1c.pagination({pageNumber:_4.pageNumber,pageSize:_4.pageSize,pageList:_4.pageList,onSelectPage:function(_1d,_1e){ +_4.pageNumber=_1d; +_4.pageSize=_1e; +_1f(_2); +}}); +_4.pageSize=_1c.pagination("options").pageSize; +} +}; +function _20(_21,_22){ +var _23=$.data(_21,"datagrid").options; +var dc=$.data(_21,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!_23.nowrap||_23.autoRowHeight)){ +if(_22!=undefined){ +var _24=_25(_21,_22); +for(var i=0;i<_24.length;i++){ +_26(_24[i][_23.idField]); +} +} +} +$(_21).datagrid("fixRowHeight",_22); +function _26(_27){ +var tr1=_23.finder.getTr(_21,_27,"body",1); +var tr2=_23.finder.getTr(_21,_27,"body",2); +tr1.css("height",""); +tr2.css("height",""); +var _28=Math.max(tr1.height(),tr2.height()); +tr1.css("height",_28); +tr2.css("height",_28); +}; +}; +function _29(_2a){ +var dc=$.data(_2a,"datagrid").dc; +var _2b=$.data(_2a,"treegrid").options; +if(!_2b.rownumbers){ +return; +} +dc.body1.find("div.datagrid-cell-rownumber").each(function(i){ +$(this).html(i+1); +}); +}; +function _2c(_2d){ +var dc=$.data(_2d,"datagrid").dc; +var _2e=dc.body1.add(dc.body2); +var _2f=($.data(_2e[0],"events")||$._data(_2e[0],"events")).click[0].handler; +dc.body1.add(dc.body2).bind("mouseover",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +tt.hasClass("tree-expanded")?tt.addClass("tree-expanded-hover"):tt.addClass("tree-collapsed-hover"); +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +tt.hasClass("tree-expanded")?tt.removeClass("tree-expanded-hover"):tt.removeClass("tree-collapsed-hover"); +} +e.stopPropagation(); +}).unbind("click").bind("click",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_30(_2d,tr.attr("node-id")); +}else{ +_2f(e); +} +e.stopPropagation(); +}); +}; +function _31(_32,_33){ +var _34=$.data(_32,"treegrid").options; +var tr1=_34.finder.getTr(_32,_33,"body",1); +var tr2=_34.finder.getTr(_32,_33,"body",2); +var _35=$(_32).datagrid("getColumnFields",true).length+(_34.rownumbers?1:0); +var _36=$(_32).datagrid("getColumnFields",false).length; +_37(tr1,_35); +_37(tr2,_36); +function _37(tr,_38){ +$(""+""+"
                                                "+""+"").insertAfter(tr); +}; +}; +function _39(_3a,_3b,_3c,_3d){ +var _3e=$.data(_3a,"treegrid"); +var _3f=_3e.options; +var dc=_3e.dc; +_3c=_3f.loadFilter.call(_3a,_3c,_3b); +var _40=_41(_3a,_3b); +if(_40){ +var _42=_3f.finder.getTr(_3a,_3b,"body",1); +var _43=_3f.finder.getTr(_3a,_3b,"body",2); +var cc1=_42.next("tr.treegrid-tr-tree").children("td").children("div"); +var cc2=_43.next("tr.treegrid-tr-tree").children("td").children("div"); +if(!_3d){ +_40.children=[]; +} +}else{ +var cc1=dc.body1; +var cc2=dc.body2; +if(!_3d){ +_3e.data=[]; +} +} +if(!_3d){ +cc1.empty(); +cc2.empty(); +} +if(_3f.view.onBeforeRender){ +_3f.view.onBeforeRender.call(_3f.view,_3a,_3b,_3c); +} +_3f.view.render.call(_3f.view,_3a,cc1,true); +_3f.view.render.call(_3f.view,_3a,cc2,false); +if(_3f.showFooter){ +_3f.view.renderFooter.call(_3f.view,_3a,dc.footer1,true); +_3f.view.renderFooter.call(_3f.view,_3a,dc.footer2,false); +} +if(_3f.view.onAfterRender){ +_3f.view.onAfterRender.call(_3f.view,_3a); +} +_3f.onLoadSuccess.call(_3a,_40,_3c); +if(!_3b&&_3f.pagination){ +var _44=$.data(_3a,"treegrid").total; +var _45=$(_3a).datagrid("getPager"); +if(_45.pagination("options").total!=_44){ +_45.pagination({total:_44}); +} +} +_20(_3a); +_29(_3a); +$(_3a).treegrid("setSelectionState"); +$(_3a).treegrid("autoSizeColumn"); +}; +function _1f(_46,_47,_48,_49,_4a){ +var _4b=$.data(_46,"treegrid").options; +var _4c=$(_46).datagrid("getPanel").find("div.datagrid-body"); +if(_48){ +_4b.queryParams=_48; +} +var _4d=$.extend({},_4b.queryParams); +if(_4b.pagination){ +$.extend(_4d,{page:_4b.pageNumber,rows:_4b.pageSize}); +} +if(_4b.sortName){ +$.extend(_4d,{sort:_4b.sortName,order:_4b.sortOrder}); +} +var row=_41(_46,_47); +if(_4b.onBeforeLoad.call(_46,row,_4d)==false){ +return; +} +var _4e=_4c.find("tr[node-id=\""+_47+"\"] span.tree-folder"); +_4e.addClass("tree-loading"); +$(_46).treegrid("loading"); +var _4f=_4b.loader.call(_46,_4d,function(_50){ +_4e.removeClass("tree-loading"); +$(_46).treegrid("loaded"); +_39(_46,_47,_50,_49); +if(_4a){ +_4a(); +} +},function(){ +_4e.removeClass("tree-loading"); +$(_46).treegrid("loaded"); +_4b.onLoadError.apply(_46,arguments); +if(_4a){ +_4a(); +} +}); +if(_4f==false){ +_4e.removeClass("tree-loading"); +$(_46).treegrid("loaded"); +} +}; +function _51(_52){ +var _53=_54(_52); +if(_53.length){ +return _53[0]; +}else{ +return null; +} +}; +function _54(_55){ +return $.data(_55,"treegrid").data; +}; +function _56(_57,_58){ +var row=_41(_57,_58); +if(row._parentId){ +return _41(_57,row._parentId); +}else{ +return null; +} +}; +function _25(_59,_5a){ +var _5b=$.data(_59,"treegrid").options; +var _5c=$(_59).datagrid("getPanel").find("div.datagrid-view2 div.datagrid-body"); +var _5d=[]; +if(_5a){ +_5e(_5a); +}else{ +var _5f=_54(_59); +for(var i=0;i<_5f.length;i++){ +_5d.push(_5f[i]); +_5e(_5f[i][_5b.idField]); +} +} +function _5e(_60){ +var _61=_41(_59,_60); +if(_61&&_61.children){ +for(var i=0,len=_61.children.length;i").insertBefore(_8f); +if(hit.prev().length){ +hit.prev().remove(); +} +} +} +_39(_8b,_8c.parent,_8c.data,true); +}; +function _90(_91,_92){ +var ref=_92.before||_92.after; +var _93=$.data(_91,"treegrid").options; +var _94=_56(_91,ref); +_8a(_91,{parent:(_94?_94[_93.idField]:null),data:[_92.data]}); +_95(true); +_95(false); +_29(_91); +function _95(_96){ +var _97=_96?1:2; +var tr=_93.finder.getTr(_91,_92.data[_93.idField],"body",_97); +var _98=tr.closest("table.datagrid-btable"); +tr=tr.parent().children(); +var _99=_93.finder.getTr(_91,ref,"body",_97); +if(_92.before){ +tr.insertBefore(_99); +}else{ +var sub=_99.next("tr.treegrid-tr-tree"); +tr.insertAfter(sub.length?sub:_99); +} +_98.remove(); +}; +}; +function _9a(_9b,_9c){ +var _9d=$.data(_9b,"treegrid"); +$(_9b).datagrid("deleteRow",_9c); +_29(_9b); +_9d.total-=1; +$(_9b).datagrid("getPager").pagination("refresh",{total:_9d.total}); +}; +$.fn.treegrid=function(_9e,_9f){ +if(typeof _9e=="string"){ +var _a0=$.fn.treegrid.methods[_9e]; +if(_a0){ +return _a0(this,_9f); +}else{ +return this.datagrid(_9e,_9f); +} +} +_9e=_9e||{}; +return this.each(function(){ +var _a1=$.data(this,"treegrid"); +if(_a1){ +$.extend(_a1.options,_9e); +}else{ +_a1=$.data(this,"treegrid",{options:$.extend({},$.fn.treegrid.defaults,$.fn.treegrid.parseOptions(this),_9e),data:[]}); +} +_1(this); +if(_a1.options.data){ +$(this).treegrid("loadData",_a1.options.data); +} +_1f(this); +_2c(this); +}); +}; +$.fn.treegrid.methods={options:function(jq){ +return $.data(jq[0],"treegrid").options; +},resize:function(jq,_a2){ +return jq.each(function(){ +$(this).datagrid("resize",_a2); +}); +},fixRowHeight:function(jq,_a3){ +return jq.each(function(){ +_20(this,_a3); +}); +},loadData:function(jq,_a4){ +return jq.each(function(){ +_39(this,_a4.parent,_a4); +}); +},load:function(jq,_a5){ +return jq.each(function(){ +$(this).treegrid("options").pageNumber=1; +$(this).treegrid("getPager").pagination({pageNumber:1}); +$(this).treegrid("reload",_a5); +}); +},reload:function(jq,id){ +return jq.each(function(){ +var _a6=$(this).treegrid("options"); +var _a7={}; +if(typeof id=="object"){ +_a7=id; +}else{ +_a7=$.extend({},_a6.queryParams); +_a7.id=id; +} +if(_a7.id){ +var _a8=$(this).treegrid("find",_a7.id); +if(_a8.children){ +_a8.children.splice(0,_a8.children.length); +} +_a6.queryParams=_a7; +var tr=_a6.finder.getTr(this,_a7.id); +tr.next("tr.treegrid-tr-tree").remove(); +tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +_72(this,_a7.id); +}else{ +_1f(this,null,_a7); +} +}); +},reloadFooter:function(jq,_a9){ +return jq.each(function(){ +var _aa=$.data(this,"treegrid").options; +var dc=$.data(this,"datagrid").dc; +if(_a9){ +$.data(this,"treegrid").footer=_a9; +} +if(_aa.showFooter){ +_aa.view.renderFooter.call(_aa.view,this,dc.footer1,true); +_aa.view.renderFooter.call(_aa.view,this,dc.footer2,false); +if(_aa.view.onAfterRender){ +_aa.view.onAfterRender.call(_aa.view,this); +} +$(this).treegrid("fixRowHeight"); +} +}); +},getData:function(jq){ +return $.data(jq[0],"treegrid").data; +},getFooterRows:function(jq){ +return $.data(jq[0],"treegrid").footer; +},getRoot:function(jq){ +return _51(jq[0]); +},getRoots:function(jq){ +return _54(jq[0]); +},getParent:function(jq,id){ +return _56(jq[0],id); +},getChildren:function(jq,id){ +return _25(jq[0],id); +},getLevel:function(jq,id){ +return _63(jq[0],id); +},find:function(jq,id){ +return _41(jq[0],id); +},isLeaf:function(jq,id){ +var _ab=$.data(jq[0],"treegrid").options; +var tr=_ab.finder.getTr(jq[0],id); +var hit=tr.find("span.tree-hit"); +return hit.length==0; +},select:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("selectRow",id); +}); +},unselect:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("unselectRow",id); +}); +},collapse:function(jq,id){ +return jq.each(function(){ +_6e(this,id); +}); +},expand:function(jq,id){ +return jq.each(function(){ +_72(this,id); +}); +},toggle:function(jq,id){ +return jq.each(function(){ +_30(this,id); +}); +},collapseAll:function(jq,id){ +return jq.each(function(){ +_7c(this,id); +}); +},expandAll:function(jq,id){ +return jq.each(function(){ +_81(this,id); +}); +},expandTo:function(jq,id){ +return jq.each(function(){ +_86(this,id); +}); +},append:function(jq,_ac){ +return jq.each(function(){ +_8a(this,_ac); +}); +},insert:function(jq,_ad){ +return jq.each(function(){ +_90(this,_ad); +}); +},remove:function(jq,id){ +return jq.each(function(){ +_9a(this,id); +}); +},pop:function(jq,id){ +var row=jq.treegrid("find",id); +jq.treegrid("remove",id); +return row; +},refresh:function(jq,id){ +return jq.each(function(){ +var _ae=$.data(this,"treegrid").options; +_ae.view.refreshRow.call(_ae.view,this,id); +}); +},update:function(jq,_af){ +return jq.each(function(){ +var _b0=$.data(this,"treegrid").options; +_b0.view.updateRow.call(_b0.view,this,_af.id,_af.row); +}); +},beginEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("beginEdit",id); +$(this).treegrid("fixRowHeight",id); +}); +},endEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("endEdit",id); +}); +},cancelEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("cancelEdit",id); +}); +}}; +$.fn.treegrid.parseOptions=function(_b1){ +return $.extend({},$.fn.datagrid.parseOptions(_b1),$.parser.parseOptions(_b1,["treeField",{animate:"boolean"}])); +}; +var _b2=$.extend({},$.fn.datagrid.defaults.view,{render:function(_b3,_b4,_b5){ +var _b6=$.data(_b3,"treegrid").options; +var _b7=$(_b3).datagrid("getColumnFields",_b5); +var _b8=$.data(_b3,"datagrid").rowIdPrefix; +if(_b5){ +if(!(_b6.rownumbers||(_b6.frozenColumns&&_b6.frozenColumns.length))){ +return; +} +} +var _b9=0; +var _ba=this; +var _bb=_bc(_b5,this.treeLevel,this.treeNodes); +$(_b4).append(_bb.join("")); +function _bc(_bd,_be,_bf){ +var _c0=[""]; +for(var i=0;i<_bf.length;i++){ +var row=_bf[i]; +if(row.state!="open"&&row.state!="closed"){ +row.state="open"; +} +var css=_b6.rowStyler?_b6.rowStyler.call(_b3,row):""; +var _c1=""; +var _c2=""; +if(typeof css=="string"){ +_c2=css; +}else{ +if(css){ +_c1=css["class"]||""; +_c2=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_b9++%2&&_b6.striped?"datagrid-row-alt ":" ")+_c1+"\""; +var _c3=_c2?"style=\""+_c2+"\"":""; +var _c4=_b8+"-"+(_bd?1:2)+"-"+row[_b6.idField]; +_c0.push(""); +_c0=_c0.concat(_ba.renderRow.call(_ba,_b3,_b7,_bd,_be,row)); +_c0.push(""); +if(row.children&&row.children.length){ +var tt=_bc(_bd,_be+1,row.children); +var v=row.state=="closed"?"none":"block"; +_c0.push(""); +} +} +_c0.push("
                                                "); +_c0=_c0.concat(tt); +_c0.push("
                                                "); +return _c0; +}; +},renderFooter:function(_c5,_c6,_c7){ +var _c8=$.data(_c5,"treegrid").options; +var _c9=$.data(_c5,"treegrid").footer||[]; +var _ca=$(_c5).datagrid("getColumnFields",_c7); +var _cb=[""]; +for(var i=0;i<_c9.length;i++){ +var row=_c9[i]; +row[_c8.idField]=row[_c8.idField]||("foot-row-id"+i); +_cb.push(""); +_cb.push(this.renderRow.call(this,_c5,_ca,_c7,0,row)); +_cb.push(""); +} +_cb.push("
                                                "); +$(_c6).html(_cb.join("")); +},renderRow:function(_cc,_cd,_ce,_cf,row){ +var _d0=$.data(_cc,"treegrid").options; +var cc=[]; +if(_ce&&_d0.rownumbers){ +cc.push("
                                                0
                                                "); +} +for(var i=0;i<_cd.length;i++){ +var _d1=_cd[i]; +var col=$(_cc).datagrid("getColumnOption",_d1); +if(col){ +var css=col.styler?(col.styler(row[_d1],row)||""):""; +var _d2=""; +var _d3=""; +if(typeof css=="string"){ +_d3=css; +}else{ +if(cc){ +_d2=css["class"]||""; +_d3=css["style"]||""; +} +} +var cls=_d2?"class=\""+_d2+"\"":""; +var _d4=col.hidden?"style=\"display:none;"+_d3+"\"":(_d3?"style=\""+_d3+"\"":""); +cc.push(""); +var _d4=""; +if(!col.checkbox){ +if(col.align){ +_d4+="text-align:"+col.align+";"; +} +if(!_d0.nowrap){ +_d4+="white-space:normal;height:auto;"; +}else{ +if(_d0.autoRowHeight){ +_d4+="height:auto;"; +} +} +} +cc.push("
                                                "); +if(col.checkbox){ +if(row.checked){ +cc.push(""); +}else{ +var val=null; +if(col.formatter){ +val=col.formatter(row[_d1],row); +}else{ +val=row[_d1]; +} +if(_d1==_d0.treeField){ +for(var j=0;j<_cf;j++){ +cc.push(""); +} +if(row.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(row.children&&row.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +cc.push(""+val+""); +}else{ +cc.push(val); +} +} +cc.push("
                                                "); +cc.push(""); +} +} +return cc.join(""); +},refreshRow:function(_d5,id){ +this.updateRow.call(this,_d5,id,{}); +},updateRow:function(_d6,id,row){ +var _d7=$.data(_d6,"treegrid").options; +var _d8=$(_d6).treegrid("find",id); +$.extend(_d8,row); +var _d9=$(_d6).treegrid("getLevel",id)-1; +var _da=_d7.rowStyler?_d7.rowStyler.call(_d6,_d8):""; +function _db(_dc){ +var _dd=$(_d6).treegrid("getColumnFields",_dc); +var tr=_d7.finder.getTr(_d6,id,"body",(_dc?1:2)); +var _de=tr.find("div.datagrid-cell-rownumber").html(); +var _df=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow(_d6,_dd,_dc,_d9,_d8)); +tr.attr("style",_da||""); +tr.find("div.datagrid-cell-rownumber").html(_de); +if(_df){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_db.call(this,true); +_db.call(this,false); +$(_d6).treegrid("fixRowHeight",id); +},deleteRow:function(_e0,id){ +var _e1=$.data(_e0,"treegrid").options; +var tr=_e1.finder.getTr(_e0,id); +tr.next("tr.treegrid-tr-tree").remove(); +tr.remove(); +var _e2=del(id); +if(_e2){ +if(_e2.children.length==0){ +tr=_e1.finder.getTr(_e0,_e2[_e1.idField]); +tr.next("tr.treegrid-tr-tree").remove(); +var _e3=tr.children("td[field=\""+_e1.treeField+"\"]").children("div.datagrid-cell"); +_e3.find(".tree-icon").removeClass("tree-folder").addClass("tree-file"); +_e3.find(".tree-hit").remove(); +$("").prependTo(_e3); +} +} +function del(id){ +var cc; +var _e4=$(_e0).treegrid("getParent",id); +if(_e4){ +cc=_e4.children; +}else{ +cc=$(_e0).treegrid("getData"); +} +for(var i=0;ib?1:-1); +}; +r=_f5(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +for(var i=0;i<_f4.length;i++){ +var _f6=_f4[i].children; +if(_f6&&_f6.length){ +_f3(_f6); +} +} +}; +},transfer:function(_f7,_f8,_f9){ +var _fa=$.data(_f7,"treegrid").options; +var _fb=[]; +for(var i=0;i<_f9.length;i++){ +_fb.push(_f9[i]); +} +var _fc=[]; +for(var i=0;i<_fb.length;i++){ +var row=_fb[i]; +if(!_f8){ +if(!row._parentId){ +_fc.push(row); +_fb.splice(i,1); +i--; +} +}else{ +if(row._parentId==_f8){ +_fc.push(row); +_fb.splice(i,1); +i--; +} +} +} +var _fd=[]; +for(var i=0;i<_fc.length;i++){ +_fd.push(_fc[i]); +} +while(_fd.length){ +var _fe=_fd.shift(); +for(var i=0;i<_fb.length;i++){ +var row=_fb[i]; +if(row._parentId==_fe[_fa.idField]){ +if(_fe.children){ +_fe.children.push(row); +}else{ +_fe.children=[row]; +} +_fd.push(row); +_fb.splice(i,1); +i--; +} +} +} +return _fc; +}}); +$.fn.treegrid.defaults=$.extend({},$.fn.datagrid.defaults,{treeField:null,animate:false,singleSelect:true,view:_b2,loader:function(_ff,_100,_101){ +var opts=$(this).treegrid("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_ff,dataType:"json",success:function(data){ +_100(data); +},error:function(){ +_101.apply(this,arguments); +}}); +},loadFilter:function(data,_102){ +return data; +},finder:{getTr:function(_103,id,type,_104){ +type=type||"body"; +_104=_104||0; +var dc=$.data(_103,"datagrid").dc; +if(_104==0){ +var opts=$.data(_103,"treegrid").options; +var tr1=opts.finder.getTr(_103,id,type,1); +var tr2=opts.finder.getTr(_103,id,type,2); +return tr1.add(tr2); +}else{ +if(type=="body"){ +var tr=$("#"+$.data(_103,"datagrid").rowIdPrefix+"-"+_104+"-"+id); +if(!tr.length){ +tr=(_104==1?dc.body1:dc.body2).find("tr[node-id=\""+id+"\"]"); +} +return tr; +}else{ +if(type=="footer"){ +return (_104==1?dc.footer1:dc.footer2).find("tr[node-id=\""+id+"\"]"); +}else{ +if(type=="selected"){ +return (_104==1?dc.body1:dc.body2).find("tr.datagrid-row-selected"); +}else{ +if(type=="highlight"){ +return (_104==1?dc.body1:dc.body2).find("tr.datagrid-row-over"); +}else{ +if(type=="checked"){ +return (_104==1?dc.body1:dc.body2).find("tr.datagrid-row-checked"); +}else{ +if(type=="last"){ +return (_104==1?dc.body1:dc.body2).find("tr:last[node-id]"); +}else{ +if(type=="allbody"){ +return (_104==1?dc.body1:dc.body2).find("tr[node-id]"); +}else{ +if(type=="allfooter"){ +return (_104==1?dc.footer1:dc.footer2).find("tr[node-id]"); +} +} +} +} +} +} +} +} +} +},getRow:function(_105,p){ +var id=(typeof p=="object")?p.attr("node-id"):p; +return $(_105).treegrid("find",id); +},getRows:function(_106){ +return $(_106).treegrid("getChildren"); +}},onBeforeLoad:function(row,_107){ +},onLoadSuccess:function(row,data){ +},onLoadError:function(){ +},onBeforeCollapse:function(row){ +},onCollapse:function(row){ +},onBeforeExpand:function(row){ +},onExpand:function(row){ +},onClickRow:function(row){ +},onDblClickRow:function(row){ +},onClickCell:function(_108,row){ +},onDblClickCell:function(_109,row){ +},onContextMenu:function(e,row){ +},onBeforeEdit:function(row){ +},onAfterEdit:function(row,_10a){ +},onCancelEdit:function(row){ +}}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.validatebox.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.validatebox.js new file mode 100644 index 0000000..f55f6eb --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.validatebox.js @@ -0,0 +1,224 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("validatebox-text"); +}; +function _3(_4){ +var _5=$.data(_4,"validatebox"); +_5.validating=false; +if(_5.timer){ +clearTimeout(_5.timer); +} +$(_4).tooltip("destroy"); +$(_4).unbind(); +$(_4).remove(); +}; +function _6(_7){ +var _8=$(_7); +var _9=$.data(_7,"validatebox"); +_8.unbind(".validatebox"); +if(_9.options.novalidate){ +return; +} +_8.bind("focus.validatebox",function(){ +_9.validating=true; +_9.value=undefined; +(function(){ +if(_9.validating){ +if(_9.value!=_8.val()){ +_9.value=_8.val(); +if(_9.timer){ +clearTimeout(_9.timer); +} +_9.timer=setTimeout(function(){ +$(_7).validatebox("validate"); +},_9.options.delay); +}else{ +_f(_7); +} +setTimeout(arguments.callee,200); +} +})(); +}).bind("blur.validatebox",function(){ +if(_9.timer){ +clearTimeout(_9.timer); +_9.timer=undefined; +} +_9.validating=false; +_a(_7); +}).bind("mouseenter.validatebox",function(){ +if(_8.hasClass("validatebox-invalid")){ +_b(_7); +} +}).bind("mouseleave.validatebox",function(){ +if(!_9.validating){ +_a(_7); +} +}); +}; +function _b(_c){ +var _d=$.data(_c,"validatebox"); +var _e=_d.options; +$(_c).tooltip($.extend({},_e.tipOptions,{content:_d.message,position:_e.tipPosition,deltaX:_e.deltaX})).tooltip("show"); +_d.tip=true; +}; +function _f(_10){ +var _11=$.data(_10,"validatebox"); +if(_11&&_11.tip){ +$(_10).tooltip("reposition"); +} +}; +function _a(_12){ +var _13=$.data(_12,"validatebox"); +_13.tip=false; +$(_12).tooltip("hide"); +}; +function _14(_15){ +var _16=$.data(_15,"validatebox"); +var _17=_16.options; +var box=$(_15); +var _18=box.val(); +function _19(msg){ +_16.message=msg; +}; +function _1a(_1b,_1c){ +var _1d=/([a-zA-Z_]+)(.*)/.exec(_1b); +var _1e=_17.rules[_1d[1]]; +if(_1e&&_18){ +var _1f=_1c||_17.validParams||eval(_1d[2]); +if(!_1e["validator"].call(_15,_18,_1f)){ +box.addClass("validatebox-invalid"); +var _20=_1e["message"]; +if(_1f){ +for(var i=0;i<_1f.length;i++){ +_20=_20.replace(new RegExp("\\{"+i+"\\}","g"),_1f[i]); +} +} +_19(_17.invalidMessage||_20); +if(_16.validating){ +_b(_15); +} +return false; +} +} +return true; +}; +box.removeClass("validatebox-invalid"); +_a(_15); +if(_17.novalidate||box.is(":disabled")){ +return true; +} +if(_17.required){ +if(_18==""){ +box.addClass("validatebox-invalid"); +_19(_17.missingMessage); +if(_16.validating){ +_b(_15); +} +return false; +} +} +if(_17.validType){ +if($.isArray(_17.validType)){ +for(var i=0;i<_17.validType.length;i++){ +if(!_1a(_17.validType[i])){ +return false; +} +} +}else{ +if(typeof _17.validType=="string"){ +if(!_1a(_17.validType)){ +return false; +} +}else{ +for(var _21 in _17.validType){ +var _22=_17.validType[_21]; +if(!_1a(_21,_22)){ +return false; +} +} +} +} +} +return true; +}; +function _23(_24,_25){ +var _26=$.data(_24,"validatebox").options; +if(_25!=undefined){ +_26.novalidate=_25; +} +if(_26.novalidate){ +$(_24).removeClass("validatebox-invalid"); +_a(_24); +} +_6(_24); +}; +$.fn.validatebox=function(_27,_28){ +if(typeof _27=="string"){ +return $.fn.validatebox.methods[_27](this,_28); +} +_27=_27||{}; +return this.each(function(){ +var _29=$.data(this,"validatebox"); +if(_29){ +$.extend(_29.options,_27); +}else{ +_1(this); +$.data(this,"validatebox",{options:$.extend({},$.fn.validatebox.defaults,$.fn.validatebox.parseOptions(this),_27)}); +} +_23(this); +_14(this); +}); +}; +$.fn.validatebox.methods={options:function(jq){ +return $.data(jq[0],"validatebox").options; +},destroy:function(jq){ +return jq.each(function(){ +_3(this); +}); +},validate:function(jq){ +return jq.each(function(){ +_14(this); +}); +},isValid:function(jq){ +return _14(jq[0]); +},enableValidation:function(jq){ +return jq.each(function(){ +_23(this,false); +}); +},disableValidation:function(jq){ +return jq.each(function(){ +_23(this,true); +}); +}}; +$.fn.validatebox.parseOptions=function(_2a){ +var t=$(_2a); +return $.extend({},$.parser.parseOptions(_2a,["validType","missingMessage","invalidMessage","tipPosition",{delay:"number",deltaX:"number"}]),{required:(t.attr("required")?true:undefined),novalidate:(t.attr("novalidate")!=undefined?true:undefined)}); +}; +$.fn.validatebox.defaults={required:false,validType:null,validParams:null,delay:200,missingMessage:"This field is required.",invalidMessage:null,tipPosition:"right",deltaX:0,novalidate:false,tipOptions:{showEvent:"none",hideEvent:"none",showDelay:0,hideDelay:0,zIndex:"",onShow:function(){ +$(this).tooltip("tip").css({color:"#000",borderColor:"#CC9933",backgroundColor:"#FFFFCC"}); +},onHide:function(){ +$(this).tooltip("destroy"); +}},rules:{email:{validator:function(_2b){ +return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-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-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(_2b); +},message:"Please enter a valid email address."},url:{validator:function(_2c){ +return /^(https?|ftp):\/\/(((([a-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-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(_2c); +},message:"Please enter a valid URL."},length:{validator:function(_2d,_2e){ +var len=$.trim(_2d).length; +return len>=_2e[0]&&len<=_2e[1]; +},message:"Please enter a value between {0} and {1}."},remote:{validator:function(_2f,_30){ +var _31={}; +_31[_30[1]]=_2f; +var _32=$.ajax({url:_30[0],dataType:"json",data:_31,async:false,cache:false,type:"post"}).responseText; +return _32=="true"; +},message:"Please fix this field."}}}; +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.window.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.window.js new file mode 100644 index 0000000..0795c91 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/plugins/jquery.window.js @@ -0,0 +1,276 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +(function($){ +function _1(_2,_3){ +var _4=$.data(_2,"window").options; +if(_3){ +$.extend(_4,_3); +} +$(_2).panel("resize",_4); +}; +function _5(_6,_7){ +var _8=$.data(_6,"window"); +if(_7){ +if(_7.left!=null){ +_8.options.left=_7.left; +} +if(_7.top!=null){ +_8.options.top=_7.top; +} +} +$(_6).panel("move",_8.options); +if(_8.shadow){ +_8.shadow.css({left:_8.options.left,top:_8.options.top}); +} +}; +function _9(_a,_b){ +var _c=$.data(_a,"window"); +var _d=_c.options; +var _e=_d.width; +if(isNaN(_e)){ +_e=_c.window._outerWidth(); +} +if(_d.inline){ +var _f=_c.window.parent(); +_d.left=(_f.width()-_e)/2+_f.scrollLeft(); +}else{ +_d.left=($(window)._outerWidth()-_e)/2+$(document).scrollLeft(); +} +if(_b){ +_5(_a); +} +}; +function _10(_11,_12){ +var _13=$.data(_11,"window"); +var _14=_13.options; +var _15=_14.height; +if(isNaN(_15)){ +_15=_13.window._outerHeight(); +} +if(_14.inline){ +var _16=_13.window.parent(); +_14.top=(_16.height()-_15)/2+_16.scrollTop(); +}else{ +_14.top=($(window)._outerHeight()-_15)/2+$(document).scrollTop(); +} +if(_12){ +_5(_11); +} +}; +function _17(_18){ +var _19=$.data(_18,"window"); +var _1a=_19.options.closed; +var win=$(_18).panel($.extend({},_19.options,{border:false,doSize:true,closed:true,cls:"window",headerCls:"window-header",bodyCls:"window-body "+(_19.options.noheader?"window-body-noheader":""),onBeforeDestroy:function(){ +if(_19.options.onBeforeDestroy.call(_18)==false){ +return false; +} +if(_19.shadow){ +_19.shadow.remove(); +} +if(_19.mask){ +_19.mask.remove(); +} +},onClose:function(){ +if(_19.shadow){ +_19.shadow.hide(); +} +if(_19.mask){ +_19.mask.hide(); +} +_19.options.onClose.call(_18); +},onOpen:function(){ +if(_19.mask){ +_19.mask.css({display:"block",zIndex:$.fn.window.defaults.zIndex++}); +} +if(_19.shadow){ +_19.shadow.css({display:"block",zIndex:$.fn.window.defaults.zIndex++,left:_19.options.left,top:_19.options.top,width:_19.window._outerWidth(),height:_19.window._outerHeight()}); +} +_19.window.css("z-index",$.fn.window.defaults.zIndex++); +_19.options.onOpen.call(_18); +},onResize:function(_1b,_1c){ +var _1d=$(this).panel("options"); +$.extend(_19.options,{width:_1d.width,height:_1d.height,left:_1d.left,top:_1d.top}); +if(_19.shadow){ +_19.shadow.css({left:_19.options.left,top:_19.options.top,width:_19.window._outerWidth(),height:_19.window._outerHeight()}); +} +_19.options.onResize.call(_18,_1b,_1c); +},onMinimize:function(){ +if(_19.shadow){ +_19.shadow.hide(); +} +if(_19.mask){ +_19.mask.hide(); +} +_19.options.onMinimize.call(_18); +},onBeforeCollapse:function(){ +if(_19.options.onBeforeCollapse.call(_18)==false){ +return false; +} +if(_19.shadow){ +_19.shadow.hide(); +} +},onExpand:function(){ +if(_19.shadow){ +_19.shadow.show(); +} +_19.options.onExpand.call(_18); +}})); +_19.window=win.panel("panel"); +if(_19.mask){ +_19.mask.remove(); +} +if(_19.options.modal==true){ +_19.mask=$("
                                                ").insertAfter(_19.window); +_19.mask.css({width:(_19.options.inline?_19.mask.parent().width():_1e().width),height:(_19.options.inline?_19.mask.parent().height():_1e().height),display:"none"}); +} +if(_19.shadow){ +_19.shadow.remove(); +} +if(_19.options.shadow==true){ +_19.shadow=$("
                                                ").insertAfter(_19.window); +_19.shadow.css({display:"none"}); +} +if(_19.options.left==null){ +_9(_18); +} +if(_19.options.top==null){ +_10(_18); +} +_5(_18); +if(!_1a){ +win.window("open"); +} +}; +function _1f(_20){ +var _21=$.data(_20,"window"); +_21.window.draggable({handle:">div.panel-header>div.panel-title",disabled:_21.options.draggable==false,onStartDrag:function(e){ +if(_21.mask){ +_21.mask.css("z-index",$.fn.window.defaults.zIndex++); +} +if(_21.shadow){ +_21.shadow.css("z-index",$.fn.window.defaults.zIndex++); +} +_21.window.css("z-index",$.fn.window.defaults.zIndex++); +if(!_21.proxy){ +_21.proxy=$("
                                                ").insertAfter(_21.window); +} +_21.proxy.css({display:"none",zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_21.proxy._outerWidth(_21.window._outerWidth()); +_21.proxy._outerHeight(_21.window._outerHeight()); +setTimeout(function(){ +if(_21.proxy){ +_21.proxy.show(); +} +},500); +},onDrag:function(e){ +_21.proxy.css({display:"block",left:e.data.left,top:e.data.top}); +return false; +},onStopDrag:function(e){ +_21.options.left=e.data.left; +_21.options.top=e.data.top; +$(_20).window("move"); +_21.proxy.remove(); +_21.proxy=null; +}}); +_21.window.resizable({disabled:_21.options.resizable==false,onStartResize:function(e){ +_21.pmask=$("
                                                ").insertAfter(_21.window); +_21.pmask.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top,width:_21.window._outerWidth(),height:_21.window._outerHeight()}); +if(!_21.proxy){ +_21.proxy=$("
                                                ").insertAfter(_21.window); +} +_21.proxy.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_21.proxy._outerWidth(e.data.width); +_21.proxy._outerHeight(e.data.height); +},onResize:function(e){ +_21.proxy.css({left:e.data.left,top:e.data.top}); +_21.proxy._outerWidth(e.data.width); +_21.proxy._outerHeight(e.data.height); +return false; +},onStopResize:function(e){ +$.extend(_21.options,{left:e.data.left,top:e.data.top,width:e.data.width,height:e.data.height}); +_1(_20); +_21.pmask.remove(); +_21.pmask=null; +_21.proxy.remove(); +_21.proxy=null; +}}); +}; +function _1e(){ +if(document.compatMode=="BackCompat"){ +return {width:Math.max(document.body.scrollWidth,document.body.clientWidth),height:Math.max(document.body.scrollHeight,document.body.clientHeight)}; +}else{ +return {width:Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth),height:Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight)}; +} +}; +$(window).resize(function(){ +$("body>div.window-mask").css({width:$(window)._outerWidth(),height:$(window)._outerHeight()}); +setTimeout(function(){ +$("body>div.window-mask").css({width:_1e().width,height:_1e().height}); +},50); +}); +$.fn.window=function(_22,_23){ +if(typeof _22=="string"){ +var _24=$.fn.window.methods[_22]; +if(_24){ +return _24(this,_23); +}else{ +return this.panel(_22,_23); +} +} +_22=_22||{}; +return this.each(function(){ +var _25=$.data(this,"window"); +if(_25){ +$.extend(_25.options,_22); +}else{ +_25=$.data(this,"window",{options:$.extend({},$.fn.window.defaults,$.fn.window.parseOptions(this),_22)}); +if(!_25.options.inline){ +document.body.appendChild(this); +} +} +_17(this); +_1f(this); +}); +}; +$.fn.window.methods={options:function(jq){ +var _26=jq.panel("options"); +var _27=$.data(jq[0],"window").options; +return $.extend(_27,{closed:_26.closed,collapsed:_26.collapsed,minimized:_26.minimized,maximized:_26.maximized}); +},window:function(jq){ +return $.data(jq[0],"window").window; +},resize:function(jq,_28){ +return jq.each(function(){ +_1(this,_28); +}); +},move:function(jq,_29){ +return jq.each(function(){ +_5(this,_29); +}); +},hcenter:function(jq){ +return jq.each(function(){ +_9(this,true); +}); +},vcenter:function(jq){ +return jq.each(function(){ +_10(this,true); +}); +},center:function(jq){ +return jq.each(function(){ +_9(this); +_10(this); +_5(this); +}); +}}; +$.fn.window.parseOptions=function(_2a){ +return $.extend({},$.fn.panel.parseOptions(_2a),$.parser.parseOptions(_2a,[{draggable:"boolean",resizable:"boolean",shadow:"boolean",modal:"boolean",inline:"boolean"}])); +}; +$.fn.window.defaults=$.extend({},$.fn.panel.defaults,{zIndex:9000,draggable:true,resizable:true,shadow:true,modal:false,inline:false,title:"New Window",collapsible:true,minimizable:true,maximizable:true,closable:true,closed:false}); +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/readme.txt b/BBMPTMes/MESWebSite/Scripts/EasyUI/readme.txt new file mode 100644 index 0000000..de712f3 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/readme.txt @@ -0,0 +1,4 @@ +Current Version: 1.3.6 +====================== +This software is allowed to use under GPL or you need to buy commercial license for better support or other purpose. +Please contact us at info@jeasyui.com diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/easyloader.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/easyloader.js new file mode 100644 index 0000000..2045a33 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/easyloader.js @@ -0,0 +1,407 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * easyloader - jQuery EasyUI + * + */ +(function(){ + var modules = { + draggable:{ + js:'jquery.draggable.js' + }, + droppable:{ + js:'jquery.droppable.js' + }, + resizable:{ + js:'jquery.resizable.js' + }, + linkbutton:{ + js:'jquery.linkbutton.js', + css:'linkbutton.css' + }, + progressbar:{ + js:'jquery.progressbar.js', + css:'progressbar.css' + }, + tooltip:{ + js:'jquery.tooltip.js', + css:'tooltip.css' + }, + pagination:{ + js:'jquery.pagination.js', + css:'pagination.css', + dependencies:['linkbutton'] + }, + datagrid:{ + js:'jquery.datagrid.js', + css:'datagrid.css', + dependencies:['panel','resizable','linkbutton','pagination'] + }, + treegrid:{ + js:'jquery.treegrid.js', + css:'tree.css', + dependencies:['datagrid'] + }, + propertygrid:{ + js:'jquery.propertygrid.js', + css:'propertygrid.css', + dependencies:['datagrid'] + }, + panel: { + js:'jquery.panel.js', + css:'panel.css' + }, + window:{ + js:'jquery.window.js', + css:'window.css', + dependencies:['resizable','draggable','panel'] + }, + dialog:{ + js:'jquery.dialog.js', + css:'dialog.css', + dependencies:['linkbutton','window'] + }, + messager:{ + js:'jquery.messager.js', + css:'messager.css', + dependencies:['linkbutton','window','progressbar'] + }, + layout:{ + js:'jquery.layout.js', + css:'layout.css', + dependencies:['resizable','panel'] + }, + form:{ + js:'jquery.form.js' + }, + menu:{ + js:'jquery.menu.js', + css:'menu.css' + }, + tabs:{ + js:'jquery.tabs.js', + css:'tabs.css', + dependencies:['panel','linkbutton'] + }, + menubutton:{ + js:'jquery.menubutton.js', + css:'menubutton.css', + dependencies:['linkbutton','menu'] + }, + splitbutton:{ + js:'jquery.splitbutton.js', + css:'splitbutton.css', + dependencies:['menubutton'] + }, + accordion:{ + js:'jquery.accordion.js', + css:'accordion.css', + dependencies:['panel'] + }, + calendar:{ + js:'jquery.calendar.js', + css:'calendar.css' + }, + combo:{ + js:'jquery.combo.js', + css:'combo.css', + dependencies:['panel','validatebox'] + }, + combobox:{ + js:'jquery.combobox.js', + css:'combobox.css', + dependencies:['combo'] + }, + combotree:{ + js:'jquery.combotree.js', + dependencies:['combo','tree'] + }, + combogrid:{ + js:'jquery.combogrid.js', + dependencies:['combo','datagrid'] + }, + validatebox:{ + js:'jquery.validatebox.js', + css:'validatebox.css', + dependencies:['tooltip'] + }, + numberbox:{ + js:'jquery.numberbox.js', + dependencies:['validatebox'] + }, + searchbox:{ + js:'jquery.searchbox.js', + css:'searchbox.css', + dependencies:['menubutton'] + }, + spinner:{ + js:'jquery.spinner.js', + css:'spinner.css', + dependencies:['validatebox'] + }, + numberspinner:{ + js:'jquery.numberspinner.js', + dependencies:['spinner','numberbox'] + }, + timespinner:{ + js:'jquery.timespinner.js', + dependencies:['spinner'] + }, + tree:{ + js:'jquery.tree.js', + css:'tree.css', + dependencies:['draggable','droppable'] + }, + datebox:{ + js:'jquery.datebox.js', + css:'datebox.css', + dependencies:['calendar','combo'] + }, + datetimebox:{ + js:'jquery.datetimebox.js', + dependencies:['datebox','timespinner'] + }, + slider:{ + js:'jquery.slider.js', + dependencies:['draggable'] + }, + tooltip:{ + js:'jquery.tooltip.js' + }, + parser:{ + js:'jquery.parser.js' + } + }; + + var locales = { + 'af':'easyui-lang-af.js', + 'ar':'easyui-lang-ar.js', + 'bg':'easyui-lang-bg.js', + 'ca':'easyui-lang-ca.js', + 'cs':'easyui-lang-cs.js', + 'cz':'easyui-lang-cz.js', + 'da':'easyui-lang-da.js', + 'de':'easyui-lang-de.js', + 'el':'easyui-lang-el.js', + 'en':'easyui-lang-en.js', + 'es':'easyui-lang-es.js', + 'fr':'easyui-lang-fr.js', + 'it':'easyui-lang-it.js', + 'jp':'easyui-lang-jp.js', + 'nl':'easyui-lang-nl.js', + 'pl':'easyui-lang-pl.js', + 'pt_BR':'easyui-lang-pt_BR.js', + 'ru':'easyui-lang-ru.js', + 'sv_SE':'easyui-lang-sv_SE.js', + 'tr':'easyui-lang-tr.js', + 'zh_CN':'easyui-lang-zh_CN.js', + 'zh_TW':'easyui-lang-zh_TW.js' + }; + + var queues = {}; + + function loadJs(url, callback){ + var done = false; + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.language = 'javascript'; + script.src = url; + script.onload = script.onreadystatechange = function(){ + if (!done && (!script.readyState || script.readyState == 'loaded' || script.readyState == 'complete')){ + done = true; + script.onload = script.onreadystatechange = null; + if (callback){ + callback.call(script); + } + } + } + document.getElementsByTagName("head")[0].appendChild(script); + } + + function runJs(url, callback){ + loadJs(url, function(){ + document.getElementsByTagName("head")[0].removeChild(this); + if (callback){ + callback(); + } + }); + } + + function loadCss(url, callback){ + var link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.media = 'screen'; + link.href = url; + document.getElementsByTagName('head')[0].appendChild(link); + if (callback){ + callback.call(link); + } + } + + function loadSingle(name, callback){ + queues[name] = 'loading'; + + var module = modules[name]; + var jsStatus = 'loading'; + var cssStatus = (easyloader.css && module['css']) ? 'loading' : 'loaded'; + + if (easyloader.css && module['css']){ + if (/^http/i.test(module['css'])){ + var url = module['css']; + } else { + var url = easyloader.base + 'themes/' + easyloader.theme + '/' + module['css']; + } + loadCss(url, function(){ + cssStatus = 'loaded'; + if (jsStatus == 'loaded' && cssStatus == 'loaded'){ + finish(); + } + }); + } + + if (/^http/i.test(module['js'])){ + var url = module['js']; + } else { + var url = easyloader.base + 'plugins/' + module['js']; + } + loadJs(url, function(){ + jsStatus = 'loaded'; + if (jsStatus == 'loaded' && cssStatus == 'loaded'){ + finish(); + } + }); + + function finish(){ + queues[name] = 'loaded'; + easyloader.onProgress(name); + if (callback){ + callback(); + } + } + } + + function loadModule(name, callback){ + var mm = []; + var doLoad = false; + + if (typeof name == 'string'){ + add(name); + } else { + for(var i=0; idiv.panel>div.accordion-header'); + if (headers.length){ + headerHeight = $(headers[0]).css('height', '')._outerHeight(); + } + if (!isNaN(opts.height)){ + cc._outerHeight(opts.height); + bodyHeight = cc.height() - headerHeight*headers.length; + } else { + cc.css('height', ''); + } + + _resize(true, bodyHeight - _resize(false) + 1); + + function _resize(collapsible, height){ + var totalHeight = 0; + for(var i=0; i= panels.length){ + return null; + } else { + return panels[which]; + } + } + return findBy(container, 'title', which); + } + + function setProperties(container){ + var opts = $.data(container, 'accordion').options; + var cc = $(container); + if (opts.border){ + cc.removeClass('accordion-noborder'); + } else { + cc.addClass('accordion-noborder'); + } + } + + function init(container){ + var state = $.data(container, 'accordion'); + var cc = $(container); + cc.addClass('accordion'); + + state.panels = []; + cc.children('div').each(function(){ + var opts = $.extend({}, $.parser.parseOptions(this), { + selected: ($(this).attr('selected') ? true : undefined) + }); + var pp = $(this); + state.panels.push(pp); + createPanel(container, pp, opts); + }); + + cc.bind('_resize', function(e,force){ + var opts = $.data(container, 'accordion').options; + if (opts.fit == true || force){ + setSize(container); + } + return false; + }); + } + + function createPanel(container, pp, options){ + var opts = $.data(container, 'accordion').options; + pp.panel($.extend({}, { + collapsible: true, + minimizable: false, + maximizable: false, + closable: false, + doSize: false, + collapsed: true, + headerCls: 'accordion-header', + bodyCls: 'accordion-body' + }, options, { + onBeforeExpand: function(){ + if (options.onBeforeExpand){ + if (options.onBeforeExpand.call(this) == false){return false} + } + if (!opts.multiple){ + // get all selected panel + var all = $.grep(getSelections(container), function(p){ + return p.panel('options').collapsible; + }); + for(var i=0; i').addClass('accordion-collapse accordion-expand').appendTo(tool); + t.bind('click', function(){ + var index = getPanelIndex(container, pp); + if (pp.panel('options').collapsed){ + select(container, index); + } else { + unselect(container, index); + } + return false; + }); + pp.panel('options').collapsible ? t.show() : t.hide(); + + header.click(function(){ + $(this).find('a.accordion-collapse:visible').triggerHandler('click'); + return false; + }); + } + + /** + * select and set the specified panel active + */ + function select(container, which){ + var p = getPanel(container, which); + if (!p){return} + stopAnimate(container); + var opts = $.data(container, 'accordion').options; + p.panel('expand', opts.animate); + } + + function unselect(container, which){ + var p = getPanel(container, which); + if (!p){return} + stopAnimate(container); + var opts = $.data(container, 'accordion').options; + p.panel('collapse', opts.animate); + } + + function doFirstSelect(container){ + var opts = $.data(container, 'accordion').options; + var p = findBy(container, 'selected', true); + if (p){ + _select(getPanelIndex(container, p)); + } else { + _select(opts.selected); + } + + function _select(index){ + var animate = opts.animate; + opts.animate = false; + select(container, index); + opts.animate = animate; + } + } + + /** + * stop the animation of all panels + */ + function stopAnimate(container){ + var panels = $.data(container, 'accordion').panels; + for(var i=0; i
                                                ').appendTo(container); + panels.push(pp); + createPanel(container, pp, options); + setSize(container); + + opts.onAdd.call(container, options.title, panels.length-1); + + if (options.selected){ + select(container, panels.length-1); + } + } + + function remove(container, which){ + var state = $.data(container, 'accordion'); + var opts = state.options; + var panels = state.panels; + + stopAnimate(container); + + var panel = getPanel(container, which); + var title = panel.panel('options').title; + var index = getPanelIndex(container, panel); + + if (!panel){return} + if (opts.onBeforeRemove.call(container, title, index) == false){return} + + panels.splice(index, 1); + panel.panel('destroy'); + if (panels.length){ + setSize(container); + var curr = getSelected(container); + if (!curr){ + select(container, 0); + } + } + + opts.onRemove.call(container, title, index); + } + + $.fn.accordion = function(options, param){ + if (typeof options == 'string'){ + return $.fn.accordion.methods[options](this, param); + } + + options = options || {}; + + return this.each(function(){ + var state = $.data(this, 'accordion'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'accordion', { + options: $.extend({}, $.fn.accordion.defaults, $.fn.accordion.parseOptions(this), options), + accordion: $(this).addClass('accordion'), + panels: [] + }); + init(this); + } + + setProperties(this); + setSize(this); + doFirstSelect(this); + }); + }; + + $.fn.accordion.methods = { + options: function(jq){ + return $.data(jq[0], 'accordion').options; + }, + panels: function(jq){ + return $.data(jq[0], 'accordion').panels; + }, + resize: function(jq){ + return jq.each(function(){ + setSize(this); + }); + }, + getSelections: function(jq){ + return getSelections(jq[0]); + }, + getSelected: function(jq){ + return getSelected(jq[0]); + }, + getPanel: function(jq, which){ + return getPanel(jq[0], which); + }, + getPanelIndex: function(jq, panel){ + return getPanelIndex(jq[0], panel); + }, + select: function(jq, which){ + return jq.each(function(){ + select(this, which); + }); + }, + unselect: function(jq, which){ + return jq.each(function(){ + unselect(this, which); + }); + }, + add: function(jq, options){ + return jq.each(function(){ + add(this, options); + }); + }, + remove: function(jq, which){ + return jq.each(function(){ + remove(this, which); + }); + } + }; + + $.fn.accordion.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height', + {fit:'boolean',border:'boolean',animate:'boolean',multiple:'boolean',selected:'number'} + ])); + }; + + $.fn.accordion.defaults = { + width: 'auto', + height: 'auto', + fit: false, + border: true, + animate: true, + multiple: false, + selected: 0, + + onSelect: function(title, index){}, + onUnselect: function(title, index){}, + onAdd: function(title, index){}, + onBeforeRemove: function(title, index){}, + onRemove: function(title, index){} + }; +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.calendar.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.calendar.js new file mode 100644 index 0000000..a1be550 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.calendar.js @@ -0,0 +1,450 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * calendar - jQuery EasyUI + * + */ +(function($){ + + function setSize(target){ + var opts = $.data(target, 'calendar').options; + var t = $(target); +// if (opts.fit == true){ +// var p = t.parent(); +// opts.width = p.width(); +// opts.height = p.height(); +// } + opts.fit ? $.extend(opts, t._fit()) : t._fit(false); + var header = t.find('.calendar-header'); + t._outerWidth(opts.width); + t._outerHeight(opts.height); + t.find('.calendar-body')._outerHeight(t.height() - header._outerHeight()); + } + + function init(target){ + $(target).addClass('calendar').html( + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + 'Aprial 2010' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '' + + '' + + '' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + ); + + $(target).find('.calendar-title span').hover( + function(){$(this).addClass('calendar-menu-hover');}, + function(){$(this).removeClass('calendar-menu-hover');} + ).click(function(){ + var menu = $(target).find('.calendar-menu'); + if (menu.is(':visible')){ + menu.hide(); + } else { + showSelectMenus(target); + } + }); + + $('.calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear', target).hover( + function(){$(this).addClass('calendar-nav-hover');}, + function(){$(this).removeClass('calendar-nav-hover');} + ); + $(target).find('.calendar-nextmonth').click(function(){ + showMonth(target, 1); + }); + $(target).find('.calendar-prevmonth').click(function(){ + showMonth(target, -1); + }); + $(target).find('.calendar-nextyear').click(function(){ + showYear(target, 1); + }); + $(target).find('.calendar-prevyear').click(function(){ + showYear(target, -1); + }); + + $(target).bind('_resize', function(){ + var opts = $.data(target, 'calendar').options; + if (opts.fit == true){ + setSize(target); + } + return false; + }); + } + + /** + * show the calendar corresponding to the current month. + */ + function showMonth(target, delta){ + var opts = $.data(target, 'calendar').options; + opts.month += delta; + if (opts.month > 12){ + opts.year++; + opts.month = 1; + } else if (opts.month < 1){ + opts.year--; + opts.month = 12; + } + show(target); + + var menu = $(target).find('.calendar-menu-month-inner'); + menu.find('td.calendar-selected').removeClass('calendar-selected'); + menu.find('td:eq(' + (opts.month-1) + ')').addClass('calendar-selected'); + } + + /** + * show the calendar corresponding to the current year. + */ + function showYear(target, delta){ + var opts = $.data(target, 'calendar').options; + opts.year += delta; + show(target); + + var menu = $(target).find('.calendar-menu-year'); + menu.val(opts.year); + } + + /** + * show the select menu that can change year or month, if the menu is not be created then create it. + */ + function showSelectMenus(target){ + var opts = $.data(target, 'calendar').options; + $(target).find('.calendar-menu').show(); + + if ($(target).find('.calendar-menu-month-inner').is(':empty')){ + $(target).find('.calendar-menu-month-inner').empty(); + var t = $('
                                                ').appendTo($(target).find('.calendar-menu-month-inner')); + var idx = 0; + for(var i=0; i<3; i++){ + var tr = $('').appendTo(t); + for(var j=0; j<4; j++){ + $('').html(opts.months[idx++]).attr('abbr',idx).appendTo(tr); + } + } + + $(target).find('.calendar-menu-prev,.calendar-menu-next').hover( + function(){$(this).addClass('calendar-menu-hover');}, + function(){$(this).removeClass('calendar-menu-hover');} + ); + $(target).find('.calendar-menu-next').click(function(){ + var y = $(target).find('.calendar-menu-year'); + if (!isNaN(y.val())){ + y.val(parseInt(y.val()) + 1); + setDate(); + } + }); + $(target).find('.calendar-menu-prev').click(function(){ + var y = $(target).find('.calendar-menu-year'); + if (!isNaN(y.val())){ + y.val(parseInt(y.val() - 1)); + setDate(); + } + }); + + $(target).find('.calendar-menu-year').keypress(function(e){ + if (e.keyCode == 13){ + setDate(true); + } + }); + + $(target).find('.calendar-menu-month').hover( + function(){$(this).addClass('calendar-menu-hover');}, + function(){$(this).removeClass('calendar-menu-hover');} + ).click(function(){ + var menu = $(target).find('.calendar-menu'); + menu.find('.calendar-selected').removeClass('calendar-selected'); + $(this).addClass('calendar-selected'); + setDate(true); + }); + } + + function setDate(hideMenu){ + var menu = $(target).find('.calendar-menu'); + var year = menu.find('.calendar-menu-year').val(); + var month = menu.find('.calendar-selected').attr('abbr'); + if (!isNaN(year)){ + opts.year = parseInt(year); + opts.month = parseInt(month); + show(target); + } + if (hideMenu){menu.hide()} + } + + var body = $(target).find('.calendar-body'); + var sele = $(target).find('.calendar-menu'); + var seleYear = sele.find('.calendar-menu-year-inner'); + var seleMonth = sele.find('.calendar-menu-month-inner'); + + seleYear.find('input').val(opts.year).focus(); + seleMonth.find('td.calendar-selected').removeClass('calendar-selected'); + seleMonth.find('td:eq('+(opts.month-1)+')').addClass('calendar-selected'); + + sele._outerWidth(body._outerWidth()); + sele._outerHeight(body._outerHeight()); + seleMonth._outerHeight(sele.height() - seleYear._outerHeight()); + } + + /** + * get weeks data. + */ + function getWeeks(target, year, month){ + var opts = $.data(target, 'calendar').options; + var dates = []; + var lastDay = new Date(year, month, 0).getDate(); + for(var i=1; i<=lastDay; i++) dates.push([year,month,i]); + + // group date by week + var weeks = [], week = []; +// var memoDay = 0; + var memoDay = -1; + while(dates.length > 0){ + var date = dates.shift(); + week.push(date); + var day = new Date(date[0],date[1]-1,date[2]).getDay(); + if (memoDay == day){ + day = 0; + } else if (day == (opts.firstDay==0 ? 7 : opts.firstDay) - 1){ + weeks.push(week); + week = []; + } + memoDay = day; + } + if (week.length){ + weeks.push(week); + } + + var firstWeek = weeks[0]; + if (firstWeek.length < 7){ + while(firstWeek.length < 7){ + var firstDate = firstWeek[0]; + var date = new Date(firstDate[0],firstDate[1]-1,firstDate[2]-1) + firstWeek.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + } else { + var firstDate = firstWeek[0]; + var week = []; + for(var i=1; i<=7; i++){ + var date = new Date(firstDate[0], firstDate[1]-1, firstDate[2]-i); + week.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + weeks.unshift(week); + } + + var lastWeek = weeks[weeks.length-1]; + while(lastWeek.length < 7){ + var lastDate = lastWeek[lastWeek.length-1]; + var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+1); + lastWeek.push([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + if (weeks.length < 6){ + var lastDate = lastWeek[lastWeek.length-1]; + var week = []; + for(var i=1; i<=7; i++){ + var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+i); + week.push([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + weeks.push(week); + } + + return weeks; + } + + /** + * show the calendar day. + */ + function show(target){ + var opts = $.data(target, 'calendar').options; + if (opts.current && !opts.validator.call(target, opts.current)){ + opts.current = null; + } + + var now = new Date(); + var todayInfo = now.getFullYear()+','+(now.getMonth()+1)+','+now.getDate(); + var currentInfo = opts.current ? (opts.current.getFullYear()+','+(opts.current.getMonth()+1)+','+opts.current.getDate()) : ''; + // calulate the saturday and sunday index + var saIndex = 6 - opts.firstDay; + var suIndex = saIndex + 1; + if (saIndex >= 7) saIndex -= 7; + if (suIndex >= 7) suIndex -= 7; + + $(target).find('.calendar-title span').html(opts.months[opts.month-1] + ' ' + opts.year); + + var body = $(target).find('div.calendar-body'); + body.children('table').remove(); + + var data = ['']; + data.push(''); + for(var i=opts.firstDay; i'+opts.weeks[i]+''); + } + for(var i=0; i'+opts.weeks[i]+''); + } + data.push(''); + + data.push(''); + var weeks = getWeeks(target, opts.year, opts.month); + for(var i=0; i'); + for(var j=0; j' + d + ''); + } + data.push(''); + } + data.push(''); + data.push('
                                                '); + + body.append(data.join('')); + + var t = body.children('table.calendar-dtable').prependTo(body); + + t.find('td.calendar-day:not(.calendar-disabled)').hover( + function(){$(this).addClass('calendar-hover');}, + function(){$(this).removeClass('calendar-hover');} + ).click(function(){ + var oldValue = opts.current; + t.find('.calendar-selected').removeClass('calendar-selected'); + $(this).addClass('calendar-selected'); + var parts = $(this).attr('abbr').split(','); + opts.current = new Date(parts[0], parseInt(parts[1])-1, parts[2]); + opts.onSelect.call(target, opts.current); + if (!oldValue || oldValue.getTime() != opts.current.getTime()){ + opts.onChange.call(target, opts.current, oldValue); + } + }); + } + + $.fn.calendar = function(options, param){ + if (typeof options == 'string'){ + return $.fn.calendar.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'calendar'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'calendar', { + options:$.extend({}, $.fn.calendar.defaults, $.fn.calendar.parseOptions(this), options) + }); + init(this); + } + if (state.options.border == false){ + $(this).addClass('calendar-noborder'); + } + setSize(this); + show(this); + $(this).find('div.calendar-menu').hide(); // hide the calendar menu + }); + }; + + $.fn.calendar.methods = { + options: function(jq){ + return $.data(jq[0], 'calendar').options; + }, + resize: function(jq){ + return jq.each(function(){ + setSize(this); + }); + }, + moveTo: function(jq, date){ + return jq.each(function(){ + var opts = $(this).calendar('options'); + if (opts.validator.call(this, date)){ + var oldValue = opts.current; + $(this).calendar({ + year: date.getFullYear(), + month: date.getMonth()+1, + current: date + }); + if (!oldValue || oldValue.getTime() != date.getTime()){ + opts.onChange.call(this, opts.current, oldValue); + } + } + }); + } + }; + + $.fn.calendar.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height',{firstDay:'number',fit:'boolean',border:'boolean'} + ])); + }; + + $.fn.calendar.defaults = { + width:180, + height:180, + fit:false, + border:true, + firstDay:0, + weeks:['S','M','T','W','T','F','S'], + months:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + year:new Date().getFullYear(), + month:new Date().getMonth()+1, + current:(function(){ + var d = new Date(); + return new Date(d.getFullYear(), d.getMonth(), d.getDate()); + })(), + + formatter:function(date){return date.getDate()}, + styler:function(date){return ''}, + validator:function(date){return true}, + + onSelect: function(date){}, + onChange: function(newDate, oldDate){} + }; +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.combobox.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.combobox.js new file mode 100644 index 0000000..53e07a0 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.combobox.js @@ -0,0 +1,553 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * combobox - jQuery EasyUI + * + * Dependencies: + * combo + * + */ +(function($){ + var COMBOBOX_SERNO = 0; + + function getRowIndex(target, value){ + var state = $.data(target, 'combobox'); + var opts = state.options; + var data = state.data; + for(var i=0; i panel.height()){ + var h = panel.scrollTop() + item.position().top + item.outerHeight() - panel.height(); + panel.scrollTop(h); + } + } + } + + function nav(target, dir){ + var opts = $.data(target, 'combobox').options; + var panel = $(target).combobox('panel'); + var item = panel.children('div.combobox-item-hover'); + if (!item.length){ + item = panel.children('div.combobox-item-selected'); + } + item.removeClass('combobox-item-hover'); + var firstSelector = 'div.combobox-item:visible:not(.combobox-item-disabled):first'; + var lastSelector = 'div.combobox-item:visible:not(.combobox-item-disabled):last'; + if (!item.length){ + item = panel.children(dir=='next' ? firstSelector : lastSelector); +// item = panel.children('div.combobox-item:visible:' + (dir=='next'?'first':'last')); + } else { + if (dir == 'next'){ + item = item.nextAll(firstSelector); +// item = item.nextAll('div.combobox-item:visible:first'); + if (!item.length){ + item = panel.children(firstSelector); +// item = panel.children('div.combobox-item:visible:first'); + } + } else { + item = item.prevAll(firstSelector); +// item = item.prevAll('div.combobox-item:visible:first'); + if (!item.length){ + item = panel.children(lastSelector); +// item = panel.children('div.combobox-item:visible:last'); + } + } + } + if (item.length){ + item.addClass('combobox-item-hover'); + var row = opts.finder.getRow(target, item); + if (row){ + scrollTo(target, row[opts.valueField]); + if (opts.selectOnNavigation){ + select(target, row[opts.valueField]); + } + } + } + } + + /** + * select the specified value + */ + function select(target, value){ + var opts = $.data(target, 'combobox').options; + var values = $(target).combo('getValues'); + if ($.inArray(value+'', values) == -1){ + if (opts.multiple){ + values.push(value); + } else { + values = [value]; + } + setValues(target, values); + opts.onSelect.call(target, opts.finder.getRow(target, value)); + } + } + + /** + * unselect the specified value + */ + function unselect(target, value){ + var opts = $.data(target, 'combobox').options; + var values = $(target).combo('getValues'); + var index = $.inArray(value+'', values); + if (index >= 0){ + values.splice(index, 1); + setValues(target, values); + opts.onUnselect.call(target, opts.finder.getRow(target, value)); + } + } + + /** + * set values + */ + function setValues(target, values, remainText){ + var opts = $.data(target, 'combobox').options; + var panel = $(target).combo('panel'); + + panel.find('div.combobox-item-selected').removeClass('combobox-item-selected'); + var vv = [], ss = []; + for(var i=0; i'); + dd.push(opts.groupFormatter ? opts.groupFormatter.call(target, g) : g); + dd.push('
                                                '); + } + } else { + group = undefined; + } + + var cls = 'combobox-item' + (row.disabled ? ' combobox-item-disabled' : '') + (g ? ' combobox-gitem' : ''); + dd.push('
                                                '); + dd.push(opts.formatter ? opts.formatter.call(target, row) : s); + dd.push('
                                                '); + +// if (item['selected']){ +// (function(){ +// for(var i=0; i= 0){ + vv.push(v); + } + }); + t.combobox('setValues', vv); + if (!opts.multiple){ + t.combobox('hidePanel'); + } + } + + /** + * create the component + */ + function create(target){ + var state = $.data(target, 'combobox'); + var opts = state.options; + + COMBOBOX_SERNO++; + state.itemIdPrefix = '_easyui_combobox_i' + COMBOBOX_SERNO; + state.groupIdPrefix = '_easyui_combobox_g' + COMBOBOX_SERNO; + + $(target).addClass('combobox-f'); + $(target).combo($.extend({}, opts, { + onShowPanel: function(){ + $(target).combo('panel').find('div.combobox-item,div.combobox-group').show(); + scrollTo(target, $(target).combobox('getValue')); + opts.onShowPanel.call(target); + } + })); + + $(target).combo('panel').unbind().bind('mouseover', function(e){ + $(this).children('div.combobox-item-hover').removeClass('combobox-item-hover'); + var item = $(e.target).closest('div.combobox-item'); + if (!item.hasClass('combobox-item-disabled')){ + item.addClass('combobox-item-hover'); + } + e.stopPropagation(); + }).bind('mouseout', function(e){ + $(e.target).closest('div.combobox-item').removeClass('combobox-item-hover'); + e.stopPropagation(); + }).bind('click', function(e){ + var item = $(e.target).closest('div.combobox-item'); + if (!item.length || item.hasClass('combobox-item-disabled')){return} + var row = opts.finder.getRow(target, item); + if (!row){return} + var value = row[opts.valueField]; + if (opts.multiple){ + if (item.hasClass('combobox-item-selected')){ + unselect(target, value); + } else { + select(target, value); + } + } else { + select(target, value); + $(target).combo('hidePanel'); + } + e.stopPropagation(); + }); + } + + $.fn.combobox = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.combobox.methods[options]; + if (method){ + return method(this, param); + } else { + return this.combo(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'combobox'); + if (state){ + $.extend(state.options, options); + create(this); + } else { + state = $.data(this, 'combobox', { + options: $.extend({}, $.fn.combobox.defaults, $.fn.combobox.parseOptions(this), options), + data: [] + }); + create(this); + var data = $.fn.combobox.parseData(this); + if (data.length){ + loadData(this, data); + } + } + if (state.options.data){ + loadData(this, state.options.data); + } + request(this); + }); + }; + + + $.fn.combobox.methods = { + options: function(jq){ + var copts = jq.combo('options'); + return $.extend($.data(jq[0], 'combobox').options, { + originalValue: copts.originalValue, + disabled: copts.disabled, + readonly: copts.readonly + }); + }, + getData: function(jq){ + return $.data(jq[0], 'combobox').data; + }, + setValues: function(jq, values){ + return jq.each(function(){ + setValues(this, values); + }); + }, + setValue: function(jq, value){ + return jq.each(function(){ + setValues(this, [value]); + }); + }, + clear: function(jq){ + return jq.each(function(){ + $(this).combo('clear'); + var panel = $(this).combo('panel'); + panel.find('div.combobox-item-selected').removeClass('combobox-item-selected'); + }); + }, + reset: function(jq){ + return jq.each(function(){ + var opts = $(this).combobox('options'); + if (opts.multiple){ + $(this).combobox('setValues', opts.originalValue); + } else { + $(this).combobox('setValue', opts.originalValue); + } + }); + }, + loadData: function(jq, data){ + return jq.each(function(){ + loadData(this, data); + }); + }, + reload: function(jq, url){ + return jq.each(function(){ + request(this, url); + }); + }, + select: function(jq, value){ + return jq.each(function(){ + select(this, value); + }); + }, + unselect: function(jq, value){ + return jq.each(function(){ + unselect(this, value); + }); + } + }; + + $.fn.combobox.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.fn.combo.parseOptions(target), $.parser.parseOptions(target,[ + 'valueField','textField','groupField','mode','method','url' + ])); + }; + + $.fn.combobox.parseData = function(target){ + var data = []; + var opts = $(target).combobox('options'); + $(target).children().each(function(){ + if (this.tagName.toLowerCase() == 'optgroup'){ + var group = $(this).attr('label'); + $(this).children().each(function(){ + _parseItem(this, group); + }); + } else { + _parseItem(this); + } + }); + return data; + + function _parseItem(el, group){ + var t = $(el); + var row = {}; + row[opts.valueField] = t.attr('value')!=undefined ? t.attr('value') : t.text(); + row[opts.textField] = t.text(); + row['selected'] = t.is(':selected'); + row['disabled'] = t.is(':disabled'); + if (group){ + opts.groupField = opts.groupField || 'group'; + row[opts.groupField] = group; + } + data.push(row); + } + }; + + $.fn.combobox.defaults = $.extend({}, $.fn.combo.defaults, { + valueField: 'value', + textField: 'text', + groupField: null, + groupFormatter: function(group){return group;}, + mode: 'local', // or 'remote' + method: 'post', + url: null, + data: null, + + keyHandler: { + up: function(e){nav(this,'prev');e.preventDefault()}, + down: function(e){nav(this,'next');e.preventDefault()}, + left: function(e){}, + right: function(e){}, + enter: function(e){doEnter(this)}, + query: function(q,e){doQuery(this, q)} + }, + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].toLowerCase().indexOf(q.toLowerCase()) == 0; + }, + formatter: function(row){ + var opts = $(this).combobox('options'); + return row[opts.textField]; + }, + loader: function(param, success, error){ + var opts = $(this).combobox('options'); + if (!opts.url) return false; + $.ajax({ + type: opts.method, + url: opts.url, + data: param, + dataType: 'json', + success: function(data){ + success(data); + }, + error: function(){ + error.apply(this, arguments); + } + }); + }, + loadFilter: function(data){ + return data; + }, + finder:{ + getEl:function(target, value){ + var index = getRowIndex(target, value); + var id = $.data(target, 'combobox').itemIdPrefix + '_' + index; + return $('#'+id); + }, + getRow:function(target, p){ + var state = $.data(target, 'combobox'); + var index = (p instanceof jQuery) ? p.attr('id').substr(state.itemIdPrefix.length+1) : getRowIndex(target, p); + return state.data[parseInt(index)]; + } + }, + + onBeforeLoad: function(param){}, + onLoadSuccess: function(){}, + onLoadError: function(){}, + onSelect: function(record){}, + onUnselect: function(record){} + }); +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.datebox.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.datebox.js new file mode 100644 index 0000000..4429088 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.datebox.js @@ -0,0 +1,253 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * datebox - jQuery EasyUI + * + * Dependencies: + * calendar + * combo + * + */ +(function($){ + /** + * create date box + */ + function createBox(target){ + var state = $.data(target, 'datebox'); + var opts = state.options; + + $(target).addClass('datebox-f').combo($.extend({}, opts, { + onShowPanel:function(){ + setCalendar(); + setValue(target, $(target).datebox('getText'), true); +// setValue(target, $(target).datebox('getText')); + opts.onShowPanel.call(target); + } + })); + $(target).combo('textbox').parent().addClass('datebox'); + + /** + * if the calendar isn't created, create it. + */ + if (!state.calendar){ + createCalendar(); + } + setValue(target, opts.value); + + function createCalendar(){ + var panel = $(target).combo('panel').css('overflow','hidden'); + panel.panel('options').onBeforeDestroy = function(){ + var sc = $(this).find('.calendar-shared'); + if (sc.length){ + sc.insertBefore(sc[0].pholder); + } + }; + var cc = $('
                                                ').appendTo(panel); + if (opts.sharedCalendar){ + var sc = $(opts.sharedCalendar); + if (!sc[0].pholder){ + sc[0].pholder = $('').insertAfter(sc); + } + sc.addClass('calendar-shared').appendTo(cc); + if (!sc.hasClass('calendar')){ + sc.calendar(); + } + state.calendar = sc; +// state.calendar = $(opts.sharedCalendar).appendTo(cc); +// if (!state.calendar.hasClass('calendar')){ +// state.calendar.calendar(); +// } + } else { + state.calendar = $('
                                                ').appendTo(cc).calendar(); + } + $.extend(state.calendar.calendar('options'), { + fit:true, + border:false, + onSelect:function(date){ + var opts = $(this.target).datebox('options'); + setValue(this.target, opts.formatter.call(this.target, date)); + $(this.target).combo('hidePanel'); + opts.onSelect.call(target, date); + } + }); +// setValue(target, opts.value); + + var button = $('
                                                ').appendTo(panel); + var tr = button.find('tr'); + for(var i=0; i').appendTo(tr); + var btn = opts.buttons[i]; + var t = $('').html($.isFunction(btn.text) ? btn.text(target) : btn.text).appendTo(td); + t.bind('click', {target: target, handler: btn.handler}, function(e){ + e.data.handler.call(this, e.data.target); + }); + } + tr.find('td').css('width', (100/opts.buttons.length)+'%'); + } + + function setCalendar(){ + var panel = $(target).combo('panel'); + var cc = panel.children('div.datebox-calendar-inner'); + panel.children()._outerWidth(panel.width()); + state.calendar.appendTo(cc); + state.calendar[0].target = target; + if (opts.panelHeight != 'auto'){ + var height = panel.height(); + panel.children().not(cc).each(function(){ + height -= $(this).outerHeight(); + }); + cc._outerHeight(height); + } + state.calendar.calendar('resize'); + } + } + + /** + * called when user inputs some value in text box + */ + function doQuery(target, q){ + setValue(target, q, true); + } + + /** + * called when user press enter key + */ + function doEnter(target){ + var state = $.data(target, 'datebox'); + var opts = state.options; + var current = state.calendar.calendar('options').current; + if (current){ + setValue(target, opts.formatter.call(target, current)); + $(target).combo('hidePanel'); + } + } + + function setValue(target, value, remainText){ + var state = $.data(target, 'datebox'); + var opts = state.options; + var calendar = state.calendar; + $(target).combo('setValue', value); + calendar.calendar('moveTo', opts.parser.call(target, value)); + if (!remainText){ + if (value){ + value = opts.formatter.call(target, calendar.calendar('options').current); + $(target).combo('setValue', value).combo('setText', value); + } else { + $(target).combo('setText', value); + } + } + } + + $.fn.datebox = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.datebox.methods[options]; + if (method){ + return method(this, param); + } else { + return this.combo(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'datebox'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'datebox', { + options: $.extend({}, $.fn.datebox.defaults, $.fn.datebox.parseOptions(this), options) + }); + } + createBox(this); + }); + }; + + $.fn.datebox.methods = { + options: function(jq){ + var copts = jq.combo('options'); + return $.extend($.data(jq[0], 'datebox').options, { + originalValue: copts.originalValue, + disabled: copts.disabled, + readonly: copts.readonly + }); + }, + calendar: function(jq){ // get the calendar object + return $.data(jq[0], 'datebox').calendar; + }, + setValue: function(jq, value){ + return jq.each(function(){ + setValue(this, value); + }); + }, + reset: function(jq){ + return jq.each(function(){ + var opts = $(this).datebox('options'); + $(this).datebox('setValue', opts.originalValue); + }); + } + }; + + $.fn.datebox.parseOptions = function(target){ + return $.extend({}, $.fn.combo.parseOptions(target), $.parser.parseOptions(target, ['sharedCalendar'])); + }; + + $.fn.datebox.defaults = $.extend({}, $.fn.combo.defaults, { + panelWidth:180, + panelHeight:'auto', + sharedCalendar:null, + + keyHandler: { + up:function(e){}, + down:function(e){}, + left: function(e){}, + right: function(e){}, + enter:function(e){doEnter(this)}, + query:function(q,e){doQuery(this, q)} + }, + + currentText:'Today', + closeText:'Close', + okText:'Ok', + + buttons:[{ + text: function(target){return $(target).datebox('options').currentText;}, + handler: function(target){ + $(target).datebox('calendar').calendar({ + year:new Date().getFullYear(), + month:new Date().getMonth()+1, + current:new Date() + }); + doEnter(target); + } + },{ + text: function(target){return $(target).datebox('options').closeText;}, + handler: function(target){ + $(this).closest('div.combo-panel').panel('close'); + } + }], + + formatter:function(date){ + var y = date.getFullYear(); + var m = date.getMonth()+1; + var d = date.getDate(); + return m+'/'+d+'/'+y; + }, + parser:function(s){ + var t = Date.parse(s); + if (!isNaN(t)){ + return new Date(t); + } else { + return new Date(); + } + }, + + onSelect:function(date){} + }); +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.draggable.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.draggable.js new file mode 100644 index 0000000..5ae45cc --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.draggable.js @@ -0,0 +1,420 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * draggable - jQuery EasyUI + * + */ +(function($){ +// var isDragging = false; + function drag(e){ + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + var proxy = state.proxy; + + var dragData = e.data; + var left = dragData.startLeft + e.pageX - dragData.startX; + var top = dragData.startTop + e.pageY - dragData.startY; + + if (proxy){ + if (proxy.parent()[0] == document.body){ + if (opts.deltaX != null && opts.deltaX != undefined){ + left = e.pageX + opts.deltaX; + } else { + left = e.pageX - e.data.offsetWidth; + } + if (opts.deltaY != null && opts.deltaY != undefined){ + top = e.pageY + opts.deltaY; + } else { + top = e.pageY - e.data.offsetHeight; + } + } else { + if (opts.deltaX != null && opts.deltaX != undefined){ + left += e.data.offsetWidth + opts.deltaX; + } + if (opts.deltaY != null && opts.deltaY != undefined){ + top += e.data.offsetHeight + opts.deltaY; + } + } + } + +// if (opts.deltaX != null && opts.deltaX != undefined){ +// left = e.pageX + opts.deltaX; +// } +// if (opts.deltaY != null && opts.deltaY != undefined){ +// top = e.pageY + opts.deltaY; +// } + + if (e.data.parent != document.body) { + left += $(e.data.parent).scrollLeft(); + top += $(e.data.parent).scrollTop(); + } + + if (opts.axis == 'h') { + dragData.left = left; + } else if (opts.axis == 'v') { + dragData.top = top; + } else { + dragData.left = left; + dragData.top = top; + } + } + + function applyDrag(e){ + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + var proxy = state.proxy; + if (!proxy){ + proxy = $(e.data.target); + } +// if (proxy){ +// proxy.css('cursor', opts.cursor); +// } else { +// proxy = $(e.data.target); +// $.data(e.data.target, 'draggable').handle.css('cursor', opts.cursor); +// } + proxy.css({ + left:e.data.left, + top:e.data.top + }); + $('body').css('cursor', opts.cursor); + } + + function doDown(e){ +// isDragging = true; + $.fn.draggable.isDragging = true; + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + + var droppables = $('.droppable').filter(function(){ + return e.data.target != this; + }).filter(function(){ + var accept = $.data(this, 'droppable').options.accept; + if (accept){ + return $(accept).filter(function(){ + return this == e.data.target; + }).length > 0; + } else { + return true; + } + }); + state.droppables = droppables; + + var proxy = state.proxy; + if (!proxy){ + if (opts.proxy){ + if (opts.proxy == 'clone'){ + proxy = $(e.data.target).clone().insertAfter(e.data.target); + } else { + proxy = opts.proxy.call(e.data.target, e.data.target); + } + state.proxy = proxy; + } else { + proxy = $(e.data.target); + } + } + + proxy.css('position', 'absolute'); + drag(e); + applyDrag(e); + + opts.onStartDrag.call(e.data.target, e); + return false; + } + + function doMove(e){ + var state = $.data(e.data.target, 'draggable'); + drag(e); + if (state.options.onDrag.call(e.data.target, e) != false){ + applyDrag(e); + } + + var source = e.data.target; + state.droppables.each(function(){ + var dropObj = $(this); + if (dropObj.droppable('options').disabled){return;} + + var p2 = dropObj.offset(); + if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth() + && e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){ + if (!this.entered){ + $(this).trigger('_dragenter', [source]); + this.entered = true; + } + $(this).trigger('_dragover', [source]); + } else { + if (this.entered){ + $(this).trigger('_dragleave', [source]); + this.entered = false; + } + } + }); + + return false; + } + + function doUp(e){ +// isDragging = false; + $.fn.draggable.isDragging = false; +// drag(e); + doMove(e); + + var state = $.data(e.data.target, 'draggable'); + var proxy = state.proxy; + var opts = state.options; + if (opts.revert){ + if (checkDrop() == true){ + $(e.data.target).css({ + position:e.data.startPosition, + left:e.data.startLeft, + top:e.data.startTop + }); + } else { + if (proxy){ + var left, top; + if (proxy.parent()[0] == document.body){ + left = e.data.startX - e.data.offsetWidth; + top = e.data.startY - e.data.offsetHeight; + } else { + left = e.data.startLeft; + top = e.data.startTop; + } + proxy.animate({ + left: left, + top: top + }, function(){ + removeProxy(); + }); + } else { + $(e.data.target).animate({ + left:e.data.startLeft, + top:e.data.startTop + }, function(){ + $(e.data.target).css('position', e.data.startPosition); + }); + } + } + } else { + $(e.data.target).css({ + position:'absolute', + left:e.data.left, + top:e.data.top + }); + checkDrop(); + } + + opts.onStopDrag.call(e.data.target, e); + + $(document).unbind('.draggable'); + setTimeout(function(){ + $('body').css('cursor',''); + },100); + + function removeProxy(){ + if (proxy){ + proxy.remove(); + } + state.proxy = null; + } + + function checkDrop(){ + var dropped = false; + state.droppables.each(function(){ + var dropObj = $(this); + if (dropObj.droppable('options').disabled){return;} + + var p2 = dropObj.offset(); + if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth() + && e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){ + if (opts.revert){ + $(e.data.target).css({ + position:e.data.startPosition, + left:e.data.startLeft, + top:e.data.startTop + }); + } + $(this).trigger('_drop', [e.data.target]); + removeProxy(); + dropped = true; + this.entered = false; + return false; + } + }); + if (!dropped && !opts.revert){ + removeProxy(); + } + return dropped; + } + + return false; + } + + $.fn.draggable = function(options, param){ + if (typeof options == 'string'){ + return $.fn.draggable.methods[options](this, param); + } + + return this.each(function(){ + var opts; + var state = $.data(this, 'draggable'); + if (state) { + state.handle.unbind('.draggable'); + opts = $.extend(state.options, options); + } else { + opts = $.extend({}, $.fn.draggable.defaults, $.fn.draggable.parseOptions(this), options || {}); + } + var handle = opts.handle ? (typeof opts.handle=='string' ? $(opts.handle, this) : opts.handle) : $(this); + + $.data(this, 'draggable', { + options: opts, + handle: handle + }); + + if (opts.disabled) { + $(this).css('cursor', ''); + return; + } + + handle.unbind('.draggable').bind('mousemove.draggable', {target:this}, function(e){ +// if (isDragging) return; + if ($.fn.draggable.isDragging){return} + var opts = $.data(e.data.target, 'draggable').options; + if (checkArea(e)){ + $(this).css('cursor', opts.cursor); + } else { + $(this).css('cursor', ''); + } + }).bind('mouseleave.draggable', {target:this}, function(e){ + $(this).css('cursor', ''); + }).bind('mousedown.draggable', {target:this}, function(e){ + if (checkArea(e) == false) return; + $(this).css('cursor', ''); + + var position = $(e.data.target).position(); + var offset = $(e.data.target).offset(); + var data = { + startPosition: $(e.data.target).css('position'), + startLeft: position.left, + startTop: position.top, + left: position.left, + top: position.top, + startX: e.pageX, + startY: e.pageY, + offsetWidth: (e.pageX - offset.left), + offsetHeight: (e.pageY - offset.top), + target: e.data.target, + parent: $(e.data.target).parent()[0] + }; + + $.extend(e.data, data); + var opts = $.data(e.data.target, 'draggable').options; + if (opts.onBeforeDrag.call(e.data.target, e) == false) return; + + $(document).bind('mousedown.draggable', e.data, doDown); + $(document).bind('mousemove.draggable', e.data, doMove); + $(document).bind('mouseup.draggable', e.data, doUp); +// $('body').css('cursor', opts.cursor); + }); + + // check if the handle can be dragged + function checkArea(e) { + var state = $.data(e.data.target, 'draggable'); + var handle = state.handle; + var offset = $(handle).offset(); + var width = $(handle).outerWidth(); + var height = $(handle).outerHeight(); + var t = e.pageY - offset.top; + var r = offset.left + width - e.pageX; + var b = offset.top + height - e.pageY; + var l = e.pageX - offset.left; + + return Math.min(t,r,b,l) > state.options.edge; + } + + }); + }; + + $.fn.draggable.methods = { + options: function(jq){ + return $.data(jq[0], 'draggable').options; + }, + proxy: function(jq){ + return $.data(jq[0], 'draggable').proxy; + }, + enable: function(jq){ + return jq.each(function(){ + $(this).draggable({disabled:false}); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $(this).draggable({disabled:true}); + }); + } + }; + + $.fn.draggable.parseOptions = function(target){ + var t = $(target); + return $.extend({}, + $.parser.parseOptions(target, ['cursor','handle','axis', + {'revert':'boolean','deltaX':'number','deltaY':'number','edge':'number'}]), { + disabled: (t.attr('disabled') ? true : undefined) + }); + }; + + $.fn.draggable.defaults = { + proxy:null, // 'clone' or a function that will create the proxy object, + // the function has the source parameter that indicate the source object dragged. + revert:false, + cursor:'move', + deltaX:null, + deltaY:null, + handle: null, + disabled: false, + edge:0, + axis:null, // v or h + + onBeforeDrag: function(e){}, + onStartDrag: function(e){}, + onDrag: function(e){}, + onStopDrag: function(e){} + }; + + $.fn.draggable.isDragging = false; + +// $(function(){ +// function touchHandler(e) { +// var touches = e.changedTouches, first = touches[0], type = ""; +// +// switch(e.type) { +// case "touchstart": type = "mousedown"; break; +// case "touchmove": type = "mousemove"; break; +// case "touchend": type = "mouseup"; break; +// default: return; +// } +// var simulatedEvent = document.createEvent("MouseEvent"); +// simulatedEvent.initMouseEvent(type, true, true, window, 1, +// first.screenX, first.screenY, +// first.clientX, first.clientY, false, +// false, false, false, 0/*left*/, null); +// +// first.target.dispatchEvent(simulatedEvent); +// if (isDragging){ +// e.preventDefault(); +// } +// } +// +// if (document.addEventListener){ +// document.addEventListener("touchstart", touchHandler, true); +// document.addEventListener("touchmove", touchHandler, true); +// document.addEventListener("touchend", touchHandler, true); +// document.addEventListener("touchcancel", touchHandler, true); +// } +// }); +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.droppable.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.droppable.js new file mode 100644 index 0000000..f989ce1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.droppable.js @@ -0,0 +1,81 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * droppable - jQuery EasyUI + * + */ +(function($){ + function init(target){ + $(target).addClass('droppable'); + $(target).bind('_dragenter', function(e, source){ + $.data(target, 'droppable').options.onDragEnter.apply(target, [e, source]); + }); + $(target).bind('_dragleave', function(e, source){ + $.data(target, 'droppable').options.onDragLeave.apply(target, [e, source]); + }); + $(target).bind('_dragover', function(e, source){ + $.data(target, 'droppable').options.onDragOver.apply(target, [e, source]); + }); + $(target).bind('_drop', function(e, source){ + $.data(target, 'droppable').options.onDrop.apply(target, [e, source]); + }); + } + + $.fn.droppable = function(options, param){ + if (typeof options == 'string'){ + return $.fn.droppable.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'droppable'); + if (state){ + $.extend(state.options, options); + } else { + init(this); + $.data(this, 'droppable', { + options: $.extend({}, $.fn.droppable.defaults, $.fn.droppable.parseOptions(this), options) + }); + } + }); + }; + + $.fn.droppable.methods = { + options: function(jq){ + return $.data(jq[0], 'droppable').options; + }, + enable: function(jq){ + return jq.each(function(){ + $(this).droppable({disabled:false}); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $(this).droppable({disabled:true}); + }); + } + }; + + $.fn.droppable.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, ['accept']), { + disabled: (t.attr('disabled') ? true : undefined) + }); + }; + + $.fn.droppable.defaults = { + accept:null, + disabled:false, + onDragEnter:function(e, source){}, + onDragOver:function(e, source){}, + onDragLeave:function(e, source){}, + onDrop:function(e, source){} + }; +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.form.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.form.js new file mode 100644 index 0000000..938d2a8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.form.js @@ -0,0 +1,392 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * form - jQuery EasyUI + * + */ +(function($){ + /** + * submit the form + */ + function ajaxSubmit(target, options){ + options = options || {}; + + var param = {}; + if (options.onSubmit){ + if (options.onSubmit.call(target, param) == false) { + return; + } + } + + var form = $(target); + if (options.url){ + form.attr('action', options.url); + } + var frameId = 'easyui_frame_' + (new Date().getTime()); + var frame = $('') + .attr('src', window.ActiveXObject ? 'javascript:false' : 'about:blank') + .css({ + position:'absolute', + top:-1000, + left:-1000 + }); + var t = form.attr('target'), a = form.attr('action'); + form.attr('target', frameId); + + var paramFields = $(); + try { + frame.appendTo('body'); + frame.bind('load', cb); + for(var n in param){ + var f = $('').val(param[n]).appendTo(form); + paramFields = paramFields.add(f); + } + checkState(); + form[0].submit(); + } finally { + form.attr('action', a); + t ? form.attr('target', t) : form.removeAttr('target'); + paramFields.remove(); + } + + function checkState(){ + var f = $('#'+frameId); + if (!f.length){return} + try{ + var s = f.contents()[0].readyState; + if (s && s.toLowerCase() == 'uninitialized'){ + setTimeout(checkState, 100); + } + } catch(e){ + cb(); + } + } + + var checkCount = 10; + function cb(){ + var frame = $('#'+frameId); + if (!frame.length){return} + frame.unbind(); + var data = ''; + try{ + var body = frame.contents().find('body'); + data = body.html(); + if (data == ''){ + if (--checkCount){ + setTimeout(cb, 100); + return; + } +// return; + } + var ta = body.find('>textarea'); + if (ta.length){ + data = ta.val(); + } else { + var pre = body.find('>pre'); + if (pre.length){ + data = pre.html(); + } + } + } catch(e){ + + } + if (options.success){ + options.success(data); + } + setTimeout(function(){ + frame.unbind(); + frame.remove(); + }, 100); + } + } + + /** + * load form data + * if data is a URL string type load from remote site, + * otherwise load from local data object. + */ + function load(target, data){ + if (!$.data(target, 'form')){ + $.data(target, 'form', { + options: $.extend({}, $.fn.form.defaults) + }); + } + var opts = $.data(target, 'form').options; + + if (typeof data == 'string'){ + var param = {}; + if (opts.onBeforeLoad.call(target, param) == false) return; + + $.ajax({ + url: data, + data: param, + dataType: 'json', + success: function(data){ + _load(data); + }, + error: function(){ + opts.onLoadError.apply(target, arguments); + } + }); + } else { + _load(data); + } + + function _load(data){ + var form = $(target); + for(var name in data){ + var val = data[name]; + var rr = _checkField(name, val); + if (!rr.length){ +// var f = form.find('input[numberboxName="'+name+'"]'); +// if (f.length){ +// f.numberbox('setValue', val); // set numberbox value +// } else { +// $('input[name="'+name+'"]', form).val(val); +// $('textarea[name="'+name+'"]', form).val(val); +// $('select[name="'+name+'"]', form).val(val); +// } + var count = _loadOther(name, val); + if (!count){ + $('input[name="'+name+'"]', form).val(val); + $('textarea[name="'+name+'"]', form).val(val); + $('select[name="'+name+'"]', form).val(val); + } + } + _loadCombo(name, val); + } + opts.onLoadSuccess.call(target, data); + validate(target); + } + + /** + * check the checkbox and radio fields + */ + function _checkField(name, val){ + var rr = $(target).find('input[name="'+name+'"][type=radio], input[name="'+name+'"][type=checkbox]'); + rr._propAttr('checked', false); + rr.each(function(){ + var f = $(this); + if (f.val() == String(val) || $.inArray(f.val(), $.isArray(val)?val:[val]) >= 0){ + f._propAttr('checked', true); + } + }); + return rr; + } + + function _loadOther(name, val){ + var count = 0; + var pp = ['numberbox','slider']; + for(var i=0; i').appendTo(t); + if (opts.text){ + $('').html(opts.text).appendTo(inner); + } else { + $(' ').appendTo(inner); + } + if (opts.iconCls){ + $(' ').addClass(opts.iconCls).appendTo(inner); + inner.addClass('l-btn-icon-'+opts.iconAlign); + } + + t.unbind('.linkbutton').bind('focus.linkbutton',function(){ + if (!opts.disabled){ + $(this).addClass('l-btn-focus'); + } + }).bind('blur.linkbutton',function(){ + $(this).removeClass('l-btn-focus'); + }).bind('click.linkbutton',function(){ + if (!opts.disabled){ + if (opts.toggle){ + if (opts.selected){ + $(this).linkbutton('unselect'); + } else { + $(this).linkbutton('select'); + } + } + opts.onClick.call(this); + } + return false; + }); +// if (opts.toggle && !opts.disabled){ +// t.bind('click.linkbutton', function(){ +// if (opts.selected){ +// $(this).linkbutton('unselect'); +// } else { +// $(this).linkbutton('select'); +// } +// }); +// } + + setSelected(target, opts.selected) + setDisabled(target, opts.disabled); + } + + function setSelected(target, selected){ + var opts = $.data(target, 'linkbutton').options; + if (selected){ + if (opts.group){ + $('a.l-btn[group="'+opts.group+'"]').each(function(){ + var o = $(this).linkbutton('options'); + if (o.toggle){ + $(this).removeClass('l-btn-selected l-btn-plain-selected'); + o.selected = false; + } + }); + } + $(target).addClass(opts.plain ? 'l-btn-selected l-btn-plain-selected' : 'l-btn-selected'); + opts.selected = true; + } else { + if (!opts.group){ + $(target).removeClass('l-btn-selected l-btn-plain-selected'); + opts.selected = false; + } + } + } + + function setDisabled(target, disabled){ + var state = $.data(target, 'linkbutton'); + var opts = state.options; + $(target).removeClass('l-btn-disabled l-btn-plain-disabled'); + if (disabled){ + opts.disabled = true; + var href = $(target).attr('href'); + if (href){ + state.href = href; + $(target).attr('href', 'javascript:void(0)'); + } + if (target.onclick){ + state.onclick = target.onclick; + target.onclick = null; + } + opts.plain ? $(target).addClass('l-btn-disabled l-btn-plain-disabled') : $(target).addClass('l-btn-disabled'); + } else { + opts.disabled = false; + if (state.href) { + $(target).attr('href', state.href); + } + if (state.onclick) { + target.onclick = state.onclick; + } + } + } + + $.fn.linkbutton = function(options, param){ + if (typeof options == 'string'){ + return $.fn.linkbutton.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'linkbutton'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'linkbutton', { + options: $.extend({}, $.fn.linkbutton.defaults, $.fn.linkbutton.parseOptions(this), options) + }); + $(this).removeAttr('disabled'); + } + + createButton(this); + }); + }; + + $.fn.linkbutton.methods = { + options: function(jq){ + return $.data(jq[0], 'linkbutton').options; + }, + enable: function(jq){ + return jq.each(function(){ + setDisabled(this, false); + }); + }, + disable: function(jq){ + return jq.each(function(){ + setDisabled(this, true); + }); + }, + select: function(jq){ + return jq.each(function(){ + setSelected(this, true); + }); + }, + unselect: function(jq){ + return jq.each(function(){ + setSelected(this, false); + }); + } + }; + + $.fn.linkbutton.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, + ['id','iconCls','iconAlign','group','size',{plain:'boolean',toggle:'boolean',selected:'boolean'}] + ), { + disabled: (t.attr('disabled') ? true : undefined), + text: $.trim(t.html()), + iconCls: (t.attr('icon') || t.attr('iconCls')) + }); + }; + + $.fn.linkbutton.defaults = { + id: null, + disabled: false, + toggle: false, + selected: false, + group: null, + plain: false, + text: '', + iconCls: null, + iconAlign: 'left', + size: 'small', // small,large + onClick: function(){} + }; + +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.menu.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.menu.js new file mode 100644 index 0000000..18a8889 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.menu.js @@ -0,0 +1,559 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * menu - jQuery EasyUI + * + */ +(function($){ + + /** + * initialize the target menu, the function can be invoked only once + */ + function init(target){ + $(target).appendTo('body'); + $(target).addClass('menu-top'); // the top menu + + $(document).unbind('.menu').bind('mousedown.menu', function(e){ +// var allMenu = $('body>div.menu:visible'); +// var m = $(e.target).closest('div.menu', allMenu); + var m = $(e.target).closest('div.menu,div.combo-p'); + if (m.length){return} + $('body>div.menu-top:visible').menu('hide'); + }); + + var menus = splitMenu($(target)); + for(var i=0; i
                                                ').html(text)); + if (itemOpts.iconCls){ + $('').addClass(itemOpts.iconCls).appendTo(item); + } + if (itemOpts.disabled){ + setDisabled(target, item[0], true); + } + if (item[0].submenu){ + $('').appendTo(item); // has sub menu + } + + bindMenuItemEvent(target, item); + } + }); + $('').prependTo(menu); + } + setMenuWidth(target, menu); + menu.hide(); + + bindMenuEvent(target, menu); + } + } + + function setMenuWidth(target, menu){ + var opts = $.data(target, 'menu').options; + var style = menu.attr('style') || ''; + menu.css({ + display: 'block', + left:-10000, + height: 'auto', + overflow: 'hidden' + }); + + var el = menu[0]; + var width = el.originalWidth || 0; + if (!width){ + width = 0; + menu.find('div.menu-text').each(function(){ + if (width < $(this)._outerWidth()){ + width = $(this)._outerWidth(); + } + $(this).closest('div.menu-item')._outerHeight($(this)._outerHeight()+2); + }); + width += 40; + } + + width = Math.max(width, opts.minWidth); + var height = el.originalHeight || menu.outerHeight(); + var lineHeight = Math.max(el.originalHeight, menu.outerHeight()) - 2; + menu._outerWidth(width)._outerHeight(height); + menu.children('div.menu-line')._outerHeight(lineHeight); + +// menu._outerWidth(Math.max((menu[0].originalWidth || 0), width, opts.minWidth)); +// +// menu.children('div.menu-line')._outerHeight(menu.outerHeight()); + + style += ';width:' + el.style.width + ';height:' + el.style.height; + + menu.attr('style', style); + } + + /** + * bind menu event + */ + function bindMenuEvent(target, menu){ + var state = $.data(target, 'menu'); + menu.unbind('.menu').bind('mouseenter.menu', function(){ + if (state.timer){ + clearTimeout(state.timer); + state.timer = null; + } + }).bind('mouseleave.menu', function(){ + if (state.options.hideOnUnhover){ + state.timer = setTimeout(function(){ + hideAll(target); + }, 100); + } + }); + } + + /** + * bind menu item event + */ + function bindMenuItemEvent(target, item){ + if (!item.hasClass('menu-item')){return} + item.unbind('.menu'); + item.bind('click.menu', function(){ + if ($(this).hasClass('menu-item-disabled')){ + return; + } + // only the sub menu clicked can hide all menus + if (!this.submenu){ + hideAll(target); + var href = $(this).attr('href'); + if (href){ + location.href = href; + } + } + var item = $(target).menu('getItem', this); + $.data(target, 'menu').options.onClick.call(target, item); + }).bind('mouseenter.menu', function(e){ + // hide other menu + item.siblings().each(function(){ + if (this.submenu){ + hideMenu(this.submenu); + } + $(this).removeClass('menu-active'); + }); + // show this menu + item.addClass('menu-active'); + + if ($(this).hasClass('menu-item-disabled')){ + item.addClass('menu-active-disabled'); + return; + } + + var submenu = item[0].submenu; + if (submenu){ + $(target).menu('show', { + menu: submenu, + parent: item + }); + } + }).bind('mouseleave.menu', function(e){ + item.removeClass('menu-active menu-active-disabled'); + var submenu = item[0].submenu; + if (submenu){ + if (e.pageX>=parseInt(submenu.css('left'))){ + item.addClass('menu-active'); + } else { + hideMenu(submenu); + } + + } else { + item.removeClass('menu-active'); + } + }); + } + + /** + * hide top menu and it's all sub menus + */ + function hideAll(target){ + var state = $.data(target, 'menu'); + if (state){ + if ($(target).is(':visible')){ + hideMenu($(target)); + state.options.onHide.call(target); + } + } + return false; + } + + /** + * show the menu, the 'param' object has one or more properties: + * left: the left position to display + * top: the top position to display + * menu: the menu to display, if not defined, the 'target menu' is used + * parent: the parent menu item to align to + * alignTo: the element object to align to + */ + function showMenu(target, param){ + var left,top; + param = param || {}; + var menu = $(param.menu || target); + if (menu.hasClass('menu-top')){ + var opts = $.data(target, 'menu').options; + $.extend(opts, param); + left = opts.left; + top = opts.top; + if (opts.alignTo){ + var at = $(opts.alignTo); + left = at.offset().left; + top = at.offset().top + at._outerHeight(); + if (opts.align == 'right'){ + left += at.outerWidth() - menu.outerWidth(); + } + } + if (left + menu.outerWidth() > $(window)._outerWidth() + $(document)._scrollLeft()){ + left = $(window)._outerWidth() + $(document).scrollLeft() - menu.outerWidth() - 5; + } + if (left < 0){left = 0;} + if (top + menu.outerHeight() > $(window)._outerHeight() + $(document).scrollTop()){ + top = $(window)._outerHeight() + $(document).scrollTop() - menu.outerHeight() - 5; + } + } else { + var parent = param.parent; // the parent menu item + left = parent.offset().left + parent.outerWidth() - 2; + if (left + menu.outerWidth() + 5 > $(window)._outerWidth() + $(document).scrollLeft()){ + left = parent.offset().left - menu.outerWidth() + 2; + } + var top = parent.offset().top - 3; + if (top + menu.outerHeight() > $(window)._outerHeight() + $(document).scrollTop()){ + top = $(window)._outerHeight() + $(document).scrollTop() - menu.outerHeight() - 5; + } + } + menu.css({left:left,top:top}); + menu.show(0, function(){ + if (!menu[0].shadow){ + menu[0].shadow = $('').insertAfter(menu); + } + menu[0].shadow.css({ + display:'block', + zIndex:$.fn.menu.defaults.zIndex++, + left:menu.css('left'), + top:menu.css('top'), + width:menu.outerWidth(), + height:menu.outerHeight() + }); + menu.css('z-index', $.fn.menu.defaults.zIndex++); + if (menu.hasClass('menu-top')){ + $.data(menu[0], 'menu').options.onShow.call(menu[0]); + } + }); + } + + function hideMenu(menu){ + if (!menu) return; + + hideit(menu); + menu.find('div.menu-item').each(function(){ + if (this.submenu){ + hideMenu(this.submenu); + } + $(this).removeClass('menu-active'); + }); + + function hideit(m){ + m.stop(true,true); + if (m[0].shadow){ + m[0].shadow.hide(); + } + m.hide(); + } + } + + function findItem(target, text){ + var result = null; + var tmp = $('
                                                '); + function find(menu){ + menu.children('div.menu-item').each(function(){ + var item = $(target).menu('getItem', this); + var s = tmp.empty().html(item.text).text(); + if (text == $.trim(s)) { + result = item; + } else if (this.submenu && !result){ + find(this.submenu); + } + }); + } + find($(target)); + tmp.remove(); + return result; + } + + function setDisabled(target, itemEl, disabled){ + var t = $(itemEl); + if (!t.hasClass('menu-item')){return} + + if (disabled){ + t.addClass('menu-item-disabled'); + if (itemEl.onclick){ + itemEl.onclick1 = itemEl.onclick; + itemEl.onclick = null; + } + } else { + t.removeClass('menu-item-disabled'); + if (itemEl.onclick1){ + itemEl.onclick = itemEl.onclick1; + itemEl.onclick1 = null; + } + } + } + + function appendItem(target, param){ + var menu = $(target); + if (param.parent){ + if (!param.parent.submenu){ + var submenu = $('').appendTo('body'); + submenu.hide(); + param.parent.submenu = submenu; + $('').appendTo(param.parent); + } + menu = param.parent.submenu; + } + if (param.separator){ + var item = $('').appendTo(menu); + } else { + var item = $('').appendTo(menu); + $('').html(param.text).appendTo(item); + } + if (param.iconCls) $('').addClass(param.iconCls).appendTo(item); + if (param.id) item.attr('id', param.id); + if (param.name){item[0].itemName = param.name} + if (param.href){item[0].itemHref = param.href} + if (param.onclick){ + if (typeof param.onclick == 'string'){ + item.attr('onclick', param.onclick); + } else { + item[0].onclick = eval(param.onclick); + } + } + if (param.handler){item[0].onclick = eval(param.handler)} + if (param.disabled){setDisabled(target, item[0], true)} + + bindMenuItemEvent(target, item); + bindMenuEvent(target, menu); + setMenuWidth(target, menu); + } + + function removeItem(target, itemEl){ + function removeit(el){ + if (el.submenu){ + el.submenu.children('div.menu-item').each(function(){ + removeit(this); + }); + var shadow = el.submenu[0].shadow; + if (shadow) shadow.remove(); + el.submenu.remove(); + } + $(el).remove(); + } + removeit(itemEl); + } + + function destroyMenu(target){ + $(target).children('div.menu-item').each(function(){ + removeItem(target, this); + }); + if (target.shadow) target.shadow.remove(); + $(target).remove(); + } + + $.fn.menu = function(options, param){ + if (typeof options == 'string'){ + return $.fn.menu.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'menu'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'menu', { + options: $.extend({}, $.fn.menu.defaults, $.fn.menu.parseOptions(this), options) + }); + init(this); + } + $(this).css({ + left: state.options.left, + top: state.options.top + }); + }); + }; + + $.fn.menu.methods = { + options: function(jq){ + return $.data(jq[0], 'menu').options; + }, + show: function(jq, pos){ + return jq.each(function(){ + showMenu(this, pos); + }); + }, + hide: function(jq){ + return jq.each(function(){ + hideAll(this); + }); + }, + destroy: function(jq){ + return jq.each(function(){ + destroyMenu(this); + }); + }, + /** + * set the menu item text + * param: { + * target: DOM object, indicate the menu item + * text: string, the new text + * } + */ + setText: function(jq, param){ + return jq.each(function(){ + $(param.target).children('div.menu-text').html(param.text); + }); + }, + /** + * set the menu icon class + * param: { + * target: DOM object, indicate the menu item + * iconCls: the menu item icon class + * } + */ + setIcon: function(jq, param){ + return jq.each(function(){ + $(param.target).children('div.menu-icon').remove(); + if (param.iconCls){ + $('').addClass(param.iconCls).appendTo(param.target); + } + }); + }, + /** + * get the menu item data that contains the following property: + * { + * target: DOM object, the menu item + * id: the menu id + * text: the menu item text + * iconCls: the icon class + * href: a remote address to redirect to + * onclick: a function to be called when the item is clicked + * } + */ + getItem: function(jq, itemEl){ + var t = $(itemEl); + var item = { + target: itemEl, + id: t.attr('id'), + text: $.trim(t.children('div.menu-text').html()), + disabled: t.hasClass('menu-item-disabled'), +// href: t.attr('href'), +// name: t.attr('name'), + name: itemEl.itemName, + href: itemEl.itemHref, + onclick: itemEl.onclick + } + var icon = t.children('div.menu-icon'); + if (icon.length){ + var cc = []; + var aa = icon.attr('class').split(' '); + for(var i=0; i').appendTo('body'); + d.width(100); + $._boxModel = parseInt(d.width()) == 100; + d.remove(); + + if (!window.easyloader && $.parser.auto){ + $.parser.parse(); + } + }); + + /** + * extend plugin to set box model width + */ + $.fn._outerWidth = function(width){ + if (width == undefined){ + if (this[0] == window){ + return this.width() || document.body.clientWidth; + } + return this.outerWidth()||0; + } + return this.each(function(){ + if ($._boxModel){ + $(this).width(width - ($(this).outerWidth() - $(this).width())); + } else { + $(this).width(width); + } + }); + }; + + /** + * extend plugin to set box model height + */ + $.fn._outerHeight = function(height){ + if (height == undefined){ + if (this[0] == window){ + return this.height() || document.body.clientHeight; + } + return this.outerHeight()||0; + } + return this.each(function(){ + if ($._boxModel){ + $(this).height(height - ($(this).outerHeight() - $(this).height())); + } else { + $(this).height(height); + } + }); + }; + + $.fn._scrollLeft = function(left){ + if (left == undefined){ + return this.scrollLeft(); + } else { + return this.each(function(){$(this).scrollLeft(left)}); + } + } + + $.fn._propAttr = $.fn.prop || $.fn.attr; + + /** + * set or unset the fit property of parent container, return the width and height of parent container + */ + $.fn._fit = function(fit){ + fit = fit == undefined ? true : fit; + var t = this[0]; + var p = (t.tagName == 'BODY' ? t : this.parent()[0]); + var fcount = p.fcount || 0; + if (fit){ + if (!t.fitted){ + t.fitted = true; + p.fcount = fcount + 1; + $(p).addClass('panel-noscroll'); + if (p.tagName == 'BODY'){ + $('html').addClass('panel-fit'); + } + } + } else { + if (t.fitted){ + t.fitted = false; + p.fcount = fcount - 1; + if (p.fcount == 0){ + $(p).removeClass('panel-noscroll'); + if (p.tagName == 'BODY'){ + $('html').removeClass('panel-fit'); + } + } + } + } + return { + width: $(p).width(), + height: $(p).height() + } + } + +})(jQuery); + +/** + * support for mobile devices + */ +(function($){ + var longTouchTimer = null; + var dblTouchTimer = null; + var isDblClick = false; + + function onTouchStart(e){ + if (e.touches.length != 1){return} + if (!isDblClick){ + isDblClick = true; + dblClickTimer = setTimeout(function(){ + isDblClick = false; + }, 500); + } else { + clearTimeout(dblClickTimer); + isDblClick = false; + fire(e, 'dblclick'); +// e.preventDefault(); + } + longTouchTimer = setTimeout(function(){ + fire(e, 'contextmenu', 3); + }, 1000); + fire(e, 'mousedown'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + function onTouchMove(e){ + if (e.touches.length != 1){return} + if (longTouchTimer){ + clearTimeout(longTouchTimer); + } + fire(e, 'mousemove'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + function onTouchEnd(e){ +// if (e.touches.length > 0){return} + if (longTouchTimer){ + clearTimeout(longTouchTimer); + } + fire(e, 'mouseup'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + + function fire(e, name, which){ + var event = new $.Event(name); + event.pageX = e.changedTouches[0].pageX; + event.pageY = e.changedTouches[0].pageY; + event.which = which || 1; + $(e.target).trigger(event); + } + + if (document.addEventListener){ + document.addEventListener("touchstart", onTouchStart, true); + document.addEventListener("touchmove", onTouchMove, true); + document.addEventListener("touchend", onTouchEnd, true); + } +})(jQuery); + diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.progressbar.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.progressbar.js new file mode 100644 index 0000000..778eba2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.progressbar.js @@ -0,0 +1,101 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * progressbar - jQuery EasyUI + * + * Dependencies: + * none + * + */ +(function($){ + function init(target){ + $(target).addClass('progressbar'); + $(target).html('
                                                '); + return $(target); + } + + function setSize(target,width){ + var opts = $.data(target, 'progressbar').options; + var bar = $.data(target, 'progressbar').bar; + if (width) opts.width = width; + bar._outerWidth(opts.width)._outerHeight(opts.height); + + bar.find('div.progressbar-text').width(bar.width()); + bar.find('div.progressbar-text,div.progressbar-value').css({ + height: bar.height()+'px', + lineHeight: bar.height()+'px' + }); + } + + $.fn.progressbar = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.progressbar.methods[options]; + if (method){ + return method(this, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'progressbar'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'progressbar', { + options: $.extend({}, $.fn.progressbar.defaults, $.fn.progressbar.parseOptions(this), options), + bar: init(this) + }); + } + $(this).progressbar('setValue', state.options.value); + setSize(this); + }); + }; + + $.fn.progressbar.methods = { + options: function(jq){ + return $.data(jq[0], 'progressbar').options; + }, + resize: function(jq, width){ + return jq.each(function(){ + setSize(this, width); + }); + }, + getValue: function(jq){ + return $.data(jq[0], 'progressbar').options.value; + }, + setValue: function(jq, value){ + if (value < 0) value = 0; + if (value > 100) value = 100; + return jq.each(function(){ + var opts = $.data(this, 'progressbar').options; + var text = opts.text.replace(/{value}/, value); + var oldValue = opts.value; + opts.value = value; + $(this).find('div.progressbar-value').width(value+'%'); + $(this).find('div.progressbar-text').html(text); + if (oldValue != value){ + opts.onChange.call(this, value, oldValue); + } + }); + } + }; + + $.fn.progressbar.parseOptions = function(target){ + return $.extend({}, $.parser.parseOptions(target, ['width','height','text',{value:'number'}])); + }; + + $.fn.progressbar.defaults = { + width: 'auto', + height: 22, + value: 0, // percentage value + text: '{value}%', + onChange:function(newValue,oldValue){} + }; +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.propertygrid.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.propertygrid.js new file mode 100644 index 0000000..c1b4a71 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.propertygrid.js @@ -0,0 +1,317 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * propertygrid - jQuery EasyUI + * + * Dependencies: + * datagrid + * + */ +(function($){ + var currTarget; + + function buildGrid(target){ + var state = $.data(target, 'propertygrid'); + var opts = $.data(target, 'propertygrid').options; + $(target).datagrid($.extend({}, opts, { + cls:'propertygrid', + view:(opts.showGroup ? opts.groupView : opts.view), + onClickRow:function(index, row){ + if (currTarget != this){ +// leaveCurrRow(); + stopEditing(currTarget); + currTarget = this; + } + if (opts.editIndex != index && row.editor){ + var col = $(this).datagrid('getColumnOption', "value"); + col.editor = row.editor; +// leaveCurrRow(); + stopEditing(currTarget); + $(this).datagrid('beginEdit', index); + $(this).datagrid('getEditors', index)[0].target.focus(); + opts.editIndex = index; + } + opts.onClickRow.call(target, index, row); + }, + loadFilter:function(data){ + stopEditing(this); + return opts.loadFilter.call(this, data); + } + })); + $(document).unbind('.propertygrid').bind('mousedown.propertygrid', function(e){ + var p = $(e.target).closest('div.datagrid-view,div.combo-panel'); +// var p = $(e.target).closest('div.propertygrid,div.combo-panel'); + if (p.length){return;} + stopEditing(currTarget); + currTarget = undefined; + }); + +// function leaveCurrRow(){ +// var t = $(currTarget); +// if (!t.length){return;} +// var opts = $.data(currTarget, 'propertygrid').options; +// var index = opts.editIndex; +// if (index == undefined){return;} +// var ed = t.datagrid('getEditors', index)[0]; +// if (ed){ +// ed.target.blur(); +// if (t.datagrid('validateRow', index)){ +// t.datagrid('endEdit', index); +// } else { +// t.datagrid('cancelEdit', index); +// } +// } +// opts.editIndex = undefined; +// } + } + + function stopEditing(target){ + var t = $(target); + if (!t.length){return} + var opts = $.data(target, 'propertygrid').options; + var index = opts.editIndex; + if (index == undefined){return;} + var ed = t.datagrid('getEditors', index)[0]; + if (ed){ + ed.target.blur(); + if (t.datagrid('validateRow', index)){ + t.datagrid('endEdit', index); + } else { + t.datagrid('cancelEdit', index); + } + } + opts.editIndex = undefined; + } + + $.fn.propertygrid = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.propertygrid.methods[options]; + if (method){ + return method(this, param); + } else { + return this.datagrid(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'propertygrid'); + if (state){ + $.extend(state.options, options); + } else { + var opts = $.extend({}, $.fn.propertygrid.defaults, $.fn.propertygrid.parseOptions(this), options); + opts.frozenColumns = $.extend(true, [], opts.frozenColumns); + opts.columns = $.extend(true, [], opts.columns); + $.data(this, 'propertygrid', { + options: opts + }); + } + buildGrid(this); + }); + } + + $.fn.propertygrid.methods = { + options: function(jq){ + return $.data(jq[0], 'propertygrid').options; + } + }; + + $.fn.propertygrid.parseOptions = function(target){ + return $.extend({}, $.fn.datagrid.parseOptions(target), $.parser.parseOptions(target,[{showGroup:'boolean'}])); + }; + + // the group view definition + var groupview = $.extend({}, $.fn.datagrid.defaults.view, { + render: function(target, container, frozen){ + var table = []; + var groups = this.groups; + for(var i=0; i'); + table.push(''); + table.push(''); + if ((frozen && (opts.rownumbers || opts.frozenColumns.length)) || + (!frozen && !(opts.rownumbers || opts.frozenColumns.length))){ + table.push(''); + } + table.push(''); + table.push(''); + table.push('
                                                 '); + if (!frozen){ + table.push(''); + table.push(opts.groupFormatter.call(target, group.value, group.rows)); + table.push(''); + } + table.push('
                                                '); + table.push(''); + + table.push(''); + var index = group.startIndex; + for(var j=0; j'); + table.push(this.renderRow.call(this, target, fields, frozen, index, group.rows[j])); + table.push(''); + index++; + } + table.push('
                                                '); + return table.join(''); + }, + + bindEvents: function(target){ + var state = $.data(target, 'datagrid'); + var dc = state.dc; + var body = dc.body1.add(dc.body2); + var clickHandler = ($.data(body[0],'events')||$._data(body[0],'events')).click[0].handler; + body.unbind('click').bind('click', function(e){ + var tt = $(e.target); + var expander = tt.closest('span.datagrid-row-expander'); + if (expander.length){ + var gindex = expander.closest('div.datagrid-group').attr('group-index'); + if (expander.hasClass('datagrid-row-collapse')){ + $(target).datagrid('collapseGroup', gindex); + } else { + $(target).datagrid('expandGroup', gindex); + } + } else { + clickHandler(e); + } + e.stopPropagation(); + }); + }, + + onBeforeRender: function(target, rows){ + var state = $.data(target, 'datagrid'); + var opts = state.options; + + initCss(); + + var groups = []; + for(var i=0; i' + + '.datagrid-group{height:25px;overflow:hidden;font-weight:bold;border-bottom:1px solid #ccc;}' + + '' + ); + } + } + } + }); + + $.extend($.fn.datagrid.methods, { + expandGroup:function(jq, groupIndex){ + return jq.each(function(){ + var view = $.data(this, 'datagrid').dc.view; + var group = view.find(groupIndex!=undefined ? 'div.datagrid-group[group-index="'+groupIndex+'"]' : 'div.datagrid-group'); + var expander = group.find('span.datagrid-row-expander'); + if (expander.hasClass('datagrid-row-expand')){ + expander.removeClass('datagrid-row-expand').addClass('datagrid-row-collapse'); + group.next('table').show(); + } + $(this).datagrid('fixRowHeight'); + }); + }, + collapseGroup:function(jq, groupIndex){ + return jq.each(function(){ + var view = $.data(this, 'datagrid').dc.view; + var group = view.find(groupIndex!=undefined ? 'div.datagrid-group[group-index="'+groupIndex+'"]' : 'div.datagrid-group'); + var expander = group.find('span.datagrid-row-expander'); + if (expander.hasClass('datagrid-row-collapse')){ + expander.removeClass('datagrid-row-collapse').addClass('datagrid-row-expand'); + group.next('table').hide(); + } + $(this).datagrid('fixRowHeight'); + }); + } + }); + // end of group view definition + + $.fn.propertygrid.defaults = $.extend({}, $.fn.datagrid.defaults, { + singleSelect:true, + remoteSort:false, + fitColumns:true, + loadMsg:'', + frozenColumns:[[ + {field:'f',width:16,resizable:false} + ]], + columns:[[ + {field:'name',title:'Name',width:100,sortable:true}, + {field:'value',title:'Value',width:100,resizable:false} + ]], + + showGroup:false, + groupView:groupview, + groupField:'group', + groupFormatter:function(fvalue,rows){return fvalue} + }); +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.resizable.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.resizable.js new file mode 100644 index 0000000..588a378 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.resizable.js @@ -0,0 +1,247 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * resizable - jQuery EasyUI + * + */ +(function($){ +// var isResizing = false; + $.fn.resizable = function(options, param){ + if (typeof options == 'string'){ + return $.fn.resizable.methods[options](this, param); + } + + function resize(e){ + var resizeData = e.data; + var options = $.data(resizeData.target, 'resizable').options; + if (resizeData.dir.indexOf('e') != -1) { + var width = resizeData.startWidth + e.pageX - resizeData.startX; + width = Math.min( + Math.max(width, options.minWidth), + options.maxWidth + ); + resizeData.width = width; + } + if (resizeData.dir.indexOf('s') != -1) { + var height = resizeData.startHeight + e.pageY - resizeData.startY; + height = Math.min( + Math.max(height, options.minHeight), + options.maxHeight + ); + resizeData.height = height; + } + if (resizeData.dir.indexOf('w') != -1) { + var width = resizeData.startWidth - e.pageX + resizeData.startX; + width = Math.min( + Math.max(width, options.minWidth), + options.maxWidth + ); + resizeData.width = width; + resizeData.left = resizeData.startLeft + resizeData.startWidth - resizeData.width; + +// resizeData.width = resizeData.startWidth - e.pageX + resizeData.startX; +// if (resizeData.width >= options.minWidth && resizeData.width <= options.maxWidth) { +// resizeData.left = resizeData.startLeft + e.pageX - resizeData.startX; +// } + } + if (resizeData.dir.indexOf('n') != -1) { + var height = resizeData.startHeight - e.pageY + resizeData.startY; + height = Math.min( + Math.max(height, options.minHeight), + options.maxHeight + ); + resizeData.height = height; + resizeData.top = resizeData.startTop + resizeData.startHeight - resizeData.height; + +// resizeData.height = resizeData.startHeight - e.pageY + resizeData.startY; +// if (resizeData.height >= options.minHeight && resizeData.height <= options.maxHeight) { +// resizeData.top = resizeData.startTop + e.pageY - resizeData.startY; +// } + } + } + + function applySize(e){ + var resizeData = e.data; + var t = $(resizeData.target); + t.css({ + left: resizeData.left, + top: resizeData.top + }); + if (t.outerWidth() != resizeData.width){t._outerWidth(resizeData.width)} + if (t.outerHeight() != resizeData.height){t._outerHeight(resizeData.height)} +// t._outerWidth(resizeData.width)._outerHeight(resizeData.height); + } + + function doDown(e){ +// isResizing = true; + $.fn.resizable.isResizing = true; + $.data(e.data.target, 'resizable').options.onStartResize.call(e.data.target, e); + return false; + } + + function doMove(e){ + resize(e); + if ($.data(e.data.target, 'resizable').options.onResize.call(e.data.target, e) != false){ + applySize(e) + } + return false; + } + + function doUp(e){ +// isResizing = false; + $.fn.resizable.isResizing = false; + resize(e, true); + applySize(e); + $.data(e.data.target, 'resizable').options.onStopResize.call(e.data.target, e); + $(document).unbind('.resizable'); + $('body').css('cursor',''); +// $('body').css('cursor','auto'); + return false; + } + + return this.each(function(){ + var opts = null; + var state = $.data(this, 'resizable'); + if (state) { + $(this).unbind('.resizable'); + opts = $.extend(state.options, options || {}); + } else { + opts = $.extend({}, $.fn.resizable.defaults, $.fn.resizable.parseOptions(this), options || {}); + $.data(this, 'resizable', { + options:opts + }); + } + + if (opts.disabled == true) { + return; + } + + // bind mouse event using namespace resizable + $(this).bind('mousemove.resizable', {target:this}, function(e){ +// if (isResizing) return; + if ($.fn.resizable.isResizing){return} + var dir = getDirection(e); + if (dir == '') { + $(e.data.target).css('cursor', ''); + } else { + $(e.data.target).css('cursor', dir + '-resize'); + } + }).bind('mouseleave.resizable', {target:this}, function(e){ + $(e.data.target).css('cursor', ''); + }).bind('mousedown.resizable', {target:this}, function(e){ + var dir = getDirection(e); + if (dir == '') return; + + function getCssValue(css) { + var val = parseInt($(e.data.target).css(css)); + if (isNaN(val)) { + return 0; + } else { + return val; + } + } + + var data = { + target: e.data.target, + dir: dir, + startLeft: getCssValue('left'), + startTop: getCssValue('top'), + left: getCssValue('left'), + top: getCssValue('top'), + startX: e.pageX, + startY: e.pageY, + startWidth: $(e.data.target).outerWidth(), + startHeight: $(e.data.target).outerHeight(), + width: $(e.data.target).outerWidth(), + height: $(e.data.target).outerHeight(), + deltaWidth: $(e.data.target).outerWidth() - $(e.data.target).width(), + deltaHeight: $(e.data.target).outerHeight() - $(e.data.target).height() + }; + $(document).bind('mousedown.resizable', data, doDown); + $(document).bind('mousemove.resizable', data, doMove); + $(document).bind('mouseup.resizable', data, doUp); + $('body').css('cursor', dir+'-resize'); + }); + + // get the resize direction + function getDirection(e) { + var tt = $(e.data.target); + var dir = ''; + var offset = tt.offset(); + var width = tt.outerWidth(); + var height = tt.outerHeight(); + var edge = opts.edge; + if (e.pageY > offset.top && e.pageY < offset.top + edge) { + dir += 'n'; + } else if (e.pageY < offset.top + height && e.pageY > offset.top + height - edge) { + dir += 's'; + } + if (e.pageX > offset.left && e.pageX < offset.left + edge) { + dir += 'w'; + } else if (e.pageX < offset.left + width && e.pageX > offset.left + width - edge) { + dir += 'e'; + } + + var handles = opts.handles.split(','); + for(var i=0; i' + + '
                                                ' + + '' + + '' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '' + + '').insertAfter(target); + var t = $(target); + t.addClass('slider-f').hide(); + var name = t.attr('name'); + if (name){ + slider.find('input.slider-value').attr('name', name); + t.removeAttr('name').attr('sliderName', name); + } + return slider; + } + + /** + * set the slider size, for vertical slider, the height property is required + */ + function setSize(target, param){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + if (param){ + if (param.width) opts.width = param.width; + if (param.height) opts.height = param.height; + } + if (opts.mode == 'h'){ + slider.css('height', ''); + slider.children('div').css('height', ''); + if (!isNaN(opts.width)){ + slider.width(opts.width); + } + } else { + slider.css('width', ''); + slider.children('div').css('width', ''); + if (!isNaN(opts.height)){ + slider.height(opts.height); + slider.find('div.slider-rule').height(opts.height); + slider.find('div.slider-rulelabel').height(opts.height); + slider.find('div.slider-inner')._outerHeight(opts.height); + } + } + initValue(target); + } + + /** + * show slider rule if needed + */ + function showRule(target){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + var aa = opts.mode == 'h' ? opts.rule : opts.rule.slice(0).reverse(); + if (opts.reversed){ + aa = aa.slice(0).reverse(); + } + _build(aa); + + function _build(aa){ + var rule = slider.find('div.slider-rule'); + var label = slider.find('div.slider-rulelabel'); + rule.empty(); + label.empty(); + for(var i=0; i').appendTo(rule); + span.css((opts.mode=='h'?'left':'top'), distance); + + // show the labels + if (aa[i] != '|'){ + span = $('').appendTo(label); + span.html(aa[i]); + if (opts.mode == 'h'){ + span.css({ + left: distance, + marginLeft: -Math.round(span.outerWidth()/2) + }); + } else { + span.css({ + top: distance, + marginTop: -Math.round(span.outerHeight()/2) + }); + } + } + } + } + } + + /** + * build the slider and set some properties + */ + function buildSlider(target){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + slider.removeClass('slider-h slider-v slider-disabled'); + slider.addClass(opts.mode == 'h' ? 'slider-h' : 'slider-v'); + slider.addClass(opts.disabled ? 'slider-disabled' : ''); + + slider.find('a.slider-handle').draggable({ + axis:opts.mode, + cursor:'pointer', + disabled: opts.disabled, + onDrag:function(e){ + var left = e.data.left; + var width = slider.width(); + if (opts.mode!='h'){ + left = e.data.top; + width = slider.height(); + } + if (left < 0 || left > width) { + return false; + } else { + var value = pos2value(target, left); + adjustValue(value); + return false; + } + }, + onBeforeDrag:function(){ + state.isDragging = true; + }, + onStartDrag:function(){ + opts.onSlideStart.call(target, opts.value); + }, + onStopDrag:function(e){ + var value = pos2value(target, (opts.mode=='h'?e.data.left:e.data.top)); + adjustValue(value); + opts.onSlideEnd.call(target, opts.value); + opts.onComplete.call(target, opts.value); + state.isDragging = false; + } + }); + slider.find('div.slider-inner').unbind('.slider').bind('mousedown.slider', function(e){ + if (state.isDragging){return} + var pos = $(this).offset(); + var value = pos2value(target, (opts.mode=='h'?(e.pageX-pos.left):(e.pageY-pos.top))); + adjustValue(value); + opts.onComplete.call(target, opts.value); + }); + + function adjustValue(value){ + var s = Math.abs(value % opts.step); + if (s < opts.step/2){ + value -= s; + } else { + value = value - s + opts.step; + } + setValue(target, value); + } + } + + /** + * set a specified value to slider + */ + function setValue(target, value){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + var oldValue = opts.value; + if (value < opts.min) value = opts.min; + if (value > opts.max) value = opts.max; + + opts.value = value; + $(target).val(value); + slider.find('input.slider-value').val(value); + + var pos = value2pos(target, value); + var tip = slider.find('.slider-tip'); + if (opts.showTip){ + tip.show(); + tip.html(opts.tipFormatter.call(target, opts.value)); + } else { + tip.hide(); + } + + if (opts.mode == 'h'){ + var style = 'left:'+pos+'px;'; + slider.find('.slider-handle').attr('style', style); + tip.attr('style', style + 'margin-left:' + (-Math.round(tip.outerWidth()/2)) + 'px'); + } else { + var style = 'top:' + pos + 'px;'; + slider.find('.slider-handle').attr('style', style); + tip.attr('style', style + 'margin-left:' + (-Math.round(tip.outerWidth())) + 'px'); + } + + if (oldValue != value){ + opts.onChange.call(target, value, oldValue); + } + } + + function initValue(target){ + var opts = $.data(target, 'slider').options; + var fn = opts.onChange; + opts.onChange = function(){}; + setValue(target, opts.value); + opts.onChange = fn; + } + + /** + * translate value to slider position + */ +// function value2pos(target, value){ +// var state = $.data(target, 'slider'); +// var opts = state.options; +// var slider = state.slider; +// if (opts.mode == 'h'){ +// var pos = (value-opts.min)/(opts.max-opts.min)*slider.width(); +// if (opts.reversed){ +// pos = slider.width() - pos; +// } +// } else { +// var pos = slider.height() - (value-opts.min)/(opts.max-opts.min)*slider.height(); +// if (opts.reversed){ +// pos = slider.height() - pos; +// } +// } +// return pos.toFixed(0); +// } + function value2pos(target, value){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + var size = opts.mode == 'h' ? slider.width() : slider.height(); + var pos = opts.converter.toPosition.call(target, value, size); + if (opts.mode == 'v'){ + pos = slider.height() - pos; + } + if (opts.reversed){ + pos = size - pos; + } + return pos.toFixed(0); + } + + /** + * translate slider position to value + */ +// function pos2value(target, pos){ +// var state = $.data(target, 'slider'); +// var opts = state.options; +// var slider = state.slider; +// if (opts.mode == 'h'){ +// var value = opts.min + (opts.max-opts.min)*(pos/slider.width()); +// } else { +// var value = opts.min + (opts.max-opts.min)*((slider.height()-pos)/slider.height()); +// } +// return opts.reversed ? opts.max - value.toFixed(0) : value.toFixed(0); +// } + function pos2value(target, pos){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + var size = opts.mode == 'h' ? slider.width() : slider.height(); + var value = opts.converter.toValue.call(target, opts.mode=='h'?(opts.reversed?(size-pos):pos):(size-pos), size); + return value.toFixed(0); +// var value = opts.converter.toValue.call(target, opts.mode=='h'?pos:(size-pos), size); +// return opts.reversed ? opts.max - value.toFixed(0) : value.toFixed(0); + } + + $.fn.slider = function(options, param){ + if (typeof options == 'string'){ + return $.fn.slider.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'slider'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'slider', { + options: $.extend({}, $.fn.slider.defaults, $.fn.slider.parseOptions(this), options), + slider: init(this) + }); + $(this).removeAttr('disabled'); + } + + var opts = state.options; + opts.min = parseFloat(opts.min); + opts.max = parseFloat(opts.max); + opts.value = parseFloat(opts.value); + opts.step = parseFloat(opts.step); + opts.originalValue = opts.value; + + buildSlider(this); + showRule(this); + setSize(this); + }); + }; + + $.fn.slider.methods = { + options: function(jq){ + return $.data(jq[0], 'slider').options; + }, + destroy: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').slider.remove(); + $(this).remove(); + }); + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + }); + }, + getValue: function(jq){ + return jq.slider('options').value; + }, + setValue: function(jq, value){ + return jq.each(function(){ + setValue(this, value); + }); + }, + clear: function(jq){ + return jq.each(function(){ + var opts = $(this).slider('options'); + setValue(this, opts.min); + }); + }, + reset: function(jq){ + return jq.each(function(){ + var opts = $(this).slider('options'); + setValue(this, opts.originalValue); + }); + }, + enable: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').options.disabled = false; + buildSlider(this); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').options.disabled = true; + buildSlider(this); + }); + } + }; + + $.fn.slider.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height','mode',{reversed:'boolean',showTip:'boolean',min:'number',max:'number',step:'number'} + ]), { + value: (t.val() || undefined), + disabled: (t.attr('disabled') ? true : undefined), + rule: (t.attr('rule') ? eval(t.attr('rule')) : undefined) + }); + }; + + $.fn.slider.defaults = { + width: 'auto', + height: 'auto', + mode: 'h', // 'h'(horizontal) or 'v'(vertical) + reversed: false, + showTip: false, + disabled: false, + value: 0, + min: 0, + max: 100, + step: 1, + rule: [], // [0,'|',100] + tipFormatter: function(value){return value}, + converter:{ + toPosition:function(value, size){ + var opts = $(this).slider('options'); + return (value-opts.min)/(opts.max-opts.min)*size; + }, + toValue:function(pos, size){ + var opts = $(this).slider('options'); + return opts.min + (opts.max-opts.min)*(pos/size); + } + }, + onChange: function(value, oldValue){}, + onSlideStart: function(value){}, + onSlideEnd: function(value){}, + onComplete: function(value){} + }; +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.tabs.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.tabs.js new file mode 100644 index 0000000..4d03661 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.tabs.js @@ -0,0 +1,792 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * tabs - jQuery EasyUI + * + * Dependencies: + * panel + * linkbutton + * + */ +(function($){ + + /** + * set the tabs scrollers to show or not, + * dependent on the tabs count and width + */ + function setScrollers(container) { + var opts = $.data(container, 'tabs').options; + if (opts.tabPosition == 'left' || opts.tabPosition == 'right' || !opts.showHeader){return} + + var header = $(container).children('div.tabs-header'); + var tool = header.children('div.tabs-tool'); + var sLeft = header.children('div.tabs-scroller-left'); + var sRight = header.children('div.tabs-scroller-right'); + var wrap = header.children('div.tabs-wrap'); + + // set the tool height + var tHeight = header.outerHeight(); + if (opts.plain){ + tHeight -= tHeight - header.height(); + } + tool._outerHeight(tHeight); + + var tabsWidth = 0; + $('ul.tabs li', header).each(function(){ + tabsWidth += $(this).outerWidth(true); + }); + var cWidth = header.width() - tool._outerWidth(); + + if (tabsWidth > cWidth) { + sLeft.add(sRight).show()._outerHeight(tHeight); + if (opts.toolPosition == 'left'){ + tool.css({ + left: sLeft.outerWidth(), + right: '' + }); + wrap.css({ + marginLeft: sLeft.outerWidth() + tool._outerWidth(), + marginRight: sRight._outerWidth(), + width: cWidth - sLeft.outerWidth() - sRight.outerWidth() + }); + } else { + tool.css({ + left: '', + right: sRight.outerWidth() + }); + wrap.css({ + marginLeft: sLeft.outerWidth(), + marginRight: sRight.outerWidth() + tool._outerWidth(), + width: cWidth - sLeft.outerWidth() - sRight.outerWidth() + }); + } + } else { + sLeft.add(sRight).hide(); + if (opts.toolPosition == 'left'){ + tool.css({ + left: 0, + right: '' + }); + wrap.css({ + marginLeft: tool._outerWidth(), + marginRight: 0, + width: cWidth + }); + } else { + tool.css({ + left: '', + right: 0 + }); + wrap.css({ + marginLeft: 0, + marginRight: tool._outerWidth(), + width: cWidth + }); + } + } + } + + function addTools(container){ + var opts = $.data(container, 'tabs').options; + var header = $(container).children('div.tabs-header'); + if (opts.tools) { + if (typeof opts.tools == 'string'){ + $(opts.tools).addClass('tabs-tool').appendTo(header); + $(opts.tools).show(); + } else { + header.children('div.tabs-tool').remove(); + var tools = $('
                                                ').appendTo(header); + var tr = tools.find('tr'); + for(var i=0; i').appendTo(tr); + var tool = $('').appendTo(td); + tool[0].onclick = eval(opts.tools[i].handler || function(){}); + tool.linkbutton($.extend({}, opts.tools[i], { + plain: true + })); + } + } + } else { + header.children('div.tabs-tool').remove(); + } + } + + function setSize(container) { + var state = $.data(container, 'tabs'); + var opts = state.options; + var cc = $(container); + + opts.fit ? $.extend(opts, cc._fit()) : cc._fit(false); + cc.width(opts.width).height(opts.height); + + var header = $(container).children('div.tabs-header'); + var panels = $(container).children('div.tabs-panels'); + var wrap = header.find('div.tabs-wrap'); + var ul = wrap.find('.tabs'); + + for(var i=0; i').insertBefore(cc); + cc.children('div').each(function(){ + pp[0].appendChild(this); + }); + cc[0].appendChild(pp[0]); +// cc.wrapInner('
                                                '); + $('
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                ' + + '
                                                  ' + + '
                                                  ' + + '
                                                  ').prependTo(container); + + cc.children('div.tabs-panels').children('div').each(function(i){ + var opts = $.extend({}, $.parser.parseOptions(this), { + selected: ($(this).attr('selected') ? true : undefined) + }); + var pp = $(this); + tabs.push(pp); + createTab(container, pp, opts); + }); + + cc.children('div.tabs-header').find('.tabs-scroller-left, .tabs-scroller-right').hover( + function(){$(this).addClass('tabs-scroller-over');}, + function(){$(this).removeClass('tabs-scroller-over');} + ); + cc.bind('_resize', function(e,force){ + var opts = $.data(container, 'tabs').options; + if (opts.fit == true || force){ + setSize(container); + setSelectedSize(container); + } + return false; + }); + } + + function bindEvents(container){ + var state = $.data(container, 'tabs') + var opts = state.options; + $(container).children('div.tabs-header').unbind().bind('click', function(e){ + if ($(e.target).hasClass('tabs-scroller-left')){ + $(container).tabs('scrollBy', -opts.scrollIncrement); + } else if ($(e.target).hasClass('tabs-scroller-right')){ + $(container).tabs('scrollBy', opts.scrollIncrement); + } else { + var li = $(e.target).closest('li'); + if (li.hasClass('tabs-disabled')){return;} + var a = $(e.target).closest('a.tabs-close'); + if (a.length){ + closeTab(container, getLiIndex(li)); + } else if (li.length){ +// selectTab(container, getLiIndex(li)); + var index = getLiIndex(li); + var popts = state.tabs[index].panel('options'); + if (popts.collapsible){ + popts.closed ? selectTab(container, index) : unselectTab(container, index); + } else { + selectTab(container, index); + } + } + } + }).bind('contextmenu', function(e){ + var li = $(e.target).closest('li'); + if (li.hasClass('tabs-disabled')){return;} + if (li.length){ + opts.onContextMenu.call(container, e, li.find('span.tabs-title').html(), getLiIndex(li)); + } + }); + + function getLiIndex(li){ + var index = 0; + li.parent().children('li').each(function(i){ + if (li[0] == this){ + index = i; + return false; + } + }); + return index; + } + } + + function setProperties(container){ + var opts = $.data(container, 'tabs').options; + var header = $(container).children('div.tabs-header'); + var panels = $(container).children('div.tabs-panels'); + + header.removeClass('tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right'); + panels.removeClass('tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right'); + if (opts.tabPosition == 'top'){ + header.insertBefore(panels); + } else if (opts.tabPosition == 'bottom'){ + header.insertAfter(panels); + header.addClass('tabs-header-bottom'); + panels.addClass('tabs-panels-top'); + } else if (opts.tabPosition == 'left'){ + header.addClass('tabs-header-left'); + panels.addClass('tabs-panels-right'); + } else if (opts.tabPosition == 'right'){ + header.addClass('tabs-header-right'); + panels.addClass('tabs-panels-left'); + } + + if (opts.plain == true) { + header.addClass('tabs-header-plain'); + } else { + header.removeClass('tabs-header-plain'); + } + if (opts.border == true){ + header.removeClass('tabs-header-noborder'); + panels.removeClass('tabs-panels-noborder'); + } else { + header.addClass('tabs-header-noborder'); + panels.addClass('tabs-panels-noborder'); + } + } + + function createTab(container, pp, options) { + var state = $.data(container, 'tabs'); + options = options || {}; + + // create panel + pp.panel($.extend({}, options, { + border: false, + noheader: true, + closed: true, + doSize: false, + iconCls: (options.icon ? options.icon : undefined), + onLoad: function(){ + if (options.onLoad){ + options.onLoad.call(this, arguments); + } + state.options.onLoad.call(container, $(this)); + } + })); + + var opts = pp.panel('options'); + + var tabs = $(container).children('div.tabs-header').find('ul.tabs'); + + opts.tab = $('
                                                • ').appendTo(tabs); // set the tab object in panel options + opts.tab.append( + '' + + '' + + '' + + '' + ); + + $(container).tabs('update', { + tab: pp, + options: opts + }); + } + + function addTab(container, options) { + var opts = $.data(container, 'tabs').options; + var tabs = $.data(container, 'tabs').tabs; + if (options.selected == undefined) options.selected = true; + + var pp = $('
                                                  ').appendTo($(container).children('div.tabs-panels')); + tabs.push(pp); + createTab(container, pp, options); + + opts.onAdd.call(container, options.title, tabs.length-1); + +// setScrollers(container); + setSize(container); + if (options.selected){ + selectTab(container, tabs.length-1); // select the added tab panel + } + } + + /** + * update tab panel, param has following properties: + * tab: the tab panel to be updated + * options: the tab panel options + */ + function updateTab(container, param){ + var selectHis = $.data(container, 'tabs').selectHis; + var pp = param.tab; // the tab panel + var oldTitle = pp.panel('options').title; + pp.panel($.extend({}, param.options, { + iconCls: (param.options.icon ? param.options.icon : undefined) + })); + + var opts = pp.panel('options'); // get the tab panel options + var tab = opts.tab; + + var s_title = tab.find('span.tabs-title'); + var s_icon = tab.find('span.tabs-icon'); + s_title.html(opts.title); + s_icon.attr('class', 'tabs-icon'); + + tab.find('a.tabs-close').remove(); + if (opts.closable){ + s_title.addClass('tabs-closable'); + $('').appendTo(tab); + } else{ + s_title.removeClass('tabs-closable'); + } + if (opts.iconCls){ + s_title.addClass('tabs-with-icon'); + s_icon.addClass(opts.iconCls); + } else { + s_title.removeClass('tabs-with-icon'); + } + + if (oldTitle != opts.title){ + for(var i=0; i').insertAfter(tab.find('a.tabs-inner')); + if ($.isArray(opts.tools)){ + for(var i=0; i').appendTo(p_tool); + t.addClass(opts.tools[i].iconCls); + if (opts.tools[i].handler){ + t.bind('click', {handler:opts.tools[i].handler}, function(e){ + if ($(this).parents('li').hasClass('tabs-disabled')){return;} + e.data.handler.call(this); + }); + } + } + } else { + $(opts.tools).children().appendTo(p_tool); + } + var pr = p_tool.children().length * 12; + if (opts.closable) { + pr += 8; + } else { + pr -= 3; + p_tool.css('right','5px'); + } + s_title.css('padding-right', pr+'px'); + } + +// setProperties(container); +// setScrollers(container); + setSize(container); + + $.data(container, 'tabs').options.onUpdate.call(container, opts.title, getTabIndex(container, pp)); + } + + /** + * close a tab with specified index or title + */ + function closeTab(container, which) { + var opts = $.data(container, 'tabs').options; + var tabs = $.data(container, 'tabs').tabs; + var selectHis = $.data(container, 'tabs').selectHis; + + if (!exists(container, which)) return; + + var tab = getTab(container, which); + var title = tab.panel('options').title; + var index = getTabIndex(container, tab); + + if (opts.onBeforeClose.call(container, title, index) == false) return; + + var tab = getTab(container, which, true); + tab.panel('options').tab.remove(); + tab.panel('destroy'); + + opts.onClose.call(container, title, index); + +// setScrollers(container); + setSize(container); + + // remove the select history item + for(var i=0; i= tabs.length){ + return null; + } else { + var tab = tabs[which]; + if (removeit) { + tabs.splice(which, 1); + } + return tab; + } + } + for(var i=0; idiv.tabs-header>div.tabs-wrap'); + var left = tab.position().left; + var right = left + tab.outerWidth(); + if (left < 0 || right > wrap.width()){ + var deltaX = left - (wrap.width()-tab.width()) / 2; + $(container).tabs('scrollBy', deltaX); + } else { + $(container).tabs('scrollBy', 0); + } + + setSelectedSize(container); + + opts.onSelect.call(container, title, getTabIndex(container, panel)); + } + + function unselectTab(container, which){ + var state = $.data(container, 'tabs'); + var p = getTab(container, which); + if (p){ + var opts = p.panel('options'); + if (!opts.closed){ + p.panel('close'); + if (opts.closed){ + opts.tab.removeClass('tabs-selected'); + state.options.onUnselect.call(container, opts.title, getTabIndex(container, p)); + } + } + } + } + + function exists(container, which){ + return getTab(container, which) != null; + } + + function showHeader(container, visible){ + var opts = $.data(container, 'tabs').options; + opts.showHeader = visible; + $(container).tabs('resize'); + } + + + $.fn.tabs = function(options, param){ + if (typeof options == 'string') { + return $.fn.tabs.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'tabs'); + var opts; + if (state) { + opts = $.extend(state.options, options); + state.options = opts; + } else { + $.data(this, 'tabs', { + options: $.extend({},$.fn.tabs.defaults, $.fn.tabs.parseOptions(this), options), + tabs: [], + selectHis: [] + }); + wrapTabs(this); + } + + addTools(this); + setProperties(this); + setSize(this); + bindEvents(this); + + doFirstSelect(this); + }); + }; + + $.fn.tabs.methods = { + options: function(jq){ + var cc = jq[0]; + var opts = $.data(cc, 'tabs').options; + var s = getSelectedTab(cc); + opts.selected = s ? getTabIndex(cc, s) : -1; + return opts; + }, + tabs: function(jq){ + return $.data(jq[0], 'tabs').tabs; + }, + resize: function(jq){ + return jq.each(function(){ + setSize(this); + setSelectedSize(this); + }); + }, + add: function(jq, options){ + return jq.each(function(){ + addTab(this, options); + }); + }, + close: function(jq, which){ + return jq.each(function(){ + closeTab(this, which); + }); + }, + getTab: function(jq, which){ + return getTab(jq[0], which); + }, + getTabIndex: function(jq, tab){ + return getTabIndex(jq[0], tab); + }, + getSelected: function(jq){ + return getSelectedTab(jq[0]); + }, + select: function(jq, which){ + return jq.each(function(){ + selectTab(this, which); + }); + }, + unselect: function(jq, which){ + return jq.each(function(){ + unselectTab(this, which); + }); + }, + exists: function(jq, which){ + return exists(jq[0], which); + }, + update: function(jq, options){ + return jq.each(function(){ + updateTab(this, options); + }); + }, + enableTab: function(jq, which){ + return jq.each(function(){ + $(this).tabs('getTab', which).panel('options').tab.removeClass('tabs-disabled'); + }); + }, + disableTab: function(jq, which){ + return jq.each(function(){ + $(this).tabs('getTab', which).panel('options').tab.addClass('tabs-disabled'); + }); + }, + showHeader: function(jq){ + return jq.each(function(){ + showHeader(this, true); + }); + }, + hideHeader: function(jq){ + return jq.each(function(){ + showHeader(this, false); + }); + }, + scrollBy: function(jq, deltaX){ // scroll the tab header by the specified amount of pixels + return jq.each(function(){ + var opts = $(this).tabs('options'); + var wrap = $(this).find('>div.tabs-header>div.tabs-wrap'); + var pos = Math.min(wrap._scrollLeft() + deltaX, getMaxScrollWidth()); + wrap.animate({scrollLeft: pos}, opts.scrollDuration); + + function getMaxScrollWidth(){ + var w = 0; + var ul = wrap.children('ul'); + ul.children('li').each(function(){ + w += $(this).outerWidth(true); + }); + return w - wrap.width() + (ul.outerWidth() - ul.width()); + } + }); + } + }; + + $.fn.tabs.parseOptions = function(target){ + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height','tools','toolPosition','tabPosition', + {fit:'boolean',border:'boolean',plain:'boolean',headerWidth:'number',tabWidth:'number',tabHeight:'number',selected:'number',showHeader:'boolean'} + ])); + }; + + $.fn.tabs.defaults = { + width: 'auto', + height: 'auto', + headerWidth: 150, // the tab header width, it is valid only when tabPosition set to 'left' or 'right' + tabWidth: 'auto', // the tab width + tabHeight: 27, // the tab height + selected: 0, // the initialized selected tab index + showHeader: true, + plain: false, + fit: false, + border: true, + tools: null, + toolPosition: 'right', // left,right + tabPosition: 'top', // possible values: top,bottom + scrollIncrement: 100, + scrollDuration: 400, + onLoad: function(panel){}, + onSelect: function(title, index){}, + onUnselect: function(title, index){}, + onBeforeClose: function(title, index){}, + onClose: function(title, index){}, + onAdd: function(title, index){}, + onUpdate: function(title, index){}, + onContextMenu: function(e, title, index){} + }; +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.window.js b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.window.js new file mode 100644 index 0000000..70d84bd --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/src/jquery.window.js @@ -0,0 +1,412 @@ +/** + * jQuery EasyUI 1.3.6 + * + * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt + * To use it on other terms please contact us at info@jeasyui.com + * + */ +/** + * window - jQuery EasyUI + * + * Dependencies: + * panel + * draggable + * resizable + * + */ +(function($){ + function setSize(target, param){ + var opts = $.data(target, 'window').options; + if (param){ + $.extend(opts, param); +// if (param.width) opts.width = param.width; +// if (param.height) opts.height = param.height; +// if (param.left != null) opts.left = param.left; +// if (param.top != null) opts.top = param.top; + } + $(target).panel('resize', opts); + } + + function moveWindow(target, param){ + var state = $.data(target, 'window'); + if (param){ + if (param.left != null) state.options.left = param.left; + if (param.top != null) state.options.top = param.top; + } + $(target).panel('move', state.options); + if (state.shadow){ + state.shadow.css({ + left: state.options.left, + top: state.options.top + }); + } + } + + /** + * center the window only horizontally + */ + function hcenter(target, tomove){ + var state = $.data(target, 'window'); + var opts = state.options; + var width = opts.width; + if (isNaN(width)){ + width = state.window._outerWidth(); + } + if (opts.inline){ + var parent = state.window.parent(); + opts.left = (parent.width() - width) / 2 + parent.scrollLeft(); + } else { + opts.left = ($(window)._outerWidth() - width) / 2 + $(document).scrollLeft(); + } + if (tomove){moveWindow(target);} + } + + /** + * center the window only vertically + */ + function vcenter(target, tomove){ + var state = $.data(target, 'window'); + var opts = state.options; + var height = opts.height; + if (isNaN(height)){ + height = state.window._outerHeight(); + } + if (opts.inline){ + var parent = state.window.parent(); + opts.top = (parent.height() - height) / 2 + parent.scrollTop(); + } else { + opts.top = ($(window)._outerHeight() - height) / 2 + $(document).scrollTop(); + } + if (tomove){moveWindow(target);} + } + + function create(target){ + var state = $.data(target, 'window'); + var winClosed = state.options.closed; + var win = $(target).panel($.extend({}, state.options, { + border: false, + doSize: true, // size the panel, the property undefined in window component + closed: true, // close the panel + cls: 'window', + headerCls: 'window-header', + bodyCls: 'window-body ' + (state.options.noheader ? 'window-body-noheader' : ''), + + onBeforeDestroy: function(){ + if (state.options.onBeforeDestroy.call(target) == false) return false; + if (state.shadow) state.shadow.remove(); + if (state.mask) state.mask.remove(); + }, + onClose: function(){ + if (state.shadow) state.shadow.hide(); + if (state.mask) state.mask.hide(); + + state.options.onClose.call(target); + }, + onOpen: function(){ + if (state.mask){ + state.mask.css({ + display:'block', + zIndex: $.fn.window.defaults.zIndex++ + }); + } + if (state.shadow){ + state.shadow.css({ + display:'block', + zIndex: $.fn.window.defaults.zIndex++, + left: state.options.left, + top: state.options.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + } + state.window.css('z-index', $.fn.window.defaults.zIndex++); + + state.options.onOpen.call(target); + }, + onResize: function(width, height){ + var opts = $(this).panel('options'); + $.extend(state.options, { + width: opts.width, + height: opts.height, + left: opts.left, + top: opts.top + }); + if (state.shadow){ + state.shadow.css({ + left: state.options.left, + top: state.options.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + } + + state.options.onResize.call(target, width, height); + }, + onMinimize: function(){ + if (state.shadow) state.shadow.hide(); + if (state.mask) state.mask.hide(); + + state.options.onMinimize.call(target); + }, + onBeforeCollapse: function(){ + if (state.options.onBeforeCollapse.call(target) == false) return false; + if (state.shadow) state.shadow.hide(); + }, + onExpand: function(){ + if (state.shadow) state.shadow.show(); + state.options.onExpand.call(target); + } + })); + + state.window = win.panel('panel'); + + // create mask + if (state.mask) state.mask.remove(); + if (state.options.modal == true){ + state.mask = $('
                                                  ').insertAfter(state.window); + state.mask.css({ + width: (state.options.inline ? state.mask.parent().width() : getPageArea().width), + height: (state.options.inline ? state.mask.parent().height() : getPageArea().height), + display: 'none' + }); + } + + // create shadow + if (state.shadow) state.shadow.remove(); + if (state.options.shadow == true){ + state.shadow = $('
                                                  ').insertAfter(state.window); + state.shadow.css({ + display: 'none' + }); + } + + // if require center the window + if (state.options.left == null){hcenter(target);} + if (state.options.top == null){vcenter(target);} + moveWindow(target); + + if (!winClosed){ + win.window('open'); // open the window + } + } + + + /** + * set window drag and resize property + */ + function setProperties(target){ + var state = $.data(target, 'window'); + + state.window.draggable({ + handle: '>div.panel-header>div.panel-title', + disabled: state.options.draggable == false, + onStartDrag: function(e){ + if (state.mask) state.mask.css('z-index', $.fn.window.defaults.zIndex++); + if (state.shadow) state.shadow.css('z-index', $.fn.window.defaults.zIndex++); + state.window.css('z-index', $.fn.window.defaults.zIndex++); + + if (!state.proxy){ + state.proxy = $('
                                                  ').insertAfter(state.window); + } + state.proxy.css({ + display:'none', + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(state.window._outerWidth()); + state.proxy._outerHeight(state.window._outerHeight()); + setTimeout(function(){ + if (state.proxy) state.proxy.show(); + }, 500); + }, + onDrag: function(e){ + state.proxy.css({ + display:'block', + left: e.data.left, + top: e.data.top + }); + return false; + }, + onStopDrag: function(e){ + state.options.left = e.data.left; + state.options.top = e.data.top; + $(target).window('move'); + state.proxy.remove(); + state.proxy = null; + } + }); + + state.window.resizable({ + disabled: state.options.resizable == false, + onStartResize:function(e){ + state.pmask = $('
                                                  ').insertAfter(state.window); + state.pmask.css({ + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + if (!state.proxy){ + state.proxy = $('
                                                  ').insertAfter(state.window); + } + state.proxy.css({ + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(e.data.width); + state.proxy._outerHeight(e.data.height); + }, + onResize: function(e){ + state.proxy.css({ + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(e.data.width); + state.proxy._outerHeight(e.data.height); + return false; + }, + onStopResize: function(e){ + $.extend(state.options, { + left: e.data.left, + top: e.data.top, + width: e.data.width, + height: e.data.height + }); + setSize(target); + state.pmask.remove(); + state.pmask = null; + state.proxy.remove(); + state.proxy = null; + } + }); + } + + function getPageArea() { + if (document.compatMode == 'BackCompat') { + return { + width: Math.max(document.body.scrollWidth, document.body.clientWidth), + height: Math.max(document.body.scrollHeight, document.body.clientHeight) + } + } else { + return { + width: Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth), + height: Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + } + } + } + + // when window resize, reset the width and height of the window's mask + $(window).resize(function(){ + $('body>div.window-mask').css({ + width: $(window)._outerWidth(), + height: $(window)._outerHeight() + }); + setTimeout(function(){ + $('body>div.window-mask').css({ + width: getPageArea().width, + height: getPageArea().height + }); + }, 50); + }); + + $.fn.window = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.window.methods[options]; + if (method){ + return method(this, param); + } else { + return this.panel(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'window'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'window', { + options: $.extend({}, $.fn.window.defaults, $.fn.window.parseOptions(this), options) + }); + if (!state.options.inline){ +// $(this).appendTo('body'); + document.body.appendChild(this); + } + } + create(this); + setProperties(this); + }); + }; + + $.fn.window.methods = { + options: function(jq){ + var popts = jq.panel('options'); + var wopts = $.data(jq[0], 'window').options; + return $.extend(wopts, { + closed: popts.closed, + collapsed: popts.collapsed, + minimized: popts.minimized, + maximized: popts.maximized + }); + }, + window: function(jq){ + return $.data(jq[0], 'window').window; + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + }); + }, + move: function(jq, param){ + return jq.each(function(){ + moveWindow(this, param); + }); + }, + hcenter: function(jq){ + return jq.each(function(){ + hcenter(this, true); + }); + }, + vcenter: function(jq){ + return jq.each(function(){ + vcenter(this, true); + }); + }, + center: function(jq){ + return jq.each(function(){ + hcenter(this); + vcenter(this); + moveWindow(this); + }); + } + }; + + $.fn.window.parseOptions = function(target){ + return $.extend({}, $.fn.panel.parseOptions(target), $.parser.parseOptions(target, [ + {draggable:'boolean',resizable:'boolean',shadow:'boolean',modal:'boolean',inline:'boolean'} + ])); + }; + + // Inherited from $.fn.panel.defaults + $.fn.window.defaults = $.extend({}, $.fn.panel.defaults, { + zIndex: 9000, + draggable: true, + resizable: true, + shadow: true, + modal: false, + inline: false, // true to stay inside its parent, false to go on top of all elements + + // window's property which difference from panel + title: 'New Window', + collapsible: true, + minimizable: true, + maximizable: true, + closable: true, + closed: false + }); +})(jQuery); diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/accordion.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/accordion.css new file mode 100644 index 0000000..a0f6ddc --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/accordion.css @@ -0,0 +1,41 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #666; + border-color: #000; +} +.accordion .accordion-header { + background: #3d3d3d; + filter: none; +} +.accordion .accordion-header-selected { + background: #0052A3; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/calendar.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/calendar.css new file mode 100644 index 0000000..e862e22 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/calendar.css @@ -0,0 +1,197 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #ffffff; +} +.calendar-day { + color: #fff; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #000; +} +.calendar { + border-color: #000; +} +.calendar-header { + background: #3d3d3d; +} +.calendar-body, +.calendar-menu { + background: #666; +} +.calendar-body th { + background: #555; + padding: 2px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #777; + color: #fff; +} +.calendar-hover { + border: 1px solid #555; + padding: 0; +} +.calendar-selected { + background-color: #0052A3; + color: #fff; + border: 1px solid #00458a; + padding: 0; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/combo.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/combo.css new file mode 100644 index 0000000..d0af3b7 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/combo.css @@ -0,0 +1,58 @@ +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #666; +} +.combo { + border-color: #000; + background-color: #666; +} +.combo-arrow { + background-color: #3d3d3d; +} +.combo-arrow-hover { + background-color: #777; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/combobox.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/combobox.css new file mode 100644 index 0000000..284332e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/combobox.css @@ -0,0 +1,24 @@ +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #777; + color: #fff; +} +.combobox-item-selected { + background-color: #0052A3; + color: #fff; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/datagrid.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/datagrid.css new file mode 100644 index 0000000..392f446 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/datagrid.css @@ -0,0 +1,260 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #666 url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #444; + background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0); +} +.datagrid-cell-rownumber { + color: #fff; +} +.datagrid-resize-proxy { + background: #cccccc; +} +.datagrid-mask { + background: #000; +} +.datagrid-mask-msg { + border-color: #000; +} +.datagrid-toolbar, +.datagrid-pager { + background: #555; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #222; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #222; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #fff; + border-collapse: separate; +} +.datagrid-row-alt { + background: #555; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #777; + color: #fff; + cursor: default; +} +.datagrid-row-selected { + background: #0052A3; + color: #fff; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #000; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/datebox.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/datebox.css new file mode 100644 index 0000000..e368f64 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #555; +} +.datebox-button a { + color: #fff; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/dialog.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/dialog.css new file mode 100644 index 0000000..4ee224a --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/dialog.css @@ -0,0 +1,30 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #555; +} +.dialog-toolbar { + border-bottom: 1px solid #222; +} +.dialog-button { + border-top: 1px solid #222; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/easyui.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/easyui.css new file mode 100644 index 0000000..ac56156 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/easyui.css @@ -0,0 +1,2403 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #777; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #000; +} +.panel-header { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.panel-body { + background-color: #666; + color: #fff; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #fff; + height: 16px; + line-height: 16px; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #666; + border-color: #000; +} +.accordion .accordion-header { + background: #3d3d3d; + filter: none; +} +.accordion .accordion-header-selected { + background: #0052A3; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #000; +} +.window { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 20%); + background: -moz-linear-gradient(top,#454545 0,#383838 20%); + background: -o-linear-gradient(top,#454545 0,#383838 20%); + background: linear-gradient(to bottom,#454545 0,#383838 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.window-proxy { + border: 1px dashed #000; +} +.window-proxy-mask, +.window-mask { + background: #000; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #555; +} +.dialog-toolbar { + border-bottom: 1px solid #222; +} +.dialog-button { + border-top: 1px solid #222; +} +.textbox { + border: 1px solid #000; + vertical-align: middle; +} +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #666; +} +.combo { + border-color: #000; + background-color: #666; +} +.combo-arrow { + background-color: #3d3d3d; +} +.combo-arrow-hover { + background-color: #777; +} +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #777; + color: #fff; +} +.combobox-item-selected { + background-color: #0052A3; + color: #fff; +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #cccccc; +} +.layout-split-north { + border-bottom: 5px solid #444; +} +.layout-split-south { + border-top: 5px solid #444; +} +.layout-split-east { + border-left: 5px solid #444; +} +.layout-split-west { + border-right: 5px solid #444; +} +.layout-expand { + background-color: #3d3d3d; +} +.layout-expand-over { + background-color: #3d3d3d; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #3d3d3d url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #3d3d3d url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #777; + color: #fff; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #666; + color: #fff; + background: -webkit-linear-gradient(top,#454545 0,#666 100%); + background: -moz-linear-gradient(top,#454545 0,#666 100%); + background: -o-linear-gradient(top,#454545 0,#666 100%); + background: linear-gradient(to bottom,#454545 0,#666 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#666 0,#454545 100%); + background: -moz-linear-gradient(top,#666 0,#454545 100%); + background: -o-linear-gradient(top,#666 0,#454545 100%); + background: linear-gradient(to bottom,#666 0,#454545 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#454545 0,#666 100%); + background: -moz-linear-gradient(left,#454545 0,#666 100%); + background: -o-linear-gradient(left,#454545 0,#666 100%); + background: linear-gradient(to right,#454545 0,#666 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#666 0,#454545 100%); + background: -moz-linear-gradient(left,#666 0,#454545 100%); + background: -o-linear-gradient(left,#666 0,#454545 100%); + background: linear-gradient(to right,#666 0,#454545 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=1); +} +.tabs li a.tabs-inner { + color: #fff; + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #3d3d3d; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #000; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #777; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #666; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #666; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #666; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #666; +} +.l-btn { + text-decoration: none; + display: inline-block; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; +} +.l-btn-plain { + border: 0; + padding: 1px; +} +.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 24px; + font-size: 12px; + padding: 0; + margin: 0 4px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 4px 0 24px; +} +.l-btn-icon-left .l-btn-icon { + left: 4px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 24px 0 4px; +} +.l-btn-icon-right .l-btn-icon { + right: 4px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 4px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 40px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 4px; + width: 32px; +} +.l-btn { + color: #fff; + background: #777; + background-repeat: repeat-x; + border: 1px solid #555; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +.l-btn-plain { + background: transparent; + border: 0; + filter: none; +} +.l-btn-plain:hover { + background: #777; + color: #fff; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + background: #777; + color: #fff; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #000; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #000; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #666 url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #444; + background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0); +} +.datagrid-cell-rownumber { + color: #fff; +} +.datagrid-resize-proxy { + background: #cccccc; +} +.datagrid-mask { + background: #000; +} +.datagrid-mask-msg { + border-color: #000; +} +.datagrid-toolbar, +.datagrid-pager { + background: #555; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #222; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #222; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #fff; + border-collapse: separate; +} +.datagrid-row-alt { + background: #555; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #777; + color: #fff; + cursor: default; +} +.datagrid-row-selected { + background: #0052A3; + color: #fff; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #000; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #222; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #3d3d3d; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #222; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #3d3d3d; +} +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +.pagination-link .l-btn-text { + width: 24px; + text-align: center; + margin: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #000; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #ffffff; +} +.calendar-day { + color: #fff; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #000; +} +.calendar { + border-color: #000; +} +.calendar-header { + background: #3d3d3d; +} +.calendar-body, +.calendar-menu { + background: #666; +} +.calendar-body th { + background: #555; + padding: 2px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #777; + color: #fff; +} +.calendar-hover { + border: 1px solid #555; + padding: 0; +} +.calendar-selected { + background-color: #0052A3; + color: #fff; + border: 1px solid #00458a; + padding: 0; +} +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #555; +} +.datebox-button a { + color: #fff; +} +.numberbox { + border: 1px solid #000; + margin: 0; + padding: 0 2px; + vertical-align: middle; +} +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #000; +} +.spinner-arrow { + background-color: #3d3d3d; +} +.spinner-arrow-hover { + background-color: #777; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #000; +} +.progressbar-text { + color: #fff; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #0052A3; + color: #fff; +} +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + vertical-align: top; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #000; + background-color: #fff; +} +.searchbox .l-btn-plain { + background: #3d3d3d; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #000; + background: #3d3d3d; +} +.slider-rule span { + border-color: #000; +} +.slider-rulelabel span { + color: #fff; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #444; + border-right: 1px solid #777; +} +.menu-sep { + border-top: 1px solid #444; + border-bottom: 1px solid #777; +} +.menu { + background-color: #666; + border-color: #444; + color: #fff; +} +.menu-content { + background: #666; +} +.menu-item { + border-color: transparent; + _border-color: #666; +} +.menu-active { + border-color: #555; + color: #fff; + background: #777; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #fff; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #cccccc; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #555; + background-color: #777; + color: #fff; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #cccccc; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #000; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #666; + color: #fff; + border-color: #000; +} +.tree-node-hover { + background: #777; + color: #fff; +} +.tree-node-selected { + background: #0052A3; + color: #fff; +} +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #666; + border-color: #000; + color: #fff; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #000; +} +.tooltip-right .tooltip-arrow { + border-right-color: #666; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #000; +} +.tooltip-left .tooltip-arrow { + border-left-color: #666; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #000; +} +.tooltip-top .tooltip-arrow { + border-top-color: #666; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #000; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #666; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/accordion_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/accordion_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..45fd44aa30476e107428feeea74273a354d3b003 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYel%uDMV@SoVN1z5L3B> xDW~hhNx=}0EonJY9@lzK3(R79rLjPWf#H~1{zPk!fAK(V44$rjF6*2Ung93|vWVV6Z%4vL?&44I-o%PJ?Cx6QLVXnHR?Rhr;0){R%hr=okS>HS^0Qvf^!Vg~N^Sz&#ASvge z87j5M#D4oX@65PaX>s2t&yQ?p-0*+9{K1F+nQRT$=L)dM>6M4Gp7v%sn+|j&gQu&X J%Q~loCIFcQP)Gm( literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/datebox_arrow.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/datebox_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..783c83357fdf90a1c7c024358e1d768b5c09c135 GIT binary patch literal 626 zcmV-&0*(ENP)5OC%H;f`~O(q$Q#t2<^v$A>fbmv%e#dKTwK=Ku{5lS|}<-`a#7b zzTCOnnT>at)D}AMFuOZ5&%EqFN(lyumd$2ASF6=;nM~%2?gqc@U=#|4PqkX@EBo-9 z7pD#bO_RUa>*faM`8;MYfVi$JnB-zcBFc6gjl$d!bF98Q!!!(Z1_R~P?e!pt#6CHJ9S&n_n&@=9 z%GP;!@Co4c*at+6vNz7o(6en^Q1%qHrc;1)9IRaz-$@S$Z-qdC^ds3X0NvQH;KS)D z-dh&rW&@X;1cS(45z)J&BVt+tv&GMVJ%!EiW) zLBGZW)#Z+gl-Lih&?>X3SS-S#ujQ;9JRXmIB7X)8`d6ETj)D#Q2+$s|<_b7-B9Xvq zwNfqlEp%y3$uY`h{Y$(Gn5@}sqEsq95lpAkFO5dyBmP6^H-51G4J|rN2Ujt<`2YX_ M07*qoM6N<$f3kcwMx!yWk;1b9CG_kXOx zmzFK*Ssi^NN-27((w?4M8@u`^_qP=9nfy4m{lwb6;U^wS@qDtp9?C45@HGEwayQ3S z%Ua=ZSB3W+c`gDw6;3c4*f@AGFEUxQKH4x2D*a5)78&qol`;+03qN((f|Me literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/linkbutton_bg.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/linkbutton_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..fc66bd2cd24047b8377342365a1df3846327ecde GIT binary patch literal 1274 zcmVc6j2;SWMDuL>F^vlqEUI{oOgO!xNf*11TukM z6kTZ3V2qd3<~<$H&Lrt?SpXUxF5Zb^}(={r!EHE+$QMdH|XZ zSYbMyc0tQc3qbP$tG{U_Jyg>I(0srOscEGU?-T)4AzuS$_2J>6`+BJ50YDY<^>2vV z+uI880P2ui(hyHiPrK$)CkbHg=kD&V3^8pD z0v3QOB&8eT@87?rgaGPrb#+ySxU;jP=nkL`nZ_{0e*BD+1Tc5b&d$oLo}8R$90gF1 z^ij>~#>R%HIRNUB_kgpQ+Lg!80Gbb2saY8>1EBeUm7A3TegK*dSciv)Wqp0!h-3im z1+1f^qq4iZ+ZEMUS63~e0I+zh`2rwd0l@!F(!7sM%_`|&0+*B!z{1(u+A9BIU&~T- z2he=L>dmc7TLXZFkeTeCHMcE|qX51{z>0ZC=xGjss*FaXGOMX+dHf8Z8hL6ntGQ_z zF9V<&dwY9jh`D7czyqj4g3S=~)zFA!0980RI4DC*Ez1%L09D8%=OHF&S@Q*;3bRfe zeL2-ZzyeT(Av4`$>R3`j096>WH7BOELD3yR70%Dk%Mk4)1W=73OH{L_UgIc$YFu7k zmRaq`&NxK?Rk*skDzlhL4IV!OsLJ*Ab@{BRT^TO}pgQC6xO~R6G8o_oU?C)>`xlc2 zriH~zU-;g$PyPA_&X!OBSU6SIeB~eKNAhF&(fs&F|1n9<+Yj^2T+4Dj%UFjr zZ%rnX^7Qmn0ANwP308gILtaQfK0Z1j0Br`Wq<=~Ka+?BxW&>7kRtZ+q>C~wJXg6S` zW|cJ1%?d#C0V@Ue)T{uY>425ig?tTsczEc(0+M8_c7^t|!sm-1Nw(}#nnLr?FgGlc zY}ut0+w(d)Uk6FDWtY;*aCdjteIX>tmhA#o+8PqHNU~+SlrTfyKRaNHBx~Ch-FJ3& z%B(Y&NwStp{rH$6Yj{YqhR=Gk~Mtw_&K$#yeTBf z7JV~bCN(VwL$c|B^>Topn-X{+7;S!yV~2^ zBgv-iMkME}U;-COwrsbABDvwg!2wA&ZMWttf5^jTl5E*7V41=|@=Hu>NJ^O8(7b4p z&ChgC(LF5>Md#{+4LgS{%KA|H(Xv`l4P^KdiBKB*_;1&m|Q7!{|O$ k%vVK{T!hwqk^D0L0mO==@4IV9lK=n!07*qoM6N<$f|Ge;n*aa+ literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/loading.gif b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f01d04813c1f622810864a3aaa04b4a17ac8f9 GIT binary patch literal 1737 zcmaKsX;2e)7>CzDa{xjjy99|1A!tC(kfocDi)<1$AxHpOQ4k^l!Vx1W6x7<&|FYXU zqO4jEiU-!VR1p+Xj1?4-iuI_J;!&?!+ghg|JJad3U)pMGzcKxNeCM6tJnuX+uPvX@ zZY|=AHdxt2Xr2y*)5|c6#FSEuyJ+Y3Z&l z2hJWo`9;lJ$6wzSoW60tqkB|d$oiO*d-^85^ojn{*NR{MP*%{@H*#gihZ8BKyB68E z-MIbjgNNV0y5khpJ^Jv`51aR%={<4jhaVq5e*9D5+*hL)XCHn4{^d%hPu@?KpKbc=eN!D=XUjDmH#n{YHNS zHCX6BV)yn2CuTNujhN~V+`RKpyXO6^ht92eqhIIlQLfz6eeCnH_C7`NPNrw9ks366 z4xX9(`s~z=+1uX^ocZ$2_fBs=JihPfWYufOIuD&AU-@`>>qn~cy$1)T7CU!5z2(U8 z)9Kt9)l`f6?NU41j6XbXfR{OHwm|T4}&24tIf+!C-g~6cQfY2^n$?AT&ZW zgqm`}3-jS2NS6n=k;sr5Hv(Q%%n)qW0X|neWVBd;Ko}d(=u%?{O0-a>kSI}shOd9n z5top}%gUCf=>?tg;*;#7!^HOL3k$fMxd=O-6Y4@%u8LS)C1D_a?27R6^vcC+6tttL z)GmTahbyJB!xmcHL#ya8ZXyfRl)a!N0BJE0y3BBfAV5;#=K&Z2VkaKZ)?9`1h5P_% znt*b}%j1|#j`b|aQDx@~wA#$PYRN2xE6UO;;vE(@$&xww-s8fZ5HmJ(eJ*rQrDbaawDbrfe_8F(wq{ge?)qQG`aXV;r(*6EM|ESje;52aFmrX!f=Pw^2oGQX$1|o4yts|b_5@w_kNwtl{wDP#JGMvIp#!SYX?Wq9S&`&_ZwkgGH5CLB7DEGJ6=R4J~p3Z4i^A}hs=-uZeD zs92l6u@**R$~L()G{5N8*7cE5-q$SCo`q4|NSVF*+A7&xZnypm$EdXgf)E%(VJHFD zSgi(H!D!(;9Zcc#GrCCJh=RlvXBQ-hv4Vodse`a32ZUFWgP5ZhM5LeV(#D^H8p@Lg ztra5R32z@1rQv{6u&RZL5%Z@Ye{q|t#6aM_1hIrpl@)oH6}os*cbAQywa{5<`ekzW O1il%9bk82&KlvLjD^%40 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/menu_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/menu_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..2a984941d6590c78d67ee68d2087d8cc88efbac6 GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3HFkJ+IURQof!pjv*Dd-d;V(%b>u);`l3H z>g53sy@tf+`c*Dhco^6|8Eg#8WENqsU-wu%RB=*I5D$X7F_Nb6Mw<&;$S;RV&B< literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/messager_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/messager_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..62c18c135860351063ebaabe8c0f4df7664b8f65 GIT binary patch literal 6116 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 lGy-mR literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/panel_tools.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/panel_tools.png new file mode 100644 index 0000000000000000000000000000000000000000..f97761eb393def3b5f61774142413e740fe8fe8b GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QuUrLjv*Dd-p+93Yfuni{`r6T z$48CLf{EOzXU|M@xy0GMavBpu(5ti8zb3QZ+Tfp^siO37?WI*8%sM?7u5w1XttgAw z*Z5axHOr-aZj1~Mw;UHx3vIVCg!0FXpSG5`Po literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/searchbox_button.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/searchbox_button.png new file mode 100644 index 0000000000000000000000000000000000000000..6dd1931589b453f6cc9772fd1851d8705d6b6631 GIT binary patch literal 813 zcmV+|1JeA7P)lXvaa)1B=8vtU6i;3jw7+Lm8D5$Z@i10EnF)=bcefw4K z$^E-CUfjQG`svfBbfD6|R#sLFj6lo3FG$G6@;ee>>~6i|H^5OY8c00W#fi<*1vzh{0&qu3dB`V0{{XDY`}(1n>S9M(9!zw#!&`A z#;*+0{6GVMSeWGp!`o{o8NPge#o%jgs54WT$qnQYpsyGNpauX05F;oJfZ`Pdw6!$j zynTH0RMa&!n3$Pa9zVGEY{&L(3qnPBl_DG6<9Xk0`Fl3`LiD4@pH{vDsxJWQ1qdJp zEJ>M}osCtQlY?CgW>F{;gVK#SmgoOZnEn5J%EtIXaWQXAO>Rdf)WFR;gt~f zXaA3z{{L{q=l48y!32yJ3i0hJ2BS=^}@sXzH{F9Iq&OW375;I7CG-}Vr|aF#l<(fySwu2>`YdxRW*W0f#2un=W5Jmvoe`XCK%I_Y++#`fwE+= zSd{sEULGDE%A=#BOW<6gP*6VfMa^fr8qe`5w%)P0a^Y9WGTw! zvI^|$>l@1Da^Ke1*T3RdY7KqM%gaBb(P+oP!GW;b?ZRfW3Bxc1H@GCaHK#XhZ*Lc= zRBC@>V&W#x&B5%(#>OW5`};d6I5Qw218EG_q@1gtr!Nl*v7yn?(MPMRt4SNy%--JK zanm#f^bw^}Nr7b(EUg}TUi(2;)deX10lAo=83+VA(QksJI6(zwptET-y~avN=J9w$ zI2`W5lG|aOkjY7(&!@;Jx*nUA>~J`Q)9L&(G8y=g$3a4YgD7z)5>gXQNKhw=uR0zF z#jHruh)gDv=bj|2ZES4(fEM?I!JyKqo=}sj-fBYTcDt4KXq)eFQH}wW`vh%Mla}#@ z@Mb`C)x@YkK{xd2>8ZLg+E!Lps$Q@6DY-~!0=Gs+Mm~_JnW1EbX2uxClEdN>Y@I78 z=ke_9?7sX@o0*x}M{JB77MIXj_MmNE%+1Xe{*{crh)9={dR(U;y-{jrxUXmG%Gt002ovPDHLkV1hy(sXhPz literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/spinner_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/spinner_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..25ee848d772e71e591fdf4e4d07409b94e58fc92 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYel)0yiV@SoV}ezCPaUb%ArQw1m64&Nzopr0N{TzyZ`_I literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/tree_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/tree_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..2b4fd2025c7588c84df27d89466b470e273f5c06 GIT binary patch literal 3086 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/validatebox_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/validatebox_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe78f7cb5683f47051dfa2be9f68e41d1ee8108 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYeRIaCsV@SoVm3k4ITR#`Kp{rvwwokNNz$T`$qA=+;Z^NMF2C8s?L8IJZHNV8nYr*K|kcI;bL=Dk`cLC5Fp~xyhuY%WU8R<>STuOYwvXqOkukT Pw3xxu)z4*}Q$iB}7o0V; literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/validatebox_warning.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/black/images/validatebox_warning.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3d4f05babf3f82b146350e96570fac02075de0 GIT binary patch literal 921 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 FV1ggwWZwV) literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/blank.gif b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d11fa9ada9e93505b3d736acb204083f45d5fbf GIT binary patch literal 43 scmZ?wbhEHbWMp7uX!y@?;J^U}1_s5SEQ~;kK?g*DWEhy3To@Uw0n;G|I{*Lx literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/calendar_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/calendar_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..430c4ad685b8c0068ecb7e3cbef74f493a84ad0d GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3HFkJ+IURQYD@)jv*Dd-cCEn)nLHm{QbZE z+q@uWwandfr?Jb4eDYYmB3UAt=OO2Vt+MMT&+KD%&6hZDt!FBpej;sEpMN69^tKl% zp6y<4_lG^P z=;=eQ4Vs74-2)Ua&f1tcVdk$#{GPKe@&?ZMHmT&SMw?IV&w7)}ixLbB3d$Zg{&KGb P8OPx1>gTe~DWM4f WNYm=W^A8UI00005OC%H;f`~O(q$Q#t2<^v$A>fbmv%e#dKTwK=Ku{5lS|}<-`a#7b zzTCOnnT>at)D}AMFuOZ5&%EqFN(lyumd$2ASF6=;nM~%2?gqc@U=#|4PqkX@EBo-9 z7pD#bO_RUa>*faM`8;MYfVi$JnB-zcBFc6gjl$d!bF98Q!!!(Z1_R~P?e!pt#6CHJ9S&n_n&@=9 z%GP;!@Co4c*at+6vNz7o(6en^Q1%qHrc;1)9IRaz-$@S$Z-qdC^ds3X0NvQH;KS)D z-dh&rW&@X;1cS(45z)J&BVt+tv&GMVJ%!EiW) zLBGZW)#Z+gl-Lih&?>X3SS-S#ujQ;9JRXmIB7X)8`d6ETj)D#Q2+$s|<_b7-B9Xvq zwNfqlEp%y3$uY`h{Y$(Gn5@}sqEsq95lpAkFO5dyBmP6^H-51G4J|rN2Ujt<`2YX_ M07*qoM6N<$fRl}UZ@-Co%Cq`k{wEj}Dr>ShP9AQ|IKKA30{ejJboVoF`C-z@6mZMY&%Wiz%6S}#zb4u?o?9Mi=ECopVxzz+sNviAA!DK)mm8xe zgY9ZT9jlddc^&y2^u9XqDeU4{8s^AS#8C7TXsxEJW@uLu(3Whc35-X6v}jEgEb{G` z!{)$uKzw<~%0A6PhNHYfSuTvOzD8LpPF>PVr=&QqGC936QlPgc6j2;SWMDuL>F^vlqEUI{oOgO!xNf*11TukM z6kTZ3V2qd3<~<$H&Lrt?SpXUxF5Zb^}(={r!EHE+$QMdH|XZ zSYbMyc0tQc3qbP$tG{U_Jyg>I(0srOscEGU?-T)4AzuS$_2J>6`+BJ50YDY<^>2vV z+uI880P2ui(hyHiPrK$)CkbHg=kD&V3^8pD z0v3QOB&8eT@87?rgaGPrb#+ySxU;jP=nkL`nZ_{0e*BD+1Tc5b&d$oLo}8R$90gF1 z^ij>~#>R%HIRNUB_kgpQ+Lg!80Gbb2saY8>1EBeUm7A3TegK*dSciv)Wqp0!h-3im z1+1f^qq4iZ+ZEMUS63~e0I+zh`2rwd0l@!F(!7sM%_`|&0+*B!z{1(u+A9BIU&~T- z2he=L>dmc7TLXZFkeTeCHMcE|qX51{z>0ZC=xGjss*FaXGOMX+dHf8Z8hL6ntGQ_z zF9V<&dwY9jh`D7czyqj4g3S=~)zFA!0980RI4DC*Ez1%L09D8%=OHF&S@Q*;3bRfe zeL2-ZzyeT(Av4`$>R3`j096>WH7BOELD3yR70%Dk%Mk4)1W=73OH{L_UgIc$YFu7k zmRaq`&NxK?Rk*skDzlhL4IV!OsLJ*Ab@{BRT^TO}pgQC6xO~R6G8o_oU?C)>`xlc2 zriH~zU-;g$PyPA_&X!OBSU6SIeB~eKNAhF&(fs&F|1n9<+Yj^2T+4Dj%UFjr zZ%rnX^7Qmn0ANwP308gILtaQfK0Z1j0Br`Wq<=~Ka+?BxW&>7kRtZ+q>C~wJXg6S` zW|cJ1%?d#C0V@Ue)T{uY>425ig?tTsczEc(0+M8_c7^t|!sm-1Nw(}#nnLr?FgGlc zY}ut0+w(d)Uk6FDWtY;*aCdjteIX>tmhA#o+8PqHNU~+SlrTfyKRaNHBx~Ch-FJ3& z%B(Y&NwStp{rH$6Yj{YqhR=Gk~Mtw_&K$#yeTBf z7JV~bCN(VwL$c|B^>Topn-X{+7;S!yV~2^ zBgv-iMkME}U;-COwrsbABDvwg!2wA&ZMWttf5^jTl5E*7V41=|@=Hu>NJ^O8(7b4p z&ChgC(LF5>Md#{+4LgS{%KA|H(Xv`l4P^KdiBKB*_;1&m|Q7!{|O$ k%vVK{T!hwqk^D0L0mO==@4IV9lK=n!07*qoM6N<$f|Ge;n*aa+ literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/loading.gif b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f01d04813c1f622810864a3aaa04b4a17ac8f9 GIT binary patch literal 1737 zcmaKsX;2e)7>CzDa{xjjy99|1A!tC(kfocDi)<1$AxHpOQ4k^l!Vx1W6x7<&|FYXU zqO4jEiU-!VR1p+Xj1?4-iuI_J;!&?!+ghg|JJad3U)pMGzcKxNeCM6tJnuX+uPvX@ zZY|=AHdxt2Xr2y*)5|c6#FSEuyJ+Y3Z&l z2hJWo`9;lJ$6wzSoW60tqkB|d$oiO*d-^85^ojn{*NR{MP*%{@H*#gihZ8BKyB68E z-MIbjgNNV0y5khpJ^Jv`51aR%={<4jhaVq5e*9D5+*hL)XCHn4{^d%hPu@?KpKbc=eN!D=XUjDmH#n{YHNS zHCX6BV)yn2CuTNujhN~V+`RKpyXO6^ht92eqhIIlQLfz6eeCnH_C7`NPNrw9ks366 z4xX9(`s~z=+1uX^ocZ$2_fBs=JihPfWYufOIuD&AU-@`>>qn~cy$1)T7CU!5z2(U8 z)9Kt9)l`f6?NU41j6XbXfR{OHwm|T4}&24tIf+!C-g~6cQfY2^n$?AT&ZW zgqm`}3-jS2NS6n=k;sr5Hv(Q%%n)qW0X|neWVBd;Ko}d(=u%?{O0-a>kSI}shOd9n z5top}%gUCf=>?tg;*;#7!^HOL3k$fMxd=O-6Y4@%u8LS)C1D_a?27R6^vcC+6tttL z)GmTahbyJB!xmcHL#ya8ZXyfRl)a!N0BJE0y3BBfAV5;#=K&Z2VkaKZ)?9`1h5P_% znt*b}%j1|#j`b|aQDx@~wA#$PYRN2xE6UO;;vE(@$&xww-s8fZ5HmJ(eJ*rQrDbaawDbrfe_8F(wq{ge?)qQG`aXV;r(*6EM|ESje;52aFmrX!f=Pw^2oGQX$1|o4yts|b_5@w_kNwtl{wDP#JGMvIp#!SYX?Wq9S&`&_ZwkgGH5CLB7DEGJ6=R4J~p3Z4i^A}hs=-uZeD zs92l6u@**R$~L()G{5N8*7cE5-q$SCo`q4|NSVF*+A7&xZnypm$EdXgf)E%(VJHFD zSgi(H!D!(;9Zcc#GrCCJh=RlvXBQ-hv4Vodse`a32ZUFWgP5ZhM5LeV(#D^H8p@Lg ztra5R32z@1rQv{6u&RZL5%Z@Ye{q|t#6aM_1hIrpl@)oH6}os*cbAQywa{5<`ekzW O1il%9bk82&KlvLjD^%40 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/menu_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/menu_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..b986842e7e4044caed18edbcb4b376a4bb915623 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3HFkJ+IURQt6&9jv*Dd-cB{-J7B=U{PTZ! zWrKV9%Z3|Wt5t$(gq+#d+-OocB$0fsr9DfRx52vPhSu$$+yXuy+69hDZ54DDTxx#r zL7>-12UT01v)>tZ+;HI4pDNf?@KK~EC$@35ykmXyu^HJF3})N>8P9Uwo&~g$!PC{x JWt~$(697!FIeGv9 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/messager_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/messager_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..62c18c135860351063ebaabe8c0f4df7664b8f65 GIT binary patch literal 6116 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/spinner_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/spinner_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..b68592de3200fbe1f7defe98a2b59b0398b1b737 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYel$EE8V@SoV_tDnm{r-UW|t3f!- literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/tree_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/tree_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..e9be4f3a9965e49a4e4078f8c53f486d761a7468 GIT binary patch literal 3115 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/validatebox_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/validatebox_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe78f7cb5683f47051dfa2be9f68e41d1ee8108 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYeRIaCsV@SoVm3k4ITR#`Kp{rvwwokNNz$T`$qA=+;Z^NMF2C8s?L8IJZHNV8nYr*K|kcI;bL=Dk`cLC5Fp~xyhuY%WU8R<>STuOYwvXqOkukT Pw3xxu)z4*}Q$iB}7o0V; literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/validatebox_warning.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/bootstrap/images/validatebox_warning.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3d4f05babf3f82b146350e96570fac02075de0 GIT binary patch literal 921 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 e00030{{sMi!cy)WX|@9Z0000_lG^P z=;=eQ4Vs74-2)Ua&f1tcVdk$#{GPKe@&?ZMHmT&SMw?IV&w7)}ixLbB3d$Zg{&KGb P8OPx1>gTe~DWM4f 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 T*HZOu00000NkvXXu0mjfg?d0C literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/layout_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/layout_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..45aa36e8ab1879e6c0a3d8599f57e680e5978117 GIT binary patch literal 2921 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/loading.gif b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f01d04813c1f622810864a3aaa04b4a17ac8f9 GIT binary patch literal 1737 zcmaKsX;2e)7>CzDa{xjjy99|1A!tC(kfocDi)<1$AxHpOQ4k^l!Vx1W6x7<&|FYXU zqO4jEiU-!VR1p+Xj1?4-iuI_J;!&?!+ghg|JJad3U)pMGzcKxNeCM6tJnuX+uPvX@ zZY|=AHdxt2Xr2y*)5|c6#FSEuyJ+Y3Z&l z2hJWo`9;lJ$6wzSoW60tqkB|d$oiO*d-^85^ojn{*NR{MP*%{@H*#gihZ8BKyB68E z-MIbjgNNV0y5khpJ^Jv`51aR%={<4jhaVq5e*9D5+*hL)XCHn4{^d%hPu@?KpKbc=eN!D=XUjDmH#n{YHNS zHCX6BV)yn2CuTNujhN~V+`RKpyXO6^ht92eqhIIlQLfz6eeCnH_C7`NPNrw9ks366 z4xX9(`s~z=+1uX^ocZ$2_fBs=JihPfWYufOIuD&AU-@`>>qn~cy$1)T7CU!5z2(U8 z)9Kt9)l`f6?NU41j6XbXfR{OHwm|T4}&24tIf+!C-g~6cQfY2^n$?AT&ZW zgqm`}3-jS2NS6n=k;sr5Hv(Q%%n)qW0X|neWVBd;Ko}d(=u%?{O0-a>kSI}shOd9n z5top}%gUCf=>?tg;*;#7!^HOL3k$fMxd=O-6Y4@%u8LS)C1D_a?27R6^vcC+6tttL z)GmTahbyJB!xmcHL#ya8ZXyfRl)a!N0BJE0y3BBfAV5;#=K&Z2VkaKZ)?9`1h5P_% znt*b}%j1|#j`b|aQDx@~wA#$PYRN2xE6UO;;vE(@$&xww-s8fZ5HmJ(eJ*rQrDbaawDbrfe_8F(wq{ge?)qQG`aXV;r(*6EM|ESje;52aFmrX!f=Pw^2oGQX$1|o4yts|b_5@w_kNwtl{wDP#JGMvIp#!SYX?Wq9S&`&_ZwkgGH5CLB7DEGJ6=R4J~p3Z4i^A}hs=-uZeD zs92l6u@**R$~L()G{5N8*7cE5-q$SCo`q4|NSVF*+A7&xZnypm$EdXgf)E%(VJHFD zSgi(H!D!(;9Zcc#GrCCJh=RlvXBQ-hv4Vodse`a32ZUFWgP5ZhM5LeV(#D^H8p@Lg ztra5R32z@1rQv{6u&RZL5%Z@Ye{q|t#6aM_1hIrpl@)oH6}os*cbAQywa{5<`ekzW O1il%9bk82&KlvLjD^%40 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/menu_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/menu_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..b986842e7e4044caed18edbcb4b376a4bb915623 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3HFkJ+IURQt6&9jv*Dd-cB{-J7B=U{PTZ! zWrKV9%Z3|Wt5t$(gq+#d+-OocB$0fsr9DfRx52vPhSu$$+yXuy+69hDZ54DDTxx#r zL7>-12UT01v)>tZ+;HI4pDNf?@KK~EC$@35ykmXyu^HJF3})N>8P9Uwo&~g$!PC{x JWt~$(697!FIeGv9 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/messager_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/messager_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..62c18c135860351063ebaabe8c0f4df7664b8f65 GIT binary patch literal 6116 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/spinner_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/spinner_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..b68592de3200fbe1f7defe98a2b59b0398b1b737 GIT binary patch literal 115 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/validatebox_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/validatebox_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe78f7cb5683f47051dfa2be9f68e41d1ee8108 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYeRIaCsV@SoVm3k4ITR#`Kp{rvwwokNNz$T`$qA=+;Z^NMF2C8s?L8IJZHNV8nYr*K|kcI;bL=Dk`cLC5Fp~xyhuY%WU8R<>STuOYwvXqOkukT Pw3xxu)z4*}Q$iB}7o0V; literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/validatebox_warning.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/default/images/validatebox_warning.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3d4f05babf3f82b146350e96570fac02075de0 GIT binary patch literal 921 zcmV;K17`e*P)nRv1_mBsMY*-M^XCf)eflW5 z|MC^)Hw+AW{sHCCF+cz@{fF8J!+#-kxoSv=7^|!zgOQUngSQ}mDo|J)n+pH}hzZ#= zr~y18$_m-?9v%$;?mu8);}>9vFgFvDXJDwrW&l6{p}625M66yTFhGz^K$w9^O$BHi zFN2Ym7DIple*#cW4BY^L0Al(Jbv6k9U|^6IQBp{hx3XdQ&CJ4Z_|YSVr@XujY(PVT zlok1<85nBO4FCurumK>O|A07*jFlSRUcxLAQVcIR*co#3@)&jj4Pj7KXRri%#h;fa z4ya5O*#Lk5Vq!q}T~=CGH(uV-hJk^fkAYoGjN#AMuMF($>N=giWG}IXse|=+c=i>7HEg>%*E%fLD!-uy|85n^6W?^Dt(9zXp5EB&z+w>_knBmdiKMbzi z?A!`WOl>e100a=&05*1xZdFls?*HtZ48H?o7=HW%ivIu45E2~BASWx!@DIpmv9e}h zaPwji|L}pqor@y`=yxrU0RRES^qYY}O;TRcU+DKIhL4`%3_nyf8U6tS<<-ZJ40D$( zWjJ%`G6NIPHNP2{7am*Fp% z{>ShK#0G`~kjd~57_BUHq8x z8Mn?6aTf^k-V*tOYvn_ZO}fk5lvg|}E|PI9vs&aPwII@?XO4*juRBlIrj#un@>dub Yl7)&6CQe}74m6L!)78&qol`;+0Id=veEh?7!oT zn93bYIb9!43Wj)WNz0M)xYl!8U>3_OjRiss3@1w0OwrH79T#p(gyX!(OO%qL5+0mDFDfJ;B_@in}@(}4BiPLQ2?X$D?b^JVD5OIknH tgv}h^JNN(XBRKqD;7RpfJ(WszOFJ3?rQM;ds#yR4002ovPDHLkV1n1EUx5Gs literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/datebox_arrow.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/datebox_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..783c83357fdf90a1c7c024358e1d768b5c09c135 GIT binary patch literal 626 zcmV-&0*(ENP)5OC%H;f`~O(q$Q#t2<^v$A>fbmv%e#dKTwK=Ku{5lS|}<-`a#7b zzTCOnnT>at)D}AMFuOZ5&%EqFN(lyumd$2ASF6=;nM~%2?gqc@U=#|4PqkX@EBo-9 z7pD#bO_RUa>*faM`8;MYfVi$JnB-zcBFc6gjl$d!bF98Q!!!(Z1_R~P?e!pt#6CHJ9S&n_n&@=9 z%GP;!@Co4c*at+6vNz7o(6en^Q1%qHrc;1)9IRaz-$@S$Z-qdC^ds3X0NvQH;KS)D z-dh&rW&@X;1cS(45z)J&BVt+tv&GMVJ%!EiW) zLBGZW)#Z+gl-Lih&?>X3SS-S#ujQ;9JRXmIB7X)8`d6ETj)D#Q2+$s|<_b7-B9Xvq zwNfqlEp%y3$uY`h{Y$(Gn5@}sqEsq95lpAkFO5dyBmP6^H-51G4J|rN2Ujt<`2YX_ M07*qoM6N<$fWs*_M~|PZK4f_B}P-f8$r|z#h zE+)9D_?OzcE{A)9cRCb`94D|RR5VOsbIEjx-=1{JpsQ;^Px3ZX?(@vc^nEOU2KU{_ gJ$cDa*@;a`BkgHpqSBTGpgR~mUHx3vIVCg!07Oqo9{>OV literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/linkbutton_bg.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/linkbutton_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..fc66bd2cd24047b8377342365a1df3846327ecde GIT binary patch literal 1274 zcmVc6j2;SWMDuL>F^vlqEUI{oOgO!xNf*11TukM z6kTZ3V2qd3<~<$H&Lrt?SpXUxF5Zb^}(={r!EHE+$QMdH|XZ zSYbMyc0tQc3qbP$tG{U_Jyg>I(0srOscEGU?-T)4AzuS$_2J>6`+BJ50YDY<^>2vV z+uI880P2ui(hyHiPrK$)CkbHg=kD&V3^8pD z0v3QOB&8eT@87?rgaGPrb#+ySxU;jP=nkL`nZ_{0e*BD+1Tc5b&d$oLo}8R$90gF1 z^ij>~#>R%HIRNUB_kgpQ+Lg!80Gbb2saY8>1EBeUm7A3TegK*dSciv)Wqp0!h-3im z1+1f^qq4iZ+ZEMUS63~e0I+zh`2rwd0l@!F(!7sM%_`|&0+*B!z{1(u+A9BIU&~T- z2he=L>dmc7TLXZFkeTeCHMcE|qX51{z>0ZC=xGjss*FaXGOMX+dHf8Z8hL6ntGQ_z zF9V<&dwY9jh`D7czyqj4g3S=~)zFA!0980RI4DC*Ez1%L09D8%=OHF&S@Q*;3bRfe zeL2-ZzyeT(Av4`$>R3`j096>WH7BOELD3yR70%Dk%Mk4)1W=73OH{L_UgIc$YFu7k zmRaq`&NxK?Rk*skDzlhL4IV!OsLJ*Ab@{BRT^TO}pgQC6xO~R6G8o_oU?C)>`xlc2 zriH~zU-;g$PyPA_&X!OBSU6SIeB~eKNAhF&(fs&F|1n9<+Yj^2T+4Dj%UFjr zZ%rnX^7Qmn0ANwP308gILtaQfK0Z1j0Br`Wq<=~Ka+?BxW&>7kRtZ+q>C~wJXg6S` zW|cJ1%?d#C0V@Ue)T{uY>425ig?tTsczEc(0+M8_c7^t|!sm-1Nw(}#nnLr?FgGlc zY}ut0+w(d)Uk6FDWtY;*aCdjteIX>tmhA#o+8PqHNU~+SlrTfyKRaNHBx~Ch-FJ3& z%B(Y&NwStp{rH$6Yj{YqhR=Gk~Mtw_&K$#yeTBf z7JV~bCN(VwL$c|B^>Topn-X{+7;S!yV~2^ zBgv-iMkME}U;-COwrsbABDvwg!2wA&ZMWttf5^jTl5E*7V41=|@=Hu>NJ^O8(7b4p z&ChgC(LF5>Md#{+4LgS{%KA|H(Xv`l4P^KdiBKB*_;1&m|Q7!{|O$ k%vVK{T!hwqk^D0L0mO==@4IV9lK=n!07*qoM6N<$f|Ge;n*aa+ literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/loading.gif b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f01d04813c1f622810864a3aaa04b4a17ac8f9 GIT binary patch literal 1737 zcmaKsX;2e)7>CzDa{xjjy99|1A!tC(kfocDi)<1$AxHpOQ4k^l!Vx1W6x7<&|FYXU zqO4jEiU-!VR1p+Xj1?4-iuI_J;!&?!+ghg|JJad3U)pMGzcKxNeCM6tJnuX+uPvX@ zZY|=AHdxt2Xr2y*)5|c6#FSEuyJ+Y3Z&l z2hJWo`9;lJ$6wzSoW60tqkB|d$oiO*d-^85^ojn{*NR{MP*%{@H*#gihZ8BKyB68E z-MIbjgNNV0y5khpJ^Jv`51aR%={<4jhaVq5e*9D5+*hL)XCHn4{^d%hPu@?KpKbc=eN!D=XUjDmH#n{YHNS zHCX6BV)yn2CuTNujhN~V+`RKpyXO6^ht92eqhIIlQLfz6eeCnH_C7`NPNrw9ks366 z4xX9(`s~z=+1uX^ocZ$2_fBs=JihPfWYufOIuD&AU-@`>>qn~cy$1)T7CU!5z2(U8 z)9Kt9)l`f6?NU41j6XbXfR{OHwm|T4}&24tIf+!C-g~6cQfY2^n$?AT&ZW zgqm`}3-jS2NS6n=k;sr5Hv(Q%%n)qW0X|neWVBd;Ko}d(=u%?{O0-a>kSI}shOd9n z5top}%gUCf=>?tg;*;#7!^HOL3k$fMxd=O-6Y4@%u8LS)C1D_a?27R6^vcC+6tttL z)GmTahbyJB!xmcHL#ya8ZXyfRl)a!N0BJE0y3BBfAV5;#=K&Z2VkaKZ)?9`1h5P_% znt*b}%j1|#j`b|aQDx@~wA#$PYRN2xE6UO;;vE(@$&xww-s8fZ5HmJ(eJ*rQrDbaawDbrfe_8F(wq{ge?)qQG`aXV;r(*6EM|ESje;52aFmrX!f=Pw^2oGQX$1|o4yts|b_5@w_kNwtl{wDP#JGMvIp#!SYX?Wq9S&`&_ZwkgGH5CLB7DEGJ6=R4J~p3Z4i^A}hs=-uZeD zs92l6u@**R$~L()G{5N8*7cE5-q$SCo`q4|NSVF*+A7&xZnypm$EdXgf)E%(VJHFD zSgi(H!D!(;9Zcc#GrCCJh=RlvXBQ-hv4Vodse`a32ZUFWgP5ZhM5LeV(#D^H8p@Lg ztra5R32z@1rQv{6u&RZL5%Z@Ye{q|t#6aM_1hIrpl@)oH6}os*cbAQywa{5<`ekzW O1il%9bk82&KlvLjD^%40 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/menu_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/menu_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..b986842e7e4044caed18edbcb4b376a4bb915623 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3HFkJ+IURQt6&9jv*Dd-cB{-J7B=U{PTZ! zWrKV9%Z3|Wt5t$(gq+#d+-OocB$0fsr9DfRx52vPhSu$$+yXuy+69hDZ54DDTxx#r zL7>-12UT01v)>tZ+;HI4pDNf?@KK~EC$@35ykmXyu^HJF3})N>8P9Uwo&~g$!PC{x JWt~$(697!FIeGv9 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/messager_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/messager_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..62c18c135860351063ebaabe8c0f4df7664b8f65 GIT binary patch literal 6116 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/spinner_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/spinner_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..dba62bb723518b491c763eb623179afab0f9e1a0 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYeREVdGV@SoV|gxNLixBH6G+?&imoXunS7gp2NL oacw*Y(&nwsF2UyID`n8m&$nZ<^krzppre_*0C6=+@buQ_y%c^L~IL^<_ t&+}8oM91jk1`W4%S64GGH^xE+hOnLmClB8dn+LRl!PC{xWt~$(69Df$H1z-g literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/tree_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/tree_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..e9be4f3a9965e49a4e4078f8c53f486d761a7468 GIT binary patch literal 3115 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/validatebox_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/validatebox_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe78f7cb5683f47051dfa2be9f68e41d1ee8108 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYeRIaCsV@SoVm3k4ITR#`Kp{rvwwokNNz$T`$qA=+;Z^NMF2C8s?L8IJZHNV8nYr*K|kcI;bL=Dk`cLC5Fp~xyhuY%WU8R<>STuOYwvXqOkukT Pw3xxu)z4*}Q$iB}7o0V; literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/validatebox_warning.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/gray/images/validatebox_warning.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3d4f05babf3f82b146350e96570fac02075de0 GIT binary patch literal 921 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 Y07EoBQ)jr0B>(^b07*qoM6N<$g57L=!vFvP literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/filter.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/filter.png new file mode 100644 index 0000000000000000000000000000000000000000..1fedf7ae66f9512c8991a91f606e33926210dfd1 GIT binary patch literal 305 zcmV-10nYx3P)i;JxOiC&m|MyN^@V~Zu%6~m0)Bj`zY(-tqe_OBM|76EZZDa3$M~@)# z4XCPX|L^4POMwARE&rW8d?@fjbNzpNXSe?h!y5nqPb`Zh>Gjmx00000NkvXXu0mjf D9Yd^C literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/help.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/help.png new file mode 100644 index 0000000000000000000000000000000000000000..28a0f9e5e6a24fe2cc3d842d0708e70512dbf84b GIT binary patch literal 1187 zcmXX`YfMuI6h6Hzx2+Ut1EjYq1A-3cSfq4{Is$g`oXj!QjiG^7TiBdhXGlOZxm1@9 zS*DOla3bRT0cHN_rJ;^5DgN)q2ZN z|EAt&1z&5w`m%mvX&4t+@c4Ki)zj^n9Qtq}u-Kkgm|S+sG2Fc6RK?X36?YJhP0dA}?VOU?JP&>G6klO2uGz08Gy=gKR?}h(b{K&aenodIzi% z2f@MJp01+RY|(6BJziiDpcm1+C)f4BSg6zCdpJmKRiimi){G4(q} z1^PxxRYp%IvSXi?q6Z{WU1=c||G9fvjNOV8M5eGC9+9=$-Km*DQ5AV*WII_(dnpARZKp%77uh;KZ$z~72R!)*N`!~x=0M8DAMel@xO((;7NkGYln^j z>m@53+D`)q@q?T2z|AfKr0Wq7@&V%3vEWE%IJj2*@I~|AQ1|l-SXw1vg>V7oa|8I- z0PP3HCDVWP3>La6dZtL>>2W$NTXeTeE3}I*#OEs`#HLvXE;&}!k}!JOU8}8G*^*;= zPjSv0_%M5yo+6j0Lw14m9`2dn-mf1NjIPg)Vw7)%a0o9zj^>|q#+Vv13MJSTT;}7h z4Zfq*P7G=k-K=j!InVUNj9wh!)4I~ern6^GUXtfu4!SZ`QB}@5t|WV`n%8=*ErSn) zGjYM$*~Vxc9q@=I`#Q~!`<=w&Se+$ud=Pk1O*Brwau1*M?WFKRth>8iTZJdIQgn~v zCzI($b7!BT>3&ZqyhH4&mz1-ow|8KFVjY;l(ti5lghhYge-hacl;-uimIqemZ0Qjj zBEs2%Kv-FHfq7&Jo><&)%Bjgdi{^SdvbB+` z{s9&)87BY$ literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_chart.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..527608ee94683724de57fac1ed7593714ac41be4 GIT binary patch literal 1669 zcmV;027394P)OoL=dNpfT{jDe$P=9Ivhqz^iKm@S3IrUXvM(0iptmQ@N;^Xr`2l z>4!e;MtyMJ3@@+P z*cta0P;qWNgQ5t%kIIj;1wLh)>WhuhRMihnmHnENfO~VPJZBe!rXUHBxK2!dnjp`y z(`>y!X!;Ed4J}m4t$ZUqDz_on(tKFP<=Z=Rs60EC!Cg-WdZizNtwDlZX0M^Vz;da) zRk?SP0@rg5(0I-o4d?oDoM&fiyuRg4U;@stq2@8HW2l!$}hO{43f| zkRR=*CN3~#OC`C|Iv#~EN98>g3S3CjgZzXU!JJQyrc1M^d~XB;xx@+$vxiXb(Hu;2 zFkVG15abzF9mEABn@ce}UQW15nZ?ctSFs`YA(b2XNb$S02Wm1+P?Kd!R)b`wDdkb6 zCzU6LGN^U6z@3>6xI=D6HtT0{`DdiBAW!S7q=4(sCGh;Unj`KKp_&pQYoKyNuN0h3 z>4uAkjZtyfh~o%1H-B;Tyx`6PO>T7N03V` zRm26HLyu!xbTQ#9Pcfzv)@CTEytl`8oQ&&CR-qS4QuImc^K&oUE}l;1F@X$9N9*IV zt0kqDPnO3&c?t4VOC>Ad6r2G`;c zZL$jAAUCcD$!6rIrcrt1d7v}p0A*tdPKG=NXjthX$oHBn*@BUalQ2H`5S$6` z=j!BAD(~+66VldeLAJFU$F}YQwYk%%Jlu!D>47@<&9NuWwLl;BLGFS)*|eRw!0-ie za0*Js*mo@Da%Dm>mFtdK4rzo2jz;S?v#Be|uBeu|QF-WW1}FM!qG)(`6n)FmjZ1QT zD{!hH-)-`>xWHha&2U__1EVQB;porJD|X~jx$a1R>xdQ@kmMRh^?hR)nfvf`+O z%7Z-_$ZXV*Kcq8G59xyZ!8~ME1WXp>iN;C_IDEeWBj(2tw(!JIf?{P<-f74@B!zT< zbe#^N6Q4RbKqyO}MCB`HFgRwVijxkV$WJf1UsxQp=`3I5BFGbr+K3C-O%KIT?T?T-@#dA#9Q z;sUmAt1xJ0IEN>jVHikqadaA$YuV30+)`ES3DG2Ik=5Xmr9?W3%2^JXwn3&%2M%i% zH8QK=vahos-)X311*~0{V8FCs!YV!q?!oZixSz_^ZQSt75)~w@)IcI3VHJxeJuXgl z5elRlllOu?D&(=NLi0!;Rg$Wxo;OaAr}+IKF3`u>4|bBJu$#P;roAMHWDxu!_E7ma z?={#K&<>Oq`+Z|wn+bg3ZL(&JZbVMWEEBYkyTWk)Z(So z!f8HiUHo|hg!B!M$GACb=$E$mwIkcmQAGak2~^IWlW0V?!K{sl3*KXpx^l@oc}8YI z#pD*RYzcN>l)?XzF!)U82=c!Hwib{lHNGh0 P00000NkvXXu0mjf#2YXZ literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_clipart.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_clipart.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9c44002b6f76fcddea75aad020f5f58e91d10f GIT binary patch literal 1727 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 N002ovPDHLkV1luY1RVeX literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_shapes.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_shapes.png new file mode 100644 index 0000000000000000000000000000000000000000..90a0dcacd8d8b851262102fbbd9f99e23404da11 GIT binary patch literal 1318 zcmV+>1=;$EP)9s!&kf1?`{(nr_nL4ijp z@Q59_AEy-e%+o#ZJ=sso=F5O#0npiiBF!K&3p5uYxXhffFJlfWXEo!=YI0RFHj|7W z&H(1NBtX7zVpRehUIYfo{O?&edZ&-@i=qNGe+_v<@V;`X*;FshvcF;T88V-8p>5(AZNn>gl#-9;-jVL6Zqt{a0Jynq z=d$e|UqepKAj-6p7_e+%Y4Zq2$EP^I+-^6v4_uhEA3$qbL2-*2*?;t+e{vhTc{lps zyU|0LcUUCzma!wWo44>?RMtg+^*yP4@*ZZC^RgtE6sv5dFQ1Brbbj=2NJS70%oFl<4p8eh$siTIRu^T?<{w4o zO=R3)cB1v26SpHX{{@gzDCU}*i#0~06P{d1)GpdTw`eE^IVH2hW2ryhkXf6>4UOp# zRk|J0HfjvJl%W&1!qN%;80}=O&W=zzH!cA1_^~mI4a1TO(K6ve z?<_6=*!%$084n2hL;y(UQs(uhebgHEQKjF7vU&gsFDiWikiolUNjzeqNd@?G()}L* zxB$S=w?dza%-LLHI-ttz3G;^GJw&FyhN`l|8z3UNK#ZSRo^4V{Vt@eSC-^$#iIh2& zy_QVXdIx>(Kz4Z_VxN`K88EW#bq<6luOHzqnF*auL*&S>Jxa^#HoxuSGW$xFUS7_o(5!A3KNgoUV^#B8C2JFaD4^28?_+<%y_grD6z~>!07Bw^NBr{&sH!?HH|NF8(A;BIaA(R2wgPNQaZIAy zso^etBH|Aig2zHuumB$OaE=wwGvPG=oXvS4>p?=k_etpRK8oMk&H$u2_nv~F0q)1= z`33l#F$@~uhhJ49*yRA;Q^42P2Jmx6849&?=&_ywoSa@>fm-^tE9siYou3rJ190ai zDb^faoa~#vtuJo{>G47$b(*}il2nl)ZxD%s9IQ=WSaMlM1aFb`3 z193JPDm9|h@^P24;|Gp!!_sg!T7jrk71ETISDX8*K*;AqW8dg)8OE1{Dc=+5++PL8 cmjX5Y2jT&te&o4V^Z)<=07*qoM6N<$f=jV;pa1{> literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_smartart.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/large_smartart.png new file mode 100644 index 0000000000000000000000000000000000000000..b47da08fa7ff9b56f6abb2517cb6c2177029faf8 GIT binary patch literal 1336 zcmV-81;_e{P)pBh)O^%3AYgtAK>fS=bS`B3ob2ygd+n1+_U!rp`nRtOoyGX4 z=(KTP5eZuwP_)XRw^g9SUyshotLT2$geTLtU<+8$8*JY(&u4BU|8g?AY}~;uO)!@y z>wkj2Plaovm1yv2ah0#c4PJ+vZatdah8=NjxDqu^B~rEDZ*79zU=O5Q_QT*TLmht} zwVWEYLlv+Ll%uADk^-pOgQdid1!+XCm|3L0E>AWS|%q`)HvTg}BgDAjS}svlza|@=dV0YH3{6 zlZT?;5|LSXFg_DGEyrMdDaVDrLR8!HQDr-gs^@uODs6dD`NlaRe|~z?Tn_SS-8^HO zU}CG+Gl3mS)#Gevp5;KhOEeN}tbCY(<8&VG+4;sTzoc?ne#H5wCtc4@QF? z8cVQTnB(CM;}OWMQX}i!QL5g(8gmDdE#IO1!7org&JZwKo8epZkf0|V$L4v74MG7o zJcM^+9+U|181awbSYB>Oyz{eXAknlJC0$8SK1!oriRi62Nth>L9^(s4)GaU?ieYgV zJaaBVj2Fgk@RYj=*9-@zyBDWaMz-}_mz__EdJB@w-=eVNXR1C0G$ibX+|Vviq-%pr(~4|WBhpIhalD`wM{`U#l%)eVbHj>odMUZ zi>l_pO^={|bO3{14*t0nOwO%F8_?aWhOCXmyOUAvI0e&iVHD<$R!ppni;K(T>4rEm0?aX^j%&w4$RTOCJA`P6-9ma{O zACRd&6cbHd132F>F(fcNK7^q$k-^bdR3Sz0t1tr|#vu9$-@C17zr@~VMVO#}j;dx*^?pe_mVpFjf=$HYdWRi><#o(0 zeIOGbkS;e7227I?h2al@VqH55G;KIp(Ta?c8%Qp!$FbZ?IGk-HQ)>bff`R(azXe-e z*V}s$T>gl_(nm6}PA1l+U0B1rAR!4%(oQg@NXRcSF}o`CpNa3nfIYT>`7av?@4)O1 z4P0$!E%+$5V3EWb)Qai(55f*ig$Nm$TNA~Jx2$>+enXM5GXr;DKyA4#e3((VOSWww uo;PJ%&{}NG?HKsto3b6^`p5L2x&8(W8B7jWgRVFL0000>$j+3?x7IEPn{3BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%xd!-zxLTAQhakJ^Q+73{+?&sPG@tVTk}cBH8-FbMA2gTIwZ$R1rnqZ!{LQN5dZW*_A98)a hcb&}1B^+S+>+nau>-9y|=gz9{lr;}c=wVN)Q*o7; z#1rt#{)*L{NuLvUInMbWz@F$~q+t2X*32`7HA0n}1B^+RR-Z*1Eqt_euNB=!4?3hCYmYkCBcssH5 zPdnEk2K$~yJ;tQ}=`B*K3`ckaI0gPP&VH(3X7A9z$Z+9+&@?^iN_(Jb44$rjF6*2U FngA=BGHCz+ literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/mysearch-2.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/mysearch-2.png new file mode 100644 index 0000000000000000000000000000000000000000..879e03cfb756959c12db65552867d252771ff1ce GIT binary patch literal 3416 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 KMNUMnLSTYpb#Vd! literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/no.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/no.png new file mode 100644 index 0000000000000000000000000000000000000000..37a7c7497782dadcf14a765051a62dd5616200c5 GIT binary patch literal 922 zcmV;L17-Y)P)~H)FpGiVA+maa075~P;^Ost z%FF+My>{*Y{|_Jj|9|)H|Nl2{{{Mgd`v2FHC;#tBN%>zXAW)C22Oxl$VT=}a_4z4N zrW6=>dNQ#7{ma1c;R6H1`}YhCZ{IR7ym`aG`ujJ7l8z38nu>}8%kkq1$A10V2+{`- zKwtwZB_!%oy1NTx6%`p6K7NE?kmh&qz?vCezh+=~@q&Tj`Ev$7py4W#k_H^-&M_Qi zU^oa6K+Hft^Ls=_t}xct=3w~ph2g@XLkuqj1Q@RF*ukL03^f1MD~7#5#lI~rfyxgu zaNW7Xz<&Nb!`D}@41jje0SF)#Adz5aXehvN>=*+B8yf?swKapfn;XM72M30|Sy>DW zKpQP*⪼M8hY&JO$LjiB8ETz{xN7UFbD`TFvI`^5R0b1z5^G~7O=A!85y{?ZDaUm zW(L+^Ic*v^d_e5S7cMYxwYD<+1#12S6ypJ6X$A&ofB<6R;@}Wqc=-|@XtF@Rz6ILy z4af&+glT^3?aiPM6a#4n;om^~pMgONAb^+{fF?40{tPhyif@4oL;}JJ3Jh;0B^mw# zW8x=}{|jLN13&;Vy?*uT0mILqkWdF|-uwSQgXPktaGPN+vD~wV;i$eo!w;Y)5C$0p zwDt}_05Ls!`0&8vU%%kCa{`?TcealY!&?szxFJjd0dNCeK=2WO00KL4xwZBE|LW@h z|4T~#eCJ-NHV0gBdfguHGz&s%LFGwFi05M|8lxzVE3}(QD5+KCD wpazO6V0O9-%njRjGcW*?E5jFL#Q*^Y0M({d4SP?a6aWAK07*qoM6N<$f&>VU5C8xG literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/ok.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/ok.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0f6a6174f67879d89b8c970d88734cd6f9f844 GIT binary patch literal 883 zcmV-(1C0EMP)wF51aIxG|t0o~WeTux?(*f!J?S`!vJrWM3^ z)v?u>(g^>@;xO#mkNlu=e*%b!BkO=S9U%&s|{QUTj4;ur+Qxv`b{1=&{q{_{@=tdkKKPJjPv{N-R+ z=H{q0b!wOgrI|?`QkZ(!{_7i9LV-VtRJx`%DQ2F^23wD{DqBhIRk` zF);r5{m+$GoMl&Put7+Jt2=`@4-Z4{!AlI=w!d7({+qd+0V(7F0suh(zW)OTFd63V z^!sFSNlF9<4gMd;*WzU&Dh*+FS2`3*A~OK^{__Bz$W0R(*Uum z?9l=80a*nF0_+3*1ONs71^@>82>=H93IGBCK>)u00}wAF|NZm@`|<(rTQ4UU0WcOM z00aL60Pp?k0KeVV0IsF+;Q#FbO$G-6;062!00#UB00{XE00{OE015OE00M|vNJE=} z^$*A6FQ5Ne@vDAS;$dfD`1Jo3!|5mY7`86`{^s{nmH;M>-&g)K|ATm%5g73x%=8b8 z0Ro7L;}<&v=RdZejL-PCo<9Aa;W^_ShKsN6GwfXY>&vg(Trted45#rWFn|DJV*bm{ z0Ky#q*cZJ%!~O8Y?dJ?fS26$kepw(JsCg%$6bcYP%o1uwz$j&AU}9wa&h(8#?9FW+ ziyzl{>lm2-O#9FFhv6UdZ-)OYzzhWT0wab200G2EX?6w(FaS`kAv2YZ@FM^K002ov JPDHLkV1n^7jC=q9 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/pencil.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/pencil.png new file mode 100644 index 0000000000000000000000000000000000000000..5b8cc893d0e50c0e15cf10fbbb08706f81ec224a GIT binary patch literal 713 zcmV;)0yh1LP)R)!_m*FeI9eJ0Gxq#H zf0_XxfS9lv%LmkKB8}kx16siJFV!*nd7pOS69ERhSDg(18DcA(#PsQ(DfoWDDC{a=@>nto>xWzb;o zP$*;Aa%nq5TlT(fKhM4o2P*mk(g_ei5CcqsHvff2=RY9k`aMC~Kn&o76a{330bLQrJ&U26`M=Sy3)uqGxWf%F0d5QMO1 v>|l^)2n34pz-1YUGXNlf7%9!p009O71V-RMzjpE=00000NkvXXu0mjfxvf2L literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/print.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/print.png new file mode 100644 index 0000000000000000000000000000000000000000..fdf67a1e2771c1481d4fdf3c3bb219904cdde434 GIT binary patch literal 1057 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/undo.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/icons/undo.png new file mode 100644 index 0000000000000000000000000000000000000000..6129fa0c77eb1d2100ed1c99b5643ab8990a9566 GIT binary patch literal 707 zcmV;!0zCbRP)gx00G1Zv_aomR`x(qRh0l2FE0bbpFa!?fB$08 zkFQ)|s9L!2z&&2xfMaLReuNnS5I{^UzkfRf$Hoe9fp{-pGBCV;4WVDWU|@Lm41ym& zW{~CPX6X0xb5MHuav8D<00M~l)~8P=@1HyOnT?gzU0Y6$f#K#&28Oq985rKZgBbSe z6~w?NPZ+p>wDzArsy8?}Ki_-*{y4}0fB<3!5w|~mI{y0k^X(5GJqk7R^5S3xY54Gg z;V@9{y|_37pRO(g>+jzT438c$h_JFUeEIar>Y2FstQW6ee+LL4W|&hReEj(I13UYi znbkhd^K)@A%v-naX4mP{i91)X{{CA+!pI;bgn{AeRR)QlKiRi``0yC0=M+Ey zVT~0JdHJSom6iV+{r%6t#LV>djcY9}FMXXe=l_3O+y7ZoQhPw+00D#(*(oWx*+@tv zp{LLZetz%&x3v79qNw;ED8va6Kn$b;P{O)4dGi0A+S>nhH8gAh0*IMZ1Ma+ke^KiH z{{%~Qb%Axyo~;K6ASMPf!11eBC%hFCV_^OEO$;D_$THxanAm~S7cMXefB&up5J1f2 p81VS{^OpjgoMw-I|K0`=U;x^&`B18C?@a&z002ovPDHLkV1f|(PF(;1 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/accordion.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/accordion.css new file mode 100644 index 0000000..31d6079 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/accordion.css @@ -0,0 +1,41 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #fff; + border-color: #ddd; +} +.accordion .accordion-header { + background: #ffffff; + filter: none; +} +.accordion .accordion-header-selected { + background: #CCE6FF; +} +.accordion .accordion-header-selected .panel-title { + color: #000; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/calendar.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/calendar.css new file mode 100644 index 0000000..6af24ac --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/calendar.css @@ -0,0 +1,197 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-body th, +.calendar-menu-month { + color: #919191; +} +.calendar-day { + color: #444; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #ddd; +} +.calendar { + border-color: #ddd; +} +.calendar-header { + background: #ffffff; +} +.calendar-body, +.calendar-menu { + background: #fff; +} +.calendar-body th { + background: #fff; + padding: 2px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #E6E6E6; + color: #444; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #CCE6FF; + color: #000; + border: 1px solid #99cdff; + padding: 0; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/combo.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/combo.css new file mode 100644 index 0000000..8922f8e --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/combo.css @@ -0,0 +1,58 @@ +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #fff; +} +.combo { + border-color: #ddd; + background-color: #fff; +} +.combo-arrow { + background-color: #ffffff; +} +.combo-arrow-hover { + background-color: #E6E6E6; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/combobox.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/combobox.css new file mode 100644 index 0000000..0e058b1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/combobox.css @@ -0,0 +1,24 @@ +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #E6E6E6; + color: #444; +} +.combobox-item-selected { + background-color: #CCE6FF; + color: #000; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/datagrid.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/datagrid.css new file mode 100644 index 0000000..dbd65ae --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/datagrid.css @@ -0,0 +1,254 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #fff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #ffffff; +} +.datagrid-cell-rownumber { + color: #444; +} +.datagrid-resize-proxy { + background: #b3b3b3; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #ddd; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fff; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ddd; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #444; + border-collapse: separate; +} +.datagrid-row-alt { + background: #f5f5f5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #E6E6E6; + color: #444; + cursor: default; +} +.datagrid-row-selected { + background: #CCE6FF; + color: #000; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #ddd; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/datebox.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/datebox.css new file mode 100644 index 0000000..b0f71e2 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fff; +} +.datebox-button a { + color: #777; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/dialog.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/dialog.css new file mode 100644 index 0000000..316cdc4 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/dialog.css @@ -0,0 +1,30 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fff; +} +.dialog-toolbar { + border-bottom: 1px solid #ddd; +} +.dialog-button { + border-top: 1px solid #ddd; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/easyui.css b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/easyui.css new file mode 100644 index 0000000..f7e82f1 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/easyui.css @@ -0,0 +1,2349 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #E6E6E6; + -moz-border-radius: -2px -2px -2px -2px; + -webkit-border-radius: -2px -2px -2px -2px; + border-radius: -2px -2px -2px -2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #ddd; +} +.panel-header { + background-color: #ffffff; +} +.panel-body { + background-color: #fff; + color: #444; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #777; + height: 16px; + line-height: 16px; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #fff; + border-color: #ddd; +} +.accordion .accordion-header { + background: #ffffff; + filter: none; +} +.accordion .accordion-header-selected { + background: #CCE6FF; +} +.accordion .accordion-header-selected .panel-title { + color: #000; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.window-shadow { + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #ddd; +} +.window { + background-color: #ffffff; +} +.window-proxy { + border: 1px dashed #ddd; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fff; +} +.dialog-toolbar { + border-bottom: 1px solid #ddd; +} +.dialog-button { + border-top: 1px solid #ddd; +} +.textbox { + border: 1px solid #ddd; + vertical-align: middle; +} +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #fff; +} +.combo { + border-color: #ddd; + background-color: #fff; +} +.combo-arrow { + background-color: #ffffff; +} +.combo-arrow-hover { + background-color: #E6E6E6; +} +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #E6E6E6; + color: #444; +} +.combobox-item-selected { + background-color: #CCE6FF; + color: #000; +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #b3b3b3; +} +.layout-split-north { + border-bottom: 5px solid #fff; +} +.layout-split-south { + border-top: 5px solid #fff; +} +.layout-split-east { + border-left: 5px solid #fff; +} +.layout-split-west { + border-right: 5px solid #fff; +} +.layout-expand { + background-color: #ffffff; +} +.layout-expand-over { + background-color: #ffffff; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0 0; + -webkit-border-radius: 0px 0px 0 0; + border-radius: 0px 0px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 0px 0px; + -webkit-border-radius: 0 0 0px 0px; + border-radius: 0 0 0px 0px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 0px 0px 0; + -webkit-border-radius: 0 0px 0px 0; + border-radius: 0 0px 0px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #ffffff url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #ffffff url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #E6E6E6; + color: #444; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #fff; + color: #777; +} +.tabs li a.tabs-inner { + color: #777; + background-color: #ffffff; +} +.tabs-header, +.tabs-tool { + background-color: #ffffff; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #ddd; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #E6E6E6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #fff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #fff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #fff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #fff; +} +.l-btn { + text-decoration: none; + display: inline-block; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; +} +.l-btn-plain { + border: 0; + padding: 1px; +} +.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 24px; + font-size: 12px; + padding: 0; + margin: 0 4px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 4px 0 24px; +} +.l-btn-icon-left .l-btn-icon { + left: 4px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 24px 0 4px; +} +.l-btn-icon-right .l-btn-icon { + right: 4px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 4px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 40px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 4px; + width: 32px; +} +.l-btn { + color: #777; + background: #ffffff; + background-repeat: repeat-x; + border: 1px solid #dddddd; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.l-btn:hover { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + filter: none; +} +.l-btn-plain { + background: transparent; + border: 0; + filter: none; +} +.l-btn-plain:hover { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + background: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); + filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #fff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #ffffff; +} +.datagrid-cell-rownumber { + color: #444; +} +.datagrid-resize-proxy { + background: #b3b3b3; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #ddd; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fff; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ddd; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #444; + border-collapse: separate; +} +.datagrid-row-alt { + background: #f5f5f5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #E6E6E6; + color: #444; + cursor: default; +} +.datagrid-row-selected { + background: #CCE6FF; + color: #000; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #ffffff; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #ffffff; +} +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +.pagination-link .l-btn-text { + width: 24px; + text-align: center; + margin: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #ddd; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-body th, +.calendar-menu-month { + color: #919191; +} +.calendar-day { + color: #444; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #ddd; +} +.calendar { + border-color: #ddd; +} +.calendar-header { + background: #ffffff; +} +.calendar-body, +.calendar-menu { + background: #fff; +} +.calendar-body th { + background: #fff; + padding: 2px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #E6E6E6; + color: #444; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #CCE6FF; + color: #000; + border: 1px solid #99cdff; + padding: 0; +} +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fff; +} +.datebox-button a { + color: #777; +} +.numberbox { + border: 1px solid #ddd; + margin: 0; + padding: 0 2px; + vertical-align: middle; +} +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #ddd; +} +.spinner-arrow { + background-color: #ffffff; +} +.spinner-arrow-hover { + background-color: #E6E6E6; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.progressbar { + border-color: #ddd; +} +.progressbar-text { + color: #444; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #CCE6FF; + color: #000; +} +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + vertical-align: top; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #ddd; + background-color: #fff; +} +.searchbox .l-btn-plain { + background: #ffffff; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 0px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #ddd; + background: #ffffff; +} +.slider-rule span { + border-color: #ddd; +} +.slider-rulelabel span { + color: #444; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ddd; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ddd; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #ffffff; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #fff; +} +.menu-item { + border-color: transparent; + _border-color: #ffffff; +} +.menu-active { + border-color: #ddd; + color: #444; + background: #E6E6E6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #b3b3b3; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ddd; + background-color: #E6E6E6; + color: #444; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #b3b3b3; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #ddd; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #fff; + color: #444; + border-color: #ddd; +} +.tree-node-hover { + background: #E6E6E6; + color: #444; +} +.tree-node-selected { + background: #CCE6FF; + color: #000; +} +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #fff; + border-color: #ddd; + color: #444; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #ddd; +} +.tooltip-right .tooltip-arrow { + border-right-color: #fff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #ddd; +} +.tooltip-left .tooltip-arrow { + border-left-color: #fff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #ddd; +} +.tooltip-top .tooltip-arrow { + border-top-color: #fff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #ddd; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #fff; +} diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/accordion_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/accordion_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..ddfa8ec50bba0671d4780b023cef858f128df018 GIT binary patch literal 2855 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 FV1ggwWZwV) literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/blank.gif b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d11fa9ada9e93505b3d736acb204083f45d5fbf GIT binary patch literal 43 scmZ?wbhEHbWMp7uX!y@?;J^U}1_s5SEQ~;kK?g*DWEhy3To@Uw0n;G|I{*Lx literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/calendar_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/calendar_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..430c4ad685b8c0068ecb7e3cbef74f493a84ad0d GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3HFkJ+IURQYD@)jv*Dd-cCEn)nLHm{QbZE z+q@uWwandfr?Jb4eDYYmB3UAt=OO2Vt+MMT&+KD%&6hZDt!FBpej;sEpMN69^tKl% zp6y<4_lG^P z=;=eQ4Vs74-2)Ua&f1tcVdk$#{GPKe@&?ZMHmT&SMw?IV&w7)}ixLbB3d$Zg{&KGb P8OPx1>gTe~DWM4f WNYm=W^A8UI00005OC%H;f`~O(q$Q#t2<^v$A>fbmv%e#dKTwK=Ku{5lS|}<-`a#7b zzTCOnnT>at)D}AMFuOZ5&%EqFN(lyumd$2ASF6=;nM~%2?gqc@U=#|4PqkX@EBo-9 z7pD#bO_RUa>*faM`8;MYfVi$JnB-zcBFc6gjl$d!bF98Q!!!(Z1_R~P?e!pt#6CHJ9S&n_n&@=9 z%GP;!@Co4c*at+6vNz7o(6en^Q1%qHrc;1)9IRaz-$@S$Z-qdC^ds3X0NvQH;KS)D z-dh&rW&@X;1cS(45z)J&BVt+tv&GMVJ%!EiW) zLBGZW)#Z+gl-Lih&?>X3SS-S#ujQ;9JRXmIB7X)8`d6ETj)D#Q2+$s|<_b7-B9Xvq zwNfqlEp%y3$uY`h{Y$(Gn5@}sqEsq95lpAkFO5dyBmP6^H-51G4J|rN2Ujt<`2YX_ M07*qoM6N<$fRl}UZ@-Co%Cq`k{wEj}Dr>ShP9AQ|IKKA30{ejJboVoF`C-z@6mZMY&%Wiz%6S}#zb4u?o?9Mi=ECopVxzz+sNviAA!DK)mm8xe zgY9ZT9jlddc^&y2^u9XqDeU4{8s^AS#8C7TXsxEJW@uLu(3Whc35-X6v}jEgEb{G` z!{)$uKzw<~%0A6PhNHYfSuTvOzD8LpPF>PVr=&QqGC936QlPgc6j2;SWMDuL>F^vlqEUI{oOgO!xNf*11TukM z6kTZ3V2qd3<~<$H&Lrt?SpXUxF5Zb^}(={r!EHE+$QMdH|XZ zSYbMyc0tQc3qbP$tG{U_Jyg>I(0srOscEGU?-T)4AzuS$_2J>6`+BJ50YDY<^>2vV z+uI880P2ui(hyHiPrK$)CkbHg=kD&V3^8pD z0v3QOB&8eT@87?rgaGPrb#+ySxU;jP=nkL`nZ_{0e*BD+1Tc5b&d$oLo}8R$90gF1 z^ij>~#>R%HIRNUB_kgpQ+Lg!80Gbb2saY8>1EBeUm7A3TegK*dSciv)Wqp0!h-3im z1+1f^qq4iZ+ZEMUS63~e0I+zh`2rwd0l@!F(!7sM%_`|&0+*B!z{1(u+A9BIU&~T- z2he=L>dmc7TLXZFkeTeCHMcE|qX51{z>0ZC=xGjss*FaXGOMX+dHf8Z8hL6ntGQ_z zF9V<&dwY9jh`D7czyqj4g3S=~)zFA!0980RI4DC*Ez1%L09D8%=OHF&S@Q*;3bRfe zeL2-ZzyeT(Av4`$>R3`j096>WH7BOELD3yR70%Dk%Mk4)1W=73OH{L_UgIc$YFu7k zmRaq`&NxK?Rk*skDzlhL4IV!OsLJ*Ab@{BRT^TO}pgQC6xO~R6G8o_oU?C)>`xlc2 zriH~zU-;g$PyPA_&X!OBSU6SIeB~eKNAhF&(fs&F|1n9<+Yj^2T+4Dj%UFjr zZ%rnX^7Qmn0ANwP308gILtaQfK0Z1j0Br`Wq<=~Ka+?BxW&>7kRtZ+q>C~wJXg6S` zW|cJ1%?d#C0V@Ue)T{uY>425ig?tTsczEc(0+M8_c7^t|!sm-1Nw(}#nnLr?FgGlc zY}ut0+w(d)Uk6FDWtY;*aCdjteIX>tmhA#o+8PqHNU~+SlrTfyKRaNHBx~Ch-FJ3& z%B(Y&NwStp{rH$6Yj{YqhR=Gk~Mtw_&K$#yeTBf z7JV~bCN(VwL$c|B^>Topn-X{+7;S!yV~2^ zBgv-iMkME}U;-COwrsbABDvwg!2wA&ZMWttf5^jTl5E*7V41=|@=Hu>NJ^O8(7b4p z&ChgC(LF5>Md#{+4LgS{%KA|H(Xv`l4P^KdiBKB*_;1&m|Q7!{|O$ k%vVK{T!hwqk^D0L0mO==@4IV9lK=n!07*qoM6N<$f|Ge;n*aa+ literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/loading.gif b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f01d04813c1f622810864a3aaa04b4a17ac8f9 GIT binary patch literal 1737 zcmaKsX;2e)7>CzDa{xjjy99|1A!tC(kfocDi)<1$AxHpOQ4k^l!Vx1W6x7<&|FYXU zqO4jEiU-!VR1p+Xj1?4-iuI_J;!&?!+ghg|JJad3U)pMGzcKxNeCM6tJnuX+uPvX@ zZY|=AHdxt2Xr2y*)5|c6#FSEuyJ+Y3Z&l z2hJWo`9;lJ$6wzSoW60tqkB|d$oiO*d-^85^ojn{*NR{MP*%{@H*#gihZ8BKyB68E z-MIbjgNNV0y5khpJ^Jv`51aR%={<4jhaVq5e*9D5+*hL)XCHn4{^d%hPu@?KpKbc=eN!D=XUjDmH#n{YHNS zHCX6BV)yn2CuTNujhN~V+`RKpyXO6^ht92eqhIIlQLfz6eeCnH_C7`NPNrw9ks366 z4xX9(`s~z=+1uX^ocZ$2_fBs=JihPfWYufOIuD&AU-@`>>qn~cy$1)T7CU!5z2(U8 z)9Kt9)l`f6?NU41j6XbXfR{OHwm|T4}&24tIf+!C-g~6cQfY2^n$?AT&ZW zgqm`}3-jS2NS6n=k;sr5Hv(Q%%n)qW0X|neWVBd;Ko}d(=u%?{O0-a>kSI}shOd9n z5top}%gUCf=>?tg;*;#7!^HOL3k$fMxd=O-6Y4@%u8LS)C1D_a?27R6^vcC+6tttL z)GmTahbyJB!xmcHL#ya8ZXyfRl)a!N0BJE0y3BBfAV5;#=K&Z2VkaKZ)?9`1h5P_% znt*b}%j1|#j`b|aQDx@~wA#$PYRN2xE6UO;;vE(@$&xww-s8fZ5HmJ(eJ*rQrDbaawDbrfe_8F(wq{ge?)qQG`aXV;r(*6EM|ESje;52aFmrX!f=Pw^2oGQX$1|o4yts|b_5@w_kNwtl{wDP#JGMvIp#!SYX?Wq9S&`&_ZwkgGH5CLB7DEGJ6=R4J~p3Z4i^A}hs=-uZeD zs92l6u@**R$~L()G{5N8*7cE5-q$SCo`q4|NSVF*+A7&xZnypm$EdXgf)E%(VJHFD zSgi(H!D!(;9Zcc#GrCCJh=RlvXBQ-hv4Vodse`a32ZUFWgP5ZhM5LeV(#D^H8p@Lg ztra5R32z@1rQv{6u&RZL5%Z@Ye{q|t#6aM_1hIrpl@)oH6}os*cbAQywa{5<`ekzW O1il%9bk82&KlvLjD^%40 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/menu_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/menu_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..b986842e7e4044caed18edbcb4b376a4bb915623 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3HFkJ+IURQt6&9jv*Dd-cB{-J7B=U{PTZ! zWrKV9%Z3|Wt5t$(gq+#d+-OocB$0fsr9DfRx52vPhSu$$+yXuy+69hDZ54DDTxx#r zL7>-12UT01v)>tZ+;HI4pDNf?@KK~EC$@35ykmXyu^HJF3})N>8P9Uwo&~g$!PC{x JWt~$(697!FIeGv9 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/messager_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/messager_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..62c18c135860351063ebaabe8c0f4df7664b8f65 GIT binary patch literal 6116 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/spinner_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/spinner_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..b68592de3200fbe1f7defe98a2b59b0398b1b737 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYel$EE8V@SoV_tDnm{r-UW|t3f!- literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/tree_icons.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/tree_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..e9be4f3a9965e49a4e4078f8c53f486d761a7468 GIT binary patch literal 3115 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 literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/validatebox_arrows.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/validatebox_arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe78f7cb5683f47051dfa2be9f68e41d1ee8108 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYeRIaCsV@SoVm3k4ITR#`Kp{rvwwokNNz$T`$qA=+;Z^NMF2C8s?L8IJZHNV8nYr*K|kcI;bL=Dk`cLC5Fp~xyhuY%WU8R<>STuOYwvXqOkukT Pw3xxu)z4*}Q$iB}7o0V; literal 0 HcmV?d00001 diff --git a/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/validatebox_warning.png b/BBMPTMes/MESWebSite/Scripts/EasyUI/themes/metro/images/validatebox_warning.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3d4f05babf3f82b146350e96570fac02075de0 GIT binary patch literal 921 zcmV;K17`e*P)nRv1_mBsMY*-M^XCf)eflW5 z|MC^)Hw+AW{sHCCF+cz@{fF8J!+#-kxoSv=7^|!zgOQUngSQ}mDo|J)n+pH}hzZ#= zr~y18$_m-?9v%$;?mu8);}>9vFgFvDXJDwrW&l6{p}625M66yTFhGz^K$w9^O$BHi zFN2Ym7DIple*#cW4BY^L0Al(Jbv6k9U|^6IQBp{hx3XdQ&CJ4Z_|YSVr@XujY(PVT zlok1<85nBO4FCurumK>O|A07*jFlSRUcxLAQVcIR*co#3@)&jj4Pj7KXRri%#h;fa z4ya5O*#Lk5Vq!q}T~=CGH(uV-hJk^fkAYoGjN#AMuMF($>N=giWG}IXse|=+c=i>7HEg>%*E%fLD!-uy|85n^6W?^Dt(9zXp5EB&z+w>_knBmdiKMbzi z?A!`WOl>e100a=&05*1xZdFls?*HtZ48H?o7=HW%ivIu45E2~BASWx!@DIpmv9e}h zaPwji|L}pqor@y`=yxrU0RRES^qYY}O;TRcU+DKIhL4`%3_nyf8U6tS<<-ZJ40D$( zWjJ%`G6NIPHNP2{7am*Fp% z{>ShK#0G`~kjd~57_BU(.*?$)/);e&&e[1]&&(e='\x3cforeignObject x\x3d"0" y\x3d"0" width\x3d"'+b.chart.width+'" height\x3d"'+b.chart.height+'"\x3e\x3cbody xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e'+e[1]+"\x3c/body\x3e\x3c/foreignObject\x3e",a=a.replace("\x3c/svg\x3e",e+"\x3c/svg\x3e"))}a=a.replace(/zIndex="[^"]+"/g, +"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(\S+)("|")\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/.*?$/,"\x3c/svg\x3e").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1\x3d"rgb($2)" $1-opacity\x3d"$3"').replace(/ /g, +"\u00a0").replace(/­/g,"\u00ad");return a=a.replace(//g,"\x3c$1title\x3e").replace(/height=([^" ]+)/g,'height\x3d"$1"').replace(/width=([^" ]+)/g,'width\x3d"$1"').replace(/hc-svg-href="([^"]+)">/g,'xlink:href\x3d"$1"/\x3e').replace(/ id=([^" >]+)/g,' id\x3d"$1"').replace(/class=([^" >]+)/g,'class\x3d"$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(a){return a.toLowerCase()})},getChartHTML:function(){return this.container.innerHTML}, +getSVG:function(a){var b,e,c,w,m,g=n(this.options,a);p.createElementNS||(p.createElementNS=function(a,b){return p.createElement(b)});e=r("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},p.body);c=this.renderTo.style.width;m=this.renderTo.style.height;c=g.exporting.sourceWidth||g.chart.width||/px$/.test(c)&&parseInt(c,10)||600;m=g.exporting.sourceHeight||g.chart.height||/px$/.test(m)&&parseInt(m,10)||400;t(g.chart,{animation:!1,renderTo:e,forExport:!0, +renderer:"SVGRenderer",width:c,height:m});g.exporting.enabled=!1;delete g.data;g.series=[];h(this.series,function(a){w=n(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});w.isInternal||g.series.push(w)});h(this.axes,function(a){a.userOptions.internalKey||(a.userOptions.internalKey=f.uniqueKey())});b=new f.Chart(g,this.callback);a&&h(["xAxis","yAxis","series"],function(c){var d={};a[c]&&(d[c]=a[c],b.update(d))});h(this.axes,function(a){var c=f.find(b.axes,function(b){return b.options.internalKey=== +a.userOptions.internalKey}),d=a.getExtremes(),e=d.userMin,d=d.userMax;!c||void 0===e&&void 0===d||c.setExtremes(e,d,!0,!1)});c=b.getChartHTML();c=this.sanitizeSVG(c,g);g=null;b.destroy();C(e);return c},getSVGForExport:function(a,b){var e=this.options.exporting;return this.getSVG(n({chart:{borderRadius:0}},e.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||e.sourceWidth,sourceHeight:a&&a.sourceHeight||e.sourceHeight}}))},exportChart:function(a,b){b=this.getSVGForExport(a,b);a=n(this.options.exporting, +a);f.post(a.url,{filename:a.filename||"chart",type:a.type,width:a.width||0,scale:a.scale,svg:b},a.formAttributes)},print:function(){var a=this,b=a.container,e=[],c=b.parentNode,f=p.body,m=f.childNodes,g=a.options.exporting.printMaxWidth,d,u;if(!a.isPrinting){a.isPrinting=!0;a.pointer.reset(null,0);F(a,"beforePrint");if(u=g&&a.chartWidth>g)d=[a.options.chart.width,void 0,!1],a.setSize(g,void 0,!1);h(m,function(a,b){1===a.nodeType&&(e[b]=a.style.display,a.style.display="none")});f.appendChild(b);E.focus(); +E.print();setTimeout(function(){c.appendChild(b);h(m,function(a,b){1===a.nodeType&&(a.style.display=e[b])});a.isPrinting=!1;u&&a.setSize.apply(a,d);F(a,"afterPrint")},1E3)}},contextMenu:function(a,b,e,c,w,m,g){var d=this,u=d.options.navigation,k=d.chartWidth,q=d.chartHeight,n="cache-"+a,l=d[n],y=Math.max(w,m),z,A;l||(d[n]=l=r("div",{className:a},{position:"absolute",zIndex:1E3,padding:y+"px"},d.container),z=r("div",{className:"highcharts-menu"},null,l),v(z,t({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888", +boxShadow:"3px 3px 10px #888"},u.menuStyle)),A=function(){v(l,{display:"none"});g&&g.setState(0);d.openMenu=!1},d.exportEvents.push(x(l,"mouseleave",function(){l.hideTimer=setTimeout(A,500)}),x(l,"mouseenter",function(){clearTimeout(l.hideTimer)}),x(p,"mouseup",function(b){d.pointer.inClass(b.target,a)||A()})),h(b,function(a){"string"===typeof a&&(a=d.options.exporting.menuItemDefinitions[a]);if(f.isObject(a,!0)){var b;a.separator?b=r("hr",null,null,z):(b=r("div",{className:"highcharts-menu-item", +onclick:function(b){b&&b.stopPropagation();A();a.onclick&&a.onclick.apply(d,arguments)},innerHTML:a.text||d.options.lang[a.textKey]},null,z),b.onmouseover=function(){v(this,u.menuItemHoverStyle)},b.onmouseout=function(){v(this,u.menuItemStyle)},v(b,t({cursor:"pointer"},u.menuItemStyle)));d.exportDivElements.push(b)}}),d.exportDivElements.push(z,l),d.exportMenuWidth=l.offsetWidth,d.exportMenuHeight=l.offsetHeight);b={display:"block"};e+d.exportMenuWidth>k?b.right=k-e-w-y+"px":b.left=e-y+"px";c+m+d.exportMenuHeight> +q&&"top"!==g.alignOptions.verticalAlign?b.bottom=q-c-y+"px":b.top=c+m-y+"px";v(l,b);d.openMenu=!0},addButton:function(a){var b=this,e=b.renderer,c=n(b.options.navigation.buttonOptions,a),f=c.onclick,m=c.menuItems,g,d,k=c.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);if(!1!==c.enabled){var h=c.theme,q=h.states,p=q&&q.hover,q=q&&q.select,l;delete h.states;f?l=function(a){a.stopPropagation();f.call(b,a)}:m&&(l=function(){b.contextMenu(d.menuClassName, +m,d.translateX,d.translateY,d.width,d.height,d);d.setState(2)});c.text&&c.symbol?h.paddingLeft=D(h.paddingLeft,25):c.text||t(h,{width:c.width,height:c.height,padding:0});d=e.button(c.text,0,0,l,h,p,q).addClass(a.className).attr({"stroke-linecap":"round",title:b.options.lang[c._titleKey],zIndex:3});d.menuClassName=a.menuClassName||"highcharts-menu-"+b.btnCount++;c.symbol&&(g=e.symbol(c.symbol,c.symbolX-k/2,c.symbolY-k/2,k,k).addClass("highcharts-button-symbol").attr({zIndex:1}).add(d),g.attr({stroke:c.symbolStroke, +fill:c.symbolFill,"stroke-width":c.symbolStrokeWidth||1}));d.add().align(t(c,{width:d.width,x:D(c.x,b.buttonOffset)}),!0,"spacingBox");b.buttonOffset+=(d.width+c.buttonSpacing)*("right"===c.align?-1:1);b.exportSVGElements.push(d,g)}},destroyExport:function(a){var b=a?a.target:this;a=b.exportSVGElements;var e=b.exportDivElements,c=b.exportEvents,f;a&&(h(a,function(a,c){a&&(a.onclick=a.ontouchstart=null,f="cache-"+a.menuClassName,b[f]&&delete b[f],b.exportSVGElements[c]=a.destroy())}),a.length=0);e&& +(h(e,function(a,c){clearTimeout(a.hideTimer);I(a,"mouseleave");b.exportDivElements[c]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=null;C(a)}),e.length=0);c&&(h(c,function(a){a()}),c.length=0)}});K.menu=function(a,b,e,c){return["M",a,b+2.5,"L",a+e,b+2.5,"M",a,b+c/2+.5,"L",a+e,b+c/2+.5,"M",a,b+c-1.5,"L",a+e,b+c-1.5]};B.prototype.renderExporting=function(){var a=this,b=a.options.exporting,e=b.buttons,c=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport(); +c&&!1!==b.enabled&&(a.exportEvents=[],G(e,function(b){a.addButton(b)}),a.isDirtyExporting=!1);x(a,"destroy",a.destroyExport)};B.prototype.callbacks.push(function(a){a.renderExporting();x(a,"redraw",a.renderExporting);h(["exporting","navigation"],function(b){a[b]={update:function(e,c){a.isDirtyExporting=!0;n(!0,a.options[b],e);D(c,!0)&&a.redraw()}}})})})(k)}); diff --git a/BBMPTMes/MESWebSite/Scripts/highcharts.js b/BBMPTMes/MESWebSite/Scripts/highcharts.js new file mode 100644 index 0000000..bc6d743 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/highcharts.js @@ -0,0 +1,402 @@ +/* + Highcharts JS v5.0.14 (2017-07-28) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(M,S){"object"===typeof module&&module.exports?module.exports=M.document?S(M):S:M.Highcharts=S(M)})("undefined"!==typeof window?window:this,function(M){M=function(){var a=window,C=a.document,A=a.navigator&&a.navigator.userAgent||"",F=C&&C.createElementNS&&!!C.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,E=/(edge|msie|trident)/i.test(A)&&!window.opera,m=!F,f=/Firefox/.test(A),l=f&&4>parseInt(A.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highcharts", +version:"5.0.14",deg2rad:2*Math.PI/360,doc:C,hasBidiBug:l,hasTouch:C&&void 0!==C.documentElement.ontouchstart,isMS:E,isWebKit:/AppleWebKit/.test(A),isFirefox:f,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(A),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:F,vml:m,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){var C=[],A=a.charts,F=a.doc,E=a.win;a.error=function(m,f){m=a.isNumber(m)?"Highcharts error #"+ +m+": www.highcharts.com/errors/"+m:m;if(f)throw Error(m);E.console&&console.log(m)};a.Fx=function(a,f,l){this.options=f;this.elem=a;this.prop=l};a.Fx.prototype={dSetter:function(){var a=this.paths[0],f=this.paths[1],l=[],r=this.now,u=a.length,t;if(1===r)l=this.toD;else if(u===f.length&&1>r)for(;u--;)t=parseFloat(a[u]),l[u]=isNaN(t)?a[u]:r*parseFloat(f[u]-t)+t;else l=f;this.elem.attr("d",l,null,!0)},update:function(){var a=this.elem,f=this.prop,l=this.now,r=this.options.step;if(this[f+"Setter"])this[f+ +"Setter"]();else a.attr?a.element&&a.attr(f,l,null,!0):a.style[f]=l+this.unit;r&&r.call(a,l,this)},run:function(a,f,l){var r=this,m=function(a){return m.stopped?!1:r.step(a)},t;this.startTime=+new Date;this.start=a;this.end=f;this.unit=l;this.now=this.start;this.pos=0;m.elem=this.elem;m.prop=this.prop;m()&&1===C.push(m)&&(m.timerId=setInterval(function(){for(t=0;t=g+this.startTime?(this.now=this.end,this.pos=1,this.update(),l=d[this.prop]=!0,a.objectEach(d,function(a){!0!==a&&(l=!1)}),l&&t&&t.call(u),m=!1):(this.pos=r.easing((f-this.startTime)/g),this.now=this.start+(this.end-this.start)*this.pos,this.update(),m=!0);return m},initPath:function(m,f,l){function r(a){var c,e;for(n=a.length;n--;)c="M"===a[n]||"L"===a[n],e=/[a-zA-Z]/.test(a[n+3]),c&&e&&a.splice(n+1,0,a[n+1],a[n+2],a[n+1],a[n+2])} +function u(a,c){for(;a.lengtht?"AM":"PM",P:12>t?"am":"pm",S:n(u.getSeconds()),L:n(Math.round(f%1E3),3)},a.dateFormats);a.objectEach(r,function(a,e){for(;-1!==m.indexOf("%"+e);)m=m.replace("%"+e,"function"===typeof a?a(f):a)});return l?m.substr(0, +1).toUpperCase()+m.substr(1):m};a.formatSingle=function(m,f){var l=/\.([0-9])/,r=a.defaultOptions.lang;/f$/.test(m)?(l=(l=m.match(l))?l[1]:-1,null!==f&&(f=a.numberFormat(f,l,r.decimalPoint,-1=l&&(f=[1/l])));for(r=0;r=m||!u&&t<=(f[r]+(f[r+1]||f[r]))/2);r++);return g=a.correctFloat(g*l,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort= +function(a,f){var l=a.length,r,m;for(m=0;ml&&(l=a[f]);return l};a.destroyObjectProperties=function(m,f){a.objectEach(m,function(a,r){a&&a!==f&&a.destroy&&a.destroy();delete m[r]})};a.discardElement=function(m){var f=a.garbageBin;f||(f=a.createElement("div")); +m&&f.appendChild(m);f.innerHTML=""};a.correctFloat=function(a,f){return parseFloat(a.toPrecision(f||14))};a.setAnimation=function(m,f){f.renderer.globalAnimation=a.pick(m,f.options.chart.animation,!0)};a.animObject=function(m){return a.isObject(m)?a.merge(m):{duration:m?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(m,f,l,r){m=+m||0;f=+f;var u=a.defaultOptions.lang,t=(m.toString().split(".")[1]||"").split("e")[0].length, +g,d,k=m.toString().split("e");-1===f?f=Math.min(t,20):a.isNumber(f)||(f=2);d=(Math.abs(k[1]?k[0]:m)+Math.pow(10,-Math.max(f,t)-1)).toFixed(f);t=String(a.pInt(d));g=3m?"-":"")+(g?t.substr(0,g)+r:"");m+=t.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+r);f&&(m+=l+d.slice(-f));k[1]&&(m+="e"+k[1]);return m};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(m,f,l){if("width"===f)return Math.min(m.offsetWidth, +m.scrollWidth)-a.getStyle(m,"padding-left")-a.getStyle(m,"padding-right");if("height"===f)return Math.min(m.offsetHeight,m.scrollHeight)-a.getStyle(m,"padding-top")-a.getStyle(m,"padding-bottom");if(m=E.getComputedStyle(m,void 0))m=m.getPropertyValue(f),a.pick(l,!0)&&(m=a.pInt(m));return m};a.inArray=function(a,f){return f.indexOf?f.indexOf(a):[].indexOf.call(f,a)};a.grep=function(a,f){return[].filter.call(a,f)};a.find=function(a,f){return[].find.call(a,f)};a.map=function(a,f){for(var l=[],r=0,m= +a.length;r>16,(f&65280)>> +8,f&255,1]:4===l&&(r=[(f&3840)>>4|(f&3840)>>8,(f&240)>>4|f&240,(f&15)<<4|f&15,1])),!r)for(m=this.parsers.length;m--&&!r;)t=this.parsers[m],(l=t.regex.exec(f))&&(r=t.parse(l));this.rgba=r||[]},get:function(a){var f=this.input,r=this.rgba,m;this.stops?(m=E(f),m.stops=[].concat(m.stops),C(this.stops,function(f,g){m.stops[g]=[m.stops[g][0],f.get(a)]})):m=r&&A(r[0])?"rgb"===a||!a&&1===r[3]?"rgb("+r[0]+","+r[1]+","+r[2]+")":"a"===a?r[3]:"rgba("+r.join(",")+")":f;return m},brighten:function(a){var f,r=this.rgba; +if(this.stops)C(this.stops,function(f){f.brighten(a)});else if(A(a)&&0!==a)for(f=0;3>f;f++)r[f]+=m(255*a),0>r[f]&&(r[f]=0),255x.width)x={width:0,height:0}}else x=this.htmlGetBBox();c.isSVG&&(a=x.width,c=x.height,q&&"11px"===q.fontSize&& +17===Math.round(c)&&(x.height=c=14),h&&(x.width=Math.abs(c*Math.sin(w))+Math.abs(a*Math.cos(w)),x.height=Math.abs(c*Math.cos(w))+Math.abs(a*Math.sin(w))));if(G&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a, +h,c){"string"===typeof a?c.setAttribute(h,a):a&&this.colorGradient(a,h,c)},visibilitySetter:function(a,h,c){"inherit"===a?c.removeAttribute(h):this[h]!==a&&c.setAttribute(h,a);this[h]=a},zIndexSetter:function(a,c){var x=this.renderer,w=this.parentGroup,p=(w||x).element||x.box,q,e=this.element,b;q=this.added;var d;t(a)&&(e.zIndex=a,a=+a,this[c]===a&&(q=!1),this[c]=a);if(q){(a=this.zIndex)&&w&&(w.handleZ=!0);c=p.childNodes;for(d=0;da||!t(a)&&t(q)||0> +a&&!t(q)&&p!==x.box)&&(p.insertBefore(e,w),b=!0);b||p.appendChild(e)}return b},_defaultSetter:function(a,h,c){c.setAttribute(h,a)}});C.prototype.yGetter=C.prototype.xGetter;C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.rotationSetter=C.prototype.verticalAlignSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=function(a,h){this[h]=a;this.doTransform=!0};C.prototype["stroke-widthSetter"]=C.prototype.strokeSetter=function(a,h,c){this[h]=a;this.stroke&&this["stroke-width"]? +(C.prototype.fillSetter.call(this,this.stroke,"stroke",c),c.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===h&&0===a&&this.hasStroke&&(c.removeAttribute("stroke"),this.hasStroke=!1)};A=a.SVGRenderer=function(){this.init.apply(this,arguments)};e(A.prototype,{Element:C,SVG_NS:O,init:function(a,h,w,p,q,e){var x;p=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(p));x=p.element;a.appendChild(x);-1===a.innerHTML.indexOf("xmlns")&& +m(x,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=x;this.boxWrapper=p;this.alignedObjects=[];this.url=(c||K)&&k.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(k.createTextNode("Created with Highcharts 5.0.14"));this.defs=this.createElement("defs").add();this.allowHTML=e;this.forExport=q;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount= +0;this.setSize(h,w,!1);var b;c&&a.getBoundingClientRect&&(h=function(){r(a,{left:0,top:0});b=a.getBoundingClientRect();r(a,{left:Math.ceil(b.left)-b.left+"px",top:Math.ceil(b.top)-b.top+"px"})},h(),this.unSubPixelFix=F(R,"resize",h))},getStyle:function(a){return this.style=e({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a= +this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();d(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var h=new this.Element;h.init(this,a);return h},draw:z,getRadialAttr:function(a,h){return{cx:a[0]-a[2]/2+h.cx*a[2],cy:a[1]-a[2]/2+h.cy*a[2],r:h.r*a[2]}},getSpanWidth:function(a,h){var c=a.getBBox(!0).width;!H&&this.forExport&&(c=this.measureSpanWidth(h.firstChild.data, +a.styles));return c},applyEllipsis:function(a,h,c,w){var x=a.rotation,p=c,q,e=0,b=c.length,d=function(a){h.removeChild(h.firstChild);a&&h.appendChild(k.createTextNode(a))},n;a.rotation=0;p=this.getSpanWidth(a,h);if(n=p>w){for(;e<=b;)q=Math.ceil((e+b)/2),p=c.substring(0,q)+"\u2026",d(p),p=this.getSpanWidth(a,h),e===b?e=b+1:p>w?b=q-1:e=q;0===b&&d("")}a.rotation=x;return n},buildText:function(a){var c=a.element,w=this,x=w.forExport,p=L(a.textStr,"").toString(),q=-1!==p.indexOf("\x3c"),e=c.childNodes, +d,n,g,G,v=m(c,"x"),z=a.styles,f=a.textWidth,I=z&&z.lineHeight,B=z&&z.textOutline,D=z&&"ellipsis"===z.textOverflow,l=z&&"nowrap"===z.whiteSpace,P=z&&z.fontSize,t,J,u=e.length,z=f&&!a.added&&this.box,K=function(a){var x;x=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:P||w.style.fontSize||12;return I?h(I):w.fontMetrics(x,a.getAttribute("style")?a:c).h};t=[p,D,l,I,B,P,f].join();if(t!==a.textCache){for(a.textCache=t;u--;)c.removeChild(e[u]);q||B||D||f||-1!==p.indexOf(" ")?(d=/<.*class="([^"]+)".*>/, +n=/<.*style="([^"]+)".*>/,g=/<.*href="([^"]+)".*>/,z&&z.appendChild(c),p=q?p.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[p],p=y(p,function(a){return""!==a}),b(p,function(h,p){var q,e=0;h=h.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");q=h.split("|||");b(q,function(h){if(""!== +h||1===q.length){var b={},z=k.createElementNS(w.SVG_NS,"tspan"),y,I;d.test(h)&&(y=h.match(d)[1],m(z,"class",y));n.test(h)&&(I=h.match(n)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),m(z,"style",I));g.test(h)&&!x&&(m(z,"onclick",'location.href\x3d"'+h.match(g)[1]+'"'),r(z,{cursor:"pointer"}));h=(h.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==h){z.appendChild(k.createTextNode(h));e?b.dx=0:p&&null!==v&&(b.x=v);m(z,b);c.appendChild(z);!e&&J&&(!H&&x&&r(z,{display:"block"}), +m(z,"dy",K(z)));if(f){b=h.replace(/([^\^])-/g,"$1- ").split(" ");y=1f,void 0===G&&(G=h),h&&1!==b.length?(z.removeChild(z.firstChild),B.unshift(b.pop())):(b=B,B=[],b.length&&!l&&(z=k.createElementNS(O,"tspan"),m(z,{dy:P,x:v}),I&&m(z,"style",I),c.appendChild(z)),N>f&&(f=N)),b.length&&z.appendChild(k.createTextNode(b.join(" ").replace(/- /g, +"-")));a.rotation=t}e++}}});J=J||c.childNodes.length}),G&&a.attr("title",a.textStr),z&&z.removeChild(c),B&&a.applyTextOutline&&a.applyTextOutline(B)):c.appendChild(k.createTextNode(p.replace(/</g,"\x3c").replace(/>/g,"\x3e")))}},getContrast:function(a){a=l(a).rgba;return 510Math.abs(p.end-p.start-2*Math.PI));var d=Math.cos(q),n=Math.sin(q),g=Math.cos(e),e=Math.sin(e);p=.001>p.end-q-Math.PI?0:1;b=["M",a+b*d,h+x*n,"A",b,x,0,p,1,a+b*g,h+x*e];t(c)&&b.push(w?"M":"L",a+c* +g,h+c*e,"A",c,c,0,p,0,a+c*d,h+c*n);b.push(w?"":"Z");return b},callout:function(a,h,c,w,p){var q=Math.min(p&&p.r||0,c,w),b=q+6,e=p&&p.anchorX;p=p&&p.anchorY;var d;d=["M",a+q,h,"L",a+c-q,h,"C",a+c,h,a+c,h,a+c,h+q,"L",a+c,h+w-q,"C",a+c,h+w,a+c,h+w,a+c-q,h+w,"L",a+q,h+w,"C",a,h+w,a,h+w,a,h+w-q,"L",a,h+q,"C",a,h,a,h,a+q,h];e&&e>c?p>h+b&&pe?p>h+b&&pw&&e>a+b&&ep&&e>a+b&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a,h,c){var w=a;h&&c&&(w=Math.max(w*Math.cos(h*g),4));return{x:-a/3*Math.sin(h*g),y:w}},label:function(h,c,q,d,n,g,k,z,G){var x=this,H=x.g("button"!==G&&"label"),v=H.text=x.text("",0,0,k).attr({zIndex:1}),f,y,I=0,B=3,D=0,r,l,P,m,J,O={},L,u,N=/^url\((.*?)\)$/.test(d),K=N,U,T,Q,R;G&&H.addClass("highcharts-"+G);K=N;U=function(){return(L||0)%2/2};T=function(){var a=v.element.style,h={};y=(void 0===r||void 0===l||J)&&t(v.textStr)&& +v.getBBox();H.width=(r||y.width||0)+2*B+D;H.height=(l||y.height||0)+2*B;u=B+x.fontMetrics(a&&a.fontSize,v).b;K&&(f||(H.box=f=x.symbols[d]||N?x.symbol(d):x.rect(),f.addClass(("button"===G?"":"highcharts-label-box")+(G?" highcharts-"+G+"-box":"")),f.add(H),a=U(),h.x=a,h.y=(z?-u:0)+a),h.width=Math.round(H.width),h.height=Math.round(H.height),f.attr(e(h,O)),O={})};Q=function(){var a=D+B,h;h=z?0:u;t(r)&&y&&("center"===J||"right"===J)&&(a+={center:.5,right:1}[J]*(r-y.width));if(a!==v.x||h!==v.y)v.attr("x", +a),void 0!==h&&v.attr("y",h);v.x=a;v.y=h};R=function(a,h){f?f.attr(a,h):O[a]=h};H.onAdd=function(){v.add(H);H.attr({text:h||0===h?h:"",x:c,y:q});f&&t(n)&&H.attr({anchorX:n,anchorY:g})};H.widthSetter=function(h){r=a.isNumber(h)?h:null};H.heightSetter=function(a){l=a};H["text-alignSetter"]=function(a){J=a};H.paddingSetter=function(a){t(a)&&a!==B&&(B=H.padding=a,Q())};H.paddingLeftSetter=function(a){t(a)&&a!==D&&(D=a,Q())};H.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==I&&(I=a,y&&H.attr({x:P}))}; +H.textSetter=function(a){void 0!==a&&v.textSetter(a);T();Q()};H["stroke-widthSetter"]=function(a,h){a&&(K=!0);L=this["stroke-width"]=a;R(h,a)};H.strokeSetter=H.fillSetter=H.rSetter=function(a,h){"r"!==h&&("fill"===h&&a&&(K=!0),H[h]=a);R(h,a)};H.anchorXSetter=function(a,h){n=H.anchorX=a;R(h,Math.round(a)-U()-P)};H.anchorYSetter=function(a,h){g=H.anchorY=a;R(h,a-m)};H.xSetter=function(a){H.x=a;I&&(a-=I*((r||y.width)+2*B));P=Math.round(a);H.attr("translateX",P)};H.ySetter=function(a){m=H.y=Math.round(a); +H.attr("translateY",m)};var V=H.css;return e(H,{css:function(a){if(a){var h={};a=p(a);b(H.textProps,function(c){void 0!==a[c]&&(h[c]=a[c],delete a[c])});v.css(h)}return V.call(H,a)},getBBox:function(){return{width:y.width+2*B,height:y.height+2*B,x:y.x-B,y:y.y-B}},shadow:function(a){a&&(T(),f&&f.shadow(a));return H},destroy:function(){w(H.element,"mouseenter");w(H.element,"mouseleave");v&&(v=v.destroy());f&&(f=f.destroy());C.prototype.destroy.call(H);H=x=T=Q=R=null}})}});a.Renderer=A})(M);(function(a){var C= +a.attr,A=a.createElement,F=a.css,E=a.defined,m=a.each,f=a.extend,l=a.isFirefox,r=a.isMS,u=a.isWebKit,t=a.pInt,g=a.SVGRenderer,d=a.win,k=a.wrap;f(a.SVGElement.prototype,{htmlCss:function(a){var b=this.element;if(b=a&&"SPAN"===b.tagName&&a.width)delete a.width,this.textWidth=b,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=f(this.styles,a);F(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position= +"absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,e=this.element,d=this.translateX||0,g=this.translateY||0,n=this.x||0,k=this.y||0,f=this.textAlign||"left",c={left:0,center:.5,right:1}[f],G=this.styles;F(e,{marginLeft:d,marginTop:g});this.shadows&&m(this.shadows,function(a){F(a,{marginLeft:d+1,marginTop:g+1})});this.inverted&&m(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var q= +this.rotation,B=t(this.textWidth),r=G&&G.whiteSpace,p=[q,f,e.innerHTML,this.textWidth,this.textAlign].join();p!==this.cTT&&(G=a.fontMetrics(e.style.fontSize).b,E(q)&&this.setSpanRotation(q,c,G),F(e,{width:"",whiteSpace:r||"nowrap"}),e.offsetWidth>B&&/[ \-]/.test(e.textContent||e.innerText)&&F(e,{width:B+"px",display:"block",whiteSpace:r||"normal"}),this.getSpanCorrection(e.offsetWidth,G,c,q,f));F(e,{left:n+(this.xCorr||0)+"px",top:k+(this.yCorr||0)+"px"});u&&(G=e.offsetHeight);this.cTT=p}}else this.alignOnAdd= +!0},setSpanRotation:function(a,e,g){var b={},n=r?"-ms-transform":u?"-webkit-transform":l?"MozTransform":d.opera?"-o-transform":"";b[n]=b.transform="rotate("+a+"deg)";b[n+(l?"Origin":"-origin")]=b.transformOrigin=100*e+"% "+g+"px";F(this.element,b)},getSpanCorrection:function(a,e,d){this.xCorr=-a*d;this.yCorr=-e}});f(g.prototype,{html:function(a,e,d){var b=this.createElement("span"),n=b.element,g=b.renderer,v=g.isSVG,c=function(a,c){m(["opacity","visibility"],function(q){k(a,q+"Setter",function(a, +p,q,b){a.call(this,p,q,b);c[q]=p})})};b.textSetter=function(a){a!==n.innerHTML&&delete this.bBox;n.innerHTML=this.textStr=a;b.htmlUpdateTransform()};v&&c(b,b.element.style);b.xSetter=b.ySetter=b.alignSetter=b.rotationSetter=function(a,c){"align"===c&&(c="textAlign");b[c]=a;b.htmlUpdateTransform()};b.attr({text:a,x:Math.round(e),y:Math.round(d)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});n.style.whiteSpace="nowrap";b.css=b.htmlCss;v&&(b.add=function(a){var q, +e=g.box.parentNode,d=[];if(this.parentGroup=a){if(q=a.div,!q){for(;a;)d.push(a),a=a.parentGroup;m(d.reverse(),function(a){var p,n=C(a.element,"class");n&&(n={className:n});q=a.div=a.div||A("div",n,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},q||e);p=q.style;f(a,{classSetter:function(a){this.element.setAttribute("class",a);q.className=a},on:function(){d[0].div&&b.on.apply({element:d[0].div}, +arguments);return a},translateXSetter:function(c,h){p.left=c+"px";a[h]=c;a.doTransform=!0},translateYSetter:function(c,h){p.top=c+"px";a[h]=c;a.doTransform=!0}});c(a,p)})}}else q=e;q.appendChild(n);b.added=!0;b.alignOnAdd&&b.htmlUpdateTransform();return b});return b}})})(M);(function(a){var C,A,F=a.createElement,E=a.css,m=a.defined,f=a.deg2rad,l=a.discardElement,r=a.doc,u=a.each,t=a.erase,g=a.extend;C=a.extendClass;var d=a.isArray,k=a.isNumber,b=a.isObject,e=a.merge;A=a.noop;var v=a.pick,y=a.pInt, +n=a.SVGElement,D=a.SVGRenderer,J=a.win;a.svg||(A={docMode8:r&&8===r.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],e=["position: ","absolute",";"],d="div"===b;("shape"===b||d)&&e.push("left:0;top:0;width:1px;height:1px;");e.push("visibility: ",d?"hidden":"visible");c.push(' style\x3d"',e.join(""),'"/\x3e');b&&(c=d||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=F(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,e=c.box,d=a&&a.inverted, +e=a?a.element||a:e;a&&(this.parentGroup=a);d&&c.invertChild(b,e);e.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:n.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*f),q=Math.sin(a*f);E(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-q,", M21\x3d",q,", M22\x3d", +b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,q,e,d){var c=e?Math.cos(e*f):1,n=e?Math.sin(e*f):0,g=v(this.elemHeight,this.element.offsetHeight),k;this.xCorr=0>c&&-a;this.yCorr=0>n&&-g;k=0>c*n;this.xCorr+=n*b*(k?1-q:q);this.yCorr-=c*b*(e?k?q:1-q:1);d&&"left"!==d&&(this.xCorr-=a*q*(0>c?-1:1),e&&(this.yCorr-=g*q*(0>n?-1:1)),E(this.element,{textAlign:d}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)k(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x": +(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,t(b,c),b.push(c),c.destroyClip=function(){t(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(),a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:n.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&l(a)},destroy:function(){this.destroyClip&&this.destroyClip();return n.prototype.destroy.apply(this)}, +on:function(a,b){this.element["on"+a]=function(){var a=J.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=y(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],q,p=this.element,d=this.renderer,n,g=p.style,h,w=p.path,k,H,f,D;w&&"string"!==typeof w.value&&(w="x");H=w;if(a){f=v(a.width,3);D=(a.opacity||.15)/f;for(q=1;3>=q;q++)k=2*f+1-2*q,e&&(H=this.cutOffPath(w.value,k+.5)),h=['\x3cshape isShadow\x3d"true" strokeweight\x3d"', +k,'" filled\x3d"false" path\x3d"',H,'" coordsize\x3d"10 10" style\x3d"',p.style.cssText,'" /\x3e'],n=F(d.prepVML(h),null,{left:y(g.left)+v(a.offsetX,1),top:y(g.top)+v(a.offsetY,1)}),e&&(n.cutOff=k+1),h=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"',D*q,'"/\x3e'],F(d.prepVML(h),null,null,n),b?b.element.appendChild(n):p.parentNode.insertBefore(n,p),c.push(n);this.shadows=c}return this},updateShadows:A,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)}, +classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,e){(e.getElementsByTagName("stroke")[0]||F(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,e))[b]=a||"solid";this[b]=a},dSetter:function(a,b,e){var c=this.shadows;a=a||[];this.d=a.join&&a.join(" ");e.path=a=this.pathToVML(a);if(c)for(e=c.length;e--;)c[e].path=c[e].cutOff?this.cutOffPath(a,c[e].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,e){var c=e.nodeName;"SPAN"===c?e.style.color=a:"IMG"!== +c&&(e.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,e,b,this)))},"fill-opacitySetter":function(a,b,e){F(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,e)},opacitySetter:A,rotationSetter:function(a,b,e){e=e.style;this[b]=e[b]=a;e.left=-Math.round(Math.sin(a*f)+1)+"px";e.top=Math.round(Math.cos(a*f))+"px"},strokeSetter:function(a,b,e){this.setAttr("strokecolor",this.renderer.color(a,e,b,this))},"stroke-widthSetter":function(a,b,e){e.stroked=!!a; +this[b]=a;k(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,e){"inherit"===a&&(a="visible");this.shadows&&u(this.shadows,function(c){c.style[b]=a});"DIV"===e.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(e.style[b]=a?"visible":"hidden"),b="top");e.style[b]=a},xSetter:function(a,b,e){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):e.style[b]=a},zIndexSetter:function(a, +b,e){e.style[b]=a}},A["stroke-opacitySetter"]=A["fill-opacitySetter"],a.VMLElement=A=C(n,A),A.prototype.ySetter=A.prototype.widthSetter=A.prototype.heightSetter=A.prototype.xSetter,A={Element:A,isIE8:-1l[0]&&c.push([1,l[1]]);u(c,function(h,c){n.test(h[1])?(p=a.color(h[1]), +w=p.get("rgb"),v=p.get("a")):(w=h[1],v=1);G.push(100*h[0]+"% "+w);c?(y=v,x=w):(D=v,r=w)});if("fill"===e)if("gradient"===k)e=H.x1||H[0]||0,c=H.y1||H[1]||0,f=H.x2||H[2]||0,H=H.y2||H[3]||0,B='angle\x3d"'+(90-180*Math.atan((H-c)/(f-e))/Math.PI)+'"',m();else{var h=H.r,t=2*h,J=2*h,A=H.cx,C=H.cy,E=b.radialReference,M,h=function(){E&&(M=d.getBBox(),A+=(E[0]-M.x)/M.width-.5,C+=(E[1]-M.y)/M.height-.5,t*=E[2]/M.width,J*=E[2]/M.height);B='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+t+","+ +J+'" origin\x3d"0.5,0.5" position\x3d"'+A+","+C+'" color2\x3d"'+r+'" ';m()};d.added?h():d.onAdd=h;h=x}else h=w}else n.test(c)&&"IMG"!==b.tagName?(p=a.color(c),d[e+"-opacitySetter"](p.get("a"),e,b),h=p.get("rgb")):(h=b.getElementsByTagName(e),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join("");c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'): +a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:D.prototype.html,path:function(a){var c={coordsize:"10 10"};d(a)?c.d=a:b(a)&&g(c,a);return this.createElement("shape").attr(c)},circle:function(a,e,d){var c=this.symbol("circle");b(a)&&(d=a.r,e=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:e})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)}, +image:function(a,b,e,d,n){var c=this.createElement("img").attr({src:a});1e&&m-v*yd&&(c=Math.round((g-m)/Math.cos(e*l)));else if(g=m+(1-v)*y,m-v*yd&&(D=d-a.x+D*v,J=-1),D=Math.min(n,D),DD||r.autoRotation&&(b.styles||{}).width)c=D;c&&(G.width=c,(r.options.labels.style||{}).textOverflow|| +(G.textOverflow="ellipsis"),b.css(G))},getPosition:function(a,f,l,g){var d=this.axis,k=d.chart,b=g&&k.oldChartHeight||k.chartHeight;return{x:a?d.translate(f+l,null,null,g)+d.transB:d.left+d.offset+(d.opposite?(g&&k.oldChartWidth||k.chartWidth)-d.right-d.left:0),y:a?b-d.bottom+d.offset-(d.opposite?d.height:0):b-d.translate(f+l,null,null,g)-d.transB}},getLabelPosition:function(a,f,m,g,d,k,b,e){var v=this.axis,y=v.transA,n=v.reversed,D=v.staggerLines,r=v.tickRotCorr||{x:0,y:0},c=d.y;A(c)||(c=0===v.side? +m.rotation?-8:-m.getBBox().height:2===v.side?r.y+8:Math.cos(m.rotation*l)*(r.y-m.getBBox(!1,0).height/2));a=a+d.x+r.x-(k&&g?k*y*(n?-1:1):0);f=f+c-(k&&!g?k*y*(n?1:-1):0);D&&(m=b/(e||1)%D,v.opposite&&(m=D-m-1),f+=v.labelOffset/D*m);return{x:a,y:Math.round(f)}},getMarkPath:function(a,f,l,g,d,k){return k.crispLine(["M",a,f,"L",a+(d?0:-l),f+(d?l:0)],g)},renderGridLine:function(a,f,l){var g=this.axis,d=g.options,k=this.gridLine,b={},e=this.pos,v=this.type,y=g.tickmarkOffset,n=g.chart.renderer,D=v?v+"Grid": +"grid",r=d[D+"LineWidth"],c=d[D+"LineColor"],d=d[D+"LineDashStyle"];k||(b.stroke=c,b["stroke-width"]=r,d&&(b.dashstyle=d),v||(b.zIndex=1),a&&(b.opacity=0),this.gridLine=k=n.path().attr(b).addClass("highcharts-"+(v?v+"-":"")+"grid-line").add(g.gridGroup));if(!a&&k&&(a=g.getPlotLinePath(e+y,k.strokeWidth()*l,a,!0)))k[this.isNew?"attr":"animate"]({d:a,opacity:f})},renderMark:function(a,l,m){var g=this.axis,d=g.options,k=g.chart.renderer,b=this.type,e=b?b+"Tick":"tick",v=g.tickSize(e),y=this.mark,n=!y, +D=a.x;a=a.y;var r=f(d[e+"Width"],!b&&g.isXAxis?1:0),d=d[e+"Color"];v&&(g.opposite&&(v[0]=-v[0]),n&&(this.mark=y=k.path().addClass("highcharts-"+(b?b+"-":"")+"tick").add(g.axisGroup),y.attr({stroke:d,"stroke-width":r})),y[n?"attr":"animate"]({d:this.getMarkPath(D,a,v[0],y.strokeWidth()*m,g.horiz,k),opacity:l}))},renderLabel:function(a,l,m,g){var d=this.axis,k=d.horiz,b=d.options,e=this.label,v=b.labels,y=v.step,n=d.tickmarkOffset,D=!0,r=a.x;a=a.y;e&&E(r)&&(e.xy=a=this.getLabelPosition(r,a,e,k,v,n, +g,y),this.isFirst&&!this.isLast&&!f(b.showFirstLabel,1)||this.isLast&&!this.isFirst&&!f(b.showLastLabel,1)?D=!1:!k||d.isRadial||v.step||v.rotation||l||0===m||this.handleOverflow(a),y&&g%y&&(D=!1),D&&E(a.y)?(a.opacity=m,e[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(e.attr("y",-9999),this.isNewLabel=!0),this.isNew=!1)},render:function(a,l,m){var g=this.axis,d=g.horiz,k=this.getPosition(d,this.pos,g.tickmarkOffset,l),b=k.x,e=k.y,g=d&&b===g.pos+g.len||!d&&e===g.pos?-1:1;m=f(m,1);this.isActive= +!0;this.renderGridLine(l,m,g);this.renderMark(k,m,g);this.renderLabel(k,l,m,a)},destroy:function(){F(this,this.axis)}}})(M);var S=function(a){var C=a.addEvent,A=a.animObject,F=a.arrayMax,E=a.arrayMin,m=a.color,f=a.correctFloat,l=a.defaultOptions,r=a.defined,u=a.deg2rad,t=a.destroyObjectProperties,g=a.each,d=a.extend,k=a.fireEvent,b=a.format,e=a.getMagnitude,v=a.grep,y=a.inArray,n=a.isArray,D=a.isNumber,J=a.isString,c=a.merge,G=a.normalizeTickInterval,q=a.objectEach,B=a.pick,K=a.removeEvent,p=a.splat, +z=a.syncTimeout,I=a.Tick,L=function(){this.init.apply(this,arguments)};a.extend(L.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100, +tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)}, +style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var h=c.isX,b=this;b.chart=a;b.horiz=a.inverted&&!b.isZAxis?!h:h;b.isXAxis=h;b.coll=b.coll||(h? +"xAxis":"yAxis");b.opposite=c.opposite;b.side=c.side||(b.horiz?b.opposite?0:2:b.opposite?1:3);b.setOptions(c);var w=this.options,e=w.type;b.labelFormatter=w.labels.formatter||b.defaultLabelFormatter;b.userOptions=c;b.minPixelPadding=0;b.reversed=w.reversed;b.visible=!1!==w.visible;b.zoomEnabled=!1!==w.zoomEnabled;b.hasNames="category"===e||!0===w.categories;b.categories=w.categories||b.hasNames;b.names=b.names||[];b.plotLinesAndBandsGroups={};b.isLog="logarithmic"===e;b.isDatetimeAxis="datetime"=== +e;b.positiveValuesOnly=b.isLog&&!b.allowNegativeLog;b.isLinked=r(w.linkedTo);b.ticks={};b.labelEdge=[];b.minorTicks={};b.plotLinesAndBands=[];b.alternateBands={};b.len=0;b.minRange=b.userMinRange=w.minRange||w.maxZoom;b.range=w.range;b.offset=w.offset||0;b.stacks={};b.oldStacks={};b.stacksTouched=0;b.max=null;b.min=null;b.crosshair=B(w.crosshair,p(a.options.tooltip.crosshairs)[h?0:1],!1);c=b.options.events;-1===y(b,a.axes)&&(h?a.axes.splice(a.xAxis.length,0,b):a.axes.push(b),a[b.coll].push(b));b.series= +b.series||[];a.inverted&&!b.isZAxis&&h&&void 0===b.reversed&&(b.reversed=!0);q(c,function(a,h){C(b,h,a)});b.lin2log=w.linearToLogConverter||b.lin2log;b.isLog&&(b.val2lin=b.log2lin,b.lin2val=b.lin2log)},setOptions:function(a){this.options=c(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],c(l[this.coll],a))},defaultLabelFormatter:function(){var h=this.axis, +c=this.value,e=h.categories,p=this.dateTimeLabelFormat,d=l.lang,n=d.numericSymbols,d=d.numericSymbolMagnitude||1E3,q=n&&n.length,x,g=h.options.labels.format,h=h.isLog?Math.abs(c):h.tickInterval;if(g)x=b(g,this);else if(e)x=c;else if(p)x=a.dateFormat(p,c);else if(q&&1E3<=h)for(;q--&&void 0===x;)e=Math.pow(d,q+1),h>=e&&0===10*c%e&&null!==n[q]&&0!==c&&(x=a.numberFormat(c/e,-1)+n[q]);void 0===x&&(x=1E4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,-1,void 0,""));return x},getSeriesExtremes:function(){var a= +this,b=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();g(a.series,function(h){if(h.visible||!b.options.chart.ignoreHiddenSeries){var c=h.options,w=c.threshold,e;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=w&&(w=null);if(a.isXAxis)c=h.xData,c.length&&(h=E(c),D(h)||h instanceof Date||(c=v(c,function(a){return D(a)}),h=E(c)),a.dataMin=Math.min(B(a.dataMin,c[0]),h),a.dataMax=Math.max(B(a.dataMax,c[0]),F(c)));else if(h.getExtremes(), +e=h.dataMax,h=h.dataMin,r(h)&&r(e)&&(a.dataMin=Math.min(B(a.dataMin,h),h),a.dataMax=Math.max(B(a.dataMax,e),e)),r(w)&&(a.threshold=w),!c.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})},translate:function(a,b,c,e,p,d){var h=this.linkedParent||this,w=1,n=0,q=e?h.oldTransA:h.transA;e=e?h.oldMin:h.min;var g=h.minPixelPadding;p=(h.isOrdinal||h.isBroken||h.isLog&&p)&&h.lin2val;q||(q=h.transA);c&&(w*=-1,n=h.len);h.reversed&&(w*=-1,n-=w*(h.sector||h.len));b?(a=(a*w+n-g)/q+e,p&&(a=h.lin2val(a))): +(p&&(a=h.val2lin(a)),a=w*(a-e)*q+n+w*g+(D(d)?q*d:0));return a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,c,e,p){var h=this.chart,w=this.left,d=this.top,n,q,g=c&&h.oldChartHeight||h.chartHeight,k=c&&h.oldChartWidth||h.chartWidth,f;n=this.transB;var v=function(a,h,b){if(ab)e?a=Math.min(Math.max(h,a),b):f=!0;return a};p=B(p,this.translate(a, +null,null,c));a=c=Math.round(p+n);n=q=Math.round(g-p-n);D(p)?this.horiz?(n=d,q=g-this.bottom,a=c=v(a,w,w+this.width)):(a=w,c=k-this.right,n=q=v(n,d,d+this.height)):f=!0;return f&&!e?null:h.renderer.crispLine(["M",a,n,"L",c,q],b||1)},getLinearTickPositions:function(a,b,c){var h,w=f(Math.floor(b/a)*a);c=f(Math.ceil(c/a)*a);var e=[];if(this.single)return[b];for(b=w;b<=c;){e.push(b);b=f(b+a);if(b===h)break;h=b}return e},getMinorTickPositions:function(){var a=this,b=a.options,c=a.tickPositions,e=a.minorTickInterval, +p=[],d=a.pointRangePadding||0,n=a.min-d,d=a.max+d,q=d-n;if(q&&q/e=this.minRange,v=this.minRange,e=(v-c+b)/2,e=[b-e,B(a.min,b-e)],p&&(e[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),b=F(e),c=[b+v,B(a.max,b+v)],p&&(c[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax), +c=E(c),c-b=J?(L=J,y=0):b.dataMax<=J&&(u=J,z=0)),b.min=B(K,L,b.dataMin),b.max=B(A,u,b.dataMax));d&&(b.positiveValuesOnly&&!h&&0>=Math.min(b.min,B(b.dataMin,b.min))&&a.error(10,1),b.min=f(n(b.min),15),b.max=f(n(b.max),15));b.range&&r(b.max)&&(b.userMin=b.min=K=Math.max(b.dataMin,b.minFromRange()),b.userMax=A=b.max,b.range=null);k(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange(); +!(m||b.axisPointRange||b.usePercentage||v)&&r(b.min)&&r(b.max)&&(n=b.max-b.min)&&(!r(K)&&y&&(b.min-=n*y),!r(A)&&z&&(b.max+=n*z));D(p.softMin)&&(b.min=Math.min(b.min,p.softMin));D(p.softMax)&&(b.max=Math.max(b.max,p.softMax));D(p.floor)&&(b.min=Math.max(b.min,p.floor));D(p.ceiling)&&(b.max=Math.min(b.max,p.ceiling));t&&r(b.dataMin)&&(J=J||0,!r(K)&&b.min=J?b.min=J:!r(A)&&b.max>J&&b.dataMax<=J&&(b.max=J));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:v&&!l&&I===b.linkedParent.options.tickPixelInterval? +l=b.linkedParent.tickInterval:B(l,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,m?1:(b.max-b.min)*I/Math.max(b.len,I));x&&!h&&g(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!l&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));h=B(p.minTickInterval,b.isDatetimeAxis&&b.closestPointRange); +!l&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,e=a.tickPositioner,p=a.startOnTick,d=a.endOnTick;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval= +"auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.single=this.min===this.max&&r(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval, +this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,e&&(e=e.apply(this,[this.min,this.max])))&&(this.tickPositions=b=e);this.paddedTicks=b.slice(0);this.trimTicks(b,p,d);this.isLinked||(this.single&&2>b.length&&(this.min-=.5,this.max+=.5),c||e||this.adjustTickAmount())},trimTicks:function(a,b,c){var h=a[0],e=a[a.length-1],p=this.minPointOffset||0;if(!this.isLinked){if(b&&-Infinity!==h)this.min=h;else for(;this.min-p>a[0];)a.shift();if(c)this.max=e;else for(;this.max+pb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,e=this.finalTickAmt,p=b&&b.length;if(pc&&(this.tickInterval*=2,this.setTickPositions());if(r(e)){for(a=c=b.length;a--;)(3===e&&1===a%2||2>=e&&0e&&(a=e)),r(c)&&(be&&(b=e))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var b=this.chart,c=this.options,e=c.offsets||[0,0,0,0],p=this.horiz,d=this.width=Math.round(a.relativeLength(B(c.width,b.plotWidth-e[3]+e[1]),b.plotWidth)),n=this.height=Math.round(a.relativeLength(B(c.height,b.plotHeight-e[0]+e[2]),b.plotHeight)),q=this.top=Math.round(a.relativeLength(B(c.top,b.plotTop+e[0]),b.plotHeight,b.plotTop)), +c=this.left=Math.round(a.relativeLength(B(c.left,b.plotLeft+e[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-n-q;this.right=b.chartWidth-d-c;this.len=Math.max(p?d:n,0);this.pos=p?c:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?f(b(this.min)):this.min,max:a?f(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,h=this.lin2log,c=b?h(this.min):this.min,b=b?h(this.max):this.max; +null===a?a=c:c>a?a=c:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,h=b[a+"Length"],c=B(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(c&&h)return"inside"===b[a+"Position"]&&(h=-h),[h,c]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,e=c,p=this.len/(((this.categories?1:0)+this.max-this.min)/c),d,n=a.rotation,q=this.labelMetrics(),k,f=Number.MAX_VALUE,v,z=function(a){a/=p||1;a=1=a)k=z(Math.abs(q.h/Math.sin(u*a))),b=k+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*this.len/e||!b&&(p&&p-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,e=this.tickPositions,p=this.ticks,d=this.options.labels,n=this.horiz,q=this.getSlotWidth(),k=Math.max(1, +Math.round(q-2*(d.padding||5))),f={},v=this.labelMetrics(),z=d.style&&d.style.textOverflow,D,y=0,l,I;J(d.rotation)||(f.rotation=d.rotation||0);g(e,function(a){(a=p[a])&&a.labelLength>y&&(y=a.labelLength)});this.maxLabelLength=y;if(this.autoRotation)y>k&&y>v.h?f.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(D={width:k+"px"},!z))for(D.textOverflow="clip",l=e.length;!n&&l--;)if(I=e[l],k=p[I].label)k.styles&&"ellipsis"===k.styles.textOverflow?k.css({textOverflow:"clip"}):p[I].labelLength> +q&&k.css({width:q+"px"}),k.getBBox().height>this.len/e.length-(v.h-v.f)&&(k.specCss={textOverflow:"ellipsis"});f.rotation&&(D={width:(y>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},z||(D.textOverflow="ellipsis"));if(this.labelAlign=d.align||this.autoLabelAlign(this.labelRotation))f.align=this.labelAlign;g(e,function(a){var b=(a=p[a])&&a.label;b&&(b.attr(f),D&&b.css(c(D,b.specCss)),delete b.specCss,a.rotation=f.rotation)});this.tickRotCorr=b.rotCorr(v.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||r(this.min)&&r(this.max)&&!!this.tickPositions},addTitle:function(a){var b=this.chart.renderer,c=this.horiz,h=this.opposite,e=this.options.title,p;this.axisTitle||((p=e.textAlign)||(p=(c?{low:"left",middle:"center",high:"right"}:{low:h?"right":"left",middle:"center",high:h?"left":"right"})[e.align]),this.axisTitle=b.text(e.text,0,0,e.useHTML).attr({zIndex:7,rotation:e.rotation||0,align:p}).addClass("highcharts-axis-title").css(e.style).add(this.axisGroup), +this.axisTitle.isNew=!0);e.style.width||this.isRadial||this.axisTitle.css({width:this.len});this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var b=this.ticks;b[a]?b[a].addLabel():b[a]=new I(this,a)},getOffset:function(){var a=this,b=a.chart,c=b.renderer,e=a.options,p=a.tickPositions,d=a.ticks,n=a.horiz,k=a.side,f=b.inverted&&!a.isZAxis?[1,0,3,2][k]:k,v,z,D=0,y,l=0,I=e.title,m=e.labels,G=0,J=b.axisOffset,b=b.clipOffset,t=[-1,1,1,-1][k],L=e.className,u=a.axisParent,K=this.tickSize("tick"); +v=a.hasData();a.showAxis=z=v||B(e.showEmpty,!0);a.staggerLines=a.horiz&&m.staggerLines;a.axisGroup||(a.gridGroup=c.g("grid").attr({zIndex:e.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(L||"")).add(u),a.axisGroup=c.g("axis").attr({zIndex:e.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(L||"")).add(u),a.labelGroup=c.g("axis-labels").attr({zIndex:m.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(L||"")).add(u));v||a.isLinked?(g(p,function(b, +c){a.generateTick(b,c)}),a.renderUnsquish(),!1===m.reserveSpace||0!==k&&2!==k&&{1:"left",3:"right"}[k]!==a.labelAlign&&"center"!==a.labelAlign||g(p,function(a){G=Math.max(d[a].getLabelSize(),G)}),a.staggerLines&&(G*=a.staggerLines,a.labelOffset=G*(a.opposite?-1:1))):q(d,function(a,b){a.destroy();delete d[b]});I&&I.text&&!1!==I.enabled&&(a.addTitle(z),z&&!1!==I.reserveSpace&&(a.titleOffset=D=a.axisTitle.getBBox()[n?"height":"width"],y=I.offset,l=r(y)?0:B(I.margin,n?5:10)));a.renderLine();a.offset= +t*B(e.offset,J[k]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===k?-a.labelMetrics().h:2===k?a.tickRotCorr.y:0;l=Math.abs(G)+l;G&&(l=l-c+t*(n?B(m.y,a.tickRotCorr.y+8*t):m.x));a.axisTitleMargin=B(y,l);J[k]=Math.max(J[k],a.axisTitleMargin+D+t*a.offset,l,v&&p.length&&K?K[0]+t*a.offset:0);p=2*Math.floor(a.axisLine.strokeWidth()/2);0=this.min&&a<=this.max)e[a]||(e[a]=new I(this,a)),h&&e[a].isNew&&e[a].render(b,!0,.1),e[a].render(b)},render:function(){var b=this,c=b.chart,e=b.options,p=b.isLog,d=b.lin2log,n=b.isLinked,k=b.tickPositions,f=b.axisTitle,v=b.ticks,y=b.minorTicks,l=b.alternateBands,m=e.stackLabels,r=e.alternateGridColor,B=b.tickmarkOffset, +G=b.axisLine,J=b.showAxis,t=A(c.renderer.globalAnimation),L,u;b.labelEdge.length=0;b.overlap=!1;g([v,y,l],function(a){q(a,function(a){a.isActive=!1})});if(b.hasData()||n)b.minorTickInterval&&!b.categories&&g(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),k.length&&(g(k,function(a,c){b.renderTick(a,c)}),B&&(0===b.min||b.single)&&(v[-1]||(v[-1]=new I(b,-1,null,!0)),v[-1].render(-1))),r&&g(k,function(e,h){u=void 0!==k[h+1]?k[h+1]+B:b.max-B;0===h%2&&e=d.second?0:B*Math.floor(c.getMilliseconds()/B));if(q>=d.second)c[A.hcSetSeconds](q>=d.minute?0:B*Math.floor(c.getSeconds()/B));if(q>=d.minute)c[A.hcSetMinutes](q>=d.hour?0:B*Math.floor(c[A.hcGetMinutes]()/B));if(q>=d.hour)c[A.hcSetHours](q>=d.day?0:B*Math.floor(c[A.hcGetHours]()/B));if(q>=d.day)c[A.hcSetDate](q>= +d.month?1:B*Math.floor(c[A.hcGetDate]()/B));q>=d.month&&(c[A.hcSetMonth](q>=d.year?0:B*Math.floor(c[A.hcGetMonth]()/B)),r=c[A.hcGetFullYear]());if(q>=d.year)c[A.hcSetFullYear](r-r%B);if(q===d.week)c[A.hcSetDate](c[A.hcGetDate]()-c[A.hcGetDay]()+g(v,1));r=c[A.hcGetFullYear]();v=c[A.hcGetMonth]();var z=c[A.hcGetDate](),I=c[A.hcGetHours]();if(A.hcTimezoneOffset||A.hcGetTimezoneOffset)p=(!D||!!A.hcGetTimezoneOffset)&&(e-b>4*d.month||u(b)!==u(e)),c=c.getTime(),t=u(c),c=new A(c+t);D=c.getTime();for(b=1;D< +e;)k.push(D),D=q===d.year?G(r+b*B,0):q===d.month?G(r,v+b*B):!p||q!==d.day&&q!==d.week?p&&q===d.hour?G(r,v,z,I+b*B,0,0,t)-t:D+q*B:G(r,v,z+b*B*(q===d.day?1:7)),b++;k.push(D);q<=d.hour&&1E4>k.length&&f(k,function(a){0===a%18E5&&"000000000"===F("%H%M%S%L",a)&&(n[a]="day")})}k.info=l(a,{higherRanks:n,totalRange:q*B});return k};C.prototype.normalizeTimeTickInterval=function(a,b){var e=b||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1, +2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];b=e[e.length-1];var k=d[b[0]],g=b[1],n;for(n=0;nl&&(!u||n<=r)&&void 0!==n&&b.push(n),n>r&&(D=!0),n=y;else l=d(l),r=d(r),a=f[u?"minorTickInterval":"tickInterval"],a=m("auto"===a?null:a,this._minorAutoInterval,f.tickPixelInterval/(u?5:1)*(r-l)/((u?g/this.tickPositions.length: +g)||1)),a=E(a,null,A(a)),b=F(this.getLinearTickPositions(a,l,r),k),u||(this._minorAutoInterval=a/5);u||(this.tickInterval=a);return b};C.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};C.prototype.lin2log=function(a){return Math.pow(10,a)}})(M);(function(a,C){var A=a.arrayMax,F=a.arrayMin,E=a.defined,m=a.destroyObjectProperties,f=a.each,l=a.erase,r=a.merge,u=a.pick;a.PlotLineOrBand=function(a,g){this.axis=a;g&&(this.options=g,this.id=g.id)};a.PlotLineOrBand.prototype={render:function(){var f= +this,g=f.axis,d=g.horiz,k=f.options,b=k.label,e=f.label,v=k.to,l=k.from,n=k.value,D=E(l)&&E(v),m=E(n),c=f.svgElem,G=!c,q=[],B=k.color,K=u(k.zIndex,0),p=k.events,q={"class":"highcharts-plot-"+(D?"band ":"line ")+(k.className||"")},z={},I=g.chart.renderer,L=D?"bands":"lines",h=g.log2lin;g.isLog&&(l=h(l),v=h(v),n=h(n));m?(q={stroke:B,"stroke-width":k.width},k.dashStyle&&(q.dashstyle=k.dashStyle)):D&&(B&&(q.fill=B),k.borderWidth&&(q.stroke=k.borderColor,q["stroke-width"]=k.borderWidth));z.zIndex=K;L+= +"-"+K;(B=g.plotLinesAndBandsGroups[L])||(g.plotLinesAndBandsGroups[L]=B=I.g("plot-"+L).attr(z).add());G&&(f.svgElem=c=I.path().attr(q).add(B));if(m)q=g.getPlotLinePath(n,c.strokeWidth());else if(D)q=g.getPlotBandPath(l,v,k);else return;G&&q&&q.length?(c.attr({d:q}),p&&a.objectEach(p,function(a,b){c.on(b,function(a){p[b].apply(f,[a])})})):c&&(q?(c.show(),c.animate({d:q})):(c.hide(),e&&(f.label=e=e.destroy())));b&&E(b.text)&&q&&q.length&&0this.max&&g>this.max;k&&d?(a&&(k.flat=k.toString()===d.toString(),e=0),k.push(b&&d[4]===k[4]?d[4]+e:d[4],b||d[5]!==k[5]?d[5]:d[5]+e,b&&d[1]===k[1]?d[1]+e:d[1],b||d[2]!==k[2]?d[2]:d[2]+e)):k=null;return k}, +addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(f,g){var d=(new a.PlotLineOrBand(this,f)).render(),k=this.userOptions;d&&(g&&(k[g]=k[g]||[],k[g].push(f)),this.plotLinesAndBands.push(d));return d},removePlotBandOrLine:function(a){for(var g=this.plotLinesAndBands,d=this.options,k=this.userOptions,b=g.length;b--;)g[b].id===a&&g[b].destroy();f([d.plotLines||[],k.plotLines||[],d.plotBands|| +[],k.plotBands||[]],function(e){for(b=e.length;b--;)e[b].id===a&&l(e,e[b])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(M,S);(function(a){var C=a.dateFormat,A=a.each,F=a.extend,E=a.format,m=a.isNumber,f=a.map,l=a.merge,r=a.pick,u=a.splat,t=a.syncTimeout,g=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,k){this.chart=a;this.options=k;this.crosshairs=[];this.now={x:0,y:0}; +this.isHidden=!0;this.split=k.split&&!a.inverted;this.shared=k.shared||this.split},cleanSplit:function(a){A(this.chart.series,function(d){var b=d&&d.tt;b&&(!b.isActive||a?d.tt=b.destroy():b.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,k=this.options;this.label||(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,k.shape||"callout",null,null,k.useHTML,null,"tooltip").attr({padding:k.padding,r:k.borderRadius}),this.label.attr({fill:k.backgroundColor,"stroke-width":k.borderWidth}).css(k.style).shadow(k.shadow)), +this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();l(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,l(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,k,b,e){var d=this,g=d.now,n=!1!==d.options.animation&&!d.isHidden&&(1f-n?f:f-n);else if(g)k[a]=Math.max(p,e+n+c>b?e:e+n);else return!1},B=function(a,b,c,e){var h;eb-d?h=!1:k[a]=eb-c/2? +b-c-2:e-c/2;return h},t=function(a){var b=l;l=c;c=b;f=a},p=function(){!1!==q.apply(0,l)?!1!==B.apply(0,c)||f||(t(!0),p()):f?k.x=k.y=0:(t(!0),p())};(e.inverted||1p&&(n=!1);a=(d.series&&d.series.yAxis&&d.series.yAxis.pos)+(d.plotY||0);a-=g.plotTop;e.push({target:d.isHeader?g.plotHeight+m:a,rank:d.isHeader?1:0,size:q.tt.getBBox().height+1,point:d,x:p,tt:v})}});this.cleanSplit();a.distribute(e,g.plotHeight+m);A(e,function(a){var b=a.point,c=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:n||b.isHeader?a.x:b.plotX+ +g.plotLeft+r(l.distance,16),y:a.pos+g.plotTop,anchorX:b.isHeader?b.plotX+g.plotLeft:b.plotX+c.xAxis.pos,anchorY:b.isHeader?a.pos+g.plotTop-15:b.plotY+c.yAxis.pos})})},updatePosition:function(a){var d=this.chart,b=this.getLabel(),b=(this.options.positioner||this.getPosition).call(this,b.width,b.height,a);this.move(Math.round(b.x),Math.round(b.y||0),a.plotX+d.plotLeft,a.plotY+d.plotTop)},getDateFormat:function(a,k,b,e){var d=C("%m-%d %H:%M:%S.%L",k),f,n,l={millisecond:15,second:12,minute:9,hour:6,day:3}, +m="millisecond";for(n in g){if(a===g.week&&+C("%w",k)===b&&"00:00:00.000"===d.substr(6)){n="week";break}if(g[n]>a){n=m;break}if(l[n]&&d.substr(l[n])!=="01-01 00:00:00.000".substr(l[n]))break;"week"!==n&&(m=n)}n&&(f=e[n]);return f},getXDateFormat:function(a,g,b){g=g.dateTimeLabelFormats;var e=b&&b.closestPointRange;return(e?this.getDateFormat(e,a.x,b.options.startOfWeek,g):g.day)||g.year},tooltipFooterHeaderFormatter:function(a,g){var b=g?"footer":"header";g=a.series;var e=g.tooltipOptions,d=e.xDateFormat, +k=g.xAxis,n=k&&"datetime"===k.options.type&&m(a.key),b=e[b+"Format"];n&&!d&&(d=this.getXDateFormat(a,e,k));n&&d&&(b=b.replace("{point.key}","{point.key:"+d+"}"));return E(b,{point:a,series:g})},bodyFormatter:function(a){return f(a,function(a){var b=a.series.tooltipOptions;return(b.pointFormatter||a.point.tooltipFormatter).call(a.point,b.pointFormat)})}}})(M);(function(a){var C=a.addEvent,A=a.attr,F=a.charts,E=a.color,m=a.css,f=a.defined,l=a.each,r=a.extend,u=a.find,t=a.fireEvent,g=a.isObject,d=a.offset, +k=a.pick,b=a.removeEvent,e=a.splat,v=a.Tooltip,y=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};v&&(a.tooltip=new v(a,b.tooltip),this.followTouchMove=k(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,e=b.options.chart,c=e.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(c=k(e.pinchType,c)); +this.zoomX=a=/x/.test(c);this.zoomY=c=/y/.test(c);this.zoomHor=a&&!b||c&&b;this.zoomVert=c&&!b||a&&b;this.hasZoom=a||c},normalize:function(a,b){var e,c;a=a||y.event;a.target||(a.target=a.srcElement);c=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=d(this.chart.container));void 0===c.pageX?(e=Math.max(a.x,a.clientX-b.left),b=a.y):(e=c.pageX-b.left,b=c.pageY-b.top);return r(a,{chartX:Math.round(e),chartY:Math.round(b)})},getCoordinates:function(a){var b= +{xAxis:[],yAxis:[]};l(this.chart.axes,function(e){b[e.isXAxis?"xAxis":"yAxis"].push({axis:e,value:e.toValue(a[e.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,b,e){var c;l(a,function(a){var d=!(a.noSharedTooltip&&b)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(e,d);if((d=g(a,!0))&&!(d=!g(c,!0)))var d=c.distX-a.distX,n=c.dist-a.dist,k=(a.series.group&&a.series.group.zIndex)-(c.series.group&&c.series.group.zIndex),d=0<(0!==d&&b?d:0!==n?n:0!==k?k:c.series.index> +a.series.index?-1:1);d&&(c=a)});return c},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var e=a.series,c=e.xAxis,e=e.yAxis;if(c&&e)return b?{chartX:c.len+c.pos-a.clientX,chartY:e.len+e.pos-a.plotY}:{chartX:a.clientX+c.pos,chartY:a.plotY+e.pos}},getHoverData:function(b,e,d,c,f,q){var n,v=[];c=!(!c||!b);var p=e&&!e.stickyTracking?[e]:a.grep(d,function(a){return a.visible&&!(!f&&a.directTouch)&&k(a.options.enableMouseTracking, +!0)&&a.stickyTracking});e=(n=c?b:this.findNearestKDPoint(p,f,q))&&n.series;n&&(f&&!e.noSharedTooltip?(p=a.grep(d,function(a){return a.visible&&!(!f&&a.directTouch)&&k(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),l(p,function(a){a=u(a.points,function(a){return a.x===n.x});g(a)&&!a.isNull&&v.push(a)})):v.push(n));return{hoverPoint:n,hoverSeries:e,hoverPoints:v}},runPointActions:function(b,e){var d=this.chart,c=d.tooltip,g=c?c.shared:!1,n=e||d.hoverPoint,f=n&&n.series||d.hoverSeries,f=this.getHoverData(n, +f,d.series,!!e||f&&f.directTouch&&this.isDirectTouch,g,b),v,n=f.hoverPoint;v=f.hoverPoints;e=(f=f.hoverSeries)&&f.tooltipOptions.followPointer;g=g&&f&&!f.noSharedTooltip;if(n&&(n!==d.hoverPoint||c&&c.isHidden)){l(d.hoverPoints||[],function(b){-1===a.inArray(b,v)&&b.setState()});l(v||[],function(a){a.setState("hover")});if(d.hoverSeries!==f)f.onMouseOver();d.hoverPoint&&d.hoverPoint.firePointEvent("mouseOut");n.firePointEvent("mouseOver");d.hoverPoints=v;d.hoverPoint=n;c&&c.refresh(g?v:n,b)}else e&& +c&&!c.isHidden&&(n=c.getAnchor([{}],b),c.updatePosition({plotX:n[0],plotY:n[1]}));this.unDocMouseMove||(this.unDocMouseMove=C(d.container.ownerDocument,"mousemove",function(b){var c=F[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));l(d.axes,function(c){var e=k(c.crosshair.snap,!0),p=e?a.find(v,function(a){return a.series[c.coll]===c}):void 0;p||!e?c.drawCrosshair(b,p):c.hideCrosshair()})},reset:function(a,b){var d=this.chart,c=d.hoverSeries,g=d.hoverPoint,n=d.hoverPoints,f=d.tooltip,k= +f&&f.shared?n:g;a&&k&&l(e(k),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)f&&k&&(f.refresh(k),g&&(g.setState(g.state,!0),l(d.axes,function(a){a.crosshair&&a.drawCrosshair(null,g)})));else{if(g)g.onMouseOut();n&&l(n,function(a){a.setState()});if(c)c.onMouseOut();f&&f.hide(b);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());l(d.axes,function(a){a.hideCrosshair()});this.hoverX=d.hoverPoints=d.hoverPoint=null}},scaleGroups:function(a,b){var e=this.chart,c;l(e.series, +function(d){c=a||d.getPlotBox();d.xAxis&&d.xAxis.zoomEnabled&&d.group&&(d.group.attr(c),d.markerGroup&&(d.markerGroup.attr(c),d.markerGroup.clip(b?e.clipRect:null)),d.dataLabelsGroup&&d.dataLabelsGroup.attr(c))});e.clipRect.attr(b||e.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,e=b.options.chart,c=a.chartX,d=a.chartY,g=this.zoomHor,n=this.zoomVert, +f=b.plotLeft,p=b.plotTop,k=b.plotWidth,v=b.plotHeight,l,h=this.selectionMarker,w=this.mouseDownX,m=this.mouseDownY,r=e.panKey&&a[e.panKey+"Key"];h&&h.touch||(cf+k&&(c=f+k),dp+v&&(d=p+v),this.hasDragged=Math.sqrt(Math.pow(w-c,2)+Math.pow(m-d,2)),10K.max&&(f=K.max-c,w=!0);w?(I-=.8*(I-k[v][0]),p||(h-=.8*(h-k[v][1])),m()):k[v]=[I,h];B||(d[v]=G-u,d[r]=c);d=B?1/q:q;g[r]=c;g[v]=f;t[B?a?"scaleY":"scaleX":"scale"+l]=q;t["translate"+l]=d*u+(I-d*z)},pinch:function(a){var l=this,u=l.chart,t=l.pinchDown,g=a.touches,d=g.length,k=l.lastValidTouch,b=l.hasZoom,e=l.selectionMarker, +v={},y=1===d&&(l.inClass(a.target,"highcharts-tracker")&&u.runTrackerClick||l.runChartClick),n={};1d-6&&c(p||b.spacingBox.width-2*q-g.x)&&(this.itemX=q,this.itemY+=I+this.lastLineHeight+z,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=I+this.itemY+z;this.lastLineHeight=Math.max(d,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=I+d+z,this.lastLineHeight=d);this.offsetWidth=p||Math.max((f?this.itemX-q-(a.checkbox?0:B):c)+q,this.offsetWidth)},getAllItems:function(){var a=[];m(this.chart.series, +function(b){var e=b&&b.options;b&&u(e.showInLegend,E(e.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===e.legendType?b.data:b)))});return a},adjustMargins:function(a,e){var b=this.chart,d=this.options,g=d.align.charAt(0)+d.verticalAlign.charAt(0)+d.layout.charAt(0);d.floating||m([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(f,k){f.test(g)&&!E(a[k])&&(b[l[k]]=Math.max(b[l[k]],b.legend[(k+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][k]*d[k%2?"x":"y"]+u(d.margin, +12)+e[k]))})},render:function(){var a=this,e=a.chart,d=e.renderer,f=a.group,k,l,t,c,u=a.box,q=a.options,B=a.padding;a.itemX=B;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;f||(a.group=f=d.g("legend").attr({zIndex:7}).add(),a.contentGroup=d.g().attr({zIndex:1}).add(f),a.scrollGroup=d.g().add(a.contentGroup));a.renderTitle();k=a.getAllItems();g(k,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});q.reversed&&k.reverse();a.allItems=k;a.display=l= +!!k.length;a.lastLineHeight=0;m(k,function(b){a.renderItem(b)});t=(q.width||a.offsetWidth)+B;c=a.lastItemY+a.lastLineHeight+a.titleHeight;c=a.handleOverflow(c);c+=B;u||(a.box=u=d.rect().addClass("highcharts-legend-box").attr({r:q.borderRadius}).add(f),u.isNew=!0);u.attr({stroke:q.borderColor,"stroke-width":q.borderWidth||0,fill:q.backgroundColor||"none"}).shadow(q.shadow);0d&&!1!==q.enabled?(this.clipHeight=c=Math.max(d-20-this.titleHeight-l,0),this.currentPage=u(this.currentPage,1),this.fullHeight=a,m(L,function(a,b){var e=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=z.length;if(!d||e-z[d-1]>c&&(I||e)!==z[d-1])z.push(I|| +e),d++;b===L.length-1&&e+a-z[d-1]>c&&z.push(e);e!==I&&(I=e)}),r||(r=b.clipRect=g.clipRect(0,l,9999,0),b.contentGroup.clip(r)),h(c),p||(this.nav=p=g.g().attr({zIndex:1}).add(this.group),this.up=g.symbol("triangle",0,0,t,t).on("click",function(){b.scroll(-1,B)}).add(p),this.pager=g.text("",15,10).addClass("highcharts-legend-navigation").css(q.style).add(p),this.down=g.symbol("triangle-down",0,0,t,t).on("click",function(){b.scroll(1,B)}).add(p)),b.scroll(0),a=d):p&&(h(),this.nav=p.destroy(),this.scrollGroup.attr({translateY:1}), +this.clipHeight=0);return a},scroll:function(a,e){var b=this.pages,d=b.length;a=this.currentPage+a;var g=this.clipHeight,f=this.options.navigation,k=this.pager,c=this.padding;a>d&&(a=d);0f&&(g=typeof a[0],"string"===g?d.name=a[0]:"number"=== +g&&(d.x=a[0]),m++);n=b.value;)b=d[++f];b&&b.color&&!this.options.color&&(this.color=b.color);return b},destroy:function(){var a=this.series.chart,d=a.hoverPoints,f;a.pointCount--;d&&(this.setState(),E(d,this),d.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)t(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this); +for(f in this)this[f]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],d,f=6;f--;)d=a[f],this[d]&&(this[d]=this[d].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var d=this.series,g=d.tooltipOptions,b=u(g.valueDecimals,""), +e=g.valuePrefix||"",l=g.valueSuffix||"";A(d.pointArrayMap||["y"],function(d){d="{point."+d;if(e||l)a=a.replace(d+"}",e+d+"}"+l);a=a.replace(d+"}",d+":,."+b+"f}")});return f(a,{point:this,series:this.series})},firePointEvent:function(a,d,f){var b=this,e=this.series.options;(e.point.events[a]||b.options&&b.options.events&&b.options.events[a])&&this.importEvents();"click"===a&&e.allowPointSelect&&(f=function(a){b.select&&b.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});m(this,a,d,f)},visible:!0}})(M); +(function(a){var C=a.addEvent,A=a.animObject,F=a.arrayMax,E=a.arrayMin,m=a.correctFloat,f=a.Date,l=a.defaultOptions,r=a.defaultPlotOptions,u=a.defined,t=a.each,g=a.erase,d=a.extend,k=a.fireEvent,b=a.grep,e=a.isArray,v=a.isNumber,y=a.isString,n=a.merge,D=a.objectEach,J=a.pick,c=a.removeEvent,G=a.splat,q=a.SVGElement,B=a.syncTimeout,K=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",radius:4, +states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{animation:{duration:50},lineWidthPlus:1,marker:{}, +halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,e,h=a.series,p;c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();d(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});e=b.events;D(e,function(a,b){C(c,b,a)});if(e&& +e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();t(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);h.length&&(p=h[h.length-1]);c._i=J(p&&p._i,-1)+1;a.orderSeries(this.insert(h))},insert:function(a){var b=this.options.index,c;if(v(b)){for(c=a.length;c--;)if(b>=J(a[c].options.index,a[c]._i)){a.splice(c+1,0,this);break}-1===c&&a.unshift(this);c+=1}else a.push(this);return J(c, +a.length-1)},bindAxes:function(){var b=this,c=b.options,e=b.chart,d;t(b.axisTypes||[],function(h){t(e[h],function(a){d=a.options;if(c[h]===d.index||void 0!==c[h]&&c[h]===d.id||void 0===c[h]&&0===d.index)b.insert(a.series),b[h]=a,a.isDirty=!0});b[h]||b.optionalAxis===h||a.error(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,d=v(b)?function(e){var d="y"===e&&c.toYData?c.toYData(a):a[e];c[e+"Data"][b]=d}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e, +2))};t(c.parallelArrays,d)},autoIncrement:function(){var a=this.options,b=this.xIncrement,c,e=a.pointIntervalUnit,b=J(b,a.pointStart,0);this.pointInterval=c=J(this.pointInterval,a.pointInterval,1);e&&(a=new f(b),"day"===e?a=+a[f.hcSetDate](a[f.hcGetDate]()+c):"month"===e?a=+a[f.hcSetMonth](a[f.hcGetMonth]()+c):"year"===e&&(a=+a[f.hcSetFullYear](a[f.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options,e=c.plotOptions,d=(b.userOptions||{}).plotOptions|| +{},p=e[this.type];this.userOptions=a;b=n(p,e.series,a);this.tooltipOptions=n(l.tooltip,l.plotOptions.series&&l.plotOptions.series.tooltip,l.plotOptions[this.type].tooltip,c.tooltip.userOptions,e.series&&e.series.tooltip,e[this.type].tooltip,a.tooltip);this.stickyTracking=J(a.stickyTracking,d[this.type]&&d[this.type].stickyTracking,d.series&&d.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:b.stickyTracking);null===p.marker&&delete b.marker;this.zoneAxis=b.zoneAxis;a=this.zones= +(b.zones||[]).slice();!b.negativeColor&&!b.negativeFillColor||b.zones||a.push({value:b[this.zoneAxis+"Threshold"]||b.threshold||0,className:"highcharts-negative",color:b.negativeColor,fillColor:b.negativeFillColor});a.length&&u(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return b},getCyclic:function(a,b,c){var e,d=this.chart,p=this.userOptions,f=a+"Index",g=a+"Counter",k=c?c.length:J(d.options.chart[a+"Count"],d[a+"Count"]);b||(e=J(p[f],p["_"+f]),u(e)||(d.series.length|| +(d[g]=0),p["_"+f]=e=d[g]%k,d[g]+=1),c&&(b=c[e]));void 0!==e&&(this[f]=e);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||r[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(b,c,d,f){var h=this,p=h.points,g=p&&p.length||0,k,q=h.options,l=h.chart,n=null,m=h.xAxis, +z=q.turboThreshold,r=this.xData,B=this.yData,I=(k=h.pointArrayMap)&&k.length;b=b||[];k=b.length;c=J(c,!0);if(!1!==f&&k&&g===k&&!h.cropped&&!h.hasGroupedData&&h.visible)t(b,function(a,b){p[b].update&&a!==q.data[b]&&p[b].update(a,!1,null,!1)});else{h.xIncrement=null;h.colorCounter=0;t(this.parallelArrays,function(a){h[a+"Data"].length=0});if(z&&k>z){for(d=0;null===n&&dk||this.forceCrop))if(c[d-1]r)c=[],e=[];else if(c[0]r)h=this.cropData(this.xData,this.yData,v,r),c=h.xData,e=h.yData,h=h.start,p=!0;for(k=c.length|| +1;--k;)d=m?q(c[k])-q(c[k-1]):c[k]-c[k-1],0d&&this.requireSorting&&a.error(15);this.cropped=p;this.cropStart=h;this.processedXData=c;this.processedYData=e;this.closestPointRange=f},cropData:function(a,b,c,e){var d=a.length,p=0,g=d,f=J(this.cropShoulder,1),k;for(k=0;k=c){p=Math.max(0,k-f);break}for(c=k;ce){g=c+f;break}return{xData:a.slice(p,g),yData:b.slice(p,g),start:p,end:g}},generatePoints:function(){var a=this.options,b=a.data,c=this.data, +e,d=this.processedXData,g=this.processedYData,f=this.pointClass,k=d.length,q=this.cropStart||0,n,l=this.hasGroupedData,a=a.keys,m,v=[],r;c||l||(c=[],c.length=b.length,c=this.data=c);a&&l&&(this.options.keys=!1);for(r=0;r=g&&(c[l]||q)<=f,k&&q)if(k=n.length)for(;k--;)null!==n[k]&&(h[p++]=n[k]);else h[p++]=n;this.dataMin= +E(h);this.dataMax=F(h)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,d=this.yAxis,g=this.points,f=g.length,k=!!this.modifyValue,q=a.pointPlacement,n="between"===q||v(q),l=a.threshold,r=a.startFromThreshold?l:0,B,y,t,G,D=Number.MAX_VALUE;"between"===q&&(q=.5);v(q)&&(q*=J(a.pointRange||c.pointRange));for(a=0;a=C&&(K.isNull=!0);K.plotX=B=m(Math.min(Math.max(-1E5,c.translate(A,0,0,0,1,q,"flags"===this.type)),1E5));b&&this.visible&&!K.isNull&&E&&E[A]&&(G=this.getStackIndicator(G,A,this.index),F=E[A],C=F.points[G.key],y=C[0],C=C[1],y===r&&G.key===E[A].base&&(y=J(l,d.min)),d.positiveValuesOnly&&0>=y&&(y=null),K.total=K.stackTotal=F.total,K.percentage=F.total&&K.y/F.total*100,K.stackY=C,F.setOffset(this.pointXOffset||0,this.barW||0));K.yBottom=u(y)?d.translate(y,0,1,0,1): +null;k&&(C=this.modifyValue(C,K));K.plotY=y="number"===typeof C&&Infinity!==C?Math.min(Math.max(-1E5,d.translate(C,0,1,0,1)),1E5):void 0;K.isInside=void 0!==y&&0<=y&&y<=d.len&&0<=B&&B<=c.len;K.clientX=n?m(c.translate(A,0,0,0,1,q)):B;K.negative=K.y<(l||0);K.category=e&&void 0!==e[K.x]?e[K.x]:K.x;K.isNull||(void 0!==t&&(D=Math.min(D,Math.abs(B-t))),t=B);K.zone=this.zones.length&&K.getZone()}this.closestPointRangePx=D},getValidPoints:function(a,c){var e=this.chart;return b(a||this.points||[],function(a){return c&& +!e.isInsidePlot(a.plotX,a.plotY,e.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,e=b.renderer,d=b.inverted,p=this.clipBox,g=p||b.clipBox,f=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),k=b[f],q=b[f+"m"];k||(a&&(g.width=0,b[f+"m"]=q=e.clipRect(-99,d?-b.plotLeft:-b.plotTop,99,d?b.chartWidth:b.chartHeight)),b[f]=k=e.clipRect(g),k.count={length:0});a&&!k.count[this.index]&&(k.count[this.index]=!0,k.count.length+=1);!1!==c.clip&& +(this.group.clip(a||p?k:b.clipRect),this.markerGroup.clip(q),this.sharedClipKey=f);a||(k.count[this.index]&&(delete k.count[this.index],--k.count.length),0===k.count.length&&f&&b[f]&&(p||(b[f]=b[f].destroy()),b[f+"m"]&&(b[f+"m"]=b[f+"m"].destroy())))},animate:function(a){var b=this.chart,c=A(this.options.animation),e;a?this.setClip(c):(e=this.sharedClipKey,(a=b[e])&&a.animate({width:b.plotSizeX},c),b[e+"m"]&&b[e+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip(); +k(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,c,e,d,f,g=this.options.marker,k,q,n,l,m=this[this.specialGroup]||this.markerGroup,r=J(g.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=2*g.radius);if(!1!==g.enabled||this._hasPointMarkers)for(e=0;ed&&b.shadow));f&&(f.startX=c.xMap,f.isArea=c.isArea)})},applyZones:function(){var a= +this,b=this.chart,c=b.renderer,e=this.zones,d,f,g=this.clips||[],k,q=this.graph,n=this.area,l=Math.max(b.chartWidth,b.chartHeight),m=this[(this.zoneAxis||"y")+"Axis"],r,v,B=b.inverted,y,u,G,D,K=!1;e.length&&(q||n)&&m&&void 0!==m.min&&(v=m.reversed,y=m.horiz,q&&q.hide(),n&&n.hide(),r=m.getExtremes(),t(e,function(e,h){d=v?y?b.plotWidth:0:y?0:m.toPixels(r.min);d=Math.min(Math.max(J(f,d),0),l);f=Math.min(Math.max(Math.round(m.toPixels(J(e.value,r.max),!0)),0),l);K&&(d=f=m.toPixels(r.max));u=Math.abs(d- +f);G=Math.min(d,f);D=Math.max(d,f);m.isXAxis?(k={x:B?D:G,y:0,width:u,height:l},y||(k.x=b.plotHeight-k.x)):(k={x:0,y:B?D:G,width:l,height:u},y&&(k.y=b.plotWidth-k.y));B&&c.isVML&&(k=m.isXAxis?{x:0,y:v?G:D,height:k.width,width:b.chartWidth}:{x:k.y-b.plotLeft-b.spacingBox.x,y:0,width:k.height,height:b.chartHeight});g[h]?g[h].animate(k):(g[h]=c.clipRect(k),q&&a["zone-graph-"+h].clip(g[h]),n&&a["zone-area-"+h].clip(g[h]));K=e.value>r.max}),this.clips=g)},invertGroups:function(a){function b(){t(["group", +"markerGroup"],function(b){c[b]&&(e.renderer.isVML&&c[b].attr({width:c.yAxis.len,height:c.xAxis.len}),c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var c=this,e=c.chart,d;c.xAxis&&(d=C(e,"resize",b),C(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,e,d){var h=this[a],f=!h;f&&(this[a]=h=this.chart.renderer.g().attr({zIndex:e||.1}).add(d));h.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+ +" "+(this.options.className||""),!0);h.attr({visibility:c})[f?"attr":"animate"](this.getPlotBox());return h},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,e=a.options,d=!!a.animate&&b.renderer.isSVG&&A(e.animation).duration,f=a.visible?"inherit":"hidden",g=e.zIndex,k=a.hasRendered,q=b.seriesGroup,n=b.inverted;c=a.plotGroup("group", +"series",f,g,q);a.markerGroup=a.plotGroup("markerGroup","markers",f,g,q);d&&a.animate(!0);c.inverted=a.isCartesian?n:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(n);!1===e.clip||a.sharedClipKey||k||c.clip(b.clipRect);d&&a.animate();k||(a.animationTimeout=B(function(){a.afterAnimate()},d));a.isDirty=!1;a.hasRendered=!0},redraw:function(){var a=this.chart, +b=this.isDirty||this.isDirtyData,c=this.group,e=this.xAxis,d=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:J(e&&e.left,a.plotLeft),translateY:J(d&&d.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,e=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:d?e.len-a.chartX+e.pos:a.chartY-e.pos},b)}, +buildKDTree:function(){function a(c,e,d){var h,f;if(f=c&&c.length)return h=b.kdAxisArray[e%d],c.sort(function(a,b){return a[h]-b[h]}),f=Math.floor(f/2),{point:c[f],left:a(c.slice(0,f),e+1,d),right:a(c.slice(f+1),e+1,d)}}this.buildingKdTree=!0;var b=this,c=-1q?"left":"right";l=0>q?"right":"left";b[n]&&(n=c(a,b[n],h+1,k),m=n[g]m;)n--; +this.updateParallelArrays(p,"splice",n,0,0);this.updateParallelArrays(p,n);h&&p.name&&(h[m]=p.name);k.splice(n,0,a);l&&(this.data.splice(n,0,null),this.processData());"point"===d.legendType&&this.generatePoints();c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(p,"shift"),k.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a,b,e){var d=this,f=d.data,g=f[a],k=d.points,h=d.chart,l=function(){k&&k.length===f.length&&k.splice(a,1);f.splice(a,1); +d.options.data.splice(a,1);d.updateParallelArrays(g||{series:d},"splice",a,1);g&&g.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&h.redraw()};c(e,h);b=y(b,!0);g?g.firePointEvent("remove",null,l):l()},remove:function(a,b,c){function e(){d.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();y(a,!0)&&f.redraw(b)}var d=this,f=d.chart;!1!==c?t(d,"remove",null,e):e()},update:function(a,b){var c=this,d=c.chart,f=c.userOptions,g=c.oldType||c.type,k=a.type||f.type||d.options.chart.type,h=J[g].prototype,n, +q=["group","markerGroup","dataLabelsGroup","navigatorSeries","baseSeries"],m=c.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(a).toString())return this.setData(a.data,b);if(k&&k!==g||void 0!==a.zIndex)q.length=0;l(q,function(a){q[a]=c[a];delete c[a]});a=e(f,m,{index:c.index,pointStart:c.xData[0]},{data:c.options.data},a);c.remove(!1,null,!1);for(n in h)c[n]=void 0;u(c,J[k||g].prototype);l(q,function(a){c[a]=q[a]});c.init(d,a);c.oldType=g;d.linkSeries();y(b,!0)&&d.redraw(!1)}}); +u(F.prototype,{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=e(this.userOptions,a);this.destroy(!0);this.init(c,u(a,{events:void 0}));c.isDirtyBox=!0;y(b,!0)&&c.redraw()},remove:function(a){for(var c=this.chart,e=this.coll,d=this.series,f=d.length;f--;)d[f]&&d[f].remove(!1);r(c.axes,this);r(c[e],this);b(c.options[e])?c.options[e].splice(this.options.index,1):delete c.options[e];l(c[e],function(a,b){a.options.index=b});this.destroy();c.isDirtyBox=!0;y(a,!0)&&c.redraw()}, +setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(M);(function(a){var C=a.color,A=a.each,F=a.map,E=a.pick,m=a.Series,f=a.seriesType;f("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(f){var l=[],m=[],t=this.xAxis,g=this.yAxis,d=g.stacks[this.stackKey],k={},b=this.index,e=g.series,v=e.length,y,n=E(g.options.reversedStacks,!0)?1:-1,D;f=f||this.points;if(this.options.stacking){for(D=0;Da&&u>f?(u=Math.max(a,f),g=2*f-u):uE&&g>f?(g=Math.max(E,f),u=2*f-g):g=Math.abs(d)&&.5a.closestPointRange*a.xAxis.transA,b=a.borderWidth=l(f.borderWidth,b?0:1),e=a.yAxis, +m=a.translatedThreshold=e.getThreshold(f.threshold),t=l(f.minPointLength,5),n=a.getColumnMetrics(),u=n.width,A=a.barW=Math.max(u,1+2*b),c=a.pointXOffset=n.offset;d.inverted&&(m-=.5);f.pointPadding&&(A=Math.ceil(A));r.prototype.translate.apply(a);F(a.points,function(b){var f=l(b.yBottom,m),g=999+Math.abs(f),g=Math.min(Math.max(-g,b.plotY),e.len+g),k=b.plotX+c,n=A,r=Math.min(g,f),v,y=Math.max(g,f)-r;Math.abs(y)t?f-t:m-(v? +t:0));b.barX=k;b.pointWidth=u;b.tooltipPos=d.inverted?[e.len+e.pos-d.plotLeft-g,a.xAxis.len-k-n/2,y]:[k+n/2,g+e.pos-d.plotTop,y];b.shapeType="rect";b.shapeArgs=a.crispCol.apply(a,b.isNull?[k,m,n,0]:[k,r,n,y])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,d){var g=this.options,b,e=this.pointAttrToOptions||{};b=e.stroke||"borderColor";var l=e["stroke-width"]|| +"borderWidth",m=a&&a.color||this.color,n=a[b]||g[b]||this.color||m,r=a[l]||g[l]||this[l]||0,e=g.dashStyle;a&&this.zones.length&&(m=a.getZone(),m=a.options.color||m&&m.color||this.color);d&&(a=f(g.states[d],a.options.states&&a.options.states[d]||{}),d=a.brightness,m=a.color||void 0!==d&&A(m).brighten(a.brightness).get()||m,n=a[b]||n,r=a[l]||r,e=a.dashStyle||e);b={fill:m,stroke:n,"stroke-width":r};e&&(b.dashstyle=e);return b},drawPoints:function(){var a=this,d=this.chart,k=a.options,b=d.renderer,e= +k.animationLimit||250,l;F(a.points,function(g){var n=g.graphic;if(m(g.plotY)&&null!==g.y){l=g.shapeArgs;if(n)n[d.pointCountu;++u)t=l[u],a=2>u||2===u&&/%$/.test(t),l[u]=A(t,[f,E,r,l[2]][u])+(a?m:0);l[3]>l[2]&&(l[3]=l[2]);return l}}})(M); +(function(a){var C=a.addEvent,A=a.defined,F=a.each,E=a.extend,m=a.inArray,f=a.noop,l=a.pick,r=a.Point,u=a.Series,t=a.seriesType,g=a.setAnimation;t("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1, +shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var d=this,b=d.points,e=d.startAngleRad;a||(F(b,function(a){var b=a.graphic,f=a.shapeArgs;b&&(b.attr({r:a.startR||d.center[3]/2,start:e,end:e}),b.animate({r:f.r,start:f.start,end:f.end},d.options.animation))}),d.animate=null)},updateTotals:function(){var a,f=0,b=this.points,e=b.length,g, +l=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?m-=2*Math.PI:m<-Math.PI/2&&(m+=2*Math.PI);z.slicedTranslation={translateX:Math.round(Math.cos(m)*e),translateY:Math.round(Math.sin(m)*e)};n=Math.cos(m)*a[2]/2;q=Math.sin(m)*a[2]/2;z.tooltipPos=[a[0]+.7*n,a[1]+.7*q];z.half=m<-Math.PI/2||m>Math.PI/2?1:0;z.angle=m;g=Math.min(f,z.labelDistance/5);z.labelPos=[a[0]+n+Math.cos(m)*z.labelDistance,a[1]+q+Math.sin(m)*z.labelDistance,a[0]+n+Math.cos(m)* +g,a[1]+q+Math.sin(m)*g,a[0]+n,a[1]+q,0>z.labelDistance?"center":z.half?"right":"left",m]}},drawGraph:null,drawPoints:function(){var a=this,f=a.chart.renderer,b,e,g,l,n=a.options.shadow;n&&!a.shadowGroup&&(a.shadowGroup=f.g("shadow").add(a.group));F(a.points,function(d){if(!d.isNull){e=d.graphic;l=d.shapeArgs;b=d.getTranslate();var k=d.shadowGroup;n&&!k&&(k=d.shadowGroup=f.g("shadow").add(a.shadowGroup));k&&k.attr(b);g=a.pointAttribs(d,d.selected&&"select");e?e.setRadialReference(a.center).attr(g).animate(E(l, +b)):(d.graphic=e=f[d.shapeType](l).setRadialReference(a.center).attr(b).add(a.group),d.visible||e.attr({visibility:"hidden"}),e.attr(g).attr({"stroke-linejoin":"round"}).shadow(n,k));e.addClass(d.getClassName())}})},searchPoint:f,sortByAngle:function(a,f){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*f})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:f},{init:function(){r.prototype.init.apply(this,arguments);var a=this,f;a.name= +l(a.name,"Slice");f=function(b){a.slice("select"===b.type)};C(a,"select",f);C(a,"unselect",f);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,f){var b=this,e=b.series,d=e.chart,g=e.options.ignoreHiddenPoint;f=l(f,g);a!==b.visible&&(b.visible=b.options.visible=a=void 0===a?!b.visible:a,e.options.data[m(b,e.data)]=b.options,F(["graphic","dataLabel","connector","shadowGroup"],function(e){if(b[e])b[e][a?"show":"hide"](!0)}),b.legendItem&&d.legend.colorizeItem(b, +a),a||"hover"!==b.state||b.setState(""),g&&(e.isDirty=!0),f&&d.redraw())},slice:function(a,f,b){var e=this.series;g(b,e.chart);l(f,!0);this.sliced=this.options.sliced=A(a)?a:!this.sliced;e.options.data[m(this,e.data)]=this.options;this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var d=this.shapeArgs;return this.sliced||!this.visible? +[]:this.series.chart.renderer.symbols.arc(d.x,d.y,d.r+a,d.r+a,{innerR:this.shapeArgs.r,start:d.start,end:d.end})}})})(M);(function(a){var C=a.addEvent,A=a.arrayMax,F=a.defined,E=a.each,m=a.extend,f=a.format,l=a.map,r=a.merge,u=a.noop,t=a.pick,g=a.relativeLength,d=a.Series,k=a.seriesTypes,b=a.stableSort;a.distribute=function(a,d){function e(a,b){return a.target-b.target}var f,g=!0,k=a,c=[],m;m=0;for(f=a.length;f--;)m+=a[f].size;if(m>d){b(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(m=f=0;m<= +d;)m+=a[f].size,f++;c=a.splice(f-1,a.length)}b(a,e);for(a=l(a,function(a){return{size:a.size,targets:[a.target]}});g;){for(f=a.length;f--;)g=a[f],m=(Math.min.apply(0,g.targets)+Math.max.apply(0,g.targets))/2,g.pos=Math.min(Math.max(0,m-g.size/2),d-g.size);f=a.length;for(g=!1;f--;)0a[f].pos&&(a[f-1].size+=a[f].size,a[f-1].targets=a[f-1].targets.concat(a[f].targets),a[f-1].pos+a[f-1].size>d&&(a[f-1].pos=d-a[f-1].size),a.splice(f,1),g=!0)}f=0;E(a,function(a){var b=0;E(a.targets, +function(){k[f].pos=a.pos+b;b+=k[f].size;f++})});k.push.apply(k,c);b(k,e)};d.prototype.drawDataLabels=function(){var b=this,d=b.options,g=d.dataLabels,k=b.points,l,m,c=b.hasRendered||0,u,q,B=t(g.defer,!!d.animation),A=b.chart.renderer;if(g.enabled||b._hasPointLabels)b.dlProcessOptions&&b.dlProcessOptions(g),q=b.plotGroup("dataLabelsGroup","data-labels",B&&!c?"hidden":"visible",g.zIndex||6),B&&(q.attr({opacity:+c}),c||C(b,"afterAnimate",function(){b.visible&&q.show(!0);q[d.animation?"animate":"attr"]({opacity:1}, +{duration:200})})),m=g,E(k,function(c){var e,k=c.dataLabel,n,h,p=c.connector,v=!k,B;l=c.dlOptions||c.options&&c.options.dataLabels;if(e=t(l&&l.enabled,m.enabled)&&null!==c.y)g=r(m,l),n=c.getLabelConfig(),u=g.format?f(g.format,n):g.formatter.call(n,g),B=g.style,n=g.rotation,B.color=t(g.color,B.color,b.color,"#000000"),"contrast"===B.color&&(c.contrastColor=A.getContrast(c.color||b.color),B.color=g.inside||0>t(c.labelDistance,g.distance)||d.stacking?c.contrastColor:"#000000"),d.cursor&&(B.cursor=d.cursor), +h={fill:g.backgroundColor,stroke:g.borderColor,"stroke-width":g.borderWidth,r:g.borderRadius||0,rotation:n,padding:g.padding,zIndex:1},a.objectEach(h,function(a,b){void 0===a&&delete h[b]});!k||e&&F(u)?e&&F(u)&&(k?h.text=u:(k=c.dataLabel=A[n?"text":"label"](u,0,-9999,g.shape,null,null,g.useHTML,null,"data-label"),k.addClass("highcharts-data-label-color-"+c.colorIndex+" "+(g.className||"")+(g.useHTML?"highcharts-tracker":""))),k.attr(h),k.css(B).shadow(g.shadow),k.added||k.add(q),b.alignDataLabel(c, +k,g,null,v)):(c.dataLabel=k=k.destroy(),p&&(c.connector=p.destroy()))})};d.prototype.alignDataLabel=function(a,b,d,f,g){var e=this.chart,c=e.inverted,k=t(a.plotX,-9999),l=t(a.plotY,-9999),n=b.getBBox(),r,p=d.rotation,v=d.align,u=this.visible&&(a.series.forceDL||e.isInsidePlot(k,Math.round(l),c)||f&&e.isInsidePlot(k,c?f.x+1:f.y+f.height-1,c)),y="justify"===t(d.overflow,"justify");if(u&&(r=d.style.fontSize,r=e.renderer.fontMetrics(r,b).b,f=m({x:c?this.yAxis.len-l:k,y:Math.round(c?this.xAxis.len-k:l), +width:0,height:0},f),m(d,{width:n.width,height:n.height}),p?(y=!1,k=e.renderer.rotCorr(r,p),k={x:f.x+d.x+f.width/2+k.x,y:f.y+d.y+{top:0,middle:.5,bottom:1}[d.verticalAlign]*f.height},b[g?"attr":"animate"](k).attr({align:v}),l=(p+720)%360,l=180l,"left"===v?k.y-=l?n.height:0:"center"===v?(k.x-=n.width/2,k.y-=n.height/2):"right"===v&&(k.x-=n.width,k.y-=l?0:n.height)):(b.align(d,null,f),k=b.alignAttr),y?a.isLabelJustified=this.justifyDataLabel(b,d,k,n,f,g):t(d.crop,!0)&&(u=e.isInsidePlot(k.x, +k.y)&&e.isInsidePlot(k.x+n.width,k.y+n.height)),d.shape&&!p))b[g?"attr":"animate"]({anchorX:c?e.plotWidth-a.plotY:a.plotX,anchorY:c?e.plotHeight-a.plotX:a.plotY});u||(b.attr({y:-9999}),b.placed=!1)};d.prototype.justifyDataLabel=function(a,b,d,f,g,k){var c=this.chart,e=b.align,l=b.verticalAlign,m,n,p=a.box?0:a.padding||0;m=d.x+p;0>m&&("right"===e?b.align="left":b.x=-m,n=!0);m=d.x+f.width-p;m>c.plotWidth&&("left"===e?b.align="right":b.x=c.plotWidth-m,n=!0);m=d.y+p;0>m&&("bottom"===l?b.verticalAlign= +"top":b.y=-m,n=!0);m=d.y+f.height-p;m>c.plotHeight&&("top"===l?b.verticalAlign="bottom":b.y=c.plotHeight-m,n=!0);n&&(a.placed=!k,a.align(b,null,g));return n};k.pie&&(k.pie.prototype.drawDataLabels=function(){var b=this,f=b.data,g,k=b.chart,l=b.options.dataLabels,m=t(l.connectorPadding,10),c=t(l.connectorWidth,1),r=k.plotWidth,q=k.plotHeight,u,C=b.center,p=C[2]/2,z=C[1],I,L,h,w,M=[[],[]],H,O,Q,R,x=[0,0,0,0];b.visible&&(l.enabled||b._hasPointLabels)&&(E(f,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&& +(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),d.prototype.drawDataLabels.apply(b),E(f,function(a){a.dataLabel&&a.visible&&(M[a.half].push(a),a.dataLabel._pos=null)}),E(M,function(c,d){var e,f,n=c.length,v=[],u;if(n)for(b.sortByAngle(c,d-.5),0g.bottom-2?e:O,d,g),I._attr={visibility:Q,align:h[6]}, +I._pos={x:H+l.x+({left:m,right:-m}[h[6]]||0),y:O+l.y-10},h.x=H,h.y=O,t(l.crop,!0)&&(L=I.getBBox().width,e=null,H-Lr-m&&(e=Math.round(H+L-r+m),x[1]=Math.max(e,x[1])),0>O-w/2?x[0]=Math.max(Math.round(-O+w/2),x[0]):O+w/2>q&&(x[2]=Math.max(Math.round(O+w/2-q),x[2])),I.sideOverflow=e)}),0===A(x)||this.verifyDataLabelOverflow(x))&&(this.placeDataLabels(),c&&E(this.points,function(a){var e;u=a.connector;if((I=a.dataLabel)&&I._pos&&a.visible&&0t(this.translatedThreshold,c.yAxis.len)),n=t(f.inside,!!this.options.stacking);l&&(g=r(l),0>g.y&&(g.height+=g.y,g.y=0),l=g.y+g.height-c.yAxis.len,0a+d||e+gb+c||f+kthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,e;d&&l(d,function(a){a.setState()});l("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],h=(b.pointRange||0)/2,k=b.getExtremes(),l=b.toValue(g-f,!0)+h,h=b.toValue(g+ +b.len-f,!0)-h,m=h=f(m.minWidth,0)&&this.chartHeight>=f(m.minHeight,0)}).call(this)&& +l.push(a._id)};C.prototype.currentOptions=function(f){function r(f,d,k,b){var e;a.objectEach(f,function(a,g){if(!b&&-1 + /// Perform an asynchronous HTTP (Ajax) request. + /// A string containing the URL to which the request is sent. + /// A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings. + /// + /// + /// + /// Perform an asynchronous HTTP (Ajax) request. + /// A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). + /// + /// + }, + 'ajaxPrefilter': function() { + /// + /// Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). + /// An optional string containing one or more space-separated dataTypes + /// A handler to set default values for future Ajax requests. + /// + }, + 'ajaxSetup': function() { + /// + /// Set default values for future Ajax requests. + /// A set of key/value pairs that configure the default Ajax request. All options are optional. + /// + }, + 'boxModel': function() { + /// Deprecated in jQuery 1.3 (see jQuery.support). States if the current page, in the user's browser, is being rendered using the W3C CSS Box Model. + /// + }, + 'browser': function() { + /// Contains flags for the useragent, read from navigator.userAgent. We recommend against using this property; please try to use feature detection instead (see jQuery.support). jQuery.browser may be moved to a plugin in a future release of jQuery. + /// + }, + 'browser.version': function() { + /// The version number of the rendering engine for the user's browser. + /// + }, + 'Callbacks': function() { + /// + /// A multi-purpose callbacks list object that provides a powerful way to manage callback lists. + /// An optional list of space-separated flags that change how the callback list behaves. + /// + }, + 'contains': function() { + /// + /// Check to see if a DOM element is within another DOM element. + /// The DOM element that may contain the other element. + /// The DOM element that may be contained by the other element. + /// + /// + }, + 'cssHooks': function() { + /// Hook directly into jQuery to override how particular CSS properties are retrieved or set, normalize CSS property naming, or create custom properties. + /// + }, + 'data': function() { + /// + /// Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. + /// The DOM element to query for the data. + /// Name of the data stored. + /// + /// + /// + /// Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. + /// The DOM element to query for the data. + /// + /// + }, + 'dequeue': function() { + /// + /// Execute the next function on the queue for the matched element. + /// A DOM element from which to remove and execute a queued function. + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + }, + 'each': function() { + /// + /// A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. + /// The object or array to iterate over. + /// The function that will be executed on every object. + /// + /// + }, + 'error': function() { + /// + /// Takes a string and throws an exception containing it. + /// The message to send out. + /// + }, + 'extend': function() { + /// + /// Merge the contents of two or more objects together into the first object. + /// An object that will receive the new properties if additional objects are passed in or that will extend the jQuery namespace if it is the sole argument. + /// An object containing additional properties to merge in. + /// Additional objects containing properties to merge in. + /// + /// + /// + /// Merge the contents of two or more objects together into the first object. + /// If true, the merge becomes recursive (aka. deep copy). + /// The object to extend. It will receive the new properties. + /// An object containing additional properties to merge in. + /// Additional objects containing properties to merge in. + /// + /// + }, + 'get': function() { + /// + /// Load data from the server using a HTTP GET request. + /// A string containing the URL to which the request is sent. + /// A map or string that is sent to the server with the request. + /// A callback function that is executed if the request succeeds. + /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). + /// + /// + }, + 'getJSON': function() { + /// + /// Load JSON-encoded data from the server using a GET HTTP request. + /// A string containing the URL to which the request is sent. + /// A map or string that is sent to the server with the request. + /// A callback function that is executed if the request succeeds. + /// + /// + }, + 'getScript': function() { + /// + /// Load a JavaScript file from the server using a GET HTTP request, then execute it. + /// A string containing the URL to which the request is sent. + /// A callback function that is executed if the request succeeds. + /// + /// + }, + 'globalEval': function() { + /// + /// Execute some JavaScript code globally. + /// The JavaScript code to execute. + /// + }, + 'grep': function() { + /// + /// Finds the elements of an array which satisfy a filter function. The original array is not affected. + /// The array to search through. + /// The function to process each item against. The first argument to the function is the item, and the second argument is the index. The function should return a Boolean value. this will be the global window object. + /// If "invert" is false, or not provided, then the function returns an array consisting of all elements for which "callback" returns true. If "invert" is true, then the function returns an array consisting of all elements for which "callback" returns false. + /// + /// + }, + 'hasData': function() { + /// + /// Determine whether an element has any jQuery data associated with it. + /// A DOM element to be checked for data. + /// + /// + }, + 'holdReady': function() { + /// + /// Holds or releases the execution of jQuery's ready event. + /// Indicates whether the ready hold is being requested or released + /// + }, + 'inArray': function() { + /// + /// Search for a specified value within an array and return its index (or -1 if not found). + /// The value to search for. + /// An array through which to search. + /// The index of the array at which to begin the search. The default is 0, which will search the whole array. + /// + /// + }, + 'isArray': function() { + /// + /// Determine whether the argument is an array. + /// Object to test whether or not it is an array. + /// + /// + }, + 'isEmptyObject': function() { + /// + /// Check to see if an object is empty (contains no properties). + /// The object that will be checked to see if it's empty. + /// + /// + }, + 'isFunction': function() { + /// + /// Determine if the argument passed is a Javascript function object. + /// Object to test whether or not it is a function. + /// + /// + }, + 'isNumeric': function() { + /// + /// Determines whether its argument is a number. + /// The value to be tested. + /// + /// + }, + 'isPlainObject': function() { + /// + /// Check to see if an object is a plain object (created using "{}" or "new Object"). + /// The object that will be checked to see if it's a plain object. + /// + /// + }, + 'isWindow': function() { + /// + /// Determine whether the argument is a window. + /// Object to test whether or not it is a window. + /// + /// + }, + 'isXMLDoc': function() { + /// + /// Check to see if a DOM node is within an XML document (or is an XML document). + /// The DOM node that will be checked to see if it's in an XML document. + /// + /// + }, + 'makeArray': function() { + /// + /// Convert an array-like object into a true JavaScript array. + /// Any object to turn into a native Array. + /// + /// + }, + 'map': function() { + /// + /// Translate all items in an array or object to new array of items. + /// The Array to translate. + /// The function to process each item against. The first argument to the function is the array item, the second argument is the index in array The function can return any value. Within the function, this refers to the global (window) object. + /// + /// + /// + /// Translate all items in an array or object to new array of items. + /// The Array or Object to translate. + /// The function to process each item against. The first argument to the function is the value; the second argument is the index or key of the array or object property. The function can return any value to add to the array. A returned array will be flattened into the resulting array. Within the function, this refers to the global (window) object. + /// + /// + }, + 'merge': function() { + /// + /// Merge the contents of two arrays together into the first array. + /// The first array to merge, the elements of second added. + /// The second array to merge into the first, unaltered. + /// + /// + }, + 'noConflict': function() { + /// + /// Relinquish jQuery's control of the $ variable. + /// A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself). + /// + /// + }, + 'noop': function() { + /// An empty function. + /// + }, + 'now': function() { + /// Return a number representing the current time. + /// + }, + 'param': function() { + /// + /// Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. + /// An array or object to serialize. + /// + /// + /// + /// Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. + /// An array or object to serialize. + /// A Boolean indicating whether to perform a traditional "shallow" serialization. + /// + /// + }, + 'parseJSON': function() { + /// + /// Takes a well-formed JSON string and returns the resulting JavaScript object. + /// The JSON string to parse. + /// + /// + }, + 'parseXML': function() { + /// + /// Parses a string into an XML document. + /// a well-formed XML string to be parsed + /// + /// + }, + 'post': function() { + /// + /// Load data from the server using a HTTP POST request. + /// A string containing the URL to which the request is sent. + /// A map or string that is sent to the server with the request. + /// A callback function that is executed if the request succeeds. + /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + /// + /// + }, + 'proxy': function() { + /// + /// Takes a function and returns a new one that will always have a particular context. + /// The function whose context will be changed. + /// The object to which the context (this) of the function should be set. + /// + /// + /// + /// Takes a function and returns a new one that will always have a particular context. + /// The object to which the context of the function should be set. + /// The name of the function whose context will be changed (should be a property of the context object). + /// + /// + }, + 'queue': function() { + /// + /// Manipulate the queue of functions to be executed on the matched element. + /// A DOM element where the array of queued functions is attached. + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// An array of functions to replace the current queue contents. + /// + /// + /// + /// Manipulate the queue of functions to be executed on the matched element. + /// A DOM element on which to add a queued function. + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// The new function to add to the queue. + /// + /// + }, + 'removeData': function() { + /// + /// Remove a previously-stored piece of data. + /// A DOM element from which to remove data. + /// A string naming the piece of data to remove. + /// + /// + }, + 'sub': function() { + /// Creates a new copy of jQuery whose properties and methods can be modified without affecting the original jQuery object. + /// + }, + 'support': function() { + /// A collection of properties that represent the presence of different browser features or bugs. Primarily intended for jQuery's internal use; specific properties may be removed when they are no longer needed internally to improve page startup performance. + /// + }, + 'trim': function() { + /// + /// Remove the whitespace from the beginning and end of a string. + /// The string to trim. + /// + /// + }, + 'type': function() { + /// + /// Determine the internal JavaScript [[Class]] of an object. + /// Object to get the internal JavaScript [[Class]] of. + /// + /// + }, + 'unique': function() { + /// + /// Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers. + /// The Array of DOM elements. + /// + /// + }, + 'when': function() { + /// + /// Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events. + /// One or more Deferred objects, or plain JavaScript objects. + /// + /// + }, +}); + +var _1228819969 = jQuery.Callbacks; +jQuery.Callbacks = function(flags) { +var _object = _1228819969(flags); +intellisense.annotate(_object, { + 'add': function() { + /// + /// Add a callback or a collection of callbacks to a callback list. + /// A function, or array of functions, that are to be added to the callback list. + /// + }, + 'disable': function() { + /// Disable a callback list from doing anything more. + }, + 'empty': function() { + /// Remove all of the callbacks from a list. + }, + 'fire': function() { + /// + /// Call all of the callbacks with the given arguments + /// The argument or list of arguments to pass back to the callback list. + /// + }, + 'fired': function() { + /// Determine if the callbacks have already been called at least once. + /// + }, + 'fireWith': function() { + /// + /// Call all callbacks in a list with the given context and arguments. + /// A reference to the context in which the callbacks in the list should be fired. + /// An argument, or array of arguments, to pass to the callbacks in the list. + /// + }, + 'has': function() { + /// + /// Determine whether a supplied callback is in a list + /// The callback to search for. + /// + /// + }, + 'lock': function() { + /// Lock a callback list in its current state. + }, + 'locked': function() { + /// Determine if the callbacks list has been locked. + /// + }, + 'remove': function() { + /// + /// Remove a callback or a collection of callbacks from a callback list. + /// A function, or array of functions, that are to be removed from the callback list. + /// + }, +}); + +return _object; +}; + +var _731531622 = jQuery.Deferred; +jQuery.Deferred = function(func) { +var _object = _731531622(func); +intellisense.annotate(_object, { + 'always': function() { + /// + /// Add handlers to be called when the Deferred object is either resolved or rejected. + /// A function, or array of functions, that is called when the Deferred is resolved or rejected. + /// Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected. + /// + /// + }, + 'done': function() { + /// + /// Add handlers to be called when the Deferred object is resolved. + /// A function, or array of functions, that are called when the Deferred is resolved. + /// Optional additional functions, or arrays of functions, that are called when the Deferred is resolved. + /// + /// + }, + 'fail': function() { + /// + /// Add handlers to be called when the Deferred object is rejected. + /// A function, or array of functions, that are called when the Deferred is rejected. + /// Optional additional functions, or arrays of functions, that are called when the Deferred is rejected. + /// + /// + }, + 'isRejected': function() { + /// Determine whether a Deferred object has been rejected. + /// + }, + 'isResolved': function() { + /// Determine whether a Deferred object has been resolved. + /// + }, + 'notify': function() { + /// + /// Call the progressCallbacks on a Deferred object with the given args. + /// Optional arguments that are passed to the progressCallbacks. + /// + /// + }, + 'notifyWith': function() { + /// + /// Call the progressCallbacks on a Deferred object with the given context and args. + /// Context passed to the progressCallbacks as the this object. + /// Optional arguments that are passed to the progressCallbacks. + /// + /// + }, + 'pipe': function() { + /// + /// Utility method to filter and/or chain Deferreds. + /// An optional function that is called when the Deferred is resolved. + /// An optional function that is called when the Deferred is rejected. + /// + /// + /// + /// Utility method to filter and/or chain Deferreds. + /// An optional function that is called when the Deferred is resolved. + /// An optional function that is called when the Deferred is rejected. + /// An optional function that is called when progress notifications are sent to the Deferred. + /// + /// + }, + 'progress': function() { + /// + /// Add handlers to be called when the Deferred object generates progress notifications. + /// A function, or array of functions, that is called when the Deferred generates progress notifications. + /// + /// + }, + 'promise': function() { + /// + /// Return a Deferred's Promise object. + /// Object onto which the promise methods have to be attached + /// + /// + }, + 'reject': function() { + /// + /// Reject a Deferred object and call any failCallbacks with the given args. + /// Optional arguments that are passed to the failCallbacks. + /// + /// + }, + 'rejectWith': function() { + /// + /// Reject a Deferred object and call any failCallbacks with the given context and args. + /// Context passed to the failCallbacks as the this object. + /// An optional array of arguments that are passed to the failCallbacks. + /// + /// + }, + 'resolve': function() { + /// + /// Resolve a Deferred object and call any doneCallbacks with the given args. + /// Optional arguments that are passed to the doneCallbacks. + /// + /// + }, + 'resolveWith': function() { + /// + /// Resolve a Deferred object and call any doneCallbacks with the given context and args. + /// Context passed to the doneCallbacks as the this object. + /// An optional array of arguments that are passed to the doneCallbacks. + /// + /// + }, + 'state': function() { + /// Determine the current state of a Deferred object. + /// + }, + 'then': function() { + /// + /// Add handlers to be called when the Deferred object is resolved or rejected. + /// A function, or array of functions, called when the Deferred is resolved. + /// A function, or array of functions, called when the Deferred is rejected. + /// + /// + /// + /// Add handlers to be called when the Deferred object is resolved or rejected. + /// A function, or array of functions, called when the Deferred is resolved. + /// A function, or array of functions, called when the Deferred is rejected. + /// A function, or array of functions, called when the Deferred notifies progress. + /// + /// + }, +}); + +return _object; +}; + +intellisense.annotate(jQuery.Event.prototype, { + 'currentTarget': function() { + /// The current DOM element within the event bubbling phase. + /// + }, + 'data': function() { + /// An optional data map passed to an event method when the current executing handler is bound. + }, + 'delegateTarget': function() { + /// The element where the currently-called jQuery event handler was attached. + /// + }, + 'isDefaultPrevented': function() { + /// Returns whether event.preventDefault() was ever called on this event object. + /// + }, + 'isImmediatePropagationStopped': function() { + /// Returns whether event.stopImmediatePropagation() was ever called on this event object. + /// + }, + 'isPropagationStopped': function() { + /// Returns whether event.stopPropagation() was ever called on this event object. + /// + }, + 'namespace': function() { + /// The namespace specified when the event was triggered. + /// + }, + 'pageX': function() { + /// The mouse position relative to the left edge of the document. + /// + }, + 'pageY': function() { + /// The mouse position relative to the top edge of the document. + /// + }, + 'preventDefault': function() { + /// If this method is called, the default action of the event will not be triggered. + }, + 'relatedTarget': function() { + /// The other DOM element involved in the event, if any. + /// + }, + 'result': function() { + /// The last value returned by an event handler that was triggered by this event, unless the value was undefined. + /// + }, + 'stopImmediatePropagation': function() { + /// Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. + }, + 'stopPropagation': function() { + /// Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. + }, + 'target': function() { + /// The DOM element that initiated the event. + /// + }, + 'timeStamp': function() { + /// The difference in milliseconds between the time the browser created the event and January 1, 1970. + /// + }, + 'type': function() { + /// Describes the nature of the event. + /// + }, + 'which': function() { + /// For key or mouse events, this property indicates the specific key or button that was pressed. + /// + }, +}); + +intellisense.annotate(jQuery.fn, { + 'add': function() { + /// + /// Add elements to the set of matched elements. + /// A string representing a selector expression to find additional elements to add to the set of matched elements. + /// + /// + /// + /// Add elements to the set of matched elements. + /// One or more elements to add to the set of matched elements. + /// + /// + /// + /// Add elements to the set of matched elements. + /// An HTML fragment to add to the set of matched elements. + /// + /// + /// + /// Add elements to the set of matched elements. + /// An existing jQuery object to add to the set of matched elements. + /// + /// + /// + /// Add elements to the set of matched elements. + /// A string representing a selector expression to find additional elements to add to the set of matched elements. + /// The point in the document at which the selector should begin matching; similar to the context argument of the $(selector, context) method. + /// + /// + }, + 'addClass': function() { + /// + /// Adds the specified class(es) to each of the set of matched elements. + /// One or more class names to be added to the class attribute of each matched element. + /// + /// + /// + /// Adds the specified class(es) to each of the set of matched elements. + /// A function returning one or more space-separated class names to be added to the existing class name(s). Receives the index position of the element in the set and the existing class name(s) as arguments. Within the function, this refers to the current element in the set. + /// + /// + }, + 'after': function() { + /// + /// Insert content, specified by the parameter, after each element in the set of matched elements. + /// HTML string, DOM element, or jQuery object to insert after each element in the set of matched elements. + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert after each element in the set of matched elements. + /// + /// + /// + /// Insert content, specified by the parameter, after each element in the set of matched elements. + /// A function that returns an HTML string, DOM element(s), or jQuery object to insert after each element in the set of matched elements. Receives the index position of the element in the set as an argument. Within the function, this refers to the current element in the set. + /// + /// + }, + 'ajaxComplete': function() { + /// + /// Register a handler to be called when Ajax requests complete. This is an Ajax Event. + /// The function to be invoked. + /// + /// + }, + 'ajaxError': function() { + /// + /// Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. + /// The function to be invoked. + /// + /// + }, + 'ajaxSend': function() { + /// + /// Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. + /// The function to be invoked. + /// + /// + }, + 'ajaxStart': function() { + /// + /// Register a handler to be called when the first Ajax request begins. This is an Ajax Event. + /// The function to be invoked. + /// + /// + }, + 'ajaxStop': function() { + /// + /// Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. + /// The function to be invoked. + /// + /// + }, + 'ajaxSuccess': function() { + /// + /// Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. + /// The function to be invoked. + /// + /// + }, + 'all': function() { + /// Selects all elements. + }, + 'andSelf': function() { + /// Add the previous set of elements on the stack to the current set. + /// + }, + 'animate': function() { + /// + /// Perform a custom animation of a set of CSS properties. + /// A map of CSS properties that the animation will move toward. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + /// + /// Perform a custom animation of a set of CSS properties. + /// A map of CSS properties that the animation will move toward. + /// A map of additional options to pass to the method. Supported keys: duration: A string or number determining how long the animation will run.easing: A string indicating which easing function to use for the transition.complete: A function to call once the animation is complete.step: A function to be called after each step of the animation.queue: A Boolean indicating whether to place the animation in the effects queue. If false, the animation will begin immediately. As of jQuery 1.7, the queue option can also accept a string, in which case the animation is added to the queue represented by that string.specialEasing: A map of one or more of the CSS properties defined by the properties argument and their corresponding easing functions (added 1.4). + /// + /// + }, + 'animated': function() { + /// Select all elements that are in the progress of an animation at the time the selector is run. + }, + 'append': function() { + /// + /// Insert content, specified by the parameter, to the end of each element in the set of matched elements. + /// DOM element, HTML string, or jQuery object to insert at the end of each element in the set of matched elements. + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the end of each element in the set of matched elements. + /// + /// + /// + /// Insert content, specified by the parameter, to the end of each element in the set of matched elements. + /// A function that returns an HTML string, DOM element(s), or jQuery object to insert at the end of each element in the set of matched elements. Receives the index position of the element in the set and the old HTML value of the element as arguments. Within the function, this refers to the current element in the set. + /// + /// + }, + 'appendTo': function() { + /// + /// Insert every element in the set of matched elements to the end of the target. + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the end of the element(s) specified by this parameter. + /// + /// + }, + 'attr': function() { + /// + /// Set one or more attributes for the set of matched elements. + /// The name of the attribute to set. + /// A value to set for the attribute. + /// + /// + /// + /// Set one or more attributes for the set of matched elements. + /// A map of attribute-value pairs to set. + /// + /// + /// + /// Set one or more attributes for the set of matched elements. + /// The name of the attribute to set. + /// A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old attribute value as arguments. + /// + /// + }, + 'attributeContains': function() { + /// + /// Selects elements that have the specified attribute with a value containing the a given substring. + /// An attribute name. + /// An attribute value. Can be either an unquoted single word or a quoted string. + /// + }, + 'attributeContainsPrefix': function() { + /// + /// Selects elements that have the specified attribute with a value either equal to a given string or starting with that string followed by a hyphen (-). + /// An attribute name. + /// An attribute value. Can be either an unquoted single word or a quoted string. + /// + }, + 'attributeContainsWord': function() { + /// + /// Selects elements that have the specified attribute with a value containing a given word, delimited by spaces. + /// An attribute name. + /// An attribute value. Can be either an unquoted single word or a quoted string. + /// + }, + 'attributeEndsWith': function() { + /// + /// Selects elements that have the specified attribute with a value ending exactly with a given string. The comparison is case sensitive. + /// An attribute name. + /// An attribute value. Can be either an unquoted single word or a quoted string. + /// + }, + 'attributeEquals': function() { + /// + /// Selects elements that have the specified attribute with a value exactly equal to a certain value. + /// An attribute name. + /// An attribute value. Can be either an unquoted single word or a quoted string. + /// + }, + 'attributeHas': function() { + /// + /// Selects elements that have the specified attribute, with any value. + /// An attribute name. + /// + }, + 'attributeMultiple': function() { + /// + /// Matches elements that match all of the specified attribute filters. + /// An attribute filter. + /// Another attribute filter, reducing the selection even more + /// As many more attribute filters as necessary + /// + }, + 'attributeNotEqual': function() { + /// + /// Select elements that either don't have the specified attribute, or do have the specified attribute but not with a certain value. + /// An attribute name. + /// An attribute value. Can be either an unquoted single word or a quoted string. + /// + }, + 'attributeStartsWith': function() { + /// + /// Selects elements that have the specified attribute with a value beginning exactly with a given string. + /// An attribute name. + /// An attribute value. Can be either an unquoted single word or a quoted string. + /// + }, + 'before': function() { + /// + /// Insert content, specified by the parameter, before each element in the set of matched elements. + /// HTML string, DOM element, or jQuery object to insert before each element in the set of matched elements. + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert before each element in the set of matched elements. + /// + /// + /// + /// Insert content, specified by the parameter, before each element in the set of matched elements. + /// A function that returns an HTML string, DOM element(s), or jQuery object to insert before each element in the set of matched elements. Receives the index position of the element in the set as an argument. Within the function, this refers to the current element in the set. + /// + /// + }, + 'bind': function() { + /// + /// Attach a handler to an event for the elements. + /// A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Attach a handler to an event for the elements. + /// A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + /// A map of data that will be passed to the event handler. + /// Setting the third argument to false will attach a function that prevents the default action from occurring and stops the event from bubbling. The default is true. + /// + /// + /// + /// Attach a handler to an event for the elements. + /// A map of one or more DOM event types and functions to execute for them. + /// + /// + }, + 'blur': function() { + /// + /// Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'button': function() { + /// Selects all button elements and elements of type button. + }, + 'change': function() { + /// + /// Bind an event handler to the "change" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "change" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'checkbox': function() { + /// Selects all elements of type checkbox. + }, + 'checked': function() { + /// Matches all elements that are checked. + }, + 'child': function() { + /// + /// Selects all direct child elements specified by "child" of elements specified by "parent". + /// Any valid selector. + /// A selector to filter the child elements. + /// + }, + 'children': function() { + /// + /// Get the children of each element in the set of matched elements, optionally filtered by a selector. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'class': function() { + /// + /// Selects all elements with the given class. + /// A class to search for. An element can have multiple classes; only one of them must match. + /// + }, + 'clearQueue': function() { + /// + /// Remove from the queue all items that have not yet been run. + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + }, + 'click': function() { + /// + /// Bind an event handler to the "click" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "click" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'clone': function() { + /// + /// Create a deep copy of the set of matched elements. + /// A Boolean indicating whether event handlers should be copied along with the elements. As of jQuery 1.4, element data will be copied as well. + /// + /// + /// + /// Create a deep copy of the set of matched elements. + /// A Boolean indicating whether event handlers and data should be copied along with the elements. The default value is false. *In jQuery 1.5.0 the default value was incorrectly true; it was changed back to false in 1.5.1 and up. + /// A Boolean indicating whether event handlers and data for all children of the cloned element should be copied. By default its value matches the first argument's value (which defaults to false). + /// + /// + }, + 'closest': function() { + /// + /// Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. + /// A string containing a selector expression to match elements against. + /// + /// + /// + /// Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. + /// A string containing a selector expression to match elements against. + /// A DOM element within which a matching element may be found. If no context is passed in then the context of the jQuery set will be used instead. + /// + /// + /// + /// Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. + /// A jQuery object to match elements against. + /// + /// + /// + /// Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. + /// An element to match elements against. + /// + /// + }, + 'contains': function() { + /// + /// Select all elements that contain the specified text. + /// A string of text to look for. It's case sensitive. + /// + }, + 'contents': function() { + /// Get the children of each element in the set of matched elements, including text and comment nodes. + /// + }, + 'context': function() { + /// The DOM node context originally passed to jQuery(); if none was passed then context will likely be the document. + /// + }, + 'css': function() { + /// + /// Set one or more CSS properties for the set of matched elements. + /// A CSS property name. + /// A value to set for the property. + /// + /// + /// + /// Set one or more CSS properties for the set of matched elements. + /// A CSS property name. + /// A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. + /// + /// + /// + /// Set one or more CSS properties for the set of matched elements. + /// A map of property-value pairs to set. + /// + /// + }, + 'data': function() { + /// + /// Store arbitrary data associated with the matched elements. + /// A string naming the piece of data to set. + /// The new data value; it can be any Javascript type including Array or Object. + /// + /// + /// + /// Store arbitrary data associated with the matched elements. + /// An object of key-value pairs of data to update. + /// + /// + }, + 'dblclick': function() { + /// + /// Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'delay': function() { + /// + /// Set a timer to delay execution of subsequent items in the queue. + /// An integer indicating the number of milliseconds to delay execution of the next item in the queue. + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + }, + 'delegate': function() { + /// + /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. + /// A selector to filter the elements that trigger the event. + /// A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. + /// A function to execute at the time the event is triggered. + /// + /// + /// + /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. + /// A selector to filter the elements that trigger the event. + /// A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. + /// A map of data that will be passed to the event handler. + /// A function to execute at the time the event is triggered. + /// + /// + /// + /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. + /// A selector to filter the elements that trigger the event. + /// A map of one or more event types and functions to execute for them. + /// + /// + }, + 'dequeue': function() { + /// + /// Execute the next function on the queue for the matched elements. + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + }, + 'descendant': function() { + /// + /// Selects all elements that are descendants of a given ancestor. + /// Any valid selector. + /// A selector to filter the descendant elements. + /// + }, + 'detach': function() { + /// + /// Remove the set of matched elements from the DOM. + /// A selector expression that filters the set of matched elements to be removed. + /// + /// + }, + 'die': function() { + /// + /// Remove an event handler previously attached using .live() from the elements. + /// A string containing a JavaScript event type, such as click or keydown. + /// The function that is no longer to be executed. + /// + /// + /// + /// Remove an event handler previously attached using .live() from the elements. + /// A map of one or more event types, such as click or keydown and their corresponding functions that are no longer to be executed. + /// + /// + }, + 'disabled': function() { + /// Selects all elements that are disabled. + }, + 'each': function() { + /// + /// Iterate over a jQuery object, executing a function for each matched element. + /// A function to execute for each matched element. + /// + /// + }, + 'element': function() { + /// + /// Selects all elements with the given tag name. + /// An element to search for. Refers to the tagName of DOM nodes. + /// + }, + 'empty': function() { + /// Select all elements that have no children (including text nodes). + }, + 'enabled': function() { + /// Selects all elements that are enabled. + }, + 'end': function() { + /// End the most recent filtering operation in the current chain and return the set of matched elements to its previous state. + /// + }, + 'eq': function() { + /// + /// Reduce the set of matched elements to the one at the specified index. + /// An integer indicating the 0-based position of the element. + /// + /// + /// + /// Reduce the set of matched elements to the one at the specified index. + /// An integer indicating the position of the element, counting backwards from the last element in the set. + /// + /// + }, + 'error': function() { + /// + /// Bind an event handler to the "error" JavaScript event. + /// A function to execute when the event is triggered. + /// + /// + /// + /// Bind an event handler to the "error" JavaScript event. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'even': function() { + /// Selects even elements, zero-indexed. See also odd. + }, + 'fadeIn': function() { + /// + /// Display the matched elements by fading them to opaque. + /// A string or number determining how long the animation will run. + /// A function to call once the animation is complete. + /// + /// + /// + /// Display the matched elements by fading them to opaque. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'fadeOut': function() { + /// + /// Hide the matched elements by fading them to transparent. + /// A string or number determining how long the animation will run. + /// A function to call once the animation is complete. + /// + /// + /// + /// Hide the matched elements by fading them to transparent. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'fadeTo': function() { + /// + /// Adjust the opacity of the matched elements. + /// A string or number determining how long the animation will run. + /// A number between 0 and 1 denoting the target opacity. + /// A function to call once the animation is complete. + /// + /// + /// + /// Adjust the opacity of the matched elements. + /// A string or number determining how long the animation will run. + /// A number between 0 and 1 denoting the target opacity. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'fadeToggle': function() { + /// + /// Display or hide the matched elements by animating their opacity. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'file': function() { + /// Selects all elements of type file. + }, + 'filter': function() { + /// + /// Reduce the set of matched elements to those that match the selector or pass the function's test. + /// A string containing a selector expression to match the current set of elements against. + /// + /// + /// + /// Reduce the set of matched elements to those that match the selector or pass the function's test. + /// A function used as a test for each element in the set. this is the current DOM element. + /// + /// + /// + /// Reduce the set of matched elements to those that match the selector or pass the function's test. + /// An element to match the current set of elements against. + /// + /// + /// + /// Reduce the set of matched elements to those that match the selector or pass the function's test. + /// An existing jQuery object to match the current set of elements against. + /// + /// + }, + 'find': function() { + /// + /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. + /// A string containing a selector expression to match elements against. + /// + /// + /// + /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. + /// A jQuery object to match elements against. + /// + /// + /// + /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. + /// An element to match elements against. + /// + /// + }, + 'first': function() { + /// Selects the first matched element. + }, + 'first-child': function() { + /// Selects all elements that are the first child of their parent. + }, + 'focus': function() { + /// + /// Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'focusin': function() { + /// + /// Bind an event handler to the "focusin" event. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "focusin" event. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'focusout': function() { + /// + /// Bind an event handler to the "focusout" JavaScript event. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "focusout" JavaScript event. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'get': function() { + /// + /// Retrieve the DOM elements matched by the jQuery object. + /// A zero-based integer indicating which element to retrieve. + /// + /// + }, + 'gt': function() { + /// + /// Select all elements at an index greater than index within the matched set. + /// Zero-based index. + /// + }, + 'has': function() { + /// + /// Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. + /// A string containing a selector expression to match elements against. + /// + /// + /// + /// Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. + /// A DOM element to match elements against. + /// + /// + }, + 'hasClass': function() { + /// + /// Determine whether any of the matched elements are assigned the given class. + /// The class name to search for. + /// + /// + }, + 'header': function() { + /// Selects all elements that are headers, like h1, h2, h3 and so on. + }, + 'height': function() { + /// + /// Set the CSS height of every matched element. + /// An integer representing the number of pixels, or an integer with an optional unit of measure appended (as a string). + /// + /// + /// + /// Set the CSS height of every matched element. + /// A function returning the height to set. Receives the index position of the element in the set and the old height as arguments. Within the function, this refers to the current element in the set. + /// + /// + }, + 'hidden': function() { + /// Selects all elements that are hidden. + }, + 'hide': function() { + /// + /// Hide the matched elements. + /// A string or number determining how long the animation will run. + /// A function to call once the animation is complete. + /// + /// + /// + /// Hide the matched elements. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'hover': function() { + /// + /// Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements. + /// A function to execute when the mouse pointer enters the element. + /// A function to execute when the mouse pointer leaves the element. + /// + /// + }, + 'html': function() { + /// + /// Set the HTML contents of each element in the set of matched elements. + /// A string of HTML to set as the content of each matched element. + /// + /// + /// + /// Set the HTML contents of each element in the set of matched elements. + /// A function returning the HTML content to set. Receives the index position of the element in the set and the old HTML value as arguments. jQuery empties the element before calling the function; use the oldhtml argument to reference the previous content. Within the function, this refers to the current element in the set. + /// + /// + }, + 'id': function() { + /// + /// Selects a single element with the given id attribute. + /// An ID to search for, specified via the id attribute of an element. + /// + }, + 'image': function() { + /// Selects all elements of type image. + }, + 'index': function() { + /// + /// Search for a given element from among the matched elements. + /// A selector representing a jQuery collection in which to look for an element. + /// + /// + /// + /// Search for a given element from among the matched elements. + /// The DOM element or first element within the jQuery object to look for. + /// + /// + }, + 'init': function() { + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// A string containing a selector expression + /// A DOM Element, Document, or jQuery to use as context + /// + /// + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// A DOM element to wrap in a jQuery object. + /// + /// + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// A plain object to wrap in a jQuery object. + /// + /// + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// An array containing a set of DOM elements to wrap in a jQuery object. + /// + /// + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// An existing jQuery object to clone. + /// + /// + }, + 'innerHeight': function() { + /// Get the current computed height for the first element in the set of matched elements, including padding but not border. + /// + }, + 'innerWidth': function() { + /// Get the current computed width for the first element in the set of matched elements, including padding but not border. + /// + }, + 'input': function() { + /// Selects all input, textarea, select and button elements. + }, + 'insertAfter': function() { + /// + /// Insert every element in the set of matched elements after the target. + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted after the element(s) specified by this parameter. + /// + /// + }, + 'insertBefore': function() { + /// + /// Insert every element in the set of matched elements before the target. + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted before the element(s) specified by this parameter. + /// + /// + }, + 'is': function() { + /// + /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. + /// A string containing a selector expression to match elements against. + /// + /// + /// + /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. + /// A function used as a test for the set of elements. It accepts one argument, index, which is the element's index in the jQuery collection.Within the function, this refers to the current DOM element. + /// + /// + /// + /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. + /// An existing jQuery object to match the current set of elements against. + /// + /// + /// + /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. + /// An element to match the current set of elements against. + /// + /// + }, + 'jquery': function() { + /// A string containing the jQuery version number. + /// + }, + 'keydown': function() { + /// + /// Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'keypress': function() { + /// + /// Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'keyup': function() { + /// + /// Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'last': function() { + /// Selects the last matched element. + }, + 'last-child': function() { + /// Selects all elements that are the last child of their parent. + }, + 'length': function() { + /// The number of elements in the jQuery object. + /// + }, + 'live': function() { + /// + /// Attach an event handler for all elements which match the current selector, now and in the future. + /// A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names. + /// A function to execute at the time the event is triggered. + /// + /// + /// + /// Attach an event handler for all elements which match the current selector, now and in the future. + /// A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names. + /// A map of data that will be passed to the event handler. + /// A function to execute at the time the event is triggered. + /// + /// + /// + /// Attach an event handler for all elements which match the current selector, now and in the future. + /// A map of one or more JavaScript event types and functions to execute for them. + /// + /// + }, + 'load': function() { + /// + /// Bind an event handler to the "load" JavaScript event. + /// A function to execute when the event is triggered. + /// + /// + /// + /// Bind an event handler to the "load" JavaScript event. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'lt': function() { + /// + /// Select all elements at an index less than index within the matched set. + /// Zero-based index. + /// + }, + 'map': function() { + /// + /// Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. + /// A function object that will be invoked for each element in the current set. + /// + /// + }, + 'mousedown': function() { + /// + /// Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'mouseenter': function() { + /// + /// Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'mouseleave': function() { + /// + /// Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'mousemove': function() { + /// + /// Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'mouseout': function() { + /// + /// Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'mouseover': function() { + /// + /// Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'mouseup': function() { + /// + /// Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'multiple': function() { + /// + /// Selects the combined results of all the specified selectors. + /// Any valid selector. + /// Another valid selector. + /// As many more valid selectors as you like. + /// + }, + 'next': function() { + /// + /// Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'next adjacent': function() { + /// + /// Selects all next elements matching "next" that are immediately preceded by a sibling "prev". + /// Any valid selector. + /// A selector to match the element that is next to the first selector. + /// + }, + 'next siblings': function() { + /// + /// Selects all sibling elements that follow after the "prev" element, have the same parent, and match the filtering "siblings" selector. + /// Any valid selector. + /// A selector to filter elements that are the following siblings of the first selector. + /// + }, + 'nextAll': function() { + /// + /// Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'nextUntil': function() { + /// + /// Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. + /// A string containing a selector expression to indicate where to stop matching following sibling elements. + /// A string containing a selector expression to match elements against. + /// + /// + /// + /// Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. + /// A DOM node or jQuery object indicating where to stop matching following sibling elements. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'not': function() { + /// + /// Remove elements from the set of matched elements. + /// A string containing a selector expression to match elements against. + /// + /// + /// + /// Remove elements from the set of matched elements. + /// One or more DOM elements to remove from the matched set. + /// + /// + /// + /// Remove elements from the set of matched elements. + /// A function used as a test for each element in the set. this is the current DOM element. + /// + /// + /// + /// Remove elements from the set of matched elements. + /// An existing jQuery object to match the current set of elements against. + /// + /// + }, + 'nth-child': function() { + /// + /// Selects all elements that are the nth-child of their parent. + /// The index of each child to match, starting with 1, the string even or odd, or an equation ( eg. :nth-child(even), :nth-child(4n) ) + /// + }, + 'odd': function() { + /// Selects odd elements, zero-indexed. See also even. + }, + 'off': function() { + /// + /// Remove an event handler. + /// One or more space-separated event types and optional namespaces, or just namespaces, such as "click", "keydown.myPlugin", or ".myPlugin". + /// A selector which should match the one originally passed to .on() when attaching event handlers. + /// A handler function previously attached for the event(s), or the special value false. + /// + /// + /// + /// Remove an event handler. + /// A map where the string keys represent one or more space-separated event types and optional namespaces, and the values represent handler functions previously attached for the event(s). + /// A selector which should match the one originally passed to .on() when attaching event handlers. + /// + /// + }, + 'offset': function() { + /// + /// Set the current coordinates of every element in the set of matched elements, relative to the document. + /// An object containing the properties top and left, which are integers indicating the new top and left coordinates for the elements. + /// + /// + /// + /// Set the current coordinates of every element in the set of matched elements, relative to the document. + /// A function to return the coordinates to set. Receives the index of the element in the collection as the first argument and the current coordinates as the second argument. The function should return an object with the new top and left properties. + /// + /// + }, + 'offsetParent': function() { + /// Get the closest ancestor element that is positioned. + /// + }, + 'on': function() { + /// + /// Attach an event handler function for one or more events to the selected elements. + /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. + /// Data to be passed to the handler in event.data when an event is triggered. + /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. + /// + /// + /// + /// Attach an event handler function for one or more events to the selected elements. + /// A map in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s). + /// A selector string to filter the descendants of the selected elements that will call the handler. If the selector is null or omitted, the handler is always called when it reaches the selected element. + /// Data to be passed to the handler in event.data when an event occurs. + /// + /// + }, + 'one': function() { + /// + /// Attach a handler to an event for the elements. The handler is executed at most once per element. + /// A string containing one or more JavaScript event types, such as "click" or "submit," or custom event names. + /// A map of data that will be passed to the event handler. + /// A function to execute at the time the event is triggered. + /// + /// + /// + /// Attach a handler to an event for the elements. The handler is executed at most once per element. + /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. + /// Data to be passed to the handler in event.data when an event is triggered. + /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. + /// + /// + /// + /// Attach a handler to an event for the elements. The handler is executed at most once per element. + /// A map in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s). + /// A selector string to filter the descendants of the selected elements that will call the handler. If the selector is null or omitted, the handler is always called when it reaches the selected element. + /// Data to be passed to the handler in event.data when an event occurs. + /// + /// + }, + 'only-child': function() { + /// Selects all elements that are the only child of their parent. + }, + 'outerHeight': function() { + /// + /// Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. Returns an integer (without "px") representation of the value or null if called on an empty set of elements. + /// A Boolean indicating whether to include the element's margin in the calculation. + /// + /// + }, + 'outerWidth': function() { + /// + /// Get the current computed width for the first element in the set of matched elements, including padding and border. + /// A Boolean indicating whether to include the element's margin in the calculation. + /// + /// + }, + 'parent': function() { + /// + /// Get the parent of each element in the current set of matched elements, optionally filtered by a selector. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'parents': function() { + /// + /// Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'parentsUntil': function() { + /// + /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. + /// A string containing a selector expression to indicate where to stop matching ancestor elements. + /// A string containing a selector expression to match elements against. + /// + /// + /// + /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. + /// A DOM node or jQuery object indicating where to stop matching ancestor elements. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'password': function() { + /// Selects all elements of type password. + }, + 'position': function() { + /// Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. + /// + }, + 'prepend': function() { + /// + /// Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. + /// DOM element, array of elements, HTML string, or jQuery object to insert at the beginning of each element in the set of matched elements. + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the beginning of each element in the set of matched elements. + /// + /// + /// + /// Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. + /// A function that returns an HTML string, DOM element(s), or jQuery object to insert at the beginning of each element in the set of matched elements. Receives the index position of the element in the set and the old HTML value of the element as arguments. Within the function, this refers to the current element in the set. + /// + /// + }, + 'prependTo': function() { + /// + /// Insert every element in the set of matched elements to the beginning of the target. + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the beginning of the element(s) specified by this parameter. + /// + /// + }, + 'prev': function() { + /// + /// Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'prevAll': function() { + /// + /// Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'prevUntil': function() { + /// + /// Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. + /// A string containing a selector expression to indicate where to stop matching preceding sibling elements. + /// A string containing a selector expression to match elements against. + /// + /// + /// + /// Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. + /// A DOM node or jQuery object indicating where to stop matching preceding sibling elements. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'promise': function() { + /// + /// Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. + /// The type of queue that needs to be observed. + /// Object onto which the promise methods have to be attached + /// + /// + }, + 'prop': function() { + /// + /// Set one or more properties for the set of matched elements. + /// The name of the property to set. + /// A value to set for the property. + /// + /// + /// + /// Set one or more properties for the set of matched elements. + /// A map of property-value pairs to set. + /// + /// + /// + /// Set one or more properties for the set of matched elements. + /// The name of the property to set. + /// A function returning the value to set. Receives the index position of the element in the set and the old property value as arguments. Within the function, the keyword this refers to the current element. + /// + /// + }, + 'pushStack': function() { + /// + /// Add a collection of DOM elements onto the jQuery stack. + /// An array of elements to push onto the stack and make into a new jQuery object. + /// + /// + /// + /// Add a collection of DOM elements onto the jQuery stack. + /// An array of elements to push onto the stack and make into a new jQuery object. + /// The name of a jQuery method that generated the array of elements. + /// The arguments that were passed in to the jQuery method (for serialization). + /// + /// + }, + 'queue': function() { + /// + /// Manipulate the queue of functions to be executed on the matched elements. + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// An array of functions to replace the current queue contents. + /// + /// + /// + /// Manipulate the queue of functions to be executed on the matched elements. + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// The new function to add to the queue, with a function to call that will dequeue the next item. + /// + /// + }, + 'radio': function() { + /// Selects all elements of type radio. + }, + 'ready': function() { + /// + /// Specify a function to execute when the DOM is fully loaded. + /// A function to execute after the DOM is ready. + /// + /// + }, + 'remove': function() { + /// + /// Remove the set of matched elements from the DOM. + /// A selector expression that filters the set of matched elements to be removed. + /// + /// + }, + 'removeAttr': function() { + /// + /// Remove an attribute from each element in the set of matched elements. + /// An attribute to remove; as of version 1.7, it can be a space-separated list of attributes. + /// + /// + }, + 'removeClass': function() { + /// + /// Remove a single class, multiple classes, or all classes from each element in the set of matched elements. + /// One or more space-separated classes to be removed from the class attribute of each matched element. + /// + /// + /// + /// Remove a single class, multiple classes, or all classes from each element in the set of matched elements. + /// A function returning one or more space-separated class names to be removed. Receives the index position of the element in the set and the old class value as arguments. + /// + /// + }, + 'removeData': function() { + /// + /// Remove a previously-stored piece of data. + /// A string naming the piece of data to delete. + /// + /// + /// + /// Remove a previously-stored piece of data. + /// An array or space-separated string naming the pieces of data to delete. + /// + /// + }, + 'removeProp': function() { + /// + /// Remove a property for the set of matched elements. + /// The name of the property to set. + /// + /// + }, + 'replaceAll': function() { + /// + /// Replace each target element with the set of matched elements. + /// A selector expression indicating which element(s) to replace. + /// + /// + }, + 'replaceWith': function() { + /// + /// Replace each element in the set of matched elements with the provided new content. + /// The content to insert. May be an HTML string, DOM element, or jQuery object. + /// + /// + /// + /// Replace each element in the set of matched elements with the provided new content. + /// A function that returns content with which to replace the set of matched elements. + /// + /// + }, + 'reset': function() { + /// Selects all elements of type reset. + }, + 'resize': function() { + /// + /// Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'scroll': function() { + /// + /// Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'scrollLeft': function() { + /// + /// Set the current horizontal position of the scroll bar for each of the set of matched elements. + /// An integer indicating the new position to set the scroll bar to. + /// + /// + }, + 'scrollTop': function() { + /// + /// Set the current vertical position of the scroll bar for each of the set of matched elements. + /// An integer indicating the new position to set the scroll bar to. + /// + /// + }, + 'select': function() { + /// + /// Bind an event handler to the "select" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "select" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'selected': function() { + /// Selects all elements that are selected. + }, + 'serialize': function() { + /// Encode a set of form elements as a string for submission. + /// + }, + 'serializeArray': function() { + /// Encode a set of form elements as an array of names and values. + /// + }, + 'show': function() { + /// + /// Display the matched elements. + /// A string or number determining how long the animation will run. + /// A function to call once the animation is complete. + /// + /// + /// + /// Display the matched elements. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'siblings': function() { + /// + /// Get the siblings of each element in the set of matched elements, optionally filtered by a selector. + /// A string containing a selector expression to match elements against. + /// + /// + }, + 'size': function() { + /// Return the number of elements in the jQuery object. + /// + }, + 'slice': function() { + /// + /// Reduce the set of matched elements to a subset specified by a range of indices. + /// An integer indicating the 0-based position at which the elements begin to be selected. If negative, it indicates an offset from the end of the set. + /// An integer indicating the 0-based position at which the elements stop being selected. If negative, it indicates an offset from the end of the set. If omitted, the range continues until the end of the set. + /// + /// + }, + 'slideDown': function() { + /// + /// Display the matched elements with a sliding motion. + /// A string or number determining how long the animation will run. + /// A function to call once the animation is complete. + /// + /// + /// + /// Display the matched elements with a sliding motion. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'slideToggle': function() { + /// + /// Display or hide the matched elements with a sliding motion. + /// A string or number determining how long the animation will run. + /// A function to call once the animation is complete. + /// + /// + /// + /// Display or hide the matched elements with a sliding motion. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'slideUp': function() { + /// + /// Hide the matched elements with a sliding motion. + /// A string or number determining how long the animation will run. + /// A function to call once the animation is complete. + /// + /// + /// + /// Hide the matched elements with a sliding motion. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + }, + 'stop': function() { + /// + /// Stop the currently-running animation on the matched elements. + /// A Boolean indicating whether to remove queued animation as well. Defaults to false. + /// A Boolean indicating whether to complete the current animation immediately. Defaults to false. + /// + /// + /// + /// Stop the currently-running animation on the matched elements. + /// The name of the queue in which to stop animations. + /// A Boolean indicating whether to remove queued animation as well. Defaults to false. + /// A Boolean indicating whether to complete the current animation immediately. Defaults to false. + /// + /// + }, + 'submit': function() { + /// + /// Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. + /// A function to execute each time the event is triggered. + /// + /// + /// + /// Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'text': function() { + /// + /// Set the content of each element in the set of matched elements to the specified text. + /// A string of text to set as the content of each matched element. + /// + /// + /// + /// Set the content of each element in the set of matched elements to the specified text. + /// A function returning the text content to set. Receives the index position of the element in the set and the old text value as arguments. + /// + /// + }, + 'toArray': function() { + /// Retrieve all the DOM elements contained in the jQuery set, as an array. + /// + }, + 'toggle': function() { + /// + /// Display or hide the matched elements. + /// A string or number determining how long the animation will run. + /// A function to call once the animation is complete. + /// + /// + /// + /// Display or hide the matched elements. + /// A string or number determining how long the animation will run. + /// A string indicating which easing function to use for the transition. + /// A function to call once the animation is complete. + /// + /// + /// + /// Display or hide the matched elements. + /// A Boolean indicating whether to show or hide the elements. + /// + /// + }, + 'toggleClass': function() { + /// + /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. + /// One or more class names (separated by spaces) to be toggled for each element in the matched set. + /// + /// + /// + /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. + /// One or more class names (separated by spaces) to be toggled for each element in the matched set. + /// A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed. + /// + /// + /// + /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. + /// A boolean value to determine whether the class should be added or removed. + /// + /// + /// + /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. + /// A function that returns class names to be toggled in the class attribute of each element in the matched set. Receives the index position of the element in the set, the old class value, and the switch as arguments. + /// A boolean value to determine whether the class should be added or removed. + /// + /// + }, + 'trigger': function() { + /// + /// Execute all handlers and behaviors attached to the matched elements for the given event type. + /// A string containing a JavaScript event type, such as click or submit. + /// Additional parameters to pass along to the event handler. + /// + /// + /// + /// Execute all handlers and behaviors attached to the matched elements for the given event type. + /// A jQuery.Event object. + /// + /// + }, + 'triggerHandler': function() { + /// + /// Execute all handlers attached to an element for an event. + /// A string containing a JavaScript event type, such as click or submit. + /// An array of additional parameters to pass along to the event handler. + /// + /// + }, + 'unbind': function() { + /// + /// Remove a previously-attached event handler from the elements. + /// A string containing a JavaScript event type, such as click or submit. + /// The function that is to be no longer executed. + /// + /// + /// + /// Remove a previously-attached event handler from the elements. + /// A string containing a JavaScript event type, such as click or submit. + /// Unbinds the corresponding 'return false' function that was bound using .bind( eventType, false ). + /// + /// + /// + /// Remove a previously-attached event handler from the elements. + /// A JavaScript event object as passed to an event handler. + /// + /// + }, + 'undelegate': function() { + /// + /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + /// A selector which will be used to filter the event results. + /// A string containing a JavaScript event type, such as "click" or "keydown" + /// + /// + /// + /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + /// A selector which will be used to filter the event results. + /// A string containing a JavaScript event type, such as "click" or "keydown" + /// A function to execute at the time the event is triggered. + /// + /// + /// + /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + /// A selector which will be used to filter the event results. + /// A map of one or more event types and previously bound functions to unbind from them. + /// + /// + /// + /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + /// A string containing a namespace to unbind all events from. + /// + /// + }, + 'unload': function() { + /// + /// Bind an event handler to the "unload" JavaScript event. + /// A function to execute when the event is triggered. + /// + /// + /// + /// Bind an event handler to the "unload" JavaScript event. + /// A map of data that will be passed to the event handler. + /// A function to execute each time the event is triggered. + /// + /// + }, + 'unwrap': function() { + /// Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. + /// + }, + 'val': function() { + /// + /// Set the value of each element in the set of matched elements. + /// A string of text or an array of strings corresponding to the value of each matched element to set as selected/checked. + /// + /// + /// + /// Set the value of each element in the set of matched elements. + /// A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. + /// + /// + }, + 'visible': function() { + /// Selects all elements that are visible. + }, + 'width': function() { + /// + /// Set the CSS width of each element in the set of matched elements. + /// An integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string). + /// + /// + /// + /// Set the CSS width of each element in the set of matched elements. + /// A function returning the width to set. Receives the index position of the element in the set and the old width as arguments. Within the function, this refers to the current element in the set. + /// + /// + }, + 'wrap': function() { + /// + /// Wrap an HTML structure around each element in the set of matched elements. + /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. + /// + /// + /// + /// Wrap an HTML structure around each element in the set of matched elements. + /// A callback function returning the HTML content or jQuery object to wrap around the matched elements. Receives the index position of the element in the set as an argument. Within the function, this refers to the current element in the set. + /// + /// + }, + 'wrapAll': function() { + /// + /// Wrap an HTML structure around all elements in the set of matched elements. + /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. + /// + /// + }, + 'wrapInner': function() { + /// + /// Wrap an HTML structure around the content of each element in the set of matched elements. + /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the content of the matched elements. + /// + /// + /// + /// Wrap an HTML structure around the content of each element in the set of matched elements. + /// A callback function which generates a structure to wrap around the content of the matched elements. Receives the index position of the element in the set as an argument. Within the function, this refers to the current element in the set. + /// + /// + }, +}); + +intellisense.annotate(window, { + '$': function() { + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// A string containing a selector expression + /// A DOM Element, Document, or jQuery to use as context + /// + /// + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// A DOM element to wrap in a jQuery object. + /// + /// + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// A plain object to wrap in a jQuery object. + /// + /// + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// An array containing a set of DOM elements to wrap in a jQuery object. + /// + /// + /// + /// Accepts a string containing a CSS selector which is then used to match a set of elements. + /// An existing jQuery object to clone. + /// + /// + }, +}); + diff --git a/BBMPTMes/MESWebSite/Scripts/jquery-1.7.1.js b/BBMPTMes/MESWebSite/Scripts/jquery-1.7.1.js new file mode 100644 index 0000000..b4ec7f8 --- /dev/null +++ b/BBMPTMes/MESWebSite/Scripts/jquery-1.7.1.js @@ -0,0 +1,9266 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Released under the the MIT License. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT and BSD Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function( window, undefined ) { + +// Use the correct document accordingly with window argument (sandbox) +var document = window.document, + navigator = window.navigator, + location = window.location; +var jQuery = (function() { + +// Define a local copy of jQuery +var jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // A central reference to the root jQuery(document) + rootjQuery, + + // A simple way to check for HTML strings or ID strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + + // Check if a string has a non-whitespace character in it + rnotwhite = /\S/, + + // Used for trimming whitespace + trimLeft = /^\s+/, + trimRight = /\s+$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, + rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + + // Useragent RegExp + rwebkit = /(webkit)[ \/]([\w.]+)/, + ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, + rmsie = /(msie) ([\w.]+)/, + rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, + + // Matches dashed string for camelizing + rdashAlpha = /-([a-z]|[0-9])/ig, + rmsPrefix = /^-ms-/, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return ( letter + "" ).toUpperCase(); + }, + + // Keep a UserAgent string for use with jQuery.browser + userAgent = navigator.userAgent, + + // For matching the engine and version of the browser + browserMatch, + + // The deferred used on DOM ready + readyList, + + // The ready event handler + DOMContentLoaded, + + // Save a reference to some core methods + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + push = Array.prototype.push, + slice = Array.prototype.slice, + trim = String.prototype.trim, + indexOf = Array.prototype.indexOf, + + // [[Class]] -> type pairs + class2type = {}; + +jQuery.fn = jQuery.prototype = { + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem, ret, doc; + + // Handle $(""), $(null), or $(undefined) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // The body element only exists once, optimize finding it + if ( selector === "body" && !context && document.body ) { + this.context = document; + this[0] = document.body; + this.selector = selector; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = quickExpr.exec( selector ); + } + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = ( context ? context.ownerDocument || context : document ); + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + ret = rsingleTag.exec( selector ); + + if ( ret ) { + if ( jQuery.isPlainObject( context ) ) { + selector = [ document.createElement( ret[1] ) ]; + jQuery.fn.attr.call( selector, context, true ); + + } else { + selector = [ doc.createElement( ret[1] ) ]; + } + + } else { + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); + selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes; + } + + return jQuery.merge( this, selector ); + + // HANDLE: $("#id") + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.7.1", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return slice.call( this, 0 ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = this.constructor(); + + if ( jQuery.isArray( elems ) ) { + push.apply( ret, elems ); + + } else { + jQuery.merge( ret, elems ); + } + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Attach the listeners + jQuery.bindReady(); + + // Add the callback + readyList.add( fn ); + + return this; + }, + + eq: function( i ) { + i = +i; + return i === -1 ? + this.slice( i ) : + this.slice( i, i + 1 ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ), + "slice", slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + // Either a released hold or an DOMready/load event and not yet ready + if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.fireWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger( "ready" ).off( "ready" ); + } + } + }, + + bindReady: function() { + if ( readyList ) { + return; + } + + readyList = jQuery.Callbacks( "once memory" ); + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + return setTimeout( jQuery.ready, 1 ); + } + + // Mozilla, Opera and webkit nightlies currently support this event + if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else if ( document.attachEvent ) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", DOMContentLoaded ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var toplevel = false; + + try { + toplevel = window.frameElement == null; + } catch(e) {} + + if ( document.documentElement.doScroll && toplevel ) { + doScrollCheck(); + } + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + // A crude way of determining if an object is a window + isWindow: function( obj ) { + return obj && typeof obj === "object" && "setInterval" in obj; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ toString.call(obj) ] || "object"; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + for ( var name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + parseJSON: function( data ) { + if ( typeof data !== "string" || !data ) { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + + } + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction( object ); + + if ( args ) { + if ( isObj ) { + for ( name in object ) { + if ( callback.apply( object[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( object[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in object ) { + if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + break; + } + } + } + } + + return object; + }, + + // Use native String.trim function wherever possible + trim: trim ? + function( text ) { + return text == null ? + "" : + trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + }, + + // results is for internal usage only + makeArray: function( array, results ) { + var ret = results || []; + + if ( array != null ) { + // The window, strings (and functions) also have 'length' + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + var type = jQuery.type( array ); + + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { + push.call( ret, array ); + } else { + jQuery.merge( ret, array ); + } + } + + return ret; + }, + + inArray: function( elem, array, i ) { + var len; + + if ( array ) { + if ( indexOf ) { + return indexOf.call( array, elem, i ); + } + + len = array.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in array && array[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var i = first.length, + j = 0; + + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var ret = [], retVal; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( var i = 0, length = elems.length; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, key, ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + if ( typeof context === "string" ) { + var tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + var args = slice.call( arguments, 2 ), + proxy = function() { + return fn.apply( context, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + + return proxy; + }, + + // Mutifunctional method to get and set values to a collection + // The value/s can optionally be executed if it's a function + access: function( elems, key, value, exec, fn, pass ) { + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + jQuery.access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : undefined; + }, + + now: function() { + return ( new Date() ).getTime(); + }, + + // Use of jQuery.browser is frowned upon. + // More details: http://docs.jquery.com/Utilities/jQuery.browser + uaMatch: function( ua ) { + ua = ua.toLowerCase(); + + var match = rwebkit.exec( ua ) || + ropera.exec( ua ) || + rmsie.exec( ua ) || + ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || + []; + + return { browser: match[1] || "", version: match[2] || "0" }; + }, + + sub: function() { + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); + }; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; + }, + + browser: {} +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +browserMatch = jQuery.uaMatch( userAgent ); +if ( browserMatch.browser ) { + jQuery.browser[ browserMatch.browser ] = true; + jQuery.browser.version = browserMatch.version; +} + +// Deprecated, use jQuery.browser.webkit instead +if ( jQuery.browser.webkit ) { + jQuery.browser.safari = true; +} + +// IE doesn't match non-breaking spaces with \s +if ( rnotwhite.test( "\xA0" ) ) { + trimLeft = /^[\s\xA0]+/; + trimRight = /[\s\xA0]+$/; +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); + +// Cleanup functions for the document ready method +if ( document.addEventListener ) { + DOMContentLoaded = function() { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + }; + +} else if ( document.attachEvent ) { + DOMContentLoaded = function() { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( document.readyState === "complete" ) { + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }; +} + +// The DOM ready check for Internet Explorer +function doScrollCheck() { + if ( jQuery.isReady ) { + return; + } + + try { + // If IE is used, use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + document.documentElement.doScroll("left"); + } catch(e) { + setTimeout( doScrollCheck, 1 ); + return; + } + + // and execute any waiting functions + jQuery.ready(); +} + +return jQuery; + +})(); + + +// String to Object flags format cache +var flagsCache = {}; + +// Convert String-formatted flags into Object-formatted ones and store in cache +function createFlags( flags ) { + var object = flagsCache[ flags ] = {}, + i, length; + flags = flags.split( /\s+/ ); + for ( i = 0, length = flags.length; i < length; i++ ) { + object[ flags[i] ] = true; + } + return object; +} + +/* + * Create a callback list using the following parameters: + * + * flags: an optional list of space-separated flags that will change how + * the callback list behaves + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible flags: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( flags ) { + + // Convert flags from String-formatted to Object-formatted + // (we check in cache first) + flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {}; + + var // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = [], + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Add one or several callbacks to the list + add = function( args ) { + var i, + length, + elem, + type, + actual; + for ( i = 0, length = args.length; i < length; i++ ) { + elem = args[ i ]; + type = jQuery.type( elem ); + if ( type === "array" ) { + // Inspect recursively + add( elem ); + } else if ( type === "function" ) { + // Add if not in unique mode and callback is not in + if ( !flags.unique || !self.has( elem ) ) { + list.push( elem ); + } + } + } + }, + // Fire callbacks + fire = function( context, args ) { + args = args || []; + memory = !flags.memory || [ context, args ]; + firing = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) { + memory = true; // Mark as halted + break; + } + } + firing = false; + if ( list ) { + if ( !flags.once ) { + if ( stack && stack.length ) { + memory = stack.shift(); + self.fireWith( memory[ 0 ], memory[ 1 ] ); + } + } else if ( memory === true ) { + self.disable(); + } else { + list = []; + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + var length = list.length; + add( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away, unless previous + // firing was halted (stopOnFalse) + } else if ( memory && memory !== true ) { + firingStart = length; + fire( memory[ 0 ], memory[ 1 ] ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + var args = arguments, + argIndex = 0, + argLength = args.length; + for ( ; argIndex < argLength ; argIndex++ ) { + for ( var i = 0; i < list.length; i++ ) { + if ( args[ argIndex ] === list[ i ] ) { + // Handle firingIndex and firingLength + if ( firing ) { + if ( i <= firingLength ) { + firingLength--; + if ( i <= firingIndex ) { + firingIndex--; + } + } + } + // Remove the element + list.splice( i--, 1 ); + // If we have some unicity property then + // we only need to do this once + if ( flags.unique ) { + break; + } + } + } + } + } + return this; + }, + // Control if a given callback is in the list + has: function( fn ) { + if ( list ) { + var i = 0, + length = list.length; + for ( ; i < length; i++ ) { + if ( fn === list[ i ] ) { + return true; + } + } + } + return false; + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory || memory === true ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( stack ) { + if ( firing ) { + if ( !flags.once ) { + stack.push( [ context, args ] ); + } + } else if ( !( flags.once && memory ) ) { + fire( context, args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!memory; + } + }; + + return self; +}; + + + + +var // Static reference to slice + sliceDeferred = [].slice; + +jQuery.extend({ + + Deferred: function( func ) { + var doneList = jQuery.Callbacks( "once memory" ), + failList = jQuery.Callbacks( "once memory" ), + progressList = jQuery.Callbacks( "memory" ), + state = "pending", + lists = { + resolve: doneList, + reject: failList, + notify: progressList + }, + promise = { + done: doneList.add, + fail: failList.add, + progress: progressList.add, + + state: function() { + return state; + }, + + // Deprecated + isResolved: doneList.fired, + isRejected: failList.fired, + + then: function( doneCallbacks, failCallbacks, progressCallbacks ) { + deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks ); + return this; + }, + always: function() { + deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments ); + return this; + }, + pipe: function( fnDone, fnFail, fnProgress ) { + return jQuery.Deferred(function( newDefer ) { + jQuery.each( { + done: [ fnDone, "resolve" ], + fail: [ fnFail, "reject" ], + progress: [ fnProgress, "notify" ] + }, function( handler, data ) { + var fn = data[ 0 ], + action = data[ 1 ], + returned; + if ( jQuery.isFunction( fn ) ) { + deferred[ handler ](function() { + returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); + } + }); + } else { + deferred[ handler ]( newDefer[ action ] ); + } + }); + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + if ( obj == null ) { + obj = promise; + } else { + for ( var key in promise ) { + obj[ key ] = promise[ key ]; + } + } + return obj; + } + }, + deferred = promise.promise({}), + key; + + for ( key in lists ) { + deferred[ key ] = lists[ key ].fire; + deferred[ key + "With" ] = lists[ key ].fireWith; + } + + // Handle state + deferred.done( function() { + state = "resolved"; + }, failList.disable, progressList.lock ).fail( function() { + state = "rejected"; + }, doneList.disable, progressList.lock ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( firstParam ) { + var args = sliceDeferred.call( arguments, 0 ), + i = 0, + length = args.length, + pValues = new Array( length ), + count = length, + pCount = length, + deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? + firstParam : + jQuery.Deferred(), + promise = deferred.promise(); + function resolveFunc( i ) { + return function( value ) { + args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; + if ( !( --count ) ) { + deferred.resolveWith( deferred, args ); + } + }; + } + function progressFunc( i ) { + return function( value ) { + pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; + deferred.notifyWith( promise, pValues ); + }; + } + if ( length > 1 ) { + for ( ; i < length; i++ ) { + if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) { + args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) ); + } else { + --count; + } + } + if ( !count ) { + deferred.resolveWith( deferred, args ); + } + } else if ( deferred !== firstParam ) { + deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); + } + return promise; + } +}); + + + + +jQuery.support = (function() { + + var support, + all, + a, + select, + opt, + input, + marginDiv, + fragment, + tds, + events, + eventName, + i, + isSupported, + div = document.createElement( "div" ), + documentElement = document.documentElement; + + // Preliminary tests + div.setAttribute("className", "t"); + div.innerHTML = "
                                                  a"; + + all = div.getElementsByTagName( "*" ); + a = div.getElementsByTagName( "a" )[ 0 ]; + + // Can't get basic test support + if ( !all || !all.length || !a ) { + return {}; + } + + // First batch of supports tests + select = document.createElement( "select" ); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName( "input" )[ 0 ]; + + support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: ( div.firstChild.nodeType === 3 ), + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: ( a.getAttribute("href") === "/a" ), + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.55/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: ( input.value === "on" ), + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // Tests for enctype support on a form(#6743) + enctype: !!document.createElement("form").enctype, + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", + + // Will be defined later + submitBubbles: true, + changeBubbles: true, + focusinBubbles: false, + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { + div.attachEvent( "onclick", function() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + support.noCloneEvent = false; + }); + div.cloneNode( true ).fireEvent( "onclick" ); + } + + // Check if a radio maintains its value + // after being appended to the DOM + input = document.createElement("input"); + input.value = "t"; + input.setAttribute("type", "radio"); + support.radioValue = input.value === "t"; + + input.setAttribute("checked", "checked"); + div.appendChild( input ); + fragment = document.createDocumentFragment(); + fragment.appendChild( div.lastChild ); + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + fragment.removeChild( input ); + fragment.appendChild( div ); + + div.innerHTML = ""; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. For more + // info see bug #3333 + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + if ( window.getComputedStyle ) { + marginDiv = document.createElement( "div" ); + marginDiv.style.width = "0"; + marginDiv.style.marginRight = "0"; + div.style.width = "2px"; + div.appendChild( marginDiv ); + support.reliableMarginRight = + ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; + } + + // Technique from Juriy Zaytsev + // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( div.attachEvent ) { + for( i in { + submit: 1, + change: 1, + focusin: 1 + }) { + eventName = "on" + i; + isSupported = ( eventName in div ); + if ( !isSupported ) { + div.setAttribute( eventName, "return;" ); + isSupported = ( typeof div[ eventName ] === "function" ); + } + support[ i + "Bubbles" ] = isSupported; + } + } + + fragment.removeChild( div ); + + // Null elements to avoid leaks in IE + fragment = select = opt = marginDiv = div = input = null; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, outer, inner, table, td, offsetSupport, + conMarginTop, ptlm, vb, style, html, + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + conMarginTop = 1; + ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;"; + vb = "visibility:hidden;border:0;"; + style = "style='" + ptlm + "border:5px solid #000;padding:0;'"; + html = "
                                                  " + + "" + + "
                                                  "; + + container = document.createElement("div"); + container.style.cssText = vb + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px"; + body.insertBefore( container, body.firstChild ); + + // Construct the test element + div = document.createElement("div"); + container.appendChild( div ); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + div.innerHTML = "
                                                  t
                                                  "; + tds = div.getElementsByTagName( "td" ); + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE <= 8 fail this test) + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Figure out if the W3C box model works as expected + div.innerHTML = ""; + div.style.width = div.style.paddingLeft = "1px"; + jQuery.boxModel = support.boxModel = div.offsetWidth === 2; + + if ( typeof div.style.zoom !== "undefined" ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.style.display = "inline"; + div.style.zoom = 1; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = ""; + div.innerHTML = "
                                                  "; + support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); + } + + div.style.cssText = ptlm + vb; + div.innerHTML = html; + + outer = div.firstChild; + inner = outer.firstChild; + td = outer.nextSibling.firstChild.firstChild; + + offsetSupport = { + doesNotAddBorder: ( inner.offsetTop !== 5 ), + doesAddBorderForTableAndCells: ( td.offsetTop === 5 ) + }; + + inner.style.position = "fixed"; + inner.style.top = "20px"; + + // safari subtracts parent border width here which is 5px + offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 ); + inner.style.position = inner.style.top = ""; + + outer.style.overflow = "hidden"; + outer.style.position = "relative"; + + offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 ); + offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop ); + + body.removeChild( container ); + div = container = null; + + jQuery.extend( support, offsetSupport ); + }); + + return support; +})(); + + + + +var rbrace = /^(?:\{.*\}|\[.*\])$/, + rmultiDash = /([A-Z])/g; + +jQuery.extend({ + cache: {}, + + // Please use with caution + uuid: 0, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var privateCache, thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey, + isEvents = name === "events"; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = ++jQuery.uuid; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + privateCache = thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Users should not attempt to inspect the internal events object using jQuery.data, + // it is undocumented and subject to change. But does anyone listen? No. + if ( isEvents && !thisCache[ name ] ) { + return privateCache.events; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; + }, + + removeData: function( elem, name, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, l, + + // Reference to internal data cache key + internalKey = jQuery.expando, + + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + + // See jQuery.data for more information + id = isNode ? elem[ internalKey ] : internalKey; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split( " " ); + } + } + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject(cache[ id ]) ) { + return; + } + } + + // Browsers that fail expando deletion also refuse to delete expandos on + // the window, but it will allow it on all other JS objects; other browsers + // don't care + // Ensure that `cache` is not a window object #10080 + if ( jQuery.support.deleteExpando || !cache.setInterval ) { + delete cache[ id ]; + } else { + cache[ id ] = null; + } + + // We destroyed the cache and need to eliminate the expando on the node to avoid + // false lookups in the cache for entries that no longer exist + if ( isNode ) { + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( jQuery.support.deleteExpando ) { + delete elem[ internalKey ]; + } else if ( elem.removeAttribute ) { + elem.removeAttribute( internalKey ); + } else { + elem[ internalKey ] = null; + } + } + }, + + // For internal use only. + _data: function( elem, name, data ) { + return jQuery.data( elem, name, data, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + if ( elem.nodeName ) { + var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + + if ( match ) { + return !(match === true || elem.getAttribute("classid") !== match); + } + } + + return true; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var parts, attr, name, + data = null; + + if ( typeof key === "undefined" ) { + if ( this.length ) { + data = jQuery.data( this[0] ); + + if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) { + attr = this[0].attributes; + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.substring(5) ); + + dataAttr( this[0], name, data[ name ] ); + } + } + jQuery._data( this[0], "parsedAttrs", true ); + } + } + + return data; + + } else if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; + + if ( value === undefined ) { + data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + // Try to fetch any internally stored data first + if ( data === undefined && this.length ) { + data = jQuery.data( this[0], key ); + data = dataAttr( this[0], key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + + } else { + return this.each(function() { + var self = jQuery( this ), + args = [ parts[0], value ]; + + self.triggerHandler( "setData" + parts[1] + "!", args ); + jQuery.data( this, key, value ); + self.triggerHandler( "changeData" + parts[1] + "!", args ); + }); + } + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + jQuery.isNumeric( data ) ? parseFloat( data ) : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + for ( var name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} + + + + +function handleQueueMarkDefer( elem, type, src ) { + var deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + defer = jQuery._data( elem, deferDataKey ); + if ( defer && + ( src === "queue" || !jQuery._data(elem, queueDataKey) ) && + ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) { + // Give room for hard-coded callbacks to fire first + // and eventually mark/queue something else on the element + setTimeout( function() { + if ( !jQuery._data( elem, queueDataKey ) && + !jQuery._data( elem, markDataKey ) ) { + jQuery.removeData( elem, deferDataKey, true ); + defer.fire(); + } + }, 0 ); + } +} + +jQuery.extend({ + + _mark: function( elem, type ) { + if ( elem ) { + type = ( type || "fx" ) + "mark"; + jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 ); + } + }, + + _unmark: function( force, elem, type ) { + if ( force !== true ) { + type = elem; + elem = force; + force = false; + } + if ( elem ) { + type = type || "fx"; + var key = type + "mark", + count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 ); + if ( count ) { + jQuery._data( elem, key, count ); + } else { + jQuery.removeData( elem, key, true ); + handleQueueMarkDefer( elem, type, "mark" ); + } + } + }, + + queue: function( elem, type, data ) { + var q; + if ( elem ) { + type = ( type || "fx" ) + "queue"; + q = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !q || jQuery.isArray(data) ) { + q = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + q.push( data ); + } + } + return q || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(), + hooks = {}; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + jQuery._data( elem, type + ".run", hooks ); + fn.call( elem, function() { + jQuery.dequeue( elem, type ); + }, hooks ); + } + + if ( !queue.length ) { + jQuery.removeData( elem, type + "queue " + type + ".run", true ); + handleQueueMarkDefer( elem, type, "queue" ); + } + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + } + + if ( data === undefined ) { + return jQuery.queue( this[0], type ); + } + return this.each(function() { + var queue = jQuery.queue( this, type, data ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, object ) { + if ( typeof type !== "string" ) { + object = type; + type = undefined; + } + type = type || "fx"; + var defer = jQuery.Deferred(), + elements = this, + i = elements.length, + count = 1, + deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + tmp; + function resolve() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + } + while( i-- ) { + if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || + ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || + jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && + jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) { + count++; + tmp.add( resolve ); + } + } + resolve(); + return defer.promise(); + } +}); + + + + +var rclass = /[\n\t\r]/g, + rspace = /\s+/, + rreturn = /\r/g, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea)?$/i, + rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + nodeHook, boolHook, fixSpecified; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.attr ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.prop ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classNames, i, l, elem, + setClass, c, cl; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call(this, j, this.className) ); + }); + } + + if ( value && typeof value === "string" ) { + classNames = value.split( rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className && classNames.length === 1 ) { + elem.className = value; + + } else { + setClass = " " + elem.className + " "; + + for ( c = 0, cl = classNames.length; c < cl; c++ ) { + if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { + setClass += classNames[ c ] + " "; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classNames, i, l, elem, className, c, cl; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call(this, j, this.className) ); + }); + } + + if ( (value && typeof value === "string") || value === undefined ) { + classNames = ( value || "" ).split( rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + + if ( elem.nodeType === 1 && elem.className ) { + if ( value ) { + className = (" " + elem.className + " ").replace( rclass, " " ); + for ( c = 0, cl = classNames.length; c < cl; c++ ) { + className = className.replace(" " + classNames[ c ] + " ", " "); + } + elem.className = jQuery.trim( className ); + + } else { + elem.className = ""; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( rspace ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space seperated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var self = jQuery(this), val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, i, max, option, + index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; + + // Nothing was selected + if ( index < 0 ) { + return null; + } + + // Loop through all the selected options + i = one ? index : 0; + max = one ? index + 1 : options.length; + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attrFn: { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true + }, + + attr: function( elem, name, value, pass ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( pass && name in jQuery.attrFn ) { + return jQuery( elem )[ name ]( value ); + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, "" + value ); + return value; + } + + } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + ret = elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return ret === null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var propName, attrNames, name, l, + i = 0; + + if ( value && elem.nodeType === 1 ) { + attrNames = value.toLowerCase().split( rspace ); + l = attrNames.length; + + for ( ; i < l; i++ ) { + name = attrNames[ i ]; + + if ( name ) { + propName = jQuery.propFix[ name ] || name; + + // See #9699 for explanation of this approach (setting first, then removal) + jQuery.attr( elem, name, "" ); + elem.removeAttribute( getSetAttribute ? name : propName ); + + // Set corresponding property to false for boolean attributes + if ( rboolean.test( name ) && propName in elem ) { + elem[ propName ] = false; + } + } + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to it's default in case type is set after value + // This is for element creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + }, + // Use the value property for back compat + // Use the nodeHook for button elements in IE6/7 (#1954) + value: { + get: function( elem, name ) { + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.get( elem, name ); + } + return name in elem ? + elem.value : + null; + }, + set: function( elem, value, name ) { + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.set( elem, value, name ); + } + // Does not return so that setAttribute is also used + elem.value = value; + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } +}); + +// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional) +jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex; + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + // Align boolean attributes with corresponding properties + // Fall back to attribute presence where some booleans are not supported + var attrNode, + property = jQuery.prop( elem, name ); + return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + var propName; + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + // value is true since we know at this point it's type boolean and not false + // Set boolean attributes to the same name and set the DOM property + propName = jQuery.propFix[ name ] || name; + if ( propName in elem ) { + // Only set the IDL specifically if it already exists on the element + elem[ propName ] = true; + } + + elem.setAttribute( name, name.toLowerCase() ); + } + return name; + } +}; + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + fixSpecified = { + name: true, + id: true + }; + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret; + ret = elem.getAttributeNode( name ); + return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ? + ret.nodeValue : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + ret = document.createAttribute( name ); + elem.setAttributeNode( ret ); + } + return ( ret.nodeValue = value + "" ); + } + }; + + // Apply the nodeHook to tabindex + jQuery.attrHooks.tabindex.set = nodeHook.set; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + get: nodeHook.get, + set: function( elem, value, name ) { + if ( value === "" ) { + value = "false"; + } + nodeHook.set( elem, value, name ); + } + }; +} + + +// Some attributes require a special call on IE +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret === null ? undefined : ret; + } + }); + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Normalize to lowercase since IE uppercases css property names + return elem.style.cssText.toLowerCase() || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = "" + value ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); +} + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }); +}); + + + + +var rformElems = /^(?:textarea|input|select)$/i, + rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/, + rhoverHack = /\bhover(\.\S+)?\b/, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, + quickParse = function( selector ) { + var quick = rquickIs.exec( selector ); + if ( quick ) { + // 0 1 2 3 + // [ _, tag, id, class ] + quick[1] = ( quick[1] || "" ).toLowerCase(); + quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" ); + } + return quick; + }, + quickIs = function( elem, m ) { + var attrs = elem.attributes || {}; + return ( + (!m[1] || elem.nodeName.toLowerCase() === m[1]) && + (!m[2] || (attrs.id || {}).value === m[2]) && + (!m[3] || m[3].test( (attrs[ "class" ] || {}).value )) + ); + }, + hoverHack = function( events ) { + return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); + }; + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + add: function( elem, types, handler, data, selector ) { + + var elemData, eventHandle, events, + t, tns, type, namespaces, handleObj, + handleObjIn, quick, handlers, special; + + // Don't attach events to noData or text/comment nodes (allow plain objects tho) + if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + events = elemData.events; + if ( !events ) { + elemData.events = events = {}; + } + eventHandle = elemData.handle; + if ( !eventHandle ) { + elemData.handle = eventHandle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = jQuery.trim( hoverHack(types) ).split( " " ); + for ( t = 0; t < types.length; t++ ) { + + tns = rtypenamespace.exec( types[t] ) || []; + type = tns[1]; + namespaces = ( tns[2] || "" ).split( "." ).sort(); + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: tns[1], + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + quick: quickParse( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + handlers = events[ type ]; + if ( !handlers ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + global: {}, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var elemData = jQuery.hasData( elem ) && jQuery._data( elem ), + t, tns, type, origType, namespaces, origCount, + j, events, special, handle, eventType, handleObj; + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = jQuery.trim( hoverHack( types || "" ) ).split(" "); + for ( t = 0; t < types.length; t++ ) { + tns = rtypenamespace.exec( types[t] ) || []; + type = origType = tns[1]; + namespaces = tns[2]; + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector? special.delegateType : special.bindType ) || type; + eventType = events[ type ] || []; + origCount = eventType.length; + namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null; + + // Remove matching events + for ( j = 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !namespaces || namespaces.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + eventType.splice( j--, 1 ); + + if ( handleObj.selector ) { + eventType.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( eventType.length === 0 && origCount !== eventType.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + handle = elemData.handle; + if ( handle ) { + handle.elem = null; + } + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery.removeData( elem, [ "events", "handle" ], true ); + } + }, + + // Events that are safe to short-circuit if no handlers are attached. + // Native DOM events should not be added, they may have inline handlers. + customEvent: { + "getData": true, + "setData": true, + "changeData": true + }, + + trigger: function( event, data, elem, onlyHandlers ) { + // Don't do events on text and comment nodes + if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) { + return; + } + + // Event object or event type + var type = event.type || event, + namespaces = [], + cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType; + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "!" ) >= 0 ) { + // Exclusive events trigger only for the exact event (no namespaces) + type = type.slice(0, -1); + exclusive = true; + } + + if ( type.indexOf( "." ) >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + + if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { + // No jQuery handlers for this event type, and it can't have inline handlers + return; + } + + // Caller can pass in an Event, Object, or just an event type string + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + new jQuery.Event( type, event ) : + // Just the event type (string) + new jQuery.Event( type ); + + event.type = type; + event.isTrigger = true; + event.exclusive = exclusive; + event.namespace = namespaces.join( "." ); + event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null; + ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; + + // Handle a global trigger + if ( !elem ) { + + // TODO: Stop taunting the data cache; remove global events and always attach to document + cache = jQuery.cache; + for ( i in cache ) { + if ( cache[ i ].events && cache[ i ].events[ type ] ) { + jQuery.event.trigger( event, data, cache[ i ].handle.elem, true ); + } + } + return; + } + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data != null ? jQuery.makeArray( data ) : []; + data.unshift( event ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + eventPath = [[ elem, special.bindType || type ]]; + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; + old = null; + for ( ; cur; cur = cur.parentNode ) { + eventPath.push([ cur, bubbleType ]); + old = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( old && old === elem.ownerDocument ) { + eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); + } + } + + // Fire handlers on the event path + for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) { + + cur = eventPath[i][0]; + event.type = eventPath[i][1]; + + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + // Note that this is a bare JS function and not a jQuery handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + // IE<9 dies on focus/blur to hidden element (#1486) + if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + old = elem[ ontype ]; + + if ( old ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( old ) { + elem[ ontype ] = old; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event || window.event ); + + var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), + delegateCount = handlers.delegateCount, + args = [].slice.call( arguments, 0 ), + run_all = !event.exclusive && !event.namespace, + handlerQueue = [], + i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Determine handlers that should run if there are delegated events + // Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861) + if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) { + + // Pregenerate a single jQuery object for reuse with .is() + jqcur = jQuery(this); + jqcur.context = this.ownerDocument || this; + + for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { + selMatch = {}; + matches = []; + jqcur[0] = cur; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + sel = handleObj.selector; + + if ( selMatch[ sel ] === undefined ) { + selMatch[ sel ] = ( + handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel ) + ); + } + if ( selMatch[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, matches: matches }); + } + } + } + + // Add the remaining (directly-bound) handlers + if ( handlers.length > delegateCount ) { + handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) }); + } + + // Run delegates first; they may want to stop propagation beneath us + for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) { + matched = handlerQueue[ i ]; + event.currentTarget = matched.elem; + + for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) { + handleObj = matched.matches[ j ]; + + // Triggered event must either 1) be non-exclusive and have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) { + + event.data = handleObj.data; + event.handleObj = handleObj; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + return event.result; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** + props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, + originalEvent = event, + fixHook = jQuery.event.fixHooks[ event.type ] || {}, + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = jQuery.Event( originalEvent ); + + for ( i = copy.length; i; ) { + prop = copy[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Target should not be a text node (#504, Safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8) + if ( event.metaKey === undefined ) { + event.metaKey = event.ctrlKey; + } + + return fixHook.filter? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + ready: { + // Make sure the ready event is setup + setup: jQuery.bindReady + }, + + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + + focus: { + delegateType: "focusin" + }, + blur: { + delegateType: "focusout" + }, + + beforeunload: { + setup: function( data, namespaces, eventHandle ) { + // We only want to do this special case on windows + if ( jQuery.isWindow( this ) ) { + this.onbeforeunload = eventHandle; + } + }, + + teardown: function( namespaces, eventHandle ) { + if ( this.onbeforeunload === eventHandle ) { + this.onbeforeunload = null; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +// Some plugins are using, but it's undocumented/deprecated and will be removed. +// The 1.7 special event interface should provide all the hooks needed now. +jQuery.event.handle = jQuery.event.dispatch; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + if ( elem.detachEvent ) { + elem.detachEvent( "on" + type, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var target = this, + related = event.relatedTarget, + handleObj = event.handleObj, + selector = handleObj.selector, + ret; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !form._submit_attached ) { + jQuery.event.add( form, "submit._submit", function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + }); + form._submit_attached = true; + } + }); + // return undefined since we don't need an event listener + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + jQuery.event.simulate( "change", this, event, true ); + } + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + elem._change_attached = true; + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on.call( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + var handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace? handleObj.type + "." + handleObj.namespace : handleObj.type, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( var type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + live: function( types, data, fn ) { + jQuery( this.context ).on( types, this.selector, data, fn ); + return this; + }, + die: function( types, fn ) { + jQuery( this.context ).off( types, this.selector || "**", fn ); + return this; + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn ); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + if ( this[0] ) { + return jQuery.event.trigger( type, data, this[0], true ); + } + }, + + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; + + // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; + while ( i < args.length ) { + args[ i++ ].guid = guid; + } + + return this.click( toggler ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +}); + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + + if ( jQuery.attrFn ) { + jQuery.attrFn[ name ] = true; + } + + if ( rkeyEvent.test( name ) ) { + jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; + } + + if ( rmouseEvent.test( name ) ) { + jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; + } +}); + + + +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){ + +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + expando = "sizcache" + (Math.random() + '').replace('.', ''), + done = 0, + toString = Object.prototype.toString, + hasDuplicate = false, + baseHasDuplicate = true, + rBackslash = /\\/g, + rReturn = /\r\n/g, + rNonWord = /\W/; + +// Here we check if the JavaScript engine is using some sort of +// optimization where it does not always call our comparision +// function. If that is the case, discard the hasDuplicate value. +// Thus far that includes Google Chrome. +[0, 0].sort(function() { + baseHasDuplicate = false; + return 0; +}); + +var Sizzle = function( selector, context, results, seed ) { + results = results || []; + context = context || document; + + var origContext = context; + + if ( context.nodeType !== 1 && context.nodeType !== 9 ) { + return []; + } + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + var m, set, checkSet, extra, ret, cur, pop, i, + prune = true, + contextXML = Sizzle.isXML( context ), + parts = [], + soFar = selector; + + // Reset the position of the chunker regexp (start from head) + do { + chunker.exec( "" ); + m = chunker.exec( soFar ); + + if ( m ) { + soFar = m[3]; + + parts.push( m[1] ); + + if ( m[2] ) { + extra = m[3]; + break; + } + } + } while ( m ); + + if ( parts.length > 1 && origPOS.exec( selector ) ) { + + if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { + set = posProcess( parts[0] + parts[1], context, seed ); + + } else { + set = Expr.relative[ parts[0] ] ? + [ context ] : + Sizzle( parts.shift(), context ); + + while ( parts.length ) { + selector = parts.shift(); + + if ( Expr.relative[ selector ] ) { + selector += parts.shift(); + } + + set = posProcess( selector, set, seed ); + } + } + + } else { + // Take a shortcut and set the context if the root selector is an ID + // (but not if it'll be faster if the inner selector is an ID) + if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && + Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { + + ret = Sizzle.find( parts.shift(), context, contextXML ); + context = ret.expr ? + Sizzle.filter( ret.expr, ret.set )[0] : + ret.set[0]; + } + + if ( context ) { + ret = seed ? + { expr: parts.pop(), set: makeArray(seed) } : + Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + + set = ret.expr ? + Sizzle.filter( ret.expr, ret.set ) : + ret.set; + + if ( parts.length > 0 ) { + checkSet = makeArray( set ); + + } else { + prune = false; + } + + while ( parts.length ) { + cur = parts.pop(); + pop = cur; + + if ( !Expr.relative[ cur ] ) { + cur = ""; + } else { + pop = parts.pop(); + } + + if ( pop == null ) { + pop = context; + } + + Expr.relative[ cur ]( checkSet, pop, contextXML ); + } + + } else { + checkSet = parts = []; + } + } + + if ( !checkSet ) { + checkSet = set; + } + + if ( !checkSet ) { + Sizzle.error( cur || selector ); + } + + if ( toString.call(checkSet) === "[object Array]" ) { + if ( !prune ) { + results.push.apply( results, checkSet ); + + } else if ( context && context.nodeType === 1 ) { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { + results.push( set[i] ); + } + } + + } else { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && checkSet[i].nodeType === 1 ) { + results.push( set[i] ); + } + } + } + + } else { + makeArray( checkSet, results ); + } + + if ( extra ) { + Sizzle( extra, origContext, results, seed ); + Sizzle.uniqueSort( results ); + } + + return results; +}; + +Sizzle.uniqueSort = function( results ) { + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; +}; + +Sizzle.matches = function( expr, set ) { + return Sizzle( expr, null, null, set ); +}; + +Sizzle.matchesSelector = function( node, expr ) { + return Sizzle( expr, null, null, [node] ).length > 0; +}; + +Sizzle.find = function( expr, context, isXML ) { + var set, i, len, match, type, left; + + if ( !expr ) { + return []; + } + + for ( i = 0, len = Expr.order.length; i < len; i++ ) { + type = Expr.order[i]; + + if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { + left = match[1]; + match.splice( 1, 1 ); + + if ( left.substr( left.length - 1 ) !== "\\" ) { + match[1] = (match[1] || "").replace( rBackslash, "" ); + set = Expr.find[ type ]( match, context, isXML ); + + if ( set != null ) { + expr = expr.replace( Expr.match[ type ], "" ); + break; + } + } + } + } + + if ( !set ) { + set = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( "*" ) : + []; + } + + return { set: set, expr: expr }; +}; + +Sizzle.filter = function( expr, set, inplace, not ) { + var match, anyFound, + type, found, item, filter, left, + i, pass, + old = expr, + result = [], + curLoop = set, + isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); + + while ( expr && set.length ) { + for ( type in Expr.filter ) { + if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { + filter = Expr.filter[ type ]; + left = match[1]; + + anyFound = false; + + match.splice(1,1); + + if ( left.substr( left.length - 1 ) === "\\" ) { + continue; + } + + if ( curLoop === result ) { + result = []; + } + + if ( Expr.preFilter[ type ] ) { + match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); + + if ( !match ) { + anyFound = found = true; + + } else if ( match === true ) { + continue; + } + } + + if ( match ) { + for ( i = 0; (item = curLoop[i]) != null; i++ ) { + if ( item ) { + found = filter( item, match, i, curLoop ); + pass = not ^ found; + + if ( inplace && found != null ) { + if ( pass ) { + anyFound = true; + + } else { + curLoop[i] = false; + } + + } else if ( pass ) { + result.push( item ); + anyFound = true; + } + } + } + } + + if ( found !== undefined ) { + if ( !inplace ) { + curLoop = result; + } + + expr = expr.replace( Expr.match[ type ], "" ); + + if ( !anyFound ) { + return []; + } + + break; + } + } + } + + // Improper expression + if ( expr === old ) { + if ( anyFound == null ) { + Sizzle.error( expr ); + + } else { + break; + } + } + + old = expr; + } + + return curLoop; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Utility function for retreiving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +var getText = Sizzle.getText = function( elem ) { + var i, node, + nodeType = elem.nodeType, + ret = ""; + + if ( nodeType ) { + if ( nodeType === 1 || nodeType === 9 ) { + // Use textContent || innerText for elements + if ( typeof elem.textContent === 'string' ) { + return elem.textContent; + } else if ( typeof elem.innerText === 'string' ) { + // Replace IE's carriage returns + return elem.innerText.replace( rReturn, '' ); + } else { + // Traverse it's children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + } else { + + // If no nodeType, this is expected to be an array + for ( i = 0; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + if ( node.nodeType !== 8 ) { + ret += getText( node ); + } + } + } + return ret; +}; + +var Expr = Sizzle.selectors = { + order: [ "ID", "NAME", "TAG" ], + + match: { + ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, + ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, + TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, + CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, + POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, + PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ + }, + + leftMatch: {}, + + attrMap: { + "class": "className", + "for": "htmlFor" + }, + + attrHandle: { + href: function( elem ) { + return elem.getAttribute( "href" ); + }, + type: function( elem ) { + return elem.getAttribute( "type" ); + } + }, + + relative: { + "+": function(checkSet, part){ + var isPartStr = typeof part === "string", + isTag = isPartStr && !rNonWord.test( part ), + isPartStrNotTag = isPartStr && !isTag; + + if ( isTag ) { + part = part.toLowerCase(); + } + + for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { + if ( (elem = checkSet[i]) ) { + while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + + checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? + elem || false : + elem === part; + } + } + + if ( isPartStrNotTag ) { + Sizzle.filter( part, checkSet, true ); + } + }, + + ">": function( checkSet, part ) { + var elem, + isPartStr = typeof part === "string", + i = 0, + l = checkSet.length; + + if ( isPartStr && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + var parent = elem.parentNode; + checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; + } + } + + } else { + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + checkSet[i] = isPartStr ? + elem.parentNode : + elem.parentNode === part; + } + } + + if ( isPartStr ) { + Sizzle.filter( part, checkSet, true ); + } + } + }, + + "": function(checkSet, part, isXML){ + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); + }, + + "~": function( checkSet, part, isXML ) { + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); + } + }, + + find: { + ID: function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }, + + NAME: function( match, context ) { + if ( typeof context.getElementsByName !== "undefined" ) { + var ret = [], + results = context.getElementsByName( match[1] ); + + for ( var i = 0, l = results.length; i < l; i++ ) { + if ( results[i].getAttribute("name") === match[1] ) { + ret.push( results[i] ); + } + } + + return ret.length === 0 ? null : ret; + } + }, + + TAG: function( match, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( match[1] ); + } + } + }, + preFilter: { + CLASS: function( match, curLoop, inplace, result, not, isXML ) { + match = " " + match[1].replace( rBackslash, "" ) + " "; + + if ( isXML ) { + return match; + } + + for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { + if ( elem ) { + if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { + if ( !inplace ) { + result.push( elem ); + } + + } else if ( inplace ) { + curLoop[i] = false; + } + } + } + + return false; + }, + + ID: function( match ) { + return match[1].replace( rBackslash, "" ); + }, + + TAG: function( match, curLoop ) { + return match[1].replace( rBackslash, "" ).toLowerCase(); + }, + + CHILD: function( match ) { + if ( match[1] === "nth" ) { + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + match[2] = match[2].replace(/^\+|\s*/g, ''); + + // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' + var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( + match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || + !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); + + // calculate the numbers (first)n+(last) including if they are negative + match[2] = (test[1] + (test[2] || 1)) - 0; + match[3] = test[3] - 0; + } + else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + // TODO: Move to normal caching system + match[0] = done++; + + return match; + }, + + ATTR: function( match, curLoop, inplace, result, not, isXML ) { + var name = match[1] = match[1].replace( rBackslash, "" ); + + if ( !isXML && Expr.attrMap[name] ) { + match[1] = Expr.attrMap[name]; + } + + // Handle if an un-quoted value was used + match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); + + if ( match[2] === "~=" ) { + match[4] = " " + match[4] + " "; + } + + return match; + }, + + PSEUDO: function( match, curLoop, inplace, result, not ) { + if ( match[1] === "not" ) { + // If we're dealing with a complex expression, or a simple one + if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { + match[3] = Sizzle(match[3], null, null, curLoop); + + } else { + var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + + if ( !inplace ) { + result.push.apply( result, ret ); + } + + return false; + } + + } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { + return true; + } + + return match; + }, + + POS: function( match ) { + match.unshift( true ); + + return match; + } + }, + + filters: { + enabled: function( elem ) { + return elem.disabled === false && elem.type !== "hidden"; + }, + + disabled: function( elem ) { + return elem.disabled === true; + }, + + checked: function( elem ) { + return elem.checked === true; + }, + + selected: function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + parent: function( elem ) { + return !!elem.firstChild; + }, + + empty: function( elem ) { + return !elem.firstChild; + }, + + has: function( elem, i, match ) { + return !!Sizzle( match[3], elem ).length; + }, + + header: function( elem ) { + return (/h\d/i).test( elem.nodeName ); + }, + + text: function( elem ) { + var attr = elem.getAttribute( "type" ), type = elem.type; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); + }, + + radio: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; + }, + + checkbox: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; + }, + + file: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; + }, + + password: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; + }, + + submit: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && "submit" === elem.type; + }, + + image: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; + }, + + reset: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && "reset" === elem.type; + }, + + button: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && "button" === elem.type || name === "button"; + }, + + input: function( elem ) { + return (/input|select|textarea|button/i).test( elem.nodeName ); + }, + + focus: function( elem ) { + return elem === elem.ownerDocument.activeElement; + } + }, + setFilters: { + first: function( elem, i ) { + return i === 0; + }, + + last: function( elem, i, match, array ) { + return i === array.length - 1; + }, + + even: function( elem, i ) { + return i % 2 === 0; + }, + + odd: function( elem, i ) { + return i % 2 === 1; + }, + + lt: function( elem, i, match ) { + return i < match[3] - 0; + }, + + gt: function( elem, i, match ) { + return i > match[3] - 0; + }, + + nth: function( elem, i, match ) { + return match[3] - 0 === i; + }, + + eq: function( elem, i, match ) { + return match[3] - 0 === i; + } + }, + filter: { + PSEUDO: function( elem, match, i, array ) { + var name = match[1], + filter = Expr.filters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + + } else if ( name === "contains" ) { + return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; + + } else if ( name === "not" ) { + var not = match[3]; + + for ( var j = 0, l = not.length; j < l; j++ ) { + if ( not[j] === elem ) { + return false; + } + } + + return true; + + } else { + Sizzle.error( name ); + } + }, + + CHILD: function( elem, match ) { + var first, last, + doneName, parent, cache, + count, diff, + type = match[1], + node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + + case "nth": + first = match[2]; + last = match[3]; + + if ( first === 1 && last === 0 ) { + return true; + } + + doneName = match[0]; + parent = elem.parentNode; + + if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) { + count = 0; + + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + node.nodeIndex = ++count; + } + } + + parent[ expando ] = doneName; + } + + diff = elem.nodeIndex - last; + + if ( first === 0 ) { + return diff === 0; + + } else { + return ( diff % first === 0 && diff / first >= 0 ); + } + } + }, + + ID: function( elem, match ) { + return elem.nodeType === 1 && elem.getAttribute("id") === match; + }, + + TAG: function( elem, match ) { + return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match; + }, + + CLASS: function( elem, match ) { + return (" " + (elem.className || elem.getAttribute("class")) + " ") + .indexOf( match ) > -1; + }, + + ATTR: function( elem, match ) { + var name = match[1], + result = Sizzle.attr ? + Sizzle.attr( elem, name ) : + Expr.attrHandle[ name ] ? + Expr.attrHandle[ name ]( elem ) : + elem[ name ] != null ? + elem[ name ] : + elem.getAttribute( name ), + value = result + "", + type = match[2], + check = match[4]; + + return result == null ? + type === "!=" : + !type && Sizzle.attr ? + result != null : + type === "=" ? + value === check : + type === "*=" ? + value.indexOf(check) >= 0 : + type === "~=" ? + (" " + value + " ").indexOf(check) >= 0 : + !check ? + value && result !== false : + type === "!=" ? + value !== check : + type === "^=" ? + value.indexOf(check) === 0 : + type === "$=" ? + value.substr(value.length - check.length) === check : + type === "|=" ? + value === check || value.substr(0, check.length + 1) === check + "-" : + false; + }, + + POS: function( elem, match, i, array ) { + var name = match[2], + filter = Expr.setFilters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + } + } + } +}; + +var origPOS = Expr.match.POS, + fescape = function(all, num){ + return "\\" + (num - 0 + 1); + }; + +for ( var type in Expr.match ) { + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); + Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); +} + +var makeArray = function( array, results ) { + array = Array.prototype.slice.call( array, 0 ); + + if ( results ) { + results.push.apply( results, array ); + return results; + } + + return array; +}; + +// Perform a simple check to determine if the browser is capable of +// converting a NodeList to an array using builtin methods. +// Also verifies that the returned array holds DOM nodes +// (which is not the case in the Blackberry browser) +try { + Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; + +// Provide a fallback method if it does not work +} catch( e ) { + makeArray = function( array, results ) { + var i = 0, + ret = results || []; + + if ( toString.call(array) === "[object Array]" ) { + Array.prototype.push.apply( ret, array ); + + } else { + if ( typeof array.length === "number" ) { + for ( var l = array.length; i < l; i++ ) { + ret.push( array[i] ); + } + + } else { + for ( ; array[i]; i++ ) { + ret.push( array[i] ); + } + } + } + + return ret; + }; +} + +var sortOrder, siblingCheck; + +if ( document.documentElement.compareDocumentPosition ) { + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { + return a.compareDocumentPosition ? -1 : 1; + } + + return a.compareDocumentPosition(b) & 4 ? -1 : 1; + }; + +} else { + sortOrder = function( a, b ) { + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Fallback to using sourceIndex (in IE) if it's available on both nodes + } else if ( a.sourceIndex && b.sourceIndex ) { + return a.sourceIndex - b.sourceIndex; + } + + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // If the nodes are siblings (or identical) we can do a quick check + if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + + siblingCheck = function( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; + }; +} + +// Check to see if the browser returns elements by name when +// querying by getElementById (and provide a workaround) +(function(){ + // We're going to inject a fake input element with a specified name + var form = document.createElement("div"), + id = "script" + (new Date()).getTime(), + root = document.documentElement; + + form.innerHTML = ""; + + // Inject it into the root element, check its status, and remove it quickly + root.insertBefore( form, root.firstChild ); + + // The workaround has to do additional checks after a getElementById + // Which slows things down for other browsers (hence the branching) + if ( document.getElementById( id ) ) { + Expr.find.ID = function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + + return m ? + m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? + [m] : + undefined : + []; + } + }; + + Expr.filter.ID = function( elem, match ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + + return elem.nodeType === 1 && node && node.nodeValue === match; + }; + } + + root.removeChild( form ); + + // release memory in IE + root = form = null; +})(); + +(function(){ + // Check to see if the browser returns only elements + // when doing getElementsByTagName("*") + + // Create a fake element + var div = document.createElement("div"); + div.appendChild( document.createComment("") ); + + // Make sure no comments are found + if ( div.getElementsByTagName("*").length > 0 ) { + Expr.find.TAG = function( match, context ) { + var results = context.getElementsByTagName( match[1] ); + + // Filter out possible comments + if ( match[1] === "*" ) { + var tmp = []; + + for ( var i = 0; results[i]; i++ ) { + if ( results[i].nodeType === 1 ) { + tmp.push( results[i] ); + } + } + + results = tmp; + } + + return results; + }; + } + + // Check to see if an attribute returns normalized href attributes + div.innerHTML = ""; + + if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && + div.firstChild.getAttribute("href") !== "#" ) { + + Expr.attrHandle.href = function( elem ) { + return elem.getAttribute( "href", 2 ); + }; + } + + // release memory in IE + div = null; +})(); + +if ( document.querySelectorAll ) { + (function(){ + var oldSizzle = Sizzle, + div = document.createElement("div"), + id = "__sizzle__"; + + div.innerHTML = "

                                                  "; + + // Safari can't handle uppercase or unicode characters when + // in quirks mode. + if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { + return; + } + + Sizzle = function( query, context, extra, seed ) { + context = context || document; + + // Only use querySelectorAll on non-XML documents + // (ID selectors don't work in non-HTML documents) + if ( !seed && !Sizzle.isXML(context) ) { + // See if we find a selector to speed up + var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); + + if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { + // Speed-up: Sizzle("TAG") + if ( match[1] ) { + return makeArray( context.getElementsByTagName( query ), extra ); + + // Speed-up: Sizzle(".CLASS") + } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { + return makeArray( context.getElementsByClassName( match[2] ), extra ); + } + } + + if ( context.nodeType === 9 ) { + // Speed-up: Sizzle("body") + // The body element only exists once, optimize finding it + if ( query === "body" && context.body ) { + return makeArray( [ context.body ], extra ); + + // Speed-up: Sizzle("#ID") + } else if ( match && match[3] ) { + var elem = context.getElementById( match[3] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id === match[3] ) { + return makeArray( [ elem ], extra ); + } + + } else { + return makeArray( [], extra ); + } + } + + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(qsaError) {} + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var oldContext = context, + old = context.getAttribute( "id" ), + nid = old || id, + hasParent = context.parentNode, + relativeHierarchySelector = /^\s*[+~]/.test( query ); + + if ( !old ) { + context.setAttribute( "id", nid ); + } else { + nid = nid.replace( /'/g, "\\$&" ); + } + if ( relativeHierarchySelector && hasParent ) { + context = context.parentNode; + } + + try { + if ( !relativeHierarchySelector || hasParent ) { + return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); + } + + } catch(pseudoError) { + } finally { + if ( !old ) { + oldContext.removeAttribute( "id" ); + } + } + } + } + + return oldSizzle(query, context, extra, seed); + }; + + for ( var prop in oldSizzle ) { + Sizzle[ prop ] = oldSizzle[ prop ]; + } + + // release memory in IE + div = null; + })(); +} + +(function(){ + var html = document.documentElement, + matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; + + if ( matches ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9 fails this) + var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), + pseudoWorks = false; + + try { + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( document.documentElement, "[test!='']:sizzle" ); + + } catch( pseudoError ) { + pseudoWorks = true; + } + + Sizzle.matchesSelector = function( node, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + + if ( !Sizzle.isXML( node ) ) { + try { + if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { + var ret = matches.call( node, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || !disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9, so check for that + node.document && node.document.nodeType !== 11 ) { + return ret; + } + } + } catch(e) {} + } + + return Sizzle(expr, null, null, [node]).length > 0; + }; + } +})(); + +(function(){ + var div = document.createElement("div"); + + div.innerHTML = "
                                                  "; + + // Opera can't find a second classname (in 9.6) + // Also, make sure that getElementsByClassName actually exists + if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { + return; + } + + // Safari caches class attributes, doesn't catch changes (in 3.2) + div.lastChild.className = "e"; + + if ( div.getElementsByClassName("e").length === 1 ) { + return; + } + + Expr.order.splice(1, 0, "CLASS"); + Expr.find.CLASS = function( match, context, isXML ) { + if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { + return context.getElementsByClassName(match[1]); + } + }; + + // release memory in IE + div = null; +})(); + +function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem[ expando ] === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 && !isXML ){ + elem[ expando ] = doneName; + elem.sizset = i; + } + + if ( elem.nodeName.toLowerCase() === cur ) { + match = elem; + break; + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem[ expando ] === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 ) { + if ( !isXML ) { + elem[ expando ] = doneName; + elem.sizset = i; + } + + if ( typeof cur !== "string" ) { + if ( elem === cur ) { + match = true; + break; + } + + } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { + match = elem; + break; + } + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +if ( document.documentElement.contains ) { + Sizzle.contains = function( a, b ) { + return a !== b && (a.contains ? a.contains(b) : true); + }; + +} else if ( document.documentElement.compareDocumentPosition ) { + Sizzle.contains = function( a, b ) { + return !!(a.compareDocumentPosition(b) & 16); + }; + +} else { + Sizzle.contains = function() { + return false; + }; +} + +Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +var posProcess = function( selector, context, seed ) { + var match, + tmpSet = [], + later = "", + root = context.nodeType ? [context] : context; + + // Position selectors must be done after the filter + // And so must :not(positional) so we move all PSEUDOs to the end + while ( (match = Expr.match.PSEUDO.exec( selector )) ) { + later += match[0]; + selector = selector.replace( Expr.match.PSEUDO, "" ); + } + + selector = Expr.relative[selector] ? selector + "*" : selector; + + for ( var i = 0, l = root.length; i < l; i++ ) { + Sizzle( selector, root[i], tmpSet, seed ); + } + + return Sizzle.filter( later, tmpSet ); +}; + +// EXPOSE +// Override sizzle attribute retrieval +Sizzle.attr = jQuery.attr; +Sizzle.selectors.attrMap = {}; +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.filters; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})(); + + +var runtil = /Until$/, + rparentsprev = /^(?:parents|prevUntil|prevAll)/, + // Note: This RegExp should be improved, or likely pulled from Sizzle + rmultiselector = /,/, + isSimple = /^.[^:#\[\.,]*$/, + slice = Array.prototype.slice, + POS = jQuery.expr.match.POS, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var self = this, + i, l; + + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + var ret = this.pushStack( "", "find", selector ), + length, n, r; + + for ( i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + + has: function( target ) { + var targets = jQuery( target ); + return this.filter(function() { + for ( var i = 0, l = targets.length; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && ( + typeof selector === "string" ? + // If this is a positional selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + POS.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var ret = [], i, l, cur = this[0]; + + // Array (deprecated as of jQuery 1.7) + if ( jQuery.isArray( selectors ) ) { + var level = 1; + + while ( cur && cur.ownerDocument && cur !== context ) { + for ( i = 0; i < selectors.length; i++ ) { + + if ( jQuery( cur ).is( selectors[ i ] ) ) { + ret.push({ selector: selectors[ i ], elem: cur, level: level }); + } + } + + cur = cur.parentNode; + level++; + } + + return ret; + } + + // String + var pos = POS.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( i = 0, l = this.length; i < l; i++ ) { + cur = this[i]; + + while ( cur ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + + } else { + cur = cur.parentNode; + if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { + break; + } + } + } + } + + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; + + return this.pushStack( ret, "closest", selectors ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + andSelf: function() { + return this.add( this.prevObject ); + } +}); + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return jQuery.nth( elem, 2, "nextSibling" ); + }, + prev: function( elem ) { + return jQuery.nth( elem, 2, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( elem.parentNode.firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.makeArray( elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, slice.call( arguments ).join(",") ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + nth: function( cur, result, dir, elem ) { + result = result || 1; + var num = 0; + + for ( ; cur; cur = cur[dir] ) { + if ( cur.nodeType === 1 && ++num === result ) { + break; + } + } + + return cur; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return ( elem === qualifier ) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; + }); +} + + + + +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rtagName = /<([\w:]+)/, + rtbody = /", "" ], + legend: [ 1, "
                                                  ", "
                                                  " ], + thead: [ 1, "", "
                                                  " ], + tr: [ 2, "", "
                                                  " ], + td: [ 3, "", "
                                                  " ], + col: [ 2, "", "
                                                  " ], + area: [ 1, "", "" ], + _default: [ 0, "", "" ] + }, + safeFragment = createSafeFragment( document ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE can't serialize and + + + + + + +
                                                  + +
                                                  + + + \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.css b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.css new file mode 100644 index 0000000..31d8882 --- /dev/null +++ b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.css @@ -0,0 +1,587 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); +} +.btn-default:active, +.btn-primary:active, +.btn-success:active, +.btn-info:active, +.btn-warning:active, +.btn-danger:active, +.btn-default.active, +.btn-primary.active, +.btn-success.active, +.btn-info.active, +.btn-warning.active, +.btn-danger.active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-default.disabled, +.btn-primary.disabled, +.btn-success.disabled, +.btn-info.disabled, +.btn-warning.disabled, +.btn-danger.disabled, +.btn-default[disabled], +.btn-primary[disabled], +.btn-success[disabled], +.btn-info[disabled], +.btn-warning[disabled], +.btn-danger[disabled], +fieldset[disabled] .btn-default, +fieldset[disabled] .btn-primary, +fieldset[disabled] .btn-success, +fieldset[disabled] .btn-info, +fieldset[disabled] .btn-warning, +fieldset[disabled] .btn-danger { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-default .badge, +.btn-primary .badge, +.btn-success .badge, +.btn-info .badge, +.btn-warning .badge, +.btn-danger .badge { + text-shadow: none; +} +.btn:active, +.btn.active { + background-image: none; +} +.btn-default { + text-shadow: 0 1px 0 #fff; + background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); + background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #dbdbdb; + border-color: #ccc; +} +.btn-default:hover, +.btn-default:focus { + background-color: #e0e0e0; + background-position: 0 -15px; +} +.btn-default:active, +.btn-default.active { + background-color: #e0e0e0; + border-color: #dbdbdb; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #e0e0e0; + background-image: none; +} +.btn-primary { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); + background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #245580; +} +.btn-primary:hover, +.btn-primary:focus { + background-color: #265a88; + background-position: 0 -15px; +} +.btn-primary:active, +.btn-primary.active { + background-color: #265a88; + border-color: #245580; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #265a88; + background-image: none; +} +.btn-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #3e8f3e; +} +.btn-success:hover, +.btn-success:focus { + background-color: #419641; + background-position: 0 -15px; +} +.btn-success:active, +.btn-success.active { + background-color: #419641; + border-color: #3e8f3e; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #419641; + background-image: none; +} +.btn-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #28a4c9; +} +.btn-info:hover, +.btn-info:focus { + background-color: #2aabd2; + background-position: 0 -15px; +} +.btn-info:active, +.btn-info.active { + background-color: #2aabd2; + border-color: #28a4c9; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #2aabd2; + background-image: none; +} +.btn-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #e38d13; +} +.btn-warning:hover, +.btn-warning:focus { + background-color: #eb9316; + background-position: 0 -15px; +} +.btn-warning:active, +.btn-warning.active { + background-color: #eb9316; + border-color: #e38d13; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #eb9316; + background-image: none; +} +.btn-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #b92c28; +} +.btn-danger:hover, +.btn-danger:focus { + background-color: #c12e2a; + background-position: 0 -15px; +} +.btn-danger:active, +.btn-danger.active { + background-color: #c12e2a; + border-color: #b92c28; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #c12e2a; + background-image: none; +} +.thumbnail, +.img-thumbnail { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + background-color: #e8e8e8; + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-color: #2e6da4; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.navbar-default { + background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); + background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); + background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, .25); +} +.navbar-inverse { + background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); + background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); +} +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); +} +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} +@media (max-width: 767px) { + .navbar .navbar-nav .open .dropdown-menu > .active > a, + .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; + } +} +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); +} +.alert-success { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); + background-repeat: repeat-x; + border-color: #b2dba1; +} +.alert-info { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); + background-repeat: repeat-x; + border-color: #9acfea; +} +.alert-warning { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); + background-repeat: repeat-x; + border-color: #f5e79e; +} +.alert-danger { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); + background-repeat: repeat-x; + border-color: #dca7a7; +} +.progress { + background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); + background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #286090; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); + background-repeat: repeat-x; + border-color: #2b669a; +} +.list-group-item.active .badge, +.list-group-item.active:hover .badge, +.list-group-item.active:focus .badge { + text-shadow: none; +} +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: 0 1px 2px rgba(0, 0, 0, .05); +} +.panel-default > .panel-heading { + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.panel-primary > .panel-heading { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.panel-success > .panel-heading { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); + background-repeat: repeat-x; +} +.panel-info > .panel-heading { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); + background-repeat: repeat-x; +} +.panel-warning > .panel-heading { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); + background-repeat: repeat-x; +} +.panel-danger > .panel-heading { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); + background-repeat: repeat-x; +} +.well { + background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; + border-color: #dcdcdc; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); +} +/*# sourceMappingURL=bootstrap-theme.css.map */ diff --git a/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.css.map b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.css.map new file mode 100644 index 0000000..d876f60 --- /dev/null +++ b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.min.css b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.min.css new file mode 100644 index 0000000..5e39401 --- /dev/null +++ b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} +/*# sourceMappingURL=bootstrap-theme.min.css.map */ \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.min.css.map b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.min.css.map new file mode 100644 index 0000000..94813e9 --- /dev/null +++ b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap-theme.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.css b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.css new file mode 100644 index 0000000..6167622 --- /dev/null +++ b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.css @@ -0,0 +1,6757 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + margin: .67em 0; + font-size: 2em; +} +mark { + color: #000; + background: #ff0; +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -.5em; +} +sub { + bottom: -.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} +legend { + padding: 0; + border: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +@font-face { + font-family: 'Glyphicons Halflings'; + + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\002a"; +} +.glyphicon-plus:before { + content: "\002b"; +} +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 10px; + + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +[role="button"] { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small, +.small { + font-size: 85%; +} +mark, +.mark { + padding: .2em; + background-color: #fcf8e3; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #777; +} +.text-primary { + color: #337ab7; +} +a.text-primary:hover, +a.text-primary:focus { + color: #286090; +} +.text-success { + color: #3c763d; +} +a.text-success:hover, +a.text-success:focus { + color: #2b542c; +} +.text-info { + color: #31708f; +} +a.text-info:hover, +a.text-info:focus { + color: #245269; +} +.text-warning { + color: #8a6d3b; +} +a.text-warning:hover, +a.text-warning:focus { + color: #66512c; +} +.text-danger { + color: #a94442; +} +a.text-danger:hover, +a.text-danger:focus { + color: #843534; +} +.bg-primary { + color: #fff; + background-color: #337ab7; +} +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #286090; +} +.bg-success { + background-color: #dff0d8; +} +a.bg-success:hover, +a.bg-success:focus { + background-color: #c1e2b3; +} +.bg-info { + background-color: #d9edf7; +} +a.bg-info:hover, +a.bg-info:focus { + background-color: #afd9ee; +} +.bg-warning { + background-color: #fcf8e3; +} +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #f7ecb5; +} +.bg-danger { + background-color: #f2dede; +} +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #e4b9b9; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} +dl { + margin-top: 0; + margin-bottom: 20px; +} +dt, +dd { + line-height: 1.42857143; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.row { + margin-right: -15px; + margin-left: -15px; +} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0; +} +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0; + } +} +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0; + } +} +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #ddd; +} +.table .table { + background-color: #fff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} +.table-responsive { + min-height: .01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); +} +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999; +} +.form-control::-webkit-input-placeholder { + color: #999; +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eee; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 34px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.form-group-sm select.form-control { + height: 30px; + line-height: 30px; +} +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-lg { + height: 46px; + line-height: 46px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.form-group-lg select.form-control { + height: 46px; + line-height: 46px; +} +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 42.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} +.has-success .form-control-feedback { + color: #3c763d; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 11px; + font-size: 18px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #333; + text-decoration: none; +} +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default:focus, +.btn-default.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + font-weight: normal; + color: #337ab7; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group .form-control:focus { + z-index: 3; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eee; +} +.nav > li.disabled > a { + color: #777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eee; + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777; +} +.navbar-default .navbar-nav > li > a { + color: #777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555; + background-color: #e7e7e7; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777; +} +.navbar-default .navbar-link:hover { + color: #333; +} +.navbar-default .btn-link { + color: #777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} +.navbar-inverse { + background-color: #222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: #080808; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; +} +.breadcrumb > .active { + color: #777; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #23527c; + background-color: #eee; + border-color: #ddd; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eee; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #777; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron { + padding-right: 15px; + padding-left: 15px; + border-radius: 6px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} +.thumbnail .caption { + padding: 9px; + color: #333; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media-body { + width: 10000px; +} +.media-object { + display: block; +} +.media-object.img-thumbnail { + max-width: none; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + padding-left: 0; + margin-bottom: 20px; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +a.list-group-item, +button.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} +button.list-group-item { + width: 100%; + text-align: left; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #777; + cursor: not-allowed; + background-color: #eee; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; +} +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; +} +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; +} +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; +} +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} +.panel-group { + margin-bottom: 20px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} +.panel-default { + border-color: #ddd; +} +.panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; +} +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} +.panel-primary { + border-color: #337ab7; +} +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} +.panel-warning { + border-color: #faebcc; +} +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} +.panel-danger { + border-color: #ebccd1; +} +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; +} +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5; +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + filter: alpha(opacity=0); + opacity: 0; + + line-break: auto; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; +} +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + + line-break: auto; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow:after { + content: ""; + border-width: 10px; +} +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0; +} +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0; +} +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); +} +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25); +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + background-color: rgba(0, 0, 0, 0); + filter: alpha(opacity=50); + opacity: .5; +} +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -10px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -10px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -10px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-header:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap.css.map */ diff --git a/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.css.map b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.css.map new file mode 100644 index 0000000..f010c82 --- /dev/null +++ b/BBMPTMes/MESWebSite/Show/bootstrap/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"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AW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;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ukDH;AexkDC;EACE,oBAAA;Cf0kDH;Ae3kDC;EACE,WAAA;Cf6kDH;Ae9kDC;EACE,oBAAA;CfglDH;AejlDC;EACE,mBAAA;CfmlDH;Ae/kDC;EACE,YAAA;CfilDH;AejmDC;EACE,WAAA;CfmmDH;AepmDC;EACE,mBAAA;CfsmDH;AevmDC;EACE,mBAAA;CfymDH;Ae1mDC;EACE,UAAA;Cf4mDH;Ae7mDC;EACE,mBAAA;Cf+mDH;AehnDC;EACE,mBAAA;CfknDH;AennDC;EACE,UAAA;CfqnDH;AetnDC;EACE,mBAAA;CfwnDH;AeznDC;EACE,mBAAA;Cf2nDH;Ae5nDC;EACE,UAAA;Cf8nDH;Ae/nDC;EACE,mBAAA;CfioDH;AeloDC;EACE,kBAAA;CfooDH;AehoDC;EACE,WAAA;CfkoDH;AepnDC;EACE,kBAAA;CfsnDH;AevnDC;EACE,0BAAA;CfynDH;Ae1nDC;EACE,0BAAA;Cf4nDH;Ae7nDC;EACE,iBAAA;Cf+nDH;AehoDC;EACE,0BAAA;CfkoDH;AenoDC;EACE,0BAAA;CfqoDH;AetoDC;EACE,iBAAA;CfwoDH;AezoDC;EACE,0BAAA;Cf2oDH;Ae5oDC;EACE,0BAAA;Cf8oDH;Ae/oDC;EACE,iBAAA;CfipDH;AelpDC;EACE,0BAAA;CfopDH;AerpDC;EACE,yBAAA;CfupDH;AexpDC;EACE,gBAAA;Cf0pDH;Aa1pDD;EElCI;IACE,YAAA;Gf+rDH;EexrDD;IACE,YAAA;Gf0rDD;Ee3rDD;IACE,oBAAA;Gf6rDD;Ee9rDD;IACE,oBAAA;GfgsDD;EejsDD;IACE,WAAA;GfmsDD;EepsDD;IACE,oBAAA;GfssDD;EevsDD;IACE,oBAAA;GfysDD;Ee1sDD;IACE,WAAA;Gf4sDD;Ee7sDD;IACE,oBAAA;Gf+sDD;EehtDD;IACE,oBAAA;GfktDD;EentDD;IACE,WAAA;GfqtDD;EettDD;IACE,oBAAA;GfwtDD;EeztDD;IACE,mBAAA;Gf2tDD;Ee7sDD;IACE,YAAA;Gf+sDD;EehtDD;IACE,oBAAA;GfktDD;EentDD;IACE,oBAAA;GfqtDD;EettDD;IACE,WAAA;GfwtDD;EeztDD;IACE,oBAAA;Gf2tDD;Ee5tDD;IACE,oBAAA;Gf8tDD;Ee/tDD;IACE,WAAA;GfiuDD;EeluDD;IACE,oBAAA;GfouDD;EeruDD;IACE,oBAAA;GfuuDD;EexuDD;IACE,WAAA;Gf0uDD;Ee3uDD;IACE,oBAAA;Gf6uDD;Ee9uDD;IACE,mBAAA;GfgvDD;Ee5uDD;IACE,YAAA;Gf8uDD;Ee9vDD;IACE,WAAA;GfgwDD;EejwDD;IACE,mBAAA;GfmwDD;EepwDD;IACE,mBAAA;GfswDD;EevwDD;IACE,UAAA;GfywDD;Ee1wDD;IACE,mBAAA;Gf4wDD;Ee7wDD;IACE,mBAAA;Gf+wDD;EehxDD;IACE,UAAA;GfkxDD;EenxDD;IACE,mBAAA;GfqxDD;EetxDD;IACE,mBAAA;GfwxDD;EezxDD;IACE,UAAA;Gf2xDD;Ee5xDD;IACE,mBAAA;Gf8xDD;Ee/xDD;IACE,kBAAA;GfiyDD;Ee7xDD;IACE,WAAA;Gf+xDD;EejxDD;IACE,kBAAA;GfmxDD;EepxDD;IACE,0BAAA;GfsxDD;EevxDD;IACE,0BAAA;GfyxDD;Ee1xDD;IACE,iBAAA;Gf4xDD;Ee7xDD;IACE,0BAAA;Gf+xDD;EehyDD;IACE,0BAAA;GfkyDD;EenyDD;IACE,iBAAA;GfqyDD;EetyDD;IACE,0BAAA;GfwyDD;EezyDD;IACE,0BAAA;Gf2yDD;Ee5yDD;IACE,iBAAA;Gf8yDD;Ee/yDD;IACE,0BAAA;GfizDD;EelzDD;IACE,yBAAA;GfozDD;EerzDD;IACE,gBAAA;GfuzDD;CACF;Aa/yDD;EE3CI;IACE,YAAA;Gf61DH;Eet1DD;IACE,YAAA;Gfw1DD;Eez1DD;IACE,oBAAA;Gf21DD;Ee51DD;IACE,oBAAA;Gf81DD;Ee/1DD;IACE,WAAA;Gfi2DD;Eel2DD;IACE,oBAAA;Gfo2DD;Eer2DD;IACE,oBAAA;Gfu2DD;Eex2DD;IACE,WAAA;Gf02DD;Ee32DD;IACE,oBAAA;Gf62DD;Ee92DD;IACE,oBAAA;Gfg3DD;Eej3DD;IACE,WAAA;Gfm3DD;Eep3DD;IACE,oBAAA;Gfs3DD;Eev3DD;IACE,mBAAA;Gfy3DD;Ee32DD;IACE,YAAA;Gf62DD;Ee92DD;IACE,oBAAA;Gfg3DD;Eej3DD;IACE,oBAAA;Gfm3DD;Eep3DD;IACE,WAAA;Gfs3DD;Eev3DD;IACE,oBAAA;Gfy3DD;Ee13DD;IACE,oBAAA;Gf43DD;Ee73DD;IACE,WAAA;Gf+3DD;Eeh4DD;IACE,oBAAA;Gfk4DD;Een4DD;IACE,oBAAA;Gfq4DD;Eet4DD;IACE,WAAA;Gfw4DD;Eez4DD;IACE,oBAAA;Gf24DD;Ee54DD;IACE,mBAAA;Gf84DD;Ee14DD;IACE,YAAA;Gf44DD;Ee55DD;IACE,WAAA;Gf85DD;Ee/5DD;IACE,mBAAA;Gfi6DD;Eel6DD;IACE,mBAAA;Gfo6DD;Eer6DD;IACE,UAAA;Gfu6DD;Eex6DD;IACE,mBAAA;Gf06DD;Ee36DD;IACE,mBAAA;Gf66DD;Ee96DD;IACE,UAAA;Gfg7DD;Eej7DD;IACE,mBAAA;Gfm7DD;Eep7DD;IACE,mBAAA;Gfs7DD;Eev7DD;IACE,UAAA;Gfy7DD;Ee17DD;IACE,mBAAA;Gf47DD;Ee77DD;IACE,kBAAA;Gf+7DD;Ee37DD;IACE,WAAA;Gf67DD;Ee/6DD;IACE,kBAAA;Gfi7DD;Eel7DD;IACE,0BAAA;Gfo7DD;Eer7DD;IACE,0BAAA;Gfu7DD;Eex7DD;IACE,iBAAA;Gf07DD;Ee37DD;IACE,0BAAA;Gf67DD;Ee97DD;IACE,0BAAA;Gfg8DD;Eej8DD;IACE,iBAAA;Gfm8DD;Eep8DD;IACE,0BAAA;Gfs8DD;Eev8DD;IACE,0BAAA;Gfy8DD;Ee18DD;IACE,iBAAA;Gf48DD;Ee78DD;IACE,0BAAA;Gf+8DD;Eeh9DD;IACE,yBAAA;Gfk9DD;Een9DD;IACE,gBAAA;Gfq9DD;CACF;Aa18DD;EE9CI;IACE,YAAA;Gf2/DH;Eep/DD;IACE,YAAA;Gfs/DD;Eev/DD;IACE,oBAAA;Gfy/DD;Ee1/DD;IACE,oBAAA;Gf4/DD;Ee7/DD;IACE,WAAA;Gf+/DD;EehgED;IACE,oBAAA;GfkgED;EengED;IACE,oBAAA;GfqgED;EetgED;IACE,WAAA;GfwgED;EezgED;IACE,oBAAA;Gf2gED;Ee5gED;IACE,oBAAA;Gf8gED;Ee/gED;IACE,WAAA;GfihED;EelhED;IACE,oBAAA;GfohED;EerhED;IACE,mBAAA;GfuhED;EezgED;IACE,YAAA;Gf2gED;Ee5gED;IACE,oBAAA;Gf8gED;Ee/gED;IACE,oBAAA;GfihED;EelhED;IACE,WAAA;GfohED;EerhED;IACE,oBAAA;GfuhED;EexhED;IACE,oBAAA;Gf0hED;Ee3hED;IACE,WAAA;Gf6hED;Ee9hED;IACE,oBAAA;GfgiED;EejiED;IACE,oBAAA;GfmiED;EepiED;IACE,WAAA;GfsiED;EeviED;IACE,oBAAA;GfyiED;Ee1iED;IACE,mBAAA;Gf4iED;EexiED;IACE,YAAA;Gf0iED;Ee1jED;IACE,WAAA;Gf4jED;Ee7jED;IACE,mBAAA;Gf+jED;EehkED;IACE,mBAAA;GfkkED;EenkED;IACE,UAAA;GfqkED;EetkED;IACE,mBAAA;GfwkED;EezkED;IACE,mBAAA;Gf2kED;Ee5kED;IACE,UAAA;Gf8kED;Ee/kED;IACE,mBAAA;GfilED;EellED;IACE,mBAAA;GfolED;EerlED;IACE,UAAA;GfulED;EexlED;IACE,mBAAA;Gf0lED;Ee3lED;IACE,kBAAA;Gf6lED;EezlED;IACE,WAAA;Gf2lED;Ee7kED;IACE,kBAAA;Gf+kED;EehlED;IACE,0BAAA;GfklED;EenlED;IACE,0BAAA;GfqlED;EetlED;IACE,iBAAA;GfwlED;EezlED;IACE,0BAAA;Gf2lED;Ee5lED;IACE,0BAAA;Gf8lED;Ee/lED;IACE,iBAAA;GfimED;EelmED;IACE,0BAAA;GfomED;EermED;IACE,0BAAA;GfumED;EexmED;IACE,iBAAA;Gf0mED;Ee3mED;IACE,0BAAA;Gf6mED;Ee9mED;IACE,yBAAA;GfgnED;EejnED;IACE,gBAAA;GfmnED;CACF;AgBvrED;EACE,8BAAA;ChByrED;AgBvrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChByrED;AgBvrED;EACE,iBAAA;ChByrED;AgBnrED;EACE,YAAA;EACA,gBA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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n border: 0;\n background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #fff;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #fff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #ccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #fff;\n border: 1px solid #ddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #fff;\n border-color: #ddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #fff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #fff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #fff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #fff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #fff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // WebKit-specific. Other browsers will keep their default outline style.\n // (Initially tried to also force default via `outline: initial`,\n // but that seems to erroneously remove the outline in Firefox altogether.)\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: floor((@gutter / 2));\n padding-right: ceil((@gutter / 2));\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Unstyle the caret on ``\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n .opacity(.65);\n .box-shadow(none);\n }\n\n a& {\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `` elements\n }\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n\n &.in { display: block; }\n tr&.in { display: table-row; }\n tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition-property(~\"height, visibility\");\n .transition-duration(.35s);\n .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base dashed;\n border-top: @caret-width-base solid ~\"\\9\"; // IE8\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n\n // Nuke hover/focus effects\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: @cursor-disabled;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base dashed;\n border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn,\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n .border-top-radius(@btn-border-radius-base);\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n .border-top-radius(0);\n .border-bottom-radius(@btn-border-radius-base);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n\n > .btn-group .dropdown-menu {\n left: auto;\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n > .btn,\n > .btn-group > .btn {\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0,0,0,0);\n pointer-events: none;\n }\n }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n\n &:focus {\n z-index: 3;\n }\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @input-border-radius;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @input-border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @input-border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n z-index: 2;\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: @cursor-disabled;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n .navbar-collapse {\n max-height: @navbar-collapse-max-height;\n\n @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n max-height: 200px;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > img {\n display: block;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: 0;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n .border-top-radius(@navbar-border-radius);\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right {\n .pull-right();\n margin-right: -@navbar-padding-horizontal;\n\n ~ .navbar-right {\n margin-right: 0;\n }\n }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n }\n }\n }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n }\n }\n }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 3;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: @cursor-disabled;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: @cursor-disabled;\n }\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n a& {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n background-color: @color;\n\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n\n .btn-xs &,\n .btn-group-xs > .btn & {\n top: 0;\n padding: 1px 5px;\n }\n\n // Hover state, but only for links\n a& {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Account for badges in navs\n .list-group-item.active > &,\n .nav-pills > .active > a > & {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n }\n\n .list-group-item > & {\n float: right;\n }\n\n .list-group-item > & + & {\n margin-right: 5px;\n }\n\n .nav-pills > li > a > & {\n margin-left: 3px;\n }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding-top: @jumbotron-padding;\n padding-bottom: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n > hr {\n border-top-color: darken(@jumbotron-bg, 10%);\n }\n\n .container &,\n .container-fluid & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container &,\n .container-fluid & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: @jumbotron-heading-font-size;\n }\n }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(border .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @progress-border-radius;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n background-color: @color;\n\n // Deprecated parent class requirement as of v3.2.0\n .progress-striped & {\n #gradient > .striped();\n }\n}\n",".media {\n // Proper spacing between instances of .media\n margin-top: 15px;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n\n.media-body {\n width: 10000px;\n}\n\n.media-object {\n display: block;\n\n // Fix collapse in webkit from max-width: 100% and display: table-cell.\n &.img-thumbnail {\n max-width: none;\n }\n}\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n\n.media-middle {\n vertical-align: middle;\n}\n\n.media-bottom {\n vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on
                                                  +
                                                  + + + + + + + + + + + + + +
                                                  BOM信息 + 注塑件零件号: + 查询 + 新增 + + 编辑 + + 删除 +
                                                  +
                                                  + +
                                                  + + + +
                                                  + + + + +