From 762d407dddbd30d09b720ee70ab2b44b924c1f58 Mon Sep 17 00:00:00 2001 From: History <2596007731@qq.com> Date: Mon, 14 Jul 2025 10:04:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=93=E5=AE=B6=E7=AB=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DoctorXinjiang.xcodeproj/project.pbxproj | 16 +- .../DoctorXinjiang/Define/ThirdMacros.h | 2 +- .../Manager/NetworkingManager/XJDNetAPI.h | 104 +++ .../Manager/NetworkingManager/XJDNetAPI.m | 333 ++++++++ .../NetworkingManager/YXNetworkingWithCache.m | 8 +- .../Manager/UserManager/XJDKeychainTool.h | 36 + .../Manager/UserManager/XJDKeychainTool.m | 56 ++ .../Manager/UserManager/XJDUserInfo.h | 38 + .../Manager/UserManager/XJDUserInfo.m | 73 ++ .../AppDelegate/AppDelegate+AppService.m | 20 +- .../Project/Base/HQBaseTabBarController.h | 25 - .../Project/Base/HQBaseWebViewController.h | 42 - .../Project/Base/YXBaseTabBarController.m | 8 +- .../Project/Base/YXBaseViewController.m | 4 +- .../Project/HQPopView/XJDShowPromptPopView.h | 16 + .../Project/HQPopView/XJDShowPromptPopView.m | 134 +++ .../XJDFileDataDetailViewController.m | 62 +- .../XJDHistoricalRecordViewController.m | 10 +- .../XJDDownToolsManager.h | 20 + .../XJDDownToolsManager.m | 103 +++ .../XJDHealthPhyReportModel.h | 99 +++ .../XJDHealthPhyReportModel.m | 80 ++ .../XJDLookReportImageViewController.h | 22 + .../XJDLookReportImageViewController.m | 173 ++++ .../XJDQuestionDetailViewController.h | 18 + .../XJDQuestionDetailViewController.m | 744 +++++++++++++++++ .../XJDSickNameSubTableViewCell.h | 19 + .../XJDSickNameSubTableViewCell.m | 221 +++++ .../XJDSickNameTopTableViewCell.h | 23 + .../XJDSickNameTopTableViewCell.m | 134 +++ .../XJDimageReportTableViewCell.h | 22 + .../XJDimageReportTableViewCell.m | 235 ++++++ .../YXSickNameSubTableViewCell.h | 19 - .../XJDAudioVideoRecordViewController.h | 19 + .../XJDAudioVideoRecordViewController.m | 286 +++++++ .../XJDPictureRecordViewController.h | 19 + .../XJDPictureRecordViewController.m | 588 +++++++++++++ .../XJDQustionRecordViewController.h | 20 + .../XJDQustionRecordViewController.m | 255 ++++++ .../XJDQuestionStatisticsViewController.h | 16 + .../XJDQuestionStatisticsViewController.m | 514 ++++++++++++ .../StopAnnouncementViewController.h | 16 - .../XJDStopAnnouncementViewController.h | 15 + .../XJDStopAnnouncementViewController.m | 387 +++++++++ .../XJDStopQuestionCauseViewController.h | 16 + .../XJDStopQuestionCauseViewController.m | 40 + .../XJDStopQuestionSettingVC.h | 16 + .../XJDStopQuestionSettingVC.m | 185 +++++ .../XJDBasicHealthInfoViewController.h | 16 + .../XJDBasicHealthInfoViewController.m | 48 ++ .../controller/XJDHomePageViewController.h | 18 + .../controller/XJDHomePageViewController.m | 774 ++++++++++++++++++ .../XJDBillDetailViewController.m | 12 +- .../XJDBillListViewController.m | 12 +- .../XJDBillWithDrawViewController.m | 12 +- .../XJDWithdrawCashDetailViewController.m | 12 +- .../XJDworkSetingViewController.h | 16 + .../XJDworkSetingViewController.m | 490 +++++++++++ .../HomePage/model/XJDCancelReasonModel.h | 21 + .../HomePage/model/XJDCancelReasonModel.m | 12 + ...DoctorInfoModel.h => XJDDoctorInfoModel.h} | 8 +- .../HomePage/model/XJDDoctorInfoModel.m | 42 + .../{HQHomePageModel.h => XJDHomePageModel.h} | 8 +- .../Project/HomePage/model/XJDHomePageModel.m | 32 + .../Project/HomePage/model/XJDHospitalModel.h | 25 + .../Project/HomePage/model/XJDHospitalModel.m | 18 + .../HomePage/model/XJDProjectListModel.h | 33 + .../HomePage/model/XJDProjectListModel.m | 27 + ...rtModel.h => XJDQuestionBodyReportModel.h} | 4 +- .../model/XJDQuestionBodyReportModel.m | 12 + ...RecordModel.h => XJDQuestionRecordModel.h} | 4 +- .../HomePage/model/XJDQuestionRecordModel.m | 19 + ...aticsModel.h => XJDQuestionStaticsModel.h} | 4 +- .../HomePage/model/XJDQuestionStaticsModel.m | 12 + .../HomePage/model/XJDRecordIMListDateModel.h | 50 ++ .../HomePage/model/XJDRecordIMListDateModel.m | 19 + .../model/XJDRecoredListDetailModel.h | 142 ++++ .../model/XJDRecoredListDetailModel.m | 86 ++ .../HomePage/model/XJDStopReasonModel.h | 25 + .../HomePage/model/XJDStopReasonModel.m | 12 + ...opServiceModel.h => XJDStopServiceModel.h} | 8 +- .../HomePage/model/XJDStopServiceModel.m | 33 + .../Project/HomePage/model/XJDToolsModel.h | 21 + .../Project/HomePage/model/XJDToolsModel.m | 13 + ...DetailModel.h => XJDWithDrawDetailModel.h} | 2 +- .../HomePage/model/XJDWithDrawDetailModel.m | 19 + .../HomePage/model/XJDWorkSettingModel.h | 50 ++ .../HomePage/model/XJDWorkSettingModel.m | 35 + .../HomePage/model/YXCancelReasonModel.m | 12 - .../model/YXQuestionBodyReportModel.m | 12 - .../HomePage/model/YXQuestionStaticsModel.m | 12 - .../HomePage/model/YXStopReasonModel.m | 12 - .../XJDBasicHealthInfoView.h | 20 + .../XJDBasicHealthInfoView.m | 135 +++ .../XJDBillDetailTableViewCell.h | 21 + .../XJDBillDetailTableViewCell.m | 90 ++ .../XJDBillDtailTable.h | 21 + .../XJDBillDtailTable.m | 126 +++ .../XJDBillListTable.h | 22 + .../XJDBillListTable.m | 125 +++ .../XJDBillListTableViewCell.h | 18 + .../XJDBillListTableViewCell.m | 115 +++ .../DetailUserInfoView.h | 19 - .../XJDDetailTitleView.h | 18 + .../XJDDetailTitleView.m | 66 ++ .../XJDDetailUserInfoView.h | 19 + .../XJDDetailUserInfoView.m | 114 +++ .../XJDQuestionAppointmentTimeView.h | 33 + .../XJDQuestionAppointmentTimeView.m | 401 +++++++++ .../XJDQuestionFileDataView.h | 25 + .../XJDQuestionFileDataView.m | 103 +++ .../XJDQuestionHealthInfoView.h | 19 + .../XJDQuestionHealthInfoView.m | 140 ++++ .../XJDQuestionReportView.h | 22 + .../XJDQuestionReportView.m | 91 ++ .../XJDFileDataDeatilCenterView.h | 21 + .../XJDFileDataDeatilCenterView.m | 318 +++++++ .../XJDHistoryRecordTable.h | 18 + .../XJDHistoryRecordTable.m | 118 +++ .../XJDHistoryRecordTableViewCell.h | 16 + .../XJDHistoryRecordTableViewCell.m | 153 ++++ .../XJDSearchView.h | 24 + .../XJDSearchView.m | 97 +++ .../HospitalSelectedTableViewCell.h | 19 - .../XJDHospitalSelectedTableViewCell.h | 19 + .../XJDHospitalSelectedTableViewCell.m | 97 +++ .../XJDHospitalSelectedView.h | 23 + .../XJDHospitalSelectedView.m | 206 +++++ .../MoveAddDelete/XJDLIfeManagerFooterView.h | 13 + .../MoveAddDelete/XJDLIfeManagerFooterView.m | 22 + .../view/MoveAddDelete/XJDLifeManagerCell.h | 28 + .../view/MoveAddDelete/XJDLifeManagerCell.m | 157 ++++ .../MoveAddDelete/XJDLifeManagerHeaderView.h | 15 + .../MoveAddDelete/XJDLifeManagerHeaderView.m | 32 + .../view/MoveAddDelete/XJDLifeManagerLayout.h | 30 + .../view/MoveAddDelete/XJDLifeManagerLayout.m | 156 ++++ .../QuestionRecordTableViewCell.h | 20 - .../XJDQuestionRecordTableViewCell.h | 20 + .../XJDQuestionRecordTableViewCell.m | 171 ++++ .../XJDQuestionRecoredTable.h | 25 + .../XJDQuestionRecoredTable.m | 141 ++++ .../XJDStopQuestionPopView.h | 22 + .../XJDStopQuestionPopView.m | 148 ++++ .../XJDStopQuestionTableView.h | 21 + .../XJDStopQuestionTableView.m | 135 +++ .../XJDStopQuestionTableViewCell.h | 23 + .../XJDStopQuestionTableViewCell.m | 205 +++++ .../Project/HomePage/view/XJDTTestView.h | 13 + .../Project/HomePage/view/XJDTTestView.m | 329 ++++++++ .../XJDRefuseQuestionPopView.h | 26 + .../XJDRefuseQuestionPopView.m | 271 ++++++ .../XJDLoginFoundPasswordViewController.h | 17 + .../XJDLoginFoundPasswordViewController.m | 209 +++++ .../Login/XJDLoginProtocolWebViewController.h | 16 + .../Login/XJDLoginProtocolWebViewController.m | 32 + .../Login/XJDLoginSetPasswordViewController.h | 18 + .../Login/XJDLoginSetPasswordViewController.m | 178 ++++ ...ntroller.h => XJDRegisterViewController.h} | 2 +- .../Login/XJDRegisterViewController.m | 262 ++++++ .../Login_Register/XJDIMUserInfoModel.h | 29 + .../Login_Register/XJDIMUserInfoModel.m | 43 + ...wController.h => XJDLoginViewController.h} | 2 +- .../register/XJDLoginViewController.m | 506 ++++++++++++ .../controller/XJDAboutUsViewController.h | 16 + .../controller/XJDAboutUsViewController.m | 236 ++++++ .../controller/XJDGoodAtSicksViewController.h | 24 + .../controller/XJDGoodAtSicksViewController.m | 251 ++++++ .../controller/XJDMineViewController.h} | 4 +- .../Mine/controller/XJDMineViewController.m | 412 ++++++++++ .../XJDUserCenterInfoViewController.h | 16 + .../XJDUserCenterInfoViewController.m | 631 ++++++++++++++ .../XJDModifyPasswordViewController.h | 18 + .../XJDModifyPasswordViewController.m | 214 +++++ .../XJDCustomSchedulingViewController.h | 16 + .../XJDCustomSchedulingViewController.m | 73 ++ .../XJDSchedulingSettingViewController.h | 16 + .../XJDSchedulingSettingViewController.m | 133 +++ .../Project/Mine/model/HQMineModel.h | 17 - .../Project/Mine/model/HQMineModel.m | 12 - .../Project/Mine/model/XJDBillListModel.h | 40 + .../Project/Mine/model/XJDBillListModel.m | 32 + .../Mine/model/XJDSchedulingSettingModel.h | 20 + .../Mine/model/XJDSchedulingSettingModel.m | 12 + .../Mine/model/YXSchedulingSettingModel.m | 12 - .../CustomSchedulingTable.h | 28 - .../XJDCustomSchedulingTable.h | 28 + .../XJDCustomSchedulingTable.m | 305 +++++++ ...ViewCell.h => XJDWeakTitleTableViewCell.h} | 4 +- .../XJDWeakTitleTableViewCell.m | 65 ++ ....h => XJDAddSchedulingTimeTableViewCell.h} | 4 +- .../XJDAddSchedulingTimeTableViewCell.m | 64 ++ ...ewCell.h => XJDJumpHolidayTableViewCell.h} | 4 +- .../XJDJumpHolidayTableViewCell.m | 82 ++ .../XJDSchedulingDateTableViewCell.h | 17 + .../XJDSchedulingDateTableViewCell.m | 150 ++++ .../XJDSchedulingSetingTable.h | 27 + .../XJDSchedulingSetingTable.m | 308 +++++++ .../XJDSectionOneTableViewCell.h | 20 + .../XJDSectionOneTableViewCell.m | 93 +++ .../XJDTimeDisanceTableViewCell.h | 19 + .../XJDTimeDisanceTableViewCell.m | 100 +++ .../XJDVideoAudioTableViewCell.h | 18 + .../XJDVideoAudioTableViewCell.m | 110 +++ .../YXTimeDisanceTableViewCell.h | 19 - .../Project/Mine/view/XJDCustomDelectedView.h | 24 + .../Project/Mine/view/XJDCustomDelectedView.m | 79 ++ ...dGoodPopView.h => XJDUserAddGoodPopView.h} | 4 +- .../Project/Mine/view/XJDUserAddGoodPopView.m | 108 +++ .../ChatList/XJDChatListViewController.h | 16 + .../ChatList/XJDChatListViewController.m | 65 ++ .../Project/TUIChat/ChatViewController.m | 18 +- .../Controller/XJDChatMapViewController.h | 20 + .../Controller/XJDChatMapViewController.m | 157 ++++ .../XJDCurrentLocationViewController.h | 21 + .../XJDCurrentLocationViewController.m | 138 ++++ .../DoctorCardCell/DoctorIDCardMessageCell.m | 2 +- .../EndSystemCell/EndSystemCellData.m | 2 +- .../EndSystemCell/EndSystemSoSCell.m | 2 +- .../HealthDataCustom/healthDataCustomCell.m | 2 +- .../sendPhysicalCustomCell.m | 2 +- .../StarMarkCustom/StarMarkCellData.m | 2 +- .../StarMarkCustom/StarMarkCustomCell.m | 2 +- .../AppIcon 1.appiconset/Contents.json | 14 - .../AppIcon 1.appiconset/questionIcon.png | Bin 708687 -> 0 bytes .../AppIcon.appiconset/Contents.json | 3 + .../AppIcon.appiconset/图层 1@2x 1.png | Bin 0 -> 95810 bytes .../AppIcon.appiconset/图层 1@2x 2.png | Bin 0 -> 95810 bytes .../AppIcon.appiconset/图层 1@2x.png | Bin 0 -> 95810 bytes .../homeTabar_nomarl.imageset/Contents.json | 23 + .../homeTabar_nomarl.png | Bin 0 -> 586 bytes .../homeTabar_nomarl@2x.png | Bin 0 -> 1043 bytes .../homeTabar_nomarl@3x.png | Bin 0 -> 1530 bytes .../homeTabar_selected.imageset/Contents.json | 23 + .../homeTabar_selected.png | Bin 0 -> 634 bytes .../homeTabar_selected@2x.png | Bin 0 -> 1162 bytes .../homeTabar_selected@3x.png | Bin 0 -> 1690 bytes .../mianTabar_nomarl.imageset/Contents.json | 23 + .../mianTabar_nomarl.png | Bin 0 -> 695 bytes .../mianTabar_nomarl@2x.png | Bin 0 -> 1266 bytes .../mianTabar_nomarl@3x.png | Bin 0 -> 1935 bytes .../mianTabar_selected.imageset/Contents.json | 23 + .../mianTabar_selected.png | Bin 0 -> 732 bytes .../mianTabar_selected@2x.png | Bin 0 -> 1408 bytes .../mianTabar_selected@3x.png | Bin 0 -> 2119 bytes .../Supporting Files/PrefixHeader.pch | 10 +- .../Supporting Files/XJDConst.h | 18 + .../Supporting Files/XJDConst.m | 17 + .../DoctorXinjiang/Utils/XJDCommonUtils.h | 95 +++ .../DoctorXinjiang/Utils/XJDCommonUtils.m | 435 ++++++++++ .../DoctorXinjiang/Utils/XJDLineTextField.h | 19 + .../DoctorXinjiang/Utils/XJDLineTextField.m | 26 + 251 files changed, 18404 insertions(+), 453 deletions(-) create mode 100755 DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/XJDNetAPI.h create mode 100755 DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/XJDNetAPI.m create mode 100755 DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDKeychainTool.h create mode 100755 DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDKeychainTool.m create mode 100755 DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDUserInfo.h create mode 100755 DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDUserInfo.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Base/HQBaseTabBarController.h delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Base/HQBaseWebViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HQPopView/XJDShowPromptPopView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HQPopView/XJDShowPromptPopView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDDownToolsManager.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDDownToolsManager.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDHealthPhyReportModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDHealthPhyReportModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDLookReportImageViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDLookReportImageViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDQuestionDetailViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDQuestionDetailViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameSubTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameSubTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameTopTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameTopTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDimageReportTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDimageReportTableViewCell.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/YXSickNameSubTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDAudioVideoRecordViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDAudioVideoRecordViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDPictureRecordViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDPictureRecordViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDQustionRecordViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDQustionRecordViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionStatistics(咨询统计)/XJDQuestionStatisticsViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionStatistics(咨询统计)/XJDQuestionStatisticsViewController.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/StopAnnouncementViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopAnnouncementViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopAnnouncementViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionCauseViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionCauseViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionSettingVC.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionSettingVC.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDBasicHealthInfoViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDBasicHealthInfoViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDHomePageViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDHomePageViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/workSetting(排班设置)/XJDworkSetingViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/workSetting(排班设置)/XJDworkSetingViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDCancelReasonModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDCancelReasonModel.m rename DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/{YXDoctorInfoModel.h => XJDDoctorInfoModel.h} (87%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDDoctorInfoModel.m rename DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/{HQHomePageModel.h => XJDHomePageModel.h} (83%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHomePageModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHospitalModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHospitalModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDProjectListModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDProjectListModel.m rename DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/{QuestionBodyReportModel.h => XJDQuestionBodyReportModel.h} (81%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionBodyReportModel.m rename DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/{QuestionRecordModel.h => XJDQuestionRecordModel.h} (95%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionRecordModel.m rename DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/{YXQuestionStaticsModel.h => XJDQuestionStaticsModel.h} (82%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionStaticsModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecordIMListDateModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecordIMListDateModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecoredListDetailModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecoredListDetailModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopReasonModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopReasonModel.m rename DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/{StopServiceModel.h => XJDStopServiceModel.h} (82%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopServiceModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDToolsModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDToolsModel.m rename DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/{withDrawDetailModel.h => XJDWithDrawDetailModel.h} (97%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWithDrawDetailModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWorkSettingModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWorkSettingModel.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXCancelReasonModel.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionBodyReportModel.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionStaticsModel.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXStopReasonModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BasicHealthInfo(基本健康信息)/XJDBasicHealthInfoView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BasicHealthInfo(基本健康信息)/XJDBasicHealthInfoView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDetailTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDetailTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDtailTable.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDtailTable.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTable.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTable.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTableViewCell.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/DetailUserInfoView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailTitleView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailTitleView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailUserInfoView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailUserInfoView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionAppointmentTimeView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionAppointmentTimeView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionFileDataView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionFileDataView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionHealthInfoView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionHealthInfoView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionReportView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionReportView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/FileDataDetailView(档案详情)/XJDFileDataDeatilCenterView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/FileDataDetailView(档案详情)/XJDFileDataDeatilCenterView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTable.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTable.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDSearchView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDSearchView.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/HospitalSelectedTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLIfeManagerFooterView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLIfeManagerFooterView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerHeaderView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerHeaderView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerLayout.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerLayout.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/QuestionRecordTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecordTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecordTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecoredTable.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecoredTable.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionPopView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionPopView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/XJDTTestView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/XJDTTestView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/refuseQuestion(拒绝咨询)/XJDRefuseQuestionPopView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/refuseQuestion(拒绝咨询)/XJDRefuseQuestionPopView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginFoundPasswordViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginFoundPasswordViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginProtocolWebViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginProtocolWebViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginSetPasswordViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginSetPasswordViewController.m rename DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/{HQRegisterViewController.h => XJDRegisterViewController.h} (76%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDRegisterViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/XJDIMUserInfoModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/XJDIMUserInfoModel.m rename DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/{YXLoginViewController.h => XJDLoginViewController.h} (75%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/XJDLoginViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDAboutUsViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDAboutUsViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDGoodAtSicksViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDGoodAtSicksViewController.m rename DoctorXinjiang/DoctorXinjiang/Project/{Login_Register/register/HQRegisterViewController.h => Mine/controller/XJDMineViewController.h} (62%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDMineViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDUserCenterInfoViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDUserCenterInfoViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/modifyPassword(修改密码)/XJDModifyPasswordViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/modifyPassword(修改密码)/XJDModifyPasswordViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDCustomSchedulingViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDCustomSchedulingViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDSchedulingSettingViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDSchedulingSettingViewController.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/model/HQMineModel.h delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/model/HQMineModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDBillListModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDBillListModel.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDSchedulingSettingModel.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDSchedulingSettingModel.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/model/YXSchedulingSettingModel.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/CustomSchedulingTable.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDCustomSchedulingTable.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDCustomSchedulingTable.m rename DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/{YXWeakTitleTableViewCell.h => XJDWeakTitleTableViewCell.h} (63%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDWeakTitleTableViewCell.m rename DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/{YXAddSchedulingTimeTableViewCell.h => XJDAddSchedulingTimeTableViewCell.h} (74%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDAddSchedulingTimeTableViewCell.m rename DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/{YXJumpHolidayTableViewCell.h => XJDJumpHolidayTableViewCell.h} (62%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDJumpHolidayTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingDateTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingDateTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingSetingTable.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingSetingTable.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSectionOneTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSectionOneTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDTimeDisanceTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDTimeDisanceTableViewCell.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDVideoAudioTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDVideoAudioTableViewCell.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXTimeDisanceTableViewCell.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDCustomDelectedView.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDCustomDelectedView.m rename DoctorXinjiang/DoctorXinjiang/Project/Mine/view/{userAddGoodPopView.h => XJDUserAddGoodPopView.h} (77%) create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDUserAddGoodPopView.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatList/XJDChatListViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatList/XJDChatListViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDChatMapViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDChatMapViewController.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDCurrentLocationViewController.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDCurrentLocationViewController.m delete mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon 1.appiconset/Contents.json delete mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon 1.appiconset/questionIcon.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon.appiconset/图层 1@2x 1.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon.appiconset/图层 1@2x 2.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon.appiconset/图层 1@2x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/Contents.json create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/homeTabar_nomarl.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/homeTabar_nomarl@2x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/homeTabar_nomarl@3x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_selected.imageset/Contents.json create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_selected.imageset/homeTabar_selected.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_selected.imageset/homeTabar_selected@2x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_selected.imageset/homeTabar_selected@3x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/Contents.json create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/mianTabar_nomarl.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/mianTabar_nomarl@2x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/mianTabar_nomarl@3x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/Contents.json create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/mianTabar_selected.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/mianTabar_selected@2x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/mianTabar_selected@3x.png create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/XJDConst.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Supporting Files/XJDConst.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Utils/XJDCommonUtils.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Utils/XJDCommonUtils.m create mode 100644 DoctorXinjiang/DoctorXinjiang/Utils/XJDLineTextField.h create mode 100644 DoctorXinjiang/DoctorXinjiang/Utils/XJDLineTextField.m diff --git a/DoctorXinjiang/DoctorXinjiang.xcodeproj/project.pbxproj b/DoctorXinjiang/DoctorXinjiang.xcodeproj/project.pbxproj index bed6de1..1f7170e 100644 --- a/DoctorXinjiang/DoctorXinjiang.xcodeproj/project.pbxproj +++ b/DoctorXinjiang/DoctorXinjiang.xcodeproj/project.pbxproj @@ -407,18 +407,20 @@ GCC_PREFIX_HEADER = "$(SRCROOT)/DoctorXinjiang/Supporting Files/PrefixHeader.pch"; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = "$(SRCROOT)/DoctorXinjiang/Supporting Files/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "健康油我专家端"; INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; - INFOPLIST_KEY_NSCameraUsageDescription = "专家端需要访问您的相机用来您的头像上传是否同意?"; + INFOPLIST_KEY_NSCameraUsageDescription = "健康油我专家端需要访问您的相机用来您的头像上传是否同意?"; INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "始终允许访问位置信息"; INFOPLIST_KEY_NSLocationUsageDescription = "永不允许访问位置信息"; INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "专家端使用期间允许访问位置信息"; - INFOPLIST_KEY_NSMicrophoneUsageDescription = "专家端需要访问您的麦克风用来视频录制,是否同意?"; - INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "专家端需要访问你的相册,方便您保存图片,是否同意?"; + INFOPLIST_KEY_NSMicrophoneUsageDescription = "健康油我专家端需要访问您的麦克风用来视频录制,是否同意?"; + INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "健康油我专家端需要访问你的相册,方便您保存图片,是否同意?"; INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "专家端需要访问您的相册上传图片,方便您的使用,是否同意?"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UIUserInterfaceStyle = Light; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -454,18 +456,20 @@ GCC_PREFIX_HEADER = "$(SRCROOT)/DoctorXinjiang/Supporting Files/PrefixHeader.pch"; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = "$(SRCROOT)/DoctorXinjiang/Supporting Files/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "健康油我专家端"; INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; - INFOPLIST_KEY_NSCameraUsageDescription = "专家端需要访问您的相机用来您的头像上传是否同意?"; + INFOPLIST_KEY_NSCameraUsageDescription = "健康油我专家端需要访问您的相机用来您的头像上传是否同意?"; INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "始终允许访问位置信息"; INFOPLIST_KEY_NSLocationUsageDescription = "永不允许访问位置信息"; INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "专家端使用期间允许访问位置信息"; - INFOPLIST_KEY_NSMicrophoneUsageDescription = "专家端需要访问您的麦克风用来视频录制,是否同意?"; - INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "专家端需要访问你的相册,方便您保存图片,是否同意?"; + INFOPLIST_KEY_NSMicrophoneUsageDescription = "健康油我专家端需要访问您的麦克风用来视频录制,是否同意?"; + INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "健康油我专家端需要访问你的相册,方便您保存图片,是否同意?"; INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "专家端需要访问您的相册上传图片,方便您的使用,是否同意?"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UIUserInterfaceStyle = Light; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/DoctorXinjiang/DoctorXinjiang/Define/ThirdMacros.h b/DoctorXinjiang/DoctorXinjiang/Define/ThirdMacros.h index fe5ce2b..d1df152 100755 --- a/DoctorXinjiang/DoctorXinjiang/Define/ThirdMacros.h +++ b/DoctorXinjiang/DoctorXinjiang/Define/ThirdMacros.h @@ -28,7 +28,7 @@ //高德key -#define AMAPSDKKEY @"6f5c1979535a0bea4965d033306c61a7" +#define AMAPSDKKEY @"0017de4b0745e1e1be58e9fa89b66f56" //友盟appster diff --git a/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/XJDNetAPI.h b/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/XJDNetAPI.h new file mode 100755 index 0000000..1e83ff1 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/XJDNetAPI.h @@ -0,0 +1,104 @@ +// +// API.h +// XZYNetworking +// +// Created by 仁康信息 on 2022/9/9. +// Copyright © 2022年 仁康信息. All rights reserved. +// + +#import +#import "YXNetworkingWithCache.h" + +@interface XJDNetAPI : NSObject + +@property (nonatomic,strong) YXNetworkingWithCache * httpRequest; + +#pragma mark - init方法 +//无需token +- (instancetype)init:(id)delegate tag:(NSString *)tag; +//携带token +- (instancetype)init:(id)delegate tag:(NSString *)tag NeedToken:(NSString *)NeedToken; + +#pragma mark - 首页模块 + +- (void)getHomeData:(NSMutableDictionary *)parmaDic; +- (void)getHomeSmallData:(NSMutableDictionary *)parmaDic; +- (void)getHomeFoundSmallHelpData:(NSMutableDictionary *)parmaDic; + +//接受咨询 +- (void)getAcceptQuestion:(NSMutableDictionary *)parmaDic; + +#pragma mark: -医生排班 + +- (void)PostDoctorWorkTime:(NSMutableDictionary *)parmDic; +- (void)GetDoctorWorkSetting:(NSMutableDictionary *)pamraDic; + +#pragma mark:咨询统计 + +- (void)GetQuestionStatistics:(NSMutableDictionary *)pamraDic; +- (void)GetStatisticsEarnings:(NSMutableDictionary *)pamraDic; +- (void)GetQuestionRecoredList:(NSMutableDictionary *)parmDic; +- (void)GetRecoredQuestionDetail:(NSMutableDictionary *)pamraDic; +- (void)getBodyReportDeatil:(NSMutableDictionary *)parmDic; +- (void)GetCancelReasourData:(NSMutableDictionary *)pamraDic; +- (void)submitCancelreasourData:(NSMutableDictionary *)pamraDic; +- (void)fileDetatilData:(NSMutableDictionary *)pamraDic; +#pragma mark:暂停公告 + +- (void)GetPublishServerMessage:(NSMutableDictionary *)pamraDic; +- (void)GetSPublishServerRecored:(NSMutableDictionary *)pamraDic; +- (void)GetChangePublishServer:(NSMutableDictionary *)pamraDic; +- (void)GetPhyscialSearchAnomalyData:(NSMutableDictionary *)parmDic; + +#pragma mark:发布公告 + +- (void)PostStopPublishServer:(NSMutableDictionary *)pamraDic; + +//查询停诊原因 +- (void)GetPublishServerReason:(NSMutableDictionary *)pamraDic; +//查询当前咨询数量 +- (void)GetCurrentServerNumber:(NSMutableDictionary *)pamraDic; +#pragma mark: im + +- (void)PostEndSoSIMQuestion:(NSMutableDictionary *)pamraDic; +- (void)GetEndPictureEndIMQuestion:(NSMutableDictionary *)pamraDic; +- (void)PostGroupIDArray:(NSMutableDictionary *)parmDic; + +#pragma mark - 我的模块 + +- (void)GetInquireDoctorInfo:(NSMutableDictionary *)pamraDic; + +//查询科室 +- (void)GetInquireDoctorRoomInfo:(NSMutableDictionary *)pamraDic; +//个人简介 +- (void)postUpdateDoctorInfo:(NSMutableDictionary *)pamraDic; +//收益明细 +- (void)GetBillListData:(NSMutableDictionary *)pamraDic; +//提现详情 +- (void)withDrawDetailsData:(NSMutableDictionary *)pamraDic; + +#pragma mark - 登录注册 + +- (void)PostLogin:(NSMutableDictionary *)parmDic; +- (void)GetIMLoginAccount:(NSMutableDictionary *)pamraDic; +- (void)postSetUserPassword:(NSMutableDictionary *)parmDic; +- (void)postImageArrayUpload:(NSArray *)imageArray; +- (void)postResetUserNewPassword:(NSMutableDictionary *)parmDic; +//更新头像 +- (void)updateUserAvatar:(NSMutableDictionary *)parmDic; +//更新密码 +- (void)updateDoctorLoginPassword:(NSMutableDictionary *)pamraDic; +- (void)getUserAgreementPrivacy:(NSMutableDictionary *)parmDic; +- (void)getVesionHideRegis:(NSMutableDictionary *)parmDic; +#pragma mark - IM模块 + +- (void)getAgainSessionReservationDate:(NSMutableDictionary *)parmDic; +- (void)getendVideoReportById:(NSMutableDictionary *)parmDic; +//获取体检语音 +- (void)docotorReportListAudioResource:(NSMutableDictionary *)parmDic; +- (void)docotorReportListHistoryDoctorAudioResource:(NSMutableDictionary *)parmDic; +- (void)GetDoctorPhyscialIDCardSearch:(NSMutableDictionary *)parmDic; +- (void)getHistoryReportById:(NSMutableDictionary *)parmDic; +- (void)getSendVideoStart:(NSMutableDictionary *)pamraDic; + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/XJDNetAPI.m b/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/XJDNetAPI.m new file mode 100755 index 0000000..2f3f329 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/XJDNetAPI.m @@ -0,0 +1,333 @@ +// +// API.m +// XZYNetworking +// +// Created by 仁康信息 on 2022/9/9. +// Copyright © 2022年 仁康信息. All rights reserved. +// + +#import "XJDNetAPI.h" +#define needToken httpRequest.needToken +#define isLoginFlag httpRequest.isLoginFlag + +@implementation XJDNetAPI + +#pragma mark - init方法 +@synthesize httpRequest; + +//无需token +- (instancetype)init:(id)delegate tag:(NSString *)tag +{ + XJDUserInfo * user = [XJDCommonUtils keyedUnarchiverWithKey:LoginUserInfo]; + return [self init:delegate tag:tag NeedToken:user.token]; +} + +//携带token +- (instancetype)init:(id)delegate tag:(NSString *)tag NeedToken:(NSString *)NeedToken +{ + if (self=[super init]) { + if (![tag isEqualToString:@"LOGINGAPI"] || ![tag isEqualToString:@"CHANGEAPI"] ) { + + XJDUserInfo * user = [XJDCommonUtils keyedUnarchiverWithKey:LoginUserInfo]; + + httpRequest = [[YXNetworkingWithCache alloc] initWithDelegate:delegate bindTag:tag NeedToken:user.token]; + }else{ + httpRequest = [[YXNetworkingWithCache alloc] initWithDelegate:delegate bindTag:tag NeedToken:@""]; + + } + } + return self; +} +#pragma mark - 首页模块 +- (void)getHomeData:(NSMutableDictionary *)parmaDic { + + //GET https://starry.test.icdat.cn/health-consultation/api/consult/conSession/selectSessionProfessorIng HTTP/1.1 + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/selectSessionProfessorIngNew",Http] params:parmaDic]; + + +} + +- (void)getHomeSmallData:(NSMutableDictionary *)parmaDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/insertProfessorAndHelperSessionShow",Http] params:parmaDic]; + +} + +- (void)getHomeFoundSmallHelpData:(NSMutableDictionary *)parmaDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/insertProfessorAndHelperSession",Http] params:parmaDic]; + +} +- (void)getAcceptQuestion:(NSMutableDictionary *)parmaDic { + +// GET https://cqyt.test.yg.icdat.cn/health-consultation/api/consult/conSession/sessionConfirm?id=1744619023486275586&startTime=1705287600000&endTime=1705294800000 HTTP/1.1 + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/sessionConfirm",Http] params:parmaDic]; +} +//结束图文咨询 +- (void)GetEndPictureEndIMQuestion:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/finishSession",Http] params:pamraDic]; +// /health-consultation/api/consult/conSession/finishSession +} + +- (void)PostEndSoSIMQuestion:(NSMutableDictionary *)pamraDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-emergency/api/emergency/order/orderOver",Http] params:pamraDic]; + +} + +- (void)GetInquireDoctorInfo:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conDoctor/queryDoctor",Http] params:pamraDic]; + +} + +#pragma mark: -医生排班 + +- (void)PostDoctorWorkTime:(NSMutableDictionary *)parmDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conDoctorScheduling/insertDoctorScheduling",Http] params:parmDic]; + +} + +#pragma mark: -查询医生排班 +- (void)GetDoctorWorkSetting:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conDoctorScheduling/selectDoctorScheduling",Http] params:pamraDic]; + +} + +- (void)postUpdateDoctorInfo:(NSMutableDictionary *)pamraDic { + +// POST https://cqyt.test.yg.icdat.cn/health-consultation/api/consult/conDoctor/update HTTP/1.1 + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conDoctor/update",Http] params:pamraDic]; + + +} +#pragma mark:咨询统计 + +- (void)GetQuestionStatistics:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conCostStatistics/groupByTypehList",Http] params:pamraDic]; + +} + +- (void)GetStatisticsEarnings:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conCostStatistics/getStatistics",Http] params:pamraDic]; + +} + +- (void)GetQuestionRecoredList:(NSMutableDictionary *)parmDic { + + //selectSessionListByDoctorId + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/selectSessionListByDoctorIdNew",Http] params:parmDic]; +} + +#pragma mark:咨询详情 +- (void)GetRecoredQuestionDetail:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/sessionDetailDoctorAll",Http] params:pamraDic]; + +} +- (void)getBodyReportDeatil:(NSMutableDictionary *)parmDic { + +// [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@cqyt/middleController/getCheckItemBySfzhNewNew",Http] params:parmDic]; + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-archives/historyReport/selectNewHealthReport",Http] params:parmDic]; + +} +//拒绝理由 +- (void)GetCancelReasourData:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/selectRejectReason",Http] params:pamraDic]; + +} +//开始视频 + +- (void)getSendVideoStart:(NSMutableDictionary *)pamraDic { + +// GET https://cqyt.test.yg.icdat.cn/health-consultation/api/consult/conSessionVideoInfo/startVideoSession?sessionId=1778696654498156546 HTTP/1.1 + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSessionVideoInfo/startVideoSession",Http] params:pamraDic]; + +} +//确认拒绝 +- (void)submitCancelreasourData:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/sessionReject",Http] params:pamraDic]; + +} +- (void)fileDetatilData:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/medicalRecords/selectConMedicalRecordsByIdDoctor",Http] params:pamraDic]; +} + +//提现详情 +- (void)withDrawDetailsData:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conCostStatistics/queryById",Http] params:pamraDic]; +} + +- (void)getAgainSessionReservationDate:(NSMutableDictionary *)parmDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/sessionReservationDate/sessionReservationDate",Http] params:parmDic]; + +} + + +//查询体检信息(整合,带正常异常数量) + +- (void)GetPhyscialSearchAnomalyData:(NSMutableDictionary *)parmDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/cqyt/middleController/getCheckItemBySfzhTotal/",Http] params:parmDic]; + +} + +#pragma mark:暂停公告 + +//暂停公告发布 +- (void)GetPublishServerMessage:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/conDoctor/getServiceByDoctorId",Http] params:pamraDic]; + +} +//暂停公告列表 +- (void)GetSPublishServerRecored:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conService/list",Http] params:pamraDic]; + +} +//编辑公告状态 +- (void)GetChangePublishServer:(NSMutableDictionary *)pamraDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conService/edit",Http] params:pamraDic]; + +} + +//发布公告状态 +- (void)PostStopPublishServer:(NSMutableDictionary *)pamraDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conService/add",Http] params:pamraDic]; + +} +//查询停诊原因 +- (void)GetPublishServerReason:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conDoctor/selectDictList",Http] params:pamraDic]; + +} +//查询当前咨询数量 +- (void)GetCurrentServerNumber:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/selectSessionVideoExistDoctor",Http] params:pamraDic]; + +} + +//上传图片 +- (void)postImageArrayUpload:(NSArray *)imageArray { + + [httpRequest upLoadDataWithUrlStr:[NSString stringWithFormat:@"%@/sys/upload/uploadFileMany",Http] params:nil withDataArray:imageArray]; +} +//更新头像 +- (void)updateUserAvatar:(NSMutableDictionary *)parmDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/sys/user/updateUserAvatar",Http] params:parmDic]; +} +#pragma mark - 登录注册 +- (void)PostLogin:(NSMutableDictionary *)parmDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-consultation/conDoctor/loginDoctor",Http] params:parmDic]; + +} +- (void)getUserAgreementPrivacy:(NSMutableDictionary *)parmDic { + + //GET https://cqyt.test.yg.icdat.cn/health-consultation/api/consult/conDoctor/selectDictList?dictKey=jump_url HTTP/1.1 + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conDoctor/selectDictList?dictKey=jump_url",Http] params:parmDic]; + + +} +/* + IM登录 + */ +- (void)GetIMLoginAccount:(NSMutableDictionary *)pamraDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-im/wnapp/userSigAndroid",Http] params:pamraDic]; +} + +- (void)PostGroupIDArray:(NSMutableDictionary *)parmDic { + +// POST https://starry.test.icdat.cn/health-consultation/api/consult/conSession/selectSessionByImIdNew HTTP/1.1 + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSession/selectSessionByImIdNewNew",Http] params:parmDic]; +} + +#pragma mark:我的 +- (void)GetInquireDoctorRoomInfo:(NSMutableDictionary *)pamraDic { + +// GET https://cqyt.test.yg.icdat.cn/health-consultation/api/consult/conSicks/selectSickListByDepartmentIdDoctorSearch?departmentId=1677938163633926145 HTTP/1.1 + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conSicks/selectSickListByDepartmentIdDoctorSearch",Http] params:pamraDic]; + +} + +- (void)GetBillListData:(NSMutableDictionary *)pamraDic { + // + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conCostStatistics/findlistpage",Http] params:pamraDic]; +} + +//修改密码 +- (void)updateDoctorLoginPassword:(NSMutableDictionary *)pamraDic { + //T https://cqyt.test.yg.icdat.cn/health-consultation/api/consult/conDoctor/updatePassword + [httpRequest httpPUTCacheRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/conDoctor/updatePassword",Http] params:pamraDic]; +} + +- (void)postResetUserNewPassword:(NSMutableDictionary *)parmDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-system/api/anon/sys/resetUserPwd",Http] params:parmDic]; + +} + +- (void)postSetUserPassword:(NSMutableDictionary *)parmDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-system/api/anon/sys/checkUser",Http] params:parmDic]; + +} +- (void)getVesionHideRegis:(NSMutableDictionary *)parmDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-system/sys/api/notice/selectIosUpdate",Http] params:parmDic]; +} + +//获取体检语音 +- (void)docotorReportListAudioResource:(NSMutableDictionary *)parmDic{ + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-archives/historyReport/getVoiceUrl",Http] params:parmDic]; + +} +- (void)docotorReportListHistoryDoctorAudioResource:(NSMutableDictionary *)parmDic{ + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-archives/historyReport/convertVoice2",Http] params:parmDic]; + +} +- (void)GetDoctorPhyscialIDCardSearch:(NSMutableDictionary *)parmDic { + + [httpRequest httpPostRequest:[NSString stringWithFormat:@"%@/health-archives/historyReport/getHistoryReportByPage",Http] params:parmDic]; + +} +- (void)getHistoryReportById:(NSMutableDictionary *)parmDic { + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-archives/historyReport/getHistoryReportById",Http] params:parmDic]; + +} + +- (void)getendVideoReportById:(NSMutableDictionary *)parmDic { + +// GET https://cqyt.test.yg.icdat.cn/health-consultation/api/consult/sessionReservationDate/endPhone?id=1780071436959469569 HTTP/1.1 + + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-consultation/api/consult/sessionReservationDate/endPhone",Http] params:parmDic]; + +} + +//结束咨询 +- (void)getABMUpdate:(NSMutableDictionary *)parmDic { + + [httpRequest httpGetRequest:@"https://base.icdat.cn/latest" params:parmDic]; + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/YXNetworkingWithCache.m b/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/YXNetworkingWithCache.m index 4e581f7..fa965d3 100755 --- a/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/YXNetworkingWithCache.m +++ b/DoctorXinjiang/DoctorXinjiang/Manager/NetworkingManager/YXNetworkingWithCache.m @@ -146,7 +146,7 @@ typedef NS_ENUM(NSInteger, RequestType) { if ([statusCode containsString:@"(401)"]) { DLog(@"%@",error.userInfo); [MBProgressHUD showErrorMessage:@"身份验证过期"]; - [HQCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; + [XJDCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; KPostNotification(KNotificationLoginStateChange, @NO); }else{ [MBProgressHUD showErrorMessage:@"网络服务错误"]; @@ -165,7 +165,7 @@ typedef NS_ENUM(NSInteger, RequestType) { if ([statusCode containsString:@"(401)"]) { DLog(@"%@",error.userInfo); [EasyTextView showErrorText:@"身份验证过期"]; - [HQCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; + [XJDCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; KPostNotification(KNotificationLoginStateChange, @NO); }else { @@ -186,7 +186,7 @@ typedef NS_ENUM(NSInteger, RequestType) { if ([statusCode containsString:@"(401)"]) { DLog(@"%@",error.userInfo); [EasyTextView showErrorText:@"身份验证过期"]; - [HQCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; + [XJDCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; KPostNotification(KNotificationLoginStateChange, @NO); } else @@ -311,7 +311,7 @@ typedef NS_ENUM(NSInteger, RequestType) { } if (flag == true) { - DLog(@" 返回Json\n%@\n %@", [HQCommonUtils DataTOjsonString:response],url); + DLog(@" 返回Json\n%@\n %@", [XJDCommonUtils DataTOjsonString:response],url); if ([response.allKeys containsObject:@"result"]) { [self showSuccess:[response objectForKey:@"result"]]; } diff --git a/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDKeychainTool.h b/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDKeychainTool.h new file mode 100755 index 0000000..ca48ea9 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDKeychainTool.h @@ -0,0 +1,36 @@ + +// XJDKeychainTool.h +// idleBuy +// +// Created by ios on 2018/5/28. +// Copyright © 2018年 ios. All rights reserved. +#import +#import + +@interface XJDKeychainTool : NSObject +/** + * 储存字符串到🔑钥匙串 + * + * @param sValue 对应的Value + * @param sKey 对应的Key + */ ++ (void)saveKeychainValue:(NSString *)sValue key:(NSString *)sKey; + + +/** + * 从🔑钥匙串获取字符串 + * + * @param sKey 对应的Key + * + * @return 返回储存的Value + */ ++ (NSString *)readKeychainValue:(NSString *)sKey; + + +/** + * 从🔑钥匙串删除字符串 + * + * @param sKey 对应的Key + */ ++ (void)deleteKeychainValue:(NSString *)sKey; +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDKeychainTool.m b/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDKeychainTool.m new file mode 100755 index 0000000..2afa822 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDKeychainTool.m @@ -0,0 +1,56 @@ + +// NewLottery +// +// Created by 孙号斌 on 2017/2/14. +// Copyright © 2017年 孙号斌. All rights reserved. +// + +#import "XJDKeychainTool.h" + +@implementation XJDKeychainTool ++ (NSMutableDictionary *)getKeychainQuery:(NSString *)service{ + return [NSMutableDictionary dictionaryWithObjectsAndKeys: + (__bridge_transfer id)kSecClassGenericPassword, + (__bridge_transfer id)kSecClass,service, + (__bridge_transfer id)kSecAttrService,service, + (__bridge_transfer id)kSecAttrAccount, + (__bridge_transfer id)kSecAttrAccessibleAfterFirstUnlock, + (__bridge_transfer id)kSecAttrAccessible, + nil]; +} + ++ (void)saveKeychainValue:(NSString *)sValue key:(NSString *)sKey{ + NSMutableDictionary * keychainQuery = [self getKeychainQuery:sKey]; + SecItemDelete((__bridge_retained CFDictionaryRef)keychainQuery); + + [keychainQuery setObject:[NSKeyedArchiver archivedDataWithRootObject:sValue] forKey:(__bridge_transfer id)kSecValueData]; + + SecItemAdd((__bridge_retained CFDictionaryRef)keychainQuery, NULL); + +} + ++ (NSString *)readKeychainValue:(NSString *)sKey +{ + NSString *ret = nil; + NSMutableDictionary *keychainQuery = [self getKeychainQuery:sKey]; + [keychainQuery setObject:(id)kCFBooleanTrue forKey:(__bridge_transfer id)kSecReturnData]; + [keychainQuery setObject:(__bridge_transfer id)kSecMatchLimitOne forKey:(__bridge_transfer id)kSecMatchLimit]; + CFDataRef keyData = NULL; + if (SecItemCopyMatching((__bridge CFDictionaryRef)keychainQuery, (CFTypeRef *)&keyData) == noErr) { + @try { + ret = (NSString *)[NSKeyedUnarchiver unarchiveObjectWithData:(__bridge NSData *)keyData]; + } @catch (NSException *e) { + NSLog(@"Unarchive of %@ failed: %@", sKey, e); + } @finally { + } + } + if (keyData) + CFRelease(keyData); + return ret; +} ++ (void)deleteKeychainValue:(NSString *)sKey { + NSMutableDictionary *keychainQuery = [self getKeychainQuery:sKey]; + SecItemDelete((__bridge CFDictionaryRef)keychainQuery); +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDUserInfo.h b/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDUserInfo.h new file mode 100755 index 0000000..c056ba6 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDUserInfo.h @@ -0,0 +1,38 @@ +// +// XJDUserInfo.h +// idleBuy +// +// Created by ios on 2018/5/30. +// Copyright © 2018年 ios. All rights reserved. +// + +#import + +@interface XJDUserInfo : NSObject + +@property (nonatomic, strong) NSDictionary *userInfo; + +@property (nonatomic, copy) NSString * user_id; +@property (nonatomic, copy) NSString * username; +@property (nonatomic, copy) NSString * realname; +@property (nonatomic, copy) NSString * avatar; +@property (nonatomic, copy) NSString * phone; +@property (nonatomic, copy) NSString * orgCode; +@property (nonatomic, copy) NSString * sex; +@property (nonatomic, copy) NSString * loginTenantId; +@property (nonatomic, copy) NSString * status_dictText; +@property (nonatomic, copy) NSString * delFlag; +@property (nonatomic, copy) NSString * workNo; +@property (nonatomic, copy) NSString * idCard; +@property (nonatomic, copy) NSString * sex_dictText; +@property (nonatomic, copy) NSString * email; + +@property (nonatomic, copy) NSString * status; +@property (nonatomic, copy) NSString * depart; +@property (nonatomic, copy) NSString * personType_dictText; +@property (nonatomic, copy) NSString * createTime; + +@property (nonatomic, copy) NSString * token; + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDUserInfo.m b/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDUserInfo.m new file mode 100755 index 0000000..25b62ea --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Manager/UserManager/XJDUserInfo.m @@ -0,0 +1,73 @@ +// +// YXUserInfo.m +// idleBuy +// +// Created by ios on 2018/5/30. +// Copyright © 2018年 ios. All rights reserved. +// + +#import "XJDUserInfo.h" + +@implementation XJDUserInfo +- (void)encodeWithCoder:(NSCoder *)aCoder +{ + [aCoder encodeObject:self.userInfo forKey:@"userInfo"]; + [aCoder encodeObject:self.user_id forKey:@"user_id"]; + [aCoder encodeObject:self.avatar forKey:@"avatar"]; + [aCoder encodeObject:self.username forKey:@"username"]; + [aCoder encodeObject:self.realname forKey:@"realname"]; + [aCoder encodeObject:self.phone forKey:@"phone"]; + [aCoder encodeObject:self.idCard forKey:@"idCard"]; + [aCoder encodeObject:self.status forKey:@"status"]; + [aCoder encodeObject:self.workNo forKey:@"workNo"]; + [aCoder encodeObject:self.token forKey:@"token"]; + [aCoder encodeObject:self.sex_dictText forKey:@"sex_dictText"]; + + + +} +- (id)initWithCoder:(NSCoder *)aDecoder +{ + self = [super init]; + if (self) + { + self.userInfo = [aDecoder decodeObjectForKey:@"userInfo"]; + self.user_id = [aDecoder decodeObjectForKey:@"user_id"]; + self.avatar = [aDecoder decodeObjectForKey:@"avatar"]; + self.username = [aDecoder decodeObjectForKey:@"username"]; + self.realname = [aDecoder decodeObjectForKey:@"realname"]; + self.phone = [aDecoder decodeObjectForKey:@"phone"]; + self.idCard = [aDecoder decodeObjectForKey:@"idCard"]; + self.token = [aDecoder decodeObjectForKey:@"token"]; + self.status = [aDecoder decodeObjectForKey:@"status"]; + self.workNo = [aDecoder decodeObjectForKey:@"workNo"]; + self.sex_dictText = [aDecoder decodeObjectForKey:@"sex_dictText"]; + + } + return self; +} + + +- (void)setUserInfo:(NSDictionary *)userInfo { + + _userInfo = userInfo; + self.user_id = [_userInfo objectForKey:@"id"]; + self.avatar = [NSString stringWithFormat:@"%@%@",ResourceAddress,[_userInfo objectForKey:@"avatar"]]; + self.phone = [_userInfo objectForKey:@"phone"]; + self.realname = [_userInfo objectForKey:@"realname"]; + self.username = [_userInfo objectForKey:@"username"]; + self.sex = [_userInfo objectForKey:@"sex"]; + self.status = [_userInfo objectForKey:@"status"]; + self.email = [_userInfo objectForKey:@"email"]; + self.idCard = [_userInfo objectForKey:@"idCard"]; + self.workNo = [_userInfo objectForKey:@"workNo"]; + self.sex_dictText = [_userInfo objectForKey:@"sex_dictText"]; +} + + +-(void)setToken:(NSString *)token { + _token = token; + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/AppDelegate/AppDelegate+AppService.m b/DoctorXinjiang/DoctorXinjiang/Project/AppDelegate/AppDelegate+AppService.m index 373a5eb..5e47220 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/AppDelegate/AppDelegate+AppService.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/AppDelegate/AppDelegate+AppService.m @@ -7,7 +7,7 @@ #import "AppDelegate+AppService.h" #import "YXBaseTabBarController.h" -#import "YXLoginViewController.h" +#import "XJDLoginViewController.h" #import #import #import @@ -30,7 +30,7 @@ selector:@selector(loginStateChange:) name:KNotificationLoginStateChange object:nil]; - if ([HQCommonUtils isLogin]) { + if ([XJDCommonUtils isLogin]) { //腾讯im V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init]; @@ -46,13 +46,13 @@ self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.backgroundColor = KWhiteColor; //直接进入显示登录页面 - if ([HQCommonUtils isLogin]) { + if ([XJDCommonUtils isLogin]) { self.mainTabBar = [YXBaseTabBarController new]; self.mainTabBar.delegate =self; self.window.rootViewController = self.mainTabBar; [self.window makeKeyAndVisible]; }else { - YXLoginViewController * loginvc = [[YXLoginViewController alloc] init]; + XJDLoginViewController * loginvc = [[XJDLoginViewController alloc] init]; YXBaseNavigationController * nav = [[YXBaseNavigationController alloc] initWithRootViewController:loginvc]; self.window.rootViewController = nav; } @@ -110,7 +110,7 @@ paragraphStyle.alignment = NSTextAlignmentLeft; - NSMutableAttributedString *message = [[NSMutableAttributedString alloc] initWithString:@"\n亲,感谢您对健康咨询专家端一直以来的信任!我们依据最新的监管要求更新了健康咨询专家端《隐私权政策》,特向您说明如下\n1.为向您提供交易相关基本功能,我们会收集、使用必要的信息;\n2.基于您的明示授权,我们可能会获取您的位置(为您提供服务)等信息,您有权拒绝或取消授权;\n3.我们会采取业界先进的安全措施保护您的信息安全;\n4.未经您同意,我们不会从第三方处获取、共享或向提供您的信息;" attributes:@{ + NSMutableAttributedString *message = [[NSMutableAttributedString alloc] initWithString:@"\n亲,感谢您对健康油我专家端一直以来的信任!我们依据最新的监管要求更新了健康油我专家端《隐私权政策》,特向您说明如下\n1.为向您提供交易相关基本功能,我们会收集、使用必要的信息;\n2.基于您的明示授权,我们可能会获取您的位置(为您提供服务)等信息,您有权拒绝或取消授权;\n3.我们会采取业界先进的安全措施保护您的信息安全;\n4.未经您同意,我们不会从第三方处获取、共享或向提供您的信息;" attributes:@{ NSParagraphStyleAttributeName:paragraphStyle, }]; @@ -184,19 +184,11 @@ } - -- (void)loginImAccount { - - YXNetAPI * proctocolApi = [[YXNetAPI alloc] init:self tag:@"loginIMAPI" NeedToken:nil]; - [proctocolApi GetIMLoginAccount:nil]; - -} - //在线时票据过期:此时您需要生成新的 userSig,并再次重新调用初始化。 - (void)onKickedOffline { - [HQCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; + [XJDCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; [ESCTUIManager outLoginTUISDK]; KPostNotification(KNotificationLoginStateChange, @NO); diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Base/HQBaseTabBarController.h b/DoctorXinjiang/DoctorXinjiang/Project/Base/HQBaseTabBarController.h deleted file mode 100644 index 3d9869c..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/Base/HQBaseTabBarController.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// YXBaseTabBarController.h -// healthQuestion -// -// Created by xulei on 2022/8/12. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface YXBaseTabBarController : UITabBarController - -/** - 设置小红点 - - @param index tabbar下标 - @param isShow 是显示还是隐藏 - */ --(void)setRedDotWithIndex:(NSInteger)index isShow:(BOOL)isShow isNumber:(NSInteger)number; - -@property (nonatomic, assign)NSInteger lastSelectIndex; -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Base/HQBaseWebViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Base/HQBaseWebViewController.h deleted file mode 100644 index 689fa98..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/Base/HQBaseWebViewController.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// YXBaseWebViewController.h -// healthQuestion -// -// Created by 仁康信息 on 2024/1/12. -// - -#import "YXBaseViewController.h" - -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -typedef enum { - WkJSMessageTypeDefault = 0, - WkJSMessageTypeBack = 1, -}WkJSMessageType; -typedef enum { - RightDefaultType = 0, - RightCompleteType = 1, -}RightNavType; - -@protocol WebJSExport - -- (void)startFunction; -@end - -@interface YXBaseWebViewController : YXBaseViewController - -@property (nonatomic, strong) NSString *webUrl; -@property (nonatomic, strong) NSString *webTitle; -@property (nonatomic, strong) JSContext *context; -@property (nonatomic, strong) WKWebView *wkWebView; -@property (nonatomic, assign) RightNavType rightType; - -- (void)webViewRequest; - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Base/YXBaseTabBarController.m b/DoctorXinjiang/DoctorXinjiang/Project/Base/YXBaseTabBarController.m index 1d7d316..065e21b 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Base/YXBaseTabBarController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/Base/YXBaseTabBarController.m @@ -7,8 +7,8 @@ #import "YXBaseTabBarController.h" #import "HQTabBar.h" -#import "YXHomePageViewController.h" -#import "YXMineViewController.h" +#import "XJDHomePageViewController.h" +#import "XJDMineViewController.h" @interface YXBaseTabBarController () @@ -86,13 +86,13 @@ -(void)setUpAllChildViewController{ _VCS = @[].mutableCopy; - YXHomePageViewController *homeVC = [[YXHomePageViewController alloc]init]; + XJDHomePageViewController *homeVC = [[XJDHomePageViewController alloc]init]; [self setupChildViewController:homeVC title:@"工作台" imageName:@"homeTabar_nomarl" seleceImageName:@"homeTabar_selected"]; - YXMineViewController *mineVC = [[YXMineViewController alloc]init]; + XJDMineViewController *mineVC = [[XJDMineViewController alloc]init]; [self setupChildViewController:mineVC title:@"我的" imageName:@"mianTabar_nomarl" seleceImageName:@"mianTabar_selected"]; self.viewControllers = _VCS; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Base/YXBaseViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Base/YXBaseViewController.m index 354eb30..d0a0e8a 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Base/YXBaseViewController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/Base/YXBaseViewController.m @@ -6,7 +6,7 @@ // #import "YXBaseViewController.h" -#import "YXLoginViewController.h" +#import "XJDLoginViewController.h" @interface YXBaseViewController () @@ -85,7 +85,7 @@ }else { - YXLoginViewController *loginVC = [[YXLoginViewController alloc]init]; + XJDLoginViewController *loginVC = [[XJDLoginViewController alloc]init]; UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:loginVC]; [[kAppDelegate getCurrentVC] presentViewController:nav animated:YES completion:nil]; } diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HQPopView/XJDShowPromptPopView.h b/DoctorXinjiang/DoctorXinjiang/Project/HQPopView/XJDShowPromptPopView.h new file mode 100644 index 0000000..b3dc7b1 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HQPopView/XJDShowPromptPopView.h @@ -0,0 +1,16 @@ +// +// XJDShowPromptPopView.h +// healthQuestion +// +// Created by 仁康信息 on 2022/9/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDShowPromptPopView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HQPopView/XJDShowPromptPopView.m b/DoctorXinjiang/DoctorXinjiang/Project/HQPopView/XJDShowPromptPopView.m new file mode 100644 index 0000000..bcdcf55 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HQPopView/XJDShowPromptPopView.m @@ -0,0 +1,134 @@ +// +// XJDShowPromptPopView.m +// healthQuestion +// +// Created by 仁康信息 on 2022/9/28. +// + +#import "XJDShowPromptPopView.h" + +@implementation XJDShowPromptPopView + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + } + + return self; + +} + +- (void)createUI { + + UIView * backView = [[UIView alloc] initWithFrame:self.frame]; + backView.backgroundColor = UIColorBackground; + [self addSubview:backView]; + + UIImageView * popImageView = [[UIImageView alloc] initWithImage:IMAGE_NAMED(@"popCenterImg")]; + popImageView.userInteractionEnabled = true; + [backView addSubview:popImageView]; + + [popImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kRealValue(260)); + make.width.mas_equalTo(kScreenWidth - 47); + make.centerX.mas_equalTo(self); + }]; + + UILabel * titLabel = [[UILabel alloc] init]; + titLabel.text = @"提示"; + titLabel.textColor = CFontColor1; + titLabel.font = BOLDSYSTEMFONT(16); + titLabel.textAlignment = NSTextAlignmentCenter; + [popImageView addSubview:titLabel]; + + [titLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kRealValue(107)); + make.width.mas_equalTo(popImageView); + make.centerX.mas_equalTo(self); + }]; + + UILabel * detailLabel = [[UILabel alloc] init]; + detailLabel.text = @"本人郑重承诺,认真履行自主防疫责任,填报相关内容全部属实"; + detailLabel.textColor = CFontColor1; + detailLabel.font = BOLDSYSTEMFONT(16); + detailLabel.numberOfLines = 2; + detailLabel.textAlignment = NSTextAlignmentCenter; + [popImageView addSubview:detailLabel]; + + [detailLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(titLabel.mas_bottom).offset(20); + make.height.mas_equalTo(40); + make.left.mas_equalTo(popImageView.mas_left).offset(50.5); + make.right.mas_equalTo(popImageView.mas_right).offset(-40.5); + }]; + + UIButton * cancalBtn = [[UIButton alloc] init]; + [cancalBtn setTitle:@"取消" forState:UIControlStateNormal]; + [cancalBtn setTitleColor:UIColorHex(#394356) forState:UIControlStateNormal]; + [cancalBtn addTarget:self action:@selector(cancelClick) forControlEvents: UIControlEventTouchUpInside]; + [popImageView addSubview:cancalBtn]; + + [cancalBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(@0); + make.left.mas_equalTo(popImageView.mas_left).offset(35); + make.height.mas_equalTo(50); + make.width.mas_equalTo((popImageView.width-20)/2); + }]; + + + UIButton * sureBtn = [[UIButton alloc] init]; + [sureBtn setTitleColor:UIColorHex(#77849E) forState:UIControlStateNormal]; + sureBtn.titleLabel.font = SYSTEMFONT(17); + [popImageView addSubview:sureBtn]; + + [sureBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(@0); + make.left.mas_equalTo(cancalBtn.mas_right); + make.height.mas_equalTo(50); + make.width.mas_equalTo(cancalBtn); + }]; + + + + + __block int timeout=3; //倒计时时间 + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); + dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行 + dispatch_source_set_event_handler(_timer, ^{ + if(timeout<=0){ //倒计时结束,关闭 + dispatch_source_cancel(_timer); + dispatch_async(dispatch_get_main_queue(), ^{ + //设置界面的按钮显示 根据自己需求设置 + [sureBtn setTitleColor:UIColorMain forState:UIControlStateNormal]; + [sureBtn setTitle:@"确定" forState:UIControlStateNormal]; + [sureBtn addTarget:self action:@selector(cancelClick) forControlEvents:UIControlEventTouchUpInside]; + sureBtn.userInteractionEnabled = YES; + }); + }else{ + int seconds = timeout; + NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds]; + dispatch_async(dispatch_get_main_queue(), ^{ + //让按钮变为不可点击的灰色 + sureBtn.userInteractionEnabled = NO; + //设置界面的按钮显示 根据自己需求设置 + [UIView beginAnimations:nil context:nil]; + [UIView setAnimationDuration:1]; + [sureBtn setTitle:[NSString stringWithFormat:@"%@秒后点击确认",strTime] forState:UIControlStateNormal]; + [UIView commitAnimations]; + }); + timeout--; + } + }); + dispatch_resume(_timer); +} + +- (void)cancelClick { + + [self removeFromSuperview]; +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/FileDataDetail(档案详情)/XJDFileDataDetailViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/FileDataDetail(档案详情)/XJDFileDataDetailViewController.m index b3ae43e..27ba6a4 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/FileDataDetail(档案详情)/XJDFileDataDetailViewController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/FileDataDetail(档案详情)/XJDFileDataDetailViewController.m @@ -6,22 +6,22 @@ // #import "XJDFileDataDetailViewController.h" -#import "DetailTitleView.h" -#import "DetailUserInfoView.h" -#import "FileDataDeatilCenterView.h" -#import "BasicHealthInfoView.h" -#import "YXRecoredListDetailModel.h" +#import "XJDDetailTitleView.h" +#import "XJDDetailUserInfoView.h" +#import "XJDFileDataDeatilCenterView.h" +#import "XJDBasicHealthInfoView.h" +#import "XJDRecoredListDetailModel.h" @interface XJDFileDataDetailViewController () -@property (nonatomic, strong) DetailUserInfoView * infoView ; +@property (nonatomic, strong) XJDDetailUserInfoView * infoView ; -@property (nonatomic, strong) FileDataDeatilCenterView * detailView ; +@property (nonatomic, strong) XJDFileDataDeatilCenterView * detailView ; -@property (nonatomic, strong) BasicHealthInfoView * healthView; +@property (nonatomic, strong) XJDBasicHealthInfoView * healthView; -@property (nonatomic, strong) DetailTitleView * titleview; +@property (nonatomic, strong) XJDDetailTitleView * titleview; @end @@ -54,27 +54,27 @@ mainScrollView.backgroundColor = KClearColor; [self.view addSubview:mainScrollView]; - DetailTitleView * titleview = [[DetailTitleView alloc] initWithFrame:CGRectMake(0, 0, mainScrollView.width, 33)]; + XJDDetailTitleView * titleview = [[XJDDetailTitleView alloc] initWithFrame:CGRectMake(0, 0, mainScrollView.width, 33)]; self.titleview = titleview; [mainScrollView addSubview:titleview]; //个人信息 - DetailUserInfoView * infoView = [[DetailUserInfoView alloc] initWithFrame:CGRectMake(0, titleview.bottom, kScreenWidth - kRealValue(30), kRealValue(103))]; + XJDDetailUserInfoView * infoView = [[XJDDetailUserInfoView alloc] initWithFrame:CGRectMake(0, titleview.bottom, kScreenWidth - kRealValue(30), kRealValue(103))]; self.infoView = infoView; infoView.backgroundColor = KWhiteColor; [mainScrollView addSubview:infoView]; //问题 - FileDataDeatilCenterView * detailView = [[FileDataDeatilCenterView alloc] initWithFrame:CGRectMake(0, infoView.bottom + kRealValue(10), mainScrollView.width, 500)]; + XJDFileDataDeatilCenterView * detailView = [[XJDFileDataDeatilCenterView alloc] initWithFrame:CGRectMake(0, infoView.bottom + kRealValue(10), mainScrollView.width, 500)]; [mainScrollView addSubview:detailView]; detailView.height = detailView.questionH; detailView.layer.cornerRadius = 10; self.detailView = detailView; - [HQCommonUtils addShadowToView:detailView]; + [XJDCommonUtils addShadowToView:detailView]; - BasicHealthInfoView * healthView = [[BasicHealthInfoView alloc] initWithFrame:CGRectMake(0,detailView.bottom + kRealValue(15), kScreenWidth - kRealValue(30), kRealValue(280))]; + XJDBasicHealthInfoView * healthView = [[XJDBasicHealthInfoView alloc] initWithFrame:CGRectMake(0,detailView.bottom + kRealValue(15), kScreenWidth - kRealValue(30), kRealValue(280))]; healthView.backgroundColor = [UIColor whiteColor]; healthView.layer.cornerRadius = 10.0; - [HQCommonUtils addShadowToView:healthView]; + [XJDCommonUtils addShadowToView:healthView]; self.healthView = healthView; [mainScrollView addSubview:healthView]; @@ -88,7 +88,7 @@ [parmDic setObject:self.record_id forKey:@"id"]; - YXNetAPI * recordApi = [[YXNetAPI alloc] init:self tag:@"RECORD" NeedToken:@""]; + XJDNetAPI * recordApi = [[XJDNetAPI alloc] init:self tag:@"RECORD" NeedToken:@""]; [recordApi fileDetatilData:parmDic]; } @@ -108,13 +108,13 @@ NSDictionary * dic = response; - YXRecoredListDetailModel * model = [YXRecoredListDetailModel modelWithDictionary:dic]; + XJDRecoredListDetailModel * model = [XJDRecoredListDetailModel modelWithDictionary:dic]; //用户信息 - YXReocrdconFamilyMembersDO * infoModel = [YXReocrdconFamilyMembersDO modelWithDictionary:model.conFamilyMembersDO]; + XJDReocrdconFamilyMembersDO * infoModel = [XJDReocrdconFamilyMembersDO modelWithDictionary:model.conFamilyMembersDO]; self.infoView.userInfo = infoModel; //档案详情 - YXRecoredconMedicalRecordsListDO * medicalModel = [YXRecoredconMedicalRecordsListDO modelWithDictionary:model.conMedicalRecordsDO]; + XJDRecoredconMedicalRecordsListDO * medicalModel = [XJDRecoredconMedicalRecordsListDO modelWithDictionary:model.conMedicalRecordsDO]; self.detailView.medicalModel = medicalModel; self.titleview.createTime = medicalModel.createTime; @@ -143,15 +143,15 @@ // //#import "XJDFileDataDetailViewController.h" -//#import "DetailTitleView.h" +//#import "XJDDetailTitleView.h" //#import "DetailUserInfoView.h" -//#import "FileDataDeatilCenterView.h" -//#import "BasicHealthInfoView.h" +//#import "XJDFileDataDeatilCenterView.h" +//#import "XJDBasicHealthInfoView.h" //#import "XLPhotoBrowser.h" //#import "DoctorReportModel.h" //@interface XJDFileDataDetailViewController () // -//@property (nonatomic, strong) DetailTitleView * titleview; +//@property (nonatomic, strong) XJDDetailTitleView * titleview; // // //@property (nonatomic, strong) UIScrollView * mainScrollView; @@ -240,11 +240,11 @@ // mainScrollView.backgroundColor = KClearColor; // [self.view addSubview:mainScrollView]; // -// DetailTitleView * titleview = [[DetailTitleView alloc] initWithFrame:CGRectMake(0, 0, mainScrollView.width, 33)]; +// XJDDetailTitleView * titleview = [[XJDDetailTitleView alloc] initWithFrame:CGRectMake(0, 0, mainScrollView.width, 33)]; // self.titleview = titleview; // [mainScrollView addSubview:titleview]; // -// DetailUserInfoView * infoView = [[DetailUserInfoView alloc] initWithFrame:CGRectMake(0, titleview.bottom, kScreenWidth - kRealValue(30), kRealValue(103))]; +// XJDDetailUserInfoView * infoView = [[XJDDetailUserInfoView alloc] initWithFrame:CGRectMake(0, titleview.bottom, kScreenWidth - kRealValue(30), kRealValue(103))]; // infoView.backgroundColor = KWhiteColor; // self.userView = infoView; // [mainScrollView addSubview:infoView]; @@ -392,7 +392,7 @@ // hosLeftLabel.textColor = UIColorHex(#666666); // hosLeftLabel.font = SYSTEMFONT(13); // hosLeftLabel.textAlignment = NSTextAlignmentLeft; -// CGFloat hosW = [HQCommonUtils getLengthFromText: @"就诊医院及科室:" andFontSize:13]; +// CGFloat hosW = [XJDCommonUtils getLengthFromText: @"就诊医院及科室:" andFontSize:13]; // hosLeftLabel.width = hosW; // [self.hospationView addSubview:hosLeftLabel]; // @@ -412,7 +412,7 @@ // sickLeftLabel.font = SYSTEMFONT(13); // sickLeftLabel.textAlignment = NSTextAlignmentLeft; // self.sickLeftLabel = sickLeftLabel; -// CGFloat sickW = [HQCommonUtils getLengthFromText: @"诊断的疾病名:" andFontSize:13]; +// CGFloat sickW = [XJDCommonUtils getLengthFromText: @"诊断的疾病名:" andFontSize:13]; // sickLeftLabel.width = hosW; // [self.hospationView addSubview:sickLeftLabel]; // @@ -468,7 +468,7 @@ // // leftLabel.text = leftText; // -// CGFloat w = [HQCommonUtils getLengthFromText:leftText andFontSize:13]; +// CGFloat w = [XJDCommonUtils getLengthFromText:leftText andFontSize:13]; // // leftLabel.font = SYSTEMFONT(13); // @@ -509,7 +509,7 @@ // [parmDic setObject:self.record_id forKey:@"id"]; // } // -// YXNetAPI * recordApi = [[YXNetAPI alloc] init:self tag:@"RECORD" NeedToken:@""]; +// XJDNetAPI * recordApi = [[XJDNetAPI alloc] init:self tag:@"RECORD" NeedToken:@""]; // // [recordApi fileDetatilData:parmDic]; // @@ -619,11 +619,11 @@ // self.hospationView.hidden = false; // // self.sicksLabel.text = [NSString stringWithFormat:@"%@",recordModel.lookOffice]; -// self.sicksLabel.height = [HQCommonUtils getSpaceLabelHeight:self.sicksLabel withStr:self.sicksLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:self.sicksLabel.width withLineSpacing:5]; +// self.sicksLabel.height = [XJDCommonUtils getSpaceLabelHeight:self.sicksLabel withStr:self.sicksLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:self.sicksLabel.width withLineSpacing:5]; // // self.hospationNameLabel.text = [NSString stringWithFormat:@"%@",recordModel.lookMedicalName]; // -// self.hospationNameLabel.height = [HQCommonUtils getSpaceLabelHeight:self.sicksLabel withStr:self.sicksLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:self.sicksLabel.width withLineSpacing:5]; +// self.hospationNameLabel.height = [XJDCommonUtils getSpaceLabelHeight:self.sicksLabel withStr:self.sicksLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:self.sicksLabel.width withLineSpacing:5]; // // self.sickLeftLabel.top = self.hospationNameLabel.bottom + kRealValue(17); // diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/HistoryRecord(历史记录)/XJDHistoricalRecordViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/HistoryRecord(历史记录)/XJDHistoricalRecordViewController.m index 8f812af..d52957d 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/HistoryRecord(历史记录)/XJDHistoricalRecordViewController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/HistoryRecord(历史记录)/XJDHistoricalRecordViewController.m @@ -6,12 +6,12 @@ // #import "XJDHistoricalRecordViewController.h" -#import "HQSearchView.h" -#import "HistoryRecordTable.h" +#import "XJDSearchView.h" +#import "XJDHistoryRecordTable.h" @interface XJDHistoricalRecordViewController () -@property (nonatomic, strong) HistoryRecordTable * homeTable; +@property (nonatomic, strong) XJDHistoryRecordTable * homeTable; @end @@ -33,7 +33,7 @@ topView.backgroundColor = KWhiteColor; [self.view addSubview:topView]; - HQSearchView * seacrhView = [[HQSearchView alloc] initWithFrame:CGRectMake(0, 8, kScreenWidth, 35)]; + XJDSearchView * seacrhView = [[XJDSearchView alloc] initWithFrame:CGRectMake(0, 8, kScreenWidth, 35)]; seacrhView.backgroundColor = KWhiteColor; seacrhView.searchPlacehold = @"输入关键字搜索"; seacrhView.searchBlock = ^(NSString * _Nonnull fieldtext) { @@ -41,7 +41,7 @@ }; [topView addSubview:seacrhView]; - self.homeTable = [[HistoryRecordTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.homeTable = [[XJDHistoryRecordTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; [self.view addSubview:self.homeTable]; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDDownToolsManager.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDDownToolsManager.h new file mode 100644 index 0000000..40f1e59 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDDownToolsManager.h @@ -0,0 +1,20 @@ +// +// XJDDownToolsManager.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/12/1. +// + +#import +#import "ReaderViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDDownToolsManager : NSObject + ++ (void)downLoadReportWithURL:(NSString *)PDFURL withFileName:(NSString *)fileName; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDDownToolsManager.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDDownToolsManager.m new file mode 100644 index 0000000..d8a671a --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDDownToolsManager.m @@ -0,0 +1,103 @@ +// +// XJDDownToolsManager.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/12/1. +// + +#import "XJDDownToolsManager.h" +@implementation XJDDownToolsManager + ++ (void)downLoadReportWithURL:(NSString *)PDFURL withFileName:(NSString *)fileName +{ + + [self downLoadPdfFileByUrl:PDFURL fileName:[NSString stringWithFormat:@"%@.pdf",fileName]]; + +} + ++(__kindof NSURLSessionTask *)downloadWithURL:(NSString *)URL + fileDir:(NSString *)fileDir + progress:(void(^)(NSProgress *progress))progress + success:(void(^)(NSString *filePath))success + failure:(void(^)(NSError *error))failure{ + + AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URL]]; + NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { + //下载进度 + progress ? progress(downloadProgress) : nil; + NSLog(@"下载进度:%.2f%%",100.0*downloadProgress.completedUnitCount/downloadProgress.totalUnitCount); + } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { + + //拼接缓存目录 + NSString *downloadStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] ; + + //拼接文件路径 + NSString *filePath = [downloadStr stringByAppendingPathComponent:fileDir]; + + NSLog(@"downloadStr = %@",downloadStr); + return [NSURL fileURLWithPath:filePath]; + + } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { + NSLog(@"%@---%@", filePath, filePath.absoluteString); + success ? success(filePath.absoluteString /** NSURL->NSString*/) : nil; + failure && error ? failure(error) : nil; + }]; + //开始下载 + [downloadTask resume]; + return downloadTask; + +} + +//下载pdf文件 ++(void)downLoadPdfFileByUrl:(NSString *)url fileName:(NSString *)fileName +{ + //如果存在直接打开 + if ([self isFileExist:fileName]) { + //获取路径 + NSString *documentsPath = [ReaderDocument documentsPath]; + //可根据路径command + shift + G查看该路径下的所有的pdf文件 + NSLog(@"%@", documentsPath); + NSString *filePath = [documentsPath stringByAppendingPathComponent:fileName]; + ReaderDocument *document = [ReaderDocument withDocumentFilePath:filePath password:nil]; + if (document != nil) + { + ReaderViewController *readerViewController = [[ReaderViewController alloc] initWithReaderDocument:document]; + + readerViewController.delegate = self; + [[XJDCommonUtils getCurrentVC] presentViewController:readerViewController animated:YES completion:nil]; + } + }else{ + + [self downloadWithURL:url fileDir:fileName progress:^(NSProgress *progress) { + + } success:^(NSString *filePath) { + NSLog(@"%@", filePath); + //下载完成直接打开 + [self downLoadPdfFileByUrl:url fileName:fileName]; + } failure:^(NSError *error) { + }]; + } + +} +#pragma mark ReaderViewControllerDelegate因为PDF阅读器可能是push出来的,也可能是present出来的,为了更好的效果,这个代理方法可以实现很好的退出 ++ (void)dismissReaderViewController:(ReaderViewController *)viewController{ + [[XJDCommonUtils getCurrentVC] dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma 判断文件是否存在 ++(BOOL)isFileExist:(NSString *)fileName +{ + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *path = [paths objectAtIndex:0]; + NSString *filePath = [path stringByAppendingPathComponent:fileName]; + NSFileManager *fileManager = [NSFileManager defaultManager]; + BOOL result = [fileManager fileExistsAtPath:filePath]; + NSLog(@"这个文件已经存在:%@",result?@"是的":@"不存在"); + return result; + +} + + +@end + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDHealthPhyReportModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDHealthPhyReportModel.h new file mode 100644 index 0000000..6ecd241 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDHealthPhyReportModel.h @@ -0,0 +1,99 @@ +// +// XJDHealthPhyReportModel.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/8/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +//新增影像报告 + + +@interface XJDThirdResultResModel : NSObject + +@property (nonatomic, copy) NSString * third_tId; +@property (nonatomic, copy) NSString * type; + +@property (nonatomic, copy) NSString * userResultId; +@property (nonatomic, copy) NSString * peItemName; +@property (nonatomic, copy) NSString * uniItemId; +@property (nonatomic, copy) NSString * printContext; +@property (nonatomic, copy) NSString * peResult; +@property (nonatomic, copy) NSString * unit; +@property (nonatomic, copy) NSString * colour; +@property (nonatomic, copy) NSString * textFlag; + +@end + + +@interface XJDImageItemListModel : NSObject + +@property (nonatomic, copy) NSString * imageCheckName; +@property (nonatomic, copy) NSString * imageShowUrl; +@property (nonatomic, copy) NSString * imageClass; +@property (nonatomic, copy) NSString * studyInsId; +@property (nonatomic, copy) NSString * reportContent; +@property (nonatomic, copy) NSString * reportUrl; +@property (nonatomic, copy) NSString * reportDate; +@property (nonatomic, copy) NSString * imageClassName; +@property (nonatomic, assign) CGFloat textHeight; +@property (nonatomic, assign) CGFloat cellHeight; + +@end + +@interface XJDSenResultResModel : NSObject +@property (nonatomic, copy) NSString * uniItemClassId; +@property (nonatomic, copy) NSString * uniItemClassName; +@property (nonatomic, strong) NSArray * thirdResultRes; + +@end + +@interface XJDResultItemResListModel : NSObject + +@property (nonatomic, copy) NSString * analysisId; +@property (nonatomic, copy) NSString * analysisName; +@property (nonatomic, copy) NSString * empBirthday; +@property (nonatomic, copy) NSString * medicalYear; +@property (nonatomic, assign) NSInteger rowNumber; +@property (nonatomic, strong) NSArray * senResultRes; +@property (nonatomic, strong) NSArray * allResultArray; + + +@end + +@interface XJDHealthPhyReportModel : NSObject + +@property (nonatomic, copy) NSString * report_id; +@property (nonatomic, copy) NSString * userId; +@property (nonatomic, copy) NSString * userName; +@property (nonatomic, copy) NSString * sex; +@property (nonatomic, copy) NSString * sex_dictText; +@property (nonatomic, copy) NSString * age; +@property (nonatomic, copy) NSString * card; +@property (nonatomic, copy) NSString * mobilePhone; +@property (nonatomic, copy) NSString * peQueueDate; +@property (nonatomic, copy) NSString * empBirthday; +@property (nonatomic, copy) NSString * medicalYear; +@property (nonatomic, copy) NSString * suggest; +@property (nonatomic, copy) NSString * conclusion; +@property (nonatomic, copy) NSString * email; +@property (nonatomic, copy) NSString * empNativeplace; +@property (nonatomic, copy) NSString * hospitalName; + + +@property (nonatomic, assign) BOOL zhangkaiSug; +@property (nonatomic, assign) BOOL zhangkaiCon; + + + +@property (nonatomic, strong) NSArray * resultItemResList; + +@property (nonatomic, strong) NSArray * imageItemList; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDHealthPhyReportModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDHealthPhyReportModel.m new file mode 100644 index 0000000..6529547 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDHealthPhyReportModel.m @@ -0,0 +1,80 @@ +// +// XJDHealthPhyReportModel.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/8/28. +// + +#import "XJDHealthPhyReportModel.h" + +@implementation XJDThirdResultResModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"third_tId" :@"id"}; + return dic; +} + + +@end + +@implementation XJDImageItemListModel + + + +@end + +@implementation XJDSenResultResModel + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + return @{ + + @"thirdResultRes":[XJDThirdResultResModel class] + }; +} + + + +@end + + +@implementation XJDResultItemResListModel + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + return @{ + @"senResultRes":[XJDSenResultResModel class], + @"allResultArray":[XJDThirdResultResModel class] + }; + +} + + + +@end + +@implementation XJDHealthPhyReportModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"report_id" :@"id"}; + return dic; +} + + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + return @{ + @"resultItemResList":[XJDResultItemResListModel class], + @"imageItemList":[XJDImageItemListModel class] + }; +} + + + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDLookReportImageViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDLookReportImageViewController.h new file mode 100644 index 0000000..98f3bb2 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDLookReportImageViewController.h @@ -0,0 +1,22 @@ +// +// XJDLookReportImageViewController.h +// DoctorXinjiang +// +// Created by Apple on 2024/2/26. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDLookReportImageViewController : YXBaseViewController + +@property (nonatomic, strong) NSString * webTitle; + +@property (nonatomic, strong) NSString * webUrl; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDLookReportImageViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDLookReportImageViewController.m new file mode 100644 index 0000000..d324524 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDLookReportImageViewController.m @@ -0,0 +1,173 @@ +// +// XJDLookReportImageViewController.m +// DoctorXinjiang +// +// Created by Apple on 2024/2/26. +// + +#import "XJDLookReportImageViewController.h" + +@interface XJDLookReportImageViewController () + +@property (nonatomic, strong)NSURL *originalUrl; +@property (nonatomic, copy)NSString *videoUrl; +@property (nonatomic, copy)NSString *messageType; +@property (nonatomic, strong) WKWebView * wkWebView; + +@end + +@implementation XJDLookReportImageViewController + + +#pragma mark - LifeCycle +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor whiteColor]; + self.isHidenNaviBar = false; + [self addNavigationItemWithImageNames:@[@"whiteBack_icon"] isLeft:YES target:self action:@selector(backVC) tags:@[@""]]; + + if (self.webTitle) { + self.navigationItem.title = self.webTitle; + } + [self.view addSubview:self.wkWebView]; + [self webViewRequest]; +} + +- (void)backVC { + + [self.navigationController popViewControllerAnimated:YES]; +} + + + +- (void)viewWillDisappear:(BOOL)animated{ + [super viewWillDisappear:animated]; + _wkWebView.navigationDelegate = nil; + _wkWebView.UIDelegate = nil; + //清除cookies + NSHTTPCookie *cookie; + NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; + for (cookie in [storage cookies]) { + [storage deleteCookie:cookie]; + } + [[NSURLCache sharedURLCache] removeAllCachedResponses]; + [self clearWebViewCache]; +} + + +#pragma mark 懒加载 +-(WKWebView *)wkWebView{ + if (!_wkWebView) { + + NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width,initial-scale=1,minimum-scale=0.25,maximum-scale=2,user-scalable=yes'); document.getElementsByTagName('head')[0].appendChild(meta); var imgs = document.getElementsByTagName('img');for (var i in imgs){imgs[i].style.maxWidth='100%';imgs[i].style.height='auto';}"; + + + WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES]; + WKUserContentController *wkUController = [[WKUserContentController alloc] init]; + [wkUController addUserScript:wkUScript]; + WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init]; + wkWebConfig.userContentController = wkUController; + + _wkWebView = [[WKWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) configuration:wkWebConfig]; + _wkWebView.allowsBackForwardNavigationGestures = true; + } + return _wkWebView; +} + + +- (void)webViewRequest{ + NSString *urlString = self.webUrl; + [self hiddenAllMBProgressHUD]; + if (urlString.length > 0) { + [self showMBProgressHUDOnlyWithString:@"加载中"]; + NSURL *url = [NSURL URLWithString:urlString]; + NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url]; + if (self.wkWebView) { + [self.wkWebView loadRequest:urlRequest]; + } + } +} + + + + +#pragma mark - WKNavigationDelegate +- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message{ + +} + +#pragma mark - WKScriptMessageHandler +- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures { + [self hiddenAllMBProgressHUD]; + if (!navigationAction.targetFrame.isMainFrame) { + [webView loadRequest:navigationAction.request]; + } + return nil; +} + +- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{ + if (!self.webTitle) { + self.title = @"加载中..."; + } + +} + +- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation{ + [self hiddenAllMBProgressHUD]; + + if (!self.webTitle) { + self.title = webView.title; + } + +} + +- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(nonnull NSError *)error{ + [self hiddenAllMBProgressHUD]; +} + + +#pragma mark - 自定义 +- (void)onBackClicked{ + if ( self.wkWebView.canGoBack){ + [self.wkWebView goBack]; + } else { + [self clearWebViewCache]; + } +} + +- (void)clearWebViewCache{ + if (iOS9Later) { + NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes]; + NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0]; + [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{ + NSLog(@"-----clear webView cache success------"); + }]; + } else { + NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0]; + NSString *cookiesFolderPath = [libraryPath stringByAppendingString:@"/Cookies"]; + NSError *errors; + [[NSFileManager defaultManager] removeItemAtPath:cookiesFolderPath error:&errors]; + if (!errors) { + NSLog(@"-----clear wkWebView cache success------"); + } + } +} +- (NSString *)URLEncodedString:(NSString *)urlString{ + NSString *encodePath ; + if (!IOS7) { + encodePath = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + }else{ + encodePath = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; + }return encodePath; +} + + +#pragma mark - SETTER + +- (void)setWebUrl:(NSString *)webUrl{ + _webUrl = webUrl; + [self webViewRequest]; +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDQuestionDetailViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDQuestionDetailViewController.h new file mode 100644 index 0000000..275e033 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDQuestionDetailViewController.h @@ -0,0 +1,18 @@ +// +// XJDQuestionDetailViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/27. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDQuestionDetailViewController : YXBaseViewController + +@property (nonatomic, copy) NSString * question_id; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDQuestionDetailViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDQuestionDetailViewController.m new file mode 100644 index 0000000..ab96fee --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDQuestionDetailViewController.m @@ -0,0 +1,744 @@ +// +// XJDQuestionDetailViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/27. +// + +#import "XJDQuestionDetailViewController.h" +#import "XJDDetailUserInfoView.h" +#import "XJDDetailTitleView.h" +#import "XJDQuestionAppointmentTimeView.h" +#import "XJDQuestionFileDataView.h" +#import "XJDQuestionHealthInfoView.h" +#import "XJDQuestionReportView.h" +#import "XJDRecoredListDetailModel.h" +#import "XJDQuestionBodyReportModel.h" +#import "XJDRefuseQuestionPopView.h" +#import "XJDCancelReasonModel.h" +#import "XJDFileDataDetailViewController.h" +#import "XJDTTestView.h" +#import "TUIConversationListBaseDataProvider.h" + +#import +#import +#import +#import +#import "TUIConversationCellData.h" +@interface XJDQuestionDetailViewController () + +@property (nonatomic, strong) UIScrollView * mainScrollView; + +@property (nonatomic, strong) XJDDetailTitleView * titleview; + +@property (nonatomic, strong) XJDDetailUserInfoView * infoView; + +@property (nonatomic, strong) XJDQuestionAppointmentTimeView * timeView; + +@property (nonatomic, strong) XJDQuestionFileDataView * fileView; + +@property (nonatomic, strong) XJDQuestionReportView * reportView; + +@property (nonatomic, strong) XJDQuestionHealthInfoView * healthView; + +@property (nonatomic, strong) UIView * questionStartView; + +@property (nonatomic, strong) UIButton * cancelBtn; + +@property (nonatomic, strong) UIButton * acceptBtn; + +@property (nonatomic, strong) UIButton * sendVideBtn; + +@property (nonatomic, strong) XJDRefuseQuestionPopView * popView; + +@property (nonatomic, copy) NSString * conSession_id; + +@property (nonatomic, copy) NSString * record_id; + +@property (nonatomic, copy) NSString * idNo; + +@property (nonatomic, copy) NSString * starTimeString; + +@property (nonatomic, copy) NSString * endTimeString; + +@property (nonatomic, strong) UILabel * questionStartLabel; + +@property (nonatomic, copy) NSString * imId; + + +@property (nonatomic, copy) NSString * endPhoneID; + +@property (nonatomic, strong) XJDRecoredDetailConsessionModel * timeModel; + +@end + +@implementation XJDQuestionDetailViewController + +- (XJDRefuseQuestionPopView *)popView { + + if (!_popView) { + MJWeakSelf + _popView = [[XJDRefuseQuestionPopView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; + _popView.upBlock = ^{ + + }; + + _popView.popBlock = ^(NSString * _Nonnull beizhuString, NSString * _Nonnull reasourString) { + //拒绝提交 + [weakSelf cancelReasourSubmit:beizhuString withReasonType:reasourString]; + + }; + _popView.alpha = 0; + + } + return _popView; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.isHidenNaviBar = false; + self.navigationItem.title = @"视频咨询"; + self.view.backgroundColor = UIColorHex(#E0E0E0); + // Do any additional setup after loading the view. + [self createUI]; + [self createData]; + [self getCancelReasourData]; +} + +- (void)createUI { + + UIImageView * topImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 200)]; + topImage.image = [UIImage imageNamed:@"questionDetailBack"]; + [self.view addSubview:topImage]; + + + + self.mainScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(kRealValue(15), 0, kScreenWidth - kRealValue(30), kScreenHeight - kTopHeight - SafetyAreaHeight)]; + self.mainScrollView.showsVerticalScrollIndicator = false; + self.mainScrollView.showsHorizontalScrollIndicator = false; + self.mainScrollView.layer.cornerRadius = 8.0; + self.mainScrollView.layer.masksToBounds = true; + self.mainScrollView.backgroundColor = KClearColor; + [self.view addSubview:self.mainScrollView]; + + XJDDetailTitleView * titleview = [[XJDDetailTitleView alloc] initWithFrame:CGRectMake(0, 0, self.mainScrollView.width, 33)]; + self.titleview = titleview; + [self.mainScrollView addSubview:titleview]; + + //个人信息 + XJDDetailUserInfoView * infoView = [[XJDDetailUserInfoView alloc] initWithFrame:CGRectMake(0, titleview.bottom, kScreenWidth - kRealValue(30), kRealValue(103))]; + infoView.backgroundColor = KWhiteColor; + self.infoView = infoView; + [self.mainScrollView addSubview:infoView]; + + //预约时间 + XJDQuestionAppointmentTimeView * timeView = [[XJDQuestionAppointmentTimeView alloc] initWithFrame:CGRectMake(0, infoView.bottom + 1, kScreenWidth - kRealValue(30), kRealValue(64))]; + timeView.backgroundColor = KWhiteColor; + self.timeView = timeView; + [self.mainScrollView addSubview:timeView]; + //档案 + XJDQuestionFileDataView * fileView = [[XJDQuestionFileDataView alloc] initWithFrame:CGRectMake(0, timeView.bottom, kScreenWidth - kRealValue(30), kRealValue(64))]; + fileView.backgroundColor = KWhiteColor; + fileView.height = fileView.fileHeight; + self.fileView = fileView; + fileView.fileBlock = ^{ + [self lookFileDetail]; + }; + [self.mainScrollView addSubview:fileView]; + //基本健康信息 + XJDQuestionHealthInfoView * healthView = [[XJDQuestionHealthInfoView alloc] initWithFrame:CGRectMake(0, fileView.bottom +1, kScreenWidth - kRealValue(30), kRealValue(1))]; + healthView.backgroundColor = KWhiteColor; + self.healthView = healthView; + self.questionStartView.layer.cornerRadius = 10.0; + [self.mainScrollView addSubview:healthView]; + //体检报告 + XJDQuestionReportView * reportView = [[XJDQuestionReportView alloc] initWithFrame:CGRectMake(0, healthView.bottom +1, kScreenWidth - kRealValue(30), kRealValue(100))]; + reportView.backgroundColor = KWhiteColor; + self.reportView = reportView; + self.reportView.layer.cornerRadius = 10.0; + self.reportView.layer.masksToBounds = true; +// reportView.baogaoBlock = ^(YXPhyscialReportListModel * _Nonnull reportModel) { +// +// YXPhyReportDetailViewController * yearVC = [[YXPhyReportDetailViewController alloc] init]; +// yearVC.navTitle = reportModel.medicalYear; +// yearVC.yearString = reportModel.report_id; +// [self.navigationController pushViewController:yearVC animated:YES]; +// +// }; + [self.mainScrollView addSubview:reportView]; + + //咨询开始时间 + self.questionStartView = [[UIView alloc] initWithFrame:CGRectMake(0, reportView.bottom, kScreenWidth - kRealValue(30), 1)]; + self.questionStartView.backgroundColor = KWhiteColor; + self.questionStartView.layer.cornerRadius = 10.0; + self.questionStartView.layer.masksToBounds = true; + self.questionStartView.hidden = true; + [self.mainScrollView addSubview:self.questionStartView]; +// + UILabel * startLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(22), 100, 14)]; + startLabel.text = @"咨询开始时间"; + startLabel.font = BOLDSYSTEMFONT(13); + startLabel.textAlignment = NSTextAlignmentLeft; + [self.questionStartView addSubview:startLabel]; + + self.questionStartLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), startLabel.bottom + kRealValue(17), self.questionStartView.width - kRealValue(36), 13)]; + self.questionStartLabel.text = @""; + self.questionStartLabel.font = BOLDSYSTEMFONT(13); + self.questionStartLabel.textAlignment = NSTextAlignmentLeft; + [self.questionStartView addSubview:self.questionStartLabel]; + + self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), reportView.bottom + kTopHeight); + + UIButton * cancelBtn = [[UIButton alloc] initWithFrame:CGRectMake( self.mainScrollView.width/2 - kRealValue(155) , kScreenHeight - kTopHeight - 60 - SafetyAreaHeight , kRealValue(150), 40)]; + [cancelBtn setTitle:@"拒绝" forState:UIControlStateNormal]; + [cancelBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + cancelBtn.titleLabel.font = SYSTEMFONT(18); + cancelBtn.backgroundColor = KWhiteColor; + cancelBtn.layer.cornerRadius = 18; + cancelBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + [cancelBtn addTarget:self action:@selector(cancelQuestionAction) forControlEvents:UIControlEventTouchUpInside]; + cancelBtn.layer.masksToBounds = true; + self.cancelBtn = cancelBtn; + self.cancelBtn.hidden = YES; + [self.mainScrollView addSubview:cancelBtn]; + + UIButton * acceptBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.mainScrollView.width/2 + kRealValue(5), cancelBtn.top , kRealValue(150), 40)]; + [acceptBtn setTitle:@"接受" forState:UIControlStateNormal]; + [acceptBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + [acceptBtn addTarget:self action:@selector(waitAcceptAction) forControlEvents:UIControlEventTouchUpInside]; + acceptBtn.titleLabel.font = SYSTEMFONT(18); + acceptBtn.backgroundColor = UIColorHex(#21BEBD); + acceptBtn.layer.cornerRadius = 18; + acceptBtn.layer.masksToBounds = true; + self.acceptBtn = acceptBtn; + self.acceptBtn.hidden = YES; + [self.mainScrollView addSubview:acceptBtn]; + + // + UIButton * videoBtn = [[UIButton alloc] initWithFrame:CGRectMake(kScreenWidth/2 + kRealValue(5), kScreenHeight - kTopHeight - 40 - SafetyAreaHeight , kRealValue(150), 40)]; + [videoBtn setTitle:@"视频通话" forState:UIControlStateNormal]; + [videoBtn setImage:[UIImage imageNamed:@"sendVideo_icon"] forState:UIControlStateNormal]; + [videoBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + videoBtn.titleLabel.font = SYSTEMFONT(18); + videoBtn.backgroundColor = KWhiteColor; + videoBtn.layer.cornerRadius = 18; + videoBtn.layer.masksToBounds = true; + videoBtn.centerX = self.mainScrollView.centerX; + self.sendVideBtn = videoBtn; + [self.sendVideBtn addTarget:self action:@selector(sendVideoAction) forControlEvents:UIControlEventTouchUpInside]; + self.sendVideBtn.hidden = YES; + [self.mainScrollView addSubview:videoBtn]; + + self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), reportView.bottom + 35); +} + +- (void) createData { + + [self showMBProgressHUDWithString:@"数据加载中,请稍候..." autoHidden:NO]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:self.question_id forKey:@"id"]; + + XJDNetAPI * detailApi = [[XJDNetAPI alloc] init:self tag:@"DeatilAPI" NeedToken:@""]; + + [detailApi GetRecoredQuestionDetail:parmDic]; +} + +- (void)getCancelReasourData { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + XJDNetAPI * detailApi = [[XJDNetAPI alloc] init:self tag:@"REASOURAPI" NeedToken:@""]; + + [detailApi GetCancelReasourData:parmDic]; + + +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + + if ([tag isEqualToString:@"DeatilAPI"]) { + + [self hiddenAllMBProgressHUD]; + NSDictionary * dic = response; + + XJDRecoredListDetailModel * model = [XJDRecoredListDetailModel modelWithDictionary:dic]; + + XJDReocrdconFamilyMembersDO * infoModel = [XJDReocrdconFamilyMembersDO modelWithDictionary:model.conFamilyMembersDO]; + + XJDRecoredDetailConsessionModel * timeModel = [XJDRecoredDetailConsessionModel modelWithDictionary:model.conSession]; + self.timeModel = timeModel; + XJDRecoredconMedicalRecordsListDO * medicalModel = [XJDRecoredconMedicalRecordsListDO modelWithDictionary:model.conMedicalRecordsListDO]; + //总的ID + self.conSession_id = timeModel.consession_id; + self.record_id = medicalModel.dangan_id; + self.imId = infoModel.groupId; + //个人信息 + self.infoView.userInfo = infoModel; + //顶部时间 + self.titleview.createTime = timeModel.createTime; + //预约时间 + self.timeView.model = model; + //顶部时间高度 + self.timeView.height = self.timeView.doctorinfoHeight; + //档案 + self.fileView.model = medicalModel; + self.fileView.top = self.timeView.bottom; + + //健康信息 + if (model.answer.count <= 0) { + + self.healthView.hidden = YES; + self.healthView.height = 1; + + UIBezierPath * maskPath = [UIBezierPath bezierPathWithRoundedRect:self.fileView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)]; + + CAShapeLayer * maskLayer = [[CAShapeLayer alloc]init]; + + maskLayer.frame = self.fileView.bounds; + + maskLayer.path = maskPath.CGPath; + + self.fileView.layer.mask = maskLayer; + + + }else + { + self.healthView.hidden = false; + self.healthView.questionArray = model.answer; + self.healthView.height = self.healthView.healthHeight; + + UIBezierPath * maskPath = [UIBezierPath bezierPathWithRoundedRect:self.healthView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)]; + + CAShapeLayer * maskLayer = [[CAShapeLayer alloc]init]; + + maskLayer.frame = self.healthView.bounds; + + maskLayer.path = maskPath.CGPath; + + self.healthView.layer.mask = maskLayer; + + } + + // self.endTimeString = info + self.idNo = model.idNo; + + //是否体检报告 + if ([medicalModel.tfPermission integerValue] == 1) { //有体检报告 +// self.reportView.hidden = false; + [self getBodyInfoReport:timeModel.fromAccount]; +// self.reportView.height = self.reportView.reportHeight; +// self.reportView.top = self.healthView.bottom - 10; + + }else + { + self.reportView.hidden = YES; + self.reportView.height = 1; + [self updateUI]; + + } +// [self updateUI]; + + + } + if ([tag isEqualToString:@"BodyApi"]) { + + // NSArray * dataArray = response; + // + // self.reportView.dataArray = dataArray; + // self.reportView.top= self.healthView.bottom; + // self.reportView.height = self.reportView.reportHeight; + // self.mainScrollView.height = self.reportView.bottom + 35; + // self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), self.reportView.bottom + 35); + [self hiddenAllMBProgressHUD]; + NSDictionary * dic = response; + + if (ValidDict(dic)) { + +// YXPhyscialReportListModel * model = [YXPhyscialReportListModel modelWithDictionary:dic]; +// self.reportView.bodyModel =model; + self.reportView.height = self.reportView.reportHeight; + self.questionStartView.top = self.reportView.bottom + kRealValue(15); +// [self updateFocusIfNeeded]; +// if (self.cancelBtn.hidden == false) { +// self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), self.cancelBtn.bottom + 35); +// } +// if (self.sendVideBtn.hidden == false) { +// self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), self.sendVideBtn.bottom + 35); +// } +// if (self.questionStartView.hidden == false) { +// self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), self.questionStartView.bottom + 35); +// } + [self updateUI]; + }else + { + self.reportView.height = 1; + self.reportView.hidden = true; + [self updateUI]; + } + + + } + if ([tag isEqualToString:@"REASOURAPI"]) { + [self hiddenAllMBProgressHUD]; + NSArray * array = response; + + NSMutableArray * dataArray = [[NSMutableArray alloc] init]; + + for (NSDictionary * reasourDic in array) { + + XJDCancelReasonModel * model = [XJDCancelReasonModel modelWithDictionary:reasourDic]; + + [dataArray addObject:model]; + + } + self.popView.dataArray = dataArray; + + } + if ([tag isEqualToString:@"SUBMITREASOUR"]) { + + [self.popView removeFromSuperview]; + [self hiddenAllMBProgressHUD]; + [self createData]; + } + if([tag isEqualToString:@"ACCEPTQUESTION"]) { + [self hiddenAllMBProgressHUD]; + [self createData]; + + } + if ([tag isEqualToString:@"ENDPICTUREAPI"]) { + + [self createData]; + } + if ([tag isEqualToString:@"AgainQuestion"]) { + + [self createData]; + [self hiddenAllMBProgressHUD]; + } + if ([tag isEqualToString:@"IMAPI"]) { + + NSDictionary * pamrDic = response; + + XJDIMUserInfoModel * model = [XJDIMUserInfoModel modelWithDictionary:pamrDic]; + + XJDIMUserInfoModel * iminfoModel = [[XJDIMUserInfoModel alloc] init]; + iminfoModel.IMInfo = pamrDic; + [XJDCommonUtils keyedArchiverWithData:iminfoModel key:IMLoginUserInfo]; + + // 1. 从即时通信 IM 控制台获取应用 SDKAppID。 + // 2. 初始化 config 对象 + V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init]; + // 3. 指定 log 输出级别。 + config.logLevel = V2TIM_LOG_INFO; + // 4. 添加 V2TIMSDKListener 的事件监听器,self 是 id 的实现类,如果您不需要监听 IM SDK 的事件,这个步骤可以忽略。 + // 5. 初始化 IM SDK,调用这个接口后,可以立即调用登录接口。 + [[V2TIMManager sharedInstance] initSDK:[model.sdkAppId intValue] config:config]; + [ESCTUIManager loginInitTUISDKAppidWith:[model.sdkAppId intValue] UserID:model.userId userSig:model.userSig]; + [[TUICallEngine createInstance] init:[model.sdkAppId intValue] userId:model.userId userSig:model.userSig succ:^{ + + } fail:^(int code, NSString * _Nullable errMsg) { + + }]; + + } + if ([tag isEqualToString:@"STARSENDVIDE"]) { + + [self hiddenAllMBProgressHUD]; + NSDictionary * dic = response; + + NSString * groupId ; + + if ([dic.allKeys containsObject:@"groupId"]) { + + NSArray * memberArray = [dic objectForKey:@"member"]; + + [[TUICallEngine createInstance] addObserver:self]; + + [[TUICallKit createInstance] groupCall:[dic objectForKey:@"groupId"] userIdList:memberArray callMediaType:TUICallMediaTypeVideo]; + + [self hiddenAllMBProgressHUD]; + } + + if ([ESCTUIManager TUIUserStatus] == false) { + + + [self loginImAccount]; + return; + }else + { + + } + } + + if ([tag isEqualToString:@"ENDVideo"]) { + [self createData]; + + } + + if ([tag isEqualToString:@"beginVideo"]) { + + self.endPhoneID = [NSString stringWithFormat:@"%@",response]; + [self createData]; + } +} + +- (void)updateUI { + + //健康信息布局 + self.healthView.top = self.fileView.bottom; + // 体检信息布局 + self.reportView.top = self.healthView.bottom - 10; + //开始视图布局 + self.questionStartView.top = self.healthView.bottom + kRealValue(15); + //底部按钮布局 + self.cancelBtn.top = self.reportView.bottom + kRealValue(30); + self.acceptBtn.top = self.reportView.bottom + kRealValue(30); + self.sendVideBtn.top = self.reportView.bottom + kRealValue(30); + + // 预约状态 1待确认 2待开始 3已开始 4待评价 5已完成 + // 6 拒绝 7取消 8 超时 + + + if ([self.timeModel.contentStatus intValue] == 1) { + self.acceptBtn.hidden = false; + self.cancelBtn.hidden = false; + self.sendVideBtn.hidden = YES; + self.questionStartView.hidden = true; //视图开始时间隐藏 + self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), self.cancelBtn.bottom + 60); + + } + if ([self.timeModel.contentStatus intValue] == 2 || [self.timeModel.contentStatus intValue] == 3) { + self.acceptBtn.hidden = YES; + self.cancelBtn.hidden = YES; + self.sendVideBtn.hidden = false; + self.questionStartView.hidden = false; + NSTimeInterval starTimeInterval = [self.timeModel.doctorStartTimeLong longLongValue]; + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + [formatter setDateFormat:@"yyyy年MM月dd HH:mm"]; + NSDate *date = [NSDate dateWithTimeIntervalSince1970:starTimeInterval/1000]; + NSString *timeString = [formatter stringFromDate:date]; + + NSTimeInterval endTimeInterval = [self.timeModel.doctorEndTimeLong longLongValue]; + NSDateFormatter * endformatter = [[NSDateFormatter alloc] init]; + [endformatter setDateFormat:@"HH:mm"]; + NSDate * enddate = [NSDate dateWithTimeIntervalSince1970:endTimeInterval/1000]; + NSString * endTimeString = [endformatter stringFromDate:enddate]; + self.questionStartView.height = kRealValue(100); + self.questionStartLabel.text = [NSString stringWithFormat:@"%@~%@",timeString,endTimeString]; + self.questionStartView.top = self.reportView.bottom + kRealValue(15); + self.sendVideBtn.top = self.questionStartView.bottom + kRealValue(30); + self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), self.sendVideBtn.bottom + 35); + + + } + if ([self.timeModel.contentStatus intValue] >= 4 ) { //待评价 已完成 + self.acceptBtn.hidden = true; + self.cancelBtn.hidden = true; + self.sendVideBtn.hidden = true; + NSTimeInterval starTimeInterval = [self.timeModel.doctorStartTimeLong longLongValue]; + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + [formatter setDateFormat:@"yyyy年MM月dd HH:mm"]; + NSDate *date = [NSDate dateWithTimeIntervalSince1970:starTimeInterval/1000]; + NSString *timeString = [formatter stringFromDate:date]; + + NSTimeInterval endTimeInterval = [self.timeModel.doctorEndTimeLong longLongValue]; + NSDateFormatter * endformatter = [[NSDateFormatter alloc] init]; + [endformatter setDateFormat:@"HH:mm"]; + NSDate * enddate = [NSDate dateWithTimeIntervalSince1970:endTimeInterval/1000]; + NSString * endTimeString = [endformatter stringFromDate:enddate]; + + self.questionStartLabel.text = [NSString stringWithFormat:@"%@~%@",timeString,endTimeString]; + self.questionStartView.top = self.reportView.bottom + kRealValue(15); + self.questionStartView.height = CGFLOAT_MIN; + self.mainScrollView.contentSize = CGSizeMake(kScreenWidth - kRealValue(30), self.questionStartView.bottom + 60); + + } + +} +- (void)loginImAccount { + + + XJDNetAPI * proctocolApi = [[XJDNetAPI alloc] init:self tag:@"IMAPI" NeedToken:nil]; + [proctocolApi GetIMLoginAccount:nil]; + + + +} + +//请求体检信息 +- (void)getBodyInfoReport:(NSString *)byID { + + +// NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; +// +// [parmDic setObject:byID forKey:@"sfzh"]; +// + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + [parmDic setObject:byID forKey:@"userId"]; + + XJDNetAPI * detailApi = [[XJDNetAPI alloc] init:self tag:@"BodyApi" NeedToken:@""]; + + [detailApi getBodyReportDeatil:parmDic]; + + +} + +//拒绝 +- (void)cancelQuestionAction { + + + [kApplication.keyWindow addSubview:self.popView]; + + [UIView animateWithDuration:0.5 + animations:^{ + self.popView.alpha = 1; + }]; +} +//发起视频通话 +- (void)sendVideoAction { + + [self showMBProgressHUDWithString:@"视频通话请求中..." autoHidden:NO]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:self.question_id forKey:@"sessionId"]; + XJDNetAPI * detailApi = [[XJDNetAPI alloc] init:self tag:@"STARSENDVIDE" NeedToken:@""]; + [detailApi getSendVideoStart:parmDic]; +} + + +//提交拒绝原因 +- (void)cancelReasourSubmit:(NSString *)rejectReason withReasonType:(NSString *)reasonType { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject: self.conSession_id forKey:@"id"]; + [parmDic setObject:rejectReason forKey:@"rejectReason"]; + [parmDic setObject:reasonType forKey:@"reasonType"]; + + XJDNetAPI * detailApi = [[XJDNetAPI alloc] init:self tag:@"SUBMITREASOUR" NeedToken:@""]; + + [detailApi submitCancelreasourData:parmDic]; + +} + +//接受请求 +- (void)waitAcceptAction { + XJDTTestView *vi = [[XJDTTestView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; + [kAppWindow addSubview:vi]; + vi.returnBlock = ^(NSString *startTime, NSString *endTime) { + NSLog(@"开始时间 = %@", startTime); + NSLog(@"结束时间 = %@", endTime); + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject: self.conSession_id forKey:@"id"]; + [parmDic setObject:startTime forKey:@"startTime"]; + [parmDic setObject:endTime forKey:@"endTime"]; + + XJDNetAPI * detailApi = [[XJDNetAPI alloc] init:self tag:@"ACCEPTQUESTION" NeedToken:@""]; + + [detailApi getAcceptQuestion:parmDic]; + + }; +} + +//点否 下次预约 +-(void)againSendVideoTime { + + XJDTTestView *vi = [[XJDTTestView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; + [kAppWindow addSubview:vi]; + vi.returnBlock = ^(NSString *startTime, NSString *endTime) { + NSLog(@"开始时间 = %@", startTime); + NSLog(@"结束时间 = %@", endTime); + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject: self.conSession_id forKey:@"id"]; + [parmDic setObject:startTime forKey:@"startTime"]; + [parmDic setObject:endTime forKey:@"endTime"]; + [parmDic setObject:@(1) forKey:@"type"]; + [self showMBProgressHUDWithString:@"重新预约中" autoHidden:false]; + XJDNetAPI * detailApi = [[XJDNetAPI alloc] init:self tag:@"AgainQuestion" NeedToken:@""]; + [detailApi getAgainSessionReservationDate:parmDic]; + + }; + +} + +//查看详情 +- (void)lookFileDetail { + + XJDFileDataDetailViewController * detalVC = [[XJDFileDataDetailViewController alloc] init]; + detalVC.record_id = self.record_id; + [self.navigationController pushViewController:detalVC animated:YES]; + +} + +//开始通话 +- (void)onCallBegin:(TUIRoomId *)roomId callMediaType:(TUICallMediaType)callMediaType callRole:(TUICallRole)callRole { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject: self.conSession_id forKey:@"id"]; + [parmDic setObject:@"" forKey:@"startTime"]; + [parmDic setObject:@"" forKey:@"endTime"]; + [parmDic setObject:@(2) forKey:@"type"]; + XJDNetAPI * detailApi = [[XJDNetAPI alloc] init:self tag:@"beginVideo" NeedToken:@""]; + [detailApi getAgainSessionReservationDate:parmDic]; + +} + +//结束通话 +- (void)onCallEnd:(TUIRoomId *)roomId callMediaType:(TUICallMediaType)callMediaType callRole:(TUICallRole)callRole totalTime:(float)totalTime { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:self.endPhoneID forKey:@"id"]; + XJDNetAPI * endApi = [[XJDNetAPI alloc] init:self tag:@"ENDVideo" NeedToken:@""]; + [endApi getendVideoReportById:parmDic]; + + + + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"本次咨询是否已完成?" preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"否" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { + [self againSendVideoTime]; + + }]; + UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"完成" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + + [self endQuestionSelected]; + + }]; + [alertController addAction:cancelAction]; + [alertController addAction:sureAction]; + // 确保在主线程上显示 UIAlertController + dispatch_async(dispatch_get_main_queue(), ^{ + [self presentViewController:alertController animated:YES completion:nil]; + }); + +} + +//结束本次咨询 +- (void)endQuestionSelected { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:self.question_id forKey:@"id"]; + XJDNetAPI * endApi = [[XJDNetAPI alloc] init:self tag:@"ENDPICTUREAPI" NeedToken:@""]; + [endApi GetEndPictureEndIMQuestion:parmDic]; + +} + + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameSubTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameSubTableViewCell.h new file mode 100644 index 0000000..d2c6f74 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameSubTableViewCell.h @@ -0,0 +1,19 @@ +// +// XJDSickNameSubTableViewCell.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/8/29. +// + +#import +#import "XJDHealthPhyReportModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDSickNameSubTableViewCell : UITableViewCell + +@property (nonatomic, strong) XJDThirdResultResModel * model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameSubTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameSubTableViewCell.m new file mode 100644 index 0000000..358da7d --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameSubTableViewCell.m @@ -0,0 +1,221 @@ +// +// XJDSickNameSubTableViewCell.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/8/29. +// + +#import "XJDSickNameSubTableViewCell.h" + + +@interface XJDSickNameSubTableViewCell () + +@property (nonatomic, strong) UILabel * nameLabel; +@property (nonatomic, strong) UILabel * resultLabel; +@property (nonatomic, strong) UILabel * danweiLabel; +@property (nonatomic, strong) UILabel * caokaoLabel; +@property (nonatomic, strong) UIButton * detailBtn; +@property (nonatomic, strong) UIView * popbackView; +@end + +@implementation XJDSickNameSubTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + + + UIView * headView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), 0, kScreenWidth - kRealValue(30), kRealValue(40))]; + headView.backgroundColor =KWhiteColor; + [self.contentView addSubview:headView]; + + + + UILabel * nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, kRealValue(127), kRealValue(40))]; + nameLabel.text = @""; + nameLabel.textAlignment = NSTextAlignmentCenter; + nameLabel.font = SYSTEMFONT(13); + nameLabel.numberOfLines = 2; + self.nameLabel = nameLabel; + [headView addSubview:nameLabel]; + + CGFloat tabWidth = (kScreenWidth - kRealValue(30) - kRealValue(127) - 4)/3; + + UIView * lin_left = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, nameLabel.height)]; + lin_left.backgroundColor = CLineColor; + [headView addSubview:lin_left]; + + UIView * linName = [[UIView alloc] initWithFrame:CGRectMake(nameLabel.right, 0, 1, nameLabel.height)]; + linName.backgroundColor = CLineColor; + [headView addSubview:linName]; + + UILabel * reslutLabel = [[UILabel alloc] initWithFrame:CGRectMake(linName.right , 0, tabWidth, kRealValue(40))]; + reslutLabel.text = @""; + reslutLabel.textAlignment = NSTextAlignmentCenter; + reslutLabel.font = SYSTEMFONT(13); + reslutLabel.textColor = UIColorHex(#333333); + self.resultLabel = reslutLabel; + reslutLabel.userInteractionEnabled = true; + [headView addSubview:reslutLabel]; + + self.detailBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, tabWidth - 20, 20)]; + [self.detailBtn setTitle:@"详情" forState:UIControlStateNormal]; + [self.detailBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + self.detailBtn.titleLabel.font = MEDIUMFONT(13); + self.detailBtn.layer.cornerRadius = 5; + self.detailBtn.backgroundColor = RGBA(33, 190, 189, 0.5); + [self.detailBtn addTarget:self action:@selector(showResultDetail) forControlEvents:UIControlEventTouchUpInside]; + [reslutLabel addSubview:self.detailBtn]; + + UIView * resName = [[UIView alloc] initWithFrame:CGRectMake(reslutLabel.right, 0, 1, nameLabel.height)]; + resName.backgroundColor = CLineColor; + [headView addSubview:resName]; + + UILabel * danweiLabel = [[UILabel alloc] initWithFrame:CGRectMake(resName.right, 0, tabWidth, kRealValue(40))]; + danweiLabel.text = @""; + danweiLabel.textAlignment = NSTextAlignmentCenter; + danweiLabel.font = SYSTEMFONT(13); + danweiLabel.textColor = UIColorHex(#333333); + self.danweiLabel = danweiLabel; + [headView addSubview:danweiLabel]; + + UIView * danweiLine = [[UIView alloc] initWithFrame:CGRectMake(danweiLabel.right, 0, 1, nameLabel.height)]; + danweiLine.backgroundColor = CLineColor; + [headView addSubview:danweiLine]; + + UILabel * zhiLabel = [[UILabel alloc] initWithFrame:CGRectMake(danweiLine.right, 0, tabWidth, kRealValue(40))]; + zhiLabel.text = @""; + zhiLabel.textAlignment = NSTextAlignmentCenter; + zhiLabel.textColor = UIColorHex(#333333); + zhiLabel.font = SYSTEMFONT(13); + self.caokaoLabel = zhiLabel; + [headView addSubview:zhiLabel]; + + UIView * lin_right = [[UIView alloc] initWithFrame:CGRectMake(zhiLabel.right, 0, 1, nameLabel.height)]; + lin_right.backgroundColor = CLineColor; + [headView addSubview:lin_right]; + + UIView * lin_bottom = [[UIView alloc] initWithFrame:CGRectMake(0, zhiLabel.bottom - 1, kScreenWidth - kRealValue(30), 1)]; + lin_bottom.backgroundColor = CLineColor; + [headView addSubview:lin_bottom]; +} + +- (void)setModel:(XJDThirdResultResModel *)model { + + _model = model; + + if (ValidStr(_model.peResult)) { + _model.peResult = @"/"; + } + if (ValidStr(_model.unit)) { + _model.unit = @"/"; + } + if (ValidStr(_model.printContext)) { + _model.printContext = @"/"; + } + if (ValidStr(_model.peItemName)) { + _model.peItemName = @"/"; + } + self.nameLabel.text = _model.peItemName; + + + if (_model.peResult.length >= 5) { + + self.resultLabel.text =@""; + self.detailBtn.hidden = false; + }else + { + self.resultLabel.text = _model.peResult; + self.detailBtn.hidden = true; + } + self.danweiLabel.text = _model.unit; + self.caokaoLabel.text = _model.printContext; + + + if ([_model.colour integerValue] == 1) { + + self.nameLabel.textColor = UIColorHex(#DA180F); + self.resultLabel.textColor = UIColorHex(#DA180F); + self.danweiLabel.textColor = UIColorHex(#DA180F); + self.caokaoLabel.textColor = UIColorHex(#DA180F); + }else + { + self.nameLabel.textColor = UIColorHex(#333333); + self.resultLabel.textColor = UIColorHex(#333333); + self.danweiLabel.textColor = UIColorHex(#333333); + self.caokaoLabel.textColor = UIColorHex(#333333); + } + +} + +- (void)showResultDetail { + + + UIView * popbackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; + self.popbackView = popbackView; + popbackView.backgroundColor = RGBA(0, 0, 0, 0.5); + + + + UIScrollView * centerView = [[UIScrollView alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(154), kScreenWidth - kRealValue(30), 200)]; + centerView.backgroundColor = KWhiteColor; + centerView.layer.cornerRadius = 10.0; + [popbackView addSubview:centerView]; + + UILabel * connteLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, centerView.width - 20, 50)]; + connteLabel.text = [NSString stringWithFormat:@"%@",self.model.peResult] ; + connteLabel.numberOfLines = 0; + connteLabel.font = SYSTEMFONT(14); + connteLabel.textAlignment = NSTextAlignmentLeft; + connteLabel.textColor = CFontColor1; + [centerView addSubview:connteLabel]; + + CGFloat h = [XJDCommonUtils getSpaceLabelHeight:connteLabel AndLeftisTrue:true withStr:connteLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:connteLabel.width withLineSpacing:5]; + + connteLabel.height = h; + + centerView.height = h + 69; + + if (h > kScreenHeight - kRealValue(180)) { + + centerView.height = kRealValue(450); + centerView.contentSize = CGSizeMake(centerView.width, h); + } + + UIButton * sureBtn = [[UIButton alloc] initWithFrame:CGRectMake(kRealValue(15), centerView.bottom- 15, kScreenWidth - kRealValue(30), 49)]; + [sureBtn setTitle:@"确定" forState:UIControlStateNormal]; + sureBtn.titleLabel.font = SYSTEMFONT(13); + sureBtn.backgroundColor = KWhiteColor; + sureBtn.layer.cornerRadius = 10; + [sureBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + [sureBtn addTarget:self action:@selector(sureAction) forControlEvents:UIControlEventTouchUpInside]; + [popbackView addSubview:sureBtn]; + + + [kAppWindow addSubview:popbackView]; +} + +- (void)sureAction { + + [self.popbackView removeFromSuperview]; +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameTopTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameTopTableViewCell.h new file mode 100644 index 0000000..040a850 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameTopTableViewCell.h @@ -0,0 +1,23 @@ +// +// XJDSickNameTopTableViewCell.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/8/29. +// + +#import +#import "XJDHealthPhyReportModel.h" +NS_ASSUME_NONNULL_BEGIN + +typedef void(^onekeyQuestionBlock)(NSString * itemID); + +@interface XJDSickNameTopTableViewCell : UITableViewCell + +@property (nonatomic, strong) XJDThirdResultResModel * model; +@property (nonatomic, copy) onekeyQuestionBlock itemBlock; +@property (nonatomic, copy) NSString * uniItemClassId; +@property (nonatomic, assign) NSInteger questionType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameTopTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameTopTableViewCell.m new file mode 100644 index 0000000..cdfe52d --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDSickNameTopTableViewCell.m @@ -0,0 +1,134 @@ +// +// SickNameTopTableViewCell.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/8/29. +// + +#import "XJDSickNameTopTableViewCell.h" + +@interface XJDSickNameTopTableViewCell () + +@property (nonatomic, strong ) UILabel * sickNameLabel; +@property (nonatomic, strong ) YYLabel * oneKeyLabel; + +@end + +@implementation XJDSickNameTopTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + UIView * linV = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(15), 2, kRealValue(13))]; + linV.backgroundColor = UIColorHex(#21BEBD); + [self.contentView addSubview:linV]; + + self.sickNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(linV.right + kRealValue(10), kRealValue(15), 100, 16)]; + self.sickNameLabel.textAlignment = NSTextAlignmentLeft; + self.sickNameLabel.font = BOLDSYSTEMFONT(15); + self.sickNameLabel.textColor = CFontColor1; + [self.contentView addSubview:self.sickNameLabel]; + + self.oneKeyLabel = [[YYLabel alloc] initWithFrame:CGRectMake(kScreenWidth - kRealValue(15) - 130 , kRealValue(15), 130, 16)]; + self.oneKeyLabel.textAlignment = NSTextAlignmentRight; + self.oneKeyLabel.font = BOLDSYSTEMFONT(13); + self.oneKeyLabel.textColor = KRedColor; + self.oneKeyLabel.text = @"专家库一键咨询 >"; + self.oneKeyLabel.hidden = true; + [self.oneKeyLabel setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + [self doctorQuestion]; + }]; + [self.contentView addSubview:self.oneKeyLabel]; + + UIView * headView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), self.sickNameLabel.bottom + kRealValue(12), kScreenWidth - kRealValue(30), kRealValue(40))]; + headView.backgroundColor = RGBA(33, 190, 189, 0.5); + [self.contentView addSubview:headView]; + + UILabel * nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, kRealValue(127), kRealValue(40))]; + nameLabel.text = @"名称"; + nameLabel.textAlignment = NSTextAlignmentCenter; + nameLabel.font = SYSTEMFONT(13); + [headView addSubview:nameLabel]; + + CGFloat tabWidth = (kScreenWidth - kRealValue(30) - kRealValue(127) - 4)/3; + + UIView * linName = [[UIView alloc] initWithFrame:CGRectMake(nameLabel.right, 0, 1, nameLabel.height)]; + linName.backgroundColor = CLineColor; + [headView addSubview:linName]; + + UILabel * reslutLabel = [[UILabel alloc] initWithFrame:CGRectMake(linName.right , 0, tabWidth, kRealValue(40))]; + reslutLabel.text = @"结果"; + reslutLabel.textAlignment = NSTextAlignmentCenter; + reslutLabel.font = SYSTEMFONT(13); + [headView addSubview:reslutLabel]; + + UIView * resName = [[UIView alloc] initWithFrame:CGRectMake(reslutLabel.right, 0, 1, nameLabel.height)]; + resName.backgroundColor = CLineColor; + [headView addSubview:resName]; + + UILabel * danweiLabel = [[UILabel alloc] initWithFrame:CGRectMake(resName.right, 0, tabWidth, kRealValue(40))]; + danweiLabel.text = @"单位"; + danweiLabel.textAlignment = NSTextAlignmentCenter; + danweiLabel.font = SYSTEMFONT(13); + [headView addSubview:danweiLabel]; + + UIView * danweiLine = [[UIView alloc] initWithFrame:CGRectMake(danweiLabel.right, 0, 1, nameLabel.height)]; + danweiLine.backgroundColor = CLineColor; + [headView addSubview:danweiLine]; + + UILabel * zhiLabel = [[UILabel alloc] initWithFrame:CGRectMake(danweiLine.right, 0, tabWidth, kRealValue(40))]; + zhiLabel.text = @"参考值"; + zhiLabel.textAlignment = NSTextAlignmentCenter; + zhiLabel.font = SYSTEMFONT(13); + [headView addSubview:zhiLabel]; +} + +- (void)setModel:(XJDThirdResultResModel *)model { + + _model = model; + + self.sickNameLabel.text = _model.peItemName; + +} + + +- (void)doctorQuestion { + + if (self.itemBlock) { + + self.itemBlock(self.model.third_tId); + } +} + +- (void)setQuestionType:(NSInteger)questionType { + + _questionType = questionType; + + if (_questionType == 2) { + self.oneKeyLabel.hidden = false; + }else + { + self.oneKeyLabel.hidden = true; + } + +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDimageReportTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDimageReportTableViewCell.h new file mode 100644 index 0000000..dc52194 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDimageReportTableViewCell.h @@ -0,0 +1,22 @@ +// +// XJDimageReportTableViewCell.h +// DoctorXinjiang +// +// Created by Apple on 2024/2/23. +// + +#import +#import "XJDHealthPhyReportModel.h" +NS_ASSUME_NONNULL_BEGIN + +typedef void(^lookUserReport)(NSString * lookUrl); + +@interface XJDimageReportTableViewCell : UITableViewCell + +@property (nonatomic, strong) XJDImageItemListModel * model; + +@property (nonatomic, copy) lookUserReport lookBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDimageReportTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDimageReportTableViewCell.m new file mode 100644 index 0000000..b7bcaea --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/XJDimageReportTableViewCell.m @@ -0,0 +1,235 @@ +// +// imageReportTableViewCell.m +// DoctorXinjiang +// +// Created by Apple on 2024/2/23. +// + +#import "XJDimageReportTableViewCell.h" + +@interface XJDimageReportTableViewCell () + +@property (nonatomic, strong) UILabel * reportLabel; + +@property (nonatomic, strong) UIView * reportConetView; + +@property (nonatomic, strong) UILabel * resultLabel; + +@property (nonatomic, strong) UIView * conteLineView; + +@property (nonatomic, strong) NSMutableArray * buttonArray; +@property (nonatomic, strong) NSMutableArray * reportArray; +@property (nonatomic, strong) NSMutableArray * imageArray; + + +@end + +@implementation XJDimageReportTableViewCell + +- (NSMutableArray *)buttonArray { + + if (!_buttonArray) { + + _buttonArray = [[NSMutableArray alloc] init]; + } + return _buttonArray; +} + +- (NSMutableArray *)reportArray { + + if (!_reportArray) { + + _reportArray = [[NSMutableArray alloc] init]; + } + return _reportArray; +} + +- (NSMutableArray *)imnageArray { + + if (!_imageArray) { + + _imageArray = [[NSMutableArray alloc] init]; + } + return _imageArray; +} +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + return self; +} + + +- (void)createUI { + + UIView * linV = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(15), 2, kRealValue(13))]; + linV.backgroundColor = UIColorHex(#21BEBD); + [self.contentView addSubview:linV]; + + self.reportLabel = [[UILabel alloc] initWithFrame:CGRectMake(linV.right + kRealValue(10), kRealValue(15), kScreenWidth - kRealValue(20), 16)]; + self.reportLabel.textAlignment = NSTextAlignmentLeft; + self.reportLabel.font = BOLDSYSTEMFONT(15); + self.reportLabel.textColor = CFontColor1; + self.reportLabel.text = @"--"; + [self.contentView addSubview:self.reportLabel]; + + self.reportConetView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15),self.reportLabel.bottom + kRealValue(15), kScreenWidth - kRealValue(30), kRealValue(13))]; + self.reportConetView.backgroundColor = RGBA(245, 247, 251, 1); + [self.contentView addSubview:self.reportConetView]; + + self.resultLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), kRealValue(15), self.reportConetView.width - kRealValue(32), 13)]; + self.resultLabel.textAlignment = NSTextAlignmentLeft; + self.resultLabel.font = MEDIUMFONT(13); + self.resultLabel.textColor = CFontColor1; + self.resultLabel.numberOfLines = 0; + self.resultLabel.text = @"--"; + [self.reportConetView addSubview:self.resultLabel]; + + self.conteLineView = [[UIView alloc] initWithFrame:CGRectMake(0,self.resultLabel.bottom + kRealValue(38), self.reportConetView.width, kRealValue(1))]; + self.conteLineView.backgroundColor = UIColorHex(#E7EAF2); + [self.reportConetView addSubview:self.conteLineView]; + +} + +- (void)setModel:(XJDImageItemListModel *)model { + + _model = model; + + self.reportLabel.text = _model.imageCheckName; + + self.resultLabel.text = _model.reportContent; + + self.resultLabel.height = _model.textHeight; + + if (_model.textHeight < 13) { + + self.conteLineView.top = self.resultLabel.bottom + kRealValue(38); + self.reportConetView.height = kRealValue(15) + 13 + kRealValue(38) + kRealValue(44); + } + else + { + self.conteLineView.top = self.resultLabel.bottom + kRealValue(18); + self.reportConetView.height = kRealValue(15) + _model.textHeight + kRealValue(18) + kRealValue(44); + + } + + + + + + + + for (UIButton * toolsBtn in self.buttonArray) { + [toolsBtn removeFromSuperview]; + } + [self.buttonArray removeAllObjects]; + [self.imnageArray removeAllObjects]; + [self.reportArray removeAllObjects]; + + //原始报告 + CGFloat buttonW = (self.reportConetView.width - kRealValue(75) )/ 4; //1行最多4个 + + NSArray * yuanshiArray = [_model.reportUrl componentsSeparatedByString:@","]; + [self.reportArray addObjectsFromArray:yuanshiArray]; + CGFloat lastX = 0; + for (int i = 0 ; i < yuanshiArray.count; i ++) { + + UIButton * lookYuanshi = [[UIButton alloc] initWithFrame:CGRectMake(self.reportConetView.width - kRealValue(15) - (buttonW + kRealValue(15)) * i, self.conteLineView.bottom + kRealValue(6), kRealValue(80), kRealValue(30))]; + [lookYuanshi setTitle:@"原始报告" forState:UIControlStateNormal]; + lookYuanshi.titleLabel.font = SYSTEMFONT(13); + lookYuanshi.layer.cornerRadius = 15.0; + lookYuanshi.layer.borderWidth = 1.0; + [lookYuanshi setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + lookYuanshi.layer.borderColor = UIColorHex(#21BEBD).CGColor; + lookYuanshi.layer.masksToBounds = true; + lookYuanshi.tag = 2000+ i; + [self.buttonArray addObject:lookYuanshi]; + + } + //影像原片 + NSArray * yingxiangArray = [_model.imageShowUrl componentsSeparatedByString:@","]; + [self.imageArray addObjectsFromArray:yingxiangArray]; + for (int i = 0 ; i < yingxiangArray.count; i ++) { + + UIButton * lookyingxiang = [[UIButton alloc] initWithFrame:CGRectMake(kRealValue(15) - (buttonW + kRealValue(15)) * i, self.conteLineView.bottom + kRealValue(6), kRealValue(80), kRealValue(30))]; + [lookyingxiang setTitle:@"影像原片" forState:UIControlStateNormal]; + lookyingxiang.titleLabel.font = SYSTEMFONT(13); + lookyingxiang.layer.cornerRadius = 15.0; + lookyingxiang.layer.borderWidth = 1.0; + lookyingxiang.layer.borderColor = UIColorHex(#21BEBD).CGColor; + lookyingxiang.layer.masksToBounds = true; + [lookyingxiang setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + + lookyingxiang.tag = 1000+ i; + [self.buttonArray addObject:lookyingxiang]; + } + + + + //布局多组按钮 + //一行的列数 + NSInteger cols = 4; + //label大小 + CGFloat labW = buttonW ; + CGFloat labH = kRealValue(30); + CGFloat pading = kRealValue(15); + //每一行的间距 + CGFloat rowMargin = kRealValue(15); + for (int index = 0; index < self.buttonArray.count ; index ++) { + //所在列 + NSInteger col = index % cols; + //所在行 + NSInteger row = index / cols; + + CGFloat shopX = col * (labW + rowMargin); + CGFloat shopY = row * (labH + rowMargin); + UIButton * toolsBtn = self.buttonArray[index]; + toolsBtn.frame = CGRectMake(self.reportConetView.width - shopX - pading - buttonW , self.conteLineView.bottom + kRealValue(6) + shopY, labW, labH); + if (index == self.buttonArray.count - 1) { + lastX = toolsBtn.bottom + kRealValue(7); + } + [toolsBtn addTarget:self action:@selector(lookImageReport:) forControlEvents:UIControlEventTouchUpInside]; + [self.reportConetView addSubview:toolsBtn]; + + } + self.reportConetView.height = lastX; + +} + +- (void)lookImageReport:(UIButton *)lookBtn { + + NSLog(@"%d",lookBtn.tag); + //影片原像 + if (lookBtn.tag < 2000) { + + if (self.lookBlock) { + self.lookBlock(self.imageArray[lookBtn.tag - 1000]); + } + + }else //原始报告 + { + if (self.lookBlock) { + self.lookBlock(self.reportArray[lookBtn.tag - 2000]); + } + } + + + + +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/YXSickNameSubTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/YXSickNameSubTableViewCell.h deleted file mode 100644 index 12e1b94..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionDetail(咨询详情)/YXSickNameSubTableViewCell.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// YXSickNameSubTableViewCell.h -// DoctorXinjiang -// -// Created by 仁康信息 on 2023/8/29. -// - -#import -#import "YXHealthPhyReportModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface YXSickNameSubTableViewCell : UITableViewCell - -@property (nonatomic, strong) YXThirdResultResModel * model; - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDAudioVideoRecordViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDAudioVideoRecordViewController.h new file mode 100644 index 0000000..3cc07f9 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDAudioVideoRecordViewController.h @@ -0,0 +1,19 @@ +// +// XJDAudioVideoRecordViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDAudioVideoRecordViewController : YXBaseViewController + +@property (nonatomic, assign) NSInteger questionType; +@property (nonatomic, assign) NSInteger questionStatus; //待回复10 进行中20 已完成30 (时间充裕可优化枚举类型) + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDAudioVideoRecordViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDAudioVideoRecordViewController.m new file mode 100644 index 0000000..6d12538 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDAudioVideoRecordViewController.m @@ -0,0 +1,286 @@ +// +// XJDAudioVideoRecordViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "XJDAudioVideoRecordViewController.h" +#import "XJDQuestionRecoredTable.h" +#import "XJDQuestionDetailViewController.h" +#import "LYEmptyView.h" +#import "LYEmptyViewHeader.h" +@interface XJDAudioVideoRecordViewController () + +@property (nonatomic, strong) XJDQuestionRecoredTable * homeTable; + +@property (nonatomic, strong) NSMutableArray * buttonArray; + +@property (nonatomic, strong) NSMutableArray * dataArray; + +@property (nonatomic, assign) NSInteger pageNo; + +@property (nonatomic, copy) NSString * status; + +@end + +@implementation XJDAudioVideoRecordViewController + +- (NSMutableArray *)dataArray { + + if (!_dataArray) { + + _dataArray = [[NSMutableArray alloc] init]; + + } + return _dataArray; + +} + + +- (NSMutableArray *)buttonArray { + + if (!_buttonArray) { + + _buttonArray = [[NSMutableArray alloc] init]; + + } + return _buttonArray; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.navigationItem.title = @"视频咨询"; + [self createUI]; + [self createData]; +} + +- (void)createData { + + [self showMBProgressHUDWithString:@"数据加载中,请稍候..." autoHidden:NO]; + XJDNetAPI * listApi = [[XJDNetAPI alloc] init:self tag:@"LIST" NeedToken:@""]; + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:@(self.pageNo) forKey:@"pageNo"]; + [parmDic setObject:@(10) forKey:@"pageSize"]; + [parmDic setObject:@"2" forKey:@"type"]; + [parmDic setObject:self.status forKey:@"status"]; + [listApi GetQuestionRecoredList:parmDic]; + +} + +- (void)viewWillAppear:(BOOL)animated { + + [super viewWillAppear:animated]; + [self.homeTable.mj_header beginRefreshing]; + + +} +- (void)createUI { + + NSArray * array = @[@"待确认",@"进行中",@"已完成"]; + [self.buttonArray removeAllObjects]; + CGFloat w = kRealValue(66); + for (int index = 0; index < array.count; index ++) { + + UIButton * listBtn = [[UIButton alloc] init]; + + listBtn.frame = CGRectMake(kRealValue(15) + (w + kRealValue(13)) * index , kRealValue(15), w, 27); + [listBtn setTitle:array[index] forState:UIControlStateNormal]; + [listBtn setTitleColor:KWhiteColor forState:UIControlStateSelected]; + [listBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + [listBtn addTarget:self action:@selector(statusChange:) forControlEvents:UIControlEventTouchUpInside]; + listBtn.titleLabel.font = SYSTEMFONT(13); + listBtn.layer.cornerRadius = 14.0; + listBtn.layer.masksToBounds = true; + [self.view addSubview:listBtn]; + listBtn.tag = 100 + index; + [self.buttonArray addObject:listBtn]; + + } + + + + self.homeTable = [[XJDQuestionRecoredTable alloc] initWithFrame:CGRectMake(0, 50, kScreenWidth, kScreenHeight - kTopHeight - kRealValue(15) + 27 - SafetyAreaHeight - kRealValue(48)) style:UITableViewStyleGrouped]; + MJWeakSelf + self.homeTable.videoBlock = ^(XJDRecordIMListDateModel * _Nonnull model) { + + XJDQuestionDetailViewController * detailVC = [[XJDQuestionDetailViewController alloc] init]; + detailVC.question_id = model.Record_id; + [weakSelf.navigationController pushViewController:detailVC animated:YES]; + + }; + [self.view addSubview:self.homeTable]; + + + self.homeTable.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ + weakSelf.pageNo = 1; + [self createData]; + + }]; + self.homeTable.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ + weakSelf.pageNo ++; + [self createData]; + + }]; + + //初始化一个emptyView + + LYEmptyView *emptyView = [LYEmptyView emptyViewWithImage:[UIImage imageNamed:@"nodataPicture"] titleStr:@"暂无数据" detailStr:@""]; + +// LYEmptyView *emptyView = [LYEmptyView emptyActionViewWithImageStr:@"nodataPicture" +// titleStr:@"无数据" +// detailStr:@"请稍后再试!" +// btnTitleStr:@"重新加载" +// btnClickBlock:^{ +// [self createData]; +// }]; + //元素竖直方向的间距 + emptyView.subViewMargin = 20.f; + //标题颜色 + emptyView.titleLabTextColor = UIColorHex(#666666); + //描述字体 + emptyView.detailLabFont = [UIFont systemFontOfSize:16]; + //按钮背景色 + emptyView.imageSize = CGSizeMake(kRealValue(210), kRealValue(183)); + emptyView.contentViewY = kRealValue(160); + //设置空内容占位图 + self.homeTable.ly_emptyView = emptyView; +} + +-(void)setQuestionStatus:(NSInteger)questionStatus { + + _questionStatus = questionStatus; + + + + switch (_questionStatus) { + case 10: + for (UIButton * seleBtn in self.buttonArray) { + if (seleBtn.tag == 100) { + seleBtn.selected = YES; + seleBtn.backgroundColor = UIColorHex(#21BEBD); + }else + { + seleBtn.backgroundColor = UIColorHex(#DDDDDD); + } + } + self.status = @"1"; + [self createData]; + break; + case 20: + for (UIButton * seleBtn in self.buttonArray) { + if (seleBtn.tag == 101) { + seleBtn.selected = YES; + seleBtn.backgroundColor = UIColorHex(#21BEBD); + }else + { + seleBtn.backgroundColor = UIColorHex(#DDDDDD); + } + + } + self.status = @"2"; + [self createData]; + break; + case 30: + for (UIButton * seleBtn in self.buttonArray) { + if (seleBtn.tag == 102) { + seleBtn.selected = YES; + seleBtn.backgroundColor = UIColorHex(#21BEBD); + }else + { + seleBtn.backgroundColor = UIColorHex(#DDDDDD); + } + } + self.status = @"3"; + [self createData]; + break; + + default: + break; + } +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + + [self.homeTable.mj_footer endRefreshing]; + [self.homeTable.mj_header endRefreshing]; + + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self.homeTable.mj_footer endRefreshing]; + [self.homeTable.mj_header endRefreshing]; + + if ([tag isEqualToString:@"LIST"]) { + [self hiddenAllMBProgressHUD]; + if (self.pageNo == 1) { + [self.dataArray removeAllObjects]; + } + NSArray * array = response ; + + for (NSDictionary * dic in array) { + + XJDRecordIMListDateModel * model = [XJDRecordIMListDateModel modelWithDictionary:dic]; + + [self.dataArray addObject:model]; + } + self.homeTable.dataArray = self.dataArray; + + } + +} + + +- (void)statusChange:(UIButton *)statusBtn { + [self.dataArray removeAllObjects]; + if (statusBtn.tag == 100) { + self.status = @"1"; + } + if (statusBtn.tag == 101) { + self.status = @"2"; + + } + if (statusBtn.tag == 102) { + self.status = @"3"; + + } + [self createData]; + for (UIButton * titBtn in self.buttonArray) { + + if (titBtn == statusBtn) { + + titBtn.selected = YES; + titBtn.backgroundColor = UIColorHex(#21BEBD); + + }else + { + titBtn.selected = NO; + titBtn.backgroundColor = UIColorHex(#DDDDDD); + } + + } +} + + + + + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDPictureRecordViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDPictureRecordViewController.h new file mode 100644 index 0000000..1efaede --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDPictureRecordViewController.h @@ -0,0 +1,19 @@ +// +// XJDPictureRecordViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDPictureRecordViewController : YXBaseViewController + +@property (nonatomic, assign) NSInteger questionType; +@property (nonatomic, assign) NSInteger questionStatus; //待回复10 进行中20 已完成30 (时间充裕可优化枚举类型) + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDPictureRecordViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDPictureRecordViewController.m new file mode 100644 index 0000000..182c881 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDPictureRecordViewController.m @@ -0,0 +1,588 @@ +// +// XJDPictureRecordViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "XJDPictureRecordViewController.h" +#import "XJDQuestionRecoredTable.h" +#import "XJDQuestionRecordModel.h" +#import "XJDRecordIMListDateModel.h" +#import "ChatViewController.h" + +#import "TUIConversationListBaseDataProvider.h" + +#import +#import +#import +#import +#import "TUIConversationCellData.h" +#import "LYEmptyView.h" +#import "LYEmptyViewHeader.h" +@interface XJDPictureRecordViewController () + +@property (nonatomic, strong) XJDQuestionRecoredTable * homeTable; + +@property (nonatomic, strong) NSMutableArray * buttonArray; + +@property (nonatomic, strong) NSMutableArray * dataArray; + +@property (nonatomic, strong) NSMutableArray * IMDataArray; + + +@property (nonatomic, strong) NSMutableArray * groupIDArray; + +@property (nonatomic, strong) NSMutableArray * jingxingArray; + +@property (nonatomic, assign) NSInteger pageNo; + +@property (nonatomic, copy) NSString * status; + +@property (nonatomic, assign) NSInteger tfReply; + + +@end + +@implementation XJDPictureRecordViewController + +- (NSMutableArray *)buttonArray { + + if (!_buttonArray) { + + _buttonArray = [[NSMutableArray alloc] init]; + + } + return _buttonArray; +} + +- (NSMutableArray *)groupIDArray { + + if (!_groupIDArray) { + + _groupIDArray = [[NSMutableArray alloc] init]; + + } + return _groupIDArray; + +} + +- (NSMutableArray *)jingxingArray { + + if (!_jingxingArray) { + + _jingxingArray = [[NSMutableArray alloc] init]; + + } + return _jingxingArray; + +} + + + +- (NSMutableArray *)dataArray { + + if (!_dataArray) { + + _dataArray = [[NSMutableArray alloc] init]; + + } + return _dataArray; + +} + +- (NSMutableArray *)IMDataArray { + + if (!_IMDataArray) { + _IMDataArray = [[NSMutableArray alloc] init]; + } + return _IMDataArray; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.navigationItem.title = @"图文咨询"; + self.pageNo = 1; + [self loginImAccount]; + [self createUI]; + // self 为 id 类型 + [[V2TIMManager sharedInstance] addConversationListener:self]; +} + +- (void)createUI { + + NSArray * array = @[@"待回复",@"进行中",@"已完成"]; + [self.buttonArray removeAllObjects]; + CGFloat w = kRealValue(66); + for (int index = 0; index < array.count; index ++) { + + UIButton * listBtn = [[UIButton alloc] init]; + + listBtn.frame = CGRectMake(kRealValue(15) + (w + kRealValue(13)) * index , kRealValue(15), w, 27); + [listBtn setTitle:array[index] forState:UIControlStateNormal]; + [listBtn setTitleColor:KWhiteColor forState:UIControlStateSelected]; + [listBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + [listBtn addTarget:self action:@selector(statusChange:) forControlEvents:UIControlEventTouchUpInside]; + listBtn.titleLabel.font = SYSTEMFONT(13); + listBtn.layer.cornerRadius = 14.0; + listBtn.layer.masksToBounds = true; + listBtn.tag = 100 + index; + [self.view addSubview:listBtn]; + [self.buttonArray addObject:listBtn]; + + } + + + + self.homeTable = [[XJDQuestionRecoredTable alloc] initWithFrame:CGRectMake(0, 50, kScreenWidth, kScreenHeight - kTopHeight - kRealValue(15) + 27 - SafetyAreaHeight - kRealValue(48)) style:UITableViewStyleGrouped]; + self.homeTable.recordBlock = ^(XJDRecordIMListDateModel * _Nonnull model) { + + if ([ESCTUIManager TUIUserStatus] == false) { + + + [self loginImAccount]; + return; + } + + ChatViewController * chatVC = [[ChatViewController alloc] init]; + chatVC.isGroupID = YES; + chatVC.chatID = model.imId; + chatVC.isVideo = false; + chatVC.eableSendReport = YES; + chatVC.eableMapTools = false; + chatVC.eableMapTools = false; + chatVC.navTitle = model.memberName; + chatVC.eablehaveHelathData = YES; + chatVC.pictureEnd_id = model.Record_id; + chatVC.questionType = 2; + chatVC.memberSex = model.memberSex; + if ([model.contentStatus intValue] >= 4) + { + chatVC.isHideKeyBord = true; + } + [self.navigationController pushViewController:chatVC animated:YES]; + + + + }; + [self.view addSubview:self.homeTable]; + + + + __weak __typeof(self) weakSelf = self; + self.homeTable.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ + weakSelf.pageNo = 1; + if ([self.status intValue] == 0) { + [self waitReplayTUIList]; + } + if ([self.status intValue] == 1) { + [self getChatList]; + } + if ([self.status intValue] == 2) { + [self createData]; + } + + + + }]; + self.homeTable.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ + weakSelf.pageNo ++; + if ([self.status intValue] == 0) { + [self waitReplayTUIList]; + } + if ([self.status intValue] == 1) { + [self getChatList]; + } + if ([self.status intValue] == 2) { + [self createData]; + } + + }]; + + //初始化一个emptyView + + LYEmptyView *emptyView = [LYEmptyView emptyViewWithImage:[UIImage imageNamed:@"nodataPicture"] titleStr:@"暂无数据" detailStr:@""]; + +// LYEmptyView *emptyView = [LYEmptyView emptyActionViewWithImageStr:@"nodataPicture" +// titleStr:@"无数据" +// detailStr:@"请稍后再试!" +// btnTitleStr:@"重新加载" +// btnClickBlock:^{ +// [self createData]; +// }]; + //元素竖直方向的间距 + emptyView.subViewMargin = 20.f; + //标题颜色 + emptyView.titleLabTextColor = UIColorHex(#666666); + //描述字体 + emptyView.detailLabFont = [UIFont systemFontOfSize:16]; + //按钮背景色 + emptyView.imageSize = CGSizeMake(kRealValue(210), kRealValue(183)); + emptyView.contentViewY = kRealValue(160); + //设置空内容占位图 + self.homeTable.ly_emptyView = emptyView; +} + +- (void)viewWillAppear:(BOOL)animated { + + [super viewWillAppear:animated]; + + [self.homeTable.mj_header beginRefreshing]; + + +} + +- (void)createData { + + [self showMBProgressHUDWithString:@"数据加载中,请稍候..." autoHidden:false]; + XJDNetAPI * listApi = [[XJDNetAPI alloc] init:self tag:@"LIST" NeedToken:@""]; + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:@(self.pageNo) forKey:@"pageNo"]; + [parmDic setObject:@(10) forKey:@"pageSize"]; + [parmDic setObject:@"1" forKey:@"type"]; + [parmDic setObject:self.status forKey:@"status"]; + [listApi GetQuestionRecoredList:parmDic]; + +} + +//待回复 +- (void)waitReplayTUIList { + + V2TIMConversationListFilter *filter = [[V2TIMConversationListFilter alloc] init]; + filter.hasUnreadCount = NO; + [[V2TIMManager sharedInstance] getConversationListByFilter:filter nextSeq:self.pageNo - 1 count:100 succ:^(NSArray *list, uint64_t nextSeq, BOOL isFinished) { + // 获取会话列表成功,list 为会话列表 + [self.groupIDArray removeAllObjects]; + [self.IMDataArray removeAllObjects]; + for (V2TIMConversation * v2Model in list) { + if ( !ValidStr(v2Model.groupID)) { + [self.groupIDArray addObject: v2Model.groupID]; + } + [self.IMDataArray addObject:v2Model]; + + } + [self postGroupArray:self.groupIDArray]; + } fail:^(int code, NSString *desc) { + // 获取会话列表失败 + [self loginImAccount]; + }]; + +} + +//获取腾讯im会话列表 +- (void)getChatList { + + + V2TIMConversationListFilter *filter = [[V2TIMConversationListFilter alloc] init]; +// filter.type = V2TIM_C2C; //拉取单聊会话 + filter.type = V2TIM_GROUP; //拉取群聊会话 + [[V2TIMManager sharedInstance] getConversationListByFilter:filter nextSeq:self.pageNo - 1 count:50 succ:^(NSArray *list, uint64_t nextSeq, BOOL isFinished) { + // 获取会话列表成功,list 为会话列表 + [self.groupIDArray removeAllObjects]; + [self.IMDataArray removeAllObjects]; + DLog(@"%@",list); + for (V2TIMConversation * v2Model in list) { + [self.groupIDArray addObject: [NSString stringWithFormat:@"%@",v2Model.groupID] ]; + [self.IMDataArray addObject:v2Model]; + } + [self postIngGroupArray:self.groupIDArray]; + } fail:^(int code, NSString *desc) { + // 获取会话列表失败 + [self loginImAccount]; + }]; + + +} + +#pragma mark:上传id数组 +- (void)postGroupArray:(NSArray *)array { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + //tfReply : 待回复0 进行中1 + [parmDic setObject:array forKey:@"imIds"]; + [parmDic setObject:@"0" forKey:@"tfReply"]; + + [self showMBProgressHUDWithString:@"数据加载中,请稍候..." autoHidden:false]; + XJDNetAPI * recordApi = [[XJDNetAPI alloc] init:self tag:@"GROUPID" NeedToken:@""]; + [recordApi PostGroupIDArray:parmDic]; +} + + +- (void)postIngGroupArray:(NSArray *)array { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + //tfReply : 待回复0 进行中1 + [parmDic setObject:array forKey:@"imIds"]; + [parmDic setObject:@"1" forKey:@"tfReply"]; + + [self showMBProgressHUDWithString:@"数据加载中,请稍候..." autoHidden:false]; + XJDNetAPI * recordApi = [[XJDNetAPI alloc] init:self tag:@"GROUPIDING" NeedToken:@""]; + [recordApi PostGroupIDArray:parmDic]; +} + + +-(void)setQuestionStatus:(NSInteger)questionStatus { + + _questionStatus = questionStatus; + + + + switch (_questionStatus) { + case 10: + for (UIButton * seleBtn in self.buttonArray) { + if (seleBtn.tag == 100) { + seleBtn.selected = YES; + seleBtn.backgroundColor = UIColorHex(#21BEBD); + }else + { + seleBtn.backgroundColor = UIColorHex(#DDDDDD); + } + } + self.status = @"0"; + [self waitReplayTUIList]; + break; + case 20: + for (UIButton * seleBtn in self.buttonArray) { + if (seleBtn.tag == 101) { + seleBtn.selected = YES; + seleBtn.backgroundColor = UIColorHex(#21BEBD); + }else + { + seleBtn.backgroundColor = UIColorHex(#DDDDDD); + } + + } + self.status = @"1"; + [self getChatList]; + break; + case 30: + for (UIButton * seleBtn in self.buttonArray) { + if (seleBtn.tag == 102) { + seleBtn.selected = YES; + seleBtn.backgroundColor = UIColorHex(#21BEBD); + }else + { + seleBtn.backgroundColor = UIColorHex(#DDDDDD); + } + } + self.status = @"2"; + [self createData]; + break; + + default: + break; + } +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + + [self.homeTable.mj_footer endRefreshing]; + [self.homeTable.mj_header endRefreshing]; + + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self.homeTable.mj_footer endRefreshing]; + [self.homeTable.mj_header endRefreshing]; + + if ([tag isEqualToString:@"LIST"]) { + [self hiddenAllMBProgressHUD]; + if (self.pageNo == 1) { + [self.dataArray removeAllObjects]; + } + NSArray * array = response ; + + for (NSDictionary * dic in array) { + + XJDRecordIMListDateModel * model = [XJDRecordIMListDateModel modelWithDictionary:dic]; + + [self.dataArray addObject:model]; + } + self.homeTable.dataArray = self.dataArray; + + } + + if ([tag isEqualToString:@"IMAPI"]) { + [self hiddenAllMBProgressHUD]; + NSDictionary * pamrDic = response; + + XJDIMUserInfoModel * model = [XJDIMUserInfoModel modelWithDictionary:pamrDic]; + + XJDIMUserInfoModel * iminfoModel = [[XJDIMUserInfoModel alloc] init]; + iminfoModel.IMInfo = pamrDic; + [XJDCommonUtils keyedArchiverWithData:iminfoModel key:IMLoginUserInfo]; + + // 1. 从即时通信 IM 控制台获取应用 SDKAppID。 + // 2. 初始化 config 对象 + V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init]; + // 3. 指定 log 输出级别。 + config.logLevel = V2TIM_LOG_INFO; + // 4. 添加 V2TIMSDKListener 的事件监听器,self 是 id 的实现类,如果您不需要监听 IM SDK 的事件,这个步骤可以忽略。 + // 5. 初始化 IM SDK,调用这个接口后,可以立即调用登录接口。 + [[V2TIMManager sharedInstance] initSDK:[model.sdkAppId intValue] config:config]; + [ESCTUIManager loginInitTUISDKAppidWith:[model.sdkAppId intValue] UserID:model.userId userSig:model.userSig]; + if ([self.status intValue] == 0) { + [self waitReplayTUIList]; + } + if ([self.status intValue] == 1) { + [self getChatList]; + } + + + + } + if ([tag isEqualToString:@"GROUPID"]) { + [self hiddenAllMBProgressHUD]; + + NSArray * array = response; + [self.jingxingArray removeAllObjects]; +// for ( V2TIMConversation * v2Model in self.IMDataArray) { + + for (NSDictionary * parmDic in array) { + + XJDRecordIMListDateModel * model = [ XJDRecordIMListDateModel modelWithDictionary:parmDic]; + for ( V2TIMConversation * v2Model in self.IMDataArray) { + if ([model.imId isEqualToString:v2Model.groupID]) { + DLog(@"------------%d",v2Model.unreadCount); + model.unRedMessage = [NSString stringWithFormat:@"%d",v2Model.unreadCount]; + } + } + [self.jingxingArray addObject:model]; + } +// } + + self.homeTable.dataArray = self.jingxingArray; + } + if ([tag isEqualToString:@"GROUPIDING"]) { + [self hiddenAllMBProgressHUD]; + + NSArray * array = response; + [self.jingxingArray removeAllObjects]; +// for ( V2TIMConversation * v2Model in self.IMDataArray) { + + for (NSDictionary * parmDic in array) { + + XJDRecordIMListDateModel * model = [ XJDRecordIMListDateModel modelWithDictionary:parmDic]; + for ( V2TIMConversation * v2Model in self.IMDataArray) { + if ([model.imId isEqualToString:v2Model.groupID]) { + DLog(@"------------%d",v2Model.unreadCount); + model.unRedMessage = [NSString stringWithFormat:@"%d",v2Model.unreadCount]; + } + } + [self.jingxingArray addObject:model]; + } +// } + + self.homeTable.dataArray = self.jingxingArray; + } + +} + + +- (void)statusChange:(UIButton *)statusBtn { + + if (statusBtn.tag == 100) { + self.status = @"0"; + self.tfReply = 0; + [self waitReplayTUIList]; + } + if (statusBtn.tag == 101) { + self.status = @"1"; + self.tfReply = 1; + [self getChatList]; + + } + if (statusBtn.tag == 102) { + self.status = @"2"; + [self createData]; + } + + for (UIButton * titBtn in self.buttonArray) { + + if (titBtn == statusBtn) { + + titBtn.selected = YES; + titBtn.backgroundColor = UIColorHex(#21BEBD); + + }else + { + titBtn.selected = NO; + titBtn.backgroundColor = UIColorHex(#DDDDDD); + } + + } +} + +- (void)loginImAccount { + + + XJDNetAPI * proctocolApi = [[XJDNetAPI alloc] init:self tag:@"IMAPI" NeedToken:nil]; + [proctocolApi GetIMLoginAccount:nil]; + + + +} + +- (void)onNewConversation:(NSArray *)conversationList { + // 收到会话新增通知,conversationList 为新增的会话 + [self updateConversation:conversationList]; +} + + +- (void)onConversationChanged:(NSArray *)conversationList { + // 收到会话变更通知,conversationList 中为变更后的会话对象 + [self updateConversation:conversationList]; +} + + + + +- (void)onConversationDeleted:(NSArray *)conversationIDList { + // 会话被删除 +} + + +- (void)onTotalUnreadMessageCountChanged:(UInt64) totalUnreadCount { + // 会话未读总数变化 +} + + + + +- (void)onUnreadMessageCountChangedByFilter:(V2TIMConversationListFilter *)filter totalUnreadCount:(UInt64)totalUnreadCount { + // 过滤条件下的会话未读总数变化 +} + + +- (void)updateConversation:(NSArray *)convList { + // 更新 UI 会话列表,如果 UI 会话列表已经存在该新增/变更的会话,就替换之;如果没有,就新增一个会话对象 + [self.homeTable.mj_header beginRefreshing]; +} + + + +//- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView +//{ +// return -self.homeTable.frame.size.height; +//} +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDQustionRecordViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDQustionRecordViewController.h new file mode 100644 index 0000000..f715e8e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDQustionRecordViewController.h @@ -0,0 +1,20 @@ +// +// XJDQustionRecordViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + + +@interface XJDQustionRecordViewController : YXBaseViewController + +@property (nonatomic, assign) NSInteger questionType; +@property (nonatomic, assign) NSInteger questionStatus; //待回复10 进行中20 已完成30 (时间充裕可优化枚举类型) + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDQustionRecordViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDQustionRecordViewController.m new file mode 100644 index 0000000..50f1469 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionRecord(咨询记录)/XJDQustionRecordViewController.m @@ -0,0 +1,255 @@ +// +// QustionRecordViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "XJDQustionRecordViewController.h" +#import "XJDAudioVideoRecordViewController.h" +#import "XJDPictureRecordViewController.h" + +@interface XJDQustionRecordViewController () + +/** 顶部控件*/ +@property (nonatomic, weak) UIScrollView *topView; +/** 下划线 */ +@property (nonatomic, weak) UIView *lineView; +/** 滚动视图 */ +@property (nonatomic, weak) UICollectionView *collectionView; +/** 当前选中的按钮 */ +@property (nonatomic, weak) UIButton *selectButton; +/** 按钮数组 */ +@property (nonatomic, strong) NSMutableArray *titleButtons; + +@end + +@implementation XJDQustionRecordViewController + +#pragma mark - 懒加载 +- (NSMutableArray *)titleButtons { + if (_titleButtons==nil) { + _titleButtons = [NSMutableArray array]; + } + return _titleButtons; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = NO; + self.title = @"咨询记录"; + self.view.backgroundColor = UIColorBackground; + [self createUI]; + +} + +#pragma mark:返回 +- (void)popVc +{ + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)createUI +{ + [self setupNavgationBar]; + + // 添加底部内容view + [self setupBottomContentView]; + + // 添加所有子控制器 + [self setupAllChildViewController]; + + [self setupAllTitle]; + + // 不添加额外滚动区域 + self.automaticallyAdjustsScrollViewInsets = NO; +} + +#pragma mark - 添加所有的子控制器 +- (void)setupAllChildViewController { + //questionStatus //待回复10 进行中20 已完成30 (时间充裕可优化枚举类型) + XJDPictureRecordViewController * pictureVc = [[XJDPictureRecordViewController alloc] init]; + pictureVc.view.backgroundColor = UIColorBackground; + pictureVc.navigationItem.title = @"图文咨询"; + pictureVc.questionStatus = self.questionStatus; + [self addChildViewController:pictureVc]; + + // + XJDAudioVideoRecordViewController * videoVc = [[XJDAudioVideoRecordViewController alloc] init]; + videoVc.view.backgroundColor = UIColorBackground; + videoVc.navigationItem.title = @"视频咨询"; + videoVc.questionStatus = self.questionStatus; + [self addChildViewController:videoVc]; +} + +#pragma mark - 设置导航条内容 +- (void)setupNavgationBar { + UIScrollView *topView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 1, kScreenHeight, kRealValue(48))]; + topView.backgroundColor = [UIColor whiteColor]; + _topView = topView; + [self.view addSubview:topView]; +} + +#pragma mark - 按钮被点击 +- (void)titleClick:(UIButton *)titleButton{ + + NSInteger i = titleButton.tag; + // 重复点击标题按钮的时候,刷新当前界面 + if (titleButton == _selectButton) { + } + + [self selButton:titleButton]; + + //滚动collectionView 修改偏移量 + CGFloat offsetX = i * kScreenWidth; + _collectionView.contentOffset = CGPointMake(offsetX, 0); +} + +#pragma mark - 选中标题按钮 +- (void)selButton:(UIButton *)titleButton{ + + _selectButton.selected = NO; + titleButton.selected = YES; + _selectButton = titleButton; + + // 移动下划线的位置 + [UIView animateWithDuration:0.25 animations:^{ + _lineView.centerX = titleButton.centerX; + }]; +} + +#pragma mark - 添加标题 +- (void)setupAllTitle{ + + NSUInteger count = self.childViewControllers.count; + CGFloat btnX = 0; + CGFloat btnW = kScreenWidth/count; + CGFloat btnH = _topView.height; + for (int i = 0; i < count; i++) { + UIButton *titleButton = [UIButton buttonWithType:UIButtonTypeCustom]; + titleButton.tag = i; + + UIViewController *vc = self.childViewControllers[i]; + [titleButton setTitle:vc.navigationItem.title forState:UIControlStateNormal]; + // 设置标题颜色 + [titleButton setTitleColor:RGBA(34, 34, 34, 1) forState:UIControlStateSelected]; + [titleButton setTitleColor:RGBA(102, 102, 102, 1) forState:UIControlStateNormal]; + + // 设置标题字体 + titleButton.titleLabel.font = [UIFont systemFontOfSize:15]; + + btnX = i * btnW; + + titleButton.frame = CGRectMake(btnX, 0, btnW, btnH); + + // 监听按钮点击 + [titleButton addTarget:self action:@selector(titleClick:) forControlEvents:UIControlEventTouchUpInside]; + + [_topView addSubview:titleButton]; + if (i == self.questionType - 1) { + // 添加下划线 + // 下划线宽度 = 按钮文字宽度 + // 下划线中心点x = 按钮中心点x + CGFloat h = 3; + CGFloat y = kRealValue(46) ; + UIView *lineView =[[UIView alloc] init]; + // 位置和尺寸 + lineView.height = h; + // 先计算文字尺寸,在给label去赋值 + [titleButton.titleLabel sizeToFit]; + lineView.width = kScreenWidth/2 - 30; + lineView.centerX = titleButton.centerX; + lineView.mj_y = y; + lineView.backgroundColor = UIColorHex(#21BEBD); + _lineView = lineView; + [_topView addSubview:lineView]; + + [self titleClick:titleButton]; + } + + [self.titleButtons addObject:titleButton]; + } +} + +#pragma mark - 添加底部内容view +- (void)setupBottomContentView +{ + // 创建一个流水布局 + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake(kScreenWidth, kScreenHeight-44); + + // 设置水平滚动方向 + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumInteritemSpacing = 0; + layout.minimumLineSpacing = 0; + + // 创建UICollectionView + UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0,kRealValue(48), kScreenWidth, kScreenHeight - kRealValue(48) ) collectionViewLayout:layout]; + collectionView.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:collectionView]; + _collectionView = collectionView; + collectionView.scrollsToTop = NO; + collectionView.scrollEnabled = YES; + // 开启分页 + collectionView.pagingEnabled = YES; + collectionView.showsHorizontalScrollIndicator = NO; + collectionView.bounces = YES; + + // 展示cell + collectionView.dataSource = self; + collectionView.delegate = self; + + // 注册cell + [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"COUPCELLID"]; +} + +#pragma mark - UICollectionViewDelegate +// 滚动完成的时候就会调用 +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ + // 获取角标 + NSInteger i = scrollView.contentOffset.x / kScreenWidth; + + // 获取选中标题 + UIButton *selButton = self.titleButtons[i]; + + // 选中标题 + [self selButton:selButton]; +} + +#pragma mark - UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ + + return self.childViewControllers.count; +} + +// 只要有新的cell出现的时候才会调用 +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ + + UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"COUPCELLID" forIndexPath:indexPath]; + + // 移除之前子控制器view + [cell.contentView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; + + // 取出对应的子控制器添加到对应cell上 + UIViewController *vc = self.childViewControllers[indexPath.row]; + + [cell.contentView addSubview:vc.view]; + + return cell; +} + + + + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionStatistics(咨询统计)/XJDQuestionStatisticsViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionStatistics(咨询统计)/XJDQuestionStatisticsViewController.h new file mode 100644 index 0000000..37765fd --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionStatistics(咨询统计)/XJDQuestionStatisticsViewController.h @@ -0,0 +1,16 @@ +// +// XJDQuestionStatisticsViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/26. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDQuestionStatisticsViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionStatistics(咨询统计)/XJDQuestionStatisticsViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionStatistics(咨询统计)/XJDQuestionStatisticsViewController.m new file mode 100644 index 0000000..5818bb1 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/QuestionStatistics(咨询统计)/XJDQuestionStatisticsViewController.m @@ -0,0 +1,514 @@ +// +// XJDQuestionStatisticsViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/26. +// + +#import "XJDQuestionStatisticsViewController.h" +#import "AAOptions.h" +#import "AAChartView.h" +#import "NSDate+Calendar.h" +#import "BRDatePickerView.h" +#import "XJDQuestionStaticsModel.h" +#import "XJDBillViewController.h" +@interface XJDQuestionStatisticsViewController () + +@property (nonatomic, strong) AAChartView * aaChartView; + +@property (nonatomic, strong) UILabel * moneyLabel; + +@property (nonatomic, strong) UILabel * leftMoneyLabel; + +@property (nonatomic, strong) UILabel * rightMoneyLabel; + +@property (nonatomic, strong) YYLabel * monthLabel; + +@property (nonatomic, copy) NSString * quesDate; + +@property (nonatomic, strong) NSMutableArray * dataArray; + +@end + +@implementation XJDQuestionStatisticsViewController + +- (NSMutableArray *)dataArray { + if(!_dataArray) { + + _dataArray = [[NSMutableArray alloc] init]; + } + return _dataArray; + +} + +//- (AAChartModel *)configurePieChart { +// return AAChartModel.new +// .chartTypeSet(AAChartTypePie) +// .marginSet(@[@0,@0,@0,@60]) +// .colorsThemeSet(@[@"#407FFF",@"#A682E6"]) +// .dataLabelsEnabledSet(true)//是否直接显示扇形图数据 +// .seriesSet(@[ +// AASeriesElement.new +// .innerSizeSet(@"60%")//内部圆环半径大小占比 +// .sizeSet(@150)//尺寸大小 +// .nameSet(@"人数") +// .borderWidthSet(@0)//描边的宽度 +// .allowPointSelectSet(true)//是否允许在点击数据点标记(扇形图点击选中的块发生位移) +// .statesSet(AAStates.new +// .hoverSet(AAHover.new +// .enabledSet(false)//禁用点击区块之后出现的半透明遮罩层 +// ) +// +// +// ) +// .dataSet(@[ +// @[@"图文咨询", @50], +// @{@"sliced": @true, +// @"selected": @true, +// @"name": @"音视频咨询", +// @"y": @50, }, +// +//// @[@"Safari", @88.5], +//// @[@"Opera", @46.0], +//// @[@"Others", @223.0], +// ])]); +//} +- (AAOptions *)adjustPieChartTitleAndDataLabelFontStyle { + AAOptions *aaOptions = AAOptions.new + .chartSet(AAChart.new.typeSet(AAChartTypePie)) + .titleSet(AATitle.new + .useHTMLSet(true) + .textSet(@" 170
\ + 咨询方式 ")//标题文本内容 + .alignSet(AAChartAlignTypeCenter)//标题水平居中 + .verticalAlignSet(AAChartVerticalAlignTypeMiddle)//标题垂直居中 + .ySet(@0)//标题相对于垂直对齐的偏移量,取值范围:图表的上边距(chart.spacingTop )到图表的下边距(chart.spacingBottom),可以是负值,单位是px。默认值和字体大小有关。 + ) + .colorsSet(@[@"#407FFF",@"#A682E6"])//设置颜色主题 + .seriesSet(@[ + AASeriesElement.new + .nameSet(@"人数") + .sizeSet(@150)//环形图的半径大小 + .innerSizeSet(@"60%")//内部圆环半径大小占比 + .allowPointSelectSet(false)//是否允许在点击数据点标记(扇形图点击选中的块发生位移) + .dataLabelsSet(AADataLabels.new + .enabledSet(true) + .useHTMLSet(true) + .distanceSet(@20)//扇形图百分比线的长度 + .formatSet(@"{point.name} {point.y}") + ) + + .dataSet(@[ + @[@"图文咨询", @110], + @[@"视频咨询", @10], + ]), + ]); + return aaOptions; +} + + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.navigationItem.title = @"咨询统计"; + self.view.backgroundColor = UIColorHex(#EFEFEF); + [self createUI]; + [self createData]; + [self createEarmingsData]; + +} + + +- (void)createUI { + + UIScrollView * mainScrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; + mainScrollview.backgroundColor = UIColorHex(#EEEEEE); + [self.view addSubview:mainScrollview]; + //顶部背景收益 + UIImageView * moneyImg = [[UIImageView alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(10), kScreenWidth - kRealValue(30), kRealValue(150))]; + moneyImg.userInteractionEnabled = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; + [moneyImg addGestureRecognizer:tap]; + moneyImg.image = [UIImage imageNamed:@"statusticBackImg"]; + [mainScrollview addSubview:moneyImg]; + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(12), 300, 12)]; + titleLabel.text = @"未结算收益"; + titleLabel.textColor = KWhiteColor; + titleLabel.textAlignment = NSTextAlignmentLeft; + titleLabel.font = MEDIUMFONT(12); + [moneyImg addSubview:titleLabel]; + + self.moneyLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,titleLabel.bottom + kRealValue(23), moneyImg.width, 18)]; + self.moneyLabel.text = @"¥7900"; + self.moneyLabel.textColor = KWhiteColor; + self.moneyLabel.textAlignment = NSTextAlignmentCenter; + self.moneyLabel.font = MEDIUMFONT(23); + [moneyImg addSubview:self.moneyLabel]; + + UIView * linView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(22),self.moneyLabel.bottom + kRealValue(24), moneyImg.width - kRealValue(44), 1)]; + linView.backgroundColor = KWhiteColor; + [moneyImg addSubview:linView]; + + UILabel * leijiLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(22),linView.bottom + kRealValue(10), moneyImg.width/2, 11)]; + leijiLabel.text = @"累计总收益(税前)"; + leijiLabel.textColor = KWhiteColor; + leijiLabel.textAlignment = NSTextAlignmentLeft; + leijiLabel.font = MEDIUMFONT(11); + [moneyImg addSubview:leijiLabel]; + + self.leftMoneyLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(22),leijiLabel.bottom + kRealValue(10), moneyImg.width/2, 11)]; + self.leftMoneyLabel.text = @"¥--"; + self.leftMoneyLabel.textColor = KWhiteColor; + self.leftMoneyLabel.textAlignment = NSTextAlignmentLeft; + self.leftMoneyLabel.font = BOLDSYSTEMFONT(16); + [moneyImg addSubview:self.leftMoneyLabel]; + + + UILabel * leijiRightLabel = [[UILabel alloc] initWithFrame:CGRectMake(moneyImg.width/2 ,linView.bottom + kRealValue(10), moneyImg.width/2 - kRealValue(40) , 11)]; + leijiRightLabel.text = @"已结算(税前)"; + leijiRightLabel.textColor = KWhiteColor; + leijiRightLabel.textAlignment = NSTextAlignmentRight; + leijiRightLabel.font = MEDIUMFONT(11); + [moneyImg addSubview:leijiRightLabel]; + + self.rightMoneyLabel = [[UILabel alloc] initWithFrame:CGRectMake(moneyImg.width/2,leijiLabel.bottom + kRealValue(10), moneyImg.width/2 - kRealValue(40), 16)]; + self.rightMoneyLabel.text = @"¥--0"; + self.rightMoneyLabel.textColor = KWhiteColor; + self.rightMoneyLabel.textAlignment = NSTextAlignmentRight; + self.rightMoneyLabel.font = BOLDSYSTEMFONT(16); + [moneyImg addSubview:self.rightMoneyLabel]; + + //月份选择 + UIView * topView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), moneyImg.bottom + kRealValue(15), kScreenWidth - kRealValue(30), kRealValue(44))]; + topView.backgroundColor = KWhiteColor; + topView.layer.cornerRadius = 10.0f; + topView.layer.masksToBounds = true; + [mainScrollview addSubview:topView]; + + UIImageView * sattisImg = [[UIImageView alloc] initWithFrame:CGRectMake(kRealValue(17), kRealValue(15), kRealValue(14), kRealValue(14))]; + sattisImg.image = IMAGE_NAMED(@"smallStatis_icon"); + [topView addSubview:sattisImg]; + + UILabel * monthsLabel = [[UILabel alloc] initWithFrame:CGRectMake(sattisImg.right + kRealValue(9),0, moneyImg.width/2, kRealValue(44))]; + monthsLabel.text = @"月度统计"; + monthsLabel.textColor = CFontColor1; + monthsLabel.textAlignment = NSTextAlignmentLeft; + monthsLabel.font = BOLDSYSTEMFONT(15); + [topView addSubview:monthsLabel]; + + NSDate * currentDate = [NSDate date]; + YYLabel * monthLabel = [[YYLabel alloc]initWithFrame:CGRectMake(topView.width - 190, 0, 160, kRealValue(44))]; + self.quesDate = [NSString stringWithFormat:@"%ld-%02ld",currentDate.year,currentDate.month]; + monthLabel.text = [NSString stringWithFormat:@"%ld年%ld月 ",currentDate.year,currentDate.month]; + monthLabel.textColor = UIColorHex(#999999); + self.monthLabel = monthLabel; + [topView addSubview:monthLabel]; + + UIImage * image = [UIImage imageNamed:@"garyDown"]; + + NSMutableAttributedString * roomAttri = [[NSMutableAttributedString alloc] initWithString:monthLabel.text]; + + NSMutableAttributedString * roomAttachText = [NSMutableAttributedString attachmentStringWithContent:image contentMode:UIViewContentModeCenter attachmentSize:CGSizeMake(10, 10) alignToFont:[UIFont boldSystemFontOfSize:13] alignment:YYTextVerticalAlignmentCenter]; //content:内容  size:图片尺寸 alignToFont:字符串内字体的格式 + [roomAttri appendAttributedString:roomAttachText]; + + monthLabel.attributedText = roomAttri; + + monthLabel.textAlignment = NSTextAlignmentRight; + + [monthLabel setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + + [self selectedMonth]; + }]; + + //统计图 + UIView * chatView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), topView.bottom + kRealValue(8), kScreenWidth - kRealValue(30), kRealValue(300))]; + chatView.backgroundColor = KWhiteColor; + chatView.layer.cornerRadius = 10; + chatView.layer.masksToBounds = true; + [mainScrollview addSubview:chatView]; + + UILabel * chatTopLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15),kRealValue(16), 200, kRealValue(15))]; + chatTopLabel.text = @"分类统计"; + chatTopLabel.textColor = CFontColor1; + chatTopLabel.textAlignment = NSTextAlignmentLeft; + chatTopLabel.font = BOLDSYSTEMFONT(15); + [chatView addSubview:chatTopLabel]; + + self.aaChartView = [[AAChartView alloc]init]; + self.aaChartView.delegate = self; + self.aaChartView.frame = CGRectMake(0, chatTopLabel.bottom, chatView.width, chatView.height - kRealValue(30)); + ////禁用 AAChartView 滚动效果(默认不禁用) + self.aaChartView.scrollEnabled = NO; + [chatView addSubview:self.aaChartView]; +// [_aaChartView aa_drawChartWithOptions:self.adjustPieChartTitleAndDataLabelFontStyle]; + //列表统计 + //统计图 + UIView * bottomView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), chatView.bottom + kRealValue(8), kScreenWidth - kRealValue(30), kRealValue(175))]; + bottomView.backgroundColor = KWhiteColor; + bottomView.layer.cornerRadius = 10; + bottomView.layer.masksToBounds = true; + [mainScrollview addSubview:bottomView]; + + UILabel * bottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15),0, moneyImg.width/2, kRealValue(44))]; + bottomLabel.text = @"分类统计"; + bottomLabel.textColor = CFontColor1; + bottomLabel.textAlignment = NSTextAlignmentLeft; + bottomLabel.font = BOLDSYSTEMFONT(15); + [bottomView addSubview:bottomLabel]; + +// YYLabel * lookLabel = [[YYLabel alloc]initWithFrame:CGRectMake(topView.width - 170, 0, 160, kRealValue(44))]; +// lookLabel.text = @"查看明细 >"; +// lookLabel.textColor = UIColorHex(#3390FF); +// lookLabel.font = MEDIUMFONT(11); +// lookLabel.textAlignment = NSTextAlignmentRight; +// [bottomView addSubview:lookLabel]; +// +// [lookLabel setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { +// +// [self selectedMonth]; +// }]; + UIView * conView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(17), bottomLabel.bottom + kRealValue(15), bottomView.width - kRealValue(34), 90)]; + conView.layer.borderWidth = 1.0; + conView.layer.borderColor = UIColorHex(#E0E0E0).CGColor; + [bottomView addSubview:conView]; + + UIView * tabTitleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, bottomView.width - kRealValue(34), 30)]; + tabTitleView.backgroundColor = UIColorHex(#EFEFEF); + [conView addSubview:tabTitleView]; + + NSArray * array = @[@"类别",@"进行中",@"已完成",@"合计"]; + for (int i = 0; i < 4; i ++) { + + UILabel * conteLabel = [[UILabel alloc] init]; + conteLabel.frame = CGRectMake( tabTitleView.width/4 * i, 0 , tabTitleView.width/4,tabTitleView.height); + conteLabel.text = array[i]; + conteLabel.textColor = CFontColor1; + conteLabel.textAlignment = NSTextAlignmentCenter; + conteLabel.font = SYSTEMFONT(10); + [tabTitleView addSubview:conteLabel]; + } + + UIView * tabLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 60, conView.width, 1)]; + tabLineView.backgroundColor = UIColorHex(#E0E0E0); + [conView addSubview:tabLineView]; + + NSArray * dataArray =@[@[@"图文咨询",@"2",@"8",@"10"],@[@"视频咨询",@"2",@"5",@"7"]]; + + for (int i = 0; i < dataArray.count; i ++) { + + UIView * tab = [self createTabconteWithFrame:CGRectMake(0, tabTitleView.bottom + i * 30, tabTitleView.width, 30) withArray:dataArray[i] withTag:100 + i * 10]; + [conView addSubview:tab]; + + } + mainScrollview.contentSize = CGSizeMake(kScreenWidth , bottomView.bottom + 100); +} + + +- (void)selectedMonth { + + BRDatePickerView *datePickerView = [[BRDatePickerView alloc]init]; + // 2.设置属性 + datePickerView.pickerMode = BRDatePickerModeYM; + datePickerView.title = @"选择月份"; + // datePickerView.selectValue = @"2019-10-30"; + datePickerView.minDate = [NSDate br_setYear:1949 month:3 day:12]; + datePickerView.maxDate = [NSDate date]; + datePickerView.isAutoSelect = YES; + datePickerView.showUnitType = BRShowUnitTypeOnlyCenter; + datePickerView.resultBlock = ^(NSDate *selectDate, NSString *selectValue) { + NSLog(@"选择的值:%@", selectValue); + self.quesDate = [NSString stringWithFormat:@"%ld-%02ld",selectDate.year,selectDate.month]; + self.monthLabel.text = [NSString stringWithFormat:@"%@ ",selectValue]; + UIImage * image = [UIImage imageNamed:@"garyDown"]; + NSMutableAttributedString * roomAttri = [[NSMutableAttributedString alloc] initWithString:self.monthLabel.text]; + + NSMutableAttributedString * roomAttachText = [NSMutableAttributedString attachmentStringWithContent:image contentMode:UIViewContentModeCenter attachmentSize:CGSizeMake(10, 10) alignToFont:[UIFont boldSystemFontOfSize:13] alignment:YYTextVerticalAlignmentCenter]; //content:内容  size:图片尺寸 alignToFont:字符串内字体的格式 + [roomAttri appendAttributedString:roomAttachText]; + + self.monthLabel.attributedText = roomAttri; + + self.monthLabel.textAlignment = NSTextAlignmentRight; + [self createData]; + }; + + datePickerView.pickerStyle = [BRPickerStyle pickerStyleWithThemeColor:UIColorHex(#21BEBD)]; + // 3.显示 + [datePickerView show]; + + +} + +- (UIView *)createTabconteWithFrame:(CGRect)frame + withArray:(NSArray *)conteArray + withTag:(NSInteger)labTag +{ + + UIView * connteView = [[UIView alloc] initWithFrame:frame]; + + for (int i = 0 ; i < conteArray.count; i ++) { + //100 110 + UILabel * conteLabel = [[UILabel alloc] init]; + conteLabel.frame = CGRectMake(connteView.width/4 * i, 0,connteView.width/4 , connteView.height); + conteLabel.text = conteArray[i]; + conteLabel.textColor = CFontColor1; + conteLabel.font = SYSTEMFONT(12); + conteLabel.textAlignment = NSTextAlignmentCenter; + conteLabel.tag = labTag + 10 + i ; + DLog(@"------------%@----------%ld",conteLabel.text, conteLabel.tag); + [connteView addSubview:conteLabel]; + + } + + + + + return connteView; + +} + +- (void)aaChartView:(AAChartView *)aaChartView moveOverEventWithMessage:(AAMoveOverEventMessageModel *)message { + + NSDictionary *messageDic = @{ + @"category":message.category, + @"index":@(message.index), + @"name":message.name, + @"offset":message.offset, + @"x":message.x, + @"y":message.y + }; + + NSNumber *plotX = message.offset[@"plotX"]; + +// self.tipLab.hidden = NO; +// self.tipLab.text = [NSString stringWithFormat:@"%f",[message.y floatValue]]; +// self.tipLab.centerX = [plotX floatValue]+6+50; +// + NSLog(@"mes:%@", messageDic); + } + + +- (void)createData { + + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"QUSTIONAPI" NeedToken:@""]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject: self.quesDate forKey:@"date"]; + [workApi GetQuestionStatistics:parmDic]; + +} + +- (void)createEarmingsData { + + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"EARNINGAPI" NeedToken:@""]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [workApi GetStatisticsEarnings:parmDic]; + +} + + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + if ([tag isEqualToString:@"QUSTIONAPI"]) { + + NSArray * array = response; + [self.dataArray removeAllObjects]; + for (NSDictionary * dic in array) { + + XJDQuestionStaticsModel * model = [XJDQuestionStaticsModel modelWithDictionary:dic]; + [self.dataArray addObject:model]; + } + NSInteger pictureNum; + NSInteger videoNum; + NSInteger allNumber; + XJDQuestionStaticsModel * picmodel; + XJDQuestionStaticsModel * videomodel; + if (self.dataArray.count>=2) { + picmodel = self.dataArray[0]; + pictureNum = [picmodel.total integerValue]; + videomodel = self.dataArray[1]; + videoNum = [videomodel.total integerValue]; + } + + NSString *str2 = @" 咨询方式 "; + AAOptions *aaOptions = AAOptions.new + .chartSet(AAChart.new.typeSet(AAChartTypePie)) + .titleSet(AATitle.new + .useHTMLSet(true) + .textSet(str2)//标题文本内容 + .alignSet(AAChartAlignTypeCenter)//标题水平居中 + .verticalAlignSet(AAChartVerticalAlignTypeMiddle)//标题垂直居中 + .ySet(@0)//标题相对于垂直对齐的偏移量,取值范围:图表的上边距(chart.spacingTop )到图表的下边距(chart.spacingBottom),可以是负值,单位是px。默认值和字体大小有关。 + ) + .colorsSet(@[@"#407FFF",@"#A682E6"])//设置颜色主题 + .seriesSet(@[ + AASeriesElement.new + .nameSet(@"人数") + .sizeSet(@150)//环形图的半径大小 + .innerSizeSet(@"60%")//内部圆环半径大小占比 + .allowPointSelectSet(false)//是否允许在点击数据点标记(扇形图点击选中的块发生位移) + .dataLabelsSet(AADataLabels.new + .enabledSet(true) + .useHTMLSet(true) + .distanceSet(@20)//扇形图百分比线的长度 + .formatSet(@"{point.name} {point.y}") + ) + + .dataSet(@[ + @[@"图文咨询", @(pictureNum)], + @[@"视频咨询", @(videoNum)], + ]), + ]); + [self.aaChartView aa_drawChartWithOptions:aaOptions]; +// / 110 111 112 113 114 + +// 120 121 122 123 124 + UILabel * videoLabel = [self.view viewWithTag:111]; + videoLabel.text = [NSString stringWithFormat:@"%@",picmodel.inProgress]; + UILabel * videoReplyLabel = [self.view viewWithTag:112]; + videoReplyLabel.text = [NSString stringWithFormat:@"%@",picmodel.completed]; + UILabel * videoComplLabel = [self.view viewWithTag:113]; + videoComplLabel.text = [NSString stringWithFormat:@"%@",picmodel.total]; + + UILabel * picLabel = [self.view viewWithTag:121]; + picLabel.text = [NSString stringWithFormat:@"%@",videomodel.inProgress]; + UILabel * picReplyLabel = [self.view viewWithTag:122]; + picReplyLabel.text = [NSString stringWithFormat:@"%@",videomodel.completed]; + UILabel * pciCompLabel = [self.view viewWithTag:123]; + pciCompLabel.text = [NSString stringWithFormat:@"%@",videomodel.total]; + } + if ([tag isEqualToString:@"EARNINGAPI"]) { + NSDictionary * responDic = response; + + self.moneyLabel.text = [NSString stringWithFormat:@"¥%.2f",[[responDic objectForKey:@"unsettled"] floatValue]]; + self.leftMoneyLabel.text = [NSString stringWithFormat:@"¥%.2f",[[responDic objectForKey:@"sumIncome"] floatValue]]; + self.rightMoneyLabel.text = [NSString stringWithFormat:@"¥%.2f",[[responDic objectForKey:@"sumPaymentMoney"] floatValue]]; + + } +} +//咨询收益 +- (void)handleTapGesture:(id)sender { + + XJDBillViewController * billVC = [[XJDBillViewController alloc] init]; + + [self.navigationController pushViewController:billVC animated:YES]; + + +} +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/StopAnnouncementViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/StopAnnouncementViewController.h deleted file mode 100644 index cadf9ef..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/StopAnnouncementViewController.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// YXStopAnnouncementViewController.h -// healthQuestion -// -// Created by 仁康信息 on 2023/5/5. -// - -#import "HQBaseViewController.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface YXStopAnnouncementViewController : HQBaseViewController - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopAnnouncementViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopAnnouncementViewController.h new file mode 100644 index 0000000..b9bd0be --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopAnnouncementViewController.h @@ -0,0 +1,15 @@ +// +// XJDStopAnnouncementViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDStopAnnouncementViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopAnnouncementViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopAnnouncementViewController.m new file mode 100644 index 0000000..4e42089 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopAnnouncementViewController.m @@ -0,0 +1,387 @@ +// +// YXStopAnnouncementViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import "XJDStopAnnouncementViewController.h" +#import "ZHTagListView.h" +#import "BRDatePickerView.h" +#import "NSDate+Calendar.h" +#import "UIPlaceHolderTextView.h" +#import "XJDStopReasonModel.h" +#import "XJDStopQuestionPopView.h" + +@interface XJDStopAnnouncementViewController () + +@property (nonatomic, strong) UIView * announceView; + +@property (nonatomic, strong) YYLabel * starLabel; + +@property (nonatomic, strong) YYLabel * endLabel; + +@property (nonatomic, strong) UIPlaceHolderTextView * textView; + +@property (nonatomic, strong) ZHTagListView *tagList; + +@property (nonatomic, strong) UILabel * timeLabel; + +@property (nonatomic, strong) UILabel * centerLabel; + +@property (nonatomic, strong) UILabel * gonggaoLabel; + +@property (nonatomic, copy) NSString * reasonString; + +@property (nonatomic, strong) NSDate * starDate; +@property (nonatomic, strong) NSDate * endDate; + +@property (nonatomic, strong) NSMutableArray * reasonArray; + +@end + +@implementation XJDStopAnnouncementViewController + +- (NSMutableArray *)reasonArray { + + if (!_reasonArray) { + _reasonArray = [[NSMutableArray alloc] init]; + } + return _reasonArray; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.view.backgroundColor = UIColorHex(#EEEEEE); + self.isHidenNaviBar = false; + self.navigationItem.title = @"暂停服务公告"; + [self createUI]; + [self getReasonData]; +} + +- (void)createUI { + + UIView * announceView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(10), kScreenWidth - kRealValue(30), kRealValue(388))]; + announceView.layer.cornerRadius = 10; + announceView.backgroundColor = KWhiteColor; + announceView.layer.masksToBounds = true; + self.announceView = announceView; + [self.view addSubview:announceView]; + + UILabel * resouLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(20), 60, 13)]; + resouLabel.textColor = CFontColor1; + resouLabel.font = MEDIUMFONT(14); + resouLabel.text = @"暂停原因"; + [announceView addSubview:resouLabel]; + + + NSMutableArray *_dataSource = @[@" ",@" ",@" ",@" "].mutableCopy; + + ZHTagListConfiguration *config = [ZHTagListConfiguration defaultConfiguration]; + config.tagTextColor = CFontColor1; + config.tagTextMargin = 11; + config.tagHeight = 27; + config.tagTextFont = SYSTEMFONT(13); + config.tagListViewInset = UIEdgeInsetsMake(15, 15, 15, 10); + + ZHTagListView *tagList = [[ZHTagListView alloc] initWithFrame:CGRectMake(resouLabel.right, 0, announceView.width - resouLabel.right - kRealValue(10), 0) configuration:config tagTexts:_dataSource]; + tagList.backgroundColor = KWhiteColor; + [announceView addSubview:tagList]; + self.tagList = tagList; + [tagList.tagButtonList enumerateObjectsUsingBlock:^(UIButton * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { +// [obj setBackgroundColor:KRedColor]; + + }]; + [tagList setTagClickHandler:^(ZHTagListView *tagListView, NSString *tagText, NSUInteger index) { + UIButton * btn = tagListView.tagButtonList[index]; + self.reasonString = tagText; + for (UIButton * selectBtn in tagListView.tagButtonList) { + if (selectBtn == btn ) { + selectBtn.backgroundColor = UIColorHex(#21BEBD); + [selectBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + }else + { + selectBtn.backgroundColor = KClearColor; + [selectBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + } + } + }]; + + UILabel * timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15),tagList.bottom + kRealValue(15), 60, 13)]; + timeLabel.textColor = CFontColor1; + timeLabel.font = MEDIUMFONT(14); + timeLabel.text = @"暂停时间"; + self.timeLabel = timeLabel; + [announceView addSubview:timeLabel]; + + NSDateFormatter *formater = [[ NSDateFormatter alloc] init]; + [formater setDateFormat:@"yyyy-MM-dd"];// 时间格式 + NSDate *currentDate = [NSDate date];//获取当前日期 + NSString *currentDateStr = [formater stringFromDate:currentDate]; + self.starDate = currentDate; + self.endDate = currentDate; + self.starLabel = [[YYLabel alloc] initWithFrame:CGRectMake(timeLabel.right + kRealValue(15),tagList.bottom + kRealValue(12), 102, 30)]; + self.starLabel.textColor = CFontColor1; + self.starLabel.font = MEDIUMFONT(14); + self.starLabel.text = currentDateStr; + self.starLabel.layer.cornerRadius = 5; + self.starLabel.layer.borderWidth = 1.0f; + self.starLabel.layer.borderColor = UIColorHex(#CCCCCC).CGColor; + self.starLabel.textAlignment = NSTextAlignmentCenter; + MJWeakSelf + [self.starLabel setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + [weakSelf selectStarOnclick]; + }]; + [announceView addSubview:self.starLabel]; + + UILabel * centerLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.starLabel.right ,tagList.bottom + kRealValue(12), 44, 30)]; + centerLabel.textColor = CFontColor1; + centerLabel.font = MEDIUMFONT(14); + centerLabel.text = @"至"; + self.centerLabel = centerLabel; + centerLabel.textAlignment = NSTextAlignmentCenter; + [announceView addSubview:centerLabel]; + + self.endLabel = [[YYLabel alloc] initWithFrame:CGRectMake(centerLabel.right,tagList.bottom + kRealValue(12), self.starLabel.width, self.starLabel.height)]; + self.endLabel.textColor = CFontColor1; + self.endLabel.font = MEDIUMFONT(14); + self.endLabel.text = currentDateStr; + self.endLabel.layer.cornerRadius = 5; + self.endLabel.layer.borderWidth = 1.0f; + self.endLabel.layer.borderColor = UIColorHex(#CCCCCC).CGColor; + self.endLabel.textAlignment = NSTextAlignmentCenter; + + [self.endLabel setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + [weakSelf selectEndOnclick]; + }]; + [announceView addSubview:self.endLabel]; + + UILabel * gonggaoLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15),self.endLabel.bottom + kRealValue(23), 60, 13)]; + gonggaoLabel.textColor = CFontColor1; + gonggaoLabel.font = MEDIUMFONT(14); + gonggaoLabel.text = @"暂停公告"; + self.gonggaoLabel = gonggaoLabel; + [announceView addSubview:gonggaoLabel]; + + self.textView = [[UIPlaceHolderTextView alloc] initWithFrame:CGRectMake(kRealValue(15), gonggaoLabel.bottom + kRealValue(15), announceView.width - kRealValue(30), kRealValue(179))]; + self.textView.placeholder = @"请输入暂停公告"; + self.textView.font = SYSTEMFONT(14); + self.textView.layer.cornerRadius = 5; + self.textView.layer.masksToBounds = true; + self.textView.backgroundColor = UIColorHex(#EFEFEF); + [announceView addSubview:self.textView]; + + UIButton * publishBtn = [[UIButton alloc] initWithFrame:CGRectMake(kRealValue(111), kScreenHeight - kTopHeight - SafetyAreaHeight - kRealValue(56), kScreenWidth - kRealValue(222), kRealValue(35))]; + [publishBtn setTitle:@"发布" forState:UIControlStateNormal]; + [publishBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + publishBtn.titleLabel.font = SYSTEMFONT(14); + publishBtn.layer.cornerRadius = 18; + publishBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + publishBtn.layer.borderWidth = 1.0; + publishBtn.layer.masksToBounds = true; + publishBtn.backgroundColor = KWhiteColor; + [publishBtn addTarget:self action:@selector(publishAction) forControlEvents:UIControlEventTouchUpInside]; + [self.view addSubview:publishBtn]; +} + +- (void)getReasonData { + + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"ReasonAPI" NeedToken:@""]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:@"doctor_stop_reason_type" forKey:@"dictKey"]; + [workApi GetPublishServerReason:parmDic]; + +} + +- (void)selectStarOnclick { + self.starLabel.layer.borderColor = UIColorHex(#21BEBD).CGColor; + // 1.创建日期选择器 + BRDatePickerView *datePickerView = [[BRDatePickerView alloc]init]; + // 2.设置属性 + datePickerView.pickerMode = BRDatePickerModeYMD; + datePickerView.title = @"选择暂停日期"; + // datePickerView.selectValue = @"2019-10-30"; + datePickerView.minDate = [NSDate br_setYear:2003 month:3 day:12]; + datePickerView.maxDate = [NSDate br_setYear:2050 month:3 day:12]; + datePickerView.isAutoSelect = YES; + datePickerView.showUnitType = BRShowUnitTypeOnlyCenter; + datePickerView.resultBlock = ^(NSDate *selectDate, NSString *selectValue) { + NSLog(@"选择的值:%@", selectValue); + self.starDate = selectDate; + self.starLabel.text = selectValue; + }; + + datePickerView.pickerStyle = [BRPickerStyle pickerStyleWithThemeColor:UIColorHex(#21BEBD)]; + // 3.显示 + [datePickerView show]; +} + +- (void)selectEndOnclick { + self.endLabel.layer.borderColor = UIColorHex(#21BEBD).CGColor; + + // 1.创建日期选择器 + BRDatePickerView *datePickerView = [[BRDatePickerView alloc]init]; + // 2.设置属性 + datePickerView.pickerMode = BRDatePickerModeYMD; + datePickerView.title = @"选择暂停日期"; + // datePickerView.selectValue = @"2019-10-30"; + datePickerView.minDate = [NSDate br_setYear:2003 month:3 day:12]; + datePickerView.maxDate = [NSDate br_setYear:2050 month:3 day:12]; + datePickerView.isAutoSelect = YES; + datePickerView.showUnitType = BRShowUnitTypeOnlyCenter; + datePickerView.resultBlock = ^(NSDate *selectDate, NSString *selectValue) { + NSLog(@"选择的值:%@", selectValue); + self.endDate = selectDate; + self.endLabel.text = selectValue; + }; + + datePickerView.pickerStyle = [BRPickerStyle pickerStyleWithThemeColor:UIColorHex(#21BEBD)]; + // 3.显示 + [datePickerView show]; +} + +#pragma mark:发布 + +- (void)publishAction { + if (ValidStr(self.reasonString)) { + + [MBProgressHUD showErrorMessage:@"请选择暂停原因"]; + return; + } + if (ValidStr(self.textView.text)) { + + [MBProgressHUD showErrorMessage:@"请输入公告"]; + return; + } + + //查询当前咨询 + [self showMBProgressHUDWithString:@"发布中,请稍候..." autoHidden:false]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + NSTimeInterval starLong =[self.starDate timeIntervalSince1970]*1000; // *1000 是精确到毫秒,不乘就是精确到秒 + NSString * starString = [NSString stringWithFormat:@"%.0f", starLong]; //转为字符型 + + NSTimeInterval endLong =[self.endDate timeIntervalSince1970]*1000; // *1000 是精确到毫秒,不乘就是精确到秒 + NSString * endString = [NSString stringWithFormat:@"%.0f", endLong]; //转为字符型 + + [parmDic setObject:starString forKey:@"startTime"]; + [parmDic setObject:endString forKey:@"endTime"]; + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"CURRENTAPI" NeedToken:@""]; + [workApi GetCurrentServerNumber:parmDic]; +// + + +} + +- (void)addPublishDate { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + NSTimeInterval starLong =[self.starDate timeIntervalSince1970]*1000; // *1000 是精确到毫秒,不乘就是精确到秒 + NSString * startDayLong = [NSString stringWithFormat:@"%.0f", starLong]; //转为字符型 + + NSTimeInterval endLong =[self.endDate timeIntervalSince1970]*1000; // *1000 是精确到毫秒,不乘就是精确到秒 + NSString * endDayLong = [NSString stringWithFormat:@"%.0f", endLong]; //转为字符型 + + NSDateFormatter *formater = [[ NSDateFormatter alloc] init]; + [formater setDateFormat:@"yyyy-MM-dd"];// 时间格式 + + if (endLong < starLong) { + + [EasyTextView showErrorText:@"结束时间小于开始时间,请重新选择"]; + return; + } + + NSString *starDateStr = [formater stringFromDate:self.starDate]; + NSString *endDateStr = [formater stringFromDate:self.endDate]; + + [parmDic setObject:self.reasonString forKey:@"stopReason"]; + [parmDic setObject:startDayLong forKey:@"startDayLong"]; + [parmDic setObject:endDayLong forKey:@"endDayLong"]; + [parmDic setObject:self.textView.text forKey:@"notice"]; + [parmDic setObject:@"" forKey:@"doctorId"]; + [parmDic setObject:endDateStr forKey:@"endDay"]; + [parmDic setObject:starDateStr forKey:@"startDay"]; + + + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"ADDAPI" NeedToken:@""]; + [workApi PostStopPublishServer:parmDic]; + + + +} +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [EasyTextView showErrorText:message]; + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + + if ([tag isEqualToString:@"ReasonAPI"]) { + NSArray * resArray = response; + NSMutableArray * textArray = [[NSMutableArray alloc] init]; + for (NSDictionary * resDic in resArray) { + + XJDStopReasonModel * model = [XJDStopReasonModel modelWithDictionary:resDic]; + [textArray addObject:model.text]; + [self.reasonArray addObject:model]; + } + self.tagList.tags = textArray; + //布局 + self.starLabel.top = self.tagList.bottom + kRealValue(12); + self.centerLabel.top = self.starLabel.top; + self.endLabel.top = self.starLabel.top; + self.gonggaoLabel.top = self.endLabel.bottom + kRealValue(23); + self.textView.top = self.gonggaoLabel.bottom + kRealValue(15); + self.announceView.bottom = self.textView.bottom + kRealValue(20); + self.announceView.top = kRealValue(15); + self.timeLabel.top = self.tagList.bottom + kRealValue(15); + + } + if ([tag isEqualToString:@"CURRENTAPI"]) { + [self addPublishDate]; + //转换为时间戳 +// NSString * resString = response; +// +// if ([resString integerValue] == 0 ) { +// [self addPublishDate]; +// +// }else +// { +// +// XJDStopQuestionPopView * popview = [[XJDStopQuestionPopView alloc] initWithFrame:[UIScreen mainScreen].bounds]; +// popview.questionNumber = resString; +// popview.publisBlock = ^{ +// [self addPublishDate]; +// }; +// [[UIApplication sharedApplication].keyWindow addSubview:popview]; +// popview.alpha = 0; +// [UIView animateWithDuration:0.5 animations:^{ +// popview.alpha = 1; +// } completion:^(BOOL finished) { +// }]; +// } + } + if ([tag isEqualToString:@"ADDAPI"]) { + [self hiddenAllMBProgressHUD]; + [self.navigationController popViewControllerAnimated:YES]; + } + +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionCauseViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionCauseViewController.h new file mode 100644 index 0000000..c1e21db --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionCauseViewController.h @@ -0,0 +1,16 @@ +// +// XJDStopQuestionCauseViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/30. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDStopQuestionCauseViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionCauseViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionCauseViewController.m new file mode 100644 index 0000000..15c20f8 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionCauseViewController.m @@ -0,0 +1,40 @@ +// +// XJDStopQuestionCauseViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/30. +// + +#import "XJDStopQuestionCauseViewController.h" + +@interface XJDStopQuestionCauseViewController () + +@end + +@implementation XJDStopQuestionCauseViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.navigationItem.title = @"暂停服务"; + [self createUI]; + +} + +- (void)createUI { + + + +} +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionSettingVC.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionSettingVC.h new file mode 100644 index 0000000..1175ab6 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionSettingVC.h @@ -0,0 +1,16 @@ +// +// XJDStopQuestionSettingVC.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/29. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDStopQuestionSettingVC : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionSettingVC.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionSettingVC.m new file mode 100644 index 0000000..2cbbb42 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/StopQuestionSetting(停诊设置)/XJDStopQuestionSettingVC.m @@ -0,0 +1,185 @@ +// +// XJDStopQuestionSettingVC.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/29. +// + +#import "XJDStopQuestionSettingVC.h" +#import "XJDStopQuestionTableView.h" +#import "XJDStopQuestionPopView.h" +#import "XJDStopServiceModel.h" +#import "XJDStopAnnouncementViewController.h" +@interface XJDStopQuestionSettingVC () + +@property (nonatomic, strong) XJDStopQuestionTableView * homeTable; + +@property (nonatomic, strong) NSMutableArray * dataArray; + +@property (nonatomic, assign) NSInteger pageNo; + +@property (nonatomic, assign) NSInteger pageSize; + +@end + +@implementation XJDStopQuestionSettingVC + + +- (NSMutableArray *)dataArray { + + if (!_dataArray) { + _dataArray = [[NSMutableArray alloc] init]; + } + return _dataArray; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.view.backgroundColor = UIColorHex(#EFEFEF); + self.navigationItem.title = @"暂停服务"; + self.pageNo =1; + self.pageSize = 10; + [self createUI]; + [self createData]; +} + +- (void)viewWillAppear:(BOOL)animated { + + [super viewWillAppear:animated] ; + + [self.homeTable.mj_header beginRefreshing]; + +} +- (void)createUI { + + + UIButton * stopPublish = [[UIButton alloc] init]; + [stopPublish setTitle:@"发布暂停公告" forState:UIControlStateNormal]; + [stopPublish setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + [stopPublish addTarget:self action:@selector(publishAction) forControlEvents:UIControlEventTouchUpInside]; + stopPublish.layer.borderColor = UIColorHex(#21BEBD).CGColor; + stopPublish.layer.borderWidth = 1.0; + stopPublish.layer.cornerRadius = 17; + [self.view addSubview:stopPublish]; + + [stopPublish mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_offset(150); + make.bottom.mas_offset(-30); + make.height.mas_offset(36); + make.centerX.mas_equalTo(self.view); + }]; + + self.homeTable = [[XJDStopQuestionTableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.homeTable.changeBlock = ^(NSString * _Nullable record_id) { + DLog(@"%@",record_id); + [self chageServiceStatus:record_id]; + }; + [self.view addSubview:self.homeTable]; + + [self.homeTable mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.mas_offset(0); + make.bottom.mas_equalTo(stopPublish.mas_top).offset(-10); + }]; + + __weak __typeof(self) weakSelf = self; + self.homeTable.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ + weakSelf.pageNo = 1; + + [weakSelf createData]; + + + }]; + self.homeTable.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ + weakSelf.pageNo ++; + + [weakSelf createData]; + }]; + + + + +} + +- (void)publishAction { + + + + XJDStopAnnouncementViewController * publishVC = [[XJDStopAnnouncementViewController alloc] init]; + + [self.navigationController pushViewController:publishVC animated:YES]; +} + +- (void)createData { + + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + [parmDic setObject:@(self.pageNo) forKey:@"pageNo"]; + [parmDic setObject:@(self.pageSize) forKey:@"pageSize"]; + + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"RECORDAPI" NeedToken:@""]; + + [workApi GetSPublishServerRecored:parmDic]; + +} + + +- (void)chageServiceStatus:(NSString *)recordID { + [self showMBProgressHUDWithString:@"恢复中,请稍候" autoHidden:false]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:recordID forKey:@"id"]; + [parmDic setObject:@"1" forKey:@"serviceStatus"]; + + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"CHAGEAPI" NeedToken:@""]; + [workApi GetChangePublishServer:parmDic]; + +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + + [self.homeTable.mj_header endRefreshing]; + [self.homeTable.mj_footer endRefreshing]; + [self hiddenAllMBProgressHUD]; +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + + [self.homeTable.mj_header endRefreshing]; + [self.homeTable.mj_footer endRefreshing]; + if ([tag isEqualToString:@"RECORDAPI"]) { + NSDictionary * resDic = response; + if (self.pageNo == 1) { + + [self.dataArray removeAllObjects]; + } + XJDStopServiceModel * model = [XJDStopServiceModel modelWithDictionary:resDic]; + + for (XJDStopServiceListModel * listModel in model.records ) { + + [self.dataArray addObject:listModel]; + } + self.homeTable.dataArray = self.dataArray; + } + if ([tag isEqualToString:@"CHAGEAPI"]) { + [self hiddenAllMBProgressHUD]; + [self.homeTable.mj_header beginRefreshing]; + } + +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDBasicHealthInfoViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDBasicHealthInfoViewController.h new file mode 100644 index 0000000..ebb84fe --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDBasicHealthInfoViewController.h @@ -0,0 +1,16 @@ +// +// BasicHealthInfoViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDBasicHealthInfoViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDBasicHealthInfoViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDBasicHealthInfoViewController.m new file mode 100644 index 0000000..65765a3 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDBasicHealthInfoViewController.m @@ -0,0 +1,48 @@ +// +// BasicHealthInfoViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import "XJDBasicHealthInfoViewController.h" +#import "XJDBasicHealthInfoView.h" + + +@interface XJDBasicHealthInfoViewController () + + + +@end + +@implementation XJDBasicHealthInfoViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.isHidenNaviBar = false; + self.title = @"基本健康信息"; + self.view.backgroundColor = UIColorHex(#EEEEEE); + [self createUI]; + // Do any additional setup after loading the view. +} + +- (void)createUI { + + XJDBasicHealthInfoView * infoView = [[XJDBasicHealthInfoView alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(15), kScreenWidth - kRealValue(30), kRealValue(286))]; + infoView.backgroundColor = [UIColor whiteColor]; + infoView.layer.cornerRadius = 10.0; + infoView.layer.masksToBounds = true; + [self.view addSubview:infoView]; +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDHomePageViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDHomePageViewController.h new file mode 100644 index 0000000..0781f6d --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDHomePageViewController.h @@ -0,0 +1,18 @@ +// +// XJDHomePageViewController.h +// healthQuestion +// +// Created by xulei on 2022/8/17. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDHomePageViewController : YXBaseViewController + + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDHomePageViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDHomePageViewController.m new file mode 100644 index 0000000..c852599 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/XJDHomePageViewController.m @@ -0,0 +1,774 @@ +// +// XJDHomePageViewController.m +// healthQuestion +// +// Created by xulei on 2022/8/17. +// + +#import "XJDHomePageViewController.h" +#import "XJDQuestionDetailViewController.h" +#import "XJDHomePageModel.h" +#import "ChatViewController.h" +#import "MJRefresh.h" +#import "XJDShowPromptPopView.h" +#import "XJDQuestionStatisticsViewController.h" +#import "XJDQustionRecordViewController.h" +#import "XJDStopQuestionSettingVC.h" +#import "XJDBasicHealthInfoViewController.h" +#import "XJDRefuseQuestionPopView.h" +#import "XJDHistoricalRecordViewController.h" +#import "XJDFileDataDetailViewController.h" +#import "XJDStopAnnouncementViewController.h" +#import "XJDBillDetailViewController.h" +#import "TUIC2CChatViewController.h" +#import "XJDDoctorInfoModel.h" +#import "PSAppInfo.h" +#import "PSCheckVersion.h" +@interface XJDHomePageViewController () + +@property (nonatomic, strong) UIScrollView * mainScrollView; + +@property (nonatomic, strong) UILabel * nameLabel; + +@property (nonatomic, strong) UILabel * workLabel; + +@property (nonatomic, strong) UILabel * hospatilLabel; + +@property (nonatomic, strong) UIImageView * heardImage; + +@property (nonatomic, strong) UILabel * messageLabel; +@property (nonatomic, copy) NSString * smallGroup; + +@end + +@implementation XJDHomePageViewController + +- (void)viewDidLoad { + + [super viewDidLoad]; + [self createUI]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(updateHomeDate) + name:KNotificAgreeMapDelegate + object:nil]; + + //前缀请求 + [self chageUrlService]; + [[V2TIMManager sharedInstance] addSimpleMsgListener:self]; + [[TUICallEngine createInstance] addObserver:self]; + + self.isHidenNaviBar = false; + self.StatusBarStyle = UIStatusBarStyleDefault; + self.view.backgroundColor = CViewBgColor; + self.navigationItem.title = @"健康专家库"; + + [self docotrUserInfo]; + [self creatSmallHelpNumber]; + [PSCheckVersion checkVersionCompulsoryUpdate]; + +} + +- (void)updateHomeDate { + + [self docotrUserInfo]; + [self creatSmallHelpNumber]; + +} + +#pragma mark:请求前缀 +- (void)chageUrlService { + + AFHTTPSessionManager *session=[AFHTTPSessionManager manager]; + // AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; + + session.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html",@"text/plain", nil]; + //超时时间 + + session.requestSerializer.timeoutInterval= 30.f; + session.responseSerializer = [AFHTTPResponseSerializer serializer]; + + session.requestSerializer = [AFJSONRequestSerializer serializer]; + + session.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + // 获取应用的版本号 + NSString * version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; + // 将版本号按照点(.)分割成数组 + NSArray * components = [version componentsSeparatedByString:@"."]; + + // 获取数组中的最后一个元素 + NSString * lastComponent = [components lastObject]; + // 如果需要将其转换为整数 + NSInteger lastNumber = [lastComponent integerValue]; + + [parmDic setObject:@(lastNumber) forKey:@"version"]; + [parmDic setObject:@"health.Employees.tools" forKey:@"pkg"]; + + + [session GET:@"https://base.icdat.cn/v2/url" parameters:parmDic headers:nil progress:^(NSProgress * _Nonnull downloadProgress) { + + } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { + + NSString * dataString = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; + DLog(@"response\n%@\n",dataString); + NSData *requestData = [dataString dataUsingEncoding:NSUTF8StringEncoding]; + + id myResult = [NSJSONSerialization JSONObjectWithData:requestData options:NSJSONReadingMutableContainers error:nil]; + //判断是否为字典 + if ([myResult isKindOfClass:[NSDictionary class]]) { + + NSDictionary *response = (NSDictionary *)myResult; + if ([response.allKeys containsObject:@"result"]) { + NSDictionary * resultDic = [response objectForKey:@"result"]; + + if ([resultDic.allKeys containsObject:@"api"]) { + [[NSUserDefaults standardUserDefaults] setObject:[resultDic objectForKey:@"api"] forKey:@"HTTPS"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + if ([resultDic.allKeys containsObject:@"h5"]) { + [[NSUserDefaults standardUserDefaults] setObject:[resultDic objectForKey:@"h5"] forKey:@"IntervenH5"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + if ([resultDic.allKeys containsObject:@"h5Host"]) { + [[NSUserDefaults standardUserDefaults] setObject:[resultDic objectForKey:@"h5Host"] forKey:@"H5DevHost"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + if ([resultDic.allKeys containsObject:@"health"]) { + [[NSUserDefaults standardUserDefaults] setObject:[resultDic objectForKey:@"health"] forKey:@"BASEURL"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + } + } + + } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { + NSString * statusCode = [error.userInfo objectForKey:@"NSLocalizedDescription"]; + + }]; +} + + +- (void)viewWillAppear:(BOOL)animated { + + [super viewWillAppear:animated]; + [self.mainScrollView.mj_header beginRefreshing]; + +} +- (void)createUI { + + self.mainScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight - kTopHeight)]; + [self.view addSubview:self.mainScrollView]; + + UIView * linV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 0.5)]; + [self.mainScrollView addSubview:linV]; + + XJDUserInfo * user = [XJDCommonUtils keyedUnarchiverWithKey:LoginUserInfo]; + + UIView * topBack = [[UIView alloc] initWithFrame:CGRectMake(0, linV.bottom, kScreenWidth, kRealValue(130))]; + topBack.backgroundColor = UIColorHex(#21BEBD); + [self.mainScrollView addSubview:topBack]; + + self.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), kRealValue(19), 100, 20)]; + self.nameLabel.textColor = KWhiteColor; + self.nameLabel.font = SYSTEMFONT(21); + self.nameLabel.text = user.realname; + CGFloat w = [XJDCommonUtils getLengthFromText:self.nameLabel.text andFontSize:21]; + self.nameLabel.width = w; + self.nameLabel.textAlignment = NSTextAlignmentLeft; + [topBack addSubview:self.nameLabel]; + + self.workLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.nameLabel.right + kRealValue(12), kRealValue(25), 100, 13)]; + self.workLabel.textColor = KWhiteColor; + self.workLabel.font = SYSTEMFONT(13); + self.workLabel.textAlignment = NSTextAlignmentLeft; + [topBack addSubview:self.workLabel]; + + self.hospatilLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), self.nameLabel.bottom + kRealValue(17), kScreenWidth - kRealValue(65), 20)]; + self.hospatilLabel.textColor = KWhiteColor; + self.hospatilLabel.font = SYSTEMFONT(13); +// self.hospatilLabel.text = [NSString stringWithFormat:@"%@ %@",user.phone,user.sex_dictText]; + self.hospatilLabel.textAlignment = NSTextAlignmentLeft; + [topBack addSubview:self.hospatilLabel]; + + self.heardImage = [[UIImageView alloc] initWithFrame:CGRectMake(kScreenWidth - kRealValue(24) - 60, kRealValue(10), 60, 60)]; + self.heardImage.backgroundColor = KWhiteColor; + self.heardImage.layer.cornerRadius = 30.0; + self.heardImage.layer.masksToBounds = true; + [topBack addSubview:self.heardImage]; + + + +// UIView * questionView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), self.heardImage.bottom + kRealValue(23), kScreenWidth - kRealValue(30), kRealValue(132) * 2 + kRealValue(10))]; +// questionView.backgroundColor = KRedColor; +// questionView.layer.cornerRadius = 10.0; +//// [XJDCommonUtils addShadowToView:questionView]; +// [self.view addSubview:questionView]; + + NSArray * array = @[@[@"图文咨询",@"通过图片、文字的形式进行咨询"],@[@"视频咨询",@"通过语音视频电话的形式进行咨询"]]; + NSArray * timearray = @[@[@"0",@"0"],@[@"0",@"0"]]; + NSArray * TagArray = @[@"100",@"200"]; + UIView * lastView; + for (int i = 0; i < 2 ; i ++) { + + UIView * listView = [self createQuestionFrame:CGRectMake(kRealValue(15) , self.heardImage.bottom + kRealValue(23) + 10 * i + kRealValue(132) * i, kScreenWidth - kRealValue(30), kRealValue(132)) Image:@"" withTitle:array[i][0] withDesTitle:array[i][1] withTime:timearray[i][0] numberCount:timearray[i][1] withTag:[TagArray[i] intValue]]; + listView.backgroundColor = KWhiteColor; + if (i == 1) { + lastView = listView; + } + + UIButton * topBackbtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, listView.width, listView.height - 46)]; + topBackbtn.tag = 1000 + i; + [topBackbtn addTarget:self action:@selector(topAction:) forControlEvents:UIControlEventTouchUpInside]; + [listView addSubview:topBackbtn]; + [self.mainScrollView addSubview:listView]; + } + + UIView * smallView= [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), lastView.bottom + kRealValue(10), kScreenWidth - kRealValue(30), kRealValue(80))]; + smallView.backgroundColor = KWhiteColor; + smallView.layer.cornerRadius = 10.0; + smallView.layer.masksToBounds = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; + [smallView addGestureRecognizer:tap]; + [self.mainScrollView addSubview:smallView]; + + UIImageView * leftImg = [[UIImageView alloc] initWithFrame:CGRectMake(24, 24, 40, 40)]; + leftImg.layer.cornerRadius = 20.0f; + leftImg.layer.masksToBounds = true; + leftImg.image = [UIImage imageNamed:@"home_small"] ; + [smallView addSubview:leftImg]; + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(leftImg.right + kRealValue(15), kRealValue(28), kScreenWidth - kRealValue(65), 14)]; + titleLabel.textColor = UIColorHex(#333333); + titleLabel.font = BOLDSYSTEMFONT(14); + titleLabel.text = @"小助手"; + titleLabel.textAlignment = NSTextAlignmentLeft; + [smallView addSubview:titleLabel]; + + UILabel * desLabel = [[UILabel alloc] initWithFrame:CGRectMake(leftImg.right + kRealValue(15), titleLabel.bottom + kRealValue(10), kScreenWidth - kRealValue(65), 11)]; + desLabel.textColor = UIColorHex(#666666); + desLabel.font = SYSTEMFONT(11); + desLabel.text = @"联系小助手获取相关帮助和支持"; + desLabel.textAlignment = NSTextAlignmentLeft; + [smallView addSubview:desLabel]; + + UILabel * dayLabel = [[UILabel alloc] initWithFrame:CGRectMake(smallView.width - kRealValue(11) - 100, kRealValue(23), 100, 11)]; + dayLabel.textColor = UIColorHex(#999999); + dayLabel.font = SYSTEMFONT(11); + dayLabel.text = @""; + dayLabel.textAlignment = NSTextAlignmentRight; + self.messageLabel = dayLabel; + [smallView addSubview:dayLabel]; + +// UILabel * messageLabel = [[UILabel alloc] initWithFrame:CGRectMake(smallView.width - kRealValue(20) - 12 ,dayLabel.bottom + kRealValue(12) ,14, 14)]; +// messageLabel.textColor = KWhiteColor; +// messageLabel.font = SYSTEMFONT(10); +// messageLabel.text = @"-"; +// messageLabel.textAlignment = NSTextAlignmentCenter; +// messageLabel.layer.cornerRadius = 7; +// messageLabel.layer.masksToBounds = true; +// messageLabel.backgroundColor = UIColorHex(#21BEBD); + +// [smallView addSubview:messageLabel]; + MJWeakSelf + self.mainScrollView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ + // 进入刷新状态后会自动调用这个block + [weakSelf createMessageNumber]; + [weakSelf creatSmallHelpNumber]; + + }]; + + // 马上进入刷新状态 + // 拉取群聊历史消息 + // 首次拉取,lastMsg 设置为 null + // 再次拉取时,lastMsg 可以使用返回的消息列表中的最后一条消息 + + +} + +- (void)createMessageNumber { + + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"HOMEAPI" NeedToken:@""]; + + [homeApi getHomeData:nil]; + +} + +- (void)docotrUserInfo { + + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"DoctorINFO" NeedToken:@""]; + + [homeApi GetInquireDoctorInfo:nil]; + +} + +- (void)handleTapGesture:(id)sender { + + if ([ESCTUIManager TUIUserStatus] == false) { + + + [self loginImAccount]; + } + [self showMBProgressHUDWithString:@"加载中..." autoHidden:false]; + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"FOUNDSMALLAPI" NeedToken:@""]; + + [homeApi getHomeFoundSmallHelpData:nil]; + +} + +- (void)creatSmallHelpNumber { + + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"SMALLAPI" NeedToken:@""]; + + [homeApi getHomeSmallData:nil]; + +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + [self.mainScrollView.mj_header endRefreshing]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + + + if ([tag isEqualToString:@"HOMEAPI"]) { + [self.mainScrollView.mj_header endRefreshing]; + NSDictionary * dic = response ; + +// 图文咨询:pictureUnReply 待回复 pictureIng进行中 pictureFinish已完成 视频咨询: videoUnReply待确认 videoIng进行中 videoFinish已完成 + + UILabel * pictur_wait = [self.view viewWithTag:100]; + if ([dic.allKeys containsObject:@"pictureUnReply"]) { + if ([[dic objectForKey:@"pictureUnReply"] intValue] == 0) { + pictur_wait.hidden = YES; + }else + { + pictur_wait.hidden = false; + pictur_wait.text = [NSString stringWithFormat:@"%@",[dic objectForKey:@"pictureUnReply"]]; + } + + } + + UILabel * pictur_ing = [self.view viewWithTag:110]; + + if ([dic.allKeys containsObject:@"pictureIng"]) { + if ([[dic objectForKey:@"pictureIng"] intValue] == 0) { + pictur_ing.hidden = YES; + }else + { + pictur_ing.hidden = false; + pictur_ing.text = [NSString stringWithFormat:@"%@",[dic objectForKey:@"pictureIng"]]; + } + + } + + UILabel * pictur_end = [self.view viewWithTag:120]; + + if ([dic.allKeys containsObject:@"pictureFinish"]) { + if ([[dic objectForKey:@"pictureFinish"] intValue] == 0) { + pictur_end.hidden = YES; + }else + { + pictur_end.hidden = false; + pictur_end.text = [NSString stringWithFormat:@"%@",[dic objectForKey:@"pictureFinish"]]; + } + + } + + UILabel * video_wait = [self.view viewWithTag:200]; + if ([dic.allKeys containsObject:@"videoUnReply"]) { + if ([[dic objectForKey:@"videoUnReply"] intValue] == 0) { + video_wait.hidden = YES; + }else + { + video_wait.hidden = false; + video_wait.text = [NSString stringWithFormat:@"%@",[dic objectForKey:@"videoUnReply"]]; + } + + } + + UILabel * video_ing = [self.view viewWithTag:210]; + + if ([dic.allKeys containsObject:@"videoIng"]) { + if ([[dic objectForKey:@"videoIng"] intValue] == 0) { + video_ing.hidden = YES; + }else + { + video_ing.hidden = false; + video_ing.text = [NSString stringWithFormat:@"%@",[dic objectForKey:@"videoIng"]]; + } + + } + + UILabel * video_end = [self.view viewWithTag:220]; + + if ([dic.allKeys containsObject:@"videoFinish"]) { + if ([[dic objectForKey:@"videoFinish"] intValue] == 0) { + video_end.hidden = YES; + }else + { + video_end.hidden = false; + video_end.text = [NSString stringWithFormat:@"%@",[dic objectForKey:@"videoFinish"]]; + } + + } + + } + if ([tag isEqualToString:@"SMALLAPI"]) { + [self.mainScrollView.mj_header endRefreshing]; + NSString * result = response; + if (!ValidStr(result)) { + self.smallGroup = result; + [self loginImAccount]; + + } + + } + if ([tag isEqualToString:@"FOUNDSMALLAPI"]) { + + NSDictionary * responDic = response; + + XJDSmallHelpModel * helpModel = [XJDSmallHelpModel modelWithDictionary:responDic]; + + if ([ESCTUIManager TUIUserStatus] == false) { + + + [self loginImAccount]; + return; + } + + ChatViewController * chatVC = [[ChatViewController alloc] init]; + chatVC.isGroupID = false; + chatVC.chatID = helpModel.groupId; + chatVC.smallHelp_id = helpModel.help_Id; + chatVC.member = helpModel.member; + chatVC.isVideo = false; + chatVC.eableSendReport = YES; + chatVC.eableMapTools = false; + chatVC.navTitle = @"小助手"; + chatVC.eablehaveHelathData = YES; + chatVC.questionType = 1; + chatVC.memberSex = @"2"; + [self hiddenAllMBProgressHUD]; + [self.navigationController pushViewController:chatVC animated:YES]; + + + } + if ([tag isEqualToString:@"loginIMAPI"]) { + + NSDictionary * pamrDic = response; + + XJDIMUserInfoModel * model = [XJDIMUserInfoModel modelWithDictionary:pamrDic]; + + XJDIMUserInfoModel * iminfoModel = [[XJDIMUserInfoModel alloc] init]; + iminfoModel.IMInfo = pamrDic; + [XJDCommonUtils keyedArchiverWithData:iminfoModel key:IMLoginUserInfo]; + + // 1. 从即时通信 IM 控制台获取应用 SDKAppID。 + // 2. 初始化 config 对象 + V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init]; + // 3. 指定 log 输出级别。 + config.logLevel = V2TIM_LOG_INFO; + // 4. 添加 V2TIMSDKListener 的事件监听器,self 是 id 的实现类,如果您不需要监听 IM SDK 的事件,这个步骤可以忽略。 + [[V2TIMManager sharedInstance] addIMSDKListener:self]; + // 5. 初始化 IM SDK,调用这个接口后,可以立即调用登录接口。 + [[V2TIMManager sharedInstance] initSDK:[model.sdkAppId intValue] config:config]; + + [ESCTUIManager loginInitTUISDKAppidWith:[model.sdkAppId intValue] UserID:model.userId userSig:model.userSig]; + + [V2TIMManager.sharedInstance getGroupHistoryMessageList:[NSString stringWithFormat:@"%@",self.smallGroup] count:20 lastMsg:nil succ:^(NSArray *msgs) { + // 记录下次拉取的 lastMsg,用于下次拉取 + V2TIMMessage *lastMsg = msgs.lastObject; + NSLog(@"success, %@", msgs); + + NSDateFormatter *date = [[NSDateFormatter alloc]init]; + [date setDateFormat:@"HH:mm:ss"]; + NSString *dateString = [date stringFromDate:lastMsg.timestamp]; + + if (!ValidStr(dateString)) { + dispatch_async(dispatch_get_main_queue(), ^{ + self.messageLabel.text = [NSString stringWithFormat:@"%@",dateString]; + }); + }else + { + dispatch_async(dispatch_get_main_queue(), ^{ + self.messageLabel.text = @""; + }); + + } + + } fail:^(int code, NSString *desc) { + NSLog(@"fail, %d, %@", code, desc); + }]; + } + + if ([tag isEqualToString:@"DoctorINFO"]) { + + NSDictionary * parDic = response; + + XJDDoctorInfoModel * model = [XJDDoctorInfoModel modelWithDictionary:parDic]; + self.nameLabel.text = model.doctorName; + self.workLabel.text = [NSString stringWithFormat:@"%@",model.doctorTitle] ; + CGFloat workW = [XJDCommonUtils getLengthFromText:self.workLabel.text andFontSize:13]; + self.workLabel.width = workW; + self.hospatilLabel.text = [NSString stringWithFormat:@"%@ %@",model.resourceName,model.departmentName]; + + NSString * photo = [NSString stringWithFormat:@"%@%@",ResourceAddress,model.photo]; + + NSString * str1 = @"\\"; + + photo = [photo stringByReplacingOccurrencesOfString:str1 withString:@"/"]; + + NSString *encodedString3 = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)photo, (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]", NULL, kCFStringEncodingUTF8)); + + [self.heardImage sd_setImageWithURL:[NSURL URLWithString:encodedString3] placeholderImage:[UIImage imageNamed:@"doctorNoImage"]]; + } + + +} + +- (void)topAction:(UIButton *)btn { + + + XJDQustionRecordViewController * recoredVC = [[XJDQustionRecordViewController alloc] init]; + //图文待回复 + if (btn.tag == 1000) { + + recoredVC.questionType = 1; + + } + //视频待确认 + if (btn.tag == 1001) { + + recoredVC.questionType = 2; + + } + recoredVC.questionStatus = 10; + [self.navigationController pushViewController:recoredVC animated:YES]; +} +- (void)loginImAccount { + + XJDNetAPI * proctocolApi = [[XJDNetAPI alloc] init:self tag:@"loginIMAPI" NeedToken:nil]; + [proctocolApi GetIMLoginAccount:nil]; + +} + + +- (UIView *)createQuestionFrame:(CGRect)frame + Image:(NSString *)imageName + withTitle:(NSString *)title + withDesTitle:(NSString *)desTitle + withTime:(NSString *)time + numberCount:(NSString *)number + withTag:(NSInteger)NumberTag{ + + UIView * view = [[UIView alloc] initWithFrame:frame]; + view.layer.cornerRadius = 10.0; + view.backgroundColor = KWhiteColor; + view.layer.masksToBounds = YES; + + UIImageView * leftImg = [[UIImageView alloc] initWithFrame:CGRectMake(24, 24, 40, 40)]; + leftImg.layer.cornerRadius = 20.0f; + leftImg.layer.masksToBounds = true; + if ([title isEqualToString:@"图文咨询"]) { + leftImg.image = [UIImage imageNamed:@"home_PictureQustion"]; + } + if ([title isEqualToString:@"视频咨询"]) { + leftImg.image = [UIImage imageNamed:@"home_VideoQustion"]; + } + if ([title isEqualToString:@"小助手"]) { + leftImg.image = [UIImage imageNamed:@"home_small"]; + } + leftImg.backgroundColor = [UIColor greenColor]; + [view addSubview:leftImg]; + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(leftImg.right + kRealValue(15), kRealValue(28), kScreenWidth - kRealValue(65), 14)]; + titleLabel.textColor = UIColorHex(#333333); + titleLabel.font = BOLDSYSTEMFONT(14); + titleLabel.text = title; + titleLabel.textAlignment = NSTextAlignmentLeft; + [view addSubview:titleLabel]; + + UILabel * desLabel = [[UILabel alloc] initWithFrame:CGRectMake(leftImg.right + kRealValue(15), titleLabel.bottom + kRealValue(10), kScreenWidth - kRealValue(65), 11)]; + desLabel.textColor = UIColorHex(#666666); + desLabel.font = SYSTEMFONT(11); + desLabel.text = desTitle; + desLabel.textAlignment = NSTextAlignmentLeft; + [view addSubview:desLabel]; + + UIView * linView = [[UIView alloc] initWithFrame:CGRectMake(0, desLabel.bottom + kRealValue(26), view.width, 1)]; + linView.backgroundColor = UIColorHex(#E0E0E0); + [view addSubview:linView]; + + UIView * cowView = [[UIView alloc] initWithFrame:CGRectMake(view.width/3, linView.bottom + kRealValue(8), 1, 28)]; + cowView.backgroundColor = UIColorHex(#E0E0E0); + [view addSubview:cowView]; + + UIView * cowTwoView = [[UIView alloc] initWithFrame:CGRectMake(view.width/3 * 2, linView.bottom + kRealValue(8), 1, 28)]; + cowTwoView.backgroundColor = UIColorHex(#E0E0E0); + [view addSubview:cowTwoView]; + + //待回复 + UIButton * replayBtn = [[UIButton alloc] initWithFrame:CGRectMake(0 , linView.bottom ,view.width/3 , 45)]; + + if ([title isEqualToString:@"图文咨询"]) { + [replayBtn setTitle:@"待回复" forState:UIControlStateNormal]; + + } + if ([title isEqualToString:@"视频咨询"]) { + [replayBtn setTitle:@"待确认" forState:UIControlStateNormal]; + + } + [replayBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + replayBtn.titleLabel.font = SYSTEMFONT(13); + replayBtn.tag = NumberTag + 1000; + [replayBtn addTarget:self action:@selector(daihuifuAction:) forControlEvents:UIControlEventTouchUpInside]; + [view addSubview:replayBtn]; + + + + UILabel * numLabel = [[UILabel alloc] initWithFrame:CGRectMake(replayBtn.width - kRealValue(22) - 12 ,kRealValue(15) ,12, 12)]; + numLabel.textColor = KWhiteColor; + numLabel.font = SYSTEMFONT(10); + numLabel.text = number; + numLabel.textAlignment = NSTextAlignmentCenter; + numLabel.layer.cornerRadius = 6; + numLabel.layer.masksToBounds = true; + numLabel.backgroundColor = UIColorHex(#21BEBD); + numLabel.tag = NumberTag; + [replayBtn addSubview:numLabel]; + //进行中 + UIButton * qustionBtn = [[UIButton alloc] initWithFrame:CGRectMake(view.width/3 , linView.bottom ,view.width/3 , 45)]; + [qustionBtn setTitle:@"进行中" forState:UIControlStateNormal]; + [qustionBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + qustionBtn.titleLabel.font = SYSTEMFONT(13); + qustionBtn.tag = NumberTag + 1001; + [qustionBtn addTarget:self action:@selector(jingxingAction:) forControlEvents:UIControlEventTouchUpInside]; + + [view addSubview:qustionBtn]; + + UILabel * jingxingLabel = [[UILabel alloc] initWithFrame:CGRectMake(qustionBtn.width - kRealValue(22) - 12 ,kRealValue(15) ,12, 12)]; + jingxingLabel.textColor = KWhiteColor; + jingxingLabel.font = SYSTEMFONT(10); + jingxingLabel.text = number; + jingxingLabel.textAlignment = NSTextAlignmentCenter; + jingxingLabel.layer.cornerRadius = 6; + jingxingLabel.layer.masksToBounds = true; + jingxingLabel.backgroundColor = UIColorHex(#21BEBD); + jingxingLabel.tag = NumberTag + 10; + [qustionBtn addSubview:jingxingLabel]; + + //完成 + UIButton * wanchengBtn = [[UIButton alloc] initWithFrame:CGRectMake(view.width/3 * 2 , linView.bottom ,view.width/3 , 45)]; + [wanchengBtn setTitle:@"已完成" forState:UIControlStateNormal]; + [wanchengBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + wanchengBtn.titleLabel.font = SYSTEMFONT(13); + wanchengBtn.tag = NumberTag + 1002; + [wanchengBtn addTarget:self action:@selector(wanchengAction:) forControlEvents:UIControlEventTouchUpInside]; + [view addSubview:wanchengBtn]; + + UILabel * wanchengLabel = [[UILabel alloc] initWithFrame:CGRectMake(qustionBtn.width - kRealValue(22) - 12 ,kRealValue(15) ,14, 14)]; + wanchengLabel.textColor = KWhiteColor; + wanchengLabel.font = SYSTEMFONT(10); + wanchengLabel.text = number; + wanchengLabel.textAlignment = NSTextAlignmentCenter; + wanchengLabel.layer.cornerRadius = 7; + wanchengLabel.layer.masksToBounds = true; + wanchengLabel.backgroundColor = UIColorHex(#21BEBD); + wanchengLabel.tag = NumberTag + 20; + [wanchengBtn addSubview:wanchengLabel]; + + return view; +} + +#pragma mark:待回复 +- (void)daihuifuAction:(UIButton *)daihuifuBtn { + XJDQustionRecordViewController * recoredVC = [[XJDQustionRecordViewController alloc] init]; + //图文待回复 + if (daihuifuBtn.tag == 1100) { + + recoredVC.questionType = 1; + + } + //音视频待回复 + if (daihuifuBtn.tag == 1200) { + + recoredVC.questionType = 2; + } + recoredVC.questionStatus = 10; + [self.navigationController pushViewController:recoredVC animated:YES]; +} +#pragma mark:进行中 +- (void)jingxingAction:(UIButton *)jingxingBtn { + XJDQustionRecordViewController * recoredVC = [[XJDQustionRecordViewController alloc] init]; + //图文待回复 + if (jingxingBtn.tag == 1101) { + + recoredVC.questionType = 1; + + } + //视频待确认 + if (jingxingBtn.tag == 1201) { + + recoredVC.questionType = 2; + + } + recoredVC.questionStatus = 20; + [self.navigationController pushViewController:recoredVC animated:YES]; +} +#pragma mark:已完成 +- (void)wanchengAction:(UIButton *)wancgengBtn { + + XJDQustionRecordViewController * recoredVC = [[XJDQustionRecordViewController alloc] init]; + //图文待回复 + if (wancgengBtn.tag == 1102) { + + recoredVC.questionType = 1; + + } + //音视频待回复 + if (wancgengBtn.tag == 1202) { + + recoredVC.questionType = 2; + } + recoredVC.questionStatus = 30; + [self.navigationController pushViewController:recoredVC animated:YES]; +} + +- (void)pictureQuestionAction { + + XJDStopQuestionSettingVC * detailVC = [[XJDStopQuestionSettingVC alloc] init]; + + [self.navigationController pushViewController:detailVC animated:YES]; +} + + +//在线时票据过期:此时您需要生成新的 userSig,并再次重新调用初始化。 +- (void)onKickedOffline { + + [XJDCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; + [ESCTUIManager outLoginTUISDK]; + KPostNotification(KNotificationLoginStateChange, @NO); + +} + + + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillDetailViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillDetailViewController.m index 3b9bb27..c50aab6 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillDetailViewController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillDetailViewController.m @@ -7,12 +7,12 @@ #import "XJDBillDetailViewController.h" #import "BRDatePickerView.h" -#import "BillListTable.h" -#import "YXBillListModel.h" +#import "XJDBillListTable.h" +#import "XJDBillListModel.h" @interface XJDBillDetailViewController () -@property (nonatomic, strong) BillListTable * homeTable; +@property (nonatomic, strong) XJDBillListTable * homeTable; @property (nonatomic, assign) NSInteger pageNo; @@ -43,7 +43,7 @@ - (void)setupUI { - self.homeTable = [[BillListTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.homeTable = [[XJDBillListTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; MJWeakSelf [self.view addSubview:self.homeTable]; @@ -76,7 +76,7 @@ [parmDic setObject:@"3" forKey:@"type"]; [parmDic setObject:self.timeString forKey:@"date"]; - YXNetAPI * billAPI = [[YXNetAPI alloc] init:self tag:@"BillAPI" NeedToken:@""]; + XJDNetAPI * billAPI = [[XJDNetAPI alloc] init:self tag:@"BillAPI" NeedToken:@""]; [billAPI GetBillListData:parmDic]; @@ -102,7 +102,7 @@ NSDictionary * dic = response; - YXBillListModel * model = [YXBillListModel modelWithDictionary:dic]; + XJDBillListModel * model = [XJDBillListModel modelWithDictionary:dic]; self.homeTable.dataArray = model.records; } diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillListViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillListViewController.m index 826ab4e..d2fab59 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillListViewController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillListViewController.m @@ -6,13 +6,13 @@ // #import "XJDBillListViewController.h" -#import "BillListTable.h" +#import "XJDBillListTable.h" #import "XJDWithdrawCashDetailViewController.h" -#import "YXBillListModel.h" +#import "XJDBillListModel.h" @interface XJDBillListViewController () -@property (nonatomic, strong) BillListTable * homeTable; +@property (nonatomic, strong) XJDBillListTable * homeTable; @property (nonatomic, assign) NSInteger pageNo; @property (nonatomic, strong) NSMutableArray * dataArray; @@ -40,7 +40,7 @@ - (void)setupUI { - self.homeTable = [[BillListTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.homeTable = [[XJDBillListTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; MJWeakSelf self.homeTable.detailBlock = ^(NSString * _Nonnull billString) { @@ -77,7 +77,7 @@ [parmDic setObject:@(10) forKey:@"pageSize"]; [parmDic setObject:@"1" forKey:@"type"]; - YXNetAPI * billAPI = [[YXNetAPI alloc] init:self tag:@"BillAPI" NeedToken:@""]; + XJDNetAPI * billAPI = [[XJDNetAPI alloc] init:self tag:@"BillAPI" NeedToken:@""]; [billAPI GetBillListData:parmDic]; @@ -103,7 +103,7 @@ NSDictionary * dic = response; - YXBillListModel * model = [YXBillListModel modelWithDictionary:dic]; + XJDBillListModel * model = [XJDBillListModel modelWithDictionary:dic]; self.homeTable.dataArray = model.records; } diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillWithDrawViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillWithDrawViewController.m index fbb0256..d437fee 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillWithDrawViewController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDBillWithDrawViewController.m @@ -6,12 +6,12 @@ // #import "XJDBillWithDrawViewController.h" -#import "BillListTable.h" -#import "YXBillListModel.h" +#import "XJDBillListTable.h" +#import "XJDBillListModel.h" #import "XJDWithdrawCashDetailViewController.h" @interface XJDBillWithDrawViewController () -@property (nonatomic, strong) BillListTable * homeTable; +@property (nonatomic, strong) XJDBillListTable * homeTable; @property (nonatomic, assign) NSInteger pageNo; @property (nonatomic, strong) NSMutableArray * dataArray; @@ -41,7 +41,7 @@ - (void)setupUI { - self.homeTable = [[BillListTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.homeTable = [[XJDBillListTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; MJWeakSelf self.homeTable.detailBlock = ^(NSString * _Nonnull billString) { @@ -78,7 +78,7 @@ [parmDic setObject:@(10) forKey:@"pageSize"]; [parmDic setObject:@"2" forKey:@"type"]; - YXNetAPI * billAPI = [[YXNetAPI alloc] init:self tag:@"BillAPI" NeedToken:@""]; + XJDNetAPI * billAPI = [[XJDNetAPI alloc] init:self tag:@"BillAPI" NeedToken:@""]; [billAPI GetBillListData:parmDic]; @@ -104,7 +104,7 @@ NSDictionary * dic = response; - YXBillListModel * model = [YXBillListModel modelWithDictionary:dic]; + XJDBillListModel * model = [XJDBillListModel modelWithDictionary:dic]; self.homeTable.dataArray = model.records; } diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDWithdrawCashDetailViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDWithdrawCashDetailViewController.m index 40324ad..f7e9f14 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDWithdrawCashDetailViewController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/billDetail(账单明细)/XJDWithdrawCashDetailViewController.m @@ -6,13 +6,13 @@ // #import "XJDWithdrawCashDetailViewController.h" -#import "BillDtailTable.h" -#import "YXwithDrawDetailModel.h" +#import "XJDBillDtailTable.h" +#import "XJDWithDrawDetailModel.h" @interface XJDWithdrawCashDetailViewController () @property (nonatomic, strong) UILabel * moneyLabel; @property (nonatomic, strong) UILabel * aroundLabel; -@property (nonatomic, strong) BillDtailTable * homeTable; +@property (nonatomic, strong) XJDBillDtailTable * homeTable; @end @@ -60,7 +60,7 @@ - self.homeTable = [[BillDtailTable alloc] initWithFrame:CGRectMake(kRealValue(15), tishiLabel.bottom + kRealValue(22), kScreenWidth - kRealValue(30), kScreenHeight - tishiLabel.bottom - kRealValue(68) - kTopHeight) style:UITableViewStyleGrouped]; + self.homeTable = [[XJDBillDtailTable alloc] initWithFrame:CGRectMake(kRealValue(15), tishiLabel.bottom + kRealValue(22), kScreenWidth - kRealValue(30), kScreenHeight - tishiLabel.bottom - kRealValue(68) - kTopHeight) style:UITableViewStyleGrouped]; self.homeTable.layer.cornerRadius = 10; self.homeTable.layer.masksToBounds = true; [self.view addSubview:self.homeTable]; @@ -72,7 +72,7 @@ NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; [parmDic setObject:self.bill_id forKey:@"id"]; - YXNetAPI * deatilApi = [[YXNetAPI alloc] init:self tag:@"DETAILAPI" NeedToken:@""]; + XJDNetAPI * deatilApi = [[XJDNetAPI alloc] init:self tag:@"DETAILAPI" NeedToken:@""]; [deatilApi withDrawDetailsData:parmDic]; } @@ -96,7 +96,7 @@ NSDictionary * dic = response; - YXwithDrawDetailModel * model = [YXwithDrawDetailModel modelWithDictionary:dic]; + XJDWithDrawDetailModel * model = [XJDWithDrawDetailModel modelWithDictionary:dic]; self.moneyLabel.text =[NSString stringWithFormat:@"%@",model.paymentMoney] ; self.aroundLabel.text = [NSString stringWithFormat:@"到账:%@",model.realityMoney] ; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/workSetting(排班设置)/XJDworkSetingViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/workSetting(排班设置)/XJDworkSetingViewController.h new file mode 100644 index 0000000..39141cb --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/workSetting(排班设置)/XJDworkSetingViewController.h @@ -0,0 +1,16 @@ +// +// XJDworkSetingViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/6. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDworkSetingViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/workSetting(排班设置)/XJDworkSetingViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/workSetting(排班设置)/XJDworkSetingViewController.m new file mode 100644 index 0000000..a7736a3 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/controller/workSetting(排班设置)/XJDworkSetingViewController.m @@ -0,0 +1,490 @@ +// +// XJDworkSetingViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/6. +// + +#import "XJDworkSetingViewController.h" +#import "XJDWorkSettingModel.h" +#import "XJDCustomSchedulingViewController.h" + + +@interface XJDworkSetingViewController () + +@property (nonatomic, strong) UIScrollView * mainScrollview; + +@property (nonatomic, strong) UISwitch * rightSlider; + +@property (nonatomic, strong) UIView * workView; + +@property (nonatomic, strong) UIView * jumpView; + +@property (nonatomic, strong) UISwitch * jumpSwithch; + +@property (nonatomic, strong) UIButton * submitBtn; + +@property (nonatomic, strong) UIButton * customBtn; + + +@property (nonatomic, assign) BOOL isVideo; + +@property (nonatomic, assign) BOOL isJump; + +//7个id +@property (nonatomic, copy) NSString * oneID; +@property (nonatomic, copy) NSString * twoID; +@property (nonatomic, copy) NSString * threeID; +@property (nonatomic, copy) NSString * fourID; +@property (nonatomic, copy) NSString * fiveID; +@property (nonatomic, copy) NSString * sixID; +@property (nonatomic, copy) NSString * sevenID; +@property (nonatomic, copy) NSArray * peopleArray; + + +@end + +@implementation XJDworkSetingViewController + +#pragma mark:懒加载 + + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.navigationItem.title = @"视频排班"; + [self createUI]; + [self createData]; +} + +- (void)createUI { + + self.mainScrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; + self.mainScrollview.backgroundColor = CViewBgColor; + [self.view addSubview:self.mainScrollview]; + + UIView * workView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(12), kScreenWidth - kRealValue(30), kRealValue(382))]; + workView.layer.cornerRadius = 10; + workView.layer.masksToBounds = YES; + self.workView = workView; + workView.backgroundColor = KWhiteColor; + [self.mainScrollview addSubview:workView]; + + + NSArray * array = @[@"周一",@"周二",@"周三",@"周四",@"周五",@"周六",@"周天"]; + + CGFloat viewW = self.workView.width - kRealValue(30); + + for (int i = 0; i < array.count; i++) { + + UIView * weekView = [self createWorkView:CGRectMake(kRealValue(15), kRealValue(40) + 15 + kRealValue(45) * i, viewW, kRealValue(35)) withWeek:array[i] withAmTag:100 +i withPmTag:200 + i]; + [self.workView addSubview:weekView]; + + } + + UILabel * questionTitle = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), kRealValue(18),200, 15)]; + questionTitle.textAlignment = NSTextAlignmentLeft; + questionTitle.textColor = UIColorHex(#333333); + questionTitle.font = BOLDSYSTEMFONT(15); + questionTitle.text = @"视频咨询"; + [workView addSubview:questionTitle]; + + + self.rightSlider = [[UISwitch alloc] initWithFrame:CGRectMake(workView.width - kRealValue(52), kRealValue(11), kRealValue(40), 30)]; + [self.rightSlider setOn:NO animated:YES]; + [self.rightSlider setOnTintColor: UIColorHex(#59D5D4)]; + self.rightSlider.transform = CGAffineTransformMakeScale(0.6, 0.6); + self.isVideo = false; + [self.rightSlider addTarget:self action:@selector(switchChange:) forControlEvents:UIControlEventValueChanged]; + [workView addSubview:self.rightSlider]; + + + + + UIView * jumpView = [[UIView alloc] initWithFrame:CGRectMake(workView.left, workView.bottom + kRealValue(10), workView.width, kRealValue(44))]; + jumpView.layer.cornerRadius = 10.0; + jumpView.layer.masksToBounds = YES; + jumpView.backgroundColor = KWhiteColor; + self.jumpView = jumpView; + [self.mainScrollview addSubview:jumpView]; + + + UILabel * jumpLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), 0, 200, kRealValue(44))]; + jumpLabel.textColor = CFontColor1; + jumpLabel.text = @"自动跳过法定节假日?"; + jumpLabel.font = MEDIUMFONT(14); + jumpLabel.textAlignment = NSTextAlignmentLeft; + [jumpView addSubview:jumpLabel]; + + + + self.jumpSwithch = [[UISwitch alloc] initWithFrame:CGRectMake(jumpView.width - kRealValue(52), kRealValue(9), kRealValue(40), 30)]; + [self.jumpSwithch setOn:NO animated:YES]; + [self.jumpSwithch setOnTintColor: UIColorHex(#59D5D4)]; + self.jumpSwithch.transform = CGAffineTransformMakeScale(0.6, 0.6); + self.isJump = false; + [self.jumpSwithch addTarget:self action:@selector(jumpChange:) forControlEvents:UIControlEventValueChanged]; + [jumpView addSubview:self.jumpSwithch]; + + UIButton * submitBtn = [[UIButton alloc] initWithFrame:CGRectMake(20, jumpView.bottom + kRealValue(98), 160, 35)]; + submitBtn.backgroundColor = KWhiteColor; + submitBtn.layer.cornerRadius = 20; + submitBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + submitBtn.layer.borderWidth = 1.0f; + [submitBtn setTitle:@"生成排班" forState:UIControlStateNormal]; + [submitBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + submitBtn.centerX = self.view.centerX; + [submitBtn addTarget:self action:@selector(submitTimeAction) forControlEvents:UIControlEventTouchUpInside]; + submitBtn.titleLabel.font = SYSTEMFONT(14); + self.submitBtn = submitBtn; + [self.mainScrollview addSubview:submitBtn]; + +// UIButton * customBtn = [[UIButton alloc] initWithFrame:CGRectMake(20, submitBtn.bottom + kRealValue(10), 160, 35)]; +// customBtn.centerX = self.view.centerX; +// customBtn.titleLabel.font = SYSTEMFONT(14); +// customBtn.backgroundColor = KClearColor; +// [customBtn setTitle:@"自定义排班" forState:UIControlStateNormal]; +// [customBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; +// [customBtn addTarget:self action:@selector(customAction) forControlEvents:UIControlEventTouchUpInside]; +// [self.view addSubview:customBtn]; +// self.customBtn = customBtn; +// [self.mainScrollview addSubview:submitBtn]; + + self.mainScrollview.contentSize = CGSizeMake(kScreenWidth, submitBtn.bottom + kRealValue(22)); +} + + +- (void)createData { + + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"WEEKAPI" NeedToken:@""]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [workApi GetDoctorWorkSetting:parmDic]; + + +} + +- (UIView *)createWorkView:(CGRect)frame withWeek:(NSString *)week withAmTag:(NSInteger)amTag withPmTag:(NSInteger)pmTag { + + UIView * view = [[UIView alloc] initWithFrame:frame]; + view.layer.cornerRadius = 18; + view.backgroundColor = UIColorHex(#E0E0E0); + view.layer.masksToBounds = YES; + + UILabel * weekLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(26), 0, kRealValue(63), view.height)]; + weekLabel.textAlignment = NSTextAlignmentLeft; + weekLabel.textColor = UIColorHex(#333333); + weekLabel.font = SYSTEMFONT(13); + weekLabel.text = week; + [view addSubview:weekLabel]; + CGFloat amWidth = [XJDCommonUtils getLengthFromText:@"上午" andFontSize:13]; + UILabel * amLabel = [[UILabel alloc] initWithFrame:CGRectMake(weekLabel.right, 0, amWidth, view.height)]; + amLabel.text = @"上午"; + amLabel.textAlignment = NSTextAlignmentLeft; + amLabel.textColor = UIColorHex(#333333); + amLabel.font = SYSTEMFONT(13); + [view addSubview:amLabel]; + + UITextField * pepleField = [[UITextField alloc] initWithFrame:CGRectMake(amLabel.right +5 , 5, 38, view.height - 10)]; + pepleField.backgroundColor = KWhiteColor; + pepleField.layer.cornerRadius = 5.0; + pepleField.layer.masksToBounds = YES; + pepleField.textAlignment = NSTextAlignmentCenter; + pepleField.font = SYSTEMFONT(13); + pepleField.keyboardType = UIKeyboardTypeNumberPad; + pepleField.tag = amTag; + [view addSubview:pepleField]; + + CGFloat peoWidth = [XJDCommonUtils getLengthFromText:@"人" andFontSize:13]; + UILabel * peoLabel = [[UILabel alloc] initWithFrame:CGRectMake(pepleField.right + 5, 0, peoWidth, view.height)]; + peoLabel.text = @"人"; + peoLabel.textAlignment = NSTextAlignmentLeft; + peoLabel.textColor = UIColorHex(#333333); + peoLabel.font = SYSTEMFONT(13); + [view addSubview:peoLabel]; + + UILabel * rightPeoLabel = [[UILabel alloc] initWithFrame:CGRectMake(view.width - kRealValue(23) - peoWidth, 0, peoWidth, view.height)]; + rightPeoLabel.text = @"人"; + rightPeoLabel.textAlignment = NSTextAlignmentLeft; + rightPeoLabel.textColor = UIColorHex(#333333); + rightPeoLabel.font = SYSTEMFONT(13); + + [view addSubview:rightPeoLabel]; + + UITextField * pmField = [[UITextField alloc] initWithFrame:CGRectMake(rightPeoLabel.left - 5 - 38 , 5, 38, view.height - 10)]; + pmField.backgroundColor = KWhiteColor; + pmField.layer.cornerRadius = 5.0; + pmField.textAlignment = NSTextAlignmentCenter; + pmField.font = SYSTEMFONT(13); + pmField.layer.masksToBounds = YES; + pmField.tag = pmTag; + pmField.keyboardType = UIKeyboardTypeNumberPad; + [view addSubview:pmField]; + + UILabel * pmLabel = [[UILabel alloc] initWithFrame:CGRectMake(pmField.left - amWidth - 5, 0, amWidth, view.height)]; + pmLabel.text = @"下午"; + pmLabel.textAlignment = NSTextAlignmentLeft; + pmLabel.textColor = UIColorHex(#333333); + pmLabel.font = SYSTEMFONT(13); + [view addSubview:pmLabel]; + + return view; +} + +- (void) switchChange:(UISwitch*)sw { + + self.isVideo = sw.on; + + +} + +- (void)jumpChange:(UISwitch*)sw { + + self.isJump = sw.on; +} + + +- (void)submitTimeAction { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + NSMutableArray * dataArray = [[NSMutableArray alloc] init]; + + if (self.isVideo == true) { + //有时间用模型吧 + + //周一 + UITextField * oneAmField = [self.view viewWithTag:100]; + UITextField * onePmField = [self.view viewWithTag:200]; + if ([oneAmField.text integerValue] > 0 ||[onePmField.text integerValue] > 0 ) { + NSString * oneDic = [self createSubmitData:oneAmField.text PMtext:onePmField.text Withweek:@"1" withWeekID:self.oneID]; + [dataArray addObject:oneDic]; + } + //周二 + UITextField * twoAmField = [self.view viewWithTag:101]; + UITextField * twoPmField = [self.view viewWithTag:201]; + if ([twoAmField.text integerValue] > 0 ||[twoPmField.text integerValue] > 0 ) { + NSString * twoDic = [self createSubmitData:twoAmField.text PMtext:twoPmField.text Withweek:@"2" withWeekID:self.twoID]; + [dataArray addObject:twoDic]; + } + //周三 + UITextField * threeAmField = [self.view viewWithTag:102]; + UITextField * threePmField = [self.view viewWithTag:202]; + if ([threeAmField.text integerValue] > 0 ||[threePmField.text integerValue] > 0 ) { + NSString * threeDic = [self createSubmitData:threeAmField.text PMtext:threePmField.text Withweek:@"3" withWeekID:self.threeID]; + [dataArray addObject:threeDic]; + } + //周四 + UITextField * fourAmField = [self.view viewWithTag:103]; + UITextField * fourPmField = [self.view viewWithTag:203]; + if ([fourAmField.text integerValue] > 0 ||[fourPmField.text integerValue] > 0 ) { + NSString * fourDic = [self createSubmitData:fourAmField.text PMtext:fourPmField.text Withweek:@"4" withWeekID:self.fourID]; + [dataArray addObject:fourDic]; + } + //周五 + UITextField * fiveAmField = [self.view viewWithTag:104]; + UITextField * fivePmField = [self.view viewWithTag:204]; + if ([fiveAmField.text integerValue] > 0 ||[fivePmField.text integerValue] > 0 ) { + NSString * fiveDic = [self createSubmitData:fiveAmField.text PMtext:fivePmField.text Withweek:@"5" withWeekID:self.fiveID]; + [dataArray addObject:fiveDic]; + } + //周六 + UITextField * sixAmField = [self.view viewWithTag:105]; + UITextField * sixPmField = [self.view viewWithTag:205]; + if ([sixAmField.text integerValue] > 0 ||[sixPmField.text integerValue] > 0 ) { + NSString * sixDic = [self createSubmitData:sixAmField.text PMtext:sixPmField.text Withweek:@"6" withWeekID:self.sixID]; + [dataArray addObject:sixDic]; + } + //周天 + UITextField * sevenAmField = [self.view viewWithTag:106]; + UITextField * sevenPmField = [self.view viewWithTag:206]; + if ([sevenAmField.text integerValue] > 0 ||[sevenPmField.text integerValue] > 0 ) { + NSString * sevenDic = [self createSubmitData:sevenAmField.text PMtext:sevenPmField.text Withweek:@"7" withWeekID:self.sevenID]; + [dataArray addObject:sevenDic]; + } + + if (dataArray.count == 0) { + [EasyTextView showErrorText:@"请输入就诊人数"]; + return; + } + // 创建一个包含对象的数组 + [parmDic setObject:dataArray forKey:@"list"]; + + } + else + { + NSArray * array = [NSArray modelArrayWithClass:[XJDWorkTimeModel class] json:self.peopleArray]; + + for (XJDWorkTimeModel * model in self.peopleArray) { + NSString * jsonString = [model modelToJSONObject]; + [dataArray addObject:jsonString]; + } + [parmDic setObject:dataArray forKey:@"list"]; + } +// //是否开启音视频 +// self.isVideo; +// //是否自动跳过节假日 +// self.isJump; +// tfDefault 自排班已去掉 + [parmDic setObject:@(1) forKey:@"audioStatus"]; + + if (self.isVideo == true) { + [parmDic setObject:@(1) forKey:@"audioStatus"]; + + }else if (self.isVideo == false) { + [parmDic setObject:@(0) forKey:@"audioStatus"]; + } + + + if (self.isJump == true) { + [parmDic setObject:@(1) forKey:@"tfJumpHoliday"]; + + }else if (self.isJump == false) { + [parmDic setObject:@(0) forKey:@"tfJumpHoliday"]; + } + + [parmDic setObject:@(0) forKey:@"tfDefault"]; + + [self showMBProgressHUDWithString:@"正在设置" autoHidden:false]; + XJDNetAPI * workApi = [[XJDNetAPI alloc] init:self tag:@"WorkAPI" NeedToken:@""]; + + + + [workApi PostDoctorWorkTime:parmDic]; + + +} + +- (NSString *)createSubmitData:(NSString *)amText + PMtext:(NSString *)pmText + Withweek:(NSString *)week + withWeekID:(NSString *)weekID{ + + NSMutableDictionary * dic = [[NSMutableDictionary alloc] init]; + NSInteger type = 0; + if ([amText integerValue] > 0 || [pmText intValue] > 0) { + + if ([amText integerValue] > 0) { + [dic setObject:[NSString stringWithFormat:@"%@",amText] forKey:@"amNum"]; + type = 0; + } + if ([pmText integerValue] > 0) { + [dic setObject:[NSString stringWithFormat:@"%@",pmText] forKey:@"pmNum"]; + type = 1; + } + if ([amText integerValue] > 0 && [pmText intValue] > 0) { + type = 2; + } + [dic setObject:[NSString stringWithFormat:@"%@",weekID] forKey:@"id"]; + [dic setObject:@(type) forKey:@"type"]; + [dic setObject:week forKey:@"week"]; + [dic setObject:@(self.isJump) forKey:@"tfJumpHoliday"]; + [dic setObject:@(self.isVideo) forKey:@"audioStatus"]; + + } + XJDWorkTimeModel * model = [XJDWorkTimeModel modelWithDictionary:dic]; + NSString * jsonString = [model modelToJSONObject]; + return jsonString; +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + if ([tag isEqualToString:@"WorkAPI"]) { + [self hiddenAllMBProgressHUD]; + [self showMBProgressHUDOnlyWithString:response]; + } + if ([tag isEqualToString:@"WEEKAPI"]) { + + NSDictionary * resDic = response; + + XJDWorkSettingModel * model = [XJDWorkSettingModel modelWithDictionary:resDic]; + + [self.jumpSwithch setOn:[model.tfJumpHoliday boolValue] animated:YES]; + [self.rightSlider setOn:[model.audioStatus boolValue] animated:YES]; + + [self switchChange:self.rightSlider]; + self.peopleArray = model.list; + for (XJDWorkTimeModel * timeModel in model.list) { + + //周一 + [self haveDoctorWorkTime:timeModel]; + + } + } + + +} + +- (void)haveDoctorWorkTime:(XJDWorkTimeModel *)timeModel { + + if ([timeModel.week intValue] == 1) { + self.oneID = timeModel.work_id; + UITextField * oneAmField = [self.view viewWithTag:100]; + UITextField * onePmField = [self.view viewWithTag:200]; + oneAmField.text = timeModel.amNum; + onePmField.text = timeModel.pmNum; + } + if ([timeModel.week intValue] == 2) { + self.twoID = timeModel.work_id; + UITextField * twoAmField = [self.view viewWithTag:101]; + UITextField * twoPmField = [self.view viewWithTag:201]; + twoAmField.text = timeModel.amNum; + twoPmField.text = timeModel.pmNum; + } + if ([timeModel.week intValue] == 3) { + self.threeID = timeModel.work_id; + UITextField * threeAmField = [self.view viewWithTag:102]; + UITextField * threePmField = [self.view viewWithTag:202]; + threeAmField.text = timeModel.amNum; + threePmField.text = timeModel.pmNum; + } + if ([timeModel.week intValue] == 4) { + self.fourID = timeModel.work_id; + UITextField * fourAmField = [self.view viewWithTag:103]; + UITextField * fourPmField = [self.view viewWithTag:203]; + fourAmField.text = timeModel.amNum; + fourPmField.text = timeModel.pmNum; + } + if ([timeModel.week intValue] == 5) { + self.fiveID = timeModel.work_id; + UITextField * fiveAmField = [self.view viewWithTag:104]; + UITextField * fivePmField = [self.view viewWithTag:204]; + fiveAmField.text = timeModel.amNum; + fivePmField.text = timeModel.pmNum; + } + if ([timeModel.week intValue] == 6) { + self.sixID = timeModel.work_id; + UITextField * sixAmField = [self.view viewWithTag:105]; + UITextField * sixPmField = [self.view viewWithTag:205]; + sixAmField.text = timeModel.amNum; + sixPmField.text = timeModel.pmNum; + } + if ([timeModel.week intValue] == 7) { + self.sevenID = timeModel.work_id; + UITextField * sevenAmField = [self.view viewWithTag:106]; + UITextField * sevenPmField = [self.view viewWithTag:206]; + sevenAmField.text = timeModel.amNum; + sevenPmField.text = timeModel.pmNum; + } + + +} + +- (void)customAction { + + XJDCustomSchedulingViewController * customvc = [[XJDCustomSchedulingViewController alloc] init]; + + [self.navigationController pushViewController:customvc animated:YES]; + +} + + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDCancelReasonModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDCancelReasonModel.h new file mode 100644 index 0000000..2df0546 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDCancelReasonModel.h @@ -0,0 +1,21 @@ +// +// XJDCancelReasonModel.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDCancelReasonModel : NSObject + +@property (nonatomic, strong) NSString * value; +@property (nonatomic, strong) NSString * text; +@property (nonatomic, strong) NSString * label; +@property (nonatomic, strong) NSString * title; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDCancelReasonModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDCancelReasonModel.m new file mode 100644 index 0000000..dd0be35 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDCancelReasonModel.m @@ -0,0 +1,12 @@ +// +// XJDCancelReasonModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/17. +// + +#import "XJDCancelReasonModel.h" + +@implementation XJDCancelReasonModel + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXDoctorInfoModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDDoctorInfoModel.h similarity index 87% rename from DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXDoctorInfoModel.h rename to DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDDoctorInfoModel.h index c858182..24a592e 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXDoctorInfoModel.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDDoctorInfoModel.h @@ -1,5 +1,5 @@ // -// YXDoctorInfoModel.h +// XJDDoctorInfoModel.h // healthQuestion // // Created by 仁康信息 on 2023/8/4. @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXDoctorGoodSicknessModel : NSObject +@interface XJDDoctorGoodSicknessModel : NSObject @property (nonatomic, copy) NSString * sicks_id; @@ -20,13 +20,13 @@ NS_ASSUME_NONNULL_BEGIN @end -@interface YXDoctorInfoModel : NSObject +@interface XJDDoctorInfoModel : NSObject @property (nonatomic, copy) NSString * doctor_Id; @property (nonatomic, copy) NSString * sex; -@property (nonatomic, strong) NSArray * goodAtSicknessName; +@property (nonatomic, strong) NSArray * goodAtSicknessName; @property (nonatomic, copy) NSString * doctorJob_dictText; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDDoctorInfoModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDDoctorInfoModel.m new file mode 100644 index 0000000..6d3c768 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDDoctorInfoModel.m @@ -0,0 +1,42 @@ +// +// XJDDoctorInfoModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/4. +// + +#import "XJDDoctorInfoModel.h" + + +@implementation XJDDoctorGoodSicknessModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"sicks_id" :@"id"}; + return dic; +} + + +@end + +@implementation XJDDoctorInfoModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"doctor_Id" :@"id"}; + return dic; +} + + + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + + return @{@"goodAtSicknessName":[XJDDoctorGoodSicknessModel class], + }; + +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/HQHomePageModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHomePageModel.h similarity index 83% rename from DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/HQHomePageModel.h rename to DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHomePageModel.h index 4eb17db..d00970a 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/HQHomePageModel.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHomePageModel.h @@ -1,5 +1,5 @@ // -// YXHomePageModel.h +// XJDHomePageModel.h // healthQuestion // // Created by 仁康信息 on 2022/9/9. @@ -8,7 +8,7 @@ #import NS_ASSUME_NONNULL_BEGIN -@interface YXHomePageModel : NSObject +@interface XJDHomePageModel : NSObject @property (nonatomic, copy) NSString * imageName; @@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN @end -@interface HQProjectModel : NSObject +@interface XJDProjectModel : NSObject @property (nonatomic, copy) NSString * imageName; @@ -30,7 +30,7 @@ NS_ASSUME_NONNULL_BEGIN @end -@interface HQSmallHelpModel : NSObject +@interface XJDSmallHelpModel : NSObject @property (nonatomic, copy) NSString * groupId; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHomePageModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHomePageModel.m new file mode 100644 index 0000000..923e179 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHomePageModel.m @@ -0,0 +1,32 @@ +// +// XJDHomePageModel.m +// healthQuestion +// +// Created by 仁康信息 on 2022/9/9. +// + +#import "XJDHomePageModel.h" + +@implementation XJDHomePageModel + +@end + + + +@implementation XJDProjectModel + +@end + + +@implementation XJDSmallHelpModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"help_Id" :@"id"}; + return dic; +} + +@end + + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHospitalModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHospitalModel.h new file mode 100644 index 0000000..dab82f2 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHospitalModel.h @@ -0,0 +1,25 @@ +// +// XJDHospitalModel.h +// healthQuestion +// +// Created by 仁康信息 on 2022/9/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDHospitalModel : NSObject + +@property (nonatomic, copy) NSString * hospitalName; + +@property (nonatomic, copy) NSString * hospitalImage; + +@property (nonatomic, copy) NSString * hospitalId; + +@property (nonatomic, assign) BOOL isChoose; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHospitalModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHospitalModel.m new file mode 100644 index 0000000..9ed1818 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDHospitalModel.m @@ -0,0 +1,18 @@ +// +// XJDHospitalModel.m +// healthQuestion +// +// Created by 仁康信息 on 2022/9/19. +// + +#import "XJDHospitalModel.h" + +@implementation XJDHospitalModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"hospitalId" :@"id"}; + return dic; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDProjectListModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDProjectListModel.h new file mode 100644 index 0000000..0767077 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDProjectListModel.h @@ -0,0 +1,33 @@ +// +// XJDProjectListModel.h +// healthQuestion +// +// Created by 仁康信息 on 2022/10/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDSubProjectListModel : NSObject + +@property (nonatomic, copy) NSString * imageName; + +@property (nonatomic, copy) NSString * projectName; + +@end + +@interface XJDProjectListModel : NSObject + +@property (nonatomic, assign) BOOL isShow; + +@property (nonatomic, assign) BOOL isSelected; + +@property (nonatomic, copy) NSString * projectName; + +@property (nonatomic, strong) NSArray* subData; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDProjectListModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDProjectListModel.m new file mode 100644 index 0000000..cd5c36e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDProjectListModel.m @@ -0,0 +1,27 @@ +// +// XJDProjectListModel.m +// healthQuestion +// +// Created by 仁康信息 on 2022/10/12. +// + +#import "XJDProjectListModel.h" + +@implementation XJDSubProjectListModel + +@end + + + +@implementation XJDProjectListModel + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + + return @{@"subData":[XJDSubProjectListModel class], + }; + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/QuestionBodyReportModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionBodyReportModel.h similarity index 81% rename from DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/QuestionBodyReportModel.h rename to DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionBodyReportModel.h index 1261807..1807fbf 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/QuestionBodyReportModel.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionBodyReportModel.h @@ -1,5 +1,5 @@ // -// YXQuestionBodyReportModel.h +// XJDQuestionBodyReportModel.h // healthQuestion // // Created by 仁康信息 on 2023/8/16. @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXQuestionBodyReportModel : NSObject +@interface XJDQuestionBodyReportModel : NSObject @property (nonatomic, strong) NSString * insertdate; @property (nonatomic, strong) NSString * tjrq; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionBodyReportModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionBodyReportModel.m new file mode 100644 index 0000000..55a836e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionBodyReportModel.m @@ -0,0 +1,12 @@ +// +// XJDQuestionBodyReportModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/16. +// + +#import "XJDQuestionBodyReportModel.h" + +@implementation XJDQuestionBodyReportModel + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/QuestionRecordModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionRecordModel.h similarity index 95% rename from DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/QuestionRecordModel.h rename to DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionRecordModel.h index 34d7327..083c662 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/QuestionRecordModel.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionRecordModel.h @@ -1,5 +1,5 @@ // -// YXQuestionRecordModel.h +// XJDQuestionRecordModel.h // healthQuestion // // Created by 仁康信息 on 2023/8/15. @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXQuestionRecordModel : NSObject +@interface XJDQuestionRecordModel : NSObject @property (nonatomic, copy) NSString * record_id; @property (nonatomic, copy) NSString * memberId; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionRecordModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionRecordModel.m new file mode 100644 index 0000000..84cea7f --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionRecordModel.m @@ -0,0 +1,19 @@ +// +// XJDQuestionRecordModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/15. +// + +#import "XJDQuestionRecordModel.h" + +@implementation XJDQuestionRecordModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"record_id" :@"id"}; + return dic; +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionStaticsModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionStaticsModel.h similarity index 82% rename from DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionStaticsModel.h rename to DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionStaticsModel.h index c827962..321d5c4 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionStaticsModel.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionStaticsModel.h @@ -1,5 +1,5 @@ // -// YXQuestionStaticsModel.h +// XJDQuestionStaticsModel.h // healthQuestion // // Created by 仁康信息 on 2023/8/8. @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXQuestionStaticsModel : NSObject +@interface XJDQuestionStaticsModel : NSObject @property (nonatomic, copy) NSString * total; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionStaticsModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionStaticsModel.m new file mode 100644 index 0000000..59283f8 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDQuestionStaticsModel.m @@ -0,0 +1,12 @@ +// +// XJDQuestionStaticsModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/8. +// + +#import "XJDQuestionStaticsModel.h" + +@implementation XJDQuestionStaticsModel + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecordIMListDateModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecordIMListDateModel.h new file mode 100644 index 0000000..378765b --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecordIMListDateModel.h @@ -0,0 +1,50 @@ +// +// RecordIMListDateModel.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDRecordIMListDateModel : NSObject +@property (nonatomic, strong) NSString * Record_id; +@property (nonatomic, strong) NSString * rejectReason; +@property (nonatomic, strong) NSString * fromAccount; +@property (nonatomic, strong) NSString * memberName; +@property (nonatomic, strong) NSString * hospitalLevel; +@property (nonatomic, strong) NSString * contentStatus; +@property (nonatomic, strong) NSString * schedulingDateId; +@property (nonatomic, strong) NSString * amPm; +@property (nonatomic, strong) NSString * toAccountName; +@property (nonatomic, strong) NSString * memberSex; +@property (nonatomic, strong) NSString * contentType; +@property (nonatomic, strong) NSString * reasonType; + +@property (nonatomic, strong) NSString * week; +@property (nonatomic, strong) NSString * toAccount; +@property (nonatomic, strong) NSString * sessionType; +@property (nonatomic, strong) NSString * medicalRecordsId; +@property (nonatomic, strong) NSString * toAccountHead; +@property (nonatomic, strong) NSString * toAccountTitle; +@property (nonatomic, strong) NSString * createTimeLong; +@property (nonatomic, strong) NSString * tfOwn; +@property (nonatomic, strong) NSString * memberId; + +@property (nonatomic, strong) NSString * doctorStartTime; +@property (nonatomic, strong) NSString * departmentName; +@property (nonatomic, strong) NSString * tfReply; +@property (nonatomic, strong) NSString * doctorEndTimeLong; +@property (nonatomic, strong) NSString * sessionDate; +@property (nonatomic, strong) NSString * imId; +@property (nonatomic, strong) NSString * createTime; +@property (nonatomic, strong) NSString * memberAge; +@property (nonatomic, strong) NSString * resourceName; + +@property (nonatomic, strong) NSString * unRedMessage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecordIMListDateModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecordIMListDateModel.m new file mode 100644 index 0000000..720fe0a --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecordIMListDateModel.m @@ -0,0 +1,19 @@ +// +// YXRecordIMListDateModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/15. +// + +#import "XJDRecordIMListDateModel.h" + +@implementation XJDRecordIMListDateModel + + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"Record_id" :@"id"}; + return dic; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecoredListDetailModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecoredListDetailModel.h new file mode 100644 index 0000000..229cfeb --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecoredListDetailModel.h @@ -0,0 +1,142 @@ +// +// XJDRecoredListDetailModel.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDRecoredDetailConsessionModel : NSObject + +@property (nonatomic, copy) NSString * consession_id; + +@property (nonatomic, copy) NSString * memberId; + +@property (nonatomic, copy) NSString * toAccount; + +@property (nonatomic, copy) NSString * fromAccount; + +@property (nonatomic, copy) NSString * memberName; + +@property (nonatomic, copy) NSString * memberSex; + +@property (nonatomic, copy) NSString * memberAge; + +@property (nonatomic, copy) NSString * createTime; + +@property (nonatomic, copy) NSString * sessionDate; + +@property (nonatomic, copy) NSString * week; + +@property (nonatomic, copy) NSString * amPm; + +@property (nonatomic, copy) NSString * sessionType; + +@property (nonatomic, copy) NSString * weight; + +@property (nonatomic, copy) NSString * contentStatus; + +@property (nonatomic, copy) NSString * reasonType; + +@property (nonatomic, copy) NSString * rejectReason; + +@property (nonatomic, copy) NSString * imId; + +@property (nonatomic, copy) NSString * doctorStartTimeLong; + +@property (nonatomic, copy) NSString * doctorEndTimeLong; +@property (nonatomic, copy) NSString * sessionDateLong; +@property (nonatomic, copy) NSString * contentType; +@property (nonatomic, copy) NSString * doctorStartTime; + +@end + + +@interface XJDRecoredconMedicalRecordsListDO : NSObject + +@property (nonatomic, copy) NSString * dangan_id; +@property (nonatomic, copy) NSString * recordsName; +@property (nonatomic, copy) NSString * medicalDescribe; +@property (nonatomic, copy) NSString * tfPermission; +@property (nonatomic, copy) NSString * image; +@property (nonatomic, copy) NSString * createTime; +@property (nonatomic, copy) NSString * haveTimeValue; +@property (nonatomic, copy) NSString * tfLookValue; +@property (nonatomic, copy) NSString * tfLook; +@property (nonatomic, copy) NSString * desire; +@property (nonatomic, copy) NSString * lookOffice; +@property (nonatomic, copy) NSString * lookMedicalName; + +@end + +@interface XJDRecoredDetailHealthModel : NSObject + +@property (nonatomic, strong) NSString * answerValue; +@property (nonatomic, strong) NSString * answerKey; + +@end + + +@interface XJDRecoredDetailIMListModel : NSObject + + +@property (nonatomic, copy) NSString * endTime; + +@property (nonatomic, copy) NSString * startTime; + +@property (nonatomic, copy) NSString * endTimeLong; + +@property (nonatomic, copy) NSString * startTimLong; + +@property (nonatomic, copy) NSString * type; // 1约定时间 2通话时长 + + +@end + +@interface XJDRecoredListDetailModel : NSObject + +@property (nonatomic, strong) NSArray * imList; + +@property (nonatomic, strong) NSArray * answer; + +@property (nonatomic, strong) NSDictionary * conSession; + +@property (nonatomic, strong) NSDictionary * conFamilyMembersDO; + +@property (nonatomic, strong) NSDictionary * conMedicalRecordsListDO; + +@property (nonatomic, strong) NSDictionary * conMedicalRecordsDO; + +@property (nonatomic, copy) NSString * idNo; + +@property (nonatomic, copy) NSString * conEvaluateDO; + +@property (nonatomic, copy) NSString * createTime; + +@end + + +@interface XJDReocrdconFamilyMembersDO : NSObject + +@property (nonatomic, copy) NSString * name; + +@property (nonatomic, copy) NSString * gender; + +@property (nonatomic, copy) NSString * height; + +@property (nonatomic, copy) NSString * weight; + +@property (nonatomic, copy) NSString * familyRelation; + +@property (nonatomic, copy) NSString * groupId; + +@property (nonatomic, copy) NSString * age; + +@property (nonatomic, copy) NSString * family_id; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecoredListDetailModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecoredListDetailModel.m new file mode 100644 index 0000000..55bd989 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDRecoredListDetailModel.m @@ -0,0 +1,86 @@ +// +// XJDRecoredListDetailModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/16. +// + +#import "XJDRecoredListDetailModel.h" + +@implementation XJDRecoredDetailConsessionModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"consession_id" :@"id"}; + return dic; +} + +@end +// +@implementation XJDRecoredconMedicalRecordsListDO + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"dangan_id" :@"id"}; + return dic; +} + + +@end + + +@implementation XJDRecoredDetailHealthModel + +//+ (NSDictionary *)modelContainerPropertyGenericClass +//{ +// +// return @{ +// @"childList":[QuestionOptionChildListModel class], +// +// }; +//} +// +//+ (NSDictionary *)modelCustomPropertyMapper +//{ +// NSDictionary * dic =@{@"option_id" :@"id"}; +// return dic; +//} + +@end + + +@implementation XJDRecoredDetailIMListModel + + + +@end + + +@implementation XJDRecoredListDetailModel + + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + + return @{@"imList":[XJDRecoredDetailIMListModel class], + @"answer":[XJDRecoredDetailHealthModel class], + }; + +} +@end + +@implementation XJDReocrdconFamilyMembersDO + + + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"family_id" :@"id"}; + return dic; +} + + +@end + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopReasonModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopReasonModel.h new file mode 100644 index 0000000..8570680 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopReasonModel.h @@ -0,0 +1,25 @@ +// +// YXStopReasonModel.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDStopReasonModel : NSObject + +@property (nonatomic, copy) NSString * value; + +@property (nonatomic, copy) NSString * label; + +@property (nonatomic, copy) NSString * title; + +@property (nonatomic, copy) NSString * text; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopReasonModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopReasonModel.m new file mode 100644 index 0000000..2993339 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopReasonModel.m @@ -0,0 +1,12 @@ +// +// XJDStopReasonModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/9. +// + +#import "XJDStopReasonModel.h" + +@implementation XJDStopReasonModel + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/StopServiceModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopServiceModel.h similarity index 82% rename from DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/StopServiceModel.h rename to DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopServiceModel.h index 6247a36..6a06759 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/StopServiceModel.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopServiceModel.h @@ -1,5 +1,5 @@ // -// YXStopServiceModel.h +// XJDStopServiceModel.h // healthQuestion // // Created by 仁康信息 on 2023/8/9. @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXStopServiceListModel : NSObject +@interface XJDStopServiceListModel : NSObject @property (nonatomic, copy) NSString * record_id; @@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN @end -@interface YXStopServiceModel : NSObject +@interface XJDStopServiceModel : NSObject @property (nonatomic, strong) NSArray * orders; @@ -46,7 +46,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, assign) NSInteger total; -@property (nonatomic, strong) NSArray * records; +@property (nonatomic, strong) NSArray * records; @end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopServiceModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopServiceModel.m new file mode 100644 index 0000000..111c421 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDStopServiceModel.m @@ -0,0 +1,33 @@ +// +// XJDStopServiceModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/9. +// + +#import "XJDStopServiceModel.h" + +@implementation XJDStopServiceListModel + + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"record_id" :@"id"}; + return dic; +} + + +@end + +@implementation XJDStopServiceModel + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + + return @{@"records":[XJDStopServiceListModel class], + }; + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDToolsModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDToolsModel.h new file mode 100644 index 0000000..470ecb0 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDToolsModel.h @@ -0,0 +1,21 @@ +// +// XJDToolsModel.h +// healthQuestion +// +// Created by 仁康信息 on 2022/9/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDToolsModel : NSObject + +/** + * 标题 + */ +@property (nonatomic, copy) NSString *title; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDToolsModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDToolsModel.m new file mode 100644 index 0000000..5a3488b --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDToolsModel.m @@ -0,0 +1,13 @@ +// +// XJDToolsModel.m +// healthQuestion +// +// Created by 仁康信息 on 2022/9/28. +// + +#import "XJDToolsModel.h" + +@implementation XJDToolsModel + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/withDrawDetailModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWithDrawDetailModel.h similarity index 97% rename from DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/withDrawDetailModel.h rename to DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWithDrawDetailModel.h index 7652421..ccbe0dd 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/withDrawDetailModel.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWithDrawDetailModel.h @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXwithDrawDetailModel : NSObject +@interface XJDWithDrawDetailModel : NSObject @property (nonatomic, copy) NSString * wraw_Id; @property (nonatomic, copy) NSString * sessionId; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWithDrawDetailModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWithDrawDetailModel.m new file mode 100644 index 0000000..4983d0a --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWithDrawDetailModel.m @@ -0,0 +1,19 @@ +// +// withDrawDetailModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/18. +// + +#import "XJDWithDrawDetailModel.h" + +@implementation XJDWithDrawDetailModel + + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"wraw_Id" :@"id"}; + return dic; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWorkSettingModel.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWorkSettingModel.h new file mode 100644 index 0000000..13d28c5 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWorkSettingModel.h @@ -0,0 +1,50 @@ +// +// XJDWorkSettingModel.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDWorkTimeModel : NSObject + +@property (nonatomic, copy) NSString * amNum; + +@property (nonatomic, copy) NSString * pmNum; + +@property (nonatomic, copy) NSString * week; + +@property (nonatomic, copy) NSString * checked; + +@property (nonatomic, copy) NSString * consultSwitchOn; + +@property (nonatomic, copy) NSString * itemType; + +@property (nonatomic, copy) NSString * tfDefault; + +@property (nonatomic, copy) NSString * tfJumpHoliday; + +@property (nonatomic, copy) NSString * type; + +@property (nonatomic, copy) NSString * timePeriod; + +@property (nonatomic, copy) NSString * work_id; + +@end + +@interface XJDWorkSettingModel : NSObject + +@property (nonatomic, copy) NSString * tfDefault; + +@property (nonatomic, copy) NSString * audioStatus; + +@property (nonatomic, copy) NSString * tfJumpHoliday; + +@property (nonatomic, strong) NSArray * list; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWorkSettingModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWorkSettingModel.m new file mode 100644 index 0000000..6bd3c79 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/XJDWorkSettingModel.m @@ -0,0 +1,35 @@ +// +// XJDWorkSettingModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/7. +// + +#import "XJDWorkSettingModel.h" + + +@implementation XJDWorkTimeModel + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"work_id" :@"id"}; + return dic; +} + + +@end + +@implementation XJDWorkSettingModel + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + + return @{@"list":[XJDWorkTimeModel class], + }; + +} + + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXCancelReasonModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXCancelReasonModel.m deleted file mode 100644 index 8213e4c..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXCancelReasonModel.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// YXCancelReasonModel.m -// healthQuestion -// -// Created by 仁康信息 on 2023/8/17. -// - -#import "YXCancelReasonModel.h" - -@implementation YXCancelReasonModel - -@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionBodyReportModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionBodyReportModel.m deleted file mode 100644 index d1a06ff..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionBodyReportModel.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// YXQuestionBodyReportModel.m -// healthQuestion -// -// Created by 仁康信息 on 2023/8/16. -// - -#import "YXQuestionBodyReportModel.h" - -@implementation YXQuestionBodyReportModel - -@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionStaticsModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionStaticsModel.m deleted file mode 100644 index c02ef60..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXQuestionStaticsModel.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// YXQuestionStaticsModel.m -// healthQuestion -// -// Created by 仁康信息 on 2023/8/8. -// - -#import "YXQuestionStaticsModel.h" - -@implementation YXQuestionStaticsModel - -@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXStopReasonModel.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXStopReasonModel.m deleted file mode 100644 index c3c785d..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/model/YXStopReasonModel.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// YXStopReasonModel.m -// healthQuestion -// -// Created by 仁康信息 on 2023/8/9. -// - -#import "YXStopReasonModel.h" - -@implementation YXStopReasonModel - -@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BasicHealthInfo(基本健康信息)/XJDBasicHealthInfoView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BasicHealthInfo(基本健康信息)/XJDBasicHealthInfoView.h new file mode 100644 index 0000000..c2be6ca --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BasicHealthInfo(基本健康信息)/XJDBasicHealthInfoView.h @@ -0,0 +1,20 @@ +// +// XJDBasicHealthInfoView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDBasicHealthInfoView : UIView + +@property (nonatomic, strong) NSArray * dataArray; + +@property (nonatomic, assign) CGFloat healthHeight; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BasicHealthInfo(基本健康信息)/XJDBasicHealthInfoView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BasicHealthInfo(基本健康信息)/XJDBasicHealthInfoView.m new file mode 100644 index 0000000..d889891 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BasicHealthInfo(基本健康信息)/XJDBasicHealthInfoView.m @@ -0,0 +1,135 @@ +// +// XJDBasicHealthInfoView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import "XJDBasicHealthInfoView.h" +#import "XJDRecoredListDetailModel.h" + +@interface XJDBasicHealthInfoView () + +@property (nonatomic, strong) NSMutableArray * leftArray; + +@property (nonatomic, strong) NSMutableArray * rightArray; + +@property (nonatomic, strong) UILabel * lastLabel; + +@end + +@implementation XJDBasicHealthInfoView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +- (NSMutableArray *)leftArray { + + if (!_leftArray) { + _leftArray = [[NSMutableArray alloc] init]; + } + return _leftArray; +} + +- (NSMutableArray *)rightArray { + + if (!_rightArray) { + + _rightArray = [[NSMutableArray alloc] init]; + } + return _rightArray; +} + + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + self.backgroundColor = KWhiteColor; + [self createUI]; + + } + + return self; +} + + +- (void)createUI { + + + NSArray * leftArray = @[@"饮食习惯:",@"烟酒习惯:",@"既往史:",@"家族史:",@"过敏史:",@"用药史:"]; + NSArray * rightArray = @[@"",@"",@"",@"",@"",@""]; + + for (int i = 0; i < leftArray.count; i ++) { + + + UILabel * leftLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(20) + 47 * i, 100, 13)]; + leftLabel.text =leftArray[i]; + leftLabel.font = MEDIUMFONT(13); + leftLabel.textAlignment = NSTextAlignmentLeft; + leftLabel.textColor = UIColorHex(#666666); + CGFloat w = [XJDCommonUtils getLengthFromText:leftLabel.text andFontSize:13]; + leftLabel.width = w; + [self addSubview:leftLabel]; + [self.leftArray addObject:leftLabel]; + + UILabel * rightLabel = [[UILabel alloc] initWithFrame:CGRectMake(leftLabel.right, leftLabel.top, self.width - leftLabel.right, 13)]; + rightLabel.text =rightArray[i]; + rightLabel.font = MEDIUMFONT(13); + rightLabel.textAlignment = NSTextAlignmentLeft; + rightLabel.textColor = UIColorHex(#333333); + [self addSubview:rightLabel]; + + [self.rightArray addObject:rightLabel]; + + } + + +} + +- (void)setDataArray:(NSArray *)dataArray { + + _dataArray = dataArray; + for (UILabel * leftLabel in self.leftArray) { + [leftLabel removeFromSuperview]; + } + for (UILabel * rightLabel in self.rightArray) { + [rightLabel removeFromSuperview]; + } + [self.leftArray removeAllObjects]; + [self.rightArray removeAllObjects]; + + for (int i = 0; i < _dataArray.count; i ++) { + + XJDRecoredDetailHealthModel * model = _dataArray[i]; + + UILabel * leftLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(20) + 14 + 30 * i, 100, 13)]; + leftLabel.text = model.answerKey; + leftLabel.font = MEDIUMFONT(13); + leftLabel.textAlignment = NSTextAlignmentLeft; + leftLabel.textColor = UIColorHex(#666666); + [self addSubview:leftLabel]; + + + UILabel * rightLabel = [[UILabel alloc] initWithFrame:CGRectMake(leftLabel.right, leftLabel.top, self.width - leftLabel.right, 13)]; + rightLabel.text = model.answerValue; + rightLabel.font = MEDIUMFONT(13); + rightLabel.textAlignment = NSTextAlignmentLeft; + [self addSubview:rightLabel]; + [self.leftArray addObject:leftLabel]; + [self.rightArray addObject:rightLabel]; + + if (i == _dataArray.count - 1) { + self.lastLabel = rightLabel; + } + } + self.healthHeight = self.lastLabel.bottom + kRealValue(20); + +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDetailTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDetailTableViewCell.h new file mode 100644 index 0000000..2bef8ad --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDetailTableViewCell.h @@ -0,0 +1,21 @@ +// +// XJDBillDetailTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDBillDetailTableViewCell : UITableViewCell + +@property (nonatomic, copy) NSString * leftString; + +@property (nonatomic, copy) NSString * rightString; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDetailTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDetailTableViewCell.m new file mode 100644 index 0000000..a3425d4 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDetailTableViewCell.m @@ -0,0 +1,90 @@ +// +// XJDBillDetailTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import "XJDBillDetailTableViewCell.h" + +@interface XJDBillDetailTableViewCell () + +@property (nonatomic, strong) UILabel * leftLabel; + +@property (nonatomic, strong) UILabel * rightLabel; + +@end + +@implementation XJDBillDetailTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self createUI]; + + } + return self; +} + +- (void)createUI { + + self.leftLabel = [[UILabel alloc] init]; + self.leftLabel.textColor = UIColorHex(#666666); + self.leftLabel.font = BOLDSYSTEMFONT(14); + self.leftLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:self.leftLabel]; + + [self.leftLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(15); + make.top.mas_offset(kRealValue(30)); + make.height.mas_offset(13); + }]; + [self.leftLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.rightLabel = [[UILabel alloc] init]; + self.rightLabel.textColor = UIColorHex(#333333); + self.rightLabel.font = BOLDSYSTEMFONT(13); + self.rightLabel.numberOfLines = 0; + self.rightLabel.textAlignment = NSTextAlignmentRight; + [self.contentView addSubview:self.rightLabel]; + + [self layoutIfNeeded]; + [self.rightLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_offset(-18); + make.left.mas_equalTo(self.leftLabel.mas_right).offset(8); + make.top.mas_equalTo(self.leftLabel); + make.bottom.mas_offset(-5); + }]; + [self.rightLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + +} + +- (void)setLeftString:(NSString *)leftString { + _leftString = leftString; + + self.leftLabel.text = _leftString; + +} + +- (void)setRightString:(NSString *)rightString { + + _rightString = rightString; + + self.rightLabel.text = rightString; + +} + +@end + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDtailTable.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDtailTable.h new file mode 100644 index 0000000..363b1d4 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDtailTable.h @@ -0,0 +1,21 @@ +// +// XJDBillDtailTable.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import +#import "XJDWithDrawDetailModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDBillDtailTable : UITableView + +@property (nonatomic, strong) NSDictionary * dic; + +@property (nonatomic, strong) XJDWithDrawDetailModel * model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDtailTable.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDtailTable.m new file mode 100644 index 0000000..9d638b8 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillDtailTable.m @@ -0,0 +1,126 @@ +// +// XJDBillDtailTable.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import "XJDBillDtailTable.h" +#import "XJDBillDetailTableViewCell.h" + +@interface XJDBillDtailTable () + +@end + +@implementation XJDBillDtailTable + + +- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { + + if (self = [super initWithFrame:frame style:style]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + self.delegate = self; + self.dataSource = self; + self.backgroundColor = UIColor.whiteColor; + self.showsVerticalScrollIndicator = false; + self.showsHorizontalScrollIndicator = false; + self.separatorStyle = UITableViewCellSeparatorStyleNone; + self.estimatedRowHeight = 60; + self.rowHeight = UITableViewAutomaticDimension; + + + +} + +- (void)setModel:(XJDWithDrawDetailModel *)model { + + _model = model; + [self reloadData]; + +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 1; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return 9; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + NSArray * array; + + + XJDBillDetailTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"BILLCELL"]; + + if (!cell) { + + cell = [[XJDBillDetailTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BILLCELL"]; + } + if (self.model) { + array = @[@[@"流水号:",[NSString stringWithFormat:@"%@",self.model.wraw_Id] ],@[@"提现方:",self.model.withdrawalName],@[@"提现方式:",self.model.withdraw],@[@"收款账号:",self.model.paymentAccount],@[@"提现金额:",[NSString stringWithFormat:@"%@",self.model.paymentMoney]],@[@"实际到账金额:",[NSString stringWithFormat:@"%@",self.model.realityMoney]],@[@"提现说明:",self.model.remarks],@[@"账户金额:",[NSString stringWithFormat:@"%@",self.model.accountMoney]],@[@"提现时间",[NSString stringWithFormat:@"%@",self.model.paymentTime]]]; + cell.leftString= array[indexPath.row][0]; + cell.rightString= array[indexPath.row][1]; + } + + cell.backgroundColor = KWhiteColor; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +//组头 --- 组尾 + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + + + return [UIView new]; + +} + + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + + + + UIView * videoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(10))]; + + return videoView; + +} +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + + + +} + + +@end + + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTable.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTable.h new file mode 100644 index 0000000..967f1ec --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTable.h @@ -0,0 +1,22 @@ +// +// XJDBillListTable.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^lookBillDetail)(NSString * billString); + +@interface XJDBillListTable : UITableView + +@property (nonatomic, strong) NSArray * dataArray; + +@property (nonatomic, copy) lookBillDetail detailBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTable.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTable.m new file mode 100644 index 0000000..f964b04 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTable.m @@ -0,0 +1,125 @@ +// +// XJDBillListTable.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import "XJDBillListTable.h" +#import "XJDBillListTableViewCell.h" + + +@interface XJDBillListTable () + +@end + +@implementation XJDBillListTable + + +- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { + + if (self = [super initWithFrame:frame style:style]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + self.delegate = self; + self.dataSource = self; + self.backgroundColor = UIColor.clearColor; + self.showsVerticalScrollIndicator = false; + self.showsHorizontalScrollIndicator = false; + self.separatorStyle = UITableViewCellSeparatorStyleNone; + self.estimatedRowHeight = 60; + self.rowHeight = UITableViewAutomaticDimension; + + + +} + +- (void)setDataArray:(NSArray *)dataArray { + + _dataArray = dataArray; + + [self reloadData]; +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return self.dataArray.count; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return 1; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + XJDBillListTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"BILLCELL"]; + + if (!cell) { + + cell = [[XJDBillListTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BILLCELL"]; + } + cell.backgroundColor = KWhiteColor; + cell.layer.cornerRadius = 10.0; + cell.layer.masksToBounds = true; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.model = self.dataArray[indexPath.section]; + return cell; + +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return kRealValue(10); +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +//组头 --- 组尾 + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + + + return [UIView new]; + +} + + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + + + + UIView * videoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(10))]; + + return videoView; + +} +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + YXBillListDetailModel * model = self.dataArray[indexPath.section]; + + if (self.detailBlock) { + + self.detailBlock(model.bill_id); + } + +} + + +@end + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTableViewCell.h new file mode 100644 index 0000000..faeeb60 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTableViewCell.h @@ -0,0 +1,18 @@ +// +// XJDBillListTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import +#import "XJDBillListModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface XJDBillListTableViewCell : UITableViewCell + +@property (nonatomic, strong) YXBillListDetailModel * model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTableViewCell.m new file mode 100644 index 0000000..f8ea052 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/BillDetailView(账单详情)/XJDBillListTableViewCell.m @@ -0,0 +1,115 @@ +// +// XJDBillListTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/5. +// + +#import "XJDBillListTableViewCell.h" + +@interface XJDBillListTableViewCell () + +@property (nonatomic, strong) UILabel * typeLabel; + +@property (nonatomic, strong) UILabel * timeLabel; + +@property (nonatomic, strong) UILabel * moneyLabel; + +@property (nonatomic, strong) UILabel * billLabel; + +@end + +@implementation XJDBillListTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + + self.typeLabel = [[UILabel alloc] init]; + self.typeLabel.text = @""; + self.typeLabel.textColor = CFontColor1; + self.typeLabel.font = BOLDSYSTEMFONT(14); + self.typeLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:self.typeLabel]; + + [self.typeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(18); + make.top.mas_offset(15); + make.height.mas_offset(14); + make.width.mas_offset(90); + }]; + + self.moneyLabel = [[UILabel alloc] init]; + self.moneyLabel.text = @""; + self.moneyLabel.textColor = UIColorHex(#21BEBD); + self.moneyLabel.font = BOLDSYSTEMFONT(16); + self.moneyLabel.textAlignment = NSTextAlignmentRight; + [self.contentView addSubview:self.moneyLabel]; + + [self.moneyLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_offset(-18); + make.top.mas_offset(19); + make.height.mas_offset(13); + make.width.mas_offset(200); + }]; + + self.timeLabel = [[UILabel alloc] init]; + + self.timeLabel.textColor = UIColorHex(#999999); + self.timeLabel.font = BOLDSYSTEMFONT(12); + self.timeLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:self.timeLabel]; + + [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(18); + make.top.mas_equalTo(self.typeLabel.mas_bottom).offset(10); + make.height.mas_offset(13); + make.bottom.mas_offset(-16); + }]; + [self.timeLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.billLabel = [[UILabel alloc] init]; + + self.billLabel.textColor = UIColorHex(#333333); + self.billLabel.font = MEDIUMFONT(12); + self.billLabel.textAlignment = NSTextAlignmentRight; + [self.contentView addSubview:self.billLabel]; + + [self.billLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_offset(-18); + make.top.mas_equalTo(self.typeLabel.mas_bottom).offset(10); + make.height.mas_offset(13); + make.bottom.mas_offset(-16); + }]; + [self.billLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; +} + +- (void)setModel:(YXBillListDetailModel *)model { + + _model = model; + self.typeLabel.text = _model.operateType_dictText; + self.moneyLabel.text = [NSString stringWithFormat:@"%.2f",[_model.income floatValue]]; + self.timeLabel.text = _model.createTime; + self.billLabel.text = [NSString stringWithFormat:@"余额:%.2f",[_model.accountMoney floatValue]]; +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/DetailUserInfoView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/DetailUserInfoView.h deleted file mode 100644 index 642bf23..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/DetailUserInfoView.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// DetailUserInfoView.h -// healthQuestion -// -// Created by 仁康信息 on 2023/4/27. -// - -#import -#import "YXRecoredListDetailModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface DetailUserInfoView : UIView - -@property (nonatomic, strong) YXReocrdconFamilyMembersDO * userInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailTitleView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailTitleView.h new file mode 100644 index 0000000..151f645 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailTitleView.h @@ -0,0 +1,18 @@ +// +// DetailTitleView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDDetailTitleView : UIView + +@property (nonatomic, copy) NSString * createTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailTitleView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailTitleView.m new file mode 100644 index 0000000..6613743 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailTitleView.m @@ -0,0 +1,66 @@ +// +// XJDDetailTitleView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/27. +// + +#import "XJDDetailTitleView.h" + +@interface XJDDetailTitleView () + +@property (nonatomic, strong) UILabel * timeLabel; + +@end + +@implementation XJDDetailTitleView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + + UIImageView * headImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.width, 33)]; + headImg.image = IMAGE_NAMED(@"userinfoTitleImg"); + [self addSubview:headImg]; + + UIImageView * leftImg = [[UIImageView alloc] initWithFrame:CGRectMake(kRealValue(16), 10, 15, 15)]; + leftImg.image = IMAGE_NAMED(@"questionLeft_icon"); + [headImg addSubview:leftImg]; + + UILabel * titleLabel = [[UILabel alloc] init]; + titleLabel.frame = CGRectMake(leftImg.right + kRealValue(7),10 , 80, 14); + titleLabel.textAlignment = NSTextAlignmentLeft; + titleLabel.text = @"咨询人信息"; + titleLabel.font = BOLDSYSTEMFONT(14); + [self addSubview:titleLabel]; + + self.timeLabel = [[UILabel alloc] initWithFrame:CGRectMake( headImg.width/2 - kRealValue(10) , 8 , headImg.width/2 -kRealValue(10) , 15)]; + self.timeLabel.text = @"--"; + self.timeLabel.font = SYSTEMFONT(10); + self.timeLabel.textAlignment = NSTextAlignmentRight; + self.timeLabel.textColor = KWhiteColor; + [headImg addSubview:self.timeLabel]; + +} + +- (void)setCreateTime:(NSString *)createTime { + _createTime = createTime; + self.timeLabel.text = [NSString stringWithFormat:@"生成时间:%@",_createTime]; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailUserInfoView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailUserInfoView.h new file mode 100644 index 0000000..3cd9d6a --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailUserInfoView.h @@ -0,0 +1,19 @@ +// +// XJDDetailUserInfoView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/27. +// + +#import +#import "XJDRecoredListDetailModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDDetailUserInfoView : UIView + +@property (nonatomic, strong) XJDReocrdconFamilyMembersDO * userInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailUserInfoView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailUserInfoView.m new file mode 100644 index 0000000..fbea0da --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDDetailUserInfoView.m @@ -0,0 +1,114 @@ +// +// XJDDetailUserInfoView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/27. +// + +#import "XJDDetailUserInfoView.h" + +@interface XJDDetailUserInfoView () + + +@end + +@implementation XJDDetailUserInfoView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + + } + + return self; + +} + +- (void)createUI { + + + //一行的列数 + NSInteger cols = 3; + //label大小 + CGFloat labW = (self.width - kRealValue(46) ) / 3 ; + CGFloat labH = 13; + CGFloat pading = 0; + //每一行的间距 + CGFloat rowMargin = kRealValue(20); + for (int i = 0; i < 5; i ++) { + //所在列 + NSInteger col = i % cols; + //所在行 + NSInteger row = i / cols; + + CGFloat shopX = col * (labW ); + CGFloat shopY = row * (labH + rowMargin); + UILabel * nameLabel = [[UILabel alloc] init]; + nameLabel.frame = CGRectMake( kRealValue(18) + shopX,kRealValue(23) + shopY, labW, labH); + nameLabel.textAlignment = NSTextAlignmentLeft; + nameLabel.text = @""; + nameLabel.font = SYSTEMFONT(13); + nameLabel.tag = 100 + i; + [self addSubview:nameLabel]; + + } + UIView * lineV = [[UIView alloc] initWithFrame:CGRectMake(0, self.height, self.width, 1)]; + lineV.backgroundColor = UIColorHex(#E0E0E0); + [self addSubview:lineV]; +} + +- (void)setUserInfo:(XJDReocrdconFamilyMembersDO *)userInfo { + + _userInfo = userInfo; + + UILabel * nameLabel = [self viewWithTag:100]; + + nameLabel.text = [NSString stringWithFormat:@"姓名:%@",_userInfo.name]; + + NSString * sexString = [_userInfo.gender integerValue] == 1 ? @"女":@"男"; + + UILabel * sexLabel = [self viewWithTag:101]; + + sexLabel.text = [NSString stringWithFormat:@"性别:%@",sexString]; + + UILabel * ageLabel = [self viewWithTag:102]; + + ageLabel.text = [NSString stringWithFormat:@"年龄:%@",_userInfo.age]; + + + UILabel * shengaoLabel = [self viewWithTag:103]; + + NSString * heightString ; + if (ValidStr(_userInfo.height)) { + heightString = @"--"; + } + else + { + heightString = _userInfo.height; + } + shengaoLabel.text = [NSString stringWithFormat:@"身高:%@cm",heightString]; + + NSString * weightString ; + if (ValidStr(_userInfo.height)) { + weightString = @"--"; + } + else + { + weightString = _userInfo.weight; + } + UILabel * weightLabel = [self viewWithTag:104]; + + weightLabel.text = [NSString stringWithFormat:@"体重:%@kg",weightString]; + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionAppointmentTimeView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionAppointmentTimeView.h new file mode 100644 index 0000000..50e29f0 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionAppointmentTimeView.h @@ -0,0 +1,33 @@ +// +// XJDQuestionAppointmentTimeView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/27. +// + +#import +#import "XJDRecoredListDetailModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDQuestionAppointmentTimeView : UIView + +//@property (nonatomic, assign) BOOL ishide; +// +//@property (nonatomic, strong) XJDRecoredListDetailModel * model; +// +//@property (nonatomic, strong) NSArray * imList; +// +//@property (nonatomic, assign) CGFloat timeHeight; +//@property (nonatomic, strong) DoctorReportDoctorInfoModel * doctorModel; +//@property (nonatomic, strong) DoctorReportConSessionModel * sessionModel; +@property (nonatomic, strong) XJDRecoredListDetailModel * model; + +@property (nonatomic, assign) CGFloat doctorinfoHeight; + +@property (nonatomic, assign) bool isJujue; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionAppointmentTimeView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionAppointmentTimeView.m new file mode 100644 index 0000000..95dafe0 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionAppointmentTimeView.m @@ -0,0 +1,401 @@ +// +// XJDQuestionAppointmentTimeView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/27. +// + +#import "XJDQuestionAppointmentTimeView.h" +#import "NSDate+BRPickerView.h" +@interface XJDQuestionAppointmentTimeView () + +@property (nonatomic, strong) NSMutableArray * labsArray; + +@property (nonatomic, strong) UILabel * timeLabel; + +@property (nonatomic, strong) UILabel * questionTypeLabel; + +@property (nonatomic, strong) UILabel * starTimeLabel; + +@property (nonatomic, strong) UIButton * collectBtn; + +@property (nonatomic, strong) UIView * starTimeView ; //开始时间视图 +@property (nonatomic, strong) UIView * jujueView ; //拒绝视图 +@property (nonatomic, strong) UIView * cancelQuestionView ; //取消视图 +@property (nonatomic, strong) UIView * questionRecordView ; //咨询记录 + + +@property (nonatomic, strong) UILabel * jujueyuanyinLab ; //拒绝原因 +@property (nonatomic, strong) UILabel * jujueBeizhuLab ; //拒绝备注 +@property (nonatomic, strong) UILabel * beizhuLabel ; //拒绝备注 +@property (nonatomic, strong) UILabel * cancelTimeLabel ; //取消时间 +@property (nonatomic, strong) UILabel * recordStarLabel ; //取消时间 + +@end + +@implementation XJDQuestionAppointmentTimeView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +#pragma mark:懒加载 +- (NSMutableArray *)labsArray { + + if (!_labsArray) { + + _labsArray = [[NSMutableArray alloc] init]; + } + return _labsArray; +} + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + + } + + return self; +} + +- (void)createUI { + + + UIView * lineV = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), 0, self.width - kRealValue(30), 0.1)]; + lineV.backgroundColor = UIColorHex(#E0E0E0); + [self addSubview:lineV]; + + UILabel * leftTimeLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15),lineV.bottom + kRealValue(20), 100, 14)]; + leftTimeLabel.text = @"预约时间"; + leftTimeLabel.font = MEDIUMFONT(14); + leftTimeLabel.textColor = CFontColor1; + leftTimeLabel.textAlignment = NSTextAlignmentLeft; + [self addSubview:leftTimeLabel]; + + self.timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.width - 300 - 19,lineV.bottom + kRealValue(20), 300, 14)]; + self.timeLabel.text = @""; + self.timeLabel.font = [UIFont systemFontOfSize:13]; + self.timeLabel.textColor = CFontColor1; + self.timeLabel.textAlignment = NSTextAlignmentRight; + [self addSubview:self.timeLabel]; + + + //从这里开始不一样 + + UIView * starTimeView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), self.timeLabel.bottom + kRealValue(20), self.width- kRealValue(30) , 30)]; + self.starTimeView = starTimeView; + starTimeView.hidden = YES; + [self addSubview:starTimeView]; + + UILabel * starLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, kRealValue(14), 100, 14)]; + starLabel.text = @"开始时间"; + starLabel.font = MEDIUMFONT(14); + starLabel.textColor = CFontColor1; + starLabel.textAlignment = NSTextAlignmentLeft; + [starTimeView addSubview:starLabel]; + + self.starTimeLabel = [[UILabel alloc] initWithFrame:CGRectMake(starTimeView.width - 300 , kRealValue(14), 300, 14)]; + self.starTimeLabel.text = @""; + self.starTimeLabel.font = [UIFont systemFontOfSize:13];; + self.starTimeLabel.textColor = CFontColor1; + self.starTimeLabel.textAlignment = NSTextAlignmentRight; + [starTimeView addSubview:self.starTimeLabel]; + starTimeView.height = starLabel.bottom + kRealValue(10); + self.starTimeView.hidden = YES; + // 1 拒绝 + + UIView * jujueView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), self.timeLabel.bottom + kRealValue(20), self.width - kRealValue(30), 30)]; + self.jujueView = jujueView; + jujueView.hidden = true; + [self addSubview:jujueView]; + + UILabel * jujueLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0, 100, 14)]; + jujueLabel.text = @"拒绝原因"; + jujueLabel.font = MEDIUMFONT(14); + jujueLabel.textColor = CFontColor1; + jujueLabel.textAlignment = NSTextAlignmentLeft; + [jujueView addSubview:jujueLabel]; + + UILabel * jujueyuanyinLab = [[UILabel alloc] initWithFrame:CGRectMake(jujueLabel.right + 10, 0, jujueView.width - 100 -15 , 15)]; + jujueyuanyinLab.text = @""; + jujueyuanyinLab.font = [UIFont systemFontOfSize:13]; + self.jujueyuanyinLab = jujueyuanyinLab; + self.jujueyuanyinLab.numberOfLines = 0; + jujueyuanyinLab.textColor = CFontColor1; + jujueyuanyinLab.textAlignment = NSTextAlignmentRight; + [jujueView addSubview:jujueyuanyinLab]; + + + UILabel * beizhuLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,jujueLabel.bottom + kRealValue(20), 100, 14)]; + beizhuLabel.text = @"拒绝备注"; + beizhuLabel.font = MEDIUMFONT(14); + beizhuLabel.textColor = CFontColor1; + beizhuLabel.textAlignment = NSTextAlignmentLeft; + self.beizhuLabel = beizhuLabel; + [jujueView addSubview:beizhuLabel]; + + self.jujueBeizhuLab = [[UILabel alloc] initWithFrame:CGRectMake(beizhuLabel.right + 10, jujueLabel.bottom + kRealValue(20), jujueView.width - 15 - jujueLabel.width, 22)]; + self.jujueBeizhuLab.text = @""; + self.jujueBeizhuLab.font = [UIFont systemFontOfSize:13]; + self.jujueBeizhuLab.numberOfLines = 0; + self.jujueBeizhuLab.textColor = CFontColor1; + self.jujueBeizhuLab.textAlignment = NSTextAlignmentRight; + [jujueView addSubview:self.jujueBeizhuLab]; +// + + // 取消 + self.cancelQuestionView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), self.timeLabel.bottom + kRealValue(16), self.width - kRealValue(30), 30)]; + [self addSubview:self.cancelQuestionView]; + +// UIView * cancellineType = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), 0, self.width - kRealValue(30), 1)]; +// cancellineType.backgroundColor = UIColorHex(#E0E0E0); +// [self.cancelQuestionView addSubview:cancellineType]; + + UILabel * cancelStarLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,kRealValue(14), 100, 14)]; + cancelStarLabel.text = @"预计开始时间"; + cancelStarLabel.font = MEDIUMFONT(14); + cancelStarLabel.textColor = CFontColor1; + cancelStarLabel.textAlignment = NSTextAlignmentLeft; + [self.cancelQuestionView addSubview:cancelStarLabel]; + + UILabel * openLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,cancelStarLabel.bottom + kRealValue(13), 150, 12)]; + openLabel.text = @"请打开APP并保证网络流畅"; + openLabel.font = MEDIUMFONT(11); + openLabel.textColor = UIColorHex(#999999); + openLabel.textAlignment = NSTextAlignmentLeft; + [self.cancelQuestionView addSubview:openLabel]; + + self.cancelTimeLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.width - 300 - 19, kRealValue(14), 300, 22)]; + self.cancelTimeLabel.text = @""; + self.cancelTimeLabel.font = BOLDSYSTEMFONT(13); + self.cancelTimeLabel.textColor = UIColorHex(#999999); + self.cancelTimeLabel.textAlignment = NSTextAlignmentRight; + [self.cancelQuestionView addSubview:self.cancelTimeLabel]; + //中划线 + NSDictionary *attribtDic = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]}; + NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString: self.cancelTimeLabel.text attributes:attribtDic]; + // 赋值 + self.cancelTimeLabel.attributedText = attribtStr; + + self.cancelQuestionView.height = openLabel.bottom + kRealValue(10); + + //咨询记录 + + self.questionRecordView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), self.starTimeView.bottom + kRealValue(10), self.width - kRealValue(30), 30)]; + self.questionRecordView.backgroundColor = KWhiteColor; + [self addSubview:self.questionRecordView]; + + + UILabel * recordStarLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, kRealValue(14), 100, 14)]; + recordStarLabel.text = @"咨询记录"; + recordStarLabel.font = MEDIUMFONT(14); + recordStarLabel.textColor = CFontColor1; + recordStarLabel.textAlignment = NSTextAlignmentLeft; + self.recordStarLabel = recordStarLabel; + [self.questionRecordView addSubview:recordStarLabel]; + + // 赋值 + self.questionRecordView.height = recordStarLabel.bottom + kRealValue(10); + + + + self.doctorinfoHeight = self.cancelQuestionView.bottom + kRealValue(15); +} + + +- (void)setModel:(XJDRecoredListDetailModel *)model { + _model = model; + + + XJDRecoredDetailConsessionModel * sessionModel = [XJDRecoredDetailConsessionModel modelWithDictionary:_model.conSession]; + + + //状态数据 + NSString * timeString = [XJDCommonUtils getTimeFromTimestamp:[sessionModel.sessionDateLong integerValue] andDateFormat:@"YYYY年MM月dd日"]; + NSString * weekString; + NSArray * weekArray = @[@"周一",@"周二",@"周三",@"周四",@"周五",@"周六",@"周天"]; + NSString * amString = [sessionModel.amPm integerValue] == 1 ? @"下午":@"上午"; + if ( [sessionModel.week integerValue] >= 1) { + weekString = weekArray[[sessionModel.week integerValue] - 1]; + } + self.timeLabel.text = [NSString stringWithFormat:@"%@ %@ %@",timeString,weekString,amString]; + + + + //预约状态 1待确认 2待开始 3已开始 4待评价 5已完成 + // 6 拒绝 7取消 8 超时 + if ( [sessionModel.contentStatus integerValue] == 6) { //拒绝 + + self.jujueView.hidden = false; + self.starTimeView.hidden = true; + self.cancelQuestionView.hidden = true; + self.jujueyuanyinLab.text = sessionModel.reasonType; + self.jujueBeizhuLab.text = sessionModel.rejectReason; + CGFloat labH = [XJDCommonUtils getSpaceLabelHeight: self.jujueyuanyinLab AndLeftisTrue:false withStr:self.jujueyuanyinLab.text withFont:[UIFont systemFontOfSize:14] withWidth: self.jujueyuanyinLab.width withLineSpacing:2]; + + CGFloat beizhulabH = [XJDCommonUtils getSpaceLabelHeight: self.jujueBeizhuLab AndLeftisTrue:false withStr:self.jujueBeizhuLab.text withFont:[UIFont systemFontOfSize:14] withWidth: self.jujueyuanyinLab.width withLineSpacing:2]; + + //布局 + self.questionRecordView.height = 0; + self.jujueView.top = self.timeLabel.bottom + kRealValue(16); + self.jujueyuanyinLab.top = 1; + self.jujueBeizhuLab.height = beizhulabH; + self.jujueBeizhuLab.top = self.jujueyuanyinLab.bottom + kRealValue(16); + self.beizhuLabel.top = self.jujueyuanyinLab.bottom + kRealValue(16); + self.jujueView.height = self.beizhuLabel.bottom+ 15; + self.questionRecordView.top = self.jujueView.bottom; + self.doctorinfoHeight = self.questionRecordView.bottom + kRealValue(12); + self.recordStarLabel.hidden = true; + +// NSDictionary *attribtDic = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]}; +// NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString: self.timeLabel.text attributes:attribtDic]; +// // 类型 + NSDictionary * typeattribtDic = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]}; + NSMutableAttributedString * typeattribtStr = [[NSMutableAttributedString alloc]initWithString: self.timeLabel.text attributes:typeattribtDic]; + self.timeLabel.attributedText = typeattribtStr; +// self.doctorinfoHeight = self.questionTypeLabel.bottom + kRealValue(15); + } + if ( [sessionModel.contentStatus integerValue] == 1 || [sessionModel.contentStatus integerValue] == 2) { //待确认 + + self.jujueView.hidden = true ; + self.starTimeView.hidden = true; + self.cancelQuestionView.hidden = true; + self.questionRecordView.hidden = YES; + if ( ValidStr(sessionModel.doctorStartTime)) { //如果医生开始时间为空 那么不显示 + + self.starTimeView.hidden = true; + }else + { + self.starTimeView.hidden = false; + self.starTimeLabel.text = [XJDCommonUtils getTimeFromTimestamp:[sessionModel.sessionDateLong integerValue] andDateFormat:@"YYYY年MM月dd日 HH:mm"]; + } + + self.doctorinfoHeight = self.timeLabel.bottom + kRealValue(20); + } + if ( [sessionModel.contentStatus integerValue] == 7) { //取消 + + self.jujueView.hidden = YES; + self.starTimeView.hidden = YES; + self.cancelQuestionView.hidden = false; + self.questionRecordView.hidden = YES; + self.jujueyuanyinLab.text = sessionModel.reasonType; + CGFloat labH = [XJDCommonUtils getSpaceLabelHeight: self.jujueyuanyinLab AndLeftisTrue:true withStr:self.jujueyuanyinLab.text withFont:[UIFont systemFontOfSize:14 weight:UIFontWeightMedium] withWidth: self.jujueyuanyinLab.width withLineSpacing:5]; + self.jujueyuanyinLab.height = labH; + self.jujueView.hidden = YES; + self.doctorinfoHeight = self.timeLabel.bottom + kRealValue(20); + } + if ( [sessionModel.contentStatus integerValue] == 3 || [sessionModel.contentStatus integerValue] == 4 || [sessionModel.contentStatus integerValue] == 5) { //在线咨询 + for (UILabel * currentlab in self.labsArray) { + + [currentlab removeFromSuperview]; + } + [self.labsArray removeAllObjects]; + + self.jujueView.hidden = true ; + self.starTimeView.hidden = false; + self.cancelQuestionView.hidden = true; + self.questionRecordView.hidden = false; + if ( ValidStr(sessionModel.doctorStartTime)) { //如果医生开始时间为空 那么不显示 + + self.starTimeView.hidden = true; + }else + { + self.starTimeView.hidden = false; + NSString * doctorStar = [XJDCommonUtils getTimeFromTimestamp:[sessionModel.doctorStartTimeLong integerValue] andDateFormat:@"YYYY年MM月dd日 HH:mm"]; + NSString * doctorend = [XJDCommonUtils getTimeFromTimestamp:[sessionModel.doctorEndTimeLong integerValue] andDateFormat:@"HH:mm"]; + + self.starTimeLabel.text = [NSString stringWithFormat:@"%@~%@",doctorStar,doctorend]; + } + + NSArray * recordArray = _model.imList; + CGFloat height = 30; + for (int i = 0 ; i < recordArray.count; i ++) { + + XJDRecoredDetailIMListModel * imModel = recordArray[i]; + + + UILabel * recordLabel = [[UILabel alloc] initWithFrame:CGRectMake(14, 45 + 25 * i, self.questionRecordView.width -14, 20)]; + recordLabel.textAlignment = NSTextAlignmentLeft; + recordLabel.font = SYSTEMFONT(15); + NSString * questionType = @""; + NSString * timeString; + if (ValidStr(imModel.startTime) || ValidStr(imModel.endTime)) { + + timeString = @"时长:--"; + }else + { + timeString = [self dateTimeDifferenceWithStartTime:imModel.startTime endTime:imModel.endTime]; + } + if ([imModel.type intValue] == 2) { + questionType = @"视频咨询"; + recordLabel.text = [NSString stringWithFormat:@"%@:%@ %@",questionType,imModel.startTime,timeString]; + }else + { + questionType = @"约定时间"; + NSString * doctorStar = [XJDCommonUtils getTimeFromTimestamp:[imModel.startTimLong integerValue] andDateFormat:@"YYYY-MM-dd HH:mm"]; + NSString * doctorend = [XJDCommonUtils getTimeFromTimestamp:[imModel.endTimeLong integerValue] andDateFormat:@"HH:mm"]; + recordLabel.text = [NSString stringWithFormat:@"%@:%@~%@",questionType,doctorStar,doctorend]; + } + recordLabel.textColor = CFontColor1; + + + + + if (i == recordArray.count - 1) { + + height = recordLabel.bottom; + self.questionRecordView.height = kRealValue(14) + height; + } + [self.questionRecordView addSubview:recordLabel]; + [self.labsArray addObject:recordLabel]; + } + + + self.doctorinfoHeight = self.questionRecordView.bottom + kRealValue(10); + } + + +} + + +-(NSString *)dateTimeDifferenceWithStartTime:(NSString *)startTime endTime:(NSString *)endTime{ + NSDateFormatter *date = [[NSDateFormatter alloc]init]; + [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; + NSDate *startD =[date dateFromString:startTime]; + NSDate *endD = [date dateFromString:endTime]; + NSTimeInterval start = [startD timeIntervalSince1970]*1; + NSTimeInterval end = [endD timeIntervalSince1970]*1; + NSTimeInterval value = end - start; + int second = (int)value %60;//秒 + int minute = (int)value /60%60; + int house = (int)value % (24 * 3600)/3600; + int day = (int)value / (24 * 3600); + NSString *str; + if (day != 0) { + str = [NSString stringWithFormat:@"时长:%d天%d小时%d分%d秒",day,house,minute,second]; + }else if (day==0 && house != 0) { + str = [NSString stringWithFormat:@"时长:%d小时%d分%d秒",house,minute,second]; + }else if (day== 0 && house== 0 && minute!=0) { + str = [NSString stringWithFormat:@"时长:%d分%d秒",minute,second]; + }else{ + str = [NSString stringWithFormat:@"时长:%d秒",second]; + } + + return str; +} + + +///将时间戳转为日期时间 + +/// @param timestamp 时间戳 + +/// @param dateFormat 日期样式 YYYY-MM-dd HH:mm:ss + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionFileDataView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionFileDataView.h new file mode 100644 index 0000000..e640879 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionFileDataView.h @@ -0,0 +1,25 @@ +// +// XJDQuestionFileDataView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import +#import "XJDRecoredListDetailModel.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^lookDetailBlock)(); + +@interface XJDQuestionFileDataView : UIView + +@property (nonatomic, assign) CGFloat fileHeight; + +@property (nonatomic, copy) lookDetailBlock fileBlock; + +@property (nonatomic, strong) XJDRecoredconMedicalRecordsListDO * model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionFileDataView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionFileDataView.m new file mode 100644 index 0000000..da2daec --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionFileDataView.m @@ -0,0 +1,103 @@ +// +// XJDQuestionFileDataView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "XJDQuestionFileDataView.h" + +@interface XJDQuestionFileDataView () + +@property (nonatomic, strong) UILabel * timeLabel; +@property (nonatomic, strong) UILabel * fileLabel; +@end + +@implementation XJDQuestionFileDataView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + } + + return self; +} + + +- (void)createUI { + + UIView * timelineV = [[UIView alloc] initWithFrame:CGRectMake(0, 1, self.width , 1)]; + timelineV.backgroundColor = UIColorHex(#E0E0E0); + [self addSubview:timelineV]; + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(15), 100, 14)]; + titleLabel.text = @"档案"; + titleLabel.font = BOLDSYSTEMFONT(13); + titleLabel.textAlignment = NSTextAlignmentLeft; + [self addSubview:titleLabel]; + + UILabel * timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(15), self.width - kRealValue(33), 14)]; + self.timeLabel = timeLabel; + timeLabel.text = @"生成时间:2020年05月05日 周四 上午"; + timeLabel.font = MEDIUMFONT(11); + timeLabel.textColor = UIColorHex(#999999); + timeLabel.textAlignment = NSTextAlignmentRight; + [self addSubview:timeLabel]; + + UILabel * fileLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18),titleLabel.bottom+ kRealValue(25), self.width - kRealValue(36), 34)]; + fileLabel.text = @""; + fileLabel.numberOfLines = 2; + fileLabel.font = MEDIUMFONT(13); + fileLabel.textColor = UIColorHex(#333333); + fileLabel.textAlignment = NSTextAlignmentLeft; + self.fileLabel = fileLabel; + [self addSubview:fileLabel]; + +// CGFloat fileHeight = [HQCommonUtils getSpaceLabelHeight:fileLabel withStr:fileLabel.text withFont:[UIFont systemFontOfSize:13 weight:UIFontWeightMedium] withWidth:fileLabel.width withLineSpacing:5]; +// fileLabel.height = fileHeight; + + YYLabel * detailLabel = [[YYLabel alloc] initWithFrame:CGRectMake(self.width - 100 - kRealValue(18), fileLabel.bottom + kRealValue(11), 100, 12)]; + detailLabel.text = @"查看详情 >"; + detailLabel.textColor = UIColorHex(#3390FF); + detailLabel.font = MEDIUMFONT(11); + detailLabel.textAlignment = NSTextAlignmentRight; + [self addSubview:detailLabel]; + + [detailLabel setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + [self lookMDetail]; + }]; + + UIView * lineV = [[UIView alloc] initWithFrame:CGRectMake(0, detailLabel.bottom, kScreenWidth - kRealValue(30), 14)]; + lineV.backgroundColor = KWhiteColor; + [self addSubview:lineV]; + + self.fileHeight = lineV.bottom; +} + +- (void)lookMDetail { + + if (self.fileBlock) { + + self.fileBlock(); + } + +} + +- (void)setModel:(XJDRecoredconMedicalRecordsListDO *)model { + + _model = model; + + self.fileLabel.text = [NSString stringWithFormat:@"问题描述:%@",_model.medicalDescribe] ; + self.timeLabel.text = [NSString stringWithFormat:@"更新时间:%@",_model.createTime]; + +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionHealthInfoView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionHealthInfoView.h new file mode 100644 index 0000000..d2124fe --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionHealthInfoView.h @@ -0,0 +1,19 @@ +// +// XJDQuestionHealthInfoView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDQuestionHealthInfoView : UIView + +@property (nonatomic, strong) NSArray * questionArray; + +@property (nonatomic, assign) CGFloat healthHeight; +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionHealthInfoView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionHealthInfoView.m new file mode 100644 index 0000000..2531c85 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionHealthInfoView.m @@ -0,0 +1,140 @@ +// +// XJDQuestionHealthInfoView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "XJDQuestionHealthInfoView.h" +#import "XJDRecoredListDetailModel.h" +@interface XJDQuestionHealthInfoView () + +@property (nonatomic, strong) NSMutableArray * leftArray; + +@property (nonatomic, strong) NSMutableArray * rightArray; + +@property (nonatomic, strong) UILabel * lastLabel; + +@end + +@implementation XJDQuestionHealthInfoView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ +- (NSMutableArray *)leftArray { + + if (!_leftArray) { + _leftArray = [[NSMutableArray alloc] init]; + } + return _leftArray; +} + +- (NSMutableArray *)rightArray { + + if (!_rightArray) { + + _rightArray = [[NSMutableArray alloc] init]; + } + return _rightArray; +} + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + + } + + return self; +} + + +- (void)createUI { + + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(22), 100, 14)]; + titleLabel.text = @"基本健康信息"; + titleLabel.font = BOLDSYSTEMFONT(13); + titleLabel.textAlignment = NSTextAlignmentLeft; + [self addSubview:titleLabel]; + + NSArray * leftArray = @[@"饮食习惯:",@"烟酒习惯:",@"既往史:",@"家族史:",@"过敏史:",@"用药史:"]; + NSArray * rightArray = @[@"",@"",@"",@"",@"",@""]; + + for (int i = 0; i < leftArray.count; i ++) { + + + UILabel * leftLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), titleLabel.bottom + kRealValue(20) + 30 * i, 100, 13)]; + leftLabel.text =leftArray[i]; + leftLabel.font = MEDIUMFONT(13); + leftLabel.textAlignment = NSTextAlignmentLeft; + leftLabel.textColor = UIColorHex(#666666); + CGFloat w = [XJDCommonUtils getLengthFromText:titleLabel.text andFontSize:13]; + leftLabel.width = w; + [self addSubview:leftLabel]; + + + UILabel * rightLabel = [[UILabel alloc] initWithFrame:CGRectMake(leftLabel.right, leftLabel.top, self.width - leftLabel.right, 13)]; + rightLabel.text =rightArray[i]; + rightLabel.font = MEDIUMFONT(13); + rightLabel.textAlignment = NSTextAlignmentLeft; + [self addSubview:rightLabel]; + + [self.leftArray addObject:leftLabel]; + [self.rightArray addObject:rightLabel]; + + } + + +} + +- (void)setQuestionArray:(NSArray *)questionArray { + _questionArray = questionArray; + + + for (UILabel * leftLabel in self.leftArray) { + [leftLabel removeFromSuperview]; + } + for (UILabel * rightLabel in self.rightArray) { + [rightLabel removeFromSuperview]; + } + [self.leftArray removeAllObjects]; + [self.rightArray removeAllObjects]; + + for (int i = 0; i < _questionArray.count; i ++) { + +// NSDictionary * dic = _questionArray[i]; + XJDRecoredDetailHealthModel * model = _questionArray[i]; + + UILabel * leftLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(42) + 14 + 30 * i, 100, 13)]; + leftLabel.text = [NSString stringWithFormat:@"%@:",model.answerKey] ; + leftLabel.font = MEDIUMFONT(13); + leftLabel.textAlignment = NSTextAlignmentLeft; + leftLabel.textColor = UIColorHex(#666666); + CGFloat w = [XJDCommonUtils getLengthFromText:leftLabel.text andFontSize:13]; + [self addSubview:leftLabel]; + + + UILabel * rightLabel = [[UILabel alloc] initWithFrame:CGRectMake(leftLabel.right + kRealValue(25), leftLabel.top, self.width - leftLabel.right - kRealValue(25), 13)]; + rightLabel.text = model.answerValue; + rightLabel.font = MEDIUMFONT(13); + rightLabel.textAlignment = NSTextAlignmentLeft; + [self addSubview:rightLabel]; + + [self.leftArray addObject:leftLabel]; + [self.rightArray addObject:rightLabel]; + + if (i == _questionArray.count - 1) { + self.lastLabel = rightLabel; + } + } + self.healthHeight = self.lastLabel.bottom + kRealValue(30); + +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionReportView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionReportView.h new file mode 100644 index 0000000..806b99e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionReportView.h @@ -0,0 +1,22 @@ +// +// XJDQuestionReportView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +@interface XJDQuestionReportView : UIView + +@property (nonatomic, strong) NSArray * dataArray; + +@property (nonatomic, assign) CGFloat reportHeight; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionReportView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionReportView.m new file mode 100644 index 0000000..1d55acc --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/DetailUserinfoView(咨询人信息)/XJDQuestionReportView.m @@ -0,0 +1,91 @@ +// +// XJDQuestionReportView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "XJDQuestionReportView.h" + +@interface XJDQuestionReportView () + +@property (nonatomic, strong) UILabel * timeLabel; + +@property (nonatomic, strong) UILabel * hospatilLabel; + + +@end + +@implementation XJDQuestionReportView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(24), 100, 14)]; + titleLabel.text = @"体检报告"; + titleLabel.font = BOLDSYSTEMFONT(13); + titleLabel.textAlignment = NSTextAlignmentLeft; + [self addSubview:titleLabel]; + + UILabel * timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), kRealValue(25), self.width - kRealValue(33), 14)]; + self.timeLabel = timeLabel; + timeLabel.text = @"生成时间:--"; + timeLabel.font = MEDIUMFONT(10); + timeLabel.textColor = UIColorHex(#999999); + timeLabel.textAlignment = NSTextAlignmentRight; + [self addSubview:timeLabel]; + + self.hospatilLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(18), titleLabel.bottom + kRealValue(17), self.width - kRealValue(36), 13)]; + self.hospatilLabel.text = @""; + self.hospatilLabel.font = BOLDSYSTEMFONT(13); + self.hospatilLabel.textAlignment = NSTextAlignmentLeft; + [self addSubview:self.hospatilLabel]; +// + YYLabel * detailLabel = [[YYLabel alloc] initWithFrame:CGRectMake(self.width - 100 - kRealValue(18), titleLabel.bottom + kRealValue(17), 100, 12)]; + detailLabel.text = @"查看详情 >"; + detailLabel.textColor = UIColorHex(#3390FF); + detailLabel.font = MEDIUMFONT(11); + detailLabel.textAlignment = NSTextAlignmentRight; + [self addSubview:detailLabel]; + + [detailLabel setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { +// [self lookMDetail]; + }]; + +} + +//- (void)lookMDetail{ +// +// if (self.baogaoBlock) { +// self.baogaoBlock(self.bodyModel); +// } +//} +// +// +//- (void)setBodyModel:(YXPhyscialReportListModel *)bodyModel { +// +// _bodyModel = bodyModel; +// +// self.timeLabel.text = [NSString stringWithFormat:@"上传时间:%@年",_bodyModel.medicalYear]; +// self.hospatilLabel.text = [NSString stringWithFormat:@"%@ %@",_bodyModel.medicalYear,_bodyModel.hospitalName]; +// self.reportHeight = self.hospatilLabel.bottom + kRealValue(20); +//} +// + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/FileDataDetailView(档案详情)/XJDFileDataDeatilCenterView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/FileDataDetailView(档案详情)/XJDFileDataDeatilCenterView.h new file mode 100644 index 0000000..d6b65ab --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/FileDataDetailView(档案详情)/XJDFileDataDeatilCenterView.h @@ -0,0 +1,21 @@ +// +// XJDFileDataDeatilCenterView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import +#import "XJDRecoredListDetailModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDFileDataDeatilCenterView : UIView + +@property (nonatomic, assign) CGFloat questionH; + +@property (nonatomic, strong) XJDRecoredconMedicalRecordsListDO * medicalModel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/FileDataDetailView(档案详情)/XJDFileDataDeatilCenterView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/FileDataDetailView(档案详情)/XJDFileDataDeatilCenterView.m new file mode 100644 index 0000000..8e15143 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/FileDataDetailView(档案详情)/XJDFileDataDeatilCenterView.m @@ -0,0 +1,318 @@ +// +// XJDFileDataDeatilCenterView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import "XJDFileDataDeatilCenterView.h" +#import "XLPhotoBrowser.h" + +@interface XJDFileDataDeatilCenterView () + +@property (nonatomic, strong) UILabel * firstQuestionLabel; + +@property (nonatomic, strong) UILabel * firstAnswerLabel; + +@property (nonatomic, strong) UILabel * secendQuestionLabel; + +@property (nonatomic, strong) UILabel * secendAnswerLabel; + +@property (nonatomic, strong) UILabel * thirdQuestionLabel; + +@property (nonatomic, strong) UILabel * thirdAnswerLabel; + +@property (nonatomic, strong) UILabel * fourthQuestionLabel; + +@property (nonatomic, strong) UILabel * fourthAnswerLabel; + +@property (nonatomic, strong) UILabel * fifthQuestionLabel; + +@property (nonatomic, strong) UILabel * fifthAnswerLabel; + +@property (nonatomic, strong) UILabel * thirdQuestionTitleLabel; + +@property (nonatomic, strong) UIView * hospatilView; + +@property (nonatomic, strong) UILabel * roomLabel; + +@property (nonatomic, strong) UILabel * disNameLabel; + +@property (nonatomic, strong) UIView * pictureView; + +@property (nonatomic, strong) UIView * twoView; + +@property (nonatomic, strong) UIView * thirdView; + +@property (nonatomic, strong) UIView * fourView; + +@property (nonatomic, strong) UILabel * numberLabel; + +@property (nonatomic, strong) UIScrollView * pictScrollView; + +@property (nonatomic, strong) NSMutableArray * pictureArray; + +@end + + +@implementation XJDFileDataDeatilCenterView + +- (NSMutableArray *)pictureArray { + + if (!_pictureArray) { + _pictureArray = [[NSMutableArray alloc] init]; + } + return _pictureArray; +} + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + + } + + return self; +} + +- (void)createUI { + + self.backgroundColor = KWhiteColor; + //第一个问题 + self.firstQuestionLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(20), kRealValue(24), self.width - kRealValue(30), 14)]; + self.firstQuestionLabel.text = @"1.本次问题持续多久了?"; + self.firstQuestionLabel.font = BOLDSYSTEMFONT(14); + self.firstQuestionLabel.textAlignment = NSTextAlignmentLeft; + self.firstQuestionLabel.textColor = UIColorHex(#333333); + [self addSubview:self.firstQuestionLabel]; + + UIView * firstView = [[UIView alloc] initWithFrame:CGRectMake(0, self.firstQuestionLabel.bottom + kRealValue(15), self.width, 35)]; + firstView.backgroundColor = UIColorHex(#EFEFEF); + [self addSubview:firstView]; + + UIView * lineOne = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 3, 35)]; + lineOne.backgroundColor = UIColorHex(#809999); + [firstView addSubview:lineOne]; + + self.firstAnswerLabel = [[UILabel alloc] initWithFrame:CGRectMake(lineOne.right + kRealValue(18), 0, self.width - kRealValue(48), 35)]; + self.firstAnswerLabel.text = @"--"; + self.firstAnswerLabel.font = MEDIUMFONT(12); + self.firstAnswerLabel.textAlignment = NSTextAlignmentLeft; + self.firstAnswerLabel.textColor = UIColorHex(#333333); + [firstView addSubview:self.firstAnswerLabel]; + + //第二个问题 + self.secendQuestionLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(20), firstView.bottom + kRealValue(15), self.width - kRealValue(30), 14)]; + self.secendQuestionLabel.text = @"2.咨询人的问题"; + self.secendQuestionLabel.font = BOLDSYSTEMFONT(14); + self.secendQuestionLabel.textAlignment = NSTextAlignmentLeft; + self.secendQuestionLabel.textColor = UIColorHex(#333333); + [self addSubview:self.secendQuestionLabel]; + + UIView * twoView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(10), self.secendQuestionLabel.bottom + kRealValue(15), self.width - kRealValue(20), 70)]; + twoView.backgroundColor = UIColorHex(#EFEFEF); + twoView.layer.cornerRadius = 10; + self.twoView = twoView; + twoView.layer.masksToBounds = true; + [self addSubview:twoView]; + + self.secendAnswerLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), 11, twoView.width - kRealValue(50), 35)]; + self.secendAnswerLabel.text = @""; + self.secendAnswerLabel.numberOfLines = 0; + self.secendAnswerLabel.font = MEDIUMFONT(12); + self.secendAnswerLabel.textAlignment = NSTextAlignmentLeft; + self.secendAnswerLabel.textColor = UIColorHex(#333333); + self.secendAnswerLabel.height = [XJDCommonUtils getSpaceLabelHeight:self.secendAnswerLabel AndLeftisTrue:true withStr:self.secendAnswerLabel.text withFont:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium] withWidth:twoView.width - kRealValue(50) withLineSpacing:5]; + [twoView addSubview:self.secendAnswerLabel]; + //图片 + self.pictureView = [[UIView alloc] initWithFrame:CGRectMake(0, twoView.bottom + kRealValue(12), self.width, 110)]; + [self addSubview: self.pictureView]; + + UILabel * pictureLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(10), 0, 140, 35)]; + pictureLabel.text = @"上传报告或者患处照片"; + pictureLabel.font = MEDIUMFONT(12); + pictureLabel.textAlignment = NSTextAlignmentLeft; + pictureLabel.textColor = UIColorHex(#666666); + [self.pictureView addSubview:pictureLabel]; + + UILabel * showLabel = [[UILabel alloc] initWithFrame:CGRectMake(140, 0, 100, 35)]; + showLabel.text = @"(仅自己和医生可见)"; + showLabel.font = MEDIUMFONT(11); + showLabel.textAlignment = NSTextAlignmentLeft; + showLabel.textColor = UIColorHex(#333333); + [self.pictureView addSubview:showLabel]; + + UILabel * numberLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.width - 10 - 50, 0, 50, 35)]; + numberLabel.text = @"-/8"; + numberLabel.font = MEDIUMFONT(11); + numberLabel.textAlignment = NSTextAlignmentRight; + numberLabel.textColor = UIColorHex(#333333); + self.numberLabel = numberLabel; + [self.pictureView addSubview:numberLabel]; + + UIScrollView * pictScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(pictureLabel.left, pictureLabel.bottom, self.width - kRealValue(20), 62)]; + self.pictScrollView = pictScrollView; + [self.pictureView addSubview:pictScrollView]; + + //第三个问题 + self.thirdQuestionTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(20),self.pictureView.bottom + kRealValue(10), self.width - kRealValue(30), 14)]; + self.thirdQuestionTitleLabel.text = @"3.咨询人是否去医院就诊过?"; + self.thirdQuestionTitleLabel.font = BOLDSYSTEMFONT(14); + self.thirdQuestionTitleLabel.textAlignment = NSTextAlignmentLeft; + self.thirdQuestionTitleLabel.textColor = UIColorHex(#333333); + [self addSubview:self.thirdQuestionTitleLabel]; + + UIView * thirdView = [[UIView alloc] initWithFrame:CGRectMake(0, self.thirdQuestionTitleLabel.bottom + kRealValue(15), self.width, 35)]; + thirdView.backgroundColor = UIColorHex(#EFEFEF); + self.thirdView = thirdView; + [self addSubview:thirdView]; + + UIView * linethird = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 3, 35)]; + linethird.backgroundColor = UIColorHex(#809999); + [thirdView addSubview:linethird]; + + self.thirdQuestionLabel = [[UILabel alloc] initWithFrame:CGRectMake(lineOne.right + kRealValue(18), 0, self.width - kRealValue(48), 35)]; + self.thirdQuestionLabel.text = @"A 就诊过"; + self.thirdQuestionLabel.font = MEDIUMFONT(12); + self.thirdQuestionLabel.textAlignment = NSTextAlignmentLeft; + self.thirdQuestionLabel.textColor = UIColorHex(#333333); + [thirdView addSubview:self.thirdQuestionLabel]; + + self.hospatilView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(8), thirdView.bottom + kRealValue(16), self.width - kRealValue(16), 67)]; + self.hospatilView.backgroundColor = UIColorHex(#EFEFEF); + self.hospatilView.layer.cornerRadius = 10; + self.hospatilView.layer.masksToBounds = true; + [self addSubview:self.hospatilView]; + + self.roomLabel = [[UILabel alloc] initWithFrame:CGRectMake(lineOne.right + kRealValue(16), kRealValue(12), self.hospatilView.width - kRealValue(20), 13)]; + self.roomLabel.text = @"就诊医院及科室:--"; + self.roomLabel.font = MEDIUMFONT(12); + self.roomLabel.textAlignment = NSTextAlignmentLeft; + self.roomLabel.textColor = UIColorHex(#333333); + [self.hospatilView addSubview:self.roomLabel]; + + self.disNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(lineOne.right + kRealValue(16), self.roomLabel.bottom + kRealValue(17) , self.hospatilView.width - kRealValue(20), 13)]; + self.disNameLabel.text = @"诊断结果:--"; + self.disNameLabel.font = MEDIUMFONT(12); + self.disNameLabel.textAlignment = NSTextAlignmentLeft; + self.disNameLabel.textColor = UIColorHex(#333333); + [self.hospatilView addSubview:self.disNameLabel]; + //第4个问题 + self.fourthQuestionLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(20), self.hospatilView.bottom + kRealValue(21), self.width - kRealValue(30), 14)]; + self.fourthQuestionLabel.text = @"4.咨询人期望得到的帮助?"; + self.fourthQuestionLabel.font = BOLDSYSTEMFONT(14); + self.fourthQuestionLabel.textAlignment = NSTextAlignmentLeft; + self.fourthQuestionLabel.textColor = UIColorHex(#333333); + [self addSubview:self.fourthQuestionLabel]; + + UIView *fourView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(10), self.fourthQuestionLabel.bottom + kRealValue(15), self.width - kRealValue(20), 70)]; + fourView.backgroundColor = UIColorHex(#EFEFEF); + fourView.layer.cornerRadius = 10; + fourView.layer.masksToBounds = true; + self.fourView = fourView; + [self addSubview:fourView]; + + self.fourthAnswerLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), 11, fourView.width - kRealValue(50), 35)]; + self.fourthAnswerLabel.text = @""; + self.fourthAnswerLabel.numberOfLines = 0; + self.fourthAnswerLabel.font = MEDIUMFONT(12); + self.fourthAnswerLabel.textAlignment = NSTextAlignmentLeft; + self.fourthAnswerLabel.textColor = UIColorHex(#333333); + self.fourthAnswerLabel.height = [XJDCommonUtils getSpaceLabelHeight:self.fourthAnswerLabel AndLeftisTrue:true withStr:self.fourthAnswerLabel.text withFont:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium] withWidth:twoView.width - kRealValue(50) withLineSpacing:5]; + [fourView addSubview:self.fourthAnswerLabel]; + + self.questionH = fourView.bottom + kRealValue(20); +} + + +- (void)setMedicalModel:(XJDRecoredconMedicalRecordsListDO *)medicalModel { + + _medicalModel = medicalModel; + [self.pictureArray removeAllObjects]; + self.firstAnswerLabel.text = _medicalModel.haveTimeValue; + self.secendAnswerLabel.text = _medicalModel.medicalDescribe; + self.secendAnswerLabel.height = [XJDCommonUtils getSpaceLabelHeight:self.secendAnswerLabel AndLeftisTrue:true withStr:self.secendAnswerLabel.text withFont:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium] withWidth: self.width - kRealValue(20) - kRealValue(50) withLineSpacing:5]; + self.twoView.height = self.secendAnswerLabel.bottom + kRealValue(25); + if (!ValidStr(_medicalModel.image)) { + NSArray * array = [_medicalModel.image componentsSeparatedByString:@","]; + self.numberLabel.text = [NSString stringWithFormat:@"%d/9",array.count]; + for (int i = 0 ; i < array.count; i ++) { + + self.pictureView.top = self.twoView.bottom + kRealValue(15); + + NSString * photo = [NSString stringWithFormat:@"%@%@",ResourceAddress,array[i]]; + + NSString * str1 = @"\\"; + + photo = [photo stringByReplacingOccurrencesOfString:str1 withString:@"/"]; + + NSString *encodedString3 = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)photo, (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]", NULL, kCFStringEncodingUTF8)); + + [self.pictureArray addObject:encodedString3]; + + UIImageView * picView = [[UIImageView alloc] initWithFrame:CGRectMake(66 * i, 0 , 60, 60)]; + picView.backgroundColor = [UIColor grayColor]; + picView.layer.cornerRadius = 5.0; + picView.layer.masksToBounds = true; + picView.userInteractionEnabled = true; + [picView sd_setImageWithURL:[NSURL URLWithString:encodedString3] placeholderImage:PLACEHOLD_IMG]; + + UIButton * imgbtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, picView.width, picView.height)]; + [imgbtn addTarget:self action:@selector(lookPicture:) forControlEvents:UIControlEventTouchUpInside]; + imgbtn.tag = 100 + i; + [picView addSubview:imgbtn]; + [self.pictScrollView addSubview:picView]; + + + } + + }else + { + self.pictureView.hidden = YES; + self.thirdQuestionTitleLabel.top = self.twoView.bottom + kRealValue(10); + self.thirdView.top = self.thirdQuestionTitleLabel.bottom + kRealValue(15); + } + + self.thirdQuestionLabel.text = _medicalModel.tfLookValue; + + if ([_medicalModel.tfLook integerValue] == 0) { + self.hospatilView.hidden = YES; + self.fourthQuestionLabel.top = self.thirdView.bottom + kRealValue(16); + self.fourView.top = self.fourthQuestionLabel.bottom + kRealValue(15); + + } + if ([_medicalModel.tfLook integerValue] == 1) { + self.hospatilView.hidden = false; + self.roomLabel.text = [NSString stringWithFormat:@"就诊医院及科室:%@",_medicalModel.lookOffice] ; + self.disNameLabel.text = [NSString stringWithFormat:@"诊断结果:%@",_medicalModel.lookMedicalName]; + self.fourthQuestionLabel.top = self.hospatilView.bottom + kRealValue(16); + self.fourView.top = self.fourthQuestionLabel.bottom + kRealValue(15); + + } + + self.fourthAnswerLabel.text = _medicalModel.desire; + + self.fourthAnswerLabel.height = [XJDCommonUtils getSpaceLabelHeight:self.fourthAnswerLabel AndLeftisTrue:true withStr:self.fourthAnswerLabel.text withFont:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium] withWidth: self.width - kRealValue(20) - kRealValue(50) withLineSpacing:5]; + self.fourView.height = self.fourthAnswerLabel.bottom + kRealValue(25); + self.questionH = self.fourView.bottom + kRealValue(20); + + +} + +- (void)lookPicture:(UIButton *)indexBtn { + + XLPhotoBrowser *browser = [XLPhotoBrowser showPhotoBrowserWithImages:self.pictureArray currentImageIndex:indexBtn.tag - 100]; + + browser.browserStyle = XLPhotoBrowserStyleSimple; // 微博样式 + + // 自定义pageControl的一些属性 + browser.pageDotColor = [UIColor purpleColor]; ///< 此属性针对动画样式的pagecontrol无效 + browser.currentPageDotColor = [UIColor greenColor]; + browser.pageControlStyle = XLPhotoBrowserPageControlStyleClassic;///< 修改底部pagecontrol的样式为系统样式,默认是弹性动画的样式 + + +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTable.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTable.h new file mode 100644 index 0000000..80ffbad --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTable.h @@ -0,0 +1,18 @@ +// +// HistoryRecordTable.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDHistoryRecordTable : UITableView + +@property (nonatomic, strong) NSArray * dataArray; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTable.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTable.m new file mode 100644 index 0000000..4ef92d4 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTable.m @@ -0,0 +1,118 @@ +// +// XJDHistoryRecordTable.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import "XJDHistoryRecordTable.h" +#import "XJDHistoryRecordTableViewCell.h" + +@interface XJDHistoryRecordTable () + +@end + +@implementation XJDHistoryRecordTable + + +- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { + + if (self = [super initWithFrame:frame style:style]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + self.delegate = self; + self.dataSource = self; + self.backgroundColor = UIColor.clearColor; + self.showsVerticalScrollIndicator = false; + self.showsHorizontalScrollIndicator = false; + self.separatorStyle = UITableViewCellSeparatorStyleNone; + self.estimatedRowHeight = 60; + self.rowHeight = UITableViewAutomaticDimension; + + + +} + +- (void)setDataArray:(NSArray *)dataArray { + + _dataArray = dataArray; + + [self reloadData]; +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 10; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return 1; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + XJDHistoryRecordTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"VIDEOCELL"]; + + if (!cell) { + + cell = [[XJDHistoryRecordTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"VIDEOCELL"]; + } + cell.backgroundColor = KWhiteColor; + cell.layer.cornerRadius = 10.0; + + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return kRealValue(12); +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +//组头 --- 组尾 + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + + + return [UIView new]; + +} + + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + + + + UIView * videoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(12))]; + + return videoView; + +} +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + + +} + + +@end + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTableViewCell.h new file mode 100644 index 0000000..b035fcb --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTableViewCell.h @@ -0,0 +1,16 @@ +// +// XJDHistoryRecordTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDHistoryRecordTableViewCell : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTableViewCell.m new file mode 100644 index 0000000..8e0badf --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDHistoryRecordTableViewCell.m @@ -0,0 +1,153 @@ +// +// XJDHistoryRecordTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import "XJDHistoryRecordTableViewCell.h" + + +@interface XJDHistoryRecordTableViewCell () + + +@property (nonatomic, strong) UILabel * typeLabel; +@property (nonatomic, strong) UILabel * statusLabel; +@property (nonatomic, strong) UILabel * nameLabel; +@property (nonatomic, strong) UILabel * ageLabel; +@property (nonatomic, strong) UILabel * timeLabel; +@property (nonatomic, strong) UILabel * cardLabel; +@property (nonatomic, strong) UILabel * canisLabel; + +@end + + +@implementation XJDHistoryRecordTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + self.typeLabel = [[UILabel alloc] init]; + self.typeLabel.text = @" 视频咨询 "; + self.typeLabel.layer.cornerRadius = 5.0; + self.typeLabel.layer.masksToBounds = true; + self.typeLabel.layer.borderColor = UIColorHex(#21BEBD).CGColor; + self.typeLabel.layer.borderWidth = 1.0f; + self.typeLabel.textColor = UIColorHex(#21BEBD); + self.typeLabel.font = SYSTEMFONT(11); + [self.contentView addSubview:self.typeLabel]; + + [self.typeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(10); + make.top.mas_offset(12); + make.height.mas_offset(21); + }]; + [self.typeLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.nameLabel = [[UILabel alloc] init]; + self.nameLabel.text = @"张三"; + self.nameLabel.textColor = CFontColor1; + self.nameLabel.font = BOLDSYSTEMFONT(14); + [self.contentView addSubview:self.nameLabel]; + + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.typeLabel.mas_right).offset(5); + make.top.mas_offset(16); + make.height.mas_offset(14); + }]; + [self.nameLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.ageLabel = [[UILabel alloc] init]; + self.ageLabel.text = @"(男/38岁)"; + self.ageLabel.textColor = CFontColor2; + self.ageLabel.font = BOLDSYSTEMFONT(14); + [self.contentView addSubview:self.ageLabel]; + + [self.ageLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.nameLabel.mas_right); + make.top.mas_offset(16); + make.height.mas_offset(14); + }]; + [self.ageLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.timeLabel = [[UILabel alloc] init]; + self.timeLabel.text = @"2023-01-05 14:23:56"; + self.timeLabel.textColor = UIColorHex(#999999); + self.timeLabel.font = BOLDSYSTEMFONT(14); + self.timeLabel.textAlignment = NSTextAlignmentRight; + [self.contentView addSubview:self.timeLabel]; + + [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(@-15); + make.top.mas_offset(12); + make.height.mas_offset(11); + }]; + [self.timeLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.cardLabel = [[UILabel alloc] init]; + self.cardLabel.text = @"610456198905167894"; + self.cardLabel.textColor = UIColorHex(#999999); + self.cardLabel.font = MEDIUMFONT(13); + [self.contentView addSubview:self.cardLabel]; + + [self.cardLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(@15); + make.top.mas_equalTo(self.typeLabel.mas_bottom).offset(12); + make.height.mas_offset(11); + }]; + [self.cardLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.statusLabel = [[UILabel alloc] init]; + self.statusLabel.text = @"已完成"; + self.statusLabel.textColor = UIColorHex(#16C716); + self.statusLabel.font = BOLDSYSTEMFONT(14); + self.statusLabel.textAlignment = NSTextAlignmentRight; + [self.contentView addSubview:self.statusLabel]; + + [self.statusLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(@-15); + make.top.mas_equalTo(self.timeLabel.mas_bottom).offset(24); + make.height.mas_offset(14); + make.width.mas_offset(90); + }]; + + self.canisLabel = [[UILabel alloc] init]; + self.canisLabel.text = @"症状:高血压、糖尿病 肾结石"; + self.canisLabel.textColor = CFontColor1; + self.canisLabel.font = MEDIUMFONT(14); + self.canisLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:self.canisLabel]; + + [self.canisLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(@14); + make.top.mas_equalTo(self.cardLabel.mas_bottom).offset(10); + make.height.mas_offset (18); + make.bottom.mas_offset(-18); + make.right.mas_offset(-15); + + }]; + + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDSearchView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDSearchView.h new file mode 100644 index 0000000..89f1368 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDSearchView.h @@ -0,0 +1,24 @@ +// +// XJDSearchView.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^searchOnclick)(NSString * fieldtext); + +@interface XJDSearchView : UIView + +@property (nonatomic, strong) NSString * searchPlacehold; + +@property (nonatomic, strong) UITextField * searchField; + +@property (nonatomic, copy) searchOnclick searchBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDSearchView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDSearchView.m new file mode 100644 index 0000000..1de3f11 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HistoryRecordView(历史记录)/XJDSearchView.m @@ -0,0 +1,97 @@ +// +// XJDSearchView.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/4/13. +// + +#import "XJDSearchView.h" + +@interface XJDSearchView () + + +@end + +@implementation XJDSearchView + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + self.searchField = [[UITextField alloc] initWithFrame:CGRectMake(kRealValue(15), 0, kScreenWidth - kRealValue(65), 35)]; + self.searchField.returnKeyType = UIReturnKeySearch; + self.searchField.delegate = self; + self.searchField.layer.cornerRadius = 18.0f; + self.searchField.layer.masksToBounds = true; + self.searchField.backgroundColor = UIColorHex(#F1F1F1); + //搜索图标 + + UIView * leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 37, 35)]; + + UIImageView *view = [[UIImageView alloc] init]; + //设置图片控制器的的图片 + view.image = [UIImage imageNamed:@"searchLeftIcon"]; + //设置图片的frame + view.width = 15; + view.height = 15; + view.center= leftView.center; + //左边搜索图标的模式 + view.contentMode = UIViewContentModeCenter; + [leftView addSubview:view]; + self.searchField.leftView = leftView; + //左边搜索图标总是显示 + self.searchField.leftViewMode = UITextFieldViewModeAlways; + //右边删除所有图标 + self.searchField.clearButtonMode = UITextFieldViewModeAlways; + + [self addSubview:self.searchField]; + + UIButton * seachBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.searchField.right, 0, 50, 35)]; + [seachBtn setTitle:@"搜索" forState:UIControlStateNormal]; + seachBtn.titleLabel.font = SYSTEMFONT(13); + [seachBtn setTitleColor:CFontColor2 forState:UIControlStateNormal]; + [seachBtn addTarget:self action:@selector(searchAction) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:seachBtn]; + +} + +- (void)setSearchPlacehold:(NSString *)searchPlacehold { + + _searchPlacehold = searchPlacehold; + + NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:_searchPlacehold attributes: + @{NSForegroundColorAttributeName:[UIColor grayColor], + NSFontAttributeName:SYSTEMFONT(13)} + ]; + self.searchField.attributedPlaceholder = attrString; + +} + +- (BOOL)textFieldShouldReturn:(UITextField*)theTextField { + + [theTextField resignFirstResponder]; + + if (self.searchBlock) { + + self.searchBlock(theTextField.text); + } + return YES; +} + +- (void)searchAction { + + if (self.searchBlock) { + + self.searchBlock(self.searchField.text); + } +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/HospitalSelectedTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/HospitalSelectedTableViewCell.h deleted file mode 100644 index 00ec822..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/HospitalSelectedTableViewCell.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// HospitalSelectedTableViewCell.h -// healthQuestion -// -// Created by 仁康信息 on 2022/9/19. -// - -#import -#import "YXHospitalModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface HospitalSelectedTableViewCell : UITableViewCell - -@property (nonatomic, strong) YXHospitalModel * model; - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedTableViewCell.h new file mode 100644 index 0000000..74e5762 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedTableViewCell.h @@ -0,0 +1,19 @@ +// +// XJDHospitalSelectedTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2022/9/19. +// + +#import +#import "XJDHospitalModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDHospitalSelectedTableViewCell : UITableViewCell + +@property (nonatomic, strong) XJDHospitalModel * model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedTableViewCell.m new file mode 100644 index 0000000..6debb07 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedTableViewCell.m @@ -0,0 +1,97 @@ +// +// XJDHospitalSelectedTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2022/9/19. +// + +#import "XJDHospitalSelectedTableViewCell.h" + +@interface XJDHospitalSelectedTableViewCell ( ) + +@property (nonatomic, strong) UIImageView * hospitalImage; + +@property (nonatomic, strong) UILabel * hospitalName; + +@property (nonatomic, strong) UIButton * sureButton; + +@end + +@implementation XJDHospitalSelectedTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + self.hospitalImage = [[UIImageView alloc] init]; + self.hospitalImage.backgroundColor = [UIColor orangeColor]; + [self.contentView addSubview:self.hospitalImage]; + + self.hospitalName = [[UILabel alloc] init]; + self.hospitalName.textAlignment = NSTextAlignmentLeft; + self.hospitalName.font = SYSTEMFONT(15); + self.hospitalName.textColor = CFontColor1; + [self.contentView addSubview:self.hospitalName]; + + self.sureButton = [[UIButton alloc] init]; + [self.sureButton setImage:IMAGE_NAMED(@"chooseCircle") forState:UIControlStateNormal]; + [self.sureButton setImage:IMAGE_NAMED(@"closeImage") forState:UIControlStateSelected]; + [self.sureButton addTarget:self action:@selector(hospitalChoose) forControlEvents:UIControlEventTouchUpInside]; + self.sureButton.selected = true; + self.sureButton.userInteractionEnabled = true; + [self.contentView addSubview:self.sureButton]; + + + [self.hospitalImage mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(@20); + make.top.mas_equalTo(@0); + make.width.height.mas_equalTo(44); + }]; + + [self.sureButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(@-17); + make.width.height.mas_equalTo(@25); + make.centerY.mas_equalTo(self.hospitalImage); + }]; + + [self.hospitalName mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.hospitalImage.mas_right).offset(12); + make.right.mas_equalTo(self.sureButton.mas_left).offset(-10); + make.top.mas_equalTo(@15); + make.height.mas_equalTo(@16); + }]; + + +} + + +- (void)hospitalChoose { + + + +} + +- (void)setModel:(XJDHospitalModel *)model { + _model = model; + self.hospitalName.text = [NSString stringWithFormat:@"%@",_model.hospitalName]; + self.sureButton.selected = model.isChoose; +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedView.h new file mode 100644 index 0000000..eb2a9c5 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedView.h @@ -0,0 +1,23 @@ +// +// XJDHospitalSelectedView.h +// healthQuestion +// +// Created by 仁康信息 on 2022/9/19. +// + +#import +#import "XJDHospitalSelectedTableViewCell.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^hospotalSelectBlock)(NSString * hospalalName); + +@interface XJDHospitalSelectedView : UIView + +@property (nonatomic, strong) NSArray * dataArray; + +@property (nonatomic, copy) hospotalSelectBlock hospatlBlcok; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedView.m new file mode 100644 index 0000000..9705df9 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/HospitalSelected/XJDHospitalSelectedView.m @@ -0,0 +1,206 @@ +// +// XJDHospitalSelectedView.m +// healthQuestion +// +// Created by 仁康信息 on 2022/9/19. +// + +#import "XJDHospitalSelectedView.h" + +@interface XJDHospitalSelectedView () + +@property (nonatomic,strong)UITableView * tableView; + +@end + +@implementation XJDHospitalSelectedView + + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + self.backgroundColor = RGBA(51, 59, 66,0.7); + [self createUI]; + } + + return self; +} + +- (void)createUI { + + UIView * centerView = [[UIView alloc] init]; + centerView.layer.masksToBounds = true; + centerView.layer.cornerRadius = 4; + centerView.backgroundColor = [UIColor whiteColor]; + [self addSubview:centerView]; + + UIView * headView = [[UIView alloc] init]; + headView.backgroundColor = KWhiteColor; + [centerView addSubview:headView]; + + UILabel * headLabel = [[UILabel alloc] init]; + headLabel.text = @"选择医院"; + headLabel.textColor = CFontColor1; + headLabel.font = BOLDSYSTEMFONT(16); + headLabel.textAlignment = NSTextAlignmentCenter; + [headView addSubview:headLabel]; + + + self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.tableView.delegate = self; + self.tableView.dataSource = self; + self.tableView.backgroundColor = KWhiteColor; + self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + [centerView addSubview:self.tableView]; + + UIButton * bottomBtn = [[UIButton alloc] init]; + [bottomBtn setBackgroundColor:UIColorHex(#BD130B)]; + [bottomBtn setTitle:@"确定" forState:UIControlStateNormal]; + [bottomBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + [centerView addSubview:bottomBtn]; + + UIButton * closeBtn = [[UIButton alloc] init]; + [closeBtn setImage:IMAGE_NAMED(@"closeImage") forState:UIControlStateNormal]; + [closeBtn addTarget:self action:@selector(closePopView) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:closeBtn]; + + [centerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kScreenWidth -30); + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(@376); + make.top.mas_equalTo(@172); + }]; + + [headView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(@50); + make.width.top.mas_equalTo(centerView); + }]; + + [headLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(@17); + make.height.mas_equalTo(@16); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(headView.mas_bottom).offset(18); + make.bottom.mas_equalTo(bottomBtn.mas_top).offset(-20); + }]; + + [bottomBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(@290); + make.centerX.mas_equalTo(centerView); + make.bottom.mas_equalTo(@-20); + }]; + + [closeBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(centerView.mas_bottom).offset(26); + make.height.width.mas_equalTo(@32); + }]; + + + +} + +- (void)setDataArray:(NSArray *)dataArray { + _dataArray = dataArray; + [self.tableView reloadData]; +} + + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 1; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return self.dataArray.count; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + XJDHospitalSelectedTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"HospitalCELL"]; + if (!cell) { + + cell = [[XJDHospitalSelectedTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"HospitalCELL"]; + } + cell.backgroundColor = KWhiteColor; + cell.model = self.dataArray[indexPath.row]; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + +} +//每行高度 +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + + return kRealValue(55); +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +//组头 --- 组尾 + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + + + return [UIView new]; + +} + + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + + + return [UIView new]; + +} +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + + XJDHospitalModel * model = self.dataArray[indexPath.row]; + + for (XJDHospitalModel * subModel in self.dataArray) { + + if (subModel == model) { + subModel.isChoose = true; + }else + { + subModel.isChoose = false; + } + } + [self.tableView reloadData]; + if (self.hospatlBlcok) { + + self.hospatlBlcok(@"西安市中医院"); + } + +} + +- (void)closePopView { + + [self removeFromSuperview]; +} + +@end + + + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLIfeManagerFooterView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLIfeManagerFooterView.h new file mode 100644 index 0000000..d57bef2 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLIfeManagerFooterView.h @@ -0,0 +1,13 @@ +// +// XJDLIfeManagerFooterView.h +// shan +// +// Created by aDu on 2016/12/7. +// Copyright © 2016年 DuKaiShun. All rights reserved. +// + +#import + +@interface XJDLIfeManagerFooterView : UICollectionReusableView + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLIfeManagerFooterView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLIfeManagerFooterView.m new file mode 100644 index 0000000..f7848f7 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLIfeManagerFooterView.m @@ -0,0 +1,22 @@ +// +// XJDLIfeManagerFooterView.m +// shan +// +// Created by aDu on 2016/12/7. +// Copyright © 2016年 DuKaiShun. All rights reserved. +// + +#import "XJDLIfeManagerFooterView.h" + +@implementation XJDLIfeManagerFooterView + +- (id)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + self.backgroundColor = [UIColor grayColor]; + } + return self; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerCell.h new file mode 100644 index 0000000..7cae448 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerCell.h @@ -0,0 +1,28 @@ +// +// XJDLifeManagerCell.h +// shan +// +// Created by aDu on 2016/12/5. +// Copyright © 2016年 DuKaiShun. All rights reserved. +// + +#import +#import "XJDToolsModel.h" + +@interface XJDLifeManagerCell : UICollectionViewCell + +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIButton *button; +@property (nonatomic, strong) XJDToolsModel *model; + +@property (nonatomic, assign) BOOL inEditState; //是否处于编辑状态 + +- (void)setModel:(XJDToolsModel *)model indexPaht:(NSIndexPath *)indexPath exist:(BOOL)exist; + +- (void)setDataAry:(NSMutableArray *)dataAry groupAry:(NSMutableArray *)groupAry indexPath:(NSIndexPath *)indexPath; + +@property (nonatomic, strong) UILabel *messageLabel; + +- (void)addMeaageLabel; + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerCell.m new file mode 100644 index 0000000..92166b0 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerCell.m @@ -0,0 +1,157 @@ +// +// XJDLifeManagerCell.m +// shan +// +// Created by aDu on 2016/12/5. +// Copyright © 2016年 DuKaiShun. All rights reserved. +// + +#import "XJDLifeManagerCell.h" +#import "Masonry.h" + +@interface XJDLifeManagerCell () + +@property (nonatomic, strong) UIImageView *imageView; + +@end + +@implementation XJDLifeManagerCell + +- (id)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + self.backgroundColor = [UIColor whiteColor]; + + [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).with.insets(UIEdgeInsetsMake(10, 15, 15, 15)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.imageView.mas_bottom); + make.bottom.equalTo(self.mas_bottom); + make.left.and.right.equalTo(self); + }]; + + [self.button mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.mas_top); + make.right.equalTo(self.mas_right); + make.height.equalTo(@15); + make.width.equalTo(@15); + }]; + self.button.hidden = YES; + } + return self; +} + +- (void)addMeaageLabel +{ + [self.messageLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).insets(UIEdgeInsetsMake(0, 0, 0, 0)); + }]; +} + +- (void)setModel:(XJDToolsModel *)model indexPaht:(NSIndexPath *)indexPath exist:(BOOL)exist +{ + if (_model != model) { + self.titleLabel.text = model.title; + if (indexPath.section == 0) { + [self.button setBackgroundImage:[UIImage imageNamed:@"life_reduce"] forState:UIControlStateNormal]; + self.button.userInteractionEnabled = YES; + } else { + if (exist) { + [self.button setBackgroundImage:[UIImage imageNamed:@"life_exist"] forState:UIControlStateNormal]; + self.button.userInteractionEnabled = NO; + } else { + [self.button setBackgroundImage:[UIImage imageNamed:@"life_add"] forState:UIControlStateNormal]; + self.button.userInteractionEnabled = YES; + } + } + } + _model = model; +} + +- (void)setDataAry:(NSMutableArray *)dataAry groupAry:(NSMutableArray *)groupAry indexPath:(NSIndexPath *)indexPath +{ + XJDToolsModel *model; + if (indexPath.section == 0) { + model = dataAry[indexPath.row]; + } else { + model = groupAry[indexPath.row]; + } + self.titleLabel.text = model.title; + if (indexPath.section == 0) { + self.button.userInteractionEnabled = YES; + [self.button setBackgroundImage:[UIImage imageNamed:@"life_reduce"] forState:UIControlStateNormal]; + } else { + if ([dataAry containsObject:model]) { + self.button.userInteractionEnabled = NO; + [self.button setBackgroundImage:[UIImage imageNamed:@"life_exist"] forState:UIControlStateNormal]; + } else { + self.button.userInteractionEnabled = YES; + [self.button setBackgroundImage:[UIImage imageNamed:@"life_add"] forState:UIControlStateNormal]; + } + } +} + +#pragma mark - 是否处于编辑状态 + +- (void)setInEditState:(BOOL)inEditState +{ + if (inEditState && _inEditState != inEditState) { + self.layer.borderWidth = 0.5; + self.layer.borderColor = [UIColor grayColor].CGColor; + self.button.hidden = NO; + } else { + self.layer.borderColor = [UIColor clearColor].CGColor; + self.button.hidden = YES; + } +} + +#pragma mark - init + +- (UIImageView *)imageView +{ + if (!_imageView) { + _imageView = [[UIImageView alloc] init]; + _imageView.image = [UIImage imageNamed:@"wallet_payChange"]; + [self addSubview:_imageView]; + } + return _imageView; +} + +- (UILabel *)titleLabel +{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + [self addSubview:_titleLabel]; + } + return _titleLabel; +} + +- (UILabel *)messageLabel +{ + if (!_messageLabel) { + _messageLabel = [[UILabel alloc] init]; + _messageLabel.font = [UIFont systemFontOfSize:12]; + _messageLabel.textColor = [UIColor grayColor]; + _messageLabel.textAlignment = NSTextAlignmentCenter; + _messageLabel.text = @"您还未添加任何应用\n长按下面的应用可以添加"; + [self addSubview:_messageLabel]; + } + return _messageLabel; +} + +- (UIButton *)button +{ + if (!_button) { + _button = [UIButton buttonWithType:UIButtonTypeCustom]; + _button.layer.cornerRadius = 7.5; + [self addSubview:_button]; + } + return _button; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerHeaderView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerHeaderView.h new file mode 100644 index 0000000..90926c5 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerHeaderView.h @@ -0,0 +1,15 @@ +// +// XJDLifeManagerHeaderView.h +// shan +// +// Created by aDu on 2016/12/7. +// Copyright © 2016年 DuKaiShun. All rights reserved. +// + +#import + +@interface XJDLifeManagerHeaderView : UICollectionReusableView + +@property (nonatomic, strong) UILabel *headLabel; + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerHeaderView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerHeaderView.m new file mode 100644 index 0000000..c0e73c7 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerHeaderView.m @@ -0,0 +1,32 @@ +// +// XJDLifeManagerHeaderView.m +// shan +// +// Created by aDu on 2016/12/7. +// Copyright © 2016年 DuKaiShun. All rights reserved. +// + +#import "XJDLifeManagerHeaderView.h" + +@implementation XJDLifeManagerHeaderView + +- (id)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self addSubview:self.headLabel]; + } + return self; +} + +- (UILabel *)headLabel +{ + if (!_headLabel) { + _headLabel = [UILabel new]; + _headLabel.font = [UIFont systemFontOfSize:16]; + _headLabel.frame = CGRectMake(16, 0, 150, 20); + } + return _headLabel; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerLayout.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerLayout.h new file mode 100644 index 0000000..cd9a8e6 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerLayout.h @@ -0,0 +1,30 @@ +// +// XJDLifeManagerLayout.h +// shan +// +// Created by aDu on 2016/12/6. +// Copyright © 2016年 DuKaiShun. All rights reserved. +// + +#import + +@protocol XJDLifeManagerDelegate + +/** + * 更新数据源 + */ +- (void)moveItemAtIndexPath:(NSIndexPath *)formPath toIndexPath:(NSIndexPath *)toPath; + +/** + * 改变编辑状态 + */ +- (void)didChangeEditState:(BOOL)inEditState; + +@end + +@interface XJDLifeManagerLayout : UICollectionViewFlowLayout + +@property (nonatomic, assign) BOOL inEditState; //检测是否处于编辑状态 +@property (nonatomic, weak) id delegate; + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerLayout.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerLayout.m new file mode 100644 index 0000000..44425ff --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/MoveAddDelete/XJDLifeManagerLayout.m @@ -0,0 +1,156 @@ +// +// XJDLifeManagerLayout.m +// shan +// +// Created by aDu on 2016/12/6. +// Copyright © 2016年 DuKaiShun. All rights reserved. +// + +#import "XJDLifeManagerLayout.h" +#import "XJDLifeManagerCell.h" +#import "XJDToolsModel.h" + +@interface XJDLifeManagerLayout () + +@property (nonatomic, strong) UILongPressGestureRecognizer *longGesture; +@property (nonatomic, strong) NSIndexPath *currentIndexPath; //当前indexPath +@property (nonatomic, assign) CGPoint movePoint; //移动的中心点 +@property (nonatomic, strong) UIView *moveView; //移动的视图 + +@end + +@implementation XJDLifeManagerLayout + +- (id)initWithCoder:(NSCoder *)aDecoder +{ + self = [super initWithCoder:aDecoder]; + if (self) { + [self configureObserver]; + } + return self; +} + +- (instancetype)init +{ + self = [super init]; + if (self) { + [self configureObserver]; + } + return self; +} + +#pragma mark - 添加观察者 + +- (void)configureObserver +{ + [self addObserver:self forKeyPath:@"collectionView" options:NSKeyValueObservingOptionNew context:nil]; +} + +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context +{ + if ([keyPath isEqualToString:@"collectionView"]) { + [self setUpGestureRecognizers]; + } else { + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } +} + +#pragma mark - 长按手势 + +- (void)setUpGestureRecognizers +{ + if (self.collectionView == nil) { + return; + } + _longGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longGesture:)]; + _longGesture.minimumPressDuration = 0.3f; //时间长短 + _longGesture.delegate = self; + [self.collectionView addGestureRecognizer:_longGesture]; +} + +#pragma mark - 手势动画 + +- (void)longGesture:(UILongPressGestureRecognizer *)gesture +{ + if (!self.inEditState) { + [self setInEditState:YES]; + } + switch (gesture.state) { + case UIGestureRecognizerStateBegan: { //手势开始 + CGPoint location = [gesture locationInView:self.collectionView]; + //找到当前点击的cell的位置 + NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:location]; + //判断哪个分区可以被点击并且移动 + if (indexPath == nil || indexPath.section != 0) return; + self.currentIndexPath = indexPath; + UICollectionViewCell *targetCell = [self.collectionView cellForItemAtIndexPath:self.currentIndexPath]; + //得到当前cell的映射(截图) + self.moveView = [targetCell snapshotViewAfterScreenUpdates:YES]; + //隐藏被点击的cell + targetCell.hidden = YES; + //给截图添加上边框,如果不添加的话,截图有一部分是没有边框的,具体原因也没有找到 + self.moveView.layer.borderWidth = 0.5; + self.moveView.layer.borderColor = [UIColor grayColor].CGColor; + [self.collectionView addSubview:self.moveView]; + //放大截图 + self.moveView.transform = CGAffineTransformMakeScale(1.1, 1.1); + self.moveView.center = targetCell.center; + } + break; + case UIGestureRecognizerStateChanged: { //手势在变化 + CGPoint point = [gesture locationInView:self.collectionView]; + //更新cell的位置 + self.moveView.center = point; + NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:point]; + if (indexPath == nil) return; + if (indexPath.section == self.currentIndexPath.section && indexPath.section == 0) { + //通过代理去改变数据源 + if ([self.delegate respondsToSelector:@selector(moveItemAtIndexPath:toIndexPath:)]) { + [self.delegate moveItemAtIndexPath:self.currentIndexPath toIndexPath:indexPath]; + } + //移动的方法 + [self.collectionView moveItemAtIndexPath:self.currentIndexPath toIndexPath:indexPath]; + self.currentIndexPath = indexPath; + } + } + break; + case UIGestureRecognizerStateEnded: { //手势结束 + UICollectionViewCell *cell = [self.collectionView cellForItemAtIndexPath:self.currentIndexPath]; + //手势结束后,把截图隐藏,显示出原先的cell + [UIView animateWithDuration:0.25 animations:^{ + self.moveView.center = cell.center; + } completion:^(BOOL finished) { + [self.moveView removeFromSuperview]; + cell.hidden = NO; + self.moveView = nil; + self.currentIndexPath = nil; + [self.collectionView reloadData]; + }]; + } + break; + default: + break; + } +} + +#pragma mark - 处于编辑状态 + +- (void)setInEditState:(BOOL)inEditState +{ + if (_inEditState != inEditState) { + //通过代理方法改变处于编辑状态的cell + if (_delegate && [_delegate respondsToSelector:@selector(didChangeEditState:)]) { + [_delegate didChangeEditState:inEditState]; + } + } + _inEditState = inEditState; +} + +#pragma mark - 移除观察者 + +- (void)dealloc +{ + [self removeObserver:self forKeyPath:@"collectionView"]; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/QuestionRecordTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/QuestionRecordTableViewCell.h deleted file mode 100644 index 7e44b2f..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/QuestionRecordTableViewCell.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// QuestionRecordTableViewCell.h -// healthQuestion -// -// Created by 仁康信息 on 2023/4/28. -// - -#import -#import "YXQuestionRecordModel.h" -#import "YXRecordIMListDateModel.h" -NS_ASSUME_NONNULL_BEGIN - -@interface QuestionRecordTableViewCell : UITableViewCell - -@property (nonatomic, strong) YXRecordIMListDateModel * IMModel; -//@property (nonatomic, strong) YXQuestionRecordModel * model; - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecordTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecordTableViewCell.h new file mode 100644 index 0000000..1ee5ce5 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecordTableViewCell.h @@ -0,0 +1,20 @@ +// +// XJDQuestionRecordTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import +#import "XJDQuestionRecordModel.h" +#import "XJDRecordIMListDateModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface XJDQuestionRecordTableViewCell : UITableViewCell + +@property (nonatomic, strong) XJDRecordIMListDateModel * IMModel; +//@property (nonatomic, strong) YXQuestionRecordModel * model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecordTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecordTableViewCell.m new file mode 100644 index 0000000..97a72f9 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecordTableViewCell.m @@ -0,0 +1,171 @@ +// +// XJDQuestionRecordTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "XJDQuestionRecordTableViewCell.h" + +@interface XJDQuestionRecordTableViewCell () + +@property (nonatomic, strong) UILabel * nameLabel; + +@property (nonatomic, strong) UILabel * ageLabel; + +@property (nonatomic, strong) UILabel * timeLabel; + +@property (nonatomic, strong) UILabel * diseaseLabel; + +@property (nonatomic, strong) UILabel * numberLabel; + + +@end + +@implementation XJDQuestionRecordTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + + } + + return self; + +} + +- (void)createUI { + + UIView * backView = [[UIView alloc] init]; + backView.backgroundColor = KWhiteColor; + backView.layer.cornerRadius = 10.0; + backView.layer.masksToBounds = true; + [self.contentView addSubview:backView]; + [backView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(15); + make.top.mas_offset(0); + make.right.mas_offset(-15); + make.bottom.mas_offset(-5); + }]; + + self.nameLabel = [[UILabel alloc] init]; + self.nameLabel.text = @"--"; + self.nameLabel.font = SYSTEMFONT(14); + self.nameLabel.textAlignment = NSTextAlignmentLeft; + self.nameLabel.textColor = CFontColor1; + [backView addSubview:self.nameLabel]; + + [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_offset(15); + make.height.mas_offset(13); + }]; + [self.nameLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.ageLabel = [[UILabel alloc] init]; + self.ageLabel.text = @"(--)"; + self.ageLabel.font = SYSTEMFONT(13); + self.ageLabel.textColor = UIColorHex(#999999); + self.ageLabel.textAlignment = NSTextAlignmentLeft; + [backView addSubview:self.ageLabel]; + + [self.ageLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_offset(15); + make.left.mas_equalTo(self.nameLabel.mas_right).offset(2); + make.height.mas_offset(13); + }]; + [self.ageLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.timeLabel = [[UILabel alloc] init]; + + self.timeLabel.font = SYSTEMFONT(13); + self.timeLabel.textColor = UIColorHex(#999999); + self.timeLabel.textAlignment = NSTextAlignmentLeft; + [backView addSubview:self.timeLabel]; + + [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.nameLabel.mas_bottom).offset(15); + make.left.mas_equalTo(self.nameLabel); + make.right.mas_offset(-15); + make.height.mas_offset(13); + make.bottom.mas_offset(-10); + }]; + + self.numberLabel = [[UILabel alloc] init]; + self.numberLabel.text = @"5"; + self.numberLabel.font = MEDIUMFONT(13); + self.numberLabel.textColor =KWhiteColor; + self.numberLabel.textAlignment = NSTextAlignmentCenter; + self.numberLabel.backgroundColor = UIColorHex(#21BEBD); + self.numberLabel.layer.cornerRadius = 8; + self.numberLabel.layer.masksToBounds = true; + [backView addSubview:self.numberLabel]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.nameLabel.mas_bottom).offset(5); + make.right.mas_equalTo(@-15); + make.height.width.mas_offset(15); + }]; + +// self.diseaseLabel = [[UILabel alloc] init]; +// self.diseaseLabel.text = @"症状:高血压、糖尿病症状:高血压、糖尿病症状:高血压、糖尿病症状:高血压、糖尿病症状:高血压、糖尿病症状:高血压、糖尿病"; +// self.diseaseLabel.font = MEDIUMFONT(13); +// self.diseaseLabel.numberOfLines = 0; +// self.diseaseLabel.textColor = UIColorHex(#333333); +// self.diseaseLabel.textAlignment = NSTextAlignmentLeft; +// [backView addSubview:self.diseaseLabel]; +// +// [self.diseaseLabel mas_makeConstraints:^(MASConstraintMaker *make) { +// make.top.mas_equalTo(self.nameLabel.mas_bottom).offset(16); +// make.left.mas_equalTo(@15); +// make.right.mas_equalTo(self.numberLabel.mas_left).offset(-8); +// make.bottom.mas_offset(-20); +// }]; +// +// [self.diseaseLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + +} + +//- (void)setModel:(YXQuestionRecordModel *)model { +// +// _model = model; +// +// self.nameLabel.text = model.memberName; +// NSString * sexString = [_model.memberSex intValue] == 1 ? @"女":@"男"; +// self.ageLabel.text = [NSString stringWithFormat:@"(%@%@)",_model.memberAge,sexString]; +// self.timeLabel.text = _model.createTime; +//// self.numberLabel.text = [NSString stringWithFormat:@"%@",_model.] +//} + +- (void)setIMModel:(XJDRecordIMListDateModel *)IMModel { + + _IMModel = IMModel; + + self.nameLabel.text = _IMModel.memberName; + NSString * sexString = [_IMModel.memberSex intValue] == 1 ? @"女":@"男"; + self.ageLabel.text = [NSString stringWithFormat:@"(%@/%@岁)",sexString,_IMModel.memberAge]; + self.timeLabel.text = _IMModel.createTime; + if ([_IMModel.unRedMessage integerValue] != 0) { + self.numberLabel.hidden = NO; + self.numberLabel.text = [NSString stringWithFormat:@"%@",_IMModel.unRedMessage]; + }else + { + self.numberLabel.hidden = YES; + } + +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecoredTable.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecoredTable.h new file mode 100644 index 0000000..84e389c --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecoredTable.h @@ -0,0 +1,25 @@ +// +// XJDQuestionRecoredTable.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import +#import "XJDRecordIMListDateModel.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^RecoredQuestionListClick)(XJDRecordIMListDateModel * _Nonnull model ); +typedef void(^VideoRecoredQuestionListClick)(XJDRecordIMListDateModel * _Nonnull model ); + +@interface XJDQuestionRecoredTable : UITableView + +@property (nonatomic, strong) NSArray * dataArray; + +@property (nonatomic, copy) RecoredQuestionListClick recordBlock; +@property (nonatomic, copy) VideoRecoredQuestionListClick videoBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecoredTable.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecoredTable.m new file mode 100644 index 0000000..1b6dd48 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/QuestionRecordView/XJDQuestionRecoredTable.m @@ -0,0 +1,141 @@ +// +// XJDQuestionRecoredTable.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/28. +// + +#import "XJDQuestionRecoredTable.h" +#import "XJDQuestionRecordTableViewCell.h" + + +@interface XJDQuestionRecoredTable () + + +@end + + +@implementation XJDQuestionRecoredTable + + +- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { + + if (self = [super initWithFrame:frame style:style]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + if (@available(iOS 11.0, *)) { + self.estimatedRowHeight = 0; + self.estimatedSectionFooterHeight = 0; + self.estimatedSectionHeaderHeight = 0; + self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + self.delegate = self; + self.dataSource = self; + self.backgroundColor = UIColor.clearColor; + self.showsVerticalScrollIndicator = false; + self.showsHorizontalScrollIndicator = false; + self.separatorStyle = UITableViewCellSeparatorStyleNone; + self.estimatedRowHeight = 60; + self.rowHeight = UITableViewAutomaticDimension; + +} + +- (void)setDataArray:(NSArray *)dataArray { + + _dataArray = dataArray; + + [self reloadData]; +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return self.dataArray.count; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return 1; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + XJDQuestionRecordTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"STATUSCELL"]; + if (!cell) { + + cell = [[XJDQuestionRecordTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"STATUSCELL"]; + } + cell.backgroundColor = KClearColor; + + cell.IMModel = self.dataArray[indexPath.section]; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + + + +} +//每行高度 +//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +//{ +// return kRealValue(77); +//} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return kRealValue(5); +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +//组头 --- 组尾 + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + + + return [UIView new]; + +} + + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + + + + UIView * footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(10))]; + + + return footerView; + +} +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + XJDRecordIMListDateModel * IMModel = self.dataArray[indexPath.section]; + + if (self.recordBlock) { + + self.recordBlock(IMModel); + } + if (self.videoBlock) { + + self.videoBlock(IMModel); + } + +} + + +@end + + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionPopView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionPopView.h new file mode 100644 index 0000000..2de0054 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionPopView.h @@ -0,0 +1,22 @@ +// +// XJDStopQuestionPopView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^surePublishBlock)(); + +@interface XJDStopQuestionPopView : UIView + +@property (nonatomic, copy) NSString * questionNumber; + +@property (nonatomic, copy) surePublishBlock publisBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionPopView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionPopView.m new file mode 100644 index 0000000..4c59ab1 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionPopView.m @@ -0,0 +1,148 @@ +// +// XJDStopQuestionPopView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/30. +// + +#import "XJDStopQuestionPopView.h" + +@interface XJDStopQuestionPopView () + +@property (nonatomic, strong) UILabel * questionLabel ; +@property (nonatomic, strong) UILabel * publishLabel ; + +@end + +@implementation XJDStopQuestionPopView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + } + return self; + +} + + +- (void)createUI { + + self.backgroundColor = RGBA(0, 0, 0, 0.3); + + UIView * popView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(56), kRealValue(176), kScreenWidth - kRealValue(112), kRealValue(253))]; + + popView.backgroundColor = KWhiteColor; + + popView.layer.cornerRadius = 10.0f; + + popView.layer.masksToBounds = true; + + [self addSubview:popView]; + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, kRealValue(20), popView.width, 14)]; + titleLabel.text = @"系统提示"; + titleLabel.font = SYSTEMFONT(14); + titleLabel.textAlignment = NSTextAlignmentCenter; + titleLabel.textColor = CFontColor1; + [popView addSubview:titleLabel]; + + UILabel * stopLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), titleLabel.bottom + kRealValue(17), popView.width - kRealValue(32), 34)]; + stopLabel.text = @"您当前设置的暂停时间段有正在进行中的咨询:"; + stopLabel.font = SYSTEMFONT(13); + stopLabel.numberOfLines = 2; + stopLabel.textAlignment = NSTextAlignmentLeft; + stopLabel.textColor = UIColorHex(#666666); + [popView addSubview:stopLabel]; + + UIView * questionView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(14),stopLabel.bottom + kRealValue(9), popView.width - kRealValue(28), kRealValue(44))]; + + questionView.backgroundColor = RGBA(33, 190, 189, 0.3); + + questionView.layer.cornerRadius = 10.0f; + + questionView.layer.masksToBounds = true; + + [popView addSubview:questionView]; + + UIImageView * iconImg = [[UIImageView alloc] initWithFrame:CGRectMake(kRealValue(32), kRealValue(17), 10, 10)]; + iconImg.image = [UIImage imageNamed:@"stopPopIcon"]; + [questionView addSubview:iconImg]; + + UILabel * questionLabel = [[UILabel alloc] initWithFrame:CGRectMake(iconImg.right + kRealValue(5),0, popView.width - 50, questionView.height)]; + questionLabel.text = @"视频咨询:1"; + questionLabel.font = SYSTEMFONT(13); + questionLabel.textAlignment = NSTextAlignmentLeft; + questionLabel.textColor = CFontColor1; + self.questionLabel = questionLabel; + [questionView addSubview:questionLabel]; + + + + UILabel * publishLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16),questionView.bottom + kRealValue(11), popView.width - kRealValue(32), 34)]; + publishLabel.text = @"发布后,这2个咨询将被系统自动取消,确认是否发布?"; + self.publishLabel = publishLabel; + publishLabel.font = SYSTEMFONT(13); + publishLabel.textAlignment = NSTextAlignmentLeft; + publishLabel.numberOfLines = 0; + publishLabel.textColor = CFontColor1; + [popView addSubview:publishLabel]; + + UIView * rowLin = [[UIView alloc] initWithFrame:CGRectMake(0, popView.height - kRealValue(49), popView.width, 1)]; + rowLin.backgroundColor = UIColorHex(#E0E0E0); + [popView addSubview:rowLin]; + + + + UIButton * cancelbtn = [[UIButton alloc] initWithFrame:CGRectMake(0, rowLin.bottom , popView.width/2, 48)]; + + [cancelbtn setTitle:@"取消" forState:UIControlStateNormal]; + cancelbtn.titleLabel.font = SYSTEMFONT(13); + [cancelbtn setTitleColor:UIColorHex(#666666) forState:UIControlStateNormal]; + [cancelbtn addTarget:self action:@selector(cancelAction) forControlEvents:UIControlEventTouchUpInside]; + [popView addSubview:cancelbtn]; + + UIButton * pubbtn = [[UIButton alloc] initWithFrame:CGRectMake(popView.width/2, rowLin.bottom , popView.width/2, 48)]; + [pubbtn setTitle:@"发布" forState:UIControlStateNormal]; + [pubbtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + [pubbtn addTarget:self action:@selector(publishSureAction) forControlEvents:UIControlEventTouchUpInside]; + pubbtn.titleLabel.font = SYSTEMFONT(13); + + [popView addSubview:pubbtn]; + + + UIView * cowLin = [[UIView alloc] initWithFrame:CGRectMake(popView.width/2 - 1, popView.height - kRealValue(49), 1, kRealValue(49))]; + cowLin.backgroundColor = UIColorHex(#E0E0E0); + [popView addSubview:cowLin]; +} + +-(void)cancelAction { + + [self removeFromSuperview]; +} + +- (void)publishSureAction { + + if (self.publisBlock) { + self.publisBlock(); + } + +} +- (void)setQuestionNumber:(NSString *)questionNumber { + + _questionNumber = questionNumber; + + self.questionLabel.text = [NSString stringWithFormat:@"视频咨询:%@",_questionNumber]; + self.publishLabel.text = [NSString stringWithFormat:@"发布后,这%@个咨询将被系统自动取消,确认是否发布?", _questionNumber]; +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableView.h new file mode 100644 index 0000000..07a1750 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableView.h @@ -0,0 +1,21 @@ +// +// StopQuestionView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/29. +// + +#import +#import "XJDStopQuestionTableViewCell.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDStopQuestionTableView : UITableView + +@property (nonatomic, strong) NSArray * dataArray; + +@property (nonatomic, copy) chageServiceStatus changeBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableView.m new file mode 100644 index 0000000..e45a9be --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableView.m @@ -0,0 +1,135 @@ +// +// StopQuestionView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/29. +// + +#import "XJDStopQuestionTableView.h" +#import "BRPickerView.h" + +@interface XJDStopQuestionTableView () + + +@end + + +@implementation XJDStopQuestionTableView + + +- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { + + if (self = [super initWithFrame:frame style:style]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + if (@available(iOS 11.0, *)) { + self.estimatedRowHeight = 0; + self.estimatedSectionFooterHeight = 0; + self.estimatedSectionHeaderHeight = 0; + self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + self.delegate = self; + self.dataSource = self; + self.backgroundColor = UIColor.clearColor; + self.showsVerticalScrollIndicator = false; + self.showsHorizontalScrollIndicator = false; + self.separatorStyle = UITableViewCellSeparatorStyleNone; + self.estimatedRowHeight = 60; + self.rowHeight = UITableViewAutomaticDimension; + +} + +- (void)setDataArray:(NSArray *)dataArray { + + _dataArray = dataArray; + + [self reloadData]; +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return self.dataArray.count; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return 1; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + XJDStopQuestionTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"STATUSCELL"]; + if (!cell) { + + cell = [[XJDStopQuestionTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"STATUSCELL"]; + } + cell.backgroundColor = KClearColor; + cell.model = self.dataArray[indexPath.section]; + cell.changeBlock = ^(NSString * _Nullable record_id) { + self.changeBlock(record_id); + }; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; +} +//每行高度 +//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +//{ +// return kRealValue(77); +//} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return kRealValue(32); +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +//组头 --- 组尾 + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + + + return [UIView new]; + +} + + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + + + XJDStopServiceListModel * model = self.dataArray[section]; + UIView * footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(32))]; + + UILabel * timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 0, kScreenWidth, kRealValue(32))]; + NSDate * starDate = [NSDate br_dateFromString:model.startDay dateFormat:@"yyyy-MM-dd"]; + timeLabel.text = [NSString stringWithFormat:@"%ld年%ld月",starDate.year,starDate.month]; + + timeLabel.textAlignment = NSTextAlignmentLeft; + timeLabel.font = SYSTEMFONT(15); + [footerView addSubview:timeLabel]; + + return footerView; + +} +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + + +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableViewCell.h new file mode 100644 index 0000000..6a5f33e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableViewCell.h @@ -0,0 +1,23 @@ +// +// XJDStopQuestionTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/4/29. +// + +#import +#import "XJDStopServiceModel.h" + +typedef void(^chageServiceStatus)(NSString * _Nullable record_id); + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDStopQuestionTableViewCell : UITableViewCell + +@property (nonatomic, strong) XJDStopServiceListModel * model; + +@property (nonatomic, copy) chageServiceStatus changeBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableViewCell.m new file mode 100644 index 0000000..11373d3 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/StopQuestion(停止咨询)/XJDStopQuestionTableViewCell.m @@ -0,0 +1,205 @@ +// +// XJDStopQuestionTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/4/29. +// + +#import "XJDStopQuestionTableViewCell.h" + +@interface XJDStopQuestionTableViewCell () + +@property (nonatomic, strong) UIImageView * linImg; + +@property (nonatomic, strong) UIView * backView; + +@property (nonatomic, strong) UIButton * statusBtn; + +@property (nonatomic, strong) UILabel * timeLabel; + +@property (nonatomic, strong) UILabel * resourLabel; + +@property (nonatomic, strong) UILabel * gonggaoLabel; + +@property (nonatomic, strong) UILabel * statusLabel; + + +@end + +@implementation XJDStopQuestionTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + UIImageView * linv = [[UIImageView alloc] init]; +// [linv setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"xuxian"]]]; + linv.image = [UIImage imageNamed:@"xuxian"]; + linv.contentMode = UIViewContentModeScaleToFill; + linv.clipsToBounds = YES; + self.linImg = linv; + [self.contentView addSubview:linv]; + + [self.linImg mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(27); + make.top.mas_offset(-15); + make.width.mas_offset(1); + make.bottom.mas_offset(15); + }]; + + self.backView = [[UIView alloc] init]; + self.backView.backgroundColor = KWhiteColor; + self.backView.layer.cornerRadius = 10; + [XJDCommonUtils addShadowToView:self.backView]; + [self.contentView addSubview:self.backView]; + + [self.backView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(40); + make.top.mas_offset(0); + make.right.mas_offset(-15); + make.bottom.mas_offset(-10); + }]; + + self.timeLabel = [[UILabel alloc] init]; + self.timeLabel.text = @"暂停时间:2023-02-10 ~ 03-29"; + self.timeLabel.font = SYSTEMFONT(13);; + self.timeLabel.textAlignment = NSTextAlignmentLeft; + [self.backView addSubview:self.timeLabel]; + + [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_offset(15); + make.height.mas_offset(13); + }]; + [self.timeLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + + UILabel * stopTitleLabel = [[UILabel alloc] init]; + stopTitleLabel.text = @"暂停原因:"; + stopTitleLabel.font = SYSTEMFONT(13); + stopTitleLabel.textAlignment = NSTextAlignmentRight; + [self.backView addSubview:stopTitleLabel]; + + [stopTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(13); + make.top.mas_equalTo(self.timeLabel.mas_bottom).offset(20); + make.height.mas_equalTo(@13); + }]; + + [stopTitleLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + + + self.resourLabel = [[UILabel alloc] init]; + + self.resourLabel.font = SYSTEMFONT(13); + self.resourLabel.textAlignment = NSTextAlignmentCenter; + [self.backView addSubview:self.resourLabel]; + + [self.resourLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(stopTitleLabel.mas_right).offset(8); + make.top.mas_equalTo(self.timeLabel.mas_bottom).offset(12); + make.height.mas_equalTo(@27); + }]; + [self.resourLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + + UILabel * gonggaoTitleLabel = [[UILabel alloc] init]; + gonggaoTitleLabel.font = SYSTEMFONT(13); + gonggaoTitleLabel.textAlignment = NSTextAlignmentLeft; + gonggaoTitleLabel.numberOfLines = 0; + self.gonggaoLabel = gonggaoTitleLabel; + [self.backView addSubview:gonggaoTitleLabel]; + + [gonggaoTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(13); + make.right.mas_offset(-24); + make.bottom.mas_equalTo(@-30); + make.top.mas_equalTo(self.resourLabel.mas_bottom).offset(14); + }]; + + [gonggaoTitleLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.statusBtn = [[UIButton alloc] init]; + [self.statusBtn setTitle:@"开启咨询" forState:UIControlStateNormal]; + [self.statusBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + self.statusBtn.titleLabel.font = SYSTEMFONT(13); + self.statusBtn.layer.cornerRadius = 5.0; + self.statusBtn.layer.masksToBounds = YES; + self.statusBtn.backgroundColor = UIColorHex(#21BEBD); + [self.statusBtn addTarget:self action:@selector(statusChange) forControlEvents:UIControlEventTouchUpInside]; + [self.backView addSubview:self.statusBtn]; + + [self.statusBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_offset(-5); + make.right.mas_offset(-10); + make.width.mas_offset(70); + make.height.mas_offset(25); + }]; + +} + +- (void)setModel:(XJDStopServiceListModel *)model { + + _model = model; + self.timeLabel.text = [NSString stringWithFormat:@"暂停时间:%@~%@",_model.startDay,model.endDay]; + self.resourLabel.text = [NSString stringWithFormat:@"%@",_model.stopReason]; + + NSString * gonggaoString = [NSString stringWithFormat:@"暂停公告:%@",_model.notice]; + NSMutableAttributedString *attriString = + [[NSMutableAttributedString alloc] initWithString:gonggaoString]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:10]; + //设置距离 + [attriString addAttribute:NSParagraphStyleAttributeName + value:paragraphStyle + range:NSMakeRange(0, [gonggaoString length])]; + self.gonggaoLabel.attributedText = attriString; + if (_model.serviceStatus == 1) { + + [self.statusBtn setTitle:@"已结束" forState:UIControlStateNormal]; + [self.statusBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + self.statusBtn.backgroundColor =KClearColor; + self.statusBtn.userInteractionEnabled = NO; + + } + if (_model.serviceStatus == 0) { + [self.statusBtn setTitle:@"恢复服务" forState:UIControlStateNormal]; + [self.statusBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + self.statusBtn.backgroundColor = UIColorHex(#21BEBD); + self.statusBtn.userInteractionEnabled = YES; + + + } +} + +- (void)statusChange { + + if (self.changeBlock) { + self.changeBlock(self.model.record_id); + } + +} + + + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/XJDTTestView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/XJDTTestView.h new file mode 100644 index 0000000..9049efd --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/XJDTTestView.h @@ -0,0 +1,13 @@ +// +// XJDTTestView.h +// DTPaperTeacher +// +// Created by syyy on 2023/5/6. +// + +#import + +@interface XJDTTestView : UIView +@property (nonatomic ,copy) void(^returnBlock)(NSString *startTime, NSString *endTime); +@end + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/XJDTTestView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/XJDTTestView.m new file mode 100644 index 0000000..e5fb199 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/XJDTTestView.m @@ -0,0 +1,329 @@ +// +// XJDTTestView.m +// DTPaperTeacher +// +// Created by syyy on 2023/5/6. +// + +#import "XJDTTestView.h" + +@interface XJDTTestView (){ + int _type;//0开始 1结束 +} +@property (nonatomic, strong) UIView *backView; +@property (nonatomic, strong) YYLabel *titleLab; +@property (nonatomic, strong) UILabel *centerLab; +@property (nonatomic, strong) UIButton *closeBtn; +@property (nonatomic, strong) UIButton *startBtn; +@property (nonatomic, strong) UIButton *endBtn; +@property (nonatomic, strong) UILabel * showTimeLabel; + +@property (nonatomic, strong) NSMutableArray *monthAndDayArr; +@property (nonatomic, strong) NSMutableArray *hourArr; +@property (nonatomic, strong) NSMutableArray *minArr; +@property (nonatomic, strong) UIPickerView *pickerView; + +@property (nonatomic, copy) NSString *monthStr; +@property (nonatomic, copy) NSString *hourStr; +@property (nonatomic, copy) NSString *minStr; + +@property (nonatomic, copy) NSString *startTime; +@property (nonatomic, copy) NSString *endTime; + +@end + +@implementation XJDTTestView + +-(NSMutableArray *)monthAndDayArr{ + if (_monthAndDayArr == nil) { + _monthAndDayArr = [NSMutableArray arrayWithCapacity:0]; + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:@"MM月dd日 EEEE"]; + for (int i = 0; i < 7; i++) { + NSDate *Day = [NSDate dateWithTimeInterval:24*60*60*i sinceDate:[NSDate date]]; + NSString *DateStr = [dateFormatter stringFromDate:Day]; + + DateStr = [DateStr stringByReplacingOccurrencesOfString:@"Saturday" withString:@"星期六"]; + DateStr = [DateStr stringByReplacingOccurrencesOfString:@"Sunday" withString:@"星期日"]; + DateStr = [DateStr stringByReplacingOccurrencesOfString:@"Monday" withString:@"星期一"]; + DateStr = [DateStr stringByReplacingOccurrencesOfString:@"Tuesday" withString:@"星期二"]; + DateStr = [DateStr stringByReplacingOccurrencesOfString:@"Wednesday" withString:@"星期三"]; + DateStr = [DateStr stringByReplacingOccurrencesOfString:@"Thursday" withString:@"星期四"]; + DateStr = [DateStr stringByReplacingOccurrencesOfString:@"Friday" withString:@"星期五"]; + + [_monthAndDayArr addObject:DateStr]; + } + } + return _monthAndDayArr; +} + +-(NSMutableArray *)hourArr{ + if (_hourArr == nil) { + _hourArr = [NSMutableArray arrayWithCapacity:0]; + for (int i = 0; i < 24; i++) { + if (i<10) { + [_hourArr addObject:[NSString stringWithFormat:@"0%d", i]]; + }else{ + [_hourArr addObject:[NSString stringWithFormat:@"%d", i]]; + } + } + } + return _hourArr; +} + +-(NSMutableArray *)minArr{ + if (_minArr == nil) { + _minArr = [NSMutableArray arrayWithCapacity:0]; + for (int i = 0; i < 60; i++) { + if (i<10) { + [_minArr addObject:[NSString stringWithFormat:@"0%d", i]]; + }else{ + [_minArr addObject:[NSString stringWithFormat:@"%d", i]]; + } + } + } + return _minArr; +} + +-(instancetype)initWithFrame:(CGRect)frame{ + if (self = [super initWithFrame:frame]) { + + [self configUI]; + + [self configData]; + } + return self; +} + +-(void)configUI{ + self.backgroundColor = RGBA(0, 0, 0, 0.5); + + self.backView = [[UIView alloc]initWithFrame:CGRectMake(0, [UIScreen mainScreen].bounds.size.height - 300, [UIScreen mainScreen].bounds.size.width, 300)]; + self.backView.backgroundColor = UIColor.whiteColor; + [self addSubview:self.backView]; + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.backView.bounds byRoundingCorners:UIRectCornerTopRight | UIRectCornerTopLeft cornerRadii:CGSizeMake(12, 12)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; + maskLayer.frame = self.backView.bounds; + maskLayer.path = maskPath.CGPath; + self.backView.layer.mask = maskLayer; + + self.titleLab = [[YYLabel alloc]initWithFrame:CGRectMake(20, 10, 200, 20)]; + self.titleLab.text = @"取消"; + self.titleLab.textColor = CFontColor1; + self.titleLab.font = BOLDSYSTEMFONT(13); + [self.backView addSubview:self.titleLab]; + [self.titleLab setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + [self removeFromSuperview]; + } ]; + + self.closeBtn = [[UIButton alloc]initWithFrame:CGRectMake(self.backView.frame.size.width - 75, 10, 55, 20)]; +// [self.closeBtn setImage:[UIImage imageNamed:@"close_Icon"] forState:UIControlStateNormal]; + [self.closeBtn setTitle:@"确定" forState:UIControlStateNormal]; + [self.closeBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + self.closeBtn.titleLabel.font = BOLDSYSTEMFONT(13); + [self.closeBtn addTarget:self action:@selector(closeAct) forControlEvents:UIControlEventTouchUpInside]; + [self.backView addSubview:self.closeBtn]; + + + self.startBtn = [[UIButton alloc]initWithFrame:CGRectMake(20, self.titleLab.bottom + 25, self.backView.frame.size.width/2 - 35, 33)]; + [self.startBtn setTitleColor:UIColor.blackColor forState:UIControlStateNormal]; + self.startBtn.layer.cornerRadius = 5; + self.startBtn.layer.masksToBounds = YES; + self.startBtn.layer.borderWidth = 1; + self.startBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + [self.startBtn setTitle:@"开始时间" forState:UIControlStateNormal]; + self.startBtn.titleLabel.font = SYSTEMFONT(13); + [self.startBtn addTarget:self action:@selector(startBtnAct) forControlEvents:UIControlEventTouchUpInside]; + [self.backView addSubview:self.startBtn]; + +// UIImageView * time1imge = [[UIImageView alloc] initWithFrame:CGRectMake(kRealValue(10), 9, 15, 15)]; +// time1imge.image = [UIImage imageNamed:@"smallTime"]; +// [self.startBtn addSubview:time1imge]; + + self.endBtn = [[UIButton alloc]initWithFrame:CGRectMake(self.backView.frame.size.width/2 + 15, self.startBtn.top, self.startBtn.width, self.startBtn.height)]; + [self.endBtn setTitleColor:UIColor.blackColor forState:UIControlStateNormal]; + self.endBtn.layer.cornerRadius = 6; + self.endBtn.layer.masksToBounds = YES; + self.endBtn.layer.borderWidth = 1; + self.endBtn.layer.borderColor = UIColorHex(#999999).CGColor; + self.endBtn.titleLabel.font = SYSTEMFONT(13); + [self.endBtn setTitle:@"结束时间" forState:UIControlStateNormal]; + [self.endBtn addTarget:self action:@selector(endBtnAct) forControlEvents:UIControlEventTouchUpInside]; + [self.backView addSubview:self.endBtn]; + +// UIImageView * time2imge = [[UIImageView alloc] initWithFrame:CGRectMake(kRealValue(10), 9, 15, 15)]; +// time2imge.image = [UIImage imageNamed:@"smallTime"]; +// [self.endBtn addSubview:time2imge]; + + self.centerLab = [[UILabel alloc]initWithFrame:CGRectMake(self.backView.frame.size.width/2 - 7.5, 60, 15, 25)]; + self.centerLab.text = @"至"; + self.centerLab.textAlignment = NSTextAlignmentCenter; + self.centerLab.font = SYSTEMFONT(13); + [self.backView addSubview:self.centerLab]; + + self.showTimeLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 12, 100, 25)]; + self.showTimeLabel.text = @"预计开始时间"; + self.showTimeLabel.textAlignment = NSTextAlignmentCenter; + self.showTimeLabel.font = SYSTEMFONT(16); + self.showTimeLabel.centerX = self.backView.centerX; + [self.backView addSubview:self.showTimeLabel]; + + self.pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 80, [UIScreen mainScreen].bounds.size.width, 200)]; + self.pickerView.delegate = self; + self.pickerView.dataSource = self; + [self.backView addSubview:self.pickerView]; + + UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 10, 50)]; + lab.center = CGPointMake(self.pickerView.center.x + 115, self.pickerView.frame.size.height/2 -1); + lab.text = @":"; + [self.pickerView addSubview:lab]; +} + +-(void)configData{ + + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:@"HH-mm"]; + NSDate *currentdate = [NSDate date]; + NSString *DateStr = [dateFormatter stringFromDate:currentdate]; + NSArray *timearr = [DateStr componentsSeparatedByString:@"-"]; + [self.pickerView selectRow:[timearr[0] integerValue] inComponent:1 animated:NO ]; + [self.pickerView selectRow:[timearr[1] integerValue] inComponent:2 animated:NO ]; + self.monthStr = self.monthAndDayArr[0]; + self.hourStr = timearr[0]; + self.minStr = timearr[1]; +// [self setStartAndEndData]; +} + +-(void)setStartAndEndData{ + NSDate *currentdate = [NSDate date]; + if (_type == 0) { + NSString * startTime = [NSString stringWithFormat:@"%ld年%@%@%@",(long)currentdate.year, [self.monthStr substringToIndex:6],self.hourStr,self.minStr]; + self.startTime = [NSString stringWithFormat:@"%ld",(long)[self timeSwitchTimestamp:startTime]] ; + [self.startBtn setTitle:[NSString stringWithFormat:@"%@ %@:%@", self.monthStr,self.hourStr,self.minStr] forState:UIControlStateNormal]; + + }else{ + NSString * currEndTime = [NSString stringWithFormat:@"%ld年%@%@%@",(long)currentdate.year, [self.monthStr substringToIndex:6],self.hourStr,self.minStr]; + self.endTime = [NSString stringWithFormat:@"%ld",(long)[self timeSwitchTimestamp:currEndTime]] ; + [self.endBtn setTitle:[NSString stringWithFormat:@"%@ %@:%@", self.monthStr,self.hourStr,self.minStr] forState:UIControlStateNormal]; + + } +} + +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ + return 3; +} + +- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ + if (component == 0) return self.monthAndDayArr.count; + if (component == 1) return self.hourArr.count; + if (component == 2) return self.minArr.count; + return 0; +} + +-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ + if (component == 0) return [self.monthAndDayArr objectAtIndex:row]; + if (component == 1) return [self.hourArr objectAtIndex:row]; + if (component == 2) return [self.minArr objectAtIndex:row]; + return @""; +} + +-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{ + return 50; +} + +-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{ + if (component == 0) + { + return 220; + } + else + { + return 50; + } +} + +-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ + if (component == 0) { + self.monthStr = self.monthAndDayArr[row]; + }else if (component == 1){ + self.hourStr = self.hourArr[row]; + }else if (component == 2){ + self.minStr = self.minArr[row]; + } + [self setStartAndEndData]; +} + +-(void)startBtnAct{ + _type = 0; + self.showTimeLabel.text = @"预计开始时间"; + self.startBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + self.endBtn.layer.borderColor = UIColorHex(#999999).CGColor; +} + +-(void)endBtnAct{ + _type = 1; + self.showTimeLabel.text = @"预计结束时间"; + self.startBtn.layer.borderColor = UIColorHex(#999999).CGColor; + self.endBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + +} + +-(void)closeAct{ + + if (_type == 0 ){ + + self.startBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + self.endBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + _type = 1; + }else + { + _type = 0; + if (self.startBtn.currentTitle.length == 4 ) { + [EasyTextView showErrorText:@"请选择开始时间"]; + return; + } + if ([self.startTime doubleValue] < [self.endTime doubleValue]) { + + } else if ([self.startTime doubleValue] > [self.endTime doubleValue]) { + [EasyTextView showErrorText:@"结束时间不能小于开始时间"]; + return; + } else if ([self.startTime doubleValue] == [self.endTime doubleValue]) { + + } + if (self.returnBlock) { + self.returnBlock(self.startTime, self.endTime); + } + [self removeFromSuperview]; + + } + + + + +} + +- (NSInteger)timeSwitchTimestamp:(NSString *)formatTime{ + + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + + [formatter setDateStyle:NSDateFormatterMediumStyle]; + + [formatter setTimeStyle:NSDateFormatterShortStyle]; + + [formatter setDateFormat:@"yyyy年MM月dd日HHmm"]; //(@"YYYY-MM-dd hh:mm:ss") ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制 + + NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"]; + + [formatter setTimeZone:timeZone]; + + NSDate* date = [formatter dateFromString:formatTime]; //------------将字符串按formatter转成nsdate + + //时间转时间戳的方法: + NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]*1000] integerValue]; + + NSLog(@"将某个时间转化成 时间戳timeSp:%ld",(long)timeSp); //时间戳的值 + + return timeSp; + +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/refuseQuestion(拒绝咨询)/XJDRefuseQuestionPopView.h b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/refuseQuestion(拒绝咨询)/XJDRefuseQuestionPopView.h new file mode 100644 index 0000000..3b72635 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/refuseQuestion(拒绝咨询)/XJDRefuseQuestionPopView.h @@ -0,0 +1,26 @@ +// +// RefuseQuestionPopView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^refuseQuestionBlock)(NSString * beizhuString,NSString * reasourString); + +typedef void(^cancelReasonBlock)(); + + +@interface XJDRefuseQuestionPopView : UIView + +@property (nonatomic, copy) refuseQuestionBlock popBlock; +@property (nonatomic, copy) cancelReasonBlock upBlock; + +@property (nonatomic, strong) NSArray * dataArray; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/refuseQuestion(拒绝咨询)/XJDRefuseQuestionPopView.m b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/refuseQuestion(拒绝咨询)/XJDRefuseQuestionPopView.m new file mode 100644 index 0000000..a5bc524 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/HomePage/view/refuseQuestion(拒绝咨询)/XJDRefuseQuestionPopView.m @@ -0,0 +1,271 @@ +// +// XJDRefuseQuestionPopView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/4. +// + +#import "XJDRefuseQuestionPopView.h" +#import "UIPlaceHolderTextView.h" +#import "XJDCancelReasonModel.h" +@interface XJDRefuseQuestionPopView () + +@property (nonatomic, strong) UIPlaceHolderTextView * beizhuTextView; + +@property (nonatomic, strong) YYLabel * questionLabel; +@property (nonatomic, strong) UITableView * reasourTable; + +@property (nonatomic, copy) NSString * reasour_id; +@property (nonatomic, copy) NSString * reasour_text; + +@end + +@implementation XJDRefuseQuestionPopView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + + } + + return self; + +} + +- (void)createUI { + + self.backgroundColor = RGBA(0, 0, 0, 0.3); + + UIView * popView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(47), kRealValue(176), kScreenWidth - kRealValue(94), kRealValue(323))]; + + popView.backgroundColor = KWhiteColor; + + popView.layer.cornerRadius = 10.0f; + + popView.layer.masksToBounds = true; + +// UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; +// [popView addGestureRecognizer:tap]; + + [self addSubview:popView]; + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, kRealValue(20), popView.width, 14)]; + titleLabel.text = @"拒绝原因"; + titleLabel.font = SYSTEMFONT(14); + titleLabel.textAlignment = NSTextAlignmentCenter; + titleLabel.textColor = CFontColor1; + [popView addSubview:titleLabel]; + + UILabel * stopLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(27), titleLabel.bottom + kRealValue(28), 40, 13)]; + stopLabel.text = @"原因:"; + stopLabel.font = MEDIUMFONT(13); + stopLabel.textAlignment = NSTextAlignmentRight; + stopLabel.textColor = UIColorHex(#666666); + [popView addSubview:stopLabel]; + + + UIView * questionView = [[UIView alloc] initWithFrame:CGRectMake(stopLabel.right + kRealValue(9),titleLabel.bottom + kRealValue(18), popView.width - stopLabel.right - kRealValue(35), kRealValue(30))]; + questionView.backgroundColor = KWhiteColor; + questionView.layer.cornerRadius = 10.0f; + questionView.layer.borderColor = UIColorHex(#CCCCCC).CGColor; + questionView.layer.borderWidth = 1.0; + questionView.layer.masksToBounds = true; + [popView addSubview:questionView]; + + UIButton * pubbtn = [[UIButton alloc] initWithFrame:CGRectMake(questionView.width - kRealValue(9) - 13, kRealValue(11), 13, 8)]; + [pubbtn setImage:[UIImage imageNamed:@"garyDown"] forState:UIControlStateNormal]; + [pubbtn addTarget:self action:@selector(cancelReasonAction) forControlEvents:UIControlEventTouchUpInside]; + [questionView addSubview:pubbtn]; + + YYLabel * questionLabel = [[YYLabel alloc] initWithFrame:CGRectMake(kRealValue(13),0, popView.width - kRealValue(22) - 13, questionView.height)]; + questionLabel.text = @"时间不合适"; + self.questionLabel = questionLabel; + questionLabel.font = SYSTEMFONT(13); + questionLabel.textAlignment = NSTextAlignmentLeft; + questionLabel.textColor = CFontColor1; + [questionLabel setTextTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + [self cancelReasonAction]; + }]; + [questionView addSubview:questionLabel]; + + + + + + UILabel * beizhuLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(27), questionView.bottom + kRealValue(27), 40, 13)]; + beizhuLabel.text = @"备注:"; + beizhuLabel.font = MEDIUMFONT(13); + beizhuLabel.textAlignment = NSTextAlignmentRight; + beizhuLabel.textColor = UIColorHex(#666666); + [popView addSubview:beizhuLabel]; + + self.beizhuTextView = [[UIPlaceHolderTextView alloc] initWithFrame:CGRectMake(stopLabel.right + kRealValue(9),questionView.bottom + kRealValue(19), questionView.width, 132)]; + self.beizhuTextView.layer.cornerRadius = 5.0f; + self.beizhuTextView.layer.masksToBounds = true; + self.beizhuTextView.layer.borderColor = UIColorHex(#CCCCCC).CGColor; + self.beizhuTextView.layer.borderWidth = 1.0; + self.beizhuTextView.placeholder = @"请输入拒绝原因详细说明"; + self.beizhuTextView.placeholderColor = UIColorHex(#999999); + self.beizhuTextView.font = SYSTEMFONT(13); + [popView addSubview: self.beizhuTextView]; + + + + + UIButton * cancelbtn = [[UIButton alloc] initWithFrame:CGRectMake(popView.width - kRealValue(15) - 15 , kRealValue(15) , 15, 15)]; + [cancelbtn setImage:[UIImage imageNamed:@"close_Icon"] forState:UIControlStateNormal]; + [cancelbtn addTarget:self action:@selector(cancelAction) forControlEvents:UIControlEventTouchUpInside]; + [popView addSubview:cancelbtn]; + + UIButton * submit = [[UIButton alloc] initWithFrame:CGRectMake(kRealValue(65), self.beizhuTextView.bottom + kRealValue(30) , popView.width - kRealValue(130), 35)]; + [submit setTitle:@"提交" forState:UIControlStateNormal]; + [submit setTitleColor:KWhiteColor forState:UIControlStateNormal]; + [submit setBackgroundColor:UIColorHex(#21BEBD)]; + submit.layer.cornerRadius =17.5; + submit.layer.masksToBounds = true; + submit.titleLabel.font = SYSTEMFONT(14); + [submit addTarget:self action:@selector(subitAction) forControlEvents:UIControlEventTouchUpInside]; + [popView addSubview:submit]; + + + self.reasourTable = [[UITableView alloc] initWithFrame:CGRectMake(questionView.left + kRealValue(5), questionView.bottom, questionView.width - kRealValue(10), kRealValue(90)) style:UITableViewStyleGrouped]; + self.reasourTable.delegate = self; + self.reasourTable.dataSource = self; + self.reasourTable.backgroundColor = KWhiteColor; + self.reasourTable.hidden = YES; + [popView addSubview:self.reasourTable]; + + self.reasourTable.layer.shadowColor = RGBA(0, 0, 0, 0.3).CGColor; + + self.reasourTable.layer.shadowOffset = CGSizeMake(0, 0); + + self.reasourTable.layer.shadowOpacity = 1; + + self.reasourTable.clipsToBounds = false; + + +} + +- (void)subitAction { + + if (self.popBlock) { + + self.popBlock(self.beizhuTextView.text, self.reasour_id); + } +} + + +-(void)cancelAction { + + [self removeFromSuperview]; + +} + +- (void)handleTapGesture:(id)sender { + + self.reasourTable.hidden = true; +} + +- (void)cancelReasonAction { + + self.reasourTable.hidden = false; + +} + +- (void)setDataArray:(NSArray *)dataArray { + + _dataArray = dataArray; + if (_dataArray.count > 0) { + XJDCancelReasonModel * model = _dataArray[0]; + self.reasour_id = model.value; + self.questionLabel.text = model.text; + } + + [self.reasourTable reloadData]; + +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 1; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return self.dataArray.count; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + XJDCancelReasonModel * model = self.dataArray[indexPath.row]; + UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"STATUSCELL"]; + if (!cell) { + + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"STATUSCELL"]; + } + cell.backgroundColor = KWhiteColor; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.textLabel.text = model.text; + cell.textLabel.font = SYSTEMFONT(13); + return cell; + + + +} +//每行高度 +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +{ + return kRealValue(30); +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + +//组头 --- 组尾 + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + + + return [UIView new]; + +} + + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + + + return [UIView new]; + +} +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + + XJDCancelReasonModel * model = self.dataArray[indexPath.row]; + self.reasour_id = model.value; + self.questionLabel.text = model.text; + self.reasourTable.hidden = YES; +} + + +@end + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginFoundPasswordViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginFoundPasswordViewController.h new file mode 100644 index 0000000..8b7a2fc --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginFoundPasswordViewController.h @@ -0,0 +1,17 @@ +// +// XJDLoginFoundPasswordViewController.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/5/22. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDLoginFoundPasswordViewController : YXBaseViewController + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginFoundPasswordViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginFoundPasswordViewController.m new file mode 100644 index 0000000..649109a --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginFoundPasswordViewController.m @@ -0,0 +1,209 @@ +// +// XJDLoginFoundPasswordViewController.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/5/22. +// + +#import "XJDLoginFoundPasswordViewController.h" +#import "XJDLoginSetPasswordViewController.h" +#import "LVKeyboard.h" +#import "MQTextField.h" + +@interface XJDLoginFoundPasswordViewController () + +@property (nonatomic, strong) UITextField * nameTextFild; +@property (nonatomic, strong) UITextField * phoneTextFild; +@property (nonatomic, strong) MQTextField * codeTextFild; +@property (nonatomic, strong)UIButton * codeButton; +@property (nonatomic, strong) LVKeyboard *keyboard; + +@end + +@implementation XJDLoginFoundPasswordViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.isHidenNaviBar = false; + self.navigationItem.title = @"修改密码"; + // Do any additional setup after loading the view. + self.view.backgroundColor = UIColorHex(#E0E0E0); + [self createUI]; +} + +- (void)createUI { + + //初始化键盘 + LVKeyboard *keyboard = [[LVKeyboard alloc] init]; + keyboard.delegate = self; + self.keyboard = keyboard; + + UIView * topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(151))]; + topView.backgroundColor = KWhiteColor; + [self.view addSubview:topView]; + + + + UIView * nameLeft = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 112, kRealValue(50))]; + UILabel * nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 0, 80, kRealValue(50))]; + nameLabel.text = @"用户姓名"; + nameLabel.textAlignment = NSTextAlignmentLeft; + nameLabel.font = SYSTEMFONT(13); + nameLabel.textColor = UIColorHex(#666666); + [nameLeft addSubview:nameLabel]; + + + self.nameTextFild = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(50))]; + self.nameTextFild.placeholder = @"请输入用户姓名"; + self.nameTextFild.returnKeyType = UIReturnKeyDone; + self.nameTextFild.font = [UIFont systemFontOfSize:14]; + self.nameTextFild.backgroundColor = KWhiteColor; + self.nameTextFild.leftView = nameLeft; + self.nameTextFild.leftViewMode = UITextFieldViewModeAlways; + self.nameTextFild.font = SYSTEMFONT(14); + [topView addSubview:self.nameTextFild]; + + UIView * linv = [[UIView alloc] initWithFrame:CGRectMake(16, self.nameTextFild.bottom, kScreenWidth - 32, 1)]; + linv.backgroundColor = UIColorHex(#E0E0E0); + [topView addSubview:linv]; + + UIView * codeLeft = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 112, kRealValue(50))]; + UILabel * codeLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 0, 90, kRealValue(50))]; + codeLabel.text = @"身份证号"; + codeLabel.textAlignment = NSTextAlignmentLeft; + codeLabel.font = SYSTEMFONT(13); + codeLabel.textColor = UIColorHex(#666666); + + [codeLeft addSubview:codeLabel]; + + self.codeTextFild = [[MQTextField alloc] initWithFrame:CGRectMake(0, self.nameTextFild.bottom+1, kScreenWidth, kRealValue(50))]; + self.codeTextFild.placeholder = @"请输入用户身份证号"; + self.codeTextFild.font = [UIFont systemFontOfSize:14]; + self.codeTextFild.backgroundColor = KWhiteColor; + self.codeTextFild.inputView = self.keyboard; + self.codeTextFild.delegate = self; + self.codeTextFild.leftView = codeLeft; + self.codeTextFild.leftViewMode = UITextFieldViewModeAlways; + [topView addSubview:self.codeTextFild]; + + UIView * linvCard = [[UIView alloc] initWithFrame:CGRectMake(16, self.codeTextFild.bottom, kScreenWidth - 32, 1)]; + linvCard.backgroundColor = UIColorHex(#E0E0E0); + [topView addSubview:linvCard]; + + + UIView * phoneLeft = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 112, kRealValue(50))]; + UILabel * phoneLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 0, 90, kRealValue(50))]; + phoneLabel.text = @"手机号"; + phoneLabel.textAlignment = NSTextAlignmentLeft; + phoneLabel.font = SYSTEMFONT(13); + phoneLabel.textColor = UIColorHex(#666666); + [phoneLeft addSubview:phoneLabel]; + + self.phoneTextFild = [[UITextField alloc] initWithFrame:CGRectMake(0, self.codeTextFild.bottom+1, kScreenWidth, kRealValue(50))]; + self.phoneTextFild.placeholder = @"请输入用户手机号"; + self.phoneTextFild.font = [UIFont systemFontOfSize:14]; + self.phoneTextFild.backgroundColor = KWhiteColor; + self.phoneTextFild.leftView = phoneLeft; + self.phoneTextFild.keyboardType = UIKeyboardTypeNumberPad; + self.phoneTextFild.leftViewMode = UITextFieldViewModeAlways; + [topView addSubview:self.phoneTextFild]; + + UIView * phoneLinv = [[UIView alloc] initWithFrame:CGRectMake(16, self.phoneTextFild.bottom, kScreenWidth - 32, 1)]; + phoneLinv.backgroundColor = UIColorHex(#E0E0E0); + [topView addSubview:phoneLinv]; + + + UIButton * loginBtn = [[UIButton alloc] initWithFrame:CGRectMake(48,self.phoneTextFild.bottom+58, kScreenWidth-96, 48)]; + [loginBtn setTitle:@"确定" forState:UIControlStateNormal ]; + loginBtn.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:14]; + [loginBtn setBackgroundColor:UIColorHex(#21BEBD)]; + loginBtn.layer.cornerRadius = 20; + loginBtn.layer.masksToBounds = true; + [loginBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + [loginBtn addTarget:self action:@selector(sureFoundAction) forControlEvents:UIControlEventTouchUpInside]; + [self.view addSubview:loginBtn]; +} +#pragma mark - 确定点击 +- (void)sureFoundAction { + + + if (ValidStr(self.nameTextFild.text)) { + [EasyTextView showErrorText:@"请输入用户姓名"]; + return; + } + if (ValidStr(self.codeTextFild.text)) { + [EasyTextView showErrorText:@"请输入用户身份证号"]; + return; + } + if (ValidStr(self.phoneTextFild.text)) { + [EasyTextView showErrorText:@"请输入用户手机号"]; + return; + } + [self showMBProgressHUDWithString:@"信息验证中,请稍候..." autoHidden:false]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:self.nameTextFild.text forKey:@"realname"]; + [parmDic setObject:self.codeTextFild.text forKey:@"idCard"]; + [parmDic setObject:self.phoneTextFild.text forKey:@"phone"]; + + XJDNetAPI * chageApi = [[XJDNetAPI alloc] init:self tag:@"CHANGEAPI" NeedToken:@""]; + + [chageApi postSetUserPassword:parmDic]; + + +} + +#pragma mark -网络请求处理 +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self showMBProgressHUDOnlyWithString:message]; + [self hiddenAllMBProgressHUD]; + +} +- (void)Sucess:(id)response tag:(NSString*)tag +{ + if ([tag isEqualToString:@"CHANGEAPI"]) { + [self hiddenAllMBProgressHUD]; + NSString * result = response; + + XJDLoginSetPasswordViewController * password = [[XJDLoginSetPasswordViewController alloc] init]; + password.result = result; + [self.navigationController pushViewController:password animated:YES]; + } + +} + + +-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { + + if(textField == self.codeTextFild) { + + self.codeTextFild.inputView = self.keyboard; + } + return YES; + +} + +- (void)keyboard:(LVKeyboard *)keyboard didClickDeleteButton:(UIButton *)deleteBtn string:(NSMutableString *)string { + self.codeTextFild.text = string; +} + +- (void)keyboard:(LVKeyboard *)keyboard didClickTextButton:(UIButton *)textBtn string:(NSMutableString *)string { + self.codeTextFild.text = string; +} + + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.codeTextFild resignFirstResponder]; +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginProtocolWebViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginProtocolWebViewController.h new file mode 100644 index 0000000..0a0689f --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginProtocolWebViewController.h @@ -0,0 +1,16 @@ +// +// XJDLoginProtocolWebViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2024/1/12. +// + +#import "YXBaseWebViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDLoginProtocolWebViewController : YXBaseWebViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginProtocolWebViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginProtocolWebViewController.m new file mode 100644 index 0000000..d2a56df --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginProtocolWebViewController.m @@ -0,0 +1,32 @@ +// +// XJDLoginProtocolWebViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2024/1/12. +// + +#import "XJDLoginProtocolWebViewController.h" + +@interface XJDLoginProtocolWebViewController () + +@end + +@implementation XJDLoginProtocolWebViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginSetPasswordViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginSetPasswordViewController.h new file mode 100644 index 0000000..6726223 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginSetPasswordViewController.h @@ -0,0 +1,18 @@ +// +// LoginSetPasswordViewController.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/5/22. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDLoginSetPasswordViewController : YXBaseViewController + +@property (nonatomic, copy) NSString * result; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginSetPasswordViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginSetPasswordViewController.m new file mode 100644 index 0000000..9e02a99 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDLoginSetPasswordViewController.m @@ -0,0 +1,178 @@ +// +// LoginSetPasswordViewController.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/5/22. +// + +#import "XJDLoginSetPasswordViewController.h" +#import "RSAObjC.h" + +@interface XJDLoginSetPasswordViewController () + +@property (nonatomic, strong) UITextField * phoneTextFild; +@property (nonatomic, strong) UITextField * codeTextFild; + + +@end + + +@implementation XJDLoginSetPasswordViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.isHidenNaviBar = false; + self.navigationItem.title = @"设置密码"; + self.view.backgroundColor = UIColorHex(#EFEFEF); + [self createUI]; +} + +- (void)createUI { + + UIView * topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(100))]; + topView.backgroundColor = KWhiteColor; + [self.view addSubview:topView]; + + + + UIView * phoneLeft = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 112, kRealValue(50))]; + UILabel * phoneLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 0, 80, kRealValue(50))]; + phoneLabel.text = @"新密码"; + phoneLabel.textAlignment = NSTextAlignmentLeft; + phoneLabel.font = SYSTEMFONT(13); + phoneLabel.textColor = UIColorHex(#666666); + [phoneLeft addSubview:phoneLabel]; + + + self.phoneTextFild = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(50))]; + self.phoneTextFild.placeholder = @"请输入新密码"; + self.phoneTextFild.returnKeyType = UIReturnKeyDone; + self.phoneTextFild.font = [UIFont systemFontOfSize:14]; + self.phoneTextFild.backgroundColor = KWhiteColor; + self.phoneTextFild.leftView = phoneLeft; + self.phoneTextFild.secureTextEntry = YES; + self.phoneTextFild.leftViewMode = UITextFieldViewModeAlways; + self.phoneTextFild.font = SYSTEMFONT(14); + [self.view addSubview:self.phoneTextFild]; + + UIView * linv = [[UIView alloc] initWithFrame:CGRectMake(16, self.phoneTextFild.bottom, kScreenWidth - 32, 1)]; + linv.backgroundColor = UIColorHex(#E0E0E0); + [self.view addSubview:linv]; + + UIView * codeLeft = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 112, kRealValue(50))]; + UILabel * codeLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 0, 90, kRealValue(50))]; + codeLabel.text = @"确认密码"; + codeLabel.textAlignment = NSTextAlignmentLeft; + codeLabel.font = SYSTEMFONT(13); + codeLabel.textColor = UIColorHex(#666666); + [codeLeft addSubview:codeLabel]; + + self.codeTextFild = [[UITextField alloc] initWithFrame:CGRectMake(0, self.phoneTextFild.bottom+1, kScreenWidth, kRealValue(50))]; + self.codeTextFild.placeholder = @"请输入新密码"; + self.codeTextFild.font = [UIFont systemFontOfSize:14]; + self.codeTextFild.backgroundColor = KWhiteColor; + self.codeTextFild.leftView = codeLeft; + self.codeTextFild.secureTextEntry = YES; + self.codeTextFild.leftViewMode = UITextFieldViewModeAlways; + [self.view addSubview:self.codeTextFild]; + + + UILabel * passwordLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), topView.bottom + kRealValue(8) , kScreenWidth - kRealValue(30), 42)]; + passwordLabel.textColor = UIColorHex(#666666); + passwordLabel.text = @"温馨提示:密码需要为12-32位(包含数字、大写、小写字母、特殊字符)"; + passwordLabel.numberOfLines = 2; + passwordLabel.font =MEDIUMFONT(14); + [passwordLabel sizeToFit]; + [self.view addSubview:passwordLabel]; + + UIButton * loginBtn = [[UIButton alloc] initWithFrame:CGRectMake(48,passwordLabel.bottom+58, kScreenWidth-96, 48)]; + [loginBtn setTitle:@"确定" forState:UIControlStateNormal ]; + loginBtn.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:14]; + [loginBtn setBackgroundColor:UIColorHex(#21BEBD)]; + loginBtn.layer.cornerRadius = 20; + loginBtn.layer.masksToBounds = true; + [loginBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + [loginBtn addTarget:self action:@selector(sureFoundAction) forControlEvents:UIControlEventTouchUpInside]; + [self.view addSubview:loginBtn]; +} + +#pragma mark:重新设置密码 +- (void)sureFoundAction { + + + + if (ValidStr(self.phoneTextFild.text) || ValidStr(self.codeTextFild.text)) { + [EasyTextView showErrorText:@"请输入新密码"]; + return; + } + if ([self isValidPassword:self.phoneTextFild.text]) { + + } else { + [EasyTextView showErrorText:@"请按照密码规则,请重新输入"]; + return; + } + if ( ![self.phoneTextFild.text isEqualToString:self.codeTextFild.text]) { + [EasyTextView showErrorText:@"两次输入密码不一致,请重新输入"]; + return; + } + + NSString * publish_key = @" MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmZfR/bA9X3vp86y1aEpvwzXJYKRRF1fLau2+05/ZtaITLpV8bhkmSf3neSy/Q9gAdvG75Fr73E+GWE+K5b0BpvIS1jDGo319+PpZR39SaZTKZ27XFXrosmJTZutN79t819HS1VseleunHAFgMVufE9U5jP6LGzl/wbkSy01GhzwIDAQAB"; + + // 原始数据,要加密的字符串 + NSString *originalString = self.phoneTextFild.text; + + // RSA 加密,使用字符串格式的公钥私钥加密解密, RSAPublickKey 为公钥字符串(NSString 格式) + NSString *encryptStr = [RSAObjC encrypt:originalString PublicKey:publish_key]; + + [self showMBProgressHUDWithString:@"密码重置中,请稍候..." autoHidden:false]; + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:encryptStr forKey:@"newPassword"]; + [parmDic setObject:encryptStr forKey:@"newPasswordConfirm"]; + [parmDic setObject:self.result forKey:@"resetCode"]; + + XJDNetAPI * chageApi = [[XJDNetAPI alloc] init:self tag:@"CHANGEAPI" NeedToken:@""]; + + [chageApi postResetUserNewPassword:parmDic]; + + +} + + +-(BOOL)isValidPassword:(NSString *)password { + // 定义正则表达式 + NSString *pattern = @"^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*(),.?\":{}|<>]).{12,32}$"; + + // 创建NSPredicate对象 + NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern]; + + // 使用NSPredicate对象进行判断 + return [predicate evaluateWithObject:password]; +} + +#pragma mark -网络请求处理 +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self showMBProgressHUDOnlyWithString:message]; + [self hiddenAllMBProgressHUD]; + +} +- (void)Sucess:(id)response tag:(NSString*)tag +{ + if ([tag isEqualToString:@"CHANGEAPI"]) { + [self hiddenAllMBProgressHUD]; + [self.navigationController popToRootViewControllerAnimated:YES]; + [self showMBProgressHUDOnlyWithString:response]; + } + +} +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/HQRegisterViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDRegisterViewController.h similarity index 76% rename from DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/HQRegisterViewController.h rename to DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDRegisterViewController.h index 77ccc8b..8055441 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/HQRegisterViewController.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDRegisterViewController.h @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXRegisterViewController : YXBaseViewController +@interface XJDRegisterViewController : YXBaseViewController @end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDRegisterViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDRegisterViewController.m new file mode 100644 index 0000000..5967fae --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/Login/XJDRegisterViewController.m @@ -0,0 +1,262 @@ +// +// XJDRegisterViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2024/1/26. +// + +#import "XJDRegisterViewController.h" +#import "XJDLoginProtocolWebViewController.h" +@interface XJDRegisterViewController () + +@property (nonatomic, strong)UITextField * phoneTextField; +@property (nonatomic, strong)UITextField * codeTextField; +@property (nonatomic, strong)UITextField * passwordTextField; +@property (nonatomic, strong)UITextField * surePasswordTextField; +@property (nonatomic, strong)UITextField * inviteCodeTextField; +@property (nonatomic, strong)UIButton * protocolBtn; +@property (nonatomic, strong)UIButton * codeButton; +@property (nonatomic, copy)NSString * protocolString; + +@end + +@implementation XJDRegisterViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = YES; + self.StatusBarStyle = UIStatusBarStyleDefault; + self.view.backgroundColor = CViewBgColor; + [self createUI]; + [self getUserProtocol]; +} + +- (void)createUI +{ + + UIImageView * topBackImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(243))]; + topBackImg.image = IMAGE_NAMED(@"loginTopBimg"); + [self.view addSubview:topBackImg]; + + UIImageView * cenetrImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, kRealValue(70), kRealValue(68), kRealValue(68))]; + cenetrImg.centerX = self.view.centerX; + cenetrImg.image = IMAGE_NAMED(@"login_icon"); + [self.view addSubview:cenetrImg]; + + + UIImageView *titleImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, cenetrImg.bottom + kRealValue(20), kRealValue(109), kRealValue(24))]; + titleImg.centerX = self.view.centerX; + titleImg.image = IMAGE_NAMED(@"loginTitle_Img"); + [self.view addSubview:titleImg]; + + UIButton * leftButton = [[UIButton alloc] initWithFrame:CGRectMake(11, 40, 20, 20)]; + [leftButton setImage:[UIImage imageNamed:@"close_Icon"] forState:UIWindowLevelNormal]; + [leftButton addTarget:self action:@selector(leftBtnClick) forControlEvents:UIControlEventTouchUpInside]; + [self.view addSubview:leftButton]; + + UIView * connetView = [[UIView alloc] init]; + connetView.frame = CGRectMake(0, topBackImg.bottom+1, kScreenWidth, 200); + connetView.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:connetView]; + + self.phoneTextField = [self createTextFieldWithFrame:CGRectMake(10, 0, kScreenWidth-20, 50) placeholder:@"请输入账户名" passWord:NO leftImageView:nil rightImageView:nil Font:14]; + self.phoneTextField.delegate =self; + self.phoneTextField.keyboardType = UIKeyboardTypeNumberPad; + [connetView addSubview:self.phoneTextField]; + + + self.passwordTextField = [self createTextFieldWithFrame:CGRectMake(10, self.phoneTextField.bottom+1, kScreenWidth-20, 50) placeholder:@"请输入密码(6-20位)" passWord:NO leftImageView:nil rightImageView:nil Font:14]; + self.passwordTextField.secureTextEntry = YES; + self.passwordTextField.delegate =self; + [connetView addSubview:self.passwordTextField]; + + + + //平台协议 + UIButton * protocolBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, connetView.bottom+9, 20, 20)]; + [protocolBtn setImage:IMAGE_NAMED(@"login_nomalProtocol") forState:UIControlStateNormal]; + [protocolBtn setImage:IMAGE_NAMED(@"login_selectProtocol") forState:UIControlStateSelected]; + protocolBtn.selected = NO; + [protocolBtn addTarget:self action:@selector(agreeProtocol:) forControlEvents:UIControlEventTouchUpInside]; + self.protocolBtn = protocolBtn; + [self.view addSubview:protocolBtn]; + + UILabel * contentTitle = [[UILabel alloc] initWithFrame:CGRectMake(protocolBtn.right+5,connetView.bottom+9, 300, 20)]; + NSString *text = @"我已阅读并同意《医生端使用协议》"; + NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc]initWithString:text]; + [attributeStr addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:50/255.0 green:170/255.0 blue:223/255.0 alpha:1] range:NSMakeRange(7, text.length - 7)]; + contentTitle.attributedText = attributeStr; + contentTitle.textAlignment = NSTextAlignmentLeft; + contentTitle.font = [UIFont systemFontOfSize:12]; + contentTitle.userInteractionEnabled = YES; + UITapGestureRecognizer * tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)]; + [contentTitle addGestureRecognizer:tapRecognizer]; + [self.view addSubview:contentTitle]; + + UIButton * loginBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, self.surePasswordTextField.bottom+140, kScreenWidth-20, 44)]; + loginBtn.mj_y = self.protocolBtn.bottom+25; + [loginBtn setTitle:@"注册" forState:UIControlStateNormal ]; + loginBtn.tag = 100; + loginBtn.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:16]; + [loginBtn setBackgroundImage:[UIImage imageNamed:@"loginBtn_img"] forState:UIControlStateNormal]; + [loginBtn setTitleColor:UIColorTitle1 forState:UIControlStateNormal]; + [loginBtn addTarget:self action:@selector(regisOnClick) forControlEvents:UIControlEventTouchUpInside]; + [self.view addSubview:loginBtn]; + +} +- (void)agreeProtocol:(UIButton *)agreeBtn +{ + agreeBtn.selected = !agreeBtn.selected; + +} + +#pragma mark - 获取协议 +- (void)getUserProtocol { + + XJDNetAPI * agreeAPI = [[XJDNetAPI alloc] init:self tag:@"AGREEAPI" NeedToken:@""]; + + [agreeAPI getUserAgreementPrivacy:nil]; +} + +// 跳转用户协议 +- (void)tap +{ + + XJDLoginProtocolWebViewController * webVC= [[XJDLoginProtocolWebViewController alloc] init]; + webVC.webTitle = @"用户注册协议"; + webVC.webUrl = [NSString stringWithFormat:@"%@%@",IntervenH5,self.protocolString]; + [self.navigationController pushViewController:webVC animated:YES]; +} + + +- (void)xmProtocol +{ + self.protocolBtn.selected = YES; + +} + +#pragma mark - 注册 + +- (void)regisOnClick +{ + if ([NSString stringWithFormat:@"%@",self.passwordTextField.text].length<6||[NSString stringWithFormat:@"%@",self.passwordTextField.text].length>20) + { + [EasyTextView showErrorText:@"密码的长度是6-20位"]; + return; + } + + if (!self.protocolBtn.selected ) + { + [EasyTextView showErrorText:@"请先阅读并同意协议"]; + return; + } + + [self showMBProgressHUDOnlyWithString:@"注册已提交,请等待审核通过后方可登录"]; +} + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + + + if ([tag isEqualToString:@"GetUserRegister"]) + { + [self showMBProgressHUDOnlyWithString:@"注册成功"]; + [self dismissViewControllerAnimated:YES completion:nil]; + } + if ([tag isEqualToString:@"AGREEAPI"]) { + + NSArray * array = response; + NSMutableArray * dataArray = [[NSMutableArray alloc] init]; + + for (NSDictionary * parmDic in array) { + + XJDIMUserInfoModel * model = [XJDIMUserInfoModel modelWithDictionary:parmDic]; + if ([model.value integerValue] == 1) { + self.protocolString = model.text; + } + [dataArray addObject:model]; + + } + + } +} + + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [MBProgressHUD showInfoMessage:message]; + + NSLog(@"apiError=%@",message); + // [self showMessage:message]; + +} + +- (void)leftBtnClick +{ + [self dismissViewControllerAnimated:YES completion:nil]; +} +//实现UITextField代理方法 +- (BOOL)textFieldShouldReturn:(UITextField *)textField { + + [textField resignFirstResponder];//取消第一响应者 + + return YES; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +-(UITextField*)createTextFieldWithFrame:(CGRect)frame placeholder:(NSString*)placeholder passWord:(BOOL)YESorNO leftImageView:(UIView*)leftView rightImageView:(UIView*)rightView Font:(float)font +{ + UITextField*textField=[[UITextField alloc]initWithFrame:frame]; + //灰色提示框 + textField.placeholder=placeholder; + //文字对齐方式 + textField.textAlignment=NSTextAlignmentLeft; + textField.secureTextEntry=YESorNO; + + //边框 + //textField.borderStyle=UITextBorderStyleLine; + //键盘类型 + textField.returnKeyType=UIReturnKeyDone; + //关闭首字母大写 + textField.autocapitalizationType=NO; + //清除按钮 + textField.clearButtonMode=NO; + //左图片 + textField.leftView=leftView; + textField.leftViewMode=UITextFieldViewModeAlways; + //右图片 + textField.rightView=rightView; + //编辑状态下一直存在 + textField.rightViewMode=UITextFieldViewModeAlways; + //自定义键盘 + //textField.inputView + //字体 + textField.font=[UIFont systemFontOfSize:font]; + //字体颜色 + UIView * line2 = [[UIView alloc] initWithFrame:CGRectMake(0, frame.size.height-1, kScreenWidth, 1)]; + line2.backgroundColor = UIColorLine; + [textField addSubview:line2]; + return textField; + +} + + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/XJDIMUserInfoModel.h b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/XJDIMUserInfoModel.h new file mode 100644 index 0000000..dfeb032 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/XJDIMUserInfoModel.h @@ -0,0 +1,29 @@ +// +// XJDIMUserInfoModel.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/6/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDIMUserInfoModel : NSObject + +@property (nonatomic, strong) NSDictionary *IMInfo; + + +@property (nonatomic, copy) NSString * sdkAppId; + +@property (nonatomic, copy) NSString * userSig; + +@property (nonatomic, copy) NSString * userId; + +@property (nonatomic, copy) NSString * value; +@property (nonatomic, copy) NSString * text; +@property (nonatomic, copy) NSString * title; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/XJDIMUserInfoModel.m b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/XJDIMUserInfoModel.m new file mode 100644 index 0000000..6b96b04 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/XJDIMUserInfoModel.m @@ -0,0 +1,43 @@ +// +// IMUserInfoModel.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/6/29. +// + +#import "XJDIMUserInfoModel.h" + +@implementation XJDIMUserInfoModel + +- (void)encodeWithCoder:(NSCoder *)aCoder +{ + [aCoder encodeObject:self.sdkAppId forKey:@"sdkAppId"]; + [aCoder encodeObject:self.userSig forKey:@"userSig"]; + [aCoder encodeObject:self.userId forKey:@"userId"]; + + +} +- (id)initWithCoder:(NSCoder *)aDecoder +{ + self = [super init]; + if (self) + { + self.userId = [aDecoder decodeObjectForKey:@"userId"]; + self.userSig = [aDecoder decodeObjectForKey:@"userSig"]; + self.sdkAppId = [aDecoder decodeObjectForKey:@"sdkAppId"]; + + } + return self; +} + + +-(void)setIMInfo:(NSDictionary *)IMInfo { + + _IMInfo = IMInfo; + self.sdkAppId = [_IMInfo objectForKey:@"sdkAppId"]; + self.userSig = [_IMInfo objectForKey:@"userSig"]; + self.userId = [_IMInfo objectForKey:@"userId"]; + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/YXLoginViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/XJDLoginViewController.h similarity index 75% rename from DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/YXLoginViewController.h rename to DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/XJDLoginViewController.h index 8c7d580..45a97fd 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/YXLoginViewController.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/XJDLoginViewController.h @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXLoginViewController : YXBaseViewController +@interface XJDLoginViewController : YXBaseViewController @end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/XJDLoginViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/XJDLoginViewController.m new file mode 100644 index 0000000..1dfc8d5 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/XJDLoginViewController.m @@ -0,0 +1,506 @@ +// +// HQLoginViewController.m +// healthQuestion +// +// Created by xulei on 2022/8/16. +// + +#import "XJDLoginViewController.h" +#import "TUIC2CChatViewController.h" +#import "XJDLoginFoundPasswordViewController.h" +#import "XJDIMUserInfoModel.h" +#import "XJDLoginProtocolWebViewController.h" +#import "RSAObjC.h" +#import "XJDRegisterViewController.h" +#import "UIDevice+model.h" +#import "LVKeyboard.h" +#import "XJDModifyPasswordViewController.h" + +@interface XJDLoginViewController () + +@property (nonatomic, strong) UITextField * userNameField; + +@property (nonatomic, strong) UITextField * passwordField; + +@property (nonatomic, strong) UIButton * logoBtn; + +@property (nonatomic, strong) UIView * loginView; + +@property (nonatomic, strong) UIButton * privacyPolicyBtn; + +@property (nonatomic, strong) UIButton * agreenBtn; + +@property (nonatomic, strong) UIButton * regisBtn; + +@property (nonatomic, strong) XJDIMUserInfoModel * model ; + +@property (nonatomic, strong) NSMutableArray * dataArray; + +@property (nonatomic, strong) LVKeyboard *keyboard; + +@property (nonatomic, strong) UIButton *toggleButton; + +@end + +@implementation XJDLoginViewController + +- (NSMutableArray *)dataArray { + + if (!_dataArray) { + _dataArray = [[NSMutableArray alloc] init]; + } + return _dataArray; +} + + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = YES; + self.view.backgroundColor = KWhiteColor; + [self createUI]; + [self createData]; +// [self ishiderRegisData]; + LVKeyboard *keyboard = [[LVKeyboard alloc] init]; + keyboard.delegate = self; + self.keyboard = keyboard; + + +} + +- (void)createUI { + + UIImageView * topBackImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kRealValue(243))]; + topBackImg.image = IMAGE_NAMED(@"loginTitle_Img"); + [self.view addSubview:topBackImg]; + + UIImageView * cenetrImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, kRealValue(70), kRealValue(68), kRealValue(68))]; + cenetrImg.centerX = self.view.centerX; + cenetrImg.image = IMAGE_NAMED(@"login_icon"); + [self.view addSubview:cenetrImg]; + + + UIImageView *titleImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, cenetrImg.bottom + kRealValue(20), kRealValue(109), kRealValue(24))]; + titleImg.centerX = self.view.centerX; + titleImg.image = IMAGE_NAMED(@"loginTitle"); + [self.view addSubview:titleImg]; +// + UIView *loginView = [[UIView alloc]init]; + loginView.frame = CGRectMake(0, titleImg.bottom + kRealValue(41), kScreenWidth, kScreenHeight - titleImg.bottom - kRealValue(41)); + [self.view addSubview:loginView]; + loginView.backgroundColor = KWhiteColor; + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:loginView.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(20, 20)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; + maskLayer.path = maskPath.CGPath; + loginView.layer.mask = maskLayer; + self.loginView = loginView; +// + UITextField *accountField = [[UITextField alloc]init]; + accountField.frame = CGRectMake(kRealValue(35), kRealValue(36), loginView.width - kRealValue(70), 40); + accountField.placeholder = @"请输入用户名"; + accountField.font = BOLDSYSTEMFONT(14); + accountField.textColor = CFontColor1; + self.userNameField = accountField; + self.userNameField.backgroundColor = UIColorHex(#EEEEEE); + self.userNameField.layer.cornerRadius = 20; + self.userNameField.layer.masksToBounds = true; + UIView * leftview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 40)]; + self.userNameField.leftView = leftview; + self.userNameField.leftViewMode = UITextFieldViewModeAlways; + self.userNameField.autocapitalizationType = UITextAutocapitalizationTypeNone; + + [loginView addSubview:accountField ]; +// +// + UITextField *passwordField = [[UITextField alloc]init]; + passwordField.frame = CGRectMake(kRealValue(35), accountField.bottom + kRealValue(19), accountField.width, accountField.height); + passwordField.placeholder = @"请输入密码"; + passwordField.font = BOLDSYSTEMFONT(14); + passwordField.textColor = CFontColor1; + passwordField.backgroundColor = UIColorHex(#EEEEEE); + passwordField.secureTextEntry = YES; + self.passwordField = passwordField; + self.passwordField.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 40)]; + self.passwordField.leftViewMode = UITextFieldViewModeAlways; + self.passwordField.layer.cornerRadius = 20; + self.passwordField.layer.masksToBounds = true; + self.passwordField.delegate = self; + self.passwordField.inputView = self.keyboard; + self.toggleButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [self.toggleButton setImage:[UIImage imageNamed:@"eye"] forState:UIControlStateNormal]; + [self.toggleButton setImage:[UIImage imageNamed:@"eye.slash"] forState:UIControlStateSelected]; + self.toggleButton.frame = CGRectMake(0, 5, 30,30); + [self.toggleButton addTarget:self action:@selector(togglePasswordVisibility) forControlEvents:UIControlEventTouchUpInside]; + // 创建一个容器视图来包含按钮,并增加边距 + UIView *rightView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; + [rightView addSubview:self.toggleButton]; + + // 调整按钮在容器视图中的位置,增加边距 + self.toggleButton.center = CGPointMake(rightView.frame.size.width - self.toggleButton.frame.size.width / 2, rightView.frame.size.height / 2); + self.passwordField.rightView = rightView; + self.passwordField.rightViewMode = UITextFieldViewModeAlways; + [loginView addSubview:passwordField]; + + + UIButton *loginBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + loginBtn.frame = CGRectMake(kRealValue(35), self.passwordField.bottom + kRealValue(19), kScreenWidth - kRealValue(70), 41); + [loginBtn setTitle:@"登录" forState:UIControlStateNormal]; + [loginBtn.titleLabel setFont:BOLDSYSTEMFONT(14)]; + [loginBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [loginBtn setBackgroundImage:[UIImage imageNamed:@"loginBtn_img"] forState:UIControlStateNormal]; + [loginBtn addTarget:self action:@selector(toClickFootBtn:) forControlEvents:UIControlEventTouchUpInside]; + [loginView addSubview:loginBtn]; + + + + UIButton * foundPasswordBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + foundPasswordBtn.frame = CGRectMake(kRealValue(35), loginBtn.bottom + kRealValue(10), kScreenWidth - kRealValue(70), 20); + [foundPasswordBtn setTitle:@"找回密码" forState:UIControlStateNormal]; + foundPasswordBtn.titleLabel.font = MEDIUMFONT(14); + [foundPasswordBtn setTitleColor:UIColorHex(#999999) forState:UIControlStateNormal]; + [foundPasswordBtn addTarget:self action:@selector(foundUserPasswordAction) forControlEvents:UIControlEventTouchUpInside]; + [loginView addSubview:foundPasswordBtn]; + + UIButton * regisBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + regisBtn.frame = CGRectMake(kRealValue(35), foundPasswordBtn.bottom + kRealValue(20), kScreenWidth - kRealValue(70), 20); + [regisBtn setTitle:@"注册" forState:UIControlStateNormal]; + self.regisBtn = regisBtn; + regisBtn.titleLabel.font = MEDIUMFONT(14); + self.regisBtn.hidden = true; + [regisBtn setTitleColor:UIColorHex(#999999) forState:UIControlStateNormal]; + [regisBtn addTarget:self action:@selector(regisAction) forControlEvents:UIControlEventTouchUpInside]; + [loginView addSubview:regisBtn]; + + NSUserDefaults * agreeDefaul = [NSUserDefaults standardUserDefaults]; + + NSString * agree = [agreeDefaul objectForKey:@"LOGINAgree"]; + + self.agreenBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + self.agreenBtn.frame = CGRectMake(kRealValue(28), self.view.bottom - kRealValue(45) - SafetyAreaHeight, kRealValue(20), kRealValue(20)); + [self.agreenBtn addTarget:self action:@selector(agreeProtocolAction:) forControlEvents:UIControlEventTouchUpInside]; + [self.agreenBtn setImage:IMAGE_NAMED(@"login_nomalProtocol") forState:UIControlStateNormal]; + [self.agreenBtn setImage:IMAGE_NAMED(@"login_selectProtocol") forState:UIControlStateSelected]; + [self.view addSubview:self.agreenBtn]; + if ([agree intValue] == 1) { + self.agreenBtn.selected = true; + }else + { + self.agreenBtn.selected = false; + } + //隐私 + YYLabel * yslabel = [[YYLabel alloc] initWithFrame:CGRectMake(self.agreenBtn.right + kRealValue(5) ,self.agreenBtn.top , kScreenWidth - self.agreenBtn.right - kRealValue(47), 40)]; + [self.view addSubview:yslabel]; + yslabel.numberOfLines = 0; + + NSString *string = @"已阅读并同意《用户协议》、《隐私政策》和《相关法律说明》"; + NSMutableAttributedString *attributed = [[NSMutableAttributedString alloc] initWithString:string]; + [attributed setAttribute:NSForegroundColorAttributeName value:UIColorHex(#3390FF) range:[string rangeOfString:@"《用户协议》"]]; + [attributed setAttribute:NSForegroundColorAttributeName value:UIColorHex(#3390FF) range:[string rangeOfString:@"《隐私政策》"]]; + [attributed setAttribute:NSForegroundColorAttributeName value:UIColorHex(#3390FF) range:[string rangeOfString:@"《相关法律说明》"]]; + + YYTextHighlight * protocolHightlight = [[YYTextHighlight alloc] init]; + protocolHightlight.userInfo = @{@"协议":@"《用户协议》"}; + [protocolHightlight setColor:UIColor.blueColor]; + [attributed setTextHighlight:protocolHightlight range:[string rangeOfString:@"《用户协议》"]]; + + YYTextHighlight * layHightlight = [[YYTextHighlight alloc] init]; + layHightlight.userInfo = @{@"隐私":@"《隐私政策》"}; + [layHightlight setColor:UIColor.blueColor]; + [attributed setTextHighlight:layHightlight range:[string rangeOfString:@"《隐私政策》"]]; + + + YYTextHighlight * shuoHightlight = [[YYTextHighlight alloc] init]; + shuoHightlight.userInfo = @{@"说明":@"《相关法律说明》"}; + [shuoHightlight setColor:UIColor.blueColor]; + [attributed setTextHighlight:shuoHightlight range:[string rangeOfString:@"《相关法律说明》"]]; + + attributed.lineSpacing = 3; + attributed.paragraphSpacing = 5; + yslabel.attributedText = attributed; + + yslabel.highlightTapAction = ^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + NSLog(@"%@, %@, %@, %@", containerView, text.string, NSStringFromRange(range), NSStringFromCGRect(rect)); + NSString *string = [text.string substringWithRange:range]; + NSLog(@"\n %@", string); + if ([string containsString:@"用户协议"]){ + for (XJDIMUserInfoModel * model in self.dataArray) { + + if ([model.value integerValue] == 1) { + + XJDLoginProtocolWebViewController * webVC= [[XJDLoginProtocolWebViewController alloc] init]; + webVC.webTitle = @"用户协议"; + webVC.webUrl = [NSString stringWithFormat:@"%@%@",IntervenH5,model.text]; + [self.navigationController pushViewController:webVC animated:YES]; + } + + } + + } + if ([string containsString:@"隐私政策"]){ + for (XJDIMUserInfoModel * model in self.dataArray) { + if ([model.value integerValue] == 2) { + + XJDLoginProtocolWebViewController * webVC= [[XJDLoginProtocolWebViewController alloc] init]; + webVC.webTitle = @"隐私政策"; + webVC.webUrl = [NSString stringWithFormat:@"%@%@",IntervenH5,model.text]; + [self.navigationController pushViewController:webVC animated:YES]; + } + } + } + if ([string containsString:@"相关法律说明"]){ + for (XJDIMUserInfoModel * model in self.dataArray) { + if ([model.value integerValue] == 3) { + + XJDLoginProtocolWebViewController * webVC= [[XJDLoginProtocolWebViewController alloc] init]; + webVC.webTitle = @"相关法律说明"; + webVC.webUrl = [NSString stringWithFormat:@"%@%@",IntervenH5,model.text]; + [self.navigationController pushViewController:webVC animated:YES]; + } + } + } + }; + +} + +- (void)togglePasswordVisibility { + self.passwordField.secureTextEntry = !self.passwordField.secureTextEntry; + self.toggleButton.selected = !self.toggleButton.selected; +} + +#pragma mark - ACTION +- (void)toClickFootBtn:(UIButton *)button{ + + if (self.agreenBtn.selected == false) { + [EasyTextView showErrorText:@"请选阅读并同意用户服务协议与隐私"]; + return;; + } + + if (self.userNameField.text.length < 1) { + [EasyTextView showErrorText:@"请输入用户名"]; + return;; + } + + if (self.passwordField.text.length < 12 || self.passwordField.text.length > 32) { + + + + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"密码不安全,请先修改密码" preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { + + }]; + UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + + XJDLoginFoundPasswordViewController * modifVC = [[XJDLoginFoundPasswordViewController alloc] init]; + [self.navigationController pushViewController:modifVC animated:YES]; + + }]; + [alertController addAction:cancelAction]; + [alertController addAction:sureAction]; + + [self presentViewController:alertController animated:YES completion:nil]; + + + return;; + } + + NSString * publish_key = @" MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmZfR/bA9X3vp86y1aEpvwzXJYKRRF1fLau2+05/ZtaITLpV8bhkmSf3neSy/Q9gAdvG75Fr73E+GWE+K5b0BpvIS1jDGo319+PpZR39SaZTKZ27XFXrosmJTZutN79t819HS1VseleunHAFgMVufE9U5jP6LGzl/wbkSy01GhzwIDAQAB"; + + // 原始数据,要加密的字符串 + NSString *originalString = self.passwordField.text; + + // RSA 加密,使用字符串格式的公钥私钥加密解密, RSAPublickKey 为公钥字符串(NSString 格式) + NSString *encryptStr = [RSAObjC encrypt:originalString PublicKey:publish_key]; + NSLog(@"加密后:%@", encryptStr); + + [self showMBProgressHUDWithString:@"登录中" autoHidden:YES]; + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + [parmDic setObject:self.userNameField.text forKey:@"username"]; + [parmDic setObject:encryptStr forKey:@"password"]; + + //新增 + UIDevice *currentDevice = [UIDevice currentDevice]; + NSString * phone = [currentDevice getCurrentDeviceModel]; +// NSString * system = [NSString stringWithFormat:@"%.1f",CurrentSystemVersion] ; + [parmDic setObject:phone forKey:@"deviceType"]; + [parmDic setObject:@(CurrentSystemVersion) forKey:@"deviceSystem"]; + + XJDNetAPI * proctocolApi = [[XJDNetAPI alloc] init:self tag:@"LOGINGAPI" NeedToken:nil]; + [proctocolApi PostLogin:parmDic]; + + + +} + +- (void)createData { + + XJDNetAPI * agreeAPI = [[XJDNetAPI alloc] init:self tag:@"AGREEAPI" NeedToken:@""]; + + [agreeAPI getUserAgreementPrivacy:nil]; + +} + +- (void)ishiderRegisData { + + + XJDNetAPI * versionAPI = [[XJDNetAPI alloc] init:self tag:@"VERSIONAPI" NeedToken:@""]; + + [versionAPI getVesionHideRegis:@{@"type":@"app_update_doctor_ios"}]; + + +} + +#pragma mark -网络请求处理 +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + + [self hiddenAllMBProgressHUD]; + [EasyTextView showErrorText:message]; +} +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + if ([tag isEqualToString:@"LOGINGAPI"]) { + + NSDictionary * dic = response; + XJDUserInfo * user = [[XJDUserInfo alloc] init]; + user.userInfo = [dic objectForKey:@"userInfo"]; + user.token = [dic objectForKey:@"token"]; + [XJDCommonUtils keyedArchiverWithData:user key:LoginUserInfo]; + [[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:@"LOGINAgree"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + KPostNotification(KNotificationLoginStateChange, @YES); + //登录im +#if DEBUG + [self loginImAccount]; + +#else + [self loginImAccount]; + +#endif + } + if ([tag isEqualToString:@"IMAPI"]) { + + NSDictionary * pamrDic = response; + + XJDIMUserInfoModel * model = [XJDIMUserInfoModel modelWithDictionary:pamrDic]; + + XJDIMUserInfoModel * iminfoModel = [[XJDIMUserInfoModel alloc] init]; + iminfoModel.IMInfo = pamrDic; + [XJDCommonUtils keyedArchiverWithData:iminfoModel key:IMLoginUserInfo]; + + // 1. 从即时通信 IM 控制台获取应用 SDKAppID。 + // 2. 初始化 config 对象 + V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init]; + // 3. 指定 log 输出级别。 + config.logLevel = V2TIM_LOG_INFO; + // 4. 添加 V2TIMSDKListener 的事件监听器,self 是 id 的实现类,如果您不需要监听 IM SDK 的事件,这个步骤可以忽略。 + [[V2TIMManager sharedInstance] addIMSDKListener:self]; + // 5. 初始化 IM SDK,调用这个接口后,可以立即调用登录接口。 + [[V2TIMManager sharedInstance] initSDK:[model.sdkAppId intValue] config:config]; + + [ESCTUIManager loginInitTUISDKAppidWith:[model.sdkAppId intValue] UserID:model.userId userSig:model.userSig]; + + TUICallEngine * engin = [TUICallEngine createInstance]; + + [engin init:[model.sdkAppId intValue] userId:model.userId userSig:model.userSig succ:^{ + [engin addObserver:self]; + } fail:^(int code, NSString * _Nullable errMsg) { + + }]; + + + } + if ([tag isEqualToString:@"AGREEAPI"]) { + + NSArray * array = response; + + for (NSDictionary * parmDic in array) { + + XJDIMUserInfoModel * model = [XJDIMUserInfoModel modelWithDictionary:parmDic]; + + [self.dataArray addObject:model]; + + } + + } + + if ([tag isEqualToString:@"VERSIONAPI"]) { + + NSString * version = response; + + NSBundle *mainBundle = [NSBundle mainBundle]; + if (mainBundle) { + NSString *version = [mainBundle objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; + + if([version floatValue] < [version floatValue]) { + self.regisBtn.hidden = true; + }else + { + self.regisBtn.hidden = false; + } + } + } +} + +- (void)loginImAccount { + + + XJDNetAPI * proctocolApi = [[XJDNetAPI alloc] init:self tag:@"IMAPI" NeedToken:nil]; + [proctocolApi GetIMLoginAccount:nil]; + + + +} + + +- (void)agreeProtocolAction:(UIButton *)agreeBtn { + + agreeBtn.selected = !agreeBtn.selected; + + +} +#pragma mark:找回密码 +- (void)foundUserPasswordAction { + + XJDLoginFoundPasswordViewController * foundVC = [[XJDLoginFoundPasswordViewController alloc] init]; + + [self.navigationController pushViewController:foundVC animated:YES]; +} + +#pragma mark:注册 +- (void)regisAction { + + XJDRegisterViewController * forgetVc = [[XJDRegisterViewController alloc] init]; + + [self presentViewController:forgetVc animated:YES completion:nil]; +} + + + +-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { + + if(textField == self.passwordField) { + + self.passwordField.inputView = self.keyboard; + } + return YES; + +} + +- (void)keyboard:(LVKeyboard *)keyboard didClickDeleteButton:(UIButton *)deleteBtn string:(NSMutableString *)string { + self.passwordField.text = string; +} + +- (void)keyboard:(LVKeyboard *)keyboard didClickTextButton:(UIButton *)textBtn string:(NSMutableString *)string { + self.passwordField.text = string; +} + + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.passwordField resignFirstResponder]; +} +@end + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDAboutUsViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDAboutUsViewController.h new file mode 100644 index 0000000..2f6e80d --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDAboutUsViewController.h @@ -0,0 +1,16 @@ +// +// XJDAboutUsViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2024/1/15. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDAboutUsViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDAboutUsViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDAboutUsViewController.m new file mode 100644 index 0000000..87b27f0 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDAboutUsViewController.m @@ -0,0 +1,236 @@ +// +// XJDAboutUsViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2024/1/15. +// + +#import "XJDAboutUsViewController.h" +#import "XJDLoginProtocolWebViewController.h" + +@interface XJDAboutUsViewController () + +@property (nonatomic, strong) UITableView * homeTableView; + +@property (nonatomic, strong) NSMutableArray * dataArray; + +@end + +@implementation XJDAboutUsViewController + +- (NSMutableArray *)dataArray { + + if (!_dataArray) { + _dataArray = [[NSMutableArray alloc] init]; + } + return _dataArray; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.view.backgroundColor = CViewBgColor; + self.navigationItem.title = @"关于我们"; + [self createUI]; + [self createData]; + +} + +- (void)createUI +{ + self.homeTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight - kTopHeight) style:UITableViewStyleGrouped]; + if (@available(iOS 11.0, *)) { + self.homeTableView.estimatedRowHeight = 0; + self.homeTableView.estimatedSectionFooterHeight = 0; + self.homeTableView.estimatedSectionHeaderHeight = 0; + self.homeTableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + self.homeTableView.delegate = self; + self.homeTableView.backgroundColor = CViewBgColor; + self.homeTableView.dataSource = self; + self.homeTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; + self.homeTableView.showsVerticalScrollIndicator = NO; + [self.view addSubview:self.homeTableView]; +} + +- (void)createData { + + XJDNetAPI * agreeAPI = [[XJDNetAPI alloc] init:self tag:@"AGREEAPI" NeedToken:@""]; + + [agreeAPI getUserAgreementPrivacy:nil]; + +} + + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self showMBProgressHUDOnlyWithString:message]; + [self hiddenAllMBProgressHUD]; + +} + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + if ([tag isEqualToString:@"AGREEAPI"]) { + + NSArray * array = response; + + for (NSDictionary * parmDic in array) { + + XJDIMUserInfoModel * model = [XJDIMUserInfoModel modelWithDictionary:parmDic]; + + [self.dataArray addObject:model]; + + } + + } +} + + +#pragma mark - DataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + if (section == 0) { + return 2; + } + return 1; +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 2; + +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + + if (indexPath.section == 0) { + + NSArray * sectionOne = @[@"用户协议",@"隐私政策"]; + + + static NSString * cellID = @"cellID"; + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; + + if (!cell) { + + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID]; + } + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.textLabel.font = SYSTEMFONT(14); + cell.textLabel.text = sectionOne[indexPath.row]; + cell.textLabel.textColor = UIColorHex(#666666); + cell.textLabel.font = SYSTEMFONT(14); + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + cell.backgroundColor = KWhiteColor; + return cell; + + + } + if (indexPath.section == 1) { + + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CONNETCELL"]; + + if (!cell) { + + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"CONNETCELL"]; + } + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.textLabel.font = SYSTEMFONT(14); + cell.textLabel.text = @"版本号"; + cell.detailTextLabel.text = [[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleShortVersionString"]; + return cell; + + + } + + + return UITableViewCell.new; + +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + + + return 44; + +} + +- (CGFloat )tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section +{ + + return CGFLOAT_MIN; +} + + +- (CGFloat )tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section +{ + return kRealValue(5); +} + + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + + + return UIView.new; + +} + + + + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + + if (indexPath.section == 0) { + + + if (indexPath.row == 0) { + + for (XJDIMUserInfoModel * model in self.dataArray) { + + if ([model.value integerValue] == 1) { + + XJDLoginProtocolWebViewController * webVC= [[XJDLoginProtocolWebViewController alloc] init]; + webVC.webTitle = @"用户协议"; + webVC.webUrl = [NSString stringWithFormat:@"%@%@",IntervenH5,model.text]; + [self.navigationController pushViewController:webVC animated:YES]; + } + + } + } + if (indexPath.row == 1) { + + for (XJDIMUserInfoModel * model in self.dataArray) { + + if ([model.value integerValue] == 2) { + + XJDLoginProtocolWebViewController * webVC= [[XJDLoginProtocolWebViewController alloc] init]; + webVC.webTitle = @"隐私政策"; + webVC.webUrl = [NSString stringWithFormat:@"%@%@",IntervenH5,model.text]; + [self.navigationController pushViewController:webVC animated:YES]; + } + + } + } + } + + + + + +} + + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDGoodAtSicksViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDGoodAtSicksViewController.h new file mode 100644 index 0000000..a26ab49 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDGoodAtSicksViewController.h @@ -0,0 +1,24 @@ +// +// XJDGoodAtSicksViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/10. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^SelectedSickBlock)(NSArray * sicksArray); + +@interface XJDGoodAtSicksViewController : YXBaseViewController + +@property (nonatomic, copy) NSString * departmentId; + +@property (nonatomic, strong) NSMutableArray * sicksArray; + +@property (nonatomic, copy) SelectedSickBlock sicksBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDGoodAtSicksViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDGoodAtSicksViewController.m new file mode 100644 index 0000000..725af89 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDGoodAtSicksViewController.m @@ -0,0 +1,251 @@ +// +// XJDGoodAtSicksViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/10. +// + +#import "XJDGoodAtSicksViewController.h" +#import "XJDCustomDelectedView.h" +#import "XJDDoctorInfoModel.h" +#import "ZHTagListView.h" + +@interface XJDGoodAtSicksViewController () + +@property (nonatomic, strong) NSMutableArray * customArray; + +@property (nonatomic, strong) NSMutableArray * customDataArray; + +@property (nonatomic, strong) NSMutableArray * needArray; + +@property (nonatomic, strong) UIScrollView * mainScrollView; + +@property (nonatomic, strong) ZHTagListView *tagList; + +@property (nonatomic, copy) NSString * reasonString; + +@property (nonatomic, strong) NSArray * buttonArray; + +@end + + +@implementation XJDGoodAtSicksViewController + +- (NSMutableArray *)customArray { + + if(!_customArray) { + _customArray = [[NSMutableArray alloc] init]; + } + return _customArray; +} + + +- (NSMutableArray *)needArray { + + if(!_needArray) { + _needArray = [[NSMutableArray alloc] init]; + } + return _needArray; +} + + +- (NSMutableArray *)customDataArray { + + if (!_customDataArray) { + + _customDataArray = [[NSMutableArray alloc] init]; + } + + return _customDataArray; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.view.backgroundColor = KWhiteColor; + self.isHidenNaviBar = false; + self.navigationItem.title = @"擅长病种"; + [self addNavigationItemWithTitles:@[@"确认"] isLeft:false target:self action:@selector(sureAction) tags:@[@"1111"]]; + [self createUI]; + [self createData]; +} + +- (void)sureAction { + +// NSMutableArray * needArray = [[NSMutableArray alloc] init]; + //如果不点击 + + + for (XJDDoctorGoodSicknessModel * model in self.customDataArray) { + + for (NSString * sickName in self.sicksArray) { + + if ([sickName isEqualToString:model.sicksName]) { + + [self.needArray addObject:model]; + } + + } + } + self.sicksBlock(self.needArray); + //如果点击 + [self.navigationController popViewControllerAnimated:YES]; + + +} + + +- (void)createUI { + + self.mainScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; + [self.view addSubview:self.mainScrollView]; + + NSMutableArray *_dataSource = @[@" ",@" ",@" ",@" "].mutableCopy; + + ZHTagListConfiguration *config = [ZHTagListConfiguration defaultConfiguration]; +// config.tagTextColor = UIColorHex(#21BEBD); + config.tagTextMargin = 11; + config.tagHeight = 27; + config.tagTextFont = SYSTEMFONT(14); + config.tagMaxWidth = kScreenWidth - kRealValue(30); + config.tagListViewInset = UIEdgeInsetsMake(15, 15, 15, 10); + + + ZHTagListView *tagList = [[ZHTagListView alloc] initWithFrame:CGRectMake(kRealValue(15), 0, self.mainScrollView.width - kRealValue(30), 0) configuration:config tagTexts:_dataSource]; + tagList.backgroundColor = KWhiteColor; + [self.mainScrollView addSubview:tagList]; + self.tagList = tagList; + [tagList.tagButtonList enumerateObjectsUsingBlock:^(UIButton * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { +// [obj setBackgroundColor:KRedColor]; + + }]; + + +} + + + +- (void)createData { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + [parmDic setObject:self.departmentId forKey:@"departmentId"]; + + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"ROOMINFO" NeedToken:@""]; + + [homeApi GetInquireDoctorRoomInfo:parmDic]; + +} +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + + + if ([tag isEqualToString:@"ROOMINFO"]) { + + NSArray * resArray = response; + + NSMutableArray * dataArray = [[NSMutableArray alloc] init]; + + for (NSDictionary * dic in resArray) { + XJDDoctorGoodSicknessModel * sickModel = [XJDDoctorGoodSicknessModel modelWithDictionary:dic]; + [self.customDataArray addObject:sickModel]; + [dataArray addObject:sickModel.sicksName]; + } + //一样的数据 + NSMutableArray * samArray = [[NSMutableArray alloc] init]; + NSMutableArray * difArray = [[NSMutableArray alloc] init]; + + for ( NSString * allName in dataArray) { + + for (NSString * samString in self.sicksArray) { + + if ([allName isEqualToString:samString]) + { + [samArray addObject:allName]; + }else + { + [difArray addObject:allName]; + } + } + } + + + self.tagList.tags = dataArray; + + [self.tagList.tagButtonList enumerateObjectsUsingBlock:^(UIButton * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + + for (NSString * samString in samArray) { + + if ([obj.currentTitle isEqualToString:samString]) + { + [obj setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + obj.selected = true; + obj.layer.borderColor = UIColorHex(#21BEBD).CGColor; + break; + }else + { + [obj setTitleColor:CFontColor1 forState:UIControlStateNormal]; + obj.selected = false; + obj.layer.borderColor = UIColorHex(#666666).CGColor; + } + + } + + + + }]; + + + NSMutableArray * clickArray = [[NSMutableArray alloc] initWithArray:self.sicksArray]; + + [self.tagList setTagClickHandler:^(ZHTagListView *tagListView, NSString *tagText, NSUInteger index) { + UIButton * btn = tagListView.tagButtonList[index]; + self.reasonString = tagText; + btn.selected = !btn.selected; + if (btn.selected == true) { + [btn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + btn.selected = true; + btn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + }else + { + [btn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + btn.selected = false; + btn.layer.borderColor = UIColorHex(#666666).CGColor; + } + [clickArray removeAllObjects]; + for (UIButton * seleBtn in tagListView.tagButtonList) { + + if (seleBtn.selected == true) { + + [clickArray addObject:seleBtn.currentTitle]; + + } + + } + self.sicksArray = clickArray; + }]; + } + + +} + + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/HQRegisterViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDMineViewController.h similarity index 62% rename from DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/HQRegisterViewController.h rename to DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDMineViewController.h index 02eb0ff..6f0df19 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Login_Register/register/HQRegisterViewController.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDMineViewController.h @@ -1,5 +1,5 @@ // -// YXRegisterViewController.h +// XJDMineViewController.h // healthQuestion // // Created by xulei on 2022/8/17. @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXRegisterViewController : YXBaseViewController +@interface XJDMineViewController : YXBaseViewController @end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDMineViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDMineViewController.m new file mode 100644 index 0000000..377a9e8 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDMineViewController.m @@ -0,0 +1,412 @@ +// +// XJDMineViewController.m +// healthQuestion +// +// Created by xulei on 2022/8/17. +// + +#import "XJDMineViewController.h" +#import "GraphView.h" +#import "AAChartKit.h" +#import "XJDQuestionStatisticsViewController.h" +#import "XJDStopAnnouncementViewController.h" +#import "XJDUserCenterInfoViewController.h" +#import "XJDModifyPasswordViewController.h" +#import "XJDSchedulingSettingViewController.h" +#import "XJDDoctorInfoModel.h" +#import "XJDworkSetingViewController.h" +#import "XJDStopQuestionSettingVC.h" +#import "XJDHomePageModel.h" +#import "ChatViewController.h" +#import "TUIC2CChatViewController.h" +#import "XJDAboutUsViewController.h" +@interface XJDMineViewController () + +@property (strong, nonatomic) AAChartView * aaChartView; + +@property (strong, nonatomic) AAChartModel * configureAreaChartThreshold; + +@property (nonatomic, strong) UILabel * nameLabel; + +@property (nonatomic, strong) UILabel * workLabel; + +@property (nonatomic, strong) UILabel * hospatilLabel; + +@property (nonatomic, strong) UIImageView * heardImage; + +@property (nonatomic, strong) NSMutableArray * dataArray; + +@end + +@implementation XJDMineViewController + +#pragma mark:懒加载 + +- (NSMutableArray *)dataArray { + + if (!_dataArray) { + _dataArray = [[NSMutableArray alloc] init]; + } + return _dataArray; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.isHidenNaviBar = false; + self.view.backgroundColor = UIColorHex(#EFEFEF); + self.navigationItem.title = @"我的"; + [self createUI]; +} + +- (void)viewWillAppear:(BOOL)animated { + + [super viewWillAppear:animated]; + [self docotrUserInfo]; + + +} + +- (void)docotrUserInfo { + + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"DoctorINFO" NeedToken:@""]; + + [homeApi GetInquireDoctorInfo:nil]; + +} + + +- (void) createUI{ + self.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), kRealValue(19), 100, 20)]; + self.nameLabel.textColor = CFontColor1; + self.nameLabel.font = SYSTEMFONT(21); + self.nameLabel.text = @""; + self.nameLabel.textAlignment = NSTextAlignmentLeft; + [self.view addSubview:self.nameLabel]; + + self.workLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.nameLabel.right + kRealValue(12), kRealValue(25), 100, 13)]; + self.workLabel.textColor = CFontColor1; + self.workLabel.font = SYSTEMFONT(13); + self.workLabel.text = @""; + CGFloat workW = [XJDCommonUtils getLengthFromText:self.workLabel.text andFontSize:13]; + self.workLabel.width = workW; + self.workLabel.textAlignment = NSTextAlignmentLeft; + [self.view addSubview:self.workLabel]; + + self.hospatilLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(15), self.nameLabel.bottom + kRealValue(17), kScreenWidth - kRealValue(65), 20)]; + self.hospatilLabel.textColor = CFontColor1; + self.hospatilLabel.font = SYSTEMFONT(13); + self.hospatilLabel.text = @""; + self.hospatilLabel.textAlignment = NSTextAlignmentLeft; + [self.view addSubview:self.hospatilLabel]; + + self.heardImage = [[UIImageView alloc] initWithFrame:CGRectMake(kScreenWidth - kRealValue(24) - 60, kRealValue(10), 60, 60)]; + self.heardImage.layer.cornerRadius = 30.0; + self.heardImage.layer.masksToBounds = true; + [self.view addSubview:self.heardImage]; + + UIView * toolsView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), self.heardImage.bottom + kRealValue(22), kScreenWidth - kRealValue(30), kRealValue(104))]; + toolsView.backgroundColor = KWhiteColor; + toolsView.layer.cornerRadius = 10; + toolsView.layer.masksToBounds = true; + [self.view addSubview:toolsView]; + [XJDCommonUtils addShadowToView:toolsView]; + + CGFloat mager = (toolsView.width - kRealValue(28) - kRealValue(47) * 4)/3; + + NSArray * array = @[@[@"小助手",@"smallHelp_icon"],@[@"咨询统计",@"questionStatistics_icon"],@[@"排班设置",@"schedulingSeting_icon"],@[@"暂停服务",@"stopHelp_icon"]]; + for (int i = 0; i < array.count; i ++) { + + UIImageView * toolsImg = [[UIImageView alloc] initWithFrame:CGRectMake(kRealValue(14) + (kRealValue(47) + mager) * i , kRealValue(17), kRealValue(47), kRealValue(47))]; + toolsImg.image = [UIImage imageNamed:array[i][1]]; + [toolsView addSubview:toolsImg]; + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(toolsImg.left-kRealValue(10), toolsImg.bottom + kRealValue(10), toolsImg.width + kRealValue(20), 13)]; + titleLabel.text = array[i][0]; + titleLabel.font = SYSTEMFONT(13); + titleLabel.textColor = CFontColor1; + titleLabel.textAlignment = NSTextAlignmentCenter; + [toolsView addSubview:titleLabel]; + + UIButton * clickBtn = [[UIButton alloc] initWithFrame:CGRectMake(toolsImg.left, kRealValue(17), toolsImg.width, kRealValue(80))]; + clickBtn.tag = 500+ i; + [clickBtn addTarget:self action:@selector(toolsAction:) forControlEvents:UIControlEventTouchUpInside]; + [toolsView addSubview:clickBtn]; + } + + UIView * infoView = [[UIView alloc] initWithFrame:CGRectMake(toolsView.left, toolsView.bottom + kRealValue(10), toolsView.width, kRealValue(150))]; + infoView.backgroundColor = KWhiteColor; + infoView.layer.cornerRadius = 5; + infoView.layer.masksToBounds = true; + [self.view addSubview:infoView]; + [XJDCommonUtils addShadowToView:infoView]; + + UITableView * table = [[UITableView alloc] initWithFrame:CGRectMake(toolsView.left, toolsView.bottom + kRealValue(10), toolsView.width, kRealValue(150))]; + table.delegate = self; + table.dataSource = self; + table.backgroundColor = KWhiteColor; + table.showsVerticalScrollIndicator = false; + table.showsHorizontalScrollIndicator = false; + table.layer.cornerRadius = 5; + table.layer.masksToBounds = true; + table.scrollEnabled = false; + table.separatorStyle = UITableViewCellSeparatorStyleSingleLine; + [self.view addSubview:table]; + [XJDCommonUtils addShadowToView:table]; + + + UIButton * outLoginBtn = [[UIButton alloc] initWithFrame:CGRectMake(kRealValue(48), kScreenHeight - kTabBarHeight - kTopHeight -kRealValue(100) , kScreenWidth - kRealValue(96), kRealValue(40))]; + outLoginBtn.backgroundColor = KWhiteColor; + [outLoginBtn setTitle:@"退出登录" forState:UIControlStateNormal]; + [outLoginBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + outLoginBtn.layer.cornerRadius = 20; + outLoginBtn.layer.masksToBounds = YES; + outLoginBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + outLoginBtn.titleLabel.font = SYSTEMFONT(14); + [outLoginBtn addTarget:self action:@selector(outLoginUserinfo) forControlEvents:UIControlEventTouchUpInside]; + outLoginBtn.layer.borderWidth = 1.0f; + [self.view addSubview:outLoginBtn]; + +} + +- (void)toolsAction:(UIButton *)toolsBtn { + + switch (toolsBtn.tag) { + case 500: + { + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"FOUNDSMALLAPI" NeedToken:@""]; + [homeApi getHomeFoundSmallHelpData:nil]; + //小助手 + } + break; + case 501: + { + //咨询统计 + XJDQuestionStatisticsViewController * statisVc = [[XJDQuestionStatisticsViewController alloc] init]; + + [self.navigationController pushViewController:statisVc animated:YES]; + + } + break; + case 502: + { + //时间 +// SchedulingSettingViewController * timeVc = [[SchedulingSettingViewController alloc] init]; +// +// [self.navigationController pushViewController:timeVc animated:YES]; + XJDworkSetingViewController * statisVc = [[XJDworkSetingViewController alloc] init]; + + [self.navigationController pushViewController:statisVc animated:YES]; + + } + break; + case 503: + { + //暂停服务 + XJDStopQuestionSettingVC * stopVC = [[XJDStopQuestionSettingVC alloc] init]; + + [self.navigationController pushViewController:stopVC animated:YES]; + } + break; + + default: + break; + } + +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 1; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return 3; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + + return kRealValue(50); + +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + NSArray * array = @[@[@"个人信息设置",@"mainHeard_icon"],@[@"账号安全设置(修改密码)",@"AccountSafety_icon"],@[@"关于我们",@"aboutUS_Icon"]]; + + UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"BILLCELL"]; + + if (!cell) { + + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BILLCELL"]; + } + cell.backgroundColor = KWhiteColor; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.imageView.image = [UIImage imageNamed:array[indexPath.row][1]]; + cell.textLabel.text = array[indexPath.row][0]; + cell.textLabel.font = SYSTEMFONT(14); + cell.textLabel.textColor = CFontColor1; + return cell; + +} + + +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + if (indexPath.row == 0) { + + XJDUserCenterInfoViewController * infoVC = [[XJDUserCenterInfoViewController alloc] init]; + + [self.navigationController pushViewController:infoVC animated:YES]; + } + if (indexPath.row == 1) { + + XJDModifyPasswordViewController * modifVC = [[XJDModifyPasswordViewController alloc] init]; + + [self.navigationController pushViewController:modifVC animated:YES]; + + } + if (indexPath.row == 2) { + + XJDAboutUsViewController * aboutVC = [[XJDAboutUsViewController alloc] init]; + + [self.navigationController pushViewController:aboutVC animated:YES]; + } + +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + + + if ([tag isEqualToString:@"DoctorINFO"]) { + + NSDictionary * parDic = response; + + XJDDoctorInfoModel * model = [XJDDoctorInfoModel modelWithDictionary:parDic]; + self.nameLabel.text = model.doctorName; + CGFloat w = [XJDCommonUtils getLengthFromText:self.nameLabel.text andFontSize:21]; + self.nameLabel.width = w; + self.workLabel.text = [NSString stringWithFormat:@"%@",model.doctorTitle] ; + self.workLabel.left = self.nameLabel.right + kRealValue(10); + CGFloat workW = [XJDCommonUtils getLengthFromText:self.workLabel.text andFontSize:13]; + self.workLabel.width = workW; + self.hospatilLabel.text = [NSString stringWithFormat:@"%@ %@",model.resourceName,model.departmentName]; + + NSString * photo = [NSString stringWithFormat:@"%@%@",ResourceAddress,model.photo]; + + NSString * str1 = @"\\"; + + photo = [photo stringByReplacingOccurrencesOfString:str1 withString:@"/"]; + + NSString *encodedString3 = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)photo, (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]", NULL, kCFStringEncodingUTF8)); + + [self.heardImage sd_setImageWithURL:[NSURL URLWithString:encodedString3] placeholderImage:[UIImage imageNamed:@"doctorNoImage"]]; + } + if ([tag isEqualToString:@"FOUNDSMALLAPI"]) { + + NSDictionary * responDic = response; + + XJDSmallHelpModel * helpModel = [XJDSmallHelpModel modelWithDictionary:responDic]; + + if ([ESCTUIManager TUIUserStatus] == false) { + + + [self loginImAccount]; + return; + } + + ChatViewController * chatVC = [[ChatViewController alloc] init]; + chatVC.isGroupID = YES; + chatVC.chatID = helpModel.groupId; + chatVC.smallHelp_id = helpModel.help_Id; + chatVC.member = helpModel.member; + chatVC.isVideo = YES; + chatVC.eableSendReport = YES; + chatVC.eableMapTools = false; + chatVC.isVideo = false; + chatVC.navTitle = @"小助手"; + chatVC.eablehaveHelathData = YES; + chatVC.memberSex = @"2"; + [self.navigationController pushViewController:chatVC animated:YES]; + } + if ([tag isEqualToString:@"loginIMAPI"]) { + + NSDictionary * pamrDic = response; + + XJDIMUserInfoModel * model = [XJDIMUserInfoModel modelWithDictionary:pamrDic]; + + XJDIMUserInfoModel * iminfoModel = [[XJDIMUserInfoModel alloc] init]; + iminfoModel.IMInfo = pamrDic; + [XJDCommonUtils keyedArchiverWithData:iminfoModel key:IMLoginUserInfo]; + + // 1. 从即时通信 IM 控制台获取应用 SDKAppID。 + // 2. 初始化 config 对象 + V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init]; + // 3. 指定 log 输出级别。 + config.logLevel = V2TIM_LOG_INFO; + // 4. 添加 V2TIMSDKListener 的事件监听器,self 是 id 的实现类,如果您不需要监听 IM SDK 的事件,这个步骤可以忽略。 + [[V2TIMManager sharedInstance] addIMSDKListener:self]; + // 5. 初始化 IM SDK,调用这个接口后,可以立即调用登录接口。 + [[V2TIMManager sharedInstance] initSDK:[model.sdkAppId intValue] config:config]; + + [ESCTUIManager loginInitTUISDKAppidWith:[model.sdkAppId intValue] UserID:model.userId userSig:model.userSig]; + + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"FOUNDSMALLAPI" NeedToken:@""]; + + [homeApi getHomeFoundSmallHelpData:nil]; + } + + +} + +- (void)loginImAccount { + + XJDNetAPI * proctocolApi = [[XJDNetAPI alloc] init:self tag:@"loginIMAPI" NeedToken:nil]; + [proctocolApi GetIMLoginAccount:nil]; + +} + +- (void)outLoginUserinfo { + + + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"是否确定退出登录?" preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { + + }]; + UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + [XJDCommonUtils keyedArchiverWithData:nil key:LoginUserInfo]; + [ESCTUIManager outLoginTUISDK]; + KPostNotification(KNotificationLoginStateChange, @NO); + }]; + [alertController addAction:cancelAction]; + [alertController addAction:sureAction]; + + [self presentViewController:alertController animated:YES completion:nil]; +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDUserCenterInfoViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDUserCenterInfoViewController.h new file mode 100644 index 0000000..9d37f7e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDUserCenterInfoViewController.h @@ -0,0 +1,16 @@ +// +// XJDUserCenterInfoViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/6. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDUserCenterInfoViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDUserCenterInfoViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDUserCenterInfoViewController.m new file mode 100644 index 0000000..28f2b3e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/XJDUserCenterInfoViewController.m @@ -0,0 +1,631 @@ +// +// XJDUserCenterInfoViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/6. +// + +#import "XJDUserCenterInfoViewController.h" +#import "XJDCustomDelectedView.h" +#import "UIPlaceHolderTextView.h" +#import "XJDUserAddGoodPopView.h" +#import "XJDDoctorInfoModel.h" +#import "XJDGoodAtSicksViewController.h" + +@interface XJDUserCenterInfoViewController () + +@property (nonatomic, strong) NSMutableArray * customArray; + +@property (nonatomic, strong) NSMutableArray * customDataArray; + +@property (nonatomic, strong) NSMutableArray * sicksArray; + + +@property (nonatomic, copy) NSString *departmentId; +@property (nonatomic, copy) NSString *doctor_Id; + + +@property (nonatomic, strong) UIScrollView * mainScrollView; + +@property (nonatomic, strong) UIPlaceHolderTextView * shanchangTextView; + +@property (nonatomic, strong) UIPlaceHolderTextView * jianjieTextView; + +@property (nonatomic, strong) UIImageView * headImg; + +@property(nonatomic,strong) UIAlertController *sheetVC;//选择框 + +@property (nonatomic, strong) UIView * bingView;//擅长病种 + +@property (nonatomic, strong) UIView * shangView;//个人擅长 + +@property (nonatomic, strong) UILabel * sinceLabel ; + +@property (nonatomic, assign) CGFloat sinceW ; + + +@end + +@implementation XJDUserCenterInfoViewController + + +-(UIAlertController *)sheetVC +{ + + if (!_sheetVC) { + _sheetVC=[UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; + + UIAlertAction *takePhoto=[UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + [self takePhoto]; + }]; + UIAlertAction *chosePhoto=[UIAlertAction actionWithTitle:@"去相册中选择" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + [self pushImagePickerController]; + }]; + UIAlertAction *cancel=[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { + }]; + + + + if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) + { + [_sheetVC addAction:takePhoto]; + } + [_sheetVC addAction:chosePhoto]; + [_sheetVC addAction:cancel]; + } + return _sheetVC; + +} + +- (NSMutableArray *)customArray { + + if (!_customArray) { + + _customArray = [[NSMutableArray alloc] init]; + } + + return _customArray; +} + +- (NSMutableArray *)customDataArray { + + if (!_customDataArray) { + + _customDataArray = [[NSMutableArray alloc] init]; + } + + return _customDataArray; +} + +- (NSMutableArray *)sicksArray { + + if (!_sicksArray) { + + _sicksArray = [[NSMutableArray alloc] init]; + } + + return _sicksArray; + +} +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.view.backgroundColor = UIColorHex(#EFEFEF); + self.navigationItem.title = @"个人信息"; + [self createUI]; + //请求医生信息 + [self docotrUserInfo]; + +} + +- (void)docotrUserInfo { + + [self showMBProgressHUDWithString:@"数据加载中,请稍候" autoHidden:false]; + XJDNetAPI * homeApi = [[XJDNetAPI alloc] init:self tag:@"DoctorINFO" NeedToken:@""]; + + [homeApi GetInquireDoctorInfo:nil]; + +} + +- (void)createUI { + + UIScrollView * mainScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth,kScreenHeight - kTopHeight - SafetyAreaHeight - 50)]; + self.mainScrollView = mainScrollView; + [self.view addSubview:mainScrollView]; + + UIView * topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 260)]; + topView.backgroundColor = KWhiteColor; + [mainScrollView addSubview:topView]; + + UILabel * headLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), kRealValue(24), 100, 14)]; + headLabel.text = @"头像"; + headLabel.textColor = CFontColor1; + headLabel.font = SYSTEMFONT(14); + headLabel.textAlignment = NSTextAlignmentLeft; + [topView addSubview:headLabel]; + + UIImageView * accowImg = [[UIImageView alloc] initWithFrame:CGRectMake(kScreenWidth - kRealValue(15) - 12, kRealValue(25), 16, 22)]; + accowImg.image = [UIImage imageNamed:@"garyRight"]; + [topView addSubview:accowImg]; + + UIImageView * headImg = [[UIImageView alloc] initWithFrame:CGRectMake(accowImg.left - 57 , kRealValue(8), 45, 45)]; + self.headImg = headImg; + headImg.userInteractionEnabled = true; + [topView addSubview:headImg]; + + UIButton * changeBtn = [[UIButton alloc] initWithFrame:CGRectMake(kScreenWidth - 77, 0, 77, headImg.height)]; + [changeBtn addTarget:self action:@selector(chageUserHeard) forControlEvents:UIControlEventTouchUpInside]; + [topView addSubview:changeBtn]; + + NSArray * titleArray = @[@[@"姓名",@"请输入姓名"],@[@"医院",@"请输入医院名称"],@[@"科室",@"请输入科室"],@[@"职称",@"请输入职称"]]; + for (int i = 0 ; i < titleArray.count; i ++) { + + UIView * lineView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(14), headImg.bottom + 9 + i * kRealValue(45), kScreenWidth - kRealValue(28), 1)]; + lineView.backgroundColor = UIColorHex(#E0E0E0); + [topView addSubview:lineView]; + + UILabel * leftLabel = [[UILabel alloc] initWithFrame:CGRectMake(headLabel.left, lineView.bottom + kRealValue(15), 100, 14)]; + leftLabel.text = titleArray[i][0] ; + leftLabel.textColor = CFontColor1; + leftLabel.textAlignment = NSTextAlignmentLeft; + leftLabel.font = MEDIUMFONT(14); + [topView addSubview:leftLabel]; + + UITextField * inputField = [[UITextField alloc] initWithFrame:CGRectMake(topView.width - kRealValue(17) - 200, leftLabel.top, 200, 15)]; + inputField.placeholder = titleArray[i][1] ; + inputField.font = SYSTEMFONT(14); + inputField.textAlignment = NSTextAlignmentRight; + inputField.tag = 10 + i; + [topView addSubview:inputField]; + } + //擅长病种 + UIView * bingView = [[UIView alloc] initWithFrame:CGRectMake(0, topView.bottom + kRealValue(10), kScreenWidth, kRealValue(200))]; + bingView.backgroundColor = KWhiteColor; + self.bingView = bingView; + [mainScrollView addSubview:bingView]; + + UILabel * sinceLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), kRealValue(24), 55, 14)]; + sinceLabel.text = @"擅长病种"; + sinceLabel.textColor = CFontColor1; + sinceLabel.font = SYSTEMFONT(14); + sinceLabel.textAlignment = NSTextAlignmentLeft; + self.sinceLabel = sinceLabel; + CGFloat sinceW = [XJDCommonUtils getLengthFromText:sinceLabel.text andFontSize:14]; + self.sinceW = sinceW; + sinceLabel.width = sinceW + 10; + [bingView addSubview:sinceLabel]; + + UIButton * addTagBtn = [[UIButton alloc] initWithFrame:CGRectMake(kScreenWidth - kRealValue(10) - kRealValue(50), kRealValue(15), kRealValue(49), kRealValue(27))]; + [addTagBtn setTitle:@"添加" forState:UIControlStateNormal]; + [addTagBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + [addTagBtn setBackgroundColor:KWhiteColor]; + [addTagBtn addTarget:self action:@selector(addUserInfo) forControlEvents:UIControlEventTouchUpInside]; + addTagBtn.layer.borderWidth = 1.0; + addTagBtn.layer.masksToBounds = YES; + addTagBtn.titleLabel.font = SYSTEMFONT(14); + addTagBtn.layer.cornerRadius = 13; + addTagBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + [bingView addSubview:addTagBtn]; + + + CGFloat pointX = sinceLabel.right; + CGFloat pointY = 10; + CGFloat allWidth = kScreenWidth-sinceW- 20; + UIFont *titleFont = [UIFont systemFontOfSize:14]; + for(int i = 0; i < self.customDataArray.count; i++) { + +// CGRect rect = [array[i] boundingRectWithSize:CGSizeMake(MAXFLOAT, 25) options:NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : titleFont} context:nil]; + CGFloat width = 22; + + if (pointX + width > allWidth) {//换行 + pointX = sinceLabel.right;//X从新开始 + pointY += 40;//换行后Y+ + } + XJDCustomDelectedView * custView = [[XJDCustomDelectedView alloc] initWithFrame:CGRectMake(pointX, pointY, width, 25)]; + custView.delectBlock = ^(NSInteger btnTag) { + [self reloadCustomView:btnTag]; + }; + custView.btntag = 100 + i; + pointX += (width + 10);//每次X都加上宽和间距5 + + [bingView addSubview:custView]; + [self.customArray addObject:custView]; + } + UIView * lastView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), sinceLabel.bottom + kRealValue(10), 100, 13)]; + if (self.customArray.count > 0) { + + lastView = [self.customArray lastObject]; + } + bingView.height = lastView.bottom + 20; + + //个人擅长页面 + UIView * shangView = [[UIView alloc] initWithFrame:CGRectMake(0, bingView.bottom, kScreenWidth, kRealValue(500))]; + shangView.backgroundColor = KWhiteColor; + self.shangView = shangView; + [mainScrollView addSubview:shangView]; + + UILabel * gerenLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), 0, sinceLabel.width, 14)]; + gerenLabel.text = @"个人擅长"; + gerenLabel.textColor = CFontColor1; + gerenLabel.font = SYSTEMFONT(14); + gerenLabel.textAlignment = NSTextAlignmentLeft; + [shangView addSubview:gerenLabel]; + + self.shanchangTextView = [[UIPlaceHolderTextView alloc] initWithFrame:CGRectMake(kRealValue(14), gerenLabel.bottom + kRealValue(15), kScreenWidth - kRealValue(28), 179)]; + self.shanchangTextView.placeholder = @"请输入个人擅长方向"; + self.shanchangTextView.font = SYSTEMFONT(14); + self.shanchangTextView.backgroundColor = UIColorHex(#EFEFEF); + self.shanchangTextView.layer.cornerRadius = 5; + self.shanchangTextView.layer.masksToBounds = true; + [shangView addSubview:self.shanchangTextView]; + + UILabel * jianjieLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), self.shanchangTextView.bottom + kRealValue(23), sinceLabel.width, 14)]; + jianjieLabel.text = @"个人简介"; + jianjieLabel.textColor = CFontColor1; + jianjieLabel.font = MEDIUMFONT(14); + jianjieLabel.textAlignment = NSTextAlignmentLeft; + [shangView addSubview:jianjieLabel]; + + self.jianjieTextView = [[UIPlaceHolderTextView alloc] initWithFrame:CGRectMake(kRealValue(14), jianjieLabel.bottom + kRealValue(15), kScreenWidth - kRealValue(28), 179)]; + self.jianjieTextView.placeholder = @"请输入个人简介"; + self.jianjieTextView.font = SYSTEMFONT(14); + self.jianjieTextView.backgroundColor = UIColorHex(#EFEFEF); + self.jianjieTextView.layer.cornerRadius = 5; + self.jianjieTextView.layer.masksToBounds = true; + [shangView addSubview:self.jianjieTextView]; + + shangView.height = self.jianjieTextView.bottom + kRealValue(33); + + + + + UIButton * saveBtn = [[UIButton alloc] initWithFrame:CGRectMake(kRealValue(47), kScreenHeight - SafetyAreaHeight - kTopHeight - 40, kScreenWidth - kRealValue(94), 40)]; + saveBtn.backgroundColor = KWhiteColor; + saveBtn.layer.cornerRadius = 20.0f; + saveBtn.layer.masksToBounds = true; + [saveBtn setTitle:@"保存" forState:UIControlStateNormal]; + [saveBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + saveBtn.titleLabel.font = SYSTEMFONT(14); + saveBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + saveBtn.layer.borderWidth = 1.0f; + [saveBtn addTarget:self action:@selector(saveUserInfo) forControlEvents:UIControlEventTouchUpInside]; + [self.view addSubview:saveBtn]; + mainScrollView.contentSize = CGSizeMake(kScreenWidth, shangView.bottom + SafetyAreaHeight + kRealValue(50)); + +} + +#pragma mark:删除病种 + +- (void)reloadCustomView:(NSInteger)btnTag { + + [self.customDataArray removeObjectAtIndex:btnTag]; + [self.sicksArray removeObjectAtIndex:btnTag]; + [self reloadCenterView:self.customDataArray]; +} + +#pragma marr:更新中间视图 + +- (void)reloadCenterView:(NSMutableArray *)customArray { + + for (XJDCustomDelectedView * cusView in self.customArray) { + + [cusView removeFromSuperview]; + } + + CGFloat pointX = self.sinceLabel.right; + CGFloat pointY = 10; + CGFloat allWidth = kScreenWidth-self.sinceW- 20; + UIFont *titleFont = [UIFont systemFontOfSize:14]; + for(int i = 0; i < customArray.count; i++) { + + CGRect rect = [customArray[i] boundingRectWithSize:CGSizeMake(MAXFLOAT, 25) options:NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : titleFont} context:nil]; + CGFloat width = rect.size.width +22; + + if (pointX + width > allWidth) {//换行 + pointX = self.sinceLabel.right;//X从新开始 + pointY += 40;//换行后Y+ + } + XJDCustomDelectedView * custView = [[XJDCustomDelectedView alloc] initWithFrame:CGRectMake(pointX, pointY, width, 25)]; + custView.delectBlock = ^(NSInteger btnTag) { + [self reloadCustomView:btnTag]; + }; + custView.btntag = 100 + i; + custView.titleString = customArray[i]; + pointX += (width + 10);//每次X都加上宽和间距5 + + [self.bingView addSubview:custView]; + [self.customArray addObject:custView]; + } + UIView * lastView = [[UIView alloc] initWithFrame:CGRectMake(kRealValue(15), self.sinceLabel.bottom + kRealValue(10), 100, 13)]; + if (self.customArray.count > 0) { + + lastView = [self.customArray lastObject]; + } + self.bingView.height = lastView.bottom + 30; + self.shangView.frame = CGRectMake(0, self.bingView.bottom, kScreenWidth, kRealValue(500)); + self.shangView.height = self.jianjieTextView.bottom + kRealValue(33); + self.mainScrollView.contentSize = CGSizeMake(kScreenWidth, self.shangView.bottom + SafetyAreaHeight + kRealValue(50)); + +} + +#pragma mark:添加擅长病种 +- (void)addUserInfo { + +// userAddGoodPopView * popView = [[userAddGoodPopView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; +// MJWeakSelf +// popView.popBlock = ^(NSString * _Nonnull inputString) +// { +// +// [weakSelf.customDataArray addObject:inputString]; +// [weakSelf reloadCenterView:weakSelf.customDataArray]; +// }; +// popView.alpha = 0; +// +// [kAppWindow addSubview:popView]; +// +// [UIView animateWithDuration:0.5 animations:^{ +// popView.alpha = 1; +// }]; + XJDGoodAtSicksViewController * goodVC = [[XJDGoodAtSicksViewController alloc] init]; + goodVC.departmentId = self.departmentId; + goodVC.sicksArray = self.customDataArray; + goodVC.sicksBlock = ^(NSArray * _Nonnull sicksArray) { + [self.customDataArray removeAllObjects]; + [self.sicksArray removeAllObjects]; + + self.sicksArray = sicksArray.mutableCopy; + + for (XJDDoctorGoodSicknessModel * sickModel in sicksArray) { + + [self.customDataArray addObject:sickModel.sicksName]; + [self reloadCenterView:self.customDataArray]; + + } + }; + [self.navigationController pushViewController:goodVC animated:YES]; +} + +#pragma mark:更新头像 +- (void)chageUserHeard { + + [self presentViewController:self.sheetVC animated:YES completion:nil]; + +} + +- (void)pushImagePickerController +{ + UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; + imagePickerController.delegate = self; + imagePickerController.allowsEditing = YES; + imagePickerController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; + [self presentViewController:imagePickerController animated:YES completion:^{}]; +} + +- (void)takePhoto +{ + // 跳转到相机或相册页面 + UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; + imagePickerController.delegate = self; + imagePickerController.allowsEditing = YES; + imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; + [self presentViewController:imagePickerController animated:YES completion:^{}]; +} + +#pragma mark - image picker delegte +- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info +{ + [picker dismissViewControllerAnimated:YES completion:^{}]; + //先把图片转成NSData + NSString *type = [info objectForKey:UIImagePickerControllerMediaType]; + //当选择的类型是图片 + if ([type isEqualToString:@"public.image"]) + { + //先把图片转成NSData + UIImage* image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; + + NSData *data; + if (UIImagePNGRepresentation(image) == nil) + { + data = UIImageJPEGRepresentation(image, 1.0); + } + else + { + data = UIImagePNGRepresentation(image); + } + self.headImg.image=image; + + //上传图片 + [self upHeardPhoto]; + + //图片保存的路径 + //这里将图片放在沙盒的documents文件夹中 + NSString * DocumentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; + + //文件管理器 + NSFileManager *fileManager = [NSFileManager defaultManager]; + + //把刚刚图片转换的data对象拷贝至沙盒中 并保存为image.png + [fileManager createDirectoryAtPath:DocumentsPath withIntermediateDirectories:YES attributes:nil error:nil]; + [fileManager createFileAtPath:[DocumentsPath stringByAppendingString:@"/image.png"] contents:data attributes:nil]; + [picker dismissViewControllerAnimated:YES completion:nil ]; + } + + +} +- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker +{ + [self dismissViewControllerAnimated:YES completion:^{}]; +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + [self hiddenAllMBProgressHUD]; + + + if ([tag isEqualToString:@"DoctorINFO"]) { + + NSDictionary * parDic = response; + + XJDDoctorInfoModel * model = [XJDDoctorInfoModel modelWithDictionary:parDic]; + self.doctor_Id = model.doctor_Id; + //姓名 + UITextField * nameField = [self.view viewWithTag:10]; + nameField.text = model.doctorName; + //医院 + UITextField * hospitalField = [self.view viewWithTag:11]; + hospitalField.text = model.resourceName; + //科室 + UITextField * roomField = [self.view viewWithTag:12]; + roomField.text = model.departmentName; + //职称 + UITextField * workField = [self.view viewWithTag:13]; + workField.text = model.doctorTitle; + + NSString * photo = [NSString stringWithFormat:@"%@%@",ResourceAddress,model.photo]; + + NSString * str1 = @"\\"; + + photo = [photo stringByReplacingOccurrencesOfString:str1 withString:@"/"]; + + NSString *encodedString3 = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)photo, (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]", NULL, kCFStringEncodingUTF8)); + + [self.headImg sd_setImageWithURL:[NSURL URLWithString:encodedString3] placeholderImage:PLACEHOLD_IMG]; + // + [self.customArray removeAllObjects]; + self.sicksArray = model.goodAtSicknessName; + for (XJDDoctorGoodSicknessModel * sickModel in model.goodAtSicknessName) { + [self.customDataArray addObject:sickModel.sicksName]; + [self reloadCenterView:self.customDataArray]; + + } + //个人擅长 + self.shanchangTextView.text = model.goodAt; + //个人简介 + self.jianjieTextView.text = model.introduction; + self.departmentId = model.departmentId; + + } + if ([tag isEqualToString:@"UPLOADAPI"]) + { + NSMutableArray * imageUrlArray = [[NSMutableArray alloc] init]; + + NSArray * array = response; + + [imageUrlArray addObjectsFromArray:array]; + + NSString * headImg ; + for (NSString * imageString in imageUrlArray) { + + headImg = imageString; + } + [self updateUserHeard:headImg]; + } + if ([tag isEqualToString:@"DOCTORINFO"]) { + + [self.navigationController popViewControllerAnimated:YES]; + } + +} + +#pragma mark:上传图片 + +- (void)upHeardPhoto { + + [self showMBProgressHUDWithString:@"上传中" autoHidden:NO]; + + NSMutableArray * photoArray = [[NSMutableArray alloc] init]; + + [photoArray addObject:self.headImg.image]; + + XJDNetAPI * upApi = [[XJDNetAPI alloc] init:self tag:@"UPLOADAPI" NeedToken:@""]; + + [upApi postImageArrayUpload:photoArray]; +} + +#pragma mark:更新头像 + +- (void)updateUserHeard:(NSString *)heardImg { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + [parmDic setObject:heardImg forKey:@"avatar"]; + + XJDNetAPI * upApi = [[XJDNetAPI alloc] init:self tag:@"AVATAR" NeedToken:@""]; + + [upApi updateUserAvatar:parmDic]; + +} + +#pragma mark:保存 +- (void)saveUserInfo { + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + + //姓名 + UITextField * nameField = [self.view viewWithTag:10]; + [parmDic setObject:nameField.text forKey:@"doctorName"]; + //医院 + UITextField * hospitalField = [self.view viewWithTag:11]; + [parmDic setObject:hospitalField.text forKey:@"resourceName"]; + //科室 + UITextField * roomField = [self.view viewWithTag:12]; + [parmDic setObject:roomField.text forKey:@"departmentName"]; + //职称 + UITextField * workField = [self.view viewWithTag:13]; + [parmDic setObject:workField.text forKey:@"doctorTitle"]; + //擅长病重 +// for (DoctorGoodSicknessModel * sickModel in self.sicksArray) { +// [self.customDataArray addObject:sickModel.sicksName]; +// [self reloadCenterView:self.customDataArray]; +// } + NSMutableArray * array = [[NSMutableArray alloc] init]; + NSMutableString *resultString = [[NSMutableString alloc] init]; + + for (XJDDoctorGoodSicknessModel * sickMode in self.sicksArray) { + NSMutableDictionary * sickDic = [[NSMutableDictionary alloc] init]; + [sickDic setObject:sickMode.sicks_id forKey:@"id"]; + [sickDic setObject:sickMode.sicksName forKey:@"sicksName"]; + [array addObject:sickDic]; + [resultString appendString:sickMode.sicks_id]; + [resultString appendString:@","]; + // 移除末尾的拼接字符 + + } + //去掉最后符合 + if ([resultString length] > 0) { + [resultString deleteCharactersInRange:NSMakeRange([resultString length] - 1, 1)]; + } + [parmDic setObject:array forKey:@"goodAtSicknessName"]; + //个人简介 + + [parmDic setObject:resultString forKey:@"goodAtSickness"]; + + [parmDic setObject:self.shanchangTextView.text forKey:@"goodAt"]; + + [parmDic setObject:self.jianjieTextView.text forKey:@"introduction"]; + [parmDic setObject:self.departmentId forKey:@"departmentId"]; + [parmDic setObject:self.doctor_Id forKey:@"id"]; + XJDNetAPI * infoApi = [[XJDNetAPI alloc] init:self tag:@"DOCTORINFO" NeedToken:@""]; + + [infoApi postUpdateDoctorInfo:parmDic]; +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/modifyPassword(修改密码)/XJDModifyPasswordViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/modifyPassword(修改密码)/XJDModifyPasswordViewController.h new file mode 100644 index 0000000..714ac25 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/modifyPassword(修改密码)/XJDModifyPasswordViewController.h @@ -0,0 +1,18 @@ +// +// XJDModifyPasswordViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDModifyPasswordViewController : YXBaseViewController + +@property (nonatomic, copy) NSString * result; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/modifyPassword(修改密码)/XJDModifyPasswordViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/modifyPassword(修改密码)/XJDModifyPasswordViewController.m new file mode 100644 index 0000000..1cf74a7 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/modifyPassword(修改密码)/XJDModifyPasswordViewController.m @@ -0,0 +1,214 @@ +// +// XJDModifyPasswordViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDModifyPasswordViewController.h" + +#import "XJDLineTextField.h" +#import "RSAObjC.h" +#import "LVKeyboard.h" + +@interface XJDModifyPasswordViewController () + +@property (nonatomic, strong) XJDLineTextField * oldPasswordField; + +@property (nonatomic, strong) XJDLineTextField * nowPasswordField; + +@property (nonatomic, strong) XJDLineTextField * againPasswordField; + +@end + +@implementation XJDModifyPasswordViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.navigationItem.title = @"修改密码"; + self.view.backgroundColor = UIColorHex(#EFEFEF); + [self createUI]; +} + +- (void)createUI { + + UIView * topview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 156)]; + topview.backgroundColor = KWhiteColor; + [self.view addSubview:topview]; + + self.oldPasswordField = [self createTextFieldWithFrame:CGRectMake(kRealValue(16), 0, kScreenWidth - kRealValue(32), 52) withLeftText:@"原密码" isShow:false]; + self.oldPasswordField.placeholder = @"请输入原密码"; + self.oldPasswordField.backgroundColor = KWhiteColor; + self.oldPasswordField.delegate = self; +// [self.oldPasswordField becomeFirstResponder]; + [topview addSubview:self.oldPasswordField]; + + self.nowPasswordField = [self createTextFieldWithFrame:CGRectMake(kRealValue(16), self.oldPasswordField.bottom, kScreenWidth - kRealValue(32), 52) withLeftText:@"新密码" isShow:YES]; + self.nowPasswordField.backgroundColor = KWhiteColor; + self.nowPasswordField.placeholder = @"请输入新密码"; + self.nowPasswordField.delegate = self; + [topview addSubview:self.nowPasswordField]; + + self.againPasswordField = [self createTextFieldWithFrame:CGRectMake(kRealValue(16), self.nowPasswordField.bottom, kScreenWidth - kRealValue(32), 52) withLeftText:@"确认密码" isShow:YES]; + self.againPasswordField.backgroundColor = KWhiteColor; + self.againPasswordField.placeholder = @"再次输入新密码"; + self.againPasswordField.delegate = self; + [topview addSubview:self.againPasswordField]; + + UILabel * showLabel = [[UILabel alloc] initWithFrame:CGRectMake(kRealValue(16), topview.bottom + kRealValue(14), kScreenWidth - kRealValue(32), 40)]; + showLabel.text = @"温馨提示:密码需要为12-32位(包含数字、大写、小写字母、特殊字符)"; + showLabel.textColor = UIColorHex(#999999); + showLabel.font = SYSTEMFONT(13); + showLabel.numberOfLines = 2; + showLabel.textAlignment = NSTextAlignmentLeft; + [self.view addSubview:showLabel]; + + + UIButton * submitBtn = [[UIButton alloc] init]; + submitBtn.backgroundColor = KWhiteColor; + submitBtn.layer.cornerRadius = 20; + submitBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + submitBtn.layer.borderWidth = 1.0f; + [submitBtn setTitle:@"提交" forState:UIControlStateNormal]; + [submitBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + [submitBtn addTarget:self action:@selector(submitPasswordAction) forControlEvents:UIControlEventTouchUpInside]; + submitBtn.titleLabel.font = SYSTEMFONT(14); + [self.view addSubview:submitBtn]; + + [submitBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_offset(40); + make.left.mas_equalTo(@47); + make.right.mas_offset(-47); + make.top.mas_equalTo(showLabel.mas_bottom).offset(60); + }]; +} + +- (XJDLineTextField *)createTextFieldWithFrame:(CGRect)frame + withLeftText:(NSString *)leftString + isShow:(BOOL)isShow{ + + XJDLineTextField * textField = [[XJDLineTextField alloc] initWithFrame:frame]; + + UIView * leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 90, 52)]; + UILabel * leftLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, kRealValue(15), leftView.width, 13)]; + leftLabel.centerY = leftView.centerY; + leftLabel.textColor = CFontColor2; + leftLabel.text = leftString; + leftLabel.textAlignment = NSTextAlignmentLeft; + leftLabel.font = MEDIUMFONT(13); + [leftView addSubview:leftLabel]; + textField.leftView = leftView; + textField.leftViewMode = UITextFieldViewModeAlways; + textField.secureTextEntry = isShow; + + return textField; + +} + +- (void)submitPasswordAction { + + if ( (self.nowPasswordField.text.length >= 33 && self.oldPasswordField.text.length < 12) || (self.againPasswordField.text.length >= 33 && self.againPasswordField.text.length < 12)) { + + [MBProgressHUD showErrorMessage:@"请输入12-32位的密码"]; + return; + + } + + if (!isValidPassword(self.nowPasswordField.text) || !isValidPassword(self.againPasswordField.text)) { + [EasyTextView showErrorText:@"请按照密码规则,请重新输入"]; + return; + } + + if (![self.nowPasswordField.text isEqualToString:self.againPasswordField.text]) { + + [MBProgressHUD showErrorMessage:@"两次输入不一致,请重新输入"]; + return; + } + //username 登录账号 oldpassword 老密码 password 新密码 confirmpassword 二次确认的密码 + XJDUserInfo * user = [XJDCommonUtils keyedUnarchiverWithKey:LoginUserInfo]; + + + NSString * publish_key = @" MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmZfR/bA9X3vp86y1aEpvwzXJYKRRF1fLau2+05/ZtaITLpV8bhkmSf3neSy/Q9gAdvG75Fr73E+GWE+K5b0BpvIS1jDGo319+PpZR39SaZTKZ27XFXrosmJTZutN79t819HS1VseleunHAFgMVufE9U5jP6LGzl/wbkSy01GhzwIDAQAB"; + + // 原始数据,要加密的字符串 + NSString * oldString = self.oldPasswordField.text; + + // RSA 加密,使用字符串格式的公钥私钥加密解密, RSAPublickKey 为公钥字符串(NSString 格式) + NSString * oldEncryptStr = [RSAObjC encrypt:oldString PublicKey:publish_key]; + NSLog(@"加密后:%@", oldEncryptStr); + + + + NSString * password = self.nowPasswordField.text; + NSString * passwordEncryptStr = [RSAObjC encrypt:password PublicKey:publish_key]; + + NSString * confirmpassword = self.againPasswordField.text; + NSString * confirmEncryptStr = [RSAObjC encrypt:confirmpassword PublicKey:publish_key]; + + NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; + [parmDic setObject:user.username forKey:@"username"]; + [parmDic setObject:oldEncryptStr forKey:@"oldpassword"]; + [parmDic setObject:passwordEncryptStr forKey:@"password"]; + [parmDic setObject:confirmEncryptStr forKey:@"confirmpassword"]; + XJDNetAPI * passwordApi = [[XJDNetAPI alloc] init:self tag:@"PASSWORDAPI" NeedToken:@""]; + [passwordApi updateDoctorLoginPassword:parmDic]; +} + +- (void)Failed:(NSString*)message tag:(NSString*)tag +{ + [EasyTextView showErrorText:message]; + +} + + +- (void)Sucess:(id)response tag:(NSString*)tag +{ + + + if ([tag isEqualToString:@"PASSWORDAPI"]) { + NSString * message = response; + + [EasyTextView showSuccessText:message]; + + + + double delayInSeconds = 2.0; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); + dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ + [self.navigationController popToRootViewControllerAnimated:YES]; + }); + + } +} +BOOL isValidPassword(NSString *password) { + // 定义正则表达式 + NSString *pattern = @"^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*(),.?\":{}|<>]).{12,32}$"; + + // 创建NSPredicate对象 + NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern]; + + // 使用NSPredicate对象进行判断 + return [predicate evaluateWithObject:password]; +} + +- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { + if ([string isEqualToString:@"!"]) { // 检测是否是中文感叹号 + NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:@"!"]; // 将其替换为英文感叹号 + textField.text = newString; + return NO; + } + return YES; +} +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDCustomSchedulingViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDCustomSchedulingViewController.h new file mode 100644 index 0000000..1e60bba --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDCustomSchedulingViewController.h @@ -0,0 +1,16 @@ +// +// XJDCustomSchedulingViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/9. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDCustomSchedulingViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDCustomSchedulingViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDCustomSchedulingViewController.m new file mode 100644 index 0000000..e127655 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDCustomSchedulingViewController.m @@ -0,0 +1,73 @@ +// +// XJDCustomSchedulingViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/9. +// + +#import "XJDCustomSchedulingViewController.h" +#import "XJDCustomSchedulingTable.h" +#import "XJDAddSchedulingTimeTableViewCell.h" + +@interface XJDCustomSchedulingViewController () + +@property (nonatomic, strong) XJDCustomSchedulingTable * homeTable; + +@end + +@implementation XJDCustomSchedulingViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = UIColorHex(#EFEFEF); + self.isHidenNaviBar = false; + self.navigationItem.title = @"排班设置"; + [self createUI]; + // Do any additional setup after loading the view. +} + +- (void)createUI { + + UIButton * submitBtn = [[UIButton alloc] init]; + submitBtn.backgroundColor = KWhiteColor; + submitBtn.layer.cornerRadius = 20; + submitBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + submitBtn.layer.borderWidth = 1.0f; + [submitBtn setTitle:@"生成排班" forState:UIControlStateNormal]; + [submitBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + [submitBtn addTarget:self action:@selector(submitTimeAction) forControlEvents:UIControlEventTouchUpInside]; + submitBtn.titleLabel.font = SYSTEMFONT(14); + [self.view addSubview:submitBtn]; + + [submitBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(@150); + make.height.mas_offset(34); + make.centerX.mas_equalTo(self.view); + make.bottom.mas_equalTo(@-10); + }]; + + self.homeTable = [[XJDCustomSchedulingTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.homeTable.backgroundColor = UIColorHex(#EFEFEF); + self.homeTable.addDelegate = self; + [self.view addSubview:self.homeTable]; + + [self.homeTable mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_offset(15); + make.right.mas_offset(-15); + make.bottom.mas_equalTo(submitBtn.mas_top).offset(-15); + }]; + + +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDSchedulingSettingViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDSchedulingSettingViewController.h new file mode 100644 index 0000000..7865884 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDSchedulingSettingViewController.h @@ -0,0 +1,16 @@ +// +// XJDSchedulingSettingViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDSchedulingSettingViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDSchedulingSettingViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDSchedulingSettingViewController.m new file mode 100644 index 0000000..b9565e2 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/controller/schedulingSetting(排班设置)/XJDSchedulingSettingViewController.m @@ -0,0 +1,133 @@ +// +// XJDSchedulingSettingViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDSchedulingSettingViewController.h" +#import "XJDSchedulingSetingTable.h" +#import "XJDSchedulingSettingModel.h" +#import "XJDAddSchedulingTimeTableViewCell.h" +#import "XJDTTestView.h" +#import "XJDCustomSchedulingViewController.h" + +@interface XJDSchedulingSettingViewController () + +@property (nonatomic, strong) XJDSchedulingSetingTable * homeTable; + +@end + +@implementation XJDSchedulingSettingViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + self.navigationItem.title = @"排班设置"; + self.view.backgroundColor = UIColorHex(#EFEFEF); + [self createUI]; + [self createData]; +} + +- (void)createUI { + + UIButton * customBtn = [[UIButton alloc] init]; + customBtn.backgroundColor = KClearColor; + [customBtn setTitle:@"自定义排班" forState:UIControlStateNormal]; + [customBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + [customBtn addTarget:self action:@selector(customAction) forControlEvents:UIControlEventTouchUpInside]; + customBtn.titleLabel.font = SYSTEMFONT(14); + [self.view addSubview:customBtn]; + + [customBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_offset(40); + make.left.mas_equalTo(@113); + make.right.mas_offset(-133); + make.bottom.mas_equalTo(-20); + }]; + + + UIButton * submitBtn = [[UIButton alloc] init]; + submitBtn.backgroundColor = KWhiteColor; + submitBtn.layer.cornerRadius = 20; + submitBtn.layer.borderColor = UIColorHex(#21BEBD).CGColor; + submitBtn.layer.borderWidth = 1.0f; + [submitBtn setTitle:@"生成排班" forState:UIControlStateNormal]; + [submitBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + [submitBtn addTarget:self action:@selector(submitTimeAction) forControlEvents:UIControlEventTouchUpInside]; + submitBtn.titleLabel.font = SYSTEMFONT(14); + [self.view addSubview:submitBtn]; + + [submitBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.left.right.mas_equalTo(customBtn); + make.bottom.mas_equalTo(customBtn.mas_top).offset(-10); + }]; + + + + self.homeTable = [[XJDSchedulingSetingTable alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.homeTable.backgroundColor = UIColorHex(#EFEFEF); + self.homeTable.addDelegate = self; + [self.view addSubview:self.homeTable]; + + [self.homeTable mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_offset(15); + make.right.mas_offset(-15); + make.bottom.mas_equalTo(submitBtn.mas_top).offset(-15); + }]; + + + +} + +- (void)createData { + + NSArray * dataArray = @[@{@"time":@"08:00-12:00",@"isSelected":@NO},@{@"time":@"08:00-12:00",@"isSelected":@YES},@{@"time":@"08:00-12:00",@"isSelected":@NO}]; + + NSMutableArray * timeArray = [[NSMutableArray alloc] init]; + + for (NSDictionary * parDic in dataArray) { + + XJDSchedulingSettingModel * model = [XJDSchedulingSettingModel modelWithDictionary:parDic]; + + [timeArray addObject:model]; + } +// [timeArray removeAllObjects]; + self.homeTable.timeArray = timeArray; +} +#pragma mark:新增时间段 +- (void)addSchedulingTime { + + XJDTTestView *vi = [[XJDTTestView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; + [kAppWindow addSubview:vi]; + vi.returnBlock = ^(NSString *startTime, NSString *endTime) { + NSLog(@"开始时间 = %@", startTime); + NSLog(@"结束时间 = %@", endTime); + + }; + +} + +- (void)submitTimeAction { + + +} + +- (void)customAction { + + XJDCustomSchedulingViewController * customvc = [[XJDCustomSchedulingViewController alloc] init]; + + [self.navigationController pushViewController:customvc animated:YES]; +} +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/HQMineModel.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/HQMineModel.h deleted file mode 100644 index a05da04..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/HQMineModel.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// HQMineModel.h -// healthQuestion -// -// Created by 仁康信息 on 2022/9/9. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface HQMineModel : NSObject - - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/HQMineModel.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/HQMineModel.m deleted file mode 100644 index 6850ec1..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/HQMineModel.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// HQMineModel.m -// healthQuestion -// -// Created by 仁康信息 on 2022/9/9. -// - -#import "HQMineModel.h" - -@implementation HQMineModel - -@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDBillListModel.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDBillListModel.h new file mode 100644 index 0000000..17572c8 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDBillListModel.h @@ -0,0 +1,40 @@ +// +// YXBillListModel.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YXBillListDetailModel : NSObject + +@property (nonatomic, copy) NSString * bill_id; +@property (nonatomic, copy) NSString * sessionId; +@property (nonatomic, copy) NSString * userId; +@property (nonatomic, copy) NSString * userName; +@property (nonatomic, copy) NSString * operateType; +@property (nonatomic, copy) NSString * operateType_dictText; +@property (nonatomic, copy) NSString * incomeTime; +@property (nonatomic, copy) NSString * accountMoney; +@property (nonatomic, copy) NSString * income; +@property (nonatomic, copy) NSString * waterType; +@property (nonatomic, copy) NSString * operateTypeName; +@property (nonatomic, copy) NSString * createTime; + +@end + + +@interface XJDBillListModel : NSObject + +@property (nonatomic, copy) NSArray * records; +@property (nonatomic, copy) NSString * optimizeCountSql; +@property (nonatomic, copy) NSString * searchCount; +@property (nonatomic, copy) NSString * total; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDBillListModel.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDBillListModel.m new file mode 100644 index 0000000..05d410a --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDBillListModel.m @@ -0,0 +1,32 @@ +// +// XJDBillListModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/17. +// + +#import "XJDBillListModel.h" + +@implementation YXBillListDetailModel + + ++ (NSDictionary *)modelCustomPropertyMapper +{ + NSDictionary * dic =@{@"bill_id" :@"id"}; + return dic; +} + +@end + +@implementation XJDBillListModel + ++ (NSDictionary *)modelContainerPropertyGenericClass +{ + + + return @{@"records":[YXBillListDetailModel class], + }; + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDSchedulingSettingModel.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDSchedulingSettingModel.h new file mode 100644 index 0000000..f2f1c5f --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDSchedulingSettingModel.h @@ -0,0 +1,20 @@ +// +// XJDSchedulingSettingModel.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDSchedulingSettingModel : NSObject + +@property (nonatomic, copy) NSString * time; + +@property (nonatomic, assign) BOOL isSelected; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDSchedulingSettingModel.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDSchedulingSettingModel.m new file mode 100644 index 0000000..80e0d4e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/XJDSchedulingSettingModel.m @@ -0,0 +1,12 @@ +// +// XJDSchedulingSettingModel.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDSchedulingSettingModel.h" + +@implementation XJDSchedulingSettingModel + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/YXSchedulingSettingModel.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/YXSchedulingSettingModel.m deleted file mode 100644 index 6b6cfe1..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/model/YXSchedulingSettingModel.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// YXSchedulingSettingModel.m -// healthQuestion -// -// Created by 仁康信息 on 2023/5/8. -// - -#import "YXSchedulingSettingModel.h" - -@implementation YXSchedulingSettingModel - -@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/CustomSchedulingTable.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/CustomSchedulingTable.h deleted file mode 100644 index 11155ad..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/CustomSchedulingTable.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// YXCustomSchedulingTable.h -// healthQuestion -// -// Created by 仁康信息 on 2023/5/9. -// - -#import -#import "YXSectionOneTableViewCell.h" -#import "YXTimeDisanceTableViewCell.h" -#import "YXAddSchedulingTimeTableViewCell.h" -#import "YXVideoAudioTableViewCell.h" -#import "YXSchedulingDateTableViewCell.h" -#import "YXJumpHolidayTableViewCell.h" -#import "WeakTitleTableViewCell.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface YXCustomSchedulingTable : UITableView - -@property (nonatomic, strong) NSArray * timeArray; - -@property (nonatomic, weak)id addDelegate; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDCustomSchedulingTable.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDCustomSchedulingTable.h new file mode 100644 index 0000000..32d3bf8 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDCustomSchedulingTable.h @@ -0,0 +1,28 @@ +// +// XJDCustomSchedulingTable.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/9. +// + +#import +#import "XJDSectionOneTableViewCell.h" +#import "XJDTimeDisanceTableViewCell.h" +#import "XJDAddSchedulingTimeTableViewCell.h" +#import "XJDVideoAudioTableViewCell.h" +#import "XJDSchedulingDateTableViewCell.h" +#import "XJDJumpHolidayTableViewCell.h" +#import "XJDWeakTitleTableViewCell.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDCustomSchedulingTable : UITableView + +@property (nonatomic, strong) NSArray * timeArray; + +@property (nonatomic, weak)id addDelegate; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDCustomSchedulingTable.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDCustomSchedulingTable.m new file mode 100644 index 0000000..731bb67 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDCustomSchedulingTable.m @@ -0,0 +1,305 @@ +// +// XJDCustomSchedulingTable.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/9. +// + +#import "XJDCustomSchedulingTable.h" + + +@interface XJDCustomSchedulingTable () + + +@end + + +@implementation XJDCustomSchedulingTable + + +- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { + + if (self = [super initWithFrame:frame style:style]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + if (@available(iOS 11.0, *)) { + self.estimatedRowHeight = 0; + self.estimatedSectionFooterHeight = 0; + self.estimatedSectionHeaderHeight = 0; + self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + self.delegate = self; + self.dataSource = self; + self.backgroundColor = UIColor.clearColor; + self.showsVerticalScrollIndicator = false; + self.showsHorizontalScrollIndicator = false; + self.separatorStyle = UITableViewCellSeparatorStyleNone;; + self.estimatedRowHeight = 60; + [self setSeparatorColor:KWhiteColor]; + self.rowHeight = UITableViewAutomaticDimension; + +} + +- (void)setTimeArray:(NSArray *)timeArray { + + _timeArray = timeArray; + + [self reloadData]; + +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 3; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + + if (section == 0 ) { + + return self.timeArray.count + 4; + } + if (section == 1) { + + return 3; + } + + return 1; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + if (indexPath.section == 0) { + + if (indexPath.row == 0) { + XJDSectionOneTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"SECTIONONE"]; + if (!cell) { + + cell = [[XJDSectionOneTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SECTIONONE"]; + } + cell.backgroundColor = KWhiteColor; + cell.sectionTitle = @"选择时间"; + cell.isShow = true; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + } + if (indexPath.row == 1) { + + XJDWeakTitleTableViewCell * weekCell = [self dequeueReusableCellWithIdentifier:@"WEEKEDCELL"]; + if (!weekCell) { + + weekCell = [[XJDWeakTitleTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"WEEKEDCELL"]; + } + weekCell.backgroundColor = KWhiteColor; + weekCell.selectionStyle = UITableViewCellSelectionStyleNone; + return weekCell; + + } + if (indexPath.row == 2) { + + XJDSectionOneTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"SECTIONONE"]; + if (!cell) { + + cell = [[XJDSectionOneTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SECTIONONE"]; + } + cell.backgroundColor = KWhiteColor; + cell.sectionTitle = @"在线时间"; + cell.isShow = true; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + } + else if ( indexPath.row >2 && indexPath.row <= self.timeArray.count ) { + + XJDTimeDisanceTableViewCell * timeCell = [self dequeueReusableCellWithIdentifier:@"TIMECELL"]; + if (!timeCell) { + + timeCell = [[XJDTimeDisanceTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"TIMECELL"]; + } + timeCell.model = self.timeArray[indexPath.row - 1]; + timeCell.backgroundColor = KWhiteColor; + timeCell.selectionStyle = UITableViewCellSelectionStyleNone; + return timeCell; + + }else { + XJDAddSchedulingTimeTableViewCell * addCell = [self dequeueReusableCellWithIdentifier:@"ADDCELL"]; + if (!addCell) { + + addCell = [[XJDAddSchedulingTimeTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ADDCELL"]; + } + addCell.addDelegate = self.addDelegate; + addCell.backgroundColor = KWhiteColor; + addCell.selectionStyle = UITableViewCellSelectionStyleNone; + return addCell; + + } + + } + if (indexPath.section == 1) { + + if (indexPath.row == 0) { + XJDSectionOneTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"SECTIIONTWO"]; + if (!cell) { + + cell = [[XJDSectionOneTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SECTIIONTWO"]; + } + cell.sectionTitle = @"视频咨询"; + cell.isShow = false; + cell.backgroundColor = KWhiteColor; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + }else { + + XJDVideoAudioTableViewCell * videoCell = [self dequeueReusableCellWithIdentifier:@"VIDEOCELL"]; + if (!videoCell) { + + videoCell = [[XJDVideoAudioTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"VIDEOCELL"]; + } + videoCell.backgroundColor = KWhiteColor; + if (indexPath.row == 1) { videoCell.leftString = @"上午"; } + if (indexPath.row == 2) { videoCell.leftString = @"下午"; } + videoCell.selectionStyle = UITableViewCellSelectionStyleNone; + return videoCell; + } + } + + if (indexPath.section == 2) { + + XJDJumpHolidayTableViewCell * jumpcell = [self dequeueReusableCellWithIdentifier:@"JUMPCELL"]; + if (!jumpcell) { + + jumpcell = [[XJDJumpHolidayTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"JUMPCELL"]; + } + jumpcell.backgroundColor = KWhiteColor; + jumpcell.selectionStyle = UITableViewCellSelectionStyleNone; + return jumpcell; + } + + return UITableViewCell.new; + + +} +//每行高度 +//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +//{ +// return kRealValue(77); +//} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return kRealValue(10); +} +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + + +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + + +} + +-(void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath + +{ + + if([cell respondsToSelector:@selector(tintColor)]) { + + if(tableView ==self) { + + CGFloat cornerRadius =5.f; + + cell.backgroundColor=UIColor.clearColor; + + CAShapeLayer * layer = [[CAShapeLayer alloc]init]; + + CGMutablePathRef pathRef = CGPathCreateMutable(); + + CGRect bounds = CGRectInset(cell.bounds,0,0); + + BOOL addLine =NO; + + if(indexPath.row==0&& indexPath.row== [tableView numberOfRowsInSection:indexPath.section]-1) { + + CGPathAddRoundedRect(pathRef,nil, bounds, cornerRadius, cornerRadius); + + }else if(indexPath.row==0) { + + CGPathMoveToPoint(pathRef,nil,CGRectGetMinX(bounds),CGRectGetMaxY(bounds)); + + CGPathAddArcToPoint(pathRef,nil,CGRectGetMinX(bounds),CGRectGetMinY(bounds),CGRectGetMidX(bounds),CGRectGetMinY(bounds), cornerRadius); + + CGPathAddArcToPoint(pathRef,nil,CGRectGetMaxX(bounds),CGRectGetMinY(bounds),CGRectGetMaxX(bounds),CGRectGetMidY(bounds), cornerRadius); + + CGPathAddLineToPoint(pathRef,nil,CGRectGetMaxX(bounds),CGRectGetMaxY(bounds)); + + addLine =YES; + + }else if(indexPath.row== [tableView numberOfRowsInSection:indexPath.section]-1) { + + CGPathMoveToPoint(pathRef,nil,CGRectGetMinX(bounds),CGRectGetMinY(bounds)); + + CGPathAddArcToPoint(pathRef,nil,CGRectGetMinX(bounds),CGRectGetMaxY(bounds),CGRectGetMidX(bounds),CGRectGetMaxY(bounds), cornerRadius); + + CGPathAddArcToPoint(pathRef,nil,CGRectGetMaxX(bounds),CGRectGetMaxY(bounds),CGRectGetMaxX(bounds),CGRectGetMidY(bounds), cornerRadius); + + CGPathAddLineToPoint(pathRef,nil,CGRectGetMaxX(bounds),CGRectGetMinY(bounds)); + + }else{ + + CGPathAddRect(pathRef,nil, bounds); + + addLine =YES; + + } + + layer.path= pathRef; + + CFRelease(pathRef); + + layer.fillColor= [UIColor colorWithWhite:1.f alpha:0.8f].CGColor; + + if(addLine ==YES) { + + CALayer* lineLayer = [[CALayer alloc]init]; + + CGFloat lineHeight = (1.f/ [UIScreen mainScreen].scale); + + lineLayer.frame=CGRectMake(CGRectGetMinX(bounds)+10, bounds.size.height-lineHeight, bounds.size.width-10, lineHeight); + + lineLayer.backgroundColor= tableView.separatorColor.CGColor; + + [layer addSublayer:lineLayer]; + + } + + UIView*testView = [[UIView alloc]initWithFrame:bounds]; + + [testView.layer insertSublayer:layer atIndex:0]; + + testView.backgroundColor=UIColor.clearColor; + + cell.backgroundView= testView; + + } + + } + +} +@end + + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/YXWeakTitleTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDWeakTitleTableViewCell.h similarity index 63% rename from DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/YXWeakTitleTableViewCell.h rename to DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDWeakTitleTableViewCell.h index 57da7d9..2d867c3 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/YXWeakTitleTableViewCell.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDWeakTitleTableViewCell.h @@ -1,5 +1,5 @@ // -// YXWeakTitleTableViewCell.h +// XJDWeakTitleTableViewCell.h // healthQuestion // // Created by 仁康信息 on 2023/5/9. @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXWeakTitleTableViewCell : UITableViewCell +@interface XJDWeakTitleTableViewCell : UITableViewCell @end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDWeakTitleTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDWeakTitleTableViewCell.m new file mode 100644 index 0000000..b6f4fab --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/CustomScheduling(自定义排班)/XJDWeakTitleTableViewCell.m @@ -0,0 +1,65 @@ +// +// XJDWeakTitleTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/9. +// + +#import "XJDWeakTitleTableViewCell.h" + +@implementation XJDWeakTitleTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + NSArray * weekedArray = @[@"周一",@"周二",@"周三",@"周四",@"周五",@"周六",@"周天"]; + + CGFloat w = (kScreenWidth - 46 )/ 7; + + UIButton * lastBtn; + for (int i = 0; i < weekedArray.count; i ++) { + + UIButton * weekendBtn = [[UIButton alloc] init]; + [weekendBtn setTitle:weekedArray[i] forState:UIControlStateNormal]; + weekendBtn.titleLabel.font = MEDIUMFONT(13); + [weekendBtn setTitleColor:KWhiteColor forState:UIControlStateSelected]; + [weekendBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + + [self.contentView addSubview:weekendBtn]; + + [weekendBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_offset(w); + make.height.mas_offset(45); + make.top.mas_offset(2); + make.left.equalTo (lastBtn ? lastBtn.mas_right: @17); + make.bottom.equalTo (@-10); + }]; + lastBtn = weekendBtn; + if (i == 0) { + + weekendBtn.selected = true; + } + + } + +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXAddSchedulingTimeTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDAddSchedulingTimeTableViewCell.h similarity index 74% rename from DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXAddSchedulingTimeTableViewCell.h rename to DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDAddSchedulingTimeTableViewCell.h index 8b79015..83a8e2c 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXAddSchedulingTimeTableViewCell.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDAddSchedulingTimeTableViewCell.h @@ -1,5 +1,5 @@ // -// YXAddSchedulingTimeTableViewCell.h +// XJDAddSchedulingTimeTableViewCell.h // healthQuestion // // Created by 仁康信息 on 2023/5/8. @@ -15,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN @end -@interface YXAddSchedulingTimeTableViewCell : UITableViewCell +@interface XJDAddSchedulingTimeTableViewCell : UITableViewCell @property (nonatomic, weak)id addDelegate; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDAddSchedulingTimeTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDAddSchedulingTimeTableViewCell.m new file mode 100644 index 0000000..bb47e83 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDAddSchedulingTimeTableViewCell.m @@ -0,0 +1,64 @@ +// +// XJDAddSchedulingTimeTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDAddSchedulingTimeTableViewCell.h" + +@implementation XJDAddSchedulingTimeTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + + return self; + +} + +- (void)createUI { + + UIButton * addBtn = [[UIButton alloc] init]; + + [addBtn setTitle:@" 新增时间段" forState:UIControlStateNormal]; + [addBtn setTitleColor:UIColorHex(#21BEBD) forState:UIControlStateNormal]; + addBtn.titleLabel.font = SYSTEMFONT(14); + [addBtn setImage:[UIImage imageNamed:@"addQuestionPeople"] forState:UIControlStateNormal]; + [addBtn addTarget:self action:@selector(addQuestionTime) forControlEvents:UIControlEventTouchUpInside]; + [self.contentView addSubview:addBtn]; + + [addBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_offset(0); + make.top.mas_offset(10); + make.height.mas_offset(30); + make.bottom.mas_offset(-10); + }]; +} + +- (void)addQuestionTime { + + if ([self.addDelegate respondsToSelector:@selector(addSchedulingTime)]) { + + [self.addDelegate addSchedulingTime]; + } + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXJumpHolidayTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDJumpHolidayTableViewCell.h similarity index 62% rename from DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXJumpHolidayTableViewCell.h rename to DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDJumpHolidayTableViewCell.h index c443768..862924e 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXJumpHolidayTableViewCell.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDJumpHolidayTableViewCell.h @@ -1,5 +1,5 @@ // -// YXJumpHolidayTableViewCell.h +// XJDJumpHolidayTableViewCell.h // healthQuestion // // Created by 仁康信息 on 2023/5/8. @@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface YXJumpHolidayTableViewCell : UITableViewCell +@interface XJDJumpHolidayTableViewCell : UITableViewCell @end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDJumpHolidayTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDJumpHolidayTableViewCell.m new file mode 100644 index 0000000..b1fc19b --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDJumpHolidayTableViewCell.m @@ -0,0 +1,82 @@ +// +// XJDJumpHolidayTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDJumpHolidayTableViewCell.h" + + +@interface XJDJumpHolidayTableViewCell () + +@property (nonatomic, strong) UILabel * sectionLabel; + +@property (nonatomic, strong) UISwitch * rightSlider; + +@end + + +@implementation XJDJumpHolidayTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + self.sectionLabel = [[UILabel alloc] init]; + self.sectionLabel.textColor = CFontColor1; + self.sectionLabel.text = @"自动跳过法定节假日?"; + self.sectionLabel.font = MEDIUMFONT(14); + self.sectionLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:self.sectionLabel]; + + [self.sectionLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(15); + make.top.height.mas_offset(15); + make.width.mas_offset(200); + make.bottom.mas_offset(-20); + }]; + + self.rightSlider = [[UISwitch alloc] init]; + [self.rightSlider setOn:YES animated:YES]; + [self.rightSlider setOnTintColor: UIColorHex(#59D5D4)]; + self.rightSlider.transform = CGAffineTransformMakeScale(0.6, 0.6); + [self.rightSlider addTarget:self action:@selector(switchChange:) forControlEvents:UIControlEventValueChanged]; + [self.contentView addSubview:self.rightSlider]; + + [self.rightSlider mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_offset(-15); + make.top.mas_offset(15); + make.height.mas_offset(17); + make.bottom.mas_offset(-20); + }]; +} + +- (void) switchChange:(UISwitch*)sw { + if(sw.on == YES) { + NSLog(@"开关切换为开"); + } else if(sw.on == NO) { + NSLog(@"开关切换为关"); + } +} + + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingDateTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingDateTableViewCell.h new file mode 100644 index 0000000..c598e1c --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingDateTableViewCell.h @@ -0,0 +1,17 @@ +// +// XJDSchedulingDateTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDSchedulingDateTableViewCell : UITableViewCell + +@property (nonatomic, copy) NSString * weekString; +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingDateTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingDateTableViewCell.m new file mode 100644 index 0000000..b127d0d --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingDateTableViewCell.m @@ -0,0 +1,150 @@ +// +// XJDSchedulingDateTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDSchedulingDateTableViewCell.h" + +@interface XJDSchedulingDateTableViewCell () + +@property (nonatomic, strong) UIButton * leftBtn; + +@property (nonatomic, strong) UIButton * centerBtn; + +@property (nonatomic, strong) UIButton * rightBtn; + +@property (nonatomic, strong) NSMutableArray * buttonArray; +@end + +@implementation XJDSchedulingDateTableViewCell + +- (NSMutableArray *)buttonArray { + + if (!_buttonArray) { + + _buttonArray = [[NSMutableArray alloc] init]; + } + return _buttonArray; +} + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + UIView * backView = [[UIView alloc] init]; + backView.backgroundColor = UIColorHex(#E0E0E0); + backView.layer.cornerRadius = 18; + backView.layer.masksToBounds = true; + [self.contentView addSubview:backView]; + + [backView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(15); + make.right.mas_offset(-15); + make.height.mas_offset(35); + make.top.mas_offset(0); + make.bottom.mas_offset(-10); + }]; + + self.leftBtn = [[UIButton alloc] init]; + [self.leftBtn setTitle:@"周一" forState:UIControlStateNormal]; + [self.leftBtn setImage:[UIImage imageNamed:@"square_nomal"] forState:UIControlStateNormal]; + [self.leftBtn setImage:[UIImage imageNamed:@"square_selected"] forState:UIControlStateSelected]; + [self.leftBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + self.leftBtn.titleLabel.font = SYSTEMFONT(13); + [self.leftBtn addTarget:self action:@selector(weakButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + [backView addSubview:self.leftBtn]; + + [self.leftBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_offset(0); + make.width.mas_offset(100); + make.height.mas_equalTo(backView); + }]; + + self.centerBtn = [[UIButton alloc] init]; + [self.centerBtn setTitle:@" 上午" forState:UIControlStateNormal]; + [self.centerBtn setImage:[UIImage imageNamed:@"square_nomal"] forState:UIControlStateNormal]; + [self.centerBtn setImage:[UIImage imageNamed:@"square_selected"] forState:UIControlStateSelected]; + [self.centerBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + self.centerBtn.titleLabel.font = SYSTEMFONT(13); + [self.centerBtn addTarget:self action:@selector(morningButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + + [backView addSubview:self.centerBtn]; + + [self.centerBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_offset(0); + make.width.mas_offset(100); + make.centerX.mas_equalTo(backView); + }]; + + self.rightBtn = [[UIButton alloc] init]; + [self.rightBtn setTitle:@" 下午" forState:UIControlStateNormal]; + [self.rightBtn setImage:[UIImage imageNamed:@"square_nomal"] forState:UIControlStateNormal]; + [self.rightBtn setImage:[UIImage imageNamed:@"square_selected"] forState:UIControlStateSelected]; + [self.rightBtn setTitleColor:CFontColor1 forState:UIControlStateNormal]; + self.rightBtn.titleLabel.font = SYSTEMFONT(13); + [self.rightBtn addTarget:self action:@selector(afternoonButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + [backView addSubview:self.rightBtn]; + + [self.rightBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_offset(0); + make.width.mas_offset(100); + make.right.mas_offset(-10); + }]; + + +} + +- (void)setWeekString:(NSString *)weekString { + + _weekString = weekString; + + + [self.leftBtn setTitle:_weekString forState:UIControlStateNormal]; + +} + +- (void)weakButtonAction:(UIButton *)weakBtn { + + weakBtn.selected = !weakBtn.selected; + + self.centerBtn.selected = weakBtn.selected; + self.rightBtn.selected = weakBtn.selected; +} + +- (void)morningButtonAction:(UIButton *)morningBtn { + + morningBtn.selected = !morningBtn.selected; + if (morningBtn.selected) { + self.leftBtn.selected = YES; + } +} + +- (void)afternoonButtonAction:(UIButton *)afterBtn { + + afterBtn.selected = !afterBtn.selected; + if (afterBtn.selected) { + self.leftBtn.selected = YES; + } +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingSetingTable.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingSetingTable.h new file mode 100644 index 0000000..17a5465 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingSetingTable.h @@ -0,0 +1,27 @@ +// +// XJDSchedulingSetingTable.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import +#import "XJDSectionOneTableViewCell.h" +#import "XJDTimeDisanceTableViewCell.h" +#import "XJDAddSchedulingTimeTableViewCell.h" +#import "XJDVideoAudioTableViewCell.h" +#import "XJDSchedulingDateTableViewCell.h" +#import "XJDJumpHolidayTableViewCell.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDSchedulingSetingTable : UITableView + +@property (nonatomic, strong) NSArray * timeArray; + +@property (nonatomic, weak)id addDelegate; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingSetingTable.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingSetingTable.m new file mode 100644 index 0000000..ba71939 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSchedulingSetingTable.m @@ -0,0 +1,308 @@ +// +// XJDSchedulingSetingTable.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDSchedulingSetingTable.h" + + +@interface XJDSchedulingSetingTable () + + +@end + + +@implementation XJDSchedulingSetingTable + + +- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { + + if (self = [super initWithFrame:frame style:style]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + if (@available(iOS 11.0, *)) { + self.estimatedRowHeight = 0; + self.estimatedSectionFooterHeight = 0; + self.estimatedSectionHeaderHeight = 0; + self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + self.delegate = self; + self.dataSource = self; + self.backgroundColor = UIColor.clearColor; + self.showsVerticalScrollIndicator = false; + self.showsHorizontalScrollIndicator = false; + self.separatorStyle = UITableViewCellSeparatorStyleNone;; + self.estimatedRowHeight = 60; + [self setSeparatorColor:KWhiteColor]; + self.rowHeight = UITableViewAutomaticDimension; + +} + +- (void)setTimeArray:(NSArray *)timeArray { + + _timeArray = timeArray; + + [self reloadData]; + +} + +#pragma mark - tableview的代理方法 +//组数 +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 4; +} +//每组多少行 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + + if (section == 0 ) { + + return self.timeArray.count + 2; + } + if (section == 1) { + + return 3; + } + if (section == 2) { + + return 8; + } + return 1; +} +//注册cell +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + if (indexPath.section == 0) { + + if (indexPath.row == 0) { + XJDSectionOneTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"SECTIONONE"]; + if (!cell) { + + cell = [[XJDSectionOneTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SECTIONONE"]; + } + cell.backgroundColor = KWhiteColor; + cell.sectionTitle = @"在线时间"; + cell.isShow = true; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + }else if ( indexPath.row > 0 && indexPath.row <= self.timeArray.count ) { + + XJDTimeDisanceTableViewCell * timeCell = [self dequeueReusableCellWithIdentifier:@"TIMECELL"]; + if (!timeCell) { + + timeCell = [[XJDTimeDisanceTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"TIMECELL"]; + } + timeCell.model = self.timeArray[indexPath.row - 1]; + timeCell.backgroundColor = KWhiteColor; + timeCell.selectionStyle = UITableViewCellSelectionStyleNone; + return timeCell; + + }else { + XJDAddSchedulingTimeTableViewCell * addCell = [self dequeueReusableCellWithIdentifier:@"ADDCELL"]; + if (!addCell) { + + addCell = [[XJDAddSchedulingTimeTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ADDCELL"]; + } + addCell.addDelegate = self.addDelegate; + addCell.backgroundColor = KWhiteColor; + addCell.selectionStyle = UITableViewCellSelectionStyleNone; + return addCell; + + } + + } + if (indexPath.section == 1) { + + if (indexPath.row == 0) { + XJDSectionOneTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"SECTIIONTWO"]; + if (!cell) { + + cell = [[XJDSectionOneTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SECTIIONTWO"]; + } + cell.sectionTitle = @"视频咨询"; + cell.isShow = false; + cell.backgroundColor = KWhiteColor; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + }else { + + XJDVideoAudioTableViewCell * videoCell = [self dequeueReusableCellWithIdentifier:@"VIDEOCELL"]; + if (!videoCell) { + + videoCell = [[XJDVideoAudioTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"VIDEOCELL"]; + } + videoCell.backgroundColor = KWhiteColor; + if (indexPath.row == 1) { videoCell.leftString = @"上午"; } + if (indexPath.row == 2) { videoCell.leftString = @"下午"; } + videoCell.selectionStyle = UITableViewCellSelectionStyleNone; + return videoCell; + } + } + if (indexPath.section == 2) { + + if (indexPath.row == 0) { + XJDSectionOneTableViewCell * cell = [self dequeueReusableCellWithIdentifier:@"SECTIIONTHREE"]; + if (!cell) { + + cell = [[XJDSectionOneTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SECTIIONTHREE"]; + } + cell.backgroundColor = KWhiteColor; + cell.sectionTitle = @"日期"; + cell.isShow = true; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + }else + { + NSArray * array = @[@" 周一",@" 周二",@" 周三",@" 周四",@" 周五",@" 周六",@" 周天"]; + XJDSchedulingDateTableViewCell * dateCell = [self dequeueReusableCellWithIdentifier:@"DATACELL"]; + if (!dateCell) { + + dateCell = [[XJDSchedulingDateTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DATACELL"]; + } + dateCell.weekString = array[indexPath.row - 1]; + dateCell.backgroundColor = KWhiteColor; + dateCell.selectionStyle = UITableViewCellSelectionStyleNone; + return dateCell; + } + } + if (indexPath.section == 3) { + + XJDJumpHolidayTableViewCell * jumpcell = [self dequeueReusableCellWithIdentifier:@"JUMPCELL"]; + if (!jumpcell) { + + jumpcell = [[XJDJumpHolidayTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"JUMPCELL"]; + } + jumpcell.backgroundColor = KWhiteColor; + jumpcell.selectionStyle = UITableViewCellSelectionStyleNone; + return jumpcell; + } + + return UITableViewCell.new; + + +} +//每行高度 +//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +//{ +// return kRealValue(77); +//} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return kRealValue(10); +} +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + + return CGFLOAT_MIN; +} + + +////cell点击事件 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + + +} + +-(void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath + +{ + + if([cell respondsToSelector:@selector(tintColor)]) { + + if(tableView ==self) { + + CGFloat cornerRadius =5.f; + + cell.backgroundColor=UIColor.clearColor; + + CAShapeLayer * layer = [[CAShapeLayer alloc]init]; + + CGMutablePathRef pathRef = CGPathCreateMutable(); + + CGRect bounds = CGRectInset(cell.bounds,0,0); + + BOOL addLine =NO; + + if(indexPath.row==0&& indexPath.row== [tableView numberOfRowsInSection:indexPath.section]-1) { + + CGPathAddRoundedRect(pathRef,nil, bounds, cornerRadius, cornerRadius); + + }else if(indexPath.row==0) { + + CGPathMoveToPoint(pathRef,nil,CGRectGetMinX(bounds),CGRectGetMaxY(bounds)); + + CGPathAddArcToPoint(pathRef,nil,CGRectGetMinX(bounds),CGRectGetMinY(bounds),CGRectGetMidX(bounds),CGRectGetMinY(bounds), cornerRadius); + + CGPathAddArcToPoint(pathRef,nil,CGRectGetMaxX(bounds),CGRectGetMinY(bounds),CGRectGetMaxX(bounds),CGRectGetMidY(bounds), cornerRadius); + + CGPathAddLineToPoint(pathRef,nil,CGRectGetMaxX(bounds),CGRectGetMaxY(bounds)); + + addLine =YES; + + }else if(indexPath.row== [tableView numberOfRowsInSection:indexPath.section]-1) { + + CGPathMoveToPoint(pathRef,nil,CGRectGetMinX(bounds),CGRectGetMinY(bounds)); + + CGPathAddArcToPoint(pathRef,nil,CGRectGetMinX(bounds),CGRectGetMaxY(bounds),CGRectGetMidX(bounds),CGRectGetMaxY(bounds), cornerRadius); + + CGPathAddArcToPoint(pathRef,nil,CGRectGetMaxX(bounds),CGRectGetMaxY(bounds),CGRectGetMaxX(bounds),CGRectGetMidY(bounds), cornerRadius); + + CGPathAddLineToPoint(pathRef,nil,CGRectGetMaxX(bounds),CGRectGetMinY(bounds)); + + }else{ + + CGPathAddRect(pathRef,nil, bounds); + + addLine =YES; + + } + + layer.path= pathRef; + + CFRelease(pathRef); + + layer.fillColor= [UIColor colorWithWhite:1.f alpha:0.8f].CGColor; + + if(addLine ==YES) { + + CALayer* lineLayer = [[CALayer alloc]init]; + + CGFloat lineHeight = (1.f/ [UIScreen mainScreen].scale); + + lineLayer.frame=CGRectMake(CGRectGetMinX(bounds)+10, bounds.size.height-lineHeight, bounds.size.width-10, lineHeight); + + lineLayer.backgroundColor= tableView.separatorColor.CGColor; + + [layer addSublayer:lineLayer]; + + } + + UIView*testView = [[UIView alloc]initWithFrame:bounds]; + + [testView.layer insertSublayer:layer atIndex:0]; + + testView.backgroundColor=UIColor.clearColor; + + cell.backgroundView= testView; + + } + + } + +} +@end + + + diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSectionOneTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSectionOneTableViewCell.h new file mode 100644 index 0000000..b3b0f97 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSectionOneTableViewCell.h @@ -0,0 +1,20 @@ +// +// XJDSectionOneTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDSectionOneTableViewCell : UITableViewCell + +@property (nonatomic, copy) NSString * sectionTitle; + +@property (nonatomic, assign) BOOL isShow; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSectionOneTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSectionOneTableViewCell.m new file mode 100644 index 0000000..1938722 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDSectionOneTableViewCell.m @@ -0,0 +1,93 @@ +// +// XJDSectionOneTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDSectionOneTableViewCell.h" + + +@interface XJDSectionOneTableViewCell () + +@property (nonatomic, strong) UILabel * sectionLabel; + +@property (nonatomic, strong) UISwitch * rightSlider; + +@end + + +@implementation XJDSectionOneTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + return self; +} + +- (void)createUI { + + self.sectionLabel = [[UILabel alloc] init]; + self.sectionLabel.textColor = CFontColor1; + self.sectionLabel.font = BOLDSYSTEMFONT(15); + self.sectionLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:self.sectionLabel]; + + [self.sectionLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(15); + make.top.height.mas_offset(15); + make.width.mas_offset(100); + make.bottom.mas_offset(-20); + }]; + + self.rightSlider = [[UISwitch alloc] init]; + [self.rightSlider setOn:YES animated:YES]; + [self.rightSlider setOnTintColor: UIColorHex(#59D5D4)]; + self.rightSlider.transform = CGAffineTransformMakeScale(0.6, 0.6); + [self.rightSlider addTarget:self action:@selector(switchChange:) forControlEvents:UIControlEventValueChanged]; + [self.contentView addSubview:self.rightSlider]; + + [self.rightSlider mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_offset(-15); + make.top.mas_offset(15); + make.height.mas_offset(17); + make.bottom.mas_offset(-20); + }]; +} + +- (void) switchChange:(UISwitch*)sw { + if(sw.on == YES) { + NSLog(@"开关切换为开"); + } else if(sw.on == NO) { + NSLog(@"开关切换为关"); + } +} + +- (void)setSectionTitle:(NSString *)sectionTitle { + + _sectionTitle = sectionTitle; + + self.sectionLabel.text = _sectionTitle; +} + +- (void)setIsShow:(BOOL)isShow { + + _isShow = isShow; + + self.rightSlider.hidden = _isShow; +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDTimeDisanceTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDTimeDisanceTableViewCell.h new file mode 100644 index 0000000..3b65ac5 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDTimeDisanceTableViewCell.h @@ -0,0 +1,19 @@ +// +// XJDTimeDisanceTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import +#import "XJDSchedulingSettingModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDTimeDisanceTableViewCell : UITableViewCell + +@property (nonatomic, strong) XJDSchedulingSettingModel * model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDTimeDisanceTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDTimeDisanceTableViewCell.m new file mode 100644 index 0000000..d9cb5a5 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDTimeDisanceTableViewCell.m @@ -0,0 +1,100 @@ +// +// XJDTimeDisanceTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDTimeDisanceTableViewCell.h" + +@interface XJDTimeDisanceTableViewCell () + +@property (nonatomic, strong) UILabel * timeLabel; + +@property (nonatomic, strong) UISwitch * rightSlider; + + +@end + +@implementation XJDTimeDisanceTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + self.timeLabel = [[UILabel alloc] init]; + self.timeLabel.textColor = UIColorHex(#333333); + self.timeLabel.font = MEDIUMFONT(13); + self.timeLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:self.timeLabel]; + + [self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(15); + make.top.height.mas_offset(15); + make.width.mas_offset(200); + make.bottom.mas_offset(-20); + }]; + + self.rightSlider = [[UISwitch alloc] init]; + [self.rightSlider setOn:YES animated:YES]; + [self.rightSlider setOnTintColor: UIColorHex(#59D5D4)]; + self.rightSlider.transform = CGAffineTransformMakeScale(0.6, 0.6); + [self.rightSlider addTarget:self action:@selector(switchChange:) forControlEvents:UIControlEventValueChanged]; + [self.contentView addSubview:self.rightSlider]; + + [self.rightSlider mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_offset(-15); + make.top.mas_offset(15); + make.height.mas_offset(17); + make.bottom.mas_offset(-20); + }]; + + UIView * lineV = [[UIView alloc] init]; + lineV.backgroundColor = UIColorHex(#E0E0E0); + [self.contentView addSubview:lineV]; + + [lineV mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_offset(0); + make.height.mas_offset(1); + make.bottom.mas_offset(0); + }]; + +} + +- (void) switchChange:(UISwitch*)sw { + if(sw.on == YES) { + NSLog(@"开关切换为开"); + } else if(sw.on == NO) { + NSLog(@"开关切换为关"); + } +} + +- (void)setModel:(XJDSchedulingSettingModel *)model { + + _model = model; + + self.timeLabel.text = _model.time; + + [self.rightSlider setOn:_model.isSelected]; + +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDVideoAudioTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDVideoAudioTableViewCell.h new file mode 100644 index 0000000..76452a4 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDVideoAudioTableViewCell.h @@ -0,0 +1,18 @@ +// +// XJDVideoAudioTableViewCell.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDVideoAudioTableViewCell : UITableViewCell + +@property (nonatomic, copy) NSString * leftString; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDVideoAudioTableViewCell.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDVideoAudioTableViewCell.m new file mode 100644 index 0000000..4728bfc --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/XJDVideoAudioTableViewCell.m @@ -0,0 +1,110 @@ +// +// XJDVideoAudioTableViewCell.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/8. +// + +#import "XJDVideoAudioTableViewCell.h" + +@interface XJDVideoAudioTableViewCell () + +@property (nonatomic, strong) UILabel * leftLabel; + +@property (nonatomic, strong) UITextField * numberField; + +@end + +@implementation XJDVideoAudioTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + + [self createUI]; + } + + return self; + +} + +- (void)createUI { + + self.leftLabel = [[UILabel alloc] init]; + self.leftLabel.textColor = UIColorHex(#333333); + self.leftLabel.font = BOLDSYSTEMFONT(13); + self.leftLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:self.leftLabel]; + + [self.leftLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_offset(28); + make.top.height.mas_offset(20); + make.width.mas_offset(40); + make.bottom.mas_offset(-20); + }]; + + UILabel * maxLabel = [[UILabel alloc] init]; + maxLabel.textColor = UIColorHex(#333333); + maxLabel.font = MEDIUMFONT(14); + maxLabel.text = @"最大可预约"; + maxLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:maxLabel]; + + [maxLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.leftLabel.mas_right).offset(20); + make.top.height.mas_offset(20); + make.bottom.mas_offset(-20); + }]; + [maxLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + self.numberField = [[UITextField alloc] init]; + self.numberField.layer.cornerRadius = 5.0; + self.numberField.layer.masksToBounds = true; + self.numberField.layer.borderColor = UIColorHex(#CCCCCC).CGColor; + self.numberField.layer.borderWidth = 1.0f; + self.numberField.keyboardType = UIKeyboardTypeNumberPad; + [self.contentView addSubview:self.numberField]; + + [self.numberField mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(maxLabel.mas_right).offset(11); + make.height.mas_offset(30); + make.width.mas_offset(58); + make.bottom.mas_offset(-15); + }]; + + UILabel * peopleLabel = [[UILabel alloc] init]; + peopleLabel.textColor = UIColorHex(#333333); + peopleLabel.font = MEDIUMFONT(14); + peopleLabel.text = @"人"; + peopleLabel.textAlignment = NSTextAlignmentLeft; + [self.contentView addSubview:peopleLabel]; + + [peopleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.numberField.mas_right).offset(10); + make.top.height.mas_offset(20); + make.bottom.mas_offset(-20); + make.width.mas_offset(35); + }]; +} + +- (void)setLeftString:(NSString *)leftString { + + _leftString = leftString; + + self.leftLabel.text = _leftString; + + +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXTimeDisanceTableViewCell.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXTimeDisanceTableViewCell.h deleted file mode 100644 index 67d48d7..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/SchedulingSettingView(排班设置)/YXTimeDisanceTableViewCell.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// YXTimeDisanceTableViewCell.h -// healthQuestion -// -// Created by 仁康信息 on 2023/5/8. -// - -#import -#import "YXSchedulingSettingModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface YXTimeDisanceTableViewCell : UITableViewCell - -@property (nonatomic, strong) YXSchedulingSettingModel * model; - -@end - -NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDCustomDelectedView.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDCustomDelectedView.h new file mode 100644 index 0000000..b907279 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDCustomDelectedView.h @@ -0,0 +1,24 @@ +// +// XJDCustomDelectedView.h +// healthQuestion +// +// Created by 仁康信息 on 2023/5/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^delectOneBlock)(NSInteger btnTag); + +@interface XJDCustomDelectedView : UIView + +@property (nonatomic, copy) NSString * titleString; + +@property (nonatomic, assign) NSInteger btntag; + +@property (nonatomic, copy) delectOneBlock delectBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDCustomDelectedView.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDCustomDelectedView.m new file mode 100644 index 0000000..2b72c11 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDCustomDelectedView.m @@ -0,0 +1,79 @@ +// +// XJDCustomDelectedView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/6. +// + +#import "XJDCustomDelectedView.h" + +@interface XJDCustomDelectedView () + +@property (nonatomic, strong) UILabel * nameLabel; +@property (nonatomic, strong) UIButton * cancelBtn ; + +@end + +@implementation XJDCustomDelectedView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + } + + return self; +} + +-(void)createUI { + + UIButton * cancelBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.width - 18, 0, 18, 18)]; + [cancelBtn setImage:[UIImage imageNamed:@"delected_Icon"] forState:UIControlStateNormal]; + self.cancelBtn = cancelBtn; + [cancelBtn addTarget:self action:@selector(delectedAction:) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:cancelBtn]; + + + self.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 7, self.width-10, 27)]; + self.nameLabel.textAlignment = NSTextAlignmentCenter; + self.nameLabel.textColor = CFontColor1; + self.nameLabel.font = SYSTEMFONT(13); + self.nameLabel.layer.borderColor = UIColorHex(#BBBBBB).CGColor; + self.nameLabel.layer.cornerRadius = 5.0; + self.nameLabel.layer.masksToBounds = true; + self.nameLabel.layer.borderWidth = 1.0f; + [self addSubview:self.nameLabel]; +} + +- (void)setBtntag:(NSInteger)btntag { + + _btntag = btntag; + self.cancelBtn.tag = _btntag; + + + +} + +- (void)setTitleString:(NSString *)titleString { + _titleString = titleString; + self.nameLabel.text = _titleString; +} + +- (void)delectedAction:(UIButton *)btn { + + if (self.delectBlock) { + + self.delectBlock(btn.tag - 100); + + } + +} +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/userAddGoodPopView.h b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDUserAddGoodPopView.h similarity index 77% rename from DoctorXinjiang/DoctorXinjiang/Project/Mine/view/userAddGoodPopView.h rename to DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDUserAddGoodPopView.h index 6b077eb..cf98cea 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/userAddGoodPopView.h +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDUserAddGoodPopView.h @@ -1,5 +1,5 @@ // -// YXuserAddGoodPopView.h +// XJDUserAddGoodPopView.h // healthQuestion // // Created by 仁康信息 on 2023/5/6. @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN typedef void(^addBlcok)(NSString *inputString); -@interface YXuserAddGoodPopView : UIView +@interface XJDUserAddGoodPopView : UIView @property (nonatomic, copy) addBlcok popBlock; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDUserAddGoodPopView.m b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDUserAddGoodPopView.m new file mode 100644 index 0000000..ca2ab1c --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/Mine/view/XJDUserAddGoodPopView.m @@ -0,0 +1,108 @@ +// +// XJDUserAddGoodPopView.m +// healthQuestion +// +// Created by 仁康信息 on 2023/5/6. +// + +#import "XJDUserAddGoodPopView.h" +#import "UIPlaceHolderTextView.h" + +@interface XJDUserAddGoodPopView () + +@property (nonatomic, strong) UIPlaceHolderTextView * addTextView; + +@end + +@implementation XJDUserAddGoodPopView + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + [self createUI]; + } + + return self; +} + +- (void)createUI { + + self.backgroundColor = RGBA(0, 0, 0, 0.3); + + UIView * popView = [[UIView alloc] initWithFrame:CGRectMake(0, kScreenHeight - kRealValue(254), kScreenWidth, kRealValue(254))]; + popView.backgroundColor = KWhiteColor; + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:popView.bounds byRoundingCorners:UIRectCornerTopRight | UIRectCornerTopLeft cornerRadii:CGSizeMake(10, 10)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init]; + maskLayer.frame = popView.bounds; + maskLayer.path = maskPath.CGPath; + popView.layer.mask = maskLayer; + [self addSubview:popView]; + + UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, kRealValue(26), popView.width, 14)]; + titleLabel.text = @"擅长病种"; + titleLabel.font = MEDIUMFONT(14); + titleLabel.textAlignment = NSTextAlignmentCenter; + titleLabel.textColor = CFontColor1; + [popView addSubview:titleLabel]; + + + UIPlaceHolderTextView * textView = [[UIPlaceHolderTextView alloc] initWithFrame:CGRectMake(kRealValue(16), titleLabel.bottom + kRealValue(32), kScreenWidth - kRealValue(32), kRealValue(90))]; + textView.backgroundColor = UIColorHex(#EFEFEF); + self.addTextView = textView; + textView.font = SYSTEMFONT(13); + textView.placeholder = @"请输入您擅长的病种"; + textView.layer.cornerRadius = 10; + textView.layer.masksToBounds = true; + [popView addSubview:textView]; + + UIButton * cancelbtn = [[UIButton alloc] initWithFrame:CGRectMake(popView.width - kRealValue(15) - 9 , kRealValue(15) , 9, 9)]; + [cancelbtn setImage:[UIImage imageNamed:@"close_Icon"] forState:UIControlStateNormal]; + [cancelbtn addTarget:self action:@selector(cancelAction) forControlEvents:UIControlEventTouchUpInside]; + [popView addSubview:cancelbtn]; + + UIButton * sureBtn = [[UIButton alloc] initWithFrame:CGRectMake(kRealValue(47) ,textView.bottom + kRealValue(31) , popView.width - kRealValue(94), 40)]; + sureBtn.backgroundColor = UIColorHex(#21BEBD); + sureBtn.layer.cornerRadius = 20; + [sureBtn setTitle:@"确定" forState:UIControlStateNormal]; + [sureBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + sureBtn.titleLabel.font = MEDIUMFONT(14); + [sureBtn addTarget:self action:@selector(sureAction) forControlEvents:UIControlEventTouchUpInside]; + [popView addSubview:sureBtn]; + + + + + +} + +-(void)cancelAction { + + [self removeFromSuperview]; + +} + +- (void)sureAction { + + if (ValidStr(self.addTextView.text)) { + + [MBProgressHUD showErrorMessage:@"请输入内容"]; + return; + } + + if(self.popBlock) { + + self.popBlock(self.addTextView.text); + } + [self removeFromSuperview]; +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatList/XJDChatListViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatList/XJDChatListViewController.h new file mode 100644 index 0000000..a7b10bc --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatList/XJDChatListViewController.h @@ -0,0 +1,16 @@ +// +// XJDChatListViewController.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/2/13. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDChatListViewController : YXBaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatList/XJDChatListViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatList/XJDChatListViewController.m new file mode 100644 index 0000000..7ee439e --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatList/XJDChatListViewController.m @@ -0,0 +1,65 @@ +// +// XJDChatListViewController.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/2/13. +// + +#import "XJDChatListViewController.h" +#import "TUIConversationListController.h" +#import "TUIC2CChatViewController.h" +#import "TUIConversationCell.h" +#import "ChatViewController.h" + +@interface XJDChatListViewController () + +@end + +@implementation XJDChatListViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.isHidenNaviBar = false; + TUIConversationListController *vc = [[TUIConversationListController alloc] init]; + vc.delegate = self; + // 把 TUIConversationListController 添加到自己的 ViewController + [self addChildViewController:vc]; + [self.view addSubview:vc.view]; + +} + +//会话列表代理 + +- (void)conversationListController:(TUIConversationListController *)conversationController + didSelectConversation:(TUIConversationCell *)conversation +{ + + // 会话列表点击事件,通常是打开聊天界面 + TUIConversationCellData * data11 = conversation; +// // 创建会话信息 + + ChatViewController * chatVC = [[ChatViewController alloc] init]; + if (!ValidStr(data11.userID)) { + chatVC.chatID = data11.userID; + chatVC.isGroupID = false; + + }else + { + chatVC.chatID = data11.groupID; + chatVC.isGroupID = YES; + } + chatVC.navTitle = data11.title; + [self.navigationController pushViewController:chatVC animated:true]; +} +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatViewController.m index 593c1cd..c864c8d 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatViewController.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/ChatViewController.m @@ -9,13 +9,13 @@ #import "TUIC2CChatViewController.h" #import "TUIMessageDataProvider.h" #import "TUIChatDataProvider.h" -#import "ChatMapViewController.h" +#import "XJDChatMapViewController.h" #import #import "TUIChatConfig.h" #import "EndSystemSoSCell.h" #import "XJDFileDataDetailViewController.h" #import "DoctorIDCardMessageCell.h" -#import "CurrentLocationViewController.h" +#import "XJDCurrentLocationViewController.h" #import #import #import "TUIGroupChatViewController.h" @@ -52,7 +52,7 @@ [[V2TIMManager sharedInstance] addSimpleMsgListener:self]; [[TUICallEngine createInstance] addObserver:self]; -// IMUserInfoModel * model = [HQCommonUtils keyedUnarchiverWithKey:IMLoginUserInfo]; +// IMUserInfoModel * model = [XJDCommonUtils keyedUnarchiverWithKey:IMLoginUserInfo]; // [[TUICallEngine createInstance] init:[model.sdkAppId intValue] userId:model.userId userSig:model.userSig succ:^{ // // } fail:^(int code, NSString * _Nullable errMsg) { @@ -70,7 +70,7 @@ // [ESCTUIManager createUITUIChatViewControllerisGroup:self.isGroupID chatConnetID:self.chatID isAudio:false isVideo:false]; - YXUserInfo * user = [HQCommonUtils keyedUnarchiverWithKey:LoginUserInfo]; + XJDUserInfo * user = [XJDCommonUtils keyedUnarchiverWithKey:LoginUserInfo]; TUIChatConversationModel *data = [[TUIChatConversationModel alloc] init]; //显示对方正在输入状态 @@ -168,7 +168,7 @@ #pragma mark:跳转到地图选择页 - (void)jumpChatMapView { - ChatMapViewController * mapVC = [[ChatMapViewController alloc] init]; + XJDChatMapViewController * mapVC = [[XJDChatMapViewController alloc] init]; MJWeakSelf mapVC.mapBlcok = ^(CLLocationCoordinate2D coordinate) { V2TIMMessage * message = [[V2TIMManager sharedInstance] createLocationMessage:@"位置" longitude:coordinate.longitude latitude:coordinate.latitude]; @@ -194,19 +194,19 @@ if (self.questionType == 1) { NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; [parmDic setObject:self.sosEnd_id forKey:@"id"]; - YXNetAPI * endApi = [[YXNetAPI alloc] init:self tag:@"ENDSOSAPI" NeedToken:@""]; + XJDNetAPI * endApi = [[XJDNetAPI alloc] init:self tag:@"ENDSOSAPI" NeedToken:@""]; [endApi PostEndSoSIMQuestion:parmDic]; } if (self.questionType == 2) { NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; [parmDic setObject:self.pictureEnd_id forKey:@"id"]; - YXNetAPI * endApi = [[YXNetAPI alloc] init:self tag:@"ENDPICTUREAPI" NeedToken:@""]; + XJDNetAPI * endApi = [[XJDNetAPI alloc] init:self tag:@"ENDPICTUREAPI" NeedToken:@""]; [endApi GetEndPictureEndIMQuestion:parmDic]; } if (!ValidStr(self.smallHelp_id)) { NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; [parmDic setObject:self.smallHelp_id forKey:@"id"]; - YXNetAPI * endApi = [[YXNetAPI alloc] init:self tag:@"ENDPICTUREAPI" NeedToken:@""]; + XJDNetAPI * endApi = [[XJDNetAPI alloc] init:self tag:@"ENDPICTUREAPI" NeedToken:@""]; [endApi GetEndPictureEndIMQuestion:parmDic]; } } @@ -360,7 +360,7 @@ // DLog(@"%@",cel.messageData.innerMessage.locationElem.longitude); - CurrentLocationViewController * currVC = [[CurrentLocationViewController alloc] init]; + XJDCurrentLocationViewController * currVC = [[XJDCurrentLocationViewController alloc] init]; currVC.longitude = cel.messageData.innerMessage.locationElem.longitude; currVC.latitude = cel.messageData.innerMessage.locationElem.latitude; [self.navigationController pushViewController:currVC animated:YES]; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDChatMapViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDChatMapViewController.h new file mode 100644 index 0000000..c49abfb --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDChatMapViewController.h @@ -0,0 +1,20 @@ +// +// ChatMapViewController.h +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/7/5. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^sendUserSoSLocation)(CLLocationCoordinate2D coordinate); + +@interface XJDChatMapViewController : YXBaseViewController + +@property (nonatomic, copy) sendUserSoSLocation mapBlcok; + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDChatMapViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDChatMapViewController.m new file mode 100644 index 0000000..8551b8d --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDChatMapViewController.m @@ -0,0 +1,157 @@ +// +// XJDChatMapViewController.m +// DoctorXinjiang +// +// Created by 仁康信息 on 2023/7/5. +// + +#import "XJDChatMapViewController.h" + +@interface XJDChatMapViewController () +{ + CLLocationCoordinate2D coordinate; +} +@property (nonatomic, strong) MAMapView *mapView; +@property (nonatomic, strong) AMapSearchAPI *search; +@property (nonatomic, assign) BOOL userFirstLoca; +@end + +@implementation XJDChatMapViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.isHidenNaviBar = false; + self.navigationItem.title = @"选择位置"; + self.view.backgroundColor = KWhiteColor; + // Do any additional setup after loading the view. + [self createUI]; +} + +- (void)viewWillAppear:(BOOL)animated +{ + [super viewWillAppear:animated]; + + [self.mapView setCompassImage:[UIImage imageNamed:@"compass"]]; +} + +- (void)viewDidAppear:(BOOL)animated +{ + [super viewDidAppear:animated]; + + // 开启定位 + self.mapView.showsUserLocation = YES; + self.mapView.userTrackingMode = MAUserTrackingModeFollow; +} + +- (void)viewDidDisappear:(BOOL)animated +{ + [super viewDidDisappear:animated]; + [self.mapView setCompassImage:nil]; +} + +- (void)createUI { + + self.mapView = [[MAMapView alloc] initWithFrame:self.view.bounds]; + self.mapView.zoomLevel = 17; + self.mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + self.mapView.userTrackingMode = MAUserTrackingModeFollow; + [self.view addSubview:self.mapView]; + self.search.delegate = self; + self.mapView.delegate = self; + [self addNavigationItemWithTitles:@[@"发送"] isLeft:NO target:self action:@selector(sendMapmessate) tags:@[@"100"]]; + +} + +- (void)sendMapmessate { + + if (self.userFirstLoca == NO) { + [self showMBProgressHUDOnlyWithString:@"正在获取您的位置,请稍候"]; + } + if (self.mapBlcok) { + self.mapBlcok(coordinate); + } + [self.navigationController popViewControllerAnimated:YES]; + + +} + +#pragma mark - MAMapviewDelegate +- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id)annotation +{ + if ([annotation isKindOfClass:[MAPointAnnotation class]]) + { + + } + + return nil; +} + +#pragma mark - MAMapViewDelegate + +- (void)mapViewRequireLocationAuth:(CLLocationManager *)locationManager +{ + [locationManager requestAlwaysAuthorization]; +} + + +- (void)mapView:(MAMapView *)mapView didChangeUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated +{ +} + + +- (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation +{ + // 目的是只用第一次定位的数据,即用户的初始位置 + if (self.userFirstLoca == NO) { + self.userFirstLoca = YES; +// self.userFirstCoor = userLocation.location.coordinate; + coordinate = userLocation.location.coordinate; + MAPointAnnotation *ann = [[MAPointAnnotation alloc] init]; + ann.coordinate = userLocation.location.coordinate; + //固定Annotation并放置地图中心点 + ann.lockedToScreen = YES; + ann.lockedScreenPoint = CGPointMake(mapView.center.x, mapView.center.y); + [mapView addAnnotation:ann]; + } +} + +/* 地图移动结束后调用此接口 */ +- (void)mapView:(MAMapView *)mapView mapDidMoveByUser:(BOOL)wasUserAction +{ + // 将指定view坐标系的坐标转换为经纬度 + CLLocationCoordinate2D moveCoor = [mapView convertPoint:CGPointMake(mapView.center.x, mapView.center.y-64) toCoordinateFromView:mapView]; + + // 通过坐标点得到经纬度,从而进行反地理编码 + AMapReGeocodeSearchRequest *rego = [[AMapReGeocodeSearchRequest alloc] init]; + // 是否返回扩展信(因为我们需要得到附近地理位置信息,所以设为YES) + rego.requireExtension = YES; + rego.location = [AMapGeoPoint locationWithLatitude:moveCoor.latitude longitude:moveCoor.longitude]; + coordinate = CLLocationCoordinate2DMake(moveCoor.latitude , moveCoor.longitude); + [self.search AMapReGoecodeSearch:rego]; +} + +/* 逆地理编码查询回调函数 */ +- (void)onReGeocodeSearchDone:(AMapReGeocodeSearchRequest *)request response:(AMapReGeocodeSearchResponse *)response +{ + // reGeodeVC就是一个简单的tableView布局,数据来源就是response.regeocode.pois +} + +/* 这个是reGeodeVC点击tableViewCell的回调 */ +#pragma mark - ReGeocodeDelegate +-(void)selectAMapAPI:(AMapPOI *)poi +{ + // 将地图的中心点移至poi点 + coordinate = CLLocationCoordinate2DMake(poi.location.latitude, poi.location.longitude); + [self.mapView setCenterCoordinate:CLLocationCoordinate2DMake(poi.location.latitude, poi.location.longitude) animated:YES]; +} +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDCurrentLocationViewController.h b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDCurrentLocationViewController.h new file mode 100644 index 0000000..bebc54b --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDCurrentLocationViewController.h @@ -0,0 +1,21 @@ +// +// XJDCurrentLocationViewController.h +// healthQuestion +// +// Created by 仁康信息 on 2023/8/15. +// + +#import "YXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDCurrentLocationViewController : YXBaseViewController + +@property (nonatomic, assign) double longitude; + +@property (nonatomic, assign) double latitude; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDCurrentLocationViewController.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDCurrentLocationViewController.m new file mode 100644 index 0000000..bdf5e6b --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/Controller/XJDCurrentLocationViewController.m @@ -0,0 +1,138 @@ +// +// XJDCurrentLocationViewController.m +// healthQuestion +// +// Created by 仁康信息 on 2023/8/15. +// + +#import "XJDCurrentLocationViewController.h" + +@interface XJDCurrentLocationViewController () +{ + CLLocationCoordinate2D coordinate; +} +@property (nonatomic, strong) MAMapView *mapView; +@property (nonatomic, strong) AMapSearchAPI *search; +@property (nonatomic, assign) BOOL userFirstLoca; + +@end + +@implementation XJDCurrentLocationViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.isHidenNaviBar = false; + self.navigationItem.title = @"我的位置"; + self.view.backgroundColor = KWhiteColor; + // Do any additional setup after loading the view. + [self createUI]; +} + + +- (void)viewWillAppear:(BOOL)animated +{ + [super viewWillAppear:animated]; + +// [self.mapView setCompassImage:[UIImage imageNamed:@"pin"]]; +} + +- (void)viewDidAppear:(BOOL)animated +{ + [super viewDidAppear:animated]; + + +} + +- (void)viewDidDisappear:(BOOL)animated +{ + [super viewDidDisappear:animated]; + [self.mapView setCompassImage:nil]; +} + +- (void)createUI { + + self.mapView = [[MAMapView alloc] initWithFrame:self.view.bounds]; + self.mapView.zoomLevel = 17; + self.mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + // 设置中心点时带动画效果 + [self.mapView setCenterCoordinate:CLLocationCoordinate2DMake(self.latitude, self.longitude) animated:YES]; + + [self.view addSubview:self.mapView]; + self.search.delegate = self; + self.mapView.delegate = self; + + MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init]; + pointAnnotation.coordinate = CLLocationCoordinate2DMake(self.latitude, self.longitude); + [_mapView addAnnotation:pointAnnotation]; + +} + +#pragma mark - MAMapviewDelegate +- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id)annotation +{ + if ([annotation isKindOfClass:[MAPointAnnotation class]]) + { + static NSString *pointReuseIndentifier = @"pointReuseIndentifier"; + MAPinAnnotationView*annotationView = (MAPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:pointReuseIndentifier]; + if (annotationView == nil) + { + annotationView = [[MAPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pointReuseIndentifier]; + } + annotationView.canShowCallout= YES; //设置气泡可以弹出,默认为NO + annotationView.animatesDrop = YES; //设置标注动画显示,默认为NO + annotationView.draggable = YES; //设置标注可以拖动,默认为NO + annotationView.pinColor = MAPinAnnotationColorPurple; + annotationView.centerOffset = CGPointMake(0, -18); +// annotationView.image = [UIImage imageNamed:@"pin"]; + return annotationView; + } + return nil; +} +#pragma mark - MAMapViewDelegate + +- (void)mapViewRequireLocationAuth:(CLLocationManager *)locationManager +{ + [locationManager requestAlwaysAuthorization]; +} + + +- (void)mapView:(MAMapView *)mapView didChangeUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated +{ +} + + +- (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation +{ + +} + +/* 地图移动结束后调用此接口 */ +- (void)mapView:(MAMapView *)mapView mapDidMoveByUser:(BOOL)wasUserAction +{ + +} + +/* 逆地理编码查询回调函数 */ +- (void)onReGeocodeSearchDone:(AMapReGeocodeSearchRequest *)request response:(AMapReGeocodeSearchResponse *)response +{ + // reGeodeVC就是一个简单的tableView布局,数据来源就是response.regeocode.pois +} + +/* 这个是reGeodeVC点击tableViewCell的回调 */ +#pragma mark - ReGeocodeDelegate +-(void)selectAMapAPI:(AMapPOI *)poi +{ + // 将地图的中心点移至poi点 + [self.mapView setCenterCoordinate:CLLocationCoordinate2DMake(self.latitude, self.longitude) animated:YES]; +} +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/DoctorCardCell/DoctorIDCardMessageCell.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/DoctorCardCell/DoctorIDCardMessageCell.m index dd05cbc..3572dbd 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/DoctorCardCell/DoctorIDCardMessageCell.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/DoctorCardCell/DoctorIDCardMessageCell.m @@ -80,7 +80,7 @@ - (void)layoutSubviews { [super layoutSubviews]; - CGFloat w = [HQCommonUtils getLengthFromText:self.doctorNameLabel.text andFontSize:14]; + CGFloat w = [XJDCommonUtils getLengthFromText:self.doctorNameLabel.text andFontSize:14]; self.doctorImg.frame = CGRectMake(14, 18, 50, 50); self.doctorNameLabel.frame = CGRectMake(self.doctorImg.right + 14, 18, w, 20); diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/EndSystemCell/EndSystemCellData.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/EndSystemCell/EndSystemCellData.m index 83bb7be..3b544c0 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/EndSystemCell/EndSystemCellData.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/EndSystemCell/EndSystemCellData.m @@ -41,7 +41,7 @@ // size.width += 20; // return size; UILabel * commanLabel = [[UILabel alloc] init]; - CGFloat h = [HQCommonUtils getSpaceLabelHeight:commanLabel AndLeftisTrue:true withStr:self.content withFont:[UIFont systemFontOfSize:14] withWidth:245 - 28 withLineSpacing:2]; + CGFloat h = [XJDCommonUtils getSpaceLabelHeight:commanLabel AndLeftisTrue:true withStr:self.content withFont:[UIFont systemFontOfSize:14] withWidth:245 - 28 withLineSpacing:2]; CGFloat textMaxWidth = 245.f; CGFloat textMaxHeight = h+10; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/EndSystemCell/EndSystemSoSCell.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/EndSystemCell/EndSystemSoSCell.m index f6b4997..74cf4b5 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/EndSystemCell/EndSystemSoSCell.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/EndSystemCell/EndSystemSoSCell.m @@ -87,7 +87,7 @@ - (void)layoutSubviews { [super layoutSubviews]; - CGFloat h = [HQCommonUtils getSpaceLabelHeight:self.commantLabel AndLeftisTrue:true withStr:self.commantLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:self.container.width - 14 withLineSpacing:2]; + CGFloat h = [XJDCommonUtils getSpaceLabelHeight:self.commantLabel AndLeftisTrue:true withStr:self.commantLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:self.container.width - 14 withLineSpacing:2]; self.systemTitleLabel.frame = CGRectMake(14, 18, 245 - 28, 20); self.commantLabel.frame = CGRectMake( 14, self.systemTitleLabel.bottom + 10, 245 - 28, h); diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/HealthDataCustom/healthDataCustomCell.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/HealthDataCustom/healthDataCustomCell.m index 43e1043..0d545cd 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/HealthDataCustom/healthDataCustomCell.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/HealthDataCustom/healthDataCustomCell.m @@ -174,7 +174,7 @@ - self.questionNameLab.mm_sizeToFit().mm_top(21).mm_left(10).mm_width([HQCommonUtils getLengthFromText:self.questionNameLab.text andFontSize:15]).mm_height(16); + self.questionNameLab.mm_sizeToFit().mm_top(21).mm_left(10).mm_width([XJDCommonUtils getLengthFromText:self.questionNameLab.text andFontSize:15]).mm_height(16); self.sexLabel.mm_top(21).mm_left(self.questionNameLab.mm_w + 10 + 9).mm_width(100).mm_height(16); diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/SendPhysicalModel/sendPhysicalCustomCell.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/SendPhysicalModel/sendPhysicalCustomCell.m index b75881d..94be1ea 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/SendPhysicalModel/sendPhysicalCustomCell.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/SendPhysicalModel/sendPhysicalCustomCell.m @@ -65,7 +65,7 @@ - (void)layoutSubviews { [super layoutSubviews]; - CGFloat h = [HQCommonUtils getSpaceLabelHeight:self.hospationLabel AndLeftisTrue:true withStr:self.hospationLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:self.container.width - 14 withLineSpacing:2]; + CGFloat h = [XJDCommonUtils getSpaceLabelHeight:self.hospationLabel AndLeftisTrue:true withStr:self.hospationLabel.text withFont:[UIFont systemFontOfSize:14] withWidth:self.container.width - 14 withLineSpacing:2]; self.titleLabel.frame = CGRectMake(14, 18, 245 - 28, 20); self.hospationLabel.frame = CGRectMake( 14, self.titleLabel.bottom + 10, 245 - 28, h); diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/StarMarkCustom/StarMarkCellData.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/StarMarkCustom/StarMarkCellData.m index 1bee5d7..db76969 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/StarMarkCustom/StarMarkCellData.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/StarMarkCustom/StarMarkCellData.m @@ -24,7 +24,7 @@ - (CGSize)contentSize { UILabel * hlabel = [[UILabel alloc] init]; - CGFloat h = [HQCommonUtils getSpaceLabelHeight:hlabel AndLeftisTrue:true withStr:self.reviewConnet withFont:[UIFont systemFontOfSize:13] withWidth: 245 - 30 withLineSpacing:5]; + CGFloat h = [XJDCommonUtils getSpaceLabelHeight:hlabel AndLeftisTrue:true withStr:self.reviewConnet withFont:[UIFont systemFontOfSize:13] withWidth: 245 - 30 withLineSpacing:5]; CGSize size = CGSizeMake(245,h + 80); return size; diff --git a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/StarMarkCustom/StarMarkCustomCell.m b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/StarMarkCustom/StarMarkCustomCell.m index 4d8c39c..c9c4b48 100644 --- a/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/StarMarkCustom/StarMarkCustomCell.m +++ b/DoctorXinjiang/DoctorXinjiang/Project/TUIChat/CustomChatCell/StarMarkCustom/StarMarkCustomCell.m @@ -76,7 +76,7 @@ self.pingneirongLabel.frame = CGRectMake(15, self.pinglunLabel.bottom + 14 , self.container.width - 30, 50); - CGFloat h = [HQCommonUtils getSpaceLabelHeight:self.pingneirongLabel AndLeftisTrue:true withStr:self.pingneirongLabel.text withFont:[UIFont systemFontOfSize:13] withWidth: self.container.width - 30 withLineSpacing:5]; + CGFloat h = [XJDCommonUtils getSpaceLabelHeight:self.pingneirongLabel AndLeftisTrue:true withStr:self.pingneirongLabel.text withFont:[UIFont systemFontOfSize:13] withWidth: self.container.width - 30 withLineSpacing:5]; self.pingneirongLabel.frame = CGRectMake(15, self.pinglunLabel.bottom + 14 , self.container.width - 30, h); diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon 1.appiconset/Contents.json b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon 1.appiconset/Contents.json deleted file mode 100644 index df54288..0000000 --- a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon 1.appiconset/Contents.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "images" : [ - { - "filename" : "questionIcon.png", - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon 1.appiconset/questionIcon.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon 1.appiconset/questionIcon.png deleted file mode 100644 index 66b06c00c968674704bc3a0c8b0f81549ebe41c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708687 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

62c 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 z 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φ9w?oFBX;PU7j;Q@MyPPU-*|p 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 z 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 Xo<}reyzJ3M3_#%N>gTe~DWM4f$YAAn literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon.appiconset/图层 1@2x 2.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon.appiconset/图层 1@2x 2.png new file mode 100644 index 0000000000000000000000000000000000000000..e99b952670ae3c6324939c3054df5f62c82ba49c GIT binary patch literal 95810 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 z zQ;ZCox`&YXV#EYv&}9M4N&W{e>FwZ({Qaqfu{S@#=%L(0=I*l=#2mOfSn7Uc^Z_%U zH5K#(uQWNj@EFvQ+R3UWuyHlMu9Sm?emI{1yTLujkuc3?3afm5aODis0|V};ziqkf zg)!ZCP$7nb907|S)_3w#)`^--_o`y>W;lOS zP3{{P3Co~bM^ z>@p+`oj08@`X7`LMgw8~$ve4uph@C^KSRIA0hj7$Oi|KP3Xt!X+JSVP7v*!%b&WlI z4Mfvi?>@lXUiM7IlMi3FeF3{9`KXza6w7#+-z^c`8wTTM;FgCqA0#2*18?tG5d)2v z2cf*L#LA`zDLq9>PjNApF;|e`nd*4$`hrpJ6mhV&SsCuIrrgKsSp_O5@lTq#S_!U z|Du3A`4drs$loKLP=b-2zy{B6f?5ijGqp8P)45$?cndDAeyTQ?#SU&+kAnJ5b;Ctp zd{+9>K#Zy5L7lj|Uy30`L1woqr8T;tze;nf(M1IPCj!=or1dE#}6$hrUBY5c$AOVUKM2J-L9 z(aAvPwpGxiq=~z>nH47#3NK8GKvJ?3;;{2584;*7&@rY}*Z5wze|+G9H{YxZ5D&Q3 zkYUT^`2VOj;tQ5?fK=*Yp2~YK3$~uA^nFSGOa(K?Hz9wj{qHs1gO^kuidR%Dy!qsi zxZhL_!DqJxx($5VfVVVDtnO4?Oth&DKCS?Z7&7Q_}K*Z!JekMwN zOE?%XC#+4pA1L+3LBbfh({D=gf z>=(CGU0)KxecgN3KEV~>#WA^98E1Mz0qI~<^f;~+j;fjs1x7*->fZH`7V>Q7Y)yoq zlgvC6N1#jI|8*tKZ#;52W`|h)m+gA>)#M)$G-vtuVqn`c-PIFf1oH!k)2MiF9KU4 z1&q9*;675mEcUraS;DuQzT=M9{q9J4$47vBXgl))G=%Cr+!3Bo!zhL z@Q!QW@tVgKhf)@NYdwCjVefBLK;G6eA@lp93Lr^|7UcvqLUW{}flDC><^Ltd+!x>; zV|L?T(neTp_)(MuDW4eCPCF4$D{;@p3)Ofsw2P_C|3$FxWV1^=O*g&xvJU*x2lLN% zqR#^xOHJ6pXp%>{cXhZ+0Q==&csA*d8r8r({%ap!aRT?@njOP1oCw3qGXmBJB)1~-Cp z@>%`ek1qQ+*mb(NZWssVoi7ZBq7RhY6e_}*XN6{U%EfLv5fEml9dCZb(S6CpN=*@p z$c;lEfg*=XPKSD|;ITO!#5cVJLJ9RAbmIzwXEKAoZJ}rYg*sz~P9FfuNz@V0i538_ zMkqgIte;B$2A8_O_vxw5Q=x5wo_3zVt&r zCacGarn_U-_~&`Yk`+Tf(}MjG<hSqm~RBR{EcYo|I-QQF;fN9;CIQs98~83Lc|5 zVU9Zj5HXs4j2FVq#Qg%_=x0a^LF2pvHzKb>S%VF@CbvVa1ANhOv{^*)D~H0N)8S1D z85M;?R0SQmZ}7rz@>#5%E!nN^xq#VZ0zo$!DwSiGL6Mt`N>nbK^m(W$1v;TxP5M)WHdR z8Q$Yy$%fJ}@QWSS>yE`Hlu!HFY(lYe>T%dWH%es0g-&@JC77^-so~5U8otf_2{Aim zltDQUI;DQ&nVSxZ0qw*fS1>z|e5O;%F9s)NfS`>#VD*w6ywO*Ntq0dtb+yy<3!sCR z&C=>sSV0s5#u4h;Ia$@W+V)C$(D#B3$id&N4F?r+c|gs!R1uc~?B$=JfUE=P+i3m4 zAKkUOPcPEX^vi;0jpx?iOf$$u|3Te{LrFyyKXzL&9H@jNMInWq7B(AcX8D!mGw|D8 zCE;@W>C4eSxy0rbeO_tpb#nD->6GU6ngyecuCBEzIaGQj`TAXMn?mo5>KlH-XZBTg zO;5klF`vV|GpHho4jQ=PwBgOMZ#lwbMaxVH9(f%$eMJ2@o{8o~JM!qVARMzhi=C+C zVQ(|H$nII~T|Tb(Mun!6W>6P|{F2dczU~=LG_*%92?#chzt2+}lRva}BWt)C*(JYW zS_kEw;Q&Z`$}LzcwGLMslq7+&Pp&sSg72s_UAFm%C;sdAq0{%OYMEv!SrQ?6`x{G@@ z6wGIBBD)609dcFGA5xD)9BlY@wj;&Bt|b*Izy#-SyoP|nQ|UQ$1Voe)k%J+@jD8b! z&lv4X%cPS7AO43i>d=!R}FrKjt-q$MC%kPX{?1PP6m2#gQu2cq)4s65izNP zu$y#%Asnl!gbQy;!*eYxxp+sL1 z;#JdQ3N98vPX-DDj&Ek)<^Yk-+kl$^z>Vu6;jS_YW~DXH=6;2INb!UPxQ}Sqyh_bo zG!_gY0go;oQMmln0VDV3FUY`)^DjJ$fB$UbMUqu9>cBLI91VN}%s3(EuuX^#J@O|| z$^+XFcb$vHfG#YX9(_9#B{~859+FMvF-0v@Ypxuf zeXO)Z<7rK-yh4A)QNYy}iAm7B5;ycW>o4JTy@%j_NpW8_YXTDtN@wT^MS#RzK)?W2 zNjue145hUHpLbm=b*;{;ljegDxBXLS4Ai05jEJ8Czm&sLwzs~PE6Ys`S_HO&^G|C| zwcja!mnoQ=n7aP#(=GOf0C98G_Q@dQpa*}s6*%7g4WE8wck!ieJoD=Vx4%r!sqWXc zJZ8j}k^wJZKI(oNnm&W+{g)tVz={uzC|7b=dbBo`01;{b4?n{l1qMctq{xYM$JO7? zbgn33j~ethuaiwH)~DKARz5t_bY{Hj`YU`VGs{S)hkRp5Cj<4@=<;zKayv`HNim9k zOFVt-fOStm(RtL1Y+A|HV#dEWE1cGkDAA6moT2hH)Pb`H(1%FlXKVeXiO84Ump{rFg=CWlSjP;_ z`Ovx?bv6H)UK?X}JnH;40v&c&Ck5pPNGxJbP1_&Oyy$Mu^iBtHN61R+$5KI?87Mp* ziRRL=fHgi#3Wd|_lfq_U_vTslIusdvsLf76_*axO`$97b#S86p>3w958+nDR+NXWe zk1^*kyi~EzF+Qmz*bp)xNxlwZWAx|-apC?GIXbA*B@rQ^gI+bHfqcI(yrxk4&mHvN z?BqFk`$GuT{@p4R6pi(qt`yx!*^Wy_@#AdZ*kTuFJL>~t*N|Ay_h%>JG71V>F{W*R5>2wE`Rj*CNP&mTX`1y)3gFu z;R7% zJ@J&TbsjV%2Y;N-#LA0DI^Ew)zQxH4zfB9cE<5$Q5UNfpz<2Iv{Wo_e+h(nv?e_(GW*B7X77%F=l#&*S8A4DDK#)!m5RvYj zp%ElR1Oz1%1eES{=x&ve?(T+R<{sYn{eAEK+|TFyf9iSmUVHDg)^kPPY@NYo%UpW9dE)`lP~NDFK7ieKg(G!Nz)lo}Zo!h?b+8tr3;UrG1qrA)yR!aB>KZ*j zMv(Ma%>5}iX9f2KyAVuosjxO<%syxbPgR0NzzBg5{CAIY#0pGgmYL0ts*9R)hTJ#g zlmRCe4?$h=z$a3!)gQZu((Nc5<6RKZF9K0eyR)xL<)7eml*W`_*BTn8F3PhW!9+;_ z68u)c@f$lj?CfMo#)6svTu`?0GOO%#s-F$rJg7vTEJty&JzTe~hyWw}KjBvvejrsb zI{Dd;>YpiL`sbIc;-Mb7c3cDAZFMqc@M?izy!$yQ5Ns+I$lIqof5-`H1=bgCi zIMd{Wjf0GiI(^yTJq=p^hmz!k$fb&JpR|4zUs5rUup^Fv;OQ-Sto!uj;Iu(~U^6eYG z4R!N)*eqnb$Bk}N_Yt&!1n9$PL1&}~iLX0-R@_}wB94852!C#3f30>8r2c4}F5edu zpb4l+MnW8Oa{o|pY5p#6l@5joj3?7H)4iz*1<4Xr0ZqiWt-GDL&ua@^8Z1vSq-tnt zZ0N(2{&#{8&j#%<=bKg|{@uQ^8)s|_qh5uR?An&&P3s!)^qv`JjIH}P-e&5ZgUVim z)>yvx)c{diaKvi@vK8JS6))LG1GI&fTKG+Uu98`b#xoR|)O(OQxY0EyKnIWz3>^NG zj6SHKhik5C+eyc*6;-ki3DH~hd4KjYj{`3adNVpD$8`1Le8$Dfeaj1`?}h=&X^d3i>uI(}yG zeIkyA$AuMcHJOqu%p$<;s-E!gzC+)3%q z@Es5DqTE)?V^kT492|D4x{vz%GfSdYWdC?1l~3DFHKSfljj>6rS0TOxh&5*}_q5^L zu-TX~EU!kg;}*{XnerA;K17{9Kv}4Ie1A_Wj1?e(@J+g9b3Nk*LF28xvX@V@xRF1= z<=S(jw`TBAVj%9vzvF}W&tT(1e{P$)>Kx-RbB6{;KDIh+ulw_ZiP0-+nht}IcXj=> z%ZL<~^XQd_XT@s`%oq!t_0N`#IpHJ`Q?$Vw_|AEpU;Iiey%%E*P7G%{n@aEHEuI@k z6G=Co`*6gx{=vHZS8TdPICd7J>yM##2rNVe+3LM|lGL7gFl!y+ z@2QrbF3XZBS{3L%zc)6V_>Oi)w@393x_u!i?B^{r>O~Q8 z5YGv1v5c@3)+?vnnZZ7?yzavJ|J^ALJjlqQS?${T-1>GQ;l9zV5T+E9*4{V&MYc}( zZCE4^ZtLC~gaPj6Nok8ILsMzjRDwf;-^FokFHR|dJ*_*K4{I748~OTV_!P-LQ!!yx zAsQ;`8}&h-HWq~EzZslfH<-d?dlO`RSfT=G#o1T_1^C&wW)8vDm zrBkIpPtS`Qw%4n_V8Af!uEl`j$wX9VU8*X3=G4dW-^nq_$8gaZ)R`P3KNZec6^<_$ zEJfR$F}-LhGq@Z4@s6z~9Y_C!A;>i^he;V*Xu3%_nw332&D&uu}610{+0Qph~v*o^@KWpBrDb8@U^MW2pgO&!qWZltIx5XVO_Z$&S>Y_ zCtp^~p*y#b>dU|D_|Cfb(;;;bv4E_)#TPRyjz6q-O+>6AbW|pOQjFMbD>2iCV$KS_ z=@W~62H}8hwksUei#kyH7^^p`OJ2_z0anelQkufd^yXr3c;QWBT|#s1Wl!3i3rLx# zutF(AzzY2Lo(d^GVPwRJ0=NNNu>Fr0vH~ACk_>G5aqN09E^|gP&Lzj?E@c81Di46} zsbLM`rSdfKuMK@Le?!;}xJG1R?^ooMKSRah%LmGL&?D|`hvlcbiUJ~BW`%E+R?<}P zq*hYtzB6_9>>dph{7VuCFji=R`19y}Vv!)0+HW&|V((g2xRS^GV9IcAH#tQW`O>Z{ zIyYRs{`K@eZa&8viJsy-5CH`8Fk`RDo_Wrrsg64(S3IX*J-; zx9X|iOs+!(%MZg5n?>V)lcld!*lP841NiZ4srEIb-a)Hh~J}3IUYugqcEF>Ob_uhs)NTw z)Z4hxqx{)vG4)28cnGMKUJ`r9?gE~ZbaXZqnRm7w7Nq#j{!mYae3oeHBFDL*i!c#I zt!NqS<&wj$kP5+{ZU8%G?!||Jcgy0Ie!3lKAp&1nKUDocNa~%P zZwgL^X*idUd^omkT((p{s65SkZS^do@BZ@*%*@Md~6?p|!2aGoQ{?1W*; zCEf`9Vs3ukaf(ru^b6&6G{Kcmi_AMkUwmx{G#N?2SNR-evJ+~q^-v-!f;s2*gsYF= z;fT}${FsB(_EZczB~+2`)y!o2)l@VsZe&261mJ&`^XQ~Bla*701_~kuVk;JIdzdWN zDd!#^FfI#2EkTnW%rB|@2l=g``BXbG<*uB~D2&{M*lUN-o&G93ZT{zkz)E`h0{UOE zFZ+2`Q@pP?AqcaK#_vv?u_IeK4PnGSOiPsUf5nr3!bH zyoJKO?C;XOjyyxlthydo9q|u-wk(MctO^>AK*yMcFJi4 z2jq+yRpP2br_N zu|5#ls%3}3he*@;!dWqbB;Ppv!c#w*bpPy=yCdE|ZERiZ+ z*OQ%H7^1JTX(f+)@K!HKIl?33F7h266H%e)H=mO`EI$+`5ONZq7?6(=pYD`p_ z@)G^07F_rjIkD`z_Iq^*c~%g`>dWV?OX9zKwc|S}SgUm&_E6%n&OH#nfMSaieMXq*FAq zc)_K6f$Zrm@)XIrE`pkROV7h8C*{O(Ij@M(Xl%A!5ncCoF}hLU6@kozEkLMlJ|Wiu zxi(pM-)26eoVntDl>@N-=}_3i*#u|9RqXzbhwudUv?utxHr$oHQ0<;1 zJRbK0PocOwO(!W=mCd|Iq&H&N9P6;kw+JXY3RHl6nlsf`5lk}p^f?IabVc% zJx%N1cYcUA+nT%(+sU~@-XFv^<!~)aK)(NpE zqwgDiyIbEigPc~XohU4_tvPjtlw}6hn8?-G5($814?E(*X71{|cnM{3N)mi|RoD-^ zh?humF6b^-`gLGe#yZ)F3I4mOyqrUe9&HYY{oohkMb@k&B#R2@{4*&H@PmtUL}N%F zJY`~ayE^P2dLJC!!TZBz1pnB{Ii5P8=gOWlqbjLMw=sKPHK4vUzutDF@XJMI3@sg^ zY&?a5rsw%S@mF3bHpNML6BN15jJBJzn1~l%*uzzOlb{n>q;`CADc{`T34^91YYbSmgNn`jt8$>1B-0c2QK;fyz($jt4~){C2tH zT}flrY2v8aFJ9Jo@-Dh)WwD@&(j}JjcE;nU8VR?PHG?$u0s=@Pe@(M3<~+M|HQq>w z2q^fWoPh66eYyl7k5HZyAn~GGx&Hw-SenxG*9?DRfc#ZV>WSFR7a+e=UP3mD>MaoL zt6o5Rk$-=333WAQVJ~|s!uojx=>Pa*vWutMG{=@UvG;e{Ak%=4A|Jzry^xJ z%+$^9!QfOoo~DIC(JnUCvwZKtBwqJsKR&~?501PK5b@cZz_ir z!V3#pvFeBjw|gu86dA*qhzZjAZOL`7k!Y^>Rwih!QUAs)dY-8VSy(t+C&RX8l zq+Q`(=|xE4y9yf?FVuFwJ^pd<885%RTR)3&z#WKL35@GTtB~# zys^4E83TK8F60Nx!hZY0^!_V5Sp#a;H2L^;o$wbSTgFL&ZbY0G(4zzidVzjpR~2bN z0VKp~Gj+C@5E@i{qyuV5l-aoZ8NolfCEK?=m^8GbjH+ zKX;)5%erBocqha6vu9A&s%euU?fTs3%)tZGVDsWRw%RoBTChL<5FgHXu71_y?|xy% z)LG=c`3_#xaUE)i{mx8`}r^}0k79`vaRxd_f%^3h%%#s zd$Wygp%8d^P151S_Oq=_W_jErkNzO`!Bo^%d(T6b5N7;2N1exJwe1sT4b}k)lvXS% z-~kcWYg}tg(#Y8ju^TMf<7((81dVKsDB7@+dxxbiLC;%@6(E*9HgHZr_WV8`vsu@N zb*ZC83SHm$S#O*B(D4*8ULA-@vG#^v2F7sYC%8CQDI&zr;B5Mj$EduxYl`3Dj?H;V zBdt4X1Wm5ML1j3b#`}DWXI~hnTa~IFzfgAa74;GCw4y(_&qoKRvf|GWDQtAX_iS_( zCJ!>F4-AtLwg<7@`x&Ga5?xk~U$E}=y88M;d;31S98oi3PbOXM-kjku0a6;ELEYqL zLd$|w(WCOCK;qjXSMx1ECXX9h1#5182cRYReizy3DRKFj)Wl_6xu%q&$G`rdfUa(H z?gN>G&K;046gESwL2qaI8%v6CkUUggO%OZeett52+xA+E$i4>Yh({8+KRg50pJ?BA z&O%HN#WLU>_@4HC^cYd!uC%5YZy-nore+<`4Y=k(;;bHL#M!b!7DVStN0<*qY0RV$ z-I=~g95L{I3)la?{W{=^*M%cDge)K5xeIoKmD`_k@x%l9&+BaLl|}QwGO?v?c=Ww{ zGf3Z6BaR)gRqVbRpmqbf%~NwGmiR!UuW;N;j9jvu@dK2_^Y*FfpR!XIM`^sRKv2N{-VDbR+29k(rKmxfgJ*o;xxf2cY+kCt1f%N+g8txNR*xv|D}0ZYJaALE-xh@s zdJ&)Rr%w-bv2Gus2p79E^2g)Oq7(3cnD~I$ygRETfDX`6gXf2_=T5`(nPDW@!>dYQ zQA?A~+u-C0{oUZ^!jcN~yuFw>$T1F}F|(pC_V{Nop#kb5pFT}@2n#Hs?>9btT;R)Q zjB^Oe!dDCny*P4cm;BvcP|;T6PMfAMj3?F8e-n%+Q)279QV*pAhW#m@Z_N@H-8I&< zZbhvU^;kS1)FH}wyojhA9@l)eW156GV;D^MWcxl<10)YMqspg^=E>&1K$Vfd**6NuAC}TemPe#$ z{8QBOi9l`$Y&xh(3-g5XM>X`O6k%9AOxz%r^$)<7%f;%k$Nb!$*T9q5Vh z{mhfuCOW#5_P6V{2H0O6*#448ECu%@L3#mC)r}+~bhYIFcYqP8#GXSjU?o_TDKSe) zMr%7LGxMREI7LstBuk=YF87}u_ztcSyX-)L@_D(L%^5d#{y7UnUVtk)`}GGytB7KK zw|Xzx?Omwl#QtdeOhk+)*17ECau2(Jp_0Rt>hal>wSU%4pz2yM=%0y`+2^bCm`FK3 z8y%FvQud^I-MFhxL{i;zeEZ0$G=P#$ymHjz2B|;g&<^JVZ(<|~w!Fi3u1+UsC-2O( zVbt`e0df~4)@aC9T$65uC26lmN1H4=%b-&>GjesfiLRIH&X5StL{<0Z*!q zD4YHwU;(I6IgLKbVH~JSSP$VuJK?c*uX0puK^qS0ux%}P=3(jeDCo$+FDpM3KmMzS zQp2|yMTgLcSB`?&Sr@qu;@cV1B0(~!DZ82O+1%YPW44Gl9A8L(?G)ldy*nlIg-aDFh{)vF1lMvyA~xP@oWP3Ap_!bqD$j@Q5s=Fy?s=}npq8)owOdA zi;F5gnSGhp78tMWSkjrU!t@@q;Pn@JkRN<>D;crVUv6b4l0uNgNN}EfufaR8p6cTv z8ws!sX*j`WUa;zP@Z{QPUx9c5+HGC~0^j2ShaoQ|lNe^V8>81=zb<9~EjA`5GL4hc zH0{y1MDV#k_S=pG;%i9Suz$iqx4%iAmo~O4QrGBum7p>I zwDw2GJm45_Hb+%r*ssjbsQP$eNVrMCytS?tC5eC6nTvneD};B(S-jpRrX;KdPwhN- z!pE&Yd*n2KkP1b}0eT;r78~z>C*q7xlh7vw_JArFx(h;;{ZQW}DgoS`gL}VUau)Fi zKqfMO$t89HI;5U7oe;w{`@cWn#7W8@&=OT1CEg&B4IE0nARc(0Rz9J%lg*Q+h#DRO z8AARE?2A4(_8yx1u*63lh<|?=k%GE9e6&2a44rj2U(WLFCxO{{(77u|EBvtJsT5c1 zF~;$Twd@(T`zd@Zmt9(CIeWD~eKPqrJ-HpIbv1|Hci7?Y{kuJ7X-gxoxB@4{(}UK7 z@cXZ5kPP@VO_1Q@90DdC$6ec~bE;UV8QYz|+)z#Gj;XrR4ILM|dQu`Yd$ffH+(<8} z_y-?@r=N|<1L#+1fs-mGmwT+6ay4V3GhJjs%)Rp-nt1^VQLYEM6{6L zpt+^b39`2c`q=r8yK|^^uG7GN-WIb@OeaeUQAPVgT(iQFdvJ}N?HmV3;`5}An5?tV z*p`?#SPF^CDql{!4*n(qe9zG~t7m>iRKo^CuL}P9Zl9$PMlErk9&QpMo*)R~kcL2C zsQFvV(#u9Gx zE(0RlDm?KIq4x4H0OwOQ$q<=zKM zHnaT(XOm)dVH?@*0K`C+S3YRLrwE%+tB@{OHw+$a9m_3z^*M7$uPw$>@`OXytg}B` zBshKDP6NPN$=7?V5;zMG-@zyAcXt|B=$@+LNa}E!QGw>y=ye}_iQo8007y&cXjsU@ zm!CD)ih!h}8<5Gz-1~L5f9MrKUt1Sw(bEP{p3QKj;TGf(&57t9L7hCpPKxSU?2`kw zEfQ({{RZOGvK^(Q{)EM^j{Q}**SSBR@DZk%O(zid@7R!7!O*T zq7T`cURICadR6GcDp0=^7riLLag;soTwTxP{P`~IF*sAUfg? z9c%GKIVxF(MlGN|q*L+p_V#iBZuuuq{>*b^y^>ac6K!k)BCz;GOtcWx5U!zTmIZ_o zy`AxLw(PVQ>L2gTBCM?ux7E!ctEv#Uc4*)?yUqdKBO47=cer#Hdilp8=vi8mT$;?< zwfqnLR0ki+V*VgbYFN_BpR?8MiV=b1VvPf!>jvSXhp8YGIwBwOciR;oqv9y=QiVCy zkZx-KwFc{nfVFPWbzr^Qi{j~-y}Tl%E&~(kSy{?KNul#tNdsCp0)pbujoSV#i?jwF zNXR3Ot|Y(E!m7tc{QK&86Tw6QMhbyML!a_?}mj--=SL9!a?WC^a03{}+pjBZcPp9>Z19r?KI z_BMSlklrgY+} zE`+4GgeLTP?v-c2nv9d2A~o`o;Qv4FzV{++`eZot3T=oRGTcmO=U2}4+fizeU#pfW z`o>O$*)un9xAyNOg*2gKUUxKz(h=}$Qy@jyV*$Ng zw~9o(`vN`?XR7Pctw>q>GZLEZmIl2uzi(4txJ=OG#}({Ja!NPH%r{WmUqOO%9n0Q} zDme4qjCbJj_6UohVp}Za@=wsw>{YUMQ+3DTjMN%I575Oj=8d+U$yEH$Fzhz|W z2(i)jViAs+52jLu%uT-J&kLH%mZ(dki2|L`nj!K<;tOMJyZtQvV`M|><=logN-`X|NS&@Rt4z^xweItmKktOv$QY7Bq<|0{ z;SExwd6&Nl!@r))m}VRz<{?O7w8Sx-j+nTTRD0^d@Y_93q|>+`LUj6F-pS^~`R2wsY9;GURSsFbRW9p8AT6;>$%78 z@aG5`k;PThi{EFGna0wVK8Uy6@Y3ygfc$Vp7(ij?1E`owjtgql5d`L*qTvM7Zeh31 zVoA^+cG=%?%4x=JK{UoAjFR&;pyJO49}GWLW=DZhXrcd!+`aVY@E6UnGr@B6KiQUP z(!h!!k`#e&e|Vfs+yApL>E26DP7U^eyg|95i|K1`yU@MkfyV(6?6$?rM;o@cXiCms zxWHgO)7P{LZ@mRXQ_o9cLbNq#omk(jFyLnE&Te!YPs1A3$pJae zsVDJF`P=m|pNZS7aJ!H0|rgr|HJQI{o-hhzY{jh*jZ%lM*H@BEBb+yS)#np`+B0BtOrkC#p zTWSzfRfw3>UKBJqGgoZepDUg0=Z2>{fBVb4CtO7Z+-ma_u$Xm(Sm^RNLrrv z@aaHJCCEiGKx#ZmOd`2z|iip-fZ9awOwcb~55Nb8RhzlbDrf4;YO} zsNe|)Q8w}2F@x{_@Vday#{z+OOOnpUb@tuLk~m0`Xe3~tR_Vqc{1S=5PnUTb;2m(Q z-zc4Z$0B5bsGvc8`_*gPC3DN3*s9HnP)}4sv{BR7xSy1Zb1QT}4tVr24kHyPRDLw-^}OLmi+6L&!$wbUggh-WCX5r=SQy1ZQBqA zr1mUJ8E#)QKVetGGs?^lH%HHRS5J=f%fg%4ek03+bkJG~lR-%WT$VWx1_f>ffG_pI z@v1n{|89nbYYdoEpw(#BR*q5~h#USm#rK_)=Mhg z+0esJ*UYOYY;A(yYTr})SvPm~{NJXE3aJ2|wJOyi-~B|#`r9(T5|Rs1JFBxZml|Nl zXLnAFUtjN70CI-*O`=9hhPAb!XE*5R3$Oeq+y;@=tpMMLoAgdkO^(OSU%#e6!P>gS z%vrmy=@`!cT{0oTeE((+cf6QA-~1Dl3KtmEbBj{Dy3m-e_X_SO7vH^cGP zPblhiz$FX^%kgyn|5sx36UNBar;PqE#8}z4=XR?1@m)(V+eP;p-IP&ajqELn-{tHX za~jIl3>ollx@i6t?>8?k6I47~yF82J8Srd>8bnyarV%%A-8aBP(?rGXsQIpd)kK8C zGmHNe+8{416rfEjp7O{l>m$kls`xQuJ-(2|z0}@9hpgl0SNsjKMy@vZ#*?J}E_U=g znqby(_I^8{X!1DfR9L4ikOb(toBp@?|GWUgH1nk?nm&nn&kXGKi=v;c?owX~J)#F$ z7+^x^Qrf=cdi`_FDWiucJ}%#~Xe+xbYEsV{s48y<{kW(5L&|+TJMyj^x1wa>M;?0f z`j{`(5m4$V`c~gBjLnvKOyCAS9H0G#XEkaO|MJv&<-S}gUN<)I_Uf|AdLbPA_1Y~q z1Kj_+&mN~nTElR#NiDNKnpI7u;)RJ)OCR6CzUYnO)jqF!LQK{$Jc- zcZVe%%Dy)8D!$s8G@q*4WLV80obp&MK%YaUKAAZLHJn2^e(gMv?AZK#vjRoiMC{qC z{jj?Qe@=(Mwbb|6Jju5O@!3UUL~* zN715p_jjkGnE6Rli#2tVz{KMC-ir2-Om$kl#Yd{Cm3wXV=-~Fis5g`DN#v(NVG2Th4CsPxbcp9 zlI*BX)3qnmk}FKX;ehq4l>@c1|2m$QTxHvez6)7?iW)c@5!Njis8)> ze1wlR`Vr7*Z;PhsvrQ)g;x8S|z)bfV)YyU)7jLfrMB|)P{Lr$c(Bc{fTc@P3#Jf-k z15byuT~cL#&xt@xVz7!Z5w9=TYpzFMA9~Pvv935Z&g-gm+-JNpe!O@$N8=+(q64)0 zwS6fQwz*x(1AL4Lno_vz#K~NmED*er|9?Xqc|aQkKB)nXuPt8C>;F1yB|^N8A8r59 z&gnO>W^33)x>r!f8GlO~syw(R^DY~bdd7T;n0xbNUDcLl|dX-iuI&V_rFZ2qE zPaRL(PVQjnHc0Hq5b2gx*W#K$-AEO#f9_1b3f4*z_uxi-^#)!8zIRva2%l+6Zh-&) zIXQqU;tuFFSTdn2%{+-8--26bnba)N06LFl&jPUKpYt25UlHr`1T=X+)>4)R*v~x> zWHFHk0j2pTEGv8cqj=E5lwI0@#r77RH;e3}QHU?Dl-$n<^PS&GLTbw>FY zLM`~T-iwtVzm~*K*-~kL@p(!e5XRh&{6^I9d%5{w)W`G|+uCz`rf*P?82a|YG!u#} z#xwI?X9ZZB1B~Ek8o=Ihkd%5<1>CH5$OE1K1s*Hdnq%p9VZ6i8Tie3i{)>|z^Hi_W zT5#c!>S~6jB8Ai>=py2itA)zE3q#JV9+c>ELWbk*UqQhn02sRu$)8Uk-UmJ#X=1m5Di^aq3R|GpH+(;M+uXDwKyE>_GHi5bH;bF*0d2`mb9RQ@G6eLLKk zm)D@ExlFu{`-|G&kqh`9)pc^0gRXIgKU_w0m{XS>_5jYCuJ`XP3f_!k`Xkv~n@L)X z=fk&ayl?TtaAxEv&?sJ(WS?FN{-52>_XH#*td_5XFg4i4Z^;gvhn}*W zICkP`7WB0eNHvL~E?sfv{I5u${)?*j??T!VmbFafN$h(%oC2xNKi)8oS)cX34hmb997<>aZ`R;af4&C^N@-lE z*~6D}6RTbWZOTz1hc#vus3Op*7Hn@7)&5s~>eAHzy zRVpO7q!9gcDc@^Y$0N0sLYTv*h(1#Wua~-#4?FTf;)Y&nrbc;PtD|~D(`j`SY4w#Y zGW6-1UK;_&x2@ScMv-G0S_Cy0WQUW0*O`V}aU2YUyFeTM5bt*e zjp2298@a!wk_~?9ef$+o5Qq1YtptaS_dr`CssKMQ5)=uu+Wn_N2df4`NSjAkd5dcC zZIbI{eW5mGII(JDnrm|<^^KHQ%xTO=)@6CjCI!nx9(~1M?Dj$$Y(t#zWMO*2d*NQZ z;0~4GJ6@IrD2NvEb0$lg%g;bFZ*ZN_Acr~rhegzoXhoA;<`A#MK}1VH?Nr2P+UJd% z{>;y}w@DzpwLjQi)S7OEP1rl}YUFGjdJrc0C z%8V2)kM11flR`ZgN^~~4pwyRGgfsS<%Kv?|^g37_PMH4!rZW@GGMwC>X=&$?;9rm> z&pELL4)_`1))~>{iyaHJR*CX7-$znqlpr&&nzyT!2p!A_gIBG4+k<$3Ka$kx<(OS6 z)}S5e3K`q;5*xmHx&ZFWdp)o=wEYh%1iZS@K!yHG(+(7-i>K@ZaGSwx@0{d**zlEy zuiJyH@+-qkc^}@2#(9Y^;_px<0#qNa&5b6g_FB(j^y8IWi}6lI%G66eH1D)Cv!c_R zV06GOye_QcT8Y7Byw11QS-&)>2Cslj>hya>$CFvc5^<%3BxuKic9U%%HJSc6R&s&l zE4|DChnT}hCtP3K>Jb-YXCW3f>j7p=M`t)4S;CeBfjk`FX?qK5e_3=3Ut1vR#pdl+ zgr!U>pIC|q+GHs&Q>*mlyYW8y`;Q&_<&R^hfYmipnkQ4kqoswfwm)~SD6*U3?|GHn zbQIBun;As6_)Tu3MVIRJxZ*|4$6G8MeX^nKnYyj^?W_K^V;PwG@q{kiYd`7xSXJ<( zP&FX*1S& z0}>dipUlRfpo-hAJANLkvxo8|epG5eTfX45BM;TZ$L0OnpK}#cMf;XVs2ZFWWPqCx zsptC_F$SiV`$wlEYhWz7l>pd(vDwr&ZM3+V!?cwxGX5A^GETuyEqKqjYBS}kGRO4c zvU|&Kd;5*rP$&H-5$CVByZy%6S(wKwuP4r1om<7!`k8!^is>$P%Il44|7$ybx6*RB z*4C7jdEc4jZEw(8Is64&oK4~@12Q*nolei|rO7Xj6saA^!H(k5_nk@RvmS7=xhG4+ zE=}qI8ZcDg?H5X44~JM&K)JczKAYbjANs>i7Py56<&@*fz%*0h1sezOSV;jCP0wA1 z6K771#9t=={ZQ~s0nhyum1^Fp6HWGS;R*qv#C@+;CEqf$^ENaK{wBtcnvm*_-_@fx z7Uix}?}r_B-gGRbT+gh9*-V5MkBlZZ$+dlv2;qre+c9(IsYxk#LP!FglKo}SiL2|J zlWbY3ncu&N_EN|#3iWdFzaBX+sw8GCUVT+cC>pdvl&^a?FWL8=r{IoMcI?d2MxEgf z6AZuciE;ZQ3oTdfn}#b8BNsA)9bS2I^SzL$n8>rhX$gPI<{AzyO{ZB5jAtt1ZsSw3 z=xtlSTCYmK%CU}-AVPmFMX9$Ur%WxiX_S*LBNU%0lgp<|*S|&JVln5W44;V5y_nGH z){ux)`%d0=3^OR?Xl~XE)dI5yI~|yu6laI}z=hAL!3izvDSUfHB>j;nXuv|7z!9u< zKU<^EFNxlpzA0>+A|pvk=@2|9m?Q1NDAXB#gD#2LyMlO^YRA~rKS~&)6>JBgtw2<&7C^>aWoV@mswuajVpP`PmCp&(Y zUGo#-mL-EQ@@BAYL^Y4jjtuKblCp?5wmp65qx6lZywG(_9KIF*=@lUlFFPT!^W8f7 z^4mB9kQ&qw4F!Wng8v>v;fuV;-q=EplcA<xlb{}LPq%+P zfAT{H<|53WsTIEb_{Q03-{0sFoybk9Cgyb6^m}aW$6oWD#Wt;~ru|+FX5$Gzla$EY zmL4<8!6rt#Zx1Vldnn3(AQfD4GV+EFlx#1NEkZtA9i3)Lw4HMrE~4POiWL_yDLZkI z8ELkV$!epk$PiwS{8e8$&)UL_A>I}dmHTy!LE8qgMA3kw2d47=bOP>I&UYx$3WrjbsCD*T%4C4%_!2pc^apam3>w znqbWNFZHhn(=H!JQNG{YBY}S2Nu1#mj#IYyhOX66tI>~f)Nj>XG=Oz^1!G+^uZzT#I;-(=Dj2Jt^|AnC@ksDb?Z6^L46!glw(N{k zRaBbrwD_e-PfZTHSyG^(lm}=HU_`;irovfH!w106m(r40E{?E8$93a%GN>+W_D>NE zZgH)3n_1SePR5^X3m>z9AoXNEU7pETs619=Mlt)aN^Gwndidx`S&Eb|PJOxtZt(%H zubEKw?UQ2MUKtYaRHjy(5RQ;rdJSJ2N(D-PiwI339lhbU#<0!~`2u8eK3s zs0T0w7TVG+6q{CPQWw?Ry>9XpcDOM#Q2j*C9 zaZ;&x8Gp&Z_}erv^z)ziO9QRS$Uq|3RV2Gb;FQ|>zjO37P~YbfrJJN&F5uh`r?>aCn|U>+gHUUx~W@Or(6j1xeuIo%O#IP3oe z^e}*Kk^0d5Z1!}V#eUkk^&mWP%*n%t^&Cd`w1aTKz1`l>1J7K*bDXpjiQ(9yr@JR|EHBH$RO2T||CCUgEAO%GUoSf4IwM}b>A_ojZ-tZeM zcJw0LMf8-4v+qAd5c)4A%}lqxE=YOKraK>rq^ChwUv`^8NR`e>jLdO!igtAa4fRNq zEQh_*MyRT&CyRC**wSNDeqXdr`hPN>+W+?P1Idigx|kDVzLlmPm4|e^d;~uPj_y&L zzBrl_MrQ%jC)?w6ZXA^3PHA41cz*6m<*mSo*E5}YXE`M^MjK4l+cd6A()u@G_1JDJ z+O$p=wA~~ljVo5BVcY+8_?w-6o}%ZZakx|3wB8mRk+g9|zR;M%=XHEBdm(`wVD$6j z3$DSnd+e9R)xyIk7ymr`C~VEF*Itg42Z;MP*py%K9@u9PFb(^&!Q(+-N2(2-5xWe& z$U9LUC(P`WSEpA8L6HR2j7blxG-kO%Y-#eGRKuW75QA&oxF?*#H60p^nhp`zs3cSz zUAmodyZsx~0sCHIl%Uz`%S(atkz@H!>x`3AqPx>gJbWV5eW0qgzW%p6jadagfp)3< zGdY;A9yFG^NPy>=bg8kcU}7y7GlMQGG~_CAQGukr=R}md5?eGISESBO8_ifVzJ`V6 zo^Pq}I;fhLFUyZT;(@1=l#NBB5!f51gVP~H;MJn9dL5ilNa zAOAkYptW$ido6S5jio6Ql!})}{oUY8Pipw3v1UV^=)P*5#1O#zfeKDB6Ab)DeJQukhqaI z0NLN@zs0O%YCE-xigJv=kV43=j=rXklMQnv-V(YPVSn+wf9DHTQ0*re{E!hFVP?-! zli)V;EI5kY0k)r{@n*HFAi+(M-rKPaFUB3s%BQ`<{#%J;mqboCSx4Z~ek$@;<^!;g z$ejq}1(e~kqlsdiNuVEmX@;r9YCR!RzxoMMrD>vk@OZfhPJ_EPw{?Z!Ns z1@}%UkCgFAG5c#DYyXZ7SRCWi9iayVKVI8_o~2)T13j=P7bpC%vrL78$VZR;Aee^~ z{x^06C3M%}bEyA*D2^f+RrRJlOLG?zi9uYvWvWk1DCj!Fj8}inN|ScX37`8~>`_^N z@Dcp)aA*iNBJ9pv_kZiNjufO{*uyI;mD6uhmT$^_+h_g$U8d$cz~H2GQRY>2a@QPP z@Z}Zf4BYd+(Xn8ae5&G5wK~IxH>l0ZUL{4ujc)!t1;*^-rjKmy(vUj^gLbJrbHj{M zlmU0U+FD*6+5!S_h^7VAqlx2X0eUlJSb-^O^q7Z<7}$_90$_DPf_jWUGyGXB6x zQXeKk8sdl_G41!mzU>#z`U(Xzu}hy1ixZ8Qb>B2fJduleAIB?g{eVA;35<---J8UX z!J-dFg9iC61i>L4X+HE)eap0Pj&>g5>0pUXr~P*yCvHM=;2L=^qjzYE49_Q*CU-$Y zsk6bk8VZj6_r0{7&794blCM1=lw$byHeJ1SrjD+U8eq%sNt7-y7kS| z;oA?DVtq21i4U*UNcH|i&Zcp3m}jFFM|N5K1im(miu?W)ZfuUmHG2|=^1pwwQD{#7g)Lj_D|Xyw>Q6PwH|*7!ese+*53zY@oUDX-$#Fq!qc= z?zwAP?K{YCKF|;*+5-BoP6e(W*+fcobpbH9_JYGG^mL2VC3kfnA&JhmSjUyg5=oO zRc=ECJV)E?Eh^g)f$H=1CfunE*k%w`5CJM}YLc{e1Fkc%mYmjt=Uy?)Jl>(V$}4rq%2t~%9=qTB3ZL5$yOn2wi#_Ip~X@dlzlJzKGP!E_chE!8Z(x$ zk7Z`==N`SE=ll75|AXf^-oH2;hjGufoUikBzLxvC{wN?vbuEpIPv~9JHJ}7p2ce02 z4&&qy!p?!&?1K!Olc)VxZGI&}5+`N;WV(oPSbx8!I#T)$Oe#N?GCNrPX!BncQu-h? z>B2{;$88W#fxfQZsgtnMzH>k*;hyHBcF2|5OY^BIU>7ECW3pl9B#iUHX2ng-c!t%F z)h5fweIE`@OuhSFRxK6MdpAW460qi8pc%?}=lHdb&8`bRN2MQ9jeW#_0X->>be||8 zBwVka&$lz$cUprbK41FBsg^@DI+)iVK|MyAL2>wOX(REZn@h8*tcleH2hBny9iF^E zKPQPif{Yuq;UGe7P7Kf~BUJUDVfa>>$P(wL~oWXQbl2zrB_KudbvBE+>b&L5{No zlVbWxFFF6g)6YbfqxFY0$!d(y>dxWO4x=Wmk~|_oC-Zn_9HkqZrM#MvU-Gk2ox#SS z@Nm$;aop1YY ztMBZH6+QY@8a#ux!aKQDDp9e`Lg=QddWZ$Yj?Up930{${4s%MipLc9M1?I87<9?g|7<1?%V0u1v6PN}cXSDn4)uBeq+01;c6q;ppN zx++$^;NQ5FTS)gF1O|x$?4veKS>}Rzr>tuk-?~(CT2axJ6VBw1C=R2i?{=KEl7@f1 zfk7PY%iDo&h|7-kyyMO8{14zYpTg}u-MrwP%x)Z&a-7H~i+lnXjkI*nXqXpnHgzuY z&(5ZE5MCRyUDZ?^Z-HP0P4qHP^TNlu)VcU%KNU!vK%-JxZdXQ+4BC<4@O$YCp<)rI5=naj!G4dV^f z=tq?b1Tq8 z-=%u|8ud;I+pSEx9Ofh^EmGuoQW4K5GC2gdw2-V@ORh+mNf{b8BVO;o=akVO@mL;G z>f~}>^Z=XX0?ygLzo?V2-dpB11z=^n{A>hGbGk-cH_~~kfrP(wVDiK~O%9^wr)s}M zX@p4%9U%L}7kk(U`TDj#5p~?a8gIzm{2>U$H>e-N>bPvfZb44rUj{SpOpO)rwc4GU zl(6-`YM5v0kzhjVxPqwNRPo~xFXi}T+6ECev7^U%tfjzlUoFO3U{f71DH3H+GVJU_(WK` zN|W-?uUf}Ojz|5Bf#2@8vI}@tn?h}B8AN6ZC{ zMbM<$B#*ODJpxE(=US5#lST|OGz;S<4@wL@GoS8!{skI)!VBXm40DUx!1MA2st&kE zo*Ism)^^+oD?wy5uf%UW2sg+40<68qw9Pjh2g4tw%l^J24D45@3UqA)S8Y$$*gZMd z@V5Lo(S=d@aeJp)<8K>qS z4FV^ynIe%+%=@x8+I=0E7s6J-8#ikTUBVKMZ!`wk)VjZK@P6LbN~-no6f5QMdypVg zTIhTB611$ux)@(SK$?Y8b`oDTZ~1eSHeG923$|`w!Cza98hOac`_wT7zqF8k+k;W_ zXLdmuudPL`%^lWEHG$^;{j8zqKKHGBd&QjS9MyB%(`f@~%Ub{pkG8#s&?1@{L*64q zXSvD8D%9Hp6YRZC_?I@~pJ3p!${}aunalbOF>%eW74MwnAT?$Iz3C?ttJznopmhF& zI4S4Unw(b ziDBuxQuGqF?Pv+D%?4YQFt*DgJo&f12b3{gDEZ?J3{$S3%2t?z?yioSuL5bVWUSaO zg?mvQmO?D+iR_;T@?@0ePszJC^nsVzl0kDXG;L>Pn!EbGkjhW)HioQA90k~f9uG&) zT$saAZH2a+L5FQA?vEkqGS279DAtuWcX|UL5$F2rE_eBW_n@aYyxtJS>7*~Hg6_ou+a1&uYT5nX&yE)U=faO2KTmHuRa>{7 z)!8a1`pl{oTyqr!j9=up&+0~5jJCaF`_^28)%idM{arV(F&Tn@$?;#`h#$1xa+-Py zfq}f~5v6+4+8IYjM36(gtpv*wONauy#t+o966VDsdK^j;1$N$Zn8{IYPnE(hwv9)t zB=1V)_!Xsu$^Tjiu?|Mgx3D4B`P{byyb7;Mjv#|Sb^4DrMbb%FE>bh#xJDoPys?@! zlroPUwS*@BNditE4`W1HBO+HQDZf_+3yRlJe|u)vYZ)gphOf<2_AidZO4rMfL1(gc z;~yPxGX{7ewbh5Qmoj0{ClekZ5+E=Wx!%wEGUYW-ZcV!w8l-pV&%W~xrFVE{wYmBo zKO4xC>8OJaLO?~hG9}CeebFXaZ`$-wJpFWR_O%_nW%PB-v{%Vp=c%6QFq=W`)%ik^ zvTK`>fiKQQ#H(MDeKB0&zf$By9VHT99un9xrqYjcB+0OR-QX~#z23B)?PILk)>h9 z=^jehL%17k;LC3=m$DJA8KG9zrO$)&?oK%rcFFmi3boSJ4D1fHNQ)$Iw<^O0IRm`5 zf7$~=f!~jEk-Pz9;PG`zaZ(_3g0xBV8(~vjVUvAIy>56e(uQ4wkp$x*ztmW^DR~%` zj-{xP8RvaBJN(=pW}>f?XK9s{&ei5m8L@+fYd-D>wds6d+#vPr#;>P^>lx{<@ndD= zHNT(km+W7lA8E_BrxZ7XhTpU!;$j)ve~kU}Iu=)5`z4Za>$9er`A z!@?$YGyEprV?=2A=igCpkm=l~>ss$(Y?YoUW{%Xzjmv4uMtq~T$Vietpo%t@fb43R zU*QWFl$$k;mZqPS!Tx&=Wi3uP_=3{)^wzi5@@p2sQ&jNlph6p1$p9WgVI zyN723iQA*@Lpsd?+eKb$6&ioYF1g)Y*M|i9v#>d+wF3ne1>AGECRvYy$_T{+WL%WN z8r{~~Md@Xcp70|W`OfxAN?0Ws2c+a|%e~^!DBA|-< z8f73n4nA47seq|!Z&v4v!ApEvQm#7z73n6falhV+r{B(52d;+8pEc~TBcIyosO<<>)Wr=!!(Dv_bD{m z^^EW9S|ZK_lL6dh$}WIR+NVpz3Y5wcdoO}eOPRarm(LUxfr!TRreq6Y%_22ynfJvo z)VY&e^*(rM-(-P?NU#X?)-X?%=t zVc9vA__w)cVxM!6E~93;`%?_hy&X%#d$hWR&n#~-@;n#UequEMCk4MP&mlWMqO(Pr zN5?_m;g?B+FQ0h3mL$$LVQeJPNH=g`vTHMwOcl`$w}fBuPHH{o7Ex0uPAF>EAAWW& zu^>4Z)A-`+mN&VUgnFxx^!Fy3UgM5=KYRDNjgSeh<9<+J^q)=V{_>~{Zqjq@VUd-x zf{Ofy5f<`kvP*7!Duweo>~ArslaJ-Ki?NsVO8hr4CMrAS`V4I8d_fN?db;|LQ;Rv_6p){PzhM>g@bb*t3x5)l$M^62L^<*)117n`Mm zX1vID*CZ4U92&70Nw%>m3R;mBh8go-2U&k-sL${2bN>`!Uq)(*Myc0|Q>p*Gn=D}D^`~h@WdkDs<>jNujsbI&1y}klVbsTq&A+^ecVSKOs6LSF^HYN-{|yB1R0wao&0N6nefbr?-4^)ahROosq66VUD8E=|CrpyD zeG;;6D_LFbxrSDe5mfLDG^yohjFcI-$b;j9fv^+YZUaV4c6`@>ORHd25cRpz1;W z4l4zJHr4R?JXwoQHLn)(f^kKdN!n7AUcjqI>+Y*>@On^2+~-UeJI0_Xb~LSiK2gvzpO;azk2Iw2 zU!b(U%43JBV4hjVRO5Q)3k8+yfb&dg@i_UG*7;g!rgs;hSlhqjIG zyz{tKL=g;pG59)5;?uFHOOiw}Kj*yE1gE@oA&g@;gPt z6(`Y0R5R6LKj6N*iHfPdn93sQSAZ>ZLjWRI{C*(r&cZO>;5xKwm-73?T(D@8!wXU_ zLZS-U=O|6U^Z;lIP`I6)OQc<5YX%ny?Dcy{JQPogDM@C_E^)vO$R#vmzyMDD8eY`G zVf%i=ebcErT_~V&Z$LTfzW)!jfvqbcQ=W4(kSl4)%HGAPC`t*u4kK|g><>y`G{T*l zM)w-trv3z8o@z@9tr@x>d4Kp>l4fKdSc#_* zyY1X8NkL|^f~@6*Za=|fEeDS8D(|WU>yku`6_;$h=HK5@R!V03b(~G$5qLKpfs3;% zIW7wQWfxC+tkUM``;ML80(tq9MV|61uz2SWKs#@#_hlekI>By*_@zUin+%-iP}kVH zLMXU-?Hn381d0R8*f;x`c{?>B-&tQF7XP7@(_Oalm!SCWzq~|RuYW{{m`p(5C#AAG zkXe=xr)pWJ*6EnK3%=akQ83P0^heHmwu=Y{Bf(-)Ln4q|Aa?-Da|jof~XP`K4Ev zuL;XCf6OhX0ca!a(MUrsC}bFLOMaEKFwLTMZCWLRTkO~&yV#;X$52h@Wfy_w;w|SI zbD(43TH)u2>L>_IfRhK3|L)cPy@>Ec?*}zO@#eIQxtYvV#P=c7K^gYPWHm*4eA ztCSx)3l(uV9In&>uMJNRatoUV#lRIF3Py&URr`k*DmW`Ca5 z2}0#`j9rq+1|;pq>)IDvy{_-iJ3p4In4M&|lvUDBq<3jhtzv1~rRxAuMSy%OX`dCT z`T^=(57ylsWEyR*3)x)xUHKq~aWgYC%O8CWnS^#1p=>ZPA0}sVwvW$*lymTOpqAjb z!o|3l&w;^bG)r`;vZr&uqB)8~o1j(PJH@-;bw_)Iovgm&0w_~4+#gKI;keDF+ zYQswZP1#dPvYg`Y)l=PI>v&$>k=!KhKvU*L@wNTHa>ZCUz2D99 z?KcEmu%YLzIcqsoKSl;JrNqeF5+)G4BzuQ*u936~L$#8IpuW*V1JHMz_D$ZZ4=gR@ z^_3fR@K8=fHWZ%owp71%4L2xIUZsv)4uIHg zz#V+A&BsQQILFRJEv3N`w$^f1!yUIjU$NdO9y9-paCmlBP}Pd)Ok#l9ND{+-rzX!+ zl_6U40wzqSn19fgmpj4*lD_K*DjuAZfikAA=s}{|;f-&e1F^BqBIb&e^Tlz%XpwCW z&|clyP0*s?+j02}jZHTeCLNQiiF@?#cVkhz7$35xfd&Ofk*rJyyu)7Y#BRi-Mo`#zaQ~;qoy5I zp`iKU8sPJN5K!_%BX5`doM{A7`M-yYbKdf@I?MqKailIDGjoJCd;WiLkt0ZvEpslU za%67IH{D6{sU&lRB=pO)&(=dy-llc_wEZH)cH_E6L;b{^5(q3g&NC9LzAM@D#8S@Z zJL%j(Hi4gM3b?lObNpe!vcB6MhL+pfsnn}O0ITD^pcq^^h|E)|FV8cHME+E7QB|tS zd9A+iu|elTEgOttUsW9;s43s{#XKxz_dJIYZKxP#%#Pw0pAy^x^+ASA3AOHngHhHSAt} z@+W@?PSU${AF`+!?U-lUZhKhBNy=sE<3mN+ulZMA_EtC|s?S-YGVbt3fQEbdi;Piq7`vq-C?bX~kBNgK zqW2Gs8@5gvnh5B!$iQZ+Ro1IvlB_kL!FCSCS1`cf+Pe{vUZI8PitVcKFQpg_`+KHP zwvz_VX7yNgy3pV@Hvbw*vFtJtTRl?Iq{zTZfNBtxwPcgqZ|x>qH58O_M-;Rl1tcVs zoPCD}^a37GXkG~SL{S|{!J5eH)nz;4y8l`Yu5EUm-+{|F2vxB85C&~;Hca5<+41So zAJbg@aX(6}DMZA&3qh-CRk_?~ez|zH3_Q-CCdVSah2K|F4ZABk_69}XIypa;F(l{r z=^dELGyzeXNm4k>_7XJ0K^@%CoK}4nf6v84@_=o`mrbEX&z#AAFFC?2wAJaF67oxO z+c&%Szn4xO#8I_M`;dB>Xju9@pG@YkHHo84DBB8C7^d45S#t%P$1S1Y97HD=o4}sN2Sec`#rk`ggV7nE6_{oWQ=#I z6F|D-OWMdlMuf!w^>rZ$dER=bXbIAY^BeiUXm_k5H1he*mu$jJ{lvoL&)P))j6z>D zW_t=Iw7(76O%#PD?$1;tDZ}k_aH1%oHGd*%>zC~Z?2Rt!NWi80frxKN)# z{_JSo>r@Zx`0pqmFu~h92oiV7&MJ7^B{)wl_?tV7yj<9EJNsWPB*7Q3VOQ#cUW<@G zfZsV>S~+x3%_y(uN8(|=l3^ZeeDSY)U2RsGPoE;sa;kot`^a&lunp zEP1KZie=agTi}Kx#E;Kw3!nXR^V4UB!51-JWM(_~wS`>mf0_OwiGMlVKQC?GIOL-) z`ZEhzH}F)06~1F}hjWR`1oOfcT9E9$K9}~0rSw2=-RV?89BpF9NodnL3Vr4||8*`4 zStWHwy*@o-I3KG|Yfapk?y2K^)xTYa3x49W=#VTBHM#t`m>axKT0nR89DJ3@uc(p7 zl1zSGmEj>i^vbrC)ct}Wr4`OAlK2tDl#To6&@u3x+&C23`$L@h89${C*156L2lc{r z_Eq)Gtu0eL*GtiPpKGh14D70`W`q{Tu*8VbgNYf#hoZVA5d4(BMxd1+UaKvqIsQ)a zMj1#%{|inWwHBnDOfXfI1(fzK#+@uV4RcEB>-Z=mCocLxqG(8IE3>&0pNwEpA6EWb zJ1Peo0W&QxfFLgIte&L`BdSd+YV{c-ckTgOl}9YEZ)Od!`6}cO-U<*k%LWyO@jf1i zM?pth+g_52XL+YbOmuaw0$Ut*al9kob*?=dO>W_1+J2=RD`91?lx_$1=SQic?JwZ! zfi=b!EYeef2+j1uB6RXWj5=mgldQcNTJRN!IsHr^4>q`g9vy3dH#T}u6a?sD$2->V zNANQ4HO4$U%Hx3mZKlLmK#h&*C8uDHsmhA$zh7ma9kYWFn{)dbvcR_f&6?}DwfvI@ z3KYJD7`9SL-~nZB&)}(RHFZycjgKn&xQ#;!n4k9!+UYNT%w@fTG1EuuJ2u@!#y^CK&IcUf`p{H% zy7i}1j3hzo6nJzhN+@kgoAFmel2N)z5xC?LD`Yq*I#;g~^)*cI%(}!RKBpT?hCI$* zY5lkdbTPP?eSvgUIzW z2}Infe4{sAImOUeA2nv%F}|=rN|-$)4y%olofC@Lt^0-|fwHfnK(<)ioMkQXPXCvQ zdx4CR+By90I@LktVtvi+qUXi8!W!A2@cW7&ys630ST2I_zJH2P**A5hqUvLnERxLI z#4Esd>j5s@LAh*@@Y)9NaHGk~(N}*c&tM zc+Qlbfqcu2tIhVt77&GmB)0Ik>r?70iVw~!2!^c0o{~fkz#iJ{H~Uid-9k;|yI(AN z3bV6XCQDF;CrJ{JZ#kpX2X0N983x7}@75_8av@1mP?%jad>X&>Yj7KN>hXsIty~i7 zz;^vbk^QhLrYPjJ0*|_avGbc`x|TeI>>MKn_zSRdrN>+-<#opotV;5D!}HJn?L!5x zgFpbYYqdXxZBXjR$ANY`f;pKxYsezJ)S7O!w-67 z=}hDZYtE~}X9-@=Z1D6M1!J{5)jOc!ATc4wwk6#95`8>5@2k#`F0v@}d**BX6|LCs zqA061sv(L=ySoR-bu(i$Mx8O7=H<7qu&%3m=}vvmxPe|dBTIIN`pO#Kr>p>`R`~Tn zRdho^<>ZS!#URcKRrV@YOuU?OTaM*BuU;Te_|=X)^dpt#2W{1=g+=o@p0EPWy4Yqu zKAU~PzIpx;Y3Fz-qCDUg7-$We=`6J?YsVr_m)zZ4ap}b1N^tMb4pTmYcU(_Y9{u}k z;DGlZU?ycJ%TqhO`4XtYbwNs$9-RGq>tE`!_Dv)97CDXoMg;_dgj~L;W7%>0W1J4T zJ1Uti;DwUt6Lkl)QSb*|ym28fPcpCNwVKT#iNKRzj4y;9{?eQph%&ZT?H#xvEqq-j zgfT^N=}l0laYJIUA6_%g2Vk%E6s&1SD5Opu%-eS8EN58_W)^Ua_Hst0 zVB~@6h8wCU>{H4p;U*-jJsHJt+xhQPMND`%?(W1kA2JW#(UL;ypbv2^^F7pR_T+fR z$!2bO3K$7CmE1C=P|YI_Mo-HJ?TF^5UPwi-ILzWL^k{Z=Yx`<%M5PFB1| zjcjLvym13$P5#Y(|7j*zMZvkmdCoZTieIzyE3AjyaI%2q4w1y!&7wKYW*t=*f1PK8 zPP7~E+gvg~sds+zBsU~s9^tWrhDTXSK~25f8wcadr-C;n1YI>2-z(vZy@97FxI4GS%--iFyA4)K1=-bAH1AE z;^oN@u=<*HjntTwaU?>ZOZt9xNZ}LVR@wdhYS} ztXQW@xB*1?T2Hqas4~S(XL_+J0)a29L>(sjfKAP>ls;7aQfq4eZqxB>PN2_D4;Q7H zNB5zD^o}i<^b5970jN8VDl*&i*vizCcABb! z%Db7hu7M9~Z+~p4Xto2TVF>rMW{PPuaa9g^a9~&Tli#NwwyKOKmix3LodW_TwCmGe zr#PxTziZn9r`;f$xhT|5u%RA^-s4CJIvxrJJZNMDe3}ethnpF%Z-G@Z^<$NSe7%Vq zUI!Eo5&Le%D>tBBi0W=^#RGJ^h~1xO;C$|!Ay1&%M0`tYPS{nUOhN&qynwHnCbkN1WAv%VuCKpR9P7)unzZy;6(e{^wfDlboWKX z(~2rGLQ{}6xoqD(VX0H^6$lxQF1;B-*x@3Mtq8wBC|)tL_~j#leUUPonPwqH_k9e- z?Qq5johJ1@>7ktI;)pbg{FV00WV>f3VSay{J%RK!N)F@c zg>01bFFaj1QWp~Sl?gMN0R+MnOx-ZkwN0>1&V4X`o~z(2i+*}c%g;fJg0(N78tU0k z1$ZRpF8zJ&?auyvFd!#8OdWl%;4Ea?6@TFI_W^bX!!v>h7X~6o)$P>KDO;G+U0jFh z&Xj28?YrG6?<`s`2+qIlDZW?QNVyr&>>RRykCkcD4HRk@*qQ88RGf9U0q(fk`N2g* z<|jcpqt6&Yfp5oBtkl350gZEmnb1(}9o>(Qg605)rx@Tw>!KQ5^W+6t*V*r_HmW~v zHO@-x@|P9yM8L!_n;si4hcUrKtzp=5M3C`hK`;b4z&6bfb?5RZMDpcvB|JnZNFQQh zX|}9nl0(#V$BS;* z2Col&P{g;3hUTp0MJ{l?c#^<)U0gviVsHy@{Y_M9kDqC(VDoswyNnf5{8kVETwm_- z1QZ%CGf`S9o{2rQS4iGVt#o5-*nDr`GKZjP`;=&l<~&GIVLKi8;NiHnK8$Fl>0)Av z!OjdBmcp0WiLP{{a$@M_C(vhLZ|>t<5@C>T4&UnM+BUPt9_8S4xs<*WMLncV6rT+o zq+PGMAEU#2VoT?2nYP}Yxki8n&xE7p_S{SR*?uJ%%9%BSD=A&Lh2h!IIO?1tGko- zF4Zp-oyVS#yH8b>$41mFTE_J7TwF%ole-TzX3hJ++9m3!oU}Q&uu{2m^RbC! z1nof}5jFQnVr;#QhxMp+b?4JnpE?8PPDp10zrao%rlophqAeOR`!c)Zeq2x7M*vhv zuZhtOESL1eIYMqZVrDZ_cRGx{X2&6vc6MKDbOlTOx~;zwGUGg(z)eVI0QM8thYQgw zpS9nw47?8v+tYtfn zCDIOD$bN{jFI~Nvt`Cl7idP)69EXVC8yjCWJdQj1W9T~Cb)OIhm{4tDw)1(`?`8? ztp<~;#jvZsVt1uN;TRVYOb0#T_r2D^9mtsceRKz{4jdg$1K27Ol{of&y$r@^QcP#o zH`BC--KvAWIz>8CED42md8QGf4|L{#WE4+c7&`+x67bA7w@ZOO2W}AV1=5aM^kEGI z#I5=)6(8+cvb8u8;)3vKM1UhgW{SZW(?#NFZ;V*3No7okztg~TyK98d!zgaxOieQCtL}$ei%Rz6cL@BNj z??|fyRY~rTLgTnhbdI? zxxl~;0k|1be4{7*m=dGjnq5`kEA5JZI{4ZE1lGdu8)QKpHqSxD?v#b0k`M%}_uk^P z!!8$E&)zLpV-5&Zypl>03Xh-HOk1MY7e*?t5c~@{eV>UVBi6?_!7QpQ4{_JqRy%OV zwH=j4DQgGpwjVRGJg5uS67BNKP4=d>!ydrxRs^qAb?HCcA0&TR_2aMaH{=CEK3r(U zIWae3mLoszvcvCN8|nRLP)CR9lD0tu_iI|_nMCRa3Wn>ff{K@zH1zWWdLC9hg%My| z7(dis+6AugYa!it7v6qj`TGjo+EJL@)ZoB7OM;?po)lwZg<>IyW)^fHFcoIK%GKpu zJUBXWGd8GV{OoIGfzJDW$h@9hJ9+W%;^^Fcoz8{dbUtx{gC?lMiV{8y&TKQNg==MX zjM8;H)&_c|#7mdyqsSn#Gr4~*z`!9fn*%U~?-t!EG^LOOEH}^Le%4eO;fgq5S4K$U zdl>RXM8#E+7x1M&*9W?uZjf*O-DAPr??HrJyJ7+N_&wrOOx->ut=S7NZgT%7xFR#kC z2MaIG<3@C!k>q8DM#BEyoIAgU3OO@h*SscH$Uu{)tk2=DR8iYE!3F*a`wU)8981Fs zzfqwUv}1|8_@Zts?9Covzktsa4u_6vfn#K5N0o&~D$cU9@ZqUTT%>IuuR2^FKf7w? zMRZ-L2pnXYC~F~KA{IE8v!k70we6f0he}SO&RgE)1LI%uSIiWkS}nT>Z0~8JaEE6_ z-WCqBy|&Qj_dKIH`~xrK$v~rZ->F{~&*V;yaun}<19SROW-l6{XrLZ~vYvIOo?ae( zbF%X?7%x>Y^DM)1t$xg87klv)Vd%vvpfo-oHuqJda*bZev4w_*uxGAbj?}bxOP>}JP@dD%plTs-PsUK!3b7V-&o2= zx3)+yx0<=XQQHM~{@|-1`pz7rIZj!={9i2*r-ZI&$bm-caRKVaQ}@%kR|NRJMyu*{ zo@+WSx1OxjJRB~RAgQ0J3Zp%d?XLQJWlwyT9w*#E4;kTy&P0814>PR1Vl!Sk4q1%I znT56LzDsTF*Lc7Ug}*pKz;cQ{8pFR-5!*mn>OkUm<|%BVz{dz-RcCmLImoXTPUpCV z_n=IM6@{+nFa&d!f}+2-z-%ZWK4MPGi91Xj{aOrzf>4kyMGw%Mvh($K-$G-zsEb4R z=UTQzY^`h>*eRm?9;C+;4K5-IdmFnSq3Kf-Y-8Qk5FBi{uDU3~@x?zvOUmW;^#Pc& z8ycjr79PWK<#LL^MN7qtq72m@d=?|Zj$G!Q1$)}gY%&DPD_}g8`CLITnwcyCDJAMw zqB^acbySpcuxDdv5FKENfVDc0m_(sTX9HDvfV4-KAm}o z@ZnWx3U2F&ofhG){E?8fV^Q+=>(utcbz8@aXYdtzlJpvnQZP}kwTds>W~6gmWRhNr z1KJIeN`u|s+S3Jr{O?4&$dD@{+&8WmvvQ;CZJ|B4H=ut{kVC|o^i!xnP@^j>oZoV( zuFOc@o}c=74OPMc_C}H?m_;yQNhB-Mbz)3zZ*XThDi25>L7u<5e{P(IFIF%YbA+GE ztZ?}cuL-AW&JKjAtm0C7xF^n4KQjb&S7ABNO1u7i5hR}jRbP)y-q>q~6!;Xq#Oy)5A=PgYNPb zXO|~4L(V>EiyMG7+TpVA9b`-7{p4JP*s50S;B&DIb9jU^l=j!qyAhPd_L>FC@3CF^TsF-f}nTpJx)a84@%YMB^Oz|4c4p zfv55MuDB#2ls;IoRNhB+^1M^cCP7>Ee8B(>0s|YDL?Yw2!X7&h(GS{eIY+#`S96Q% z^z|)MtMEI3X7WWFl6GP5QKE>yCn|&?1H^J9ZnVQzA02}*Z7z9<{%n2@f?$~su^P3q z;5E;1|CJ@Z5l*HI7H6E+sBu zUr5nQAGQvFvvy(5x_K)NtYCw)euVg|@Kot+;cEcQi>d5)3D0sEb`CQ$@mgO(r*CXf_if&v1?T~q zV{eZDefM5>|87Ig?T#%qX~H&e+1~U(`nSFMpA?91=aENQI!t^c38K*WovUKpH!NFV zj?%ug{U!pvt5Mvr&N%l=ENvVituY4j;+b{y)3NvhTFN&(SR9#hB(H#{i|$l^^%Bi;P?0oV3_}@FDC5^Z= zOnlH*9Ak47t9;2t7ZWMKd8O(h@({{G2U;fPt8RbOm+@xlcN`cd%)J(u@jE#KC? zxx`pk$p%!+R#fSH+zM(5%?&7|DHijpO6Qp+Pjk9(qe^t2AXcb^`Dj)lItD#Uk zi*AhjBLzMM*UxPKn0#TgXZqr=jzZ&?8y-=9Exc1_6z(T@LY;JQmspxo(2w8@$L+us zr}uDWI9cXZaX%pg@zRy_Fj%oCEk|LN!p8A;YS*B&iDHLO$fVU{6b|tMqZs9#XKvvXB8a0z2pDpC)0j7c+e_ z1i^BQOYEN|p>c`ugw+i7MduDgXeHR28!p6~ChG>DyAZg7yeiqr=loZ+<&M6@z*_pmr#tpAB3BwN=gJ~W;Qmu6rauHg1Ph7 zX1auzErEW>$_9rCw;@vVne7BLfjmVMe1MqkK8b_({Mb8zYX z74vI7$XL5I%w1y3`cqOR>9KJZC0RR8d!8zWxvFe_RD(ty4KD5I-%0GItTW#A<8#_+ z%?}mlF6W`$u( z3t_f8?rh)hpg+IrcIh>s7t!>+9mT?4 z!OfSjBvj7US);1wvf>Jm%QLbz6Vqd``2=m7cPEb$dlaYsxRpK6S~i-D7kv=hsiA@w z4GvzOe4waUkwW6+i%{|)< zY);hpGn)}eu?!db<-L~QY_J}-(Z6tEel+YmR&%_JC@TI;2imhS(iO$BXZK(M4HPE6 zqT-QYqH1p=H~7t>!~F8Jg651dyHDc6>kc}Tdv`ZLVV^(Wtf@tC96+>Nu;mUWD>e<6 zQFj~5qf#}tDdUj^3?vuNR&dTp3-7wQyLJ%6STtB$A#X?#j#zK7a(uy?puQPHaTP{w zKM3BjO2m^GoL?T^CxH2Cvlc8ZTqXqhp*duG>i}~UxPA~@r@Efo{F8HFssYh{3DP0C zw)8CdXzT9%ya}qIE)SV&gi;*1|61xIT$79i+*3e!Z0o?3^CM7~+Oa&04z z3oSxRkz;p{Wj%sGebE((P>cL0UH;*0PsE55!d3pWj{mG+&nZ^cf>K8ii%S#xx1|5) zPhesUN8DrX|M4RV1|nD*cj+(xKb-tibj%NcpLYKrAN6@Fq?{87&=R@3&daIXHOE|`#rU%dW&WCP<)~JY1evv#x z4|O!?7qqSker&pkHE0FC_zh4q-J63Th92rn7E$oriiE7q2Fk|JlFvi4n9@Y zzN`#3{wvF_KsS_4J7_u6Cs9mJsV}dUg~M)34Np^Nlcd!;MzQ|KQFk%l4j3yFZ~cF` zy6$+Y|9^iRdxS(}E3zsPk#$a~ghFPvQbuI&b(}JyjOL3S~Xtx5ll`>rD2Zd+-PgA;Y#R|#x!TDHpm?LHehdLtX@5MijJP( zL$8vML&;_eWaO{m+24?);Edd!jDAU450dtpHnX_=PXGlXXy94A6eu}Ei2d%7$}XJL zNpCLnC&1(+&dTf!cYE5t6q7eupFKXLUjEa)Ct*&W`V%l_ zleMJ?)s(~1qeD;9IsN32K818EQd#Y%^-!pSD7+`5P44L%-~D=GQs33|Z&~a8LIdt= z7b70MLm^MoGIfd|M)P{$PRQkfEQhX(ThPhupBDS0-n*;lv|cl}-R>MsgzHFm^&8mP zcOw#$7aYF>h(VZW@Unfesb(dVB!!mtITHEED9_B#G$Xa~c6iXPYzw`$3)2uG*#Pop zP{^Kxxd_3B3?WU{N9d;@vpFd_Hu((+SQ1S{NI<~Tae&Ut zc3p(Re{QI;32yQGlhrY=U7Wx4p`F_MR$6?p2LI%}{nOOZZxX}LJ>QU>?JV|iQ?Cs; z4TH^9Qp$?G{UGD3<)^h~^f`ol^s;A(1W3$8_)*V#e8#QCtn^0L$yD%% zp>J;dla-Zb*$8oWj=x}m8Oea9)m?J(ia01SE$x+tuZ+*k3aP#Bfi`o1O8&s?O)Y|3 zwnB~f*CV74zD6M&v@px)m3c4bQ5EYt#NWiQ5Atr3vqMvgsF|thl<(lO#8cgk#47e@ zdzkj~z!OGd32WgcrYQiK?hxs=BUYv#NI5%H{Tb%!H^a*|fq_&b+pYw9ULckAL4ET} zp(0z=m!p3Jt<|9mWZO&Dy?Oe61pqTi*DkuU5CH#1A{&WN=kT7K*gmP^%8M%ceWK!2 zO4^5ZK6SlygwWbF>=ac>M98EgcE%o1J=TzCk(o5-0~iW^4Fn~#(_;4Y0CHp`((Q-Q z%j~buhA(af4E=P=MnoSTsPN26oI3kV6f`;Os7IM-)OtfXHS+a16=U(s+oZ*HOaN@U z431;_XO)5gg4%n&ytv9H!=<=``4ZJ=BI$-TdYX3YP(^#z<#eGv2K!FrRiXP;ib%il zyurYvhXL3J_PwX4VpufpFMN-@!fl@?Mv5K6Tzgm*f`X)-1={8VU`5t% zC3=L6;~#I4G)$KC(fVqmyz4dB{qf&vscFKjc^jdF;lCZK;`dE$T&3%Bf%-l!sxE~& z-VEDR`_M2MPu*nvPw@8SBRnqatdtD8OJb$@6%~clbu>4UnxPkP=@7V4h|kHbPWd-#Ms1UlN!L6JM5Sad z5qB|GJt`-Yj=l#6)w~1eK(T@6VDt^49KVGXui$#-K(!!d#V&tl7kqBW&MgY?PXt8; z{=^EQyYOp?ckD6fR(nk1nJLb3FFxop)fMfCL7oT`z%hsQH`y;hb(!K-`ikwab<&3x zP1KjxH`BtFu)hWyg)TJy4OWm;B!;@EKC*S=Qqi%D(eXEIO`Sd~O}YLpl)|QS1r&db zfR-KqIm`p?I2W&Lfk(GYZPwl2HR=7)AcIYvn39!0XBpIA}W3KUE%$Ldmr=4rQi8JfM3$7F-mDCcs|pg@UNt*LY58wRz4vc>y>_IPxbeIqBGtFt8f!4MxIWJlj1 zbT`Y|;mmrao3^6iD>PCg z3*`gu)6<_cIx~l&x6}bd>GYhFS~sM0r)-GRj^7xb>RoKOe@LhHetwzd7R%pLz|#{* zT=!`$Yy7g#2ne9R5MPt}q2b@@OnPfT7C>4*X0)f`9YyT*Gma;9`0)k{YTpl!ul;ee zvb~9E>m>RMz=B3=p`HS5^12bfH$-#=qwLxAHoPk7dLsO77 z*csab6XIfp_6XG%{}NOftq(2a*?bFy(k)kH+g%l=72l66#v~KW!XfGO=CTOd8Mh!| zGI#AA+)LnK!I=@>e zf^PD@_6O6s)7GrHyy>MR54z+wT7~~T1G0|VeZ-HNN}7AK!NuU291%17XC8GeaQJ)m z+obXvzZ1S}7W6LSG?&3EG%B9_g9e}SXTeoamEjf5wE6ZmQR>ajVq0PkqXM7aWDe*% z0<_hHerio+7~jCCh)I)myOOorc+>UTuWT#p)GHRi68~lK;^)W;UP`ayARxmT3I=Ae zsFAL9zQ#1>i#;|#mn5!*IMfX?JsF!qXb7GZ^-VPvUI5)rf5}Hr@r?*+a5NA=mp{o$ zL9rQZc@G@Cz+Ic#RrQkclH1n?e(|OaHV)itABdFEe_sARl$K&Fiw21imO)7lGCXOH zMzUI!4toL)&IuAb&dEiAkYsZ=;M~+!sbaIFv)7B=D}pE5Oy*{P4-Fg*T?TtNIt;nj zPCs;>vu|yxJgIrvHH6CeXUM{~Ajn^&4F+WB^IpFJV@`b>gX8bw2u<$!tV^hK7LyvTx7DwKnUja{V^M*+e7U=QXTT1^yQ!`N0FAZ#c#sKpv5ZYrN`` z&H8$t{ku92BnF7Hdl6-KzPhP0n6mA$?tajI!R07s0Dm-8&14%~`PY;XSW?{vIeHW{ z?Tie!9l9_fS;pu5wFdqbMz1aHMHqi`W!c=YZlgna3IEA|On=$-TY%x;D`xY_C@+d+48p06Jz0FkvN(BR4t{J2q(Xx-k$^?st*sf+5;p6s7_`^gT7! z#{Ms12I&_Q(#2h}_5(*COJ8t^Gb`=;YM&-^(vXsx z_+#d&)Yg;LG`Pu|kv>ap9bQ z-#t9{^#1=lK#wPsL;oIn$|Y$=3%Q{chziXkH`w64m9YX|u_M^e*&h_E@Si09ZeYNvlP*^&z#ykVU+c@AQkmFE&_CMSQ3 zQ}JMY2{FC;^?Fj5$xJ`?w5swy%B-rwFPl_0XNhRir}@!VMX4Kl#136q4UQghtm3>! z?CrB^ctG8`0Md1FYi1uC@(i~AwW+5XG3TM_21@-rjk-B1MgLjEfHy&Y7ZW?Ptqul& zF56k&#Aiz5g81(zEiT^D`d1qgwzp(LuGODR)k=;t%2yv|ZT5_GGM=@Gq*j4&FEF=% z!K&rHolHxW%K43ZGqwBYZdZ7G^Zy~*MM|61>IUk*I7jzrb_N35!-XlZ#kq1Di$>=v_IHD7%jI{A){k`##&0O< zPyLZ1v=l>-WEA;pt6`)hjcz;Zo41+Ht=bs$`(>EM>7D~g9f<^K7%Wp2AE(Aei^%$b z6G@h5H2j(NPpl6wCy^Je5?s|#L~NjriVd8k-1ds7SGPEq+hPJTtT?{eVyu7=yvAK9iu|0iwZVUI*NwM^J zs&6XiH7T$ILd69cGP2TDqOQA=f7y9e=j{terIO=pzWbR)(TG{jQ%wTq(a8=S z2DMGRmn0`{0A;WH{^2%bx38x^8_%=@CD@q;1qU&GoJ)h=?XX+E+(4L*mUfHcBPB0_ z8DC~;N7YRA-FDJ4w>Y~NT_1mYO`NeX?JAGhh95L-eqpkUlDw!M?5BB%?>uf0*{yKX zDM_$y82t7%9M^AmmZUaIW96jxcIGEi`JWKW`fgE+Ki<%jBfK6BnawaqHl_NF^oqd< z8b8*<8c+O;&@85{4HEzxjP&`nRCHE6=^iMtUcaKgXDZ#@=grQ7D=W+c-xrdqY<{AB_ReDnm_|G zAlt<0YDU(EciQsml`4Wj=!R>?Su~4`?R|VvZ&59R1DF>B zW>5<8N+B!Uag9O;`C}4E=6Y1P~~?y<(vNEfNfHjXN^J1$#zND;PR@;l0fpA)3|7x8~yDM-u__Dz4oJ* z%fW7}+|)4>O;u&nYL{%X!KH8{1Vy!n2{#d7`Z~l+tM)$MUbqh6J}NKl z4U6v@ntH23Q+V7PKVZ;Ax9I9LssBC}xKySWOtW{t?Ih!1>U-_LmR*@isRKn8pvU8P z$4h2quS4w5`^i+tchPc$9qq@dv%}BrdeR}TrMb_KZG{j+a7jNUy65KR(gBrt?Vohq z!oTzB{yv&webc`&3+`u4CZ*!%>I1a>py;-2G)&Hc+x3Xxxw@yqz|}yFhLc|2cs$CdK;#?t=IKFopku=FzOl%Z+w)cL zq2G;#pL`}Xf}|m^l7)tlu-|sJnGlq1rnv6Q>2!)=X(mMe5Il;?Jz}5o%)rq;oiR@T z;Gi{SDyU+dRX)ormdP7)j}KD(V`h|DwRMgkcQAyzo{tYEMEM@1b>I7q=kbyoq_aQb zu52m>8Pmc_F+M83Cypi$L{W1g68n4Pio$e|)%9$8Q?sIrUWyRVz9j2@d>BPO^Gbb^ zyiu)%n1jaMbnQ%xO~s1|g9C^k^})%<*tKJ$(0#6&2cnI!htHiZ1~4Cdp2zFfisBnb zKG_tpLK|IYV>Tsi8yc7QuAS!^#n_FGYGf3=>n`Z$^h)eitXTiDSeDBnTd-*AeuLo9 zA^pf*I)o`#_3JNVH!DW9WH;xFOWhuk8oXMsJTC@8dz^fYpZqP^+;_yqS9+9mtnlmi zC3`+(xJ}KLvYPHL`wm`sdZtr?!F~j@KwGcjaI{%YyD{}h=5^`IIuZQ_Qe*a8Mlry|k_<&-Ah=d{-mnO`(iQeb~0qQ8sdv0qp_)%?>iLN;+C`PVENJ*!vf8N8O zgB-FSZbCuOCsUZP`m=TKxd0#Oo1o9VNqW6-Rkt)Hg+04UL*n*IRe^F|=-`&R@JI|S zqaQaWBA?DR;$ks0(${$KCDvo?CDR;T9xXi63JbIhse zUJ3S++lxcxybcjW(Vmy0uy!=!@g;*8GKi~oRV4hRkll+=sE~UJ{cRfIgC2Hw`UWS5 z%GZ0SJ?VRFo~!|jQ8a39j--|ANAj$z(EJ~e^8z#MNi%r?8ug6(!%#!8o<#3<8h2NHp9!F zCEFR_Lg^8~vP}K5sl~0W+aV|$X)fIIpQ+7JA9_?TaFBvg7iVkafYio94r^(|BpA|Hdbdmo@=!OnnQL5t2^T z2mQ^9ey8FYaf66Xxz--t_)kC5&E|U~>$L%7ggH93kv?A2IEDNz~;)PTS^A*Mx&lVHgi=>c-+LFm*HFzbPSg ziUIrtA2g4;O6@o)$T&n2JT-+qJl*7WzigQy2_#kX`S1gT<22m9onR!u{}TSBiy<%N z5*KGQmb`ducY!5$mD`<=D+A@$bT5zh)r`F^s-8JmGI9$zj@Ik{F;EOaeII*hs5&*t z<$J5{mnGs7jChsp?`rz$Xtd=V5rm4U0!{u#6QIU5)b0_Znxj6ont)5nce*wcu1W^= zuW`7*Vrzh)hXO$d9`Q!qiL}%4if=Ul8v#iOV8c7Vg-HO{N$lFE+}>=~Uw@go_H(Mw zL9Z#MAq_)_f(tIAzil+)r{kJozI$v_LE;i_jq1m|9rSr1ZA(LARpu8RLt8Q+B7``QJYq6z&mY zl_1QVQY?=~tF41Le`(2UfmGXDYY&0~Zdp-^k3q(X2(XsYjPtt$bNTm8Ajp@L-rg&n zQ}0%8>ef}K5XUen?Gkx!oxq-KIpnYZP;}W0QS(0of|7esPH{Y9U+x@k4`&w?{%Y)k zukt-&Se>tzrAlN-MeRYSHZ>$Ut$|Vgc;DK=7e5vJyX6@Dw;J}8)Y|8s6nzk#-0s=F z{^$}NEjux23QP;~_}Kw}k^EU- z!+XR=!YERbxZYSsh^}vrB)uD7PouaIr-0?ryL20Jp;@JURa3rplBb))}X6G zfg5b60&YQhTzLIUi0OSnGWB1EBCUrJ^>WKm{PT@SBD`pN ze1WX%1eiiIOh>*fcO2#f9Ijt|X?Y|2L-c<|hj7|GhE4Rzq!;ep6tlL}X10U`N|@q` zv79LnWbhSnx`fZ3A|6Yp}!Jw6Z1-2U?(Qt|PZ_M6R(J6kH{x;|jBdXD zuPDJUfk+R(S85kjai5dqn2?mwxwskp?a|YEDu_<)2OPo8B@AQz=b<9_fnN-Up|OK5 z-78AyY`Z!)r6Pm%cMtF;g)Bvi|2dN7Wn{obzfR{KcF>5$Xn+QuQZ6n02+^-Z{q;6; zM!vRO$Q{VFEneVPi(}UlE~$7+i2S_}G7mH)RwdGOgI1Soq`3W9gFAL!7X9I&yZGFw z^UvPY0=WratuCTp7+H+sh4d^6|9x=%+aReTYACL}; zH1XWqx<2$<``dX|`~ZKDnk0@}3QEulNW$ncYDQV`tB%@cWs#O^xF&l!NQrP-!XQVj z+i2?M?A+oQZ`;o+{ZOl{U(f*wy#G@y}0{>E(Fh2js-=<8< z&wj#*wK;m6qv^ePOkwTEX>g`)6MlMGFt7jp~h88+Eq!=$*C+ z8a#GWWy3>6?H`+_3f_KZb(rAm6KouJ@pB@#16Yl(R~2GB);|0G{2*r6Xs@2LzDQgf z;fC+gu0#}=M86?Ule@cs*H^_7n))pNZ`%&&2?9{UCSpEte9AaNblShwy%F%;A|o`GID|Dr%P7b!x7UF+)P%yGr#1xZp!)?i4!00 zw=3^2t_m~E8D!ExYnZ~Qzz_}k4b+3_OtcOYouD!D8S1fg!tmrvHwP&fW3P>JjPY@D zx3bVe^2w8xN_p!v;>O7%xoajI4H-$_4_Fm0tf@%!=h@}4S)?vaXfKyMOpUt8;aZTv z3(XH-B;sGi@6zYjp-$(7x3rtygQ z+GHqvSL?YJ;fZo|54QBrL9*j>c?HkLTq7IqrQ3F!?zhC6#5i&hYiRN_1gW$pCCnwlen) zk?XyOBrN-f>hVg^u2aj*k8Kx>|5-K|Lgp8b>b*+BO*k_6o^!viiNmqYPH1pn(damB zpKgy=MY7aO-!epAR4q>IEp|5SaQ@?$8_KFH8(Eb}Y9S2l~_DkzG0yP+CVjrC_J7Pp`7Baq=BX#%2WIc;}zV04<*H1Z&r4_<$7gGGF z``j5obO^~9uOAVr)8)3%>6LPbpd)K|wWtkoI``TWrJBQqPufgx`o~jL*W-g8dFFif z3+LFN$~>4aahUS~>-F8?-HEEa7wt+$3}^Hnqb86+2g(9@)}pdNSe+Y!oFXa9sL%QO z^OtqJ820%c#hR`(F&Ngp^uxPq>#ML@1j}KrAP+j2;=&%A;ut&2$oee|fZ zy8rxse>Ae%j=H4dbkC1CHz0n^AoE5MMB-F0DUT*|p;KFZvA7`;T(67p_0xD&T1%bL5IW zA+~UYZF8Pdll>x~=EoK|BgN-O=yEgi&M>Do&2uv?UYubsY+9tUZxubcJg1&5b1m8R zLE`Sc$A=^#IsX@x1 zoR?%3L)3z6eGFY|PithqVyAP1JHaxa z3{7hwkHV)L*&ZgTWq@(=?`-0QAdR`5{4d3M{|awJxdeZxh(8f#k; zgRGCyA-TSJ^9t0tI8381V)zCSMhG>xDid{(C37*3agFn#5lqA=- za(RTD`%z+z*wSN?&p6m#NL)y?sBvRz;BI;xaPXspKjhhkrw88*N>k~tD;I`xk1-{l z&2*tl7WS+arsR*oG{q93Gx~hyKhWJgpK^nrpew3?Lh`c~el1I%BMNoQpiLUeWzUsJ zTNQMpT;Q?iAQFUO!c%O{OWaJ5kqdYtGgJQOGjF3q?x?Q*Yy{&7aU(seqL1U-pL9>vq)k6)QYZYf0EA9|Y z|61jWEq9L@NueFJi^QY^n?mA0DMOgbDry{<47IV54Z_Ut(wx!n>pX3Iy7wLy$S9>= zAdh7N%|S>A*ptMsC6nII&j{+Uj%&0(@TqO;HPEL2QPQ*_;x`>S$bQ)KgAeQWF4jQP z9E+R#kdboC?1?!H67qFB;<{nSIOc^b?cvlsr}#eCl0$La-t68WQ*91| z$eU-F%MRYdv&H3%fhw5W2(G8*&0p^tpc>b3O3_2aom>n$dNchhkJobgcqw8_RCO8K|;(+zVp3U<=HR^z&zHw?S92&Y&do_`xuaD~pdZ z=#iP{4D!PhWQvM6UeN1}kL$%04j;Yp66IyN;G)%DlB}y3y^wRPu|);pX{qo`dWAvc zHT}Lo(Cz*drjQ2|;?2NZ4^lkvDAseB9!^TC&b!S&Z4T*UxOPU-<^C?;9#BO0o^k zuIH&fpVf1*PkJnM_i9<6vGJQ?GOf90fjJ&N;@i;`2=v3~QM3BNtm8&UmFQ`fmAi}V zgu~ng*6t#7))g2&7G%HMmG_T=d&1_nt(;y{e(zTx`TRgTi3rYDBW-?-H8I25t}Lnc zqXmL{T?5OMCc^9^x8qPL6-hG^QQb>V$!1plCrJ51mvuaY^5-qdm_ibDuHVGz$L(-| z>d2~}S;zRUzIvs%zgP(R{uz%S5%>9gXDT8J#!K9p0c6O}6ao`^g;NgekwFRXo<~wU z^cdZZGumvnr*Kj$5W>ml6(UP)Q9~S{L>lsQs4}=F&@_sc-cq;prlb9%G+3_2MyK-uNVx^kWAbO;tHCpSn}e{r!|(PSRa&+kE7oyY4@}rrRih6TlsI z>qZ-ri=kq3!J^ai*eN00*v17*%Tp7GmIo`W7oBCebLvpug@z3KSiW?e;`g;_bfk|K zuGO)8DS$ICe%)M?>JzBH(wqiHSrbL?(6e0oS$^rnnBg(&>E2apK$woL{ryi@rT>5m zG&B0j2ATcTaQOWLJOR6t9Wae&ZZVmYeKW84!$Pk!Z6=q5p6{-(vhC}a#=`StKnI{C z0Am;$oSg;Q52*YVlG&RaF9yrv;TlJCM%=^-PX=wOpNjwkHZ11VGS4~aP#u|pjmu(F zhBvdL^P z{~shnemR%#q*ml(d7cl+Y?s?@y}l|#G;M46dS#ngQ5Vm&cmA_nJg|4DA5}zvgCQg( z58%U?W>(0o95-=Og;Sft#_sX25ygR|n5!76#|fyopXIt+9^RPCgWnzRr&1exbQBjn zNk&BXdLQ}r5X>2zn+=HMbF-8PhSLQvGN_9+gsWl_JkHD+r4(TgRh)W+tqE4h1G6eB zT>D#1)l#%0$vko3_spfP&qsERz>)iDv)8YdzDvV&aqHQVN=WKe9m@1-+lRls+Edh3 zq5nM0^Ecq!Hu>i?P9NBh6l%wb*L+Ou=PK&9i%H~|xYk&};#_?QyY(W_qwLGo7%_jb z=Q;P3*3F5$(ARkF6rF09q{`$r>&qSA+b9rgE-nzN9oIt@r-G`s~_Cn`_N6oXB=SA#- zvfUbA0VNZc%ih8gBZIT=qbaSa?OU#iX1k%X(0%thgfRpYKAqtBn!!)c(>a0(N}uBZ z*yJUa$n=Qt5-&qh7&qL2vr&Vk(bwJ5Ly;ZVyboU$)?(B!&wC+$ z%iV%HgsF~7E1_i?QV2v5Tw2X{Yg`Pod6GuP zO-)STINFBKhhn+0Z3I+s`CJ-JYaAH&po;2lBM@&NK5>KY45bsp>MTy zw#P>|lb;`B7El#L@Q}$oMVZc;D8<4ZsR-^B&;108tJ*S8WE~Q%U|3v)!^hdX){C=Y z)Y%H%H(?&=95!2;@i@n`e>qx)z|j^35satz(%??t_Ibx<=hOs@=uyDfiBtDNLz<-d zopnWFFir&9@##bWkD}9O_V3b2o7@79s43?duIMnx`lvKgryat0bM@{=;f57o-v@B| z;`V#+H>cEF1s-%nO8Fg)Q?Y*V*01D1Bx&sByyV03tnVWXM#Cp*GMjB7uHR$E)-rFY zJllFgpP_NcILl!w%ssMc{F*PmT&&RafNZIz{y2 zzGG`d`dzQu#l`p*G%`j>D9W>slwZX>w3NroV(b)z@5~*gxu^gm?RSS5cuHKJLDC2; zS9i^1zQ~kI1j6U4_c~^5!$3h*ypjP9?i_I~WA-A2SQw%p8V_)blWP}#Lg{sAOC90{Oe^doJ`|EpJD zjdx14R=zsQ{LGvmHRLo7)M|{%W}H`e?l}Qtc^jXDv4-~gB3@f>7q{%kf{n!v z%ZFk=a&GIPthHQ|WjIGry_?#65D(UXS6UDXm9S%i+Wf2tq||fu0wI_}U56@5#eE)a zbj9Tv9qO`UHPn{eL_bUxlcQwl?{DeCx+S_L5R&!di6ur4D#pw%*&XPwx4qtYVxTFL5mM&`62RjsexPL=!}u$hhy)h!-%Qj*VaCA`;) zgp`eSNc+ynlE%cB#)ub0egiwl-H{#b@P!reB))UvyYkBLoX(b-;~>l}wE>#omEYqv zY7E)7?HQ5ptIzAPmvG6~VrW%{{}}y2N18Kxgtczxo9Spw?Ivu<9YL_hOGQKsV5}Df z0s44T{^R&s3fHgcx~V6+KY5=?5Vs~RCMLWq7_<^;QRADE_IJYJ#P5)6HNFkdGc;h;C_hEgJi z_c;0e8ZZl;rH+6LgR1SuKa2j1I0rw?o<+T=l zjx}Kt!TY|<0h>_}od3EIH8z&}*J8|=b@WM4oSYL`17EXE9m5m&L5r^ z)x<&gIAZv9;`^?+;#DwLVVp65`t(Q?K*N0G|Dn?meV~4 zA`{>!J?O}bkla-vZxkJqdV=iSnMGMdZ@!ENucilar0TwIM|)!f{m2E}*Gf%20W5Eq z$osS*k@lT0^dG|J_j_C>W|B>Y8e*y^T^;YkxKL)Jh^Q}6e zD^xyNP&kheJ3-5;#rYf^6W~Y#2 zet4gcv^zjfz>bHn&l@0p#YWHfINd_D+tz|%o{y4iZB#(6U_m^M0@n7is*IQ&VW9dF{Q8v9EZMREM_?`z)4Jj^3& zlit%0cqI`g=FBr#pJA%{o1Uq+ZYSMwkCp5ce|m0^iA|03P9CiBIf!FLTq)ajDDG~( z7i9EIU(k&qH4km*f4`F&S{xWGD|$$AYQoP`nnH>xq6)zaO_9W^#d8jyAl!>u!Y%pL zDM^f!F6L~K2VA*(1}PvvGi4ENv#xktIq+F#*Phip;?14=HvGg|@AnM&X$_R}1zN0H zc8d&jL#Vgxr-pLhjQ$eFTr0g65(#~2A^p(m-b$0y#K+WXfk#skVzv`2g4oiwhu7W0 zIMWt43>k;3Ps7TqK>MqA$3O|^ho(_^ki{J(X-=8SscH$awa1lxa?0v zl^GMZi<>p7bXP~8;fgn5v@&t6NZ{{THHeCG((!nV?;2LW-PU{d)L^+aTFL;Y#WzK~ zN0fUvn(Kq`sXvb*1FHL`KrcC9-w3}kypc_{63IyjwBkL{$kx$9HNwEv;@4&73*yG> zBf;AyWXpl6C&);mqeI?-eU9SusviQUixy@M>kSGnh_ss)9+X86DqS0;B;xaHm}!g$ z-C$P{dOt6UhliL$a-P2j>gB_^XF6iEgM{3IAAF7=FkKZUZzdhjkg3w>9sef-avN zKamZ%4xKF;*h|YEXyGCgqoVU$`M5&~w(%nd+ej5tyalxjyy+=j#p?rB+bp>P5t_!u z3}&dJd2ivzZnmPmv=T3HLJ0k`8AE{!rpY`!R)V-s+c4Rp2!H`<(+Xq?0~bxP)OOeG zD{n+Ih5gB=Wslv`-FJ`13T{1%zdg478%EGT`n*5`o!3pdr2tx&!r$Aennt?^<$P!1 zRshZRv6pRE-+Ea{8ka2Xt@9JV*IXK0ojtQXZnYL1`1(NW1 zd4gFn>Qi0_ae3?|h3W^fo>U0y@u6=e-jC}gn({k;ki4gPIy=ot;HYu{3&F1z$vXwX z-;*@l`oh;b5w#&b$ih8$jKE;xi9{--yN58Em5eTy@4nH-jq!ULw ziH)DtDl>eJiMx5gv=X*{6F|x2jiPfhS`}(c3eyi+m)Tfy%kQSY|KMb2b$zEU(!2Ej zWMb9hlAcS^cjIq=bht%`gh5|0r71+9D-ht+@CQ&m7krU(&4`kUndGDG7cB*~8nIS} z*++9XlNey~4x_8z72u8w+!=p>5Q~+rqzTvJaZBTNNp4&R-CzBo2WCGg(pNFLff0LI zlf%btsyEj%_~UPGND5xf&=d?)^1l$xn&x!se_RL1pWoC&DUdX{%gY@%5p37+JTpmA(lP_Y@dI`Z7O zZehwX?!I)9M!Ma5mKV?Md*b!1#KgyC%p()l);1@X1hIOL3;8N#?f$|L1nIHOC)R+c z3sDL*SK|KcrlDR$8KgKo>SVAN^q8DHG{Bu(Lw&LubZJ>DHOn*MdLEMd7cLWrdEYID_w=+3|*L z^7QxhJlWef_u1bj&vv&w*}`V}OgB%qq|(97Ug{e0kW-5#%8I5Xy-QP^B0^7>aGwLJ zrx{4-pUvqTE)-R8xM)>-djV{cCH=Ebp@5N4%%*MCGum@RJ*#|1pHHJzKSGFCReJsb6q(46 zW+Q%YL8HDCMKO>liXQH&407cEgH`wdflO|e{n9)#qE`Cwx_|F$8bm_7UB(ZwA9CxqO{FT42V zKV3GdKXl}A_5(g|%IhTAS6JJVOf$`-FI+?mpEwMraApW~!C{62O-5qG^D-*FN^|M>!NgCgH6mkY&)E`-6AR17Gzi5^Ma0g|q zk-R|sD51)|bNtKO!cl3x!V-1GyF&Yie(t*WD!z z)fE0b*YyI(ebW7IiemR^aX0@Ey+}@xLyL0Y-09bI&+}z@5oG+!Sr9w1dXj-`aTCLj z0s-~4R)`=G3vrXYVC#YCNp4DEuU%n96%(St&I-NgA95K+7l0~ zF_S^Va`x9gR3FU@`!XrWv2mrySWRrdul)bU5rU*A*$yRAso#D*GFMix=uh8ybd`lz zNI~eHq)In3SFR2u7&4Yw94ffV#yBi6Uoj`U>y@2H0h7UdwO1A1x7%iom&8(BHwX>B7F7ZzIs1IsrTu2X`l*(XfPh z&HYK3uk9PTF(aK4JuRZ~>|7A}U66gAqCVSqRxn1RYepQJv+YOSp0^SVd3<2z`C|!$ zvwmhS``ya1X~awk_~l5h!~zU zDMKI3$sPRU*dcFz@ac!)>I8MFM(Xo-eH7^-#9|j~dc@V@7>GV?@?*3XWmE_rCp|yV zKMuW_b^wK>gt8F7%t-Vb&}%Qx`#G&Fh{G}8n-Z?RurU`oA!F~m>5R#An&0jhA)ib; zz(y|BI{t2aHMA0)WGhNgtW_$OSzk3dg3g-SziJSINz<4sllML(dE1oM`^l^M+MdwF zDO~a$L>%yB=Os3fZwZ4JuoCZb9ZhnUEq^XA43PTME4qfm z4=y=bTebfJxY+|FQ0|QBH+V_7(PT({F|r3=u*NIcZ!kewHN>utHY?O{3)<6lLVn_d zj5^-)k~!A10{fI6-uKgfg$cNMR28{fMBgTLj%Z#8>+8{fN6h}0JW`RrJduz}SaJWX zJNHRnWt2AQ3ORTyEnvVNFu~q{Y;+-g4xgEyYmCI?%U4#OL=QfW4LPCm*Vk#v-?3)* zT6ooC-1#PYZN;FL7@Te@_fuJzq0*7=+YH7XX6h6Q_lMoHx9x&VI7vMl)DMWEW!@g~ z3*tExarF|}1Z^Qes8kRYJIzVP!V5*=d~>mnYzuNz5(d5Yb@xWHrbxNn4nUUGUk7_a zs&px9f=gy`<)&JKbLLNq;*p)yADwCHsyE{zaZFL#6VlZ@JS~MCa)lNSjoF)SsW7X3 zW7)Nb&zcP{cyNgjUGO@!S0O-h)!);!5lo6ZNuV;d=SE%&OL4^pyuav`hA~8=!dPy^ z%D6Zht|~LKtoee|$TsqK%=<(6Y}z7hcH|}3Uxu?>LPyKbdK>RF%`f;1I6o?EDpF?Y zUme%9#96T$fSk&g#;MkjKwNh9q}X=NC&Eqb1Awcms{_3S9L@zwtv90Z5Vfnk2O*=> zaM3^3Vcsn7WcCthSRk&c>n_{JLJIF)>k*>((R(r1bODb*J)P03#XV$l;GU)!ku`2PsWt^OL$V}_EvtSXZ09K9&?TeFC3L)p1boV;|6l>X*d6Lm6z zGOB8#*J=fjB&Dayv%!^G5Bxmd3Yg!n>llwX!j5GK^sjWqw;R3Pv;l2rw@SA{De$3bKNC3v9M}mDDuFn6YylU<+^XluM3Ed5!HSYlp z=yd~Q$cTgX1WAA@@08rs(RxbV14FkPgVI-rjzs2lof=%mX=^%^@Kiq8dp<^uhj9U_ z4*4WVrU|>R!h{X!=}2{@cz}BzK}eeX{A$ii0Z#|Ld~zN`i)x(`W~e|RHJt9^R>(Bz z=Io%t=;nF5QCxEZN=uvff!rr<5KvdD!AO=HSmakZ|}ah2S{>>qB(B8`k6C`bO! zeD_C#i`=Ea!Cej4c5rh_N#H{-BFY zy$nY@Q~$(SmlD3BU8H0Ocj3Nt09=MR;o%no^u^=AkT$?nc+Mm zs0q%(`9z8tG_B!&%zSpfUzX&wHD|VY=&9#!w!Qx6Usolg#slc`^C57J?jG5P5i%p_pDOfF-PFz717-@Pb{{1TvfN^ z&*BJ|g(voI^-<__X)wB!dewRPwE4Wx_!><>bF0l($)Kr@6Uqv#chAS{U9#_@4sd)p zXR2t-_09VETWfJ7Jez{FxS|)t~Y+%_Y6-YL^sWaG1JHr-#2$N4UdUaKV)S z$G81gJKX^sK^O1Ns^8H$ls>$J>P4(2TpMI|QzD4{qzuK3Z z-zQDD?y|PJPo-r};;K0f``mxU9i7M#&}n(|=lW0V9WNaZ7y%RCw8l%IF&4(zEQ`W~ z0(z`|QPG9suiaQE(50k$0VB%56kP1)(Z$nOtxqXINHJbmA5(ediDG0 z*T>?_&#bw)J?^{ZiS|1G#uxwpObW~?IzP2r&HJ99y2WDC%g=8EAj=#Pu z`PY{u{CWTR#C@l|xT=6-bj|m}TZI>V5np@;H~_u?)S}f|c*GRcZ;(-a@SIy?icP`k z&c)AwZ7P|mG8@62VqiP~r6;L5a5!8#BFPWxLb@_J|76-@Hy_fgNCVC-n^`m&-Mx&Y zUg3f80pOb?#wSKy@7eO-9MY zD;xpOPC%`P$lXwAU_8L)`U^C$i>k}Q57@kX%-vD}w*c;b(5&E%1s?L4GRJ{Ar=X@$ z02GR-CME!<_!y)`UNU3IJg@+!wmyAm~a6V%`V8bHTL`tYA| Xo<}reyzJ3M3_#%N>gTe~DWM4f$YAAn literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon.appiconset/图层 1@2x.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/AppIcon.appiconset/图层 1@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e99b952670ae3c6324939c3054df5f62c82ba49c GIT binary patch literal 95810 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 z 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 Xo<}reyzJ3M3_#%N>gTe~DWM4f$YAAn literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/Contents.json b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/Contents.json new file mode 100644 index 0000000..cc06957 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "homeTabar_nomarl.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "homeTabar_nomarl@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "homeTabar_nomarl@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/homeTabar_nomarl.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/homeTabar_nomarl.png new file mode 100644 index 0000000000000000000000000000000000000000..760ba2b76e36a1ca9456b8ff9d2c0aae926fdf4e GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyy~ST)>QAgB12no(xpMxW&`OF~mY} z?xek5%#I?h#I4X1GyVuepPfN)TZjPR7 zSzEsr?TlgB?z||#S>(NoT*sDI!i}jdd7bN5*1NpfRL+<=eXpd<+E4l?w=n-t_Ebo9 z*rBwCv4*W;N!Q*&G^kci9z9lQc}N9vr#?EZA05+ zU8TSO-)ERewYh%NeAE9}?awBq6+yeW-|I1LF;_XE=U2i0xg@Kjn)CYxU-su+pT$pE zoO%9vSL`o8mS7E$5TluQ9@HKCw=2fWAmhLAl;mY%KbaKeo+O`~t`z`^M^9Hjmvv4F FO#sK7;vWD2 literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/homeTabar_nomarl@2x.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_nomarl.imageset/homeTabar_nomarl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..978a3744e908908ed73a90cbf32da2fbfe1d7027 GIT binary patch literal 1043 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 G&;$T$%mbtV literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_selected.imageset/homeTabar_selected@2x.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_selected.imageset/homeTabar_selected@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c5426a4909a0ebc9db1128e8c1fa0b896e692de1 GIT binary patch literal 1162 zcmV;51aPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91BA^2R1ONa40RR91ApigX07cr{ga7~o^hrcPR9Fe^mtTm~RTRh1Iln)n zB515gg5}J*R8YPYf{JN7e{^3AELcc_u(zOs@FAfGL8Km%B6{c{#0SYBUyM{%c4l{d z=xwtIf_m7UwRX#vwWVTZ=l8q6dpzf-gZ}0>v(BnB_Rxjl$M4?XJ@<3J=iGD8V6I$# z9vwWv44VPK$gi8tMT7|edL45km3bgq3)XfM;PzTX0L=6BP$3jY1wed+9-0!jHHl$F zm;XlVE{Nj*`o6?wdf9YOhXg{;1Bjw&2!pfo{72# zuA2Z!z9ohp%u5Urgq1MEuTAeL&Zt#Jj*@zax0bb>_*Q+~xSOUnM0)*}!{8Je^YZkL zLJYCFQrQpWyw6dTnASE(>|<-MaxFL~GXJdaD8bjXDX>GpLHJR1cJAP0sr0vgm#b9X zv<{t?_~>a&8*PEaJ2T<;j^#qNP}s*v+pP%?OGcbg=@X|w;SeK%eXp9&AA-TbNWR1D zXypjH&Zok&LV`8LuPL5Wy?1mdgbjiTcHGjH-Mg!I48f+07jxwMhXDB?y51_*EXlk8 zLHJI!RQg=M?YnRx6RleDA(Hb}><+oqnzbcCRDPNKo6LQ2s=xmSHIN-1-ewVJe=Qa# z>jwMA%G)CgN5S=;W)rP_k@(fAV)3lbmfdY(&pj`IkHr$-GI`T=Qo=BQ0~U@m(T~WyOOnFJ5;MK+ zC{d?NCNw?!h@tHC?dmOvjiW<-49=NG2sIEx=^W4BCyNe9o|=;*^C(KCwHyewl>mud zV$6iISo=Z;)z2}6=RMidu=pp)$>SnloHK`3hL zO79?mnpOta8gp4Lu4m=6ba=TI<~0O@;IbQ9-s9I64@eH#Ah&1hTd9Se`{^cf!Ls>1 z49u7JW9R?59aW%tgi2|b8yP8)M^CWf2lDS+DtD3sZf5nhYv+F&9847`>C7to&W??3 z0)*4-`aOW@`tn|+K`Aes(7?jFwJ*s0ON};~f{-!umhdWuVb8tXq>YQj?^@?r`NMx0Z_258^5K_?f?J)07*qoM6N<$f`%|59smFU literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_selected.imageset/homeTabar_selected@3x.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/homeTabar_selected.imageset/homeTabar_selected@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1747bd415f9e933bbe7448479b509f262cfed0a7 GIT binary patch literal 1690 zcmV;L24(q)P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91GoS+i1ONa40RR91G5`Po0P<~Q=l}o)1W80eRA>e5T3>7wMHruNZf|>O zO^qQ~qXc@C_@JVgpb#L!9Y;u1tns0dn4+kVpzuOOjDN5`5TmFMiVqNi2|^S?A_|gJ zdUw=ltcjTT(1#jqOG6BVQu)_jd%H8^Z=sI_?TROk z4JzZptYmTvDV6k6jyFZGmbb7@6H!v0BO%vx#qvZ35!hvZP>N176b>_HS*=p4bsdSs zFK*y7lF55Gv3Hpc2p)l8;xwZNa7P_CibBg;BbI#rLg=wzos7;)A6Nx4pS4mEX6%XB~EX#fC zhVr<5hA@*#iY}&Def#niKe{BRs#A?$sDXiX(9~MYIA_9Vzo&_4tytL)?MQjU*+q*o zE;$Sv$LA@;KSf<-A=&--G^2?KaYbb97hw`^A`X_$_{v`uqm770b+GT>fLJ+NbR*Sk zg;F*X@;%<4-8PI!Lj#YdlN*Vt&k7}?MN>4D^v@66gAbOm2|_R4&jzwDwMp#`Bv)Tk1{mPavbtV!=+%oPy zdbB)JQSpgFJIDUUxC1VnjGj#x2JCBVM=bG?Hk}-h87EH6HI2|WsH=h>eGA4rI^yv^ za`*FRr3fqdGUB37n_|8mg=kY#6-e%YkJUS&*JB-VxA!U+M#j+yS7g~A%;fx?ld)KS zuU+$V3MQi$Gh2LVUc2^cTW#&toEUB2WfkRL0mM^&VN<6jh-on)5HMJUgS9`|{4G8&9!9XHA=R-azD@Jeo!`&(Ph zzVqkyAhoD>qRnV#p|u1v1>r0_?rUbS{aC~=8AMBAimzibrUxyCxp9NezGN^6leXQ; z&9cYamn`YZ3reSrY9?PpRN4-3K$(vN`6hk^Efb`4q{~8U5l5qA=tSMQwx=$Vuf zxt7>Ij0k!~mDmPuR9j7f?_``we$TDe; zDKf>X%1Ndfo!(D|13b8swv;*{jbF+P$6MMLNXoy6>%BeJlM?&sj2vrXhg9r2pl2+a zOwPhC?@)X0)>olD^FDb*8l(j07*qoM6N<$g0iFkX8-^I literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/Contents.json b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/Contents.json new file mode 100644 index 0000000..ec44ec8 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "mianTabar_nomarl.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mianTabar_nomarl@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mianTabar_nomarl@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/mianTabar_nomarl.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/mianTabar_nomarl.png new file mode 100644 index 0000000000000000000000000000000000000000..6a20a63ed34bf31b6bec60f1f3a677bdc88f444a GIT binary patch literal 695 zcmeAS@N?(olHy`uVBq!ia0vp^fOl=ZvQE8s>{O$Xgz1QDw^E@bL@qONV>*s&=|F4wDYMOHT zY31onm$v2ZS9l`*OKtX9v*WGOkM*>to?7jo5Mbu}`C)=Vzzv}^{`SM?H%8gjC%A2e^ICuYSQa+Yo zBBlHM^Uw9`&X@51+3^fsDvw>IS;ImcAtpJ+1s?CT1feWzP?$t=HM=OErt-*~i2Z@TrR$4CEh zFNx4Ow;^D)%GrnSKmOAHBJ(!jT!_-d9eE~F&#fkGR}V1JRAg<={jzb2qHl@oxkVcU zAJqQZHrH=?eb;?PL56J~ZA(iC`<IKY0yi_-n)!H1s%$Z=k{>5DHgsrntA5+{e4Ye U7A_Jp_5>vwPgg&ebxsLQ08+mi6951J literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/mianTabar_nomarl@2x.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_nomarl.imageset/mianTabar_nomarl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..faeac61c7e2e33ab93219ea483bf5a4c32e7a097 GIT binary patch literal 1266 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 V_0B_JTKoV2002ovPDHLkV1ma{e8B(! literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/Contents.json b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/Contents.json new file mode 100644 index 0000000..b322e05 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "mianTabar_selected.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mianTabar_selected@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mianTabar_selected@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/mianTabar_selected.png b/DoctorXinjiang/DoctorXinjiang/Supporting Files/Assets.xcassets/mianTabar_selected.imageset/mianTabar_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..030ac9661678aa463d6b2be76981682b22996da6 GIT binary patch literal 732 zcmeAS@N?(olHy`uVBq!ia0vp^fZqIk1J_BX@4nmjvHH1Wd1>>p#_iVmY4^TAdwx6hmJ{E# ztiw;NrXM{anHHtu96mca`RkSfKV!KS_PY+;+I_6=mZGD>8w(YuLuz}L7qzZjdhz1b zAC|KBBlcR@*Eek`=3X9AwRd0ip$Q#|KM%bu$gQ2*a!&ZMrNGzVjqew8bL&k!vmwYQ zP^A2zPD+8?yv@Jo+u8}0t2x|y`_0aR|E5q7tHYDZTb!Yq@BAAiaz7QMJz~tz zTh62}?o0m83^^pzuWr=Vb7J-mL&3lMV*YjU-3y&3-hcCoHx za^q~Pxy!ZYt6!6tca}@}S{^l6Ru;l^w{CdinUt6+g zZ$A6+Hf4_o7+k?=8!7Df!BWgqYUZNG7E<7~@iJg=|6II0zy zlPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91BA^2R1ONa40RR91CIA2c0QdR_lmGw(>PbXFR9FecSY2pbMHHTy`?K39 zHh+cMmgc86DxnWG?X%saNee1klzq^mg$fZ7p_r=RyOtt|eNaS7poo+pKC~JlNwd+K zQjy|Qz?U>JkwClVp^&~6*lax}-XiXQ|=bL}NF?_(QN42a+c-z?6!%eNN!7Jb2O^)-Oa_xO4ygy$s%a!4bML%tw+eg5eq%RzcVfh-RVtq7^U@f8JWs5Z_= zYdDz5^I@W)K>US7XDPkDf@Bw_CvXnIOi;#~>X33gPzV!Mfh-IR{2_!sg(u3?dqg=9 znMLI3H)mq8fOMUMR}~10E%XnL!76V7Osb}1;>;V33gczxHHnv&2L|SI+XesD<(qr1 zT-bt15MIEE5R0BguscSE z4ggRKQUF^v3vDYn?O9FU#ijnCS(dN0)dgh7<;zW59A}4c-L2SsE5f!*3V%cvu%JfO zz-8Yxp0^fJ>bA4Gnw*QrLkprj(5gT>M@OTwyJHAZ_5~@`L1A<^c5`_lA|1OW>P9~y zu~j(WfFP2C;2KH!yCUc-Y@&|D0qs76&>y?&Q1k&--#G_W${TNU5vb0f|b3M^W7G_W`qH9*Kfmdf1lF2h7 z9xr*K{{ZQp`o2e4TfRme(#JJtLjcMj9oFH%NLlZKcl)n5{*1>{d6AMh(sS+FPGdzc zf{cBBjoOG6@;ek?5$WODuukMvXItAjJY>NT8$c2X+gne4t|HO>z9otk+~>Yu-P_LV zT{F|~(w?do9A~Pxb^e=I?EOTVbqHVLSeBIS3U#(&C2*{?gzx)O#kC{>3i?H_LnY1o%@| zCiA6CXFe_X?5>H4R>!v9C(AmH4|FXI@Bvx~m886hs^#2#EOs7y>3;wNgxX@HR%cuQ O0000rIr00001b5ch_0Itp) z=>Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91GoS+i1ONa40RR91IRF3v0EN9(`2YY1u}MThRA>d&T5D`nMHHTydw1_{ zx2065tpugzAqiDu5WzOmwB5EK5l|E1hhWr5NJxlLBu0q_H2zT&jS1lqH0mFdVl+(& z2((=cQV>HFv5}_>2@)YZw9xM3?w#?QyKYn3-R|7oZP`w;y}NhL%sJnjGiS~@Q%Z8& zssb&AJ*2e4CB$Njk_N{448mA35rR=d{t<+n;es5-@7-a``t9<91--cv0rTgkmF?Z@ zD>U?GLbVsTWi3RP5D9f$s$YC{AXz5ga{^{cXXhd; z`^xKLCgl z8wBT0_(M4WrRzj+-b-S!t&zUaJC_zO?sGOtoErMhux;GPDkk2w0YJ7xpb`-d6XFzz zWDQdkCM=F~AJw#VhR^%)q_(z#Or**fOl9rk8<_6e1g1125QC+apzxtC_bS8ZTZbRo zV3KsdGcvQvj*eQQv0cze5jJu<9?tsV9H617u*?;~I{!{5gB^pJx_^JM(6w){c^mCL z;)I(jt@L)BpLJ1IeY(D0*~>XLGr`zO<{m*H5-|22v@< z!e7!86`Yao;8A8!5>7i>6PhYY>r&;VY-V!8i+=xK$U1gXx6*;EDnoKQEEr<5L+9%1x|0(Oed`E}98M$VW~8@& zkEkP%Kuj}Cx%dQDpd1J~1`}Mk@C1*U?@BWmDRV>oCr`9(!N$geL)Sm`8^>VeO8Lqs zeI_E&UDWWTo;kxF<}px)itX}Ph3`3?!Z{dl=&q`YQpXwB-tCyIu&rPp)ncN&(PRxKG3k`{_G+eS zFQJ;Z9Hv(!WYs2B9Sz>fK1ZU_n&DEP4+~)} zfJ2>+SF_+(i}6hGk#6>1e9kdO58)7Qiy6joXhZ3Q$GBmeQl2pE3`xNP(1&g zGyPYeVI1wwaNjrw6A0+{Y1aL^MV}{}G$Fj1jA-C)>cN>~XNC|l(d^liuozg~k^2W9 zE^E~Upt!gw7}|A)QHB^YD05Cqj&=6j3^nn5n z9h&|P00C88dGV5O7(vZ0X#3Nk-~S`}2CP!@>6F08LL30Bry6@1AjZY-RMO6!oTG!c zakp*u5Ki~t0&CNSrlvoJ8=e+S#s2+uD8_vV5OXB4?Q(~kG1q-KOzlglaQGyO8?Qi1 z`%|Bb?_XVn#W5>cjJ?SDdPND5It#Mwk9a@^$GK5l+C81cx^(&e$C)487~NbE736~ zo-z-jV&$~GKin(j?FWMZa1GJ)%9LSy9-@1u(+lS)9=a^Ue*Y#?aqmYlpFFL~d2KnZd;7+W#&R5Aga4 z$IusC6Yv$R4k0}%hYw^O_1;P3@~WM(`3$vB53-3VV`<~3ShwlSh(z2dDva)3WeRDs zeC=TdrLxXCZsfC*EJaN>9ElxsX__o3+!_+3r5l`Q{U}#)R<3EX^m7%lwBEml2ow=4N+~d#(JJ;@j1LyM&5;`{n}etEd@Q!^2I; xJ5-PnHSOytM|45>FTGc1>=`650R&002ovPDHLkV1lhY&JzFt literal 0 HcmV?d00001 diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/PrefixHeader.pch b/DoctorXinjiang/DoctorXinjiang/Supporting Files/PrefixHeader.pch index 300c554..318f462 100644 --- a/DoctorXinjiang/DoctorXinjiang/Supporting Files/PrefixHeader.pch +++ b/DoctorXinjiang/DoctorXinjiang/Supporting Files/PrefixHeader.pch @@ -13,10 +13,10 @@ #import "FontAndColorMacros.h" #import "ThirdMacros.h" #import "StatusMacros.h" -#import "HQConst.h" -#import "HQCommonUtils.h" -#import "YXUserInfo.h" -#import "YXNetAPI.h" +#import "XJDConst.h" +#import "XJDCommonUtils.h" +#import "XJDUserInfo.h" +#import "XJDNetAPI.h" //基础类 #import "AppDelegate.h" #import "AppDelegate+AppService.h" @@ -25,7 +25,7 @@ #import "YXBaseTabBarController.h" #import "MBProgressHUD+XY.h" #import "AppManager.h" -#import "IMUserInfoModel.h" +#import "XJDIMUserInfoModel.h" #import "ESCTUIManager.h" //分类 #import "UIButton+NYS.h" diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/XJDConst.h b/DoctorXinjiang/DoctorXinjiang/Supporting Files/XJDConst.h new file mode 100644 index 0000000..7d6d617 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Supporting Files/XJDConst.h @@ -0,0 +1,18 @@ +// +// HQConst.h +// healthQuestion +// +// Created by xulei on 2022/8/12. +// + +#import + +#import + +extern NSString * const LoginUserInfo; + +extern NSString * const LoginSeccess; + +extern NSString * const LogoutSeccess; + +extern NSString * const IMLoginUserInfo; diff --git a/DoctorXinjiang/DoctorXinjiang/Supporting Files/XJDConst.m b/DoctorXinjiang/DoctorXinjiang/Supporting Files/XJDConst.m new file mode 100644 index 0000000..9caff8f --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Supporting Files/XJDConst.m @@ -0,0 +1,17 @@ +// +// XJDConst.m +// healthQuestion +// +// Created by xulei on 2022/8/12. +// + +#import "XJDConst.h" + + +NSString * const LoginUserInfo = @"LoginUserInfo"; + +NSString * const LoginSeccess = @"LoginSeccess"; + +NSString * const LogoutSeccess = @"LogoutSeccess"; + +NSString * const IMLoginUserInfo = @"IMUserInfo"; diff --git a/DoctorXinjiang/DoctorXinjiang/Utils/XJDCommonUtils.h b/DoctorXinjiang/DoctorXinjiang/Utils/XJDCommonUtils.h new file mode 100644 index 0000000..84b9900 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Utils/XJDCommonUtils.h @@ -0,0 +1,95 @@ +// +// XJDCommonUtils.h +// healthQuestion +// +// Created by xulei on 2022/8/16. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDCommonUtils : NSObject + + + +/** + * 判断APP是否第一次运行。使用UserDefault来记录的,key为RunCount + * @return 返回BOOL值。YES表示第一次运行APP,NO相反 + */ ++ (BOOL)isFirstRunApp; + +/** + * 判断用户是否第一次登录。使用UserDefault来记录的,key为LoginCount + * @return 返回BOOL值。YES表示第一次登录,NO相反 + */ ++ (BOOL)isFirstLogin; + +/** + * 判断APP是否登录 + */ ++ (BOOL)isLogin; + ++ (NSString *)SFZHID; + + ++ (NSString *)loginID; + +//判断密码是否满足 8位 包含大小写数字 ++ (BOOL )isOrNoPasswordStyle:(NSString *)passWordName; + +//归档和解归档 ++ (void)keyedArchiverWithData:(nullable id)responseObject key:(NSString *)key; ++ (nullable id)keyedUnarchiverWithKey:(NSString *)key; +//编码问题 ++(NSString*)DataTOjsonString:(id)object; + + +//计算UILabel的高度(带有行间距的情况) ++(CGFloat)getSpaceLabelHeight:(UILabel *)label + AndLeftisTrue:(BOOL)isLeft + withStr:(NSString*)str + withFont:(UIFont*)font + withWidth:(CGFloat)width + withLineSpacing:(CGFloat)linespace; + +//计算宽度 ++(CGFloat)getLengthFromText:(NSString *)text andFontSize:(CGFloat)fontSize; + + ++ (NSMutableAttributedString *)firstString:(NSString *)firstString + firstColor:(UIColor *)firstColor firstSize:(CGFloat)firstSize secondString:(NSString *)secondString secondColor:(UIColor *)secondColor secondSize:(CGFloat)secondSize + thirdString:(NSString *)thirdString thirdColor:(UIColor *)thirdColor thirdSize:(CGFloat)thirdSize; + +/* + 添加阴影 : 注意与贝塞尔裁圆 + */ ++ (void)addShadowToView:(UIView *)shadowView; + ++(UITextField*)createTextFieldWithplaceholder:(NSString*)placeholder passWord:(BOOL)YESorNO leftImageView:(UIView*)leftView isShowLeft:(BOOL)isLeft rightImageView:(UIView*)rightView isShowRight:(BOOL)isRigt Font:(float)font textColor:(UIColor *)color; + ++(BOOL)isMobileNumber:(NSString *)mobileNum; + + +///将时间戳转为日期时间 + +/// @param timestamp 时间戳 + +/// @param dateFormat 日期样式 YYYY-MM-dd HH:mm:ss + ++ (NSString *)getTimeFromTimestamp:(NSInteger )timestamp andDateFormat:(NSString *)dateFormat; + +///将日期时间转为时间戳 ++ (NSString *)getTimestampFromTime:(NSString *)CurrentTime; + +/* + 获取当前控制器 + */ + ++ (UIViewController *)getCurrentVC; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Utils/XJDCommonUtils.m b/DoctorXinjiang/DoctorXinjiang/Utils/XJDCommonUtils.m new file mode 100644 index 0000000..2bed42b --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Utils/XJDCommonUtils.m @@ -0,0 +1,435 @@ +// +// XJDCommonUtils.m +// healthQuestion +// +// Created by xulei on 2022/8/16. +// + +#import "XJDCommonUtils.h" +#import "XJDUserInfo.h" + +@implementation XJDCommonUtils + ++ (BOOL)isFirstRunApp +{ + NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; + NSInteger runCount = [ud integerForKey:@"RunCount"]; + if (0 == runCount) + { + [ud setInteger:++runCount forKey:@"RunCount"]; + [ud synchronize]; + return YES; + } + return NO; +} + ++ (BOOL)isFirstLogin +{ + NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; + NSInteger loginCount = [ud integerForKey:@"LoginCount"]; + if (0 == loginCount) + { + [ud setInteger:++loginCount forKey:@"LoginCount"]; + [ud synchronize]; + return YES; + } + return NO; +} + ++ (BOOL)isLogin +{ + if ([self keyedUnarchiverWithKey:LoginUserInfo] == nil) + { + return NO; + } + return YES; +} + + ++ (NSString *)loginID +{ + NSString *string = nil; + if ([self isLogin]) + { + XJDUserInfo *userInfo = [self keyedUnarchiverWithKey:LoginUserInfo]; + string = [NSString stringWithFormat:@"%@",userInfo.user_id]; + } + else + { + string = @"0"; + } + + + return string; +} + ++ (NSString *)SFZHID +{ + NSString *string = nil; + if ([self isLogin]) + { + XJDUserInfo *userInfo = [self keyedUnarchiverWithKey:LoginUserInfo]; + string = [NSString stringWithFormat:@"%@",userInfo.idCard]; + } + else + { + string = @""; + } + + + return string; +} + ++(CGFloat)getLengthFromText:(NSString *)text andFontSize:(CGFloat)fontSize{ + NSDictionary *attrbute = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]}; + return [text boundingRectWithSize:CGSizeMake(MAXFLOAT, 50) + options:NSStringDrawingUsesLineFragmentOrigin attributes:attrbute context:nil].size.width;; +} +/*! + * @brief 把格式化的JSON格式的字符串转换成字典 + * @param jsonString JSON格式的字符串 + * @return 返回字典 + */ ++ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString +{ + if (jsonString == nil) { + return nil; + } + + NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; + NSError *err; + NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData + options:NSJSONReadingMutableContainers + error:&err]; + if(err) { + NSLog(@"json解析失败:%@",err); + return nil; + } + return dic; +} + + ++ (void)keyedArchiverWithData:(nullable id)responseObject key:(NSString *)key +{ + NSMutableData *saveData = [NSMutableData data]; + NSKeyedArchiver *keyedArchiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:saveData]; + [keyedArchiver encodeObject:responseObject forKey:key]; + [keyedArchiver finishEncoding]; + + // 获取沙盒目录 + NSString *fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:key]; + if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) + { + [[NSFileManager defaultManager] removeItemAtPath:fullPath error:nil]; + } + //写到文件中 + [saveData writeToFile:fullPath atomically:YES]; +} ++ (nullable id)keyedUnarchiverWithKey:(NSString *)key +{ + // 获取数据目录 + NSString *fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:key]; + + NSData *saveData = [NSData dataWithContentsOfFile:fullPath]; + + NSKeyedUnarchiver *keyedUnarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:saveData]; + + return [keyedUnarchiver decodeObjectForKey:key]; +} ++(NSString*)DataTOjsonString:(id)object +{ + NSString *jsonString = nil; + NSError *error; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object + options:NSJSONWritingPrettyPrinted + error:&error]; + if (!jsonData) { + } else { + jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + } + return jsonString; +} +//计算UILabel的高度(带有行间距的情况) ++(CGFloat)getSpaceLabelHeight:(UILabel *)label + AndLeftisTrue:(BOOL)isLeft + withStr:(NSString*)str + withFont:(UIFont*)font + withWidth:(CGFloat)width + withLineSpacing:(CGFloat)linespace{ + NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init]; + paraStyle.lineBreakMode = NSLineBreakByCharWrapping; + if(isLeft == true) { + paraStyle.alignment = NSTextAlignmentLeft; + }else + { + paraStyle.alignment = NSTextAlignmentRight; + } + //设置行间距 + paraStyle.lineSpacing = linespace; + paraStyle.hyphenationFactor = 1.0; + paraStyle.firstLineHeadIndent = 0.0; + paraStyle.paragraphSpacingBefore = 0.0; + paraStyle.headIndent = 0; + paraStyle.tailIndent = 0; + //设置字间距 NSKernAttributeName:@1.5f + NSDictionary *dic = @{NSFontAttributeName:font, + NSParagraphStyleAttributeName:paraStyle, + NSKernAttributeName:@1.0f + }; + if(str.length < 1) { + str = @" "; + } + NSAttributedString *attributeStr = [[NSAttributedString alloc] initWithString:str attributes:dic]; + label.attributedText = attributeStr; + CGSize size = [str boundingRectWithSize:CGSizeMake(width, MAXFLOAT) + options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size; + return size.height; +} + + ++ (NSMutableAttributedString *)firstString:(NSString *)firstString + firstColor:(UIColor *)firstColor firstSize:(CGFloat)firstSize secondString:(NSString *)secondString secondColor:(UIColor *)secondColor secondSize:(CGFloat)secondSize + thirdString:(NSString *)thirdString thirdColor:(UIColor *)thirdColor thirdSize:(CGFloat)thirdSize{ + + + + NSMutableAttributedString * firstPart = [[NSMutableAttributedString alloc] initWithString:firstString]; + NSDictionary * firstAttributes = @{ NSFontAttributeName:[UIFont boldSystemFontOfSize:firstSize],NSForegroundColorAttributeName:firstColor}; + [firstPart setAttributes:firstAttributes range:NSMakeRange(0,firstPart.length)]; + + NSMutableAttributedString * secondPart = [[NSMutableAttributedString alloc] initWithString:secondString]; + NSDictionary * secondAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:secondSize],NSForegroundColorAttributeName:secondColor}; + [secondPart setAttributes:secondAttributes range:NSMakeRange(0,secondPart.length)]; + [firstPart appendAttributedString:secondPart]; + + NSMutableAttributedString * thirdPart = [[NSMutableAttributedString alloc] initWithString:thirdString]; + NSDictionary * thirdAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:thirdSize],NSForegroundColorAttributeName:thirdColor}; + [thirdPart setAttributes:thirdAttributes range:NSMakeRange(0,thirdPart.length)]; + [firstPart appendAttributedString:thirdPart]; + + return firstPart; +} + ++ (void)addShadowToView:(UIView *)shadowView { + + shadowView.layer.masksToBounds = NO; + shadowView.backgroundColor = [UIColor whiteColor]; + shadowView.layer.shadowColor = [UIColor blackColor].CGColor; + shadowView.layer.shadowOffset = CGSizeMake(0, 4); + shadowView.layer.shadowOpacity = 0.15; + shadowView.layer.shadowRadius = 5; + shadowView.layer.cornerRadius = 8; + +} + ++(UITextField*)createTextFieldWithplaceholder:(NSString*)placeholder passWord:(BOOL)YESorNO leftImageView:(UIView*)leftView isShowLeft:(BOOL)isLeft rightImageView:(UIView*)rightView isShowRight:(BOOL)isRigt Font:(float)font textColor:(UIColor *)color +{ + UITextField*textField=[[UITextField alloc]init]; + //灰色提示框 + textField.placeholder=placeholder; + //文字对齐方式 + textField.textAlignment=NSTextAlignmentLeft; + textField.secureTextEntry=YESorNO; + + //边框 + //textField.borderStyle=UITextBorderStyleLine; + //键盘类型 + textField.returnKeyType=UIReturnKeyDone; + //关闭首字母大写 + textField.autocapitalizationType=NO; + //清除按钮 + textField.clearButtonMode=NO; + //左图片 + if (isLeft == true) { + + textField.leftView=leftView; + textField.leftViewMode=UITextFieldViewModeAlways; + } + if (isRigt == true) { + textField.rightView=rightView; + //编辑状态下一直存在 + textField.rightViewMode=UITextFieldViewModeAlways; + } + //右图片 + + //自定义键盘 + //textField.inputView + //字体 + textField.font=[UIFont systemFontOfSize:font]; + //字体颜色 + + textField.textColor = color; + + return textField; + +} + + ++ (BOOL)isOrNoPasswordStyle:(NSString *)passWordName + +{ + bool isAlow = true; + + if (passWordName.length >= 33) + + { + + isAlow = false; + + } + + else if ([self JudgeTheillegalCharacter:passWordName]) + + { + + isAlow = false; + + } + + else if (![self judgePassWordLegal:passWordName]) + + { + + isAlow = false; + + } + + return isAlow; + +} + ++ (BOOL)JudgeTheillegalCharacter:(NSString *)content{ + + //提示标签不能输入特殊字符 + + NSString *str =@"^[A-Za-z0-9\\u4e00-\u9fa5]+$"; + + NSPredicate* emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", str]; + + if (![emailTest evaluateWithObject:content]) { + + return YES; + + } + + return NO; + +} + ++ (BOOL)judgePassWordLegal:(NSString *)pass{ + + BOOL result ; + + // 判断长度大于6位后再接着判断是否同时包含数字和大小写字母 + + NSString * regex =@"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$"; + + NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; + + result = [pred evaluateWithObject:pass]; + + + return result; + +} + ++(BOOL)isMobileNumber:(NSString *)mobileNum +{ + //手机号以13, 15,18,17开头,八个 \d 数字字符 + NSString *mobileRegex = @"[1][3456789][0-9]{9}"; + NSPredicate *mobilePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", mobileRegex]; + + return [mobilePredicate evaluateWithObject:mobileNum]; + +} + +///将时间戳转为日期时间 + +/// @param timestamp 时间戳 + +/// @param dateFormat 日期样式 YYYY-MM-dd HH:mm:ss + ++ (NSString *)getTimeFromTimestamp:(NSInteger )timestamp andDateFormat:(NSString *)dateFormat{ + + //将对象类型的时间转换为NSDate类型 +  NSTimeInterval _interval= timestamp / 1000.0; +   NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval]; +    NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init]; + //设置时间格式 + + [objDateformat setDateFormat:dateFormat]; + + //将时间转换为字符串 + + NSString *timeStr = [objDateformat stringFromDate:date]; + + return timeStr; +} + ++ (NSString *)getTimestampFromTime:(NSString *)CurrentTime { + + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + + [formatter setDateStyle:NSDateFormatterMediumStyle]; + + [formatter setTimeStyle:NSDateFormatterShortStyle]; + + [formatter setDateFormat:@"yyyyMMddHHmmss"]; //(@"YYYY-MM-dd hh:mm:ss") ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制 + + //设置时区选择北京时间 + + NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"]; + + [formatter setTimeZone:timeZone]; + + NSDate* date = [formatter dateFromString:CurrentTime]; //------------将字符串按formatter转成nsdate + + //时间转时间戳的方法: + + NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]] integerValue] * 1000; + + + return [NSString stringWithFormat:@"%ld",(long)timeSp]; +} + ++ (UIViewController *)getCurrentVC { + + return [self currentViewControllerWithRootViewController:[self getKeyWindow].rootViewController]; + +} + ++ (UIWindow *)getKeyWindow { + if (@available(iOS 13.0, *)) { + for (UIWindowScene* windowScene in [UIApplication sharedApplication].connectedScenes) { + if (windowScene.activationState == UISceneActivationStateForegroundActive) { + for (UIWindow *window in windowScene.windows) { + if (window.isKeyWindow) { + return window; + break; + } + } + } + } + } + else { + return [UIApplication sharedApplication].keyWindow; + } + return nil; +} + ++ (UIViewController*)currentViewControllerWithRootViewController:(UIViewController*)rootViewController { + if (rootViewController.presentedViewController) { + UIViewController* presentedViewController = rootViewController.presentedViewController; + return [self currentViewControllerWithRootViewController:presentedViewController]; + } else if ([rootViewController isKindOfClass:[UINavigationController class]]) { + UINavigationController* navigationController = (UINavigationController*)rootViewController; + return [self currentViewControllerWithRootViewController:navigationController.visibleViewController]; + } else if ([rootViewController isKindOfClass:[UITabBarController class]]) { + UITabBarController *tabBarController = (UITabBarController *)rootViewController; + return [self currentViewControllerWithRootViewController:tabBarController.selectedViewController]; + } else { + return rootViewController; + } +} + +@end diff --git a/DoctorXinjiang/DoctorXinjiang/Utils/XJDLineTextField.h b/DoctorXinjiang/DoctorXinjiang/Utils/XJDLineTextField.h new file mode 100644 index 0000000..d84b7ff --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Utils/XJDLineTextField.h @@ -0,0 +1,19 @@ +// +// XJDLineTextField.h +// healthQuestion +// +// Created by 仁康信息 on 2022/9/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XJDLineTextField : UITextField + +- (void)drawRect:(CGRect)rect; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/DoctorXinjiang/DoctorXinjiang/Utils/XJDLineTextField.m b/DoctorXinjiang/DoctorXinjiang/Utils/XJDLineTextField.m new file mode 100644 index 0000000..dbaad73 --- /dev/null +++ b/DoctorXinjiang/DoctorXinjiang/Utils/XJDLineTextField.m @@ -0,0 +1,26 @@ +// +// XJDLineTextField.m +// healthQuestion +// +// Created by 仁康信息 on 2022/9/21. +// + +#import "XJDLineTextField.h" + +@implementation XJDLineTextField + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +- (void)drawRect:(CGRect)rect { + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSetFillColorWithColor(context, UIColorHex(#E0E0E0).CGColor); + CGContextFillRect(context, CGRectMake(0, CGRectGetHeight(self.frame) - 0.5, CGRectGetWidth(self.frame), 0.5)); +} + +@end