// // HDLFVTempPassViewController.m // Ezviz // // Created by 陈启扬 on 2022/4/22. // Copyright © 2022 hdl. All rights reserved. // #import "HDLEZCreatTempPassViewController.h" #import "HDLEZCreateTemPassView.h" #import "HDLEZInputViewController.h" #import #import "HDLEZTempDetailViewController.h" typedef enum { HDLEZPickTimeType_Effective=0, //生效 HDLEZPickTimeType_Expire=1,//失效 }HDLEZPickTimeType; @interface HDLEZCreatTempPassViewController () @property(nonatomic,strong)HDLEZCreateTemPassView *tempView; //临时密码view @property (nonatomic, copy)NSString *selectedEffectiveTime;//已选择的生效时间 @property (nonatomic, copy)NSString *selectedExpireTime;//已选择的失效时间 @property(nonatomic,assign)HDLEZPickTimeType pickTimeType;//选择时间类型 @property(nonatomic,strong)HDLEZTemInfoModel *addTemPModel;//添加临时密码model @end @implementation HDLEZCreatTempPassViewController - (void)viewDidLoad { [super viewDidLoad]; [self setTopBarViewWithTitle:HDLEZLocallizedString(@"device_temp_pass")]; //保存按钮 self.topBarView.rightButton.frame = CGRectMake(HDLEZ_APP_SCREEN_WIDTH-16-50, HDLEZ_APP_STATUS_BAR_HEIGHT+(44-20)/2, 50, 20); self.topBarView.rightButton.titleLabel.textAlignment=NSTextAlignmentRight; self.topBarView.rightBtnTitle=HDLEZLocallizedString(@"device_temp_save"); [self.topBarView.rightButton addTarget:self action:@selector(saveTemp) forControlEvents:UIControlEventTouchUpInside]; _addTemPModel=[[HDLEZTemInfoModel alloc] init]; _addTemPModel.limitCount=@"-1"; // Do any additional setup after loading the view. } -(void)addSubViews{ //临时密码view _tempView=[[HDLEZCreateTemPassView alloc] init]; [self.view addSubview:_tempView]; [_tempView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view).offset(HDLEZ_APP_TOP_BAR_HEIGHT); make.left.right.equalTo(self.view); make.bottom.equalTo(self.view); }]; // _tempView.temPassType=self.temPassType; __weak __typeof(self)weakSelf = self; _tempView.userV.clickBtn = ^{//点击使用人 [weakSelf inputWithType:HDLEZInputType_User title:HDLEZLocallizedString(@"device_temp_user")]; }; _tempView.validTimeV.clickBtn = ^{//点击开始时间 [weakSelf selectEffectiveTime]; }; _tempView.expireTimeV.clickBtn = ^{//点击结束时间 [weakSelf selectExpirationTime]; }; _tempView.useCountV.clickBtn = ^{//点击使用次数 [weakSelf inputWithType:HDLEZInputType_UseCount title:HDLEZLocallizedString(@"device_temp_use_times")]; }; } /*点击输入内容 @param inputType 输入类型 @param title 标题 */ -(void)inputWithType:(HDLEZInputType)inputType title:(NSString *)title{ HDLEZInputViewController *vc=[[HDLEZInputViewController alloc] init]; vc.inputType=inputType; vc.navTitle=title; vc.inputDelegate=self; vc.modalPresentationStyle = UIModalPresentationFullScreen; [self presentViewController:vc animated:YES completion:nil]; } /*点击了选择生效时间 */ -(void)selectEffectiveTime{ self.pickTimeType=HDLEZPickTimeType_Effective; [self showDatePicker]; } /*点击了选择失效时间 */ -(void)selectExpirationTime{ self.pickTimeType=HDLEZPickTimeType_Expire; [self showDatePicker]; } /*点击了保存按钮 */ -(void)saveTemp{ if (!_addTemPModel.userName||_addTemPModel.userName.length==0) {//未输入使用人 HDLEZLog(@"未输入使用人:%@",_addTemPModel.userName); [self.view makeToast:HDLEZLocallizedString(@"device_temp_please_input_user_name") duration:1.5 position:@"center"]; return; } if (!_addTemPModel.beginTime||_addTemPModel.beginTime.length==0) {//未选择开始时间 [self.view makeToast:HDLEZLocallizedString(@"device_temp_please_select_begin_time") duration:1.5 position:@"center"]; return; } if (!_addTemPModel.endTime||_addTemPModel.endTime.length==0) {//未选择结束时间 [self.view makeToast:HDLEZLocallizedString(@"device_temp_please_select_end_time") duration:1.5 position:@"center"]; return; } if ([HDLEZConstants compareOneDay:[NSDate dateWithTimeIntervalSince1970:[self.addTemPModel.endTime integerValue]] withAnotherDay:[NSDate dateWithTimeIntervalSince1970:[self.addTemPModel.beginTime integerValue]]]==-1) {//结束时间早于开始时间 [self.view makeToast:HDLEZLocallizedString(@"device_temp_please_end_time_should_later") duration:1.5 position:@"center"]; return; } [MBProgressHUD showHUDAddedTo:self.view animated:YES]; __weak __typeof(self)weakSelf = self; [[EZHttpUtil sharedManager] addTempByHDL:self.addTemPModel deviceId:self.deviceId completion:^(ResponseData * _Nonnull responseData) { HDLEZLog(@"添加密码结果:%@",responseData.data); [MBProgressHUD hideHUDForView:weakSelf.view animated:YES]; if (responseData.success) { [[NSNotificationCenter defaultCenter] postNotificationName:HDLEZNotificationChangeTemP object:nil]; HDLEZTemInfoModel *tempInfo=[HDLEZTemInfoModel yy_modelWithDictionary:responseData.data]; [weakSelf toTempDetailVWithTempInfo:tempInfo]; }else{ [weakSelf.view makeToast:responseData.message duration:1.5 position:@"center"]; } }]; } /*跳转免密详情页 */ -(void)toTempDetailVWithTempInfo:(HDLEZTemInfoModel*)tempInfo{ HDLEZTempDetailViewController *vc=[[HDLEZTempDetailViewController alloc] init]; vc.temPdetailModel=tempInfo; vc.deviceId=self.deviceId; [self.navigationController pushViewController:vc animated:YES]; } /*展示时间选择器 */ -(void)showDatePicker{ FQDateTimePickerView *pickerView = [[FQDateTimePickerView alloc] init]; pickerView.delegate = self; //遵循代理 pickerView.pickerModel = FQDateTimePickerModelDateTime; //日期模式 pickerView.cancelColor = HDLEZ_COLOR_TEXT_LIGHT_GRAY; //取消颜色 pickerView.confirmColor = HDLEZ_COLOR_TEXT_LIGHT_BLUE; //确定颜色 pickerView.cancelText=HDLEZLocallizedString(@"device_temp_cancle"); pickerView.confirmText=HDLEZLocallizedString(@"device_temp_sure"); pickerView.unitsData=@[HDLEZLocallizedString(@"device_temp_unit_year"),HDLEZLocallizedString(@"device_temp_unit_month"),HDLEZLocallizedString(@"device_temp_unit_date"),HDLEZLocallizedString(@"device_temp_unit_hour"),HDLEZLocallizedString(@"device_temp_unit_minute"),HDLEZLocallizedString(@"device_temp_unit_minute")]; pickerView.minDate = [NSDate new]; //最小时间 [pickerView showPicker]; //展示 } /*时间转string @param date 时间 */ -(NSString *)turnDate:(NSDate*)date{ return [HDLEZConstants timeStrWithFormate:[NSString stringWithFormat:@"yyyy%@MM%@dd%@ HH:mm",HDLEZLocallizedString(@"device_temp_year"),HDLEZLocallizedString(@"device_temp_month"),HDLEZLocallizedString(@"device_temp_date")] data:date]; } #pragma FQDateTimePickerViewDelegate /// 确认操作 /// @param date 日期NSDate /// @param dateStr 日期NSString /// @param target 用于区分pickerView - (void)confirmActionWithDate:(NSDate *)date withDateString:(NSString *)dateStr withTarget:(NSInteger)target{ HDLEZLog(@"选择的时间:%.f",[date timeIntervalSince1970]); if (self.pickTimeType==HDLEZPickTimeType_Effective) {//选择生效时间 _tempView.validTimeV.contentL.text=[self turnDate:date]; self.addTemPModel.beginTime=[NSString stringWithFormat:@"%.f",[date timeIntervalSince1970]]; }else{//选择结束时间 _tempView.expireTimeV.contentL.text=[self turnDate:date]; self.addTemPModel.endTime=[NSString stringWithFormat:@"%.f",[date timeIntervalSince1970]]; } } #pragma HDLEZInputViewControllerDelegate /*输入了内容 @param content 内容 @param inputType 输入类型 */ -(void)inputContent:(NSString *)content inputType:(HDLEZInputType)inputType{ if (inputType==HDLEZInputType_User) { _tempView.userV.contentL.text=content; self.addTemPModel.userName=content; }else{ _tempView.useCountV.contentL.text=content; self.addTemPModel.limitCount=content; if (content.length==0) { _tempView.useCountV.contentL.text=HDLEZLocallizedString(@"device_temp_unlimited_times"); self.addTemPModel.limitCount=@"-1"; } } } @end