You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
472 lines
19 KiB
472 lines
19 KiB
// |
|
// AddWatchViewController.m |
|
// LekangGuard |
|
// |
|
// Created by ecell on 2022/10/12. |
|
// |
|
|
|
#import "AddWatchViewController.h" |
|
|
|
|
|
#define View_height Adapted(55) |
|
@interface AddWatchViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate,UITextFieldDelegate> |
|
|
|
|
|
/// 头像Btn |
|
@property (nonatomic ,weak) UIButton *iconBtn; |
|
/// 姓名Field |
|
@property (nonatomic ,weak) UITextField *nameField; |
|
/// 设备电话号码Field |
|
@property (nonatomic ,weak) UITextField *phoneField; |
|
/// 身高Field |
|
@property (nonatomic ,weak) UITextField *heightField; |
|
/// 体重Field |
|
@property (nonatomic ,weak) UITextField *weightField; |
|
/// 生日Btn |
|
@property (nonatomic ,weak) UIButton *birthdayBtn; |
|
/// 身高Btn |
|
@property (nonatomic ,weak) UIButton *heightBtn; |
|
/// 体重Btn |
|
@property (nonatomic ,weak) UIButton *weightBtn; |
|
/// 性别 |
|
@property (nonatomic ,assign) NSInteger sex; |
|
/// 像头文件 |
|
@property (nonatomic ,strong) NSData *iconFile; |
|
|
|
|
|
@end |
|
|
|
@implementation AddWatchViewController |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
// Do any additional setup after loading the view. |
|
self.view.backgroundColor = KKBackgroundGrey; |
|
self.zx_navTitle = GJText(@"添加设备"); |
|
self.sex = 0; |
|
[self zx_setRightBtnWithText:GJText(@"添加") clickedBlock:^(ZXNavItemBtn * _Nonnull btn) { |
|
[self SetAddDevice]; |
|
}]; |
|
[self DeviceMsgView]; |
|
} |
|
|
|
#pragma mark 设备信息View |
|
/// 设备信息View |
|
- (void)DeviceMsgView |
|
{ |
|
NSArray *titleArr; |
|
|
|
if (self.model.virtualFlag) |
|
{ |
|
titleArr = @[GJText(@"头像"), |
|
GJText(@"名称"), |
|
GJText(@"性别"), |
|
GJText(@"设备电话号码")]; |
|
} |
|
else |
|
{ |
|
titleArr = @[GJText(@"头像"), |
|
GJText(@"名称"), |
|
GJText(@"性别"), |
|
GJText(@"学校"), |
|
GJText(@"年级"), |
|
GJText(@"班级"), |
|
GJText(@"设备电话号码")]; |
|
} |
|
|
|
UIView *bgView = [UICommon ui_view:CGRectZero backgroundColor:KKWhiteColorColor cornerRadius:0 borderWidth:0 borderColor:KKClearColor]; |
|
[self.view addSubview:bgView]; |
|
[bgView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.top.equalTo(self.view).offset(iPhoneX_NavHeight); |
|
make.left.right.equalTo(self.view); |
|
make.height.mas_equalTo(titleArr.count*View_height); |
|
}]; |
|
for (int i = 0; i < titleArr.count; i++) |
|
{ |
|
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentLeft font:FontADA_(14) textColor:KKTextBlackColor text:titleArr[i] Radius:0]; |
|
[bgView addSubview:titleLabel]; |
|
CGRect rect = [UICommon GetTextWidth:titleLabel.text ViewHeight:View_height fontSize:FontADA_(14) type:@"w"]; |
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(bgView).offset(15); |
|
make.top.equalTo(bgView).offset(View_height*i); |
|
make.height.mas_equalTo(View_height); |
|
make.width.mas_equalTo(rect.size.width+5); |
|
}]; |
|
|
|
if (i < titleArr.count-1) |
|
{ |
|
UILabel *line = [UILabel new]; |
|
line.backgroundColor = KKLineColor; |
|
[bgView addSubview:line]; |
|
[line mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(bgView).inset(15); |
|
make.top.equalTo(titleLabel.mas_bottom); |
|
make.height.mas_equalTo(0.5); |
|
}]; |
|
} |
|
|
|
if (i == 0) |
|
{ |
|
/// 头像 |
|
UIButton *iconBtn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(0) normalColor:KKWhiteColorColor normalText:@"" click:^(id x) { |
|
[UICommon resignKeyboard]; |
|
[self selectIcon]; |
|
}]; |
|
[iconBtn setImage:ImageName_(@"icon_girl_head_portrait") forState:0]; |
|
self.iconBtn = iconBtn; |
|
[bgView addSubview:iconBtn]; |
|
[iconBtn mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.equalTo(bgView.mas_right).inset(15); |
|
make.centerY.equalTo(titleLabel); |
|
make.width.height.mas_equalTo(Adapted(42)); |
|
}]; |
|
} |
|
else if (i != 0 && i != 2) |
|
{ |
|
/// 姓名和电话号码 |
|
UITextField *textfield = [UICommon ui_textField:CGRectZero textColor:KKTextBlackColor backColor:KKClearColor font:FontADA_(13) maxTextNum:i == titleArr.count-1 ? 11 : 20 placeholderColor:KKGrey143 placeholder:i == 1 ? GJText(@"请输入名称") : GJText(@"请输入设备电话号码") toMaxNum:^(UITextField *textField) { |
|
|
|
} change:^(UITextField *textField) { |
|
|
|
}]; |
|
textfield.textAlignment = NSTextAlignmentRight; |
|
textfield.enabled = NO; |
|
textfield.textColor = KKGrey143; |
|
if (i == 1) |
|
{ |
|
if (self.model.virtualFlag) |
|
{ |
|
textfield.enabled = YES; |
|
textfield.textColor = KKTextBlackColor; |
|
} |
|
textfield.text = self.model.name; |
|
self.nameField = textfield; |
|
} |
|
if (!self.model.virtualFlag) |
|
{ |
|
if (i == 3) |
|
{ |
|
textfield.text = self.model.schName; |
|
} |
|
if (i == 4) |
|
{ |
|
textfield.text = self.model.gradeName; |
|
} |
|
if (i == 5) |
|
{ |
|
textfield.text = self.model.className; |
|
} |
|
} |
|
if (i == titleArr.count-1) |
|
{ |
|
textfield.enabled = YES; |
|
textfield.textColor = KKTextBlackColor; |
|
textfield.keyboardType = UIKeyboardTypePhonePad; |
|
textfield.delegate = self; |
|
textfield.text = self.model.phone; |
|
self.phoneField = textfield; |
|
} |
|
[bgView addSubview:textfield]; |
|
[textfield mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.equalTo(bgView).inset(15); |
|
make.left.equalTo(titleLabel.mas_right).offset(5); |
|
make.centerY.equalTo(titleLabel); |
|
make.height.mas_equalTo(Adapted(44)); |
|
}]; |
|
} |
|
else if (i == 2) |
|
{ |
|
/// 性别 |
|
if (self.model.sex.length > 0) |
|
self.sex = self.model.sex.integerValue; |
|
NSArray *sexArr = @[GJText(@"女"), |
|
GJText(@"男")]; |
|
UIButton *sexBtn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(13) normalColor:KKTextBlackColor normalText:sexArr[self.sex] click:^(UIButton *btn) { |
|
[BRStringPickerView showPickerWithTitle:GJText(@"请选择性别") dataSourceArr:sexArr selectIndex:self.sex resultBlock:^(BRResultModel * _Nullable resultModel) { |
|
[UICommon resignKeyboard]; |
|
[btn setTitle:resultModel.value forState:0]; |
|
self.sex = resultModel.index; |
|
}]; |
|
}]; |
|
sexBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight; |
|
[bgView addSubview:sexBtn]; |
|
[sexBtn mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.equalTo(bgView.mas_right).inset(15); |
|
make.centerY.equalTo(titleLabel); |
|
make.size.mas_equalTo(CGSizeMake(Adapted(150), Adapted(44))); |
|
}]; |
|
} |
|
} |
|
[self UserMsgView:bgView]; |
|
} |
|
|
|
#pragma mark 关系信息View |
|
/// 关系信息View |
|
- (void)UserMsgView:(UIView *)view |
|
{ |
|
NSInteger h = 50; |
|
NSInteger w = 5; |
|
NSMutableArray *hArr = [NSMutableArray new]; |
|
NSMutableArray *wArr = [NSMutableArray new]; |
|
for (int i = 0; i < 20; i++) |
|
{ |
|
h+=5; |
|
w+=5; |
|
[hArr addObject:F(@"%ld",h)]; |
|
[wArr addObject:F(@"%ld",w)]; |
|
} |
|
|
|
NSArray *titleArr = @[GJText(@"与我的关系"), |
|
GJText(@"生日"), |
|
GJText(@"身高(cm)"), |
|
GJText(@"体重(kg)")]; |
|
UIView *bgView = [UICommon ui_view:CGRectZero backgroundColor:KKWhiteColorColor cornerRadius:0 borderWidth:0 borderColor:KKClearColor]; |
|
[self.view addSubview:bgView]; |
|
[bgView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.top.equalTo(view.mas_bottom).offset(15); |
|
make.left.right.equalTo(self.view); |
|
make.height.mas_equalTo(titleArr.count*View_height); |
|
}]; |
|
for (int i = 0; i < titleArr.count; i++) |
|
{ |
|
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontADA_(14) textColor:KKTextBlackColor text:titleArr[i] Radius:0]; |
|
[bgView addSubview:titleLabel]; |
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(bgView).offset(15); |
|
make.top.equalTo(bgView).offset(View_height*i); |
|
make.height.mas_equalTo(View_height); |
|
}]; |
|
|
|
if (i < titleArr.count-1) |
|
{ |
|
UILabel *line = [UILabel new]; |
|
line.backgroundColor = KKLineColor; |
|
[bgView addSubview:line]; |
|
[line mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(bgView).inset(15); |
|
make.top.equalTo(titleLabel.mas_bottom); |
|
make.height.mas_equalTo(0.5); |
|
}]; |
|
} |
|
if (i == 0) |
|
{ |
|
UILabel *nameLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontADA_(13) textColor:KKTextBlackColor text:self.relationship Radius:0]; |
|
[bgView addSubview:nameLabel]; |
|
[nameLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.equalTo(bgView.mas_right).inset(15); |
|
make.centerY.equalTo(titleLabel); |
|
}]; |
|
|
|
UIImageView *iconImg = [UICommon ui_imageView:CGRectZero fileName:@""]; |
|
iconImg.image = [UICommon getClickRelationshipImageWithCodeID:self.relationshipId deviceType:self.deviceType]; |
|
[bgView addSubview:iconImg]; |
|
[iconImg mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.equalTo(nameLabel.mas_left).inset(15); |
|
make.centerY.equalTo(titleLabel); |
|
make.width.height.mas_equalTo(Adapted(42)); |
|
}]; |
|
} |
|
else //if (i == 1) |
|
{ |
|
UIButton *commBtn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(13) normalColor:KKTextBlackColor normalText:i == 1 ? [UICommon getSysTime] : i == 2 ? @"100" : @"20" click:^(UIButton *btn) { |
|
[UICommon resignKeyboard]; |
|
if (btn.tag == 1) |
|
{ |
|
[BRDatePickerView showDatePickerWithMode:BRDatePickerModeYMD title:GJText(@"请选择生日") selectValue:[UICommon getSysTime] minDate:nil maxDate:nil isAutoSelect:NO resultBlock:^(NSDate * _Nullable selectDate, NSString * _Nullable selectValue) { |
|
[self.birthdayBtn setTitle:selectValue forState:0]; |
|
}]; |
|
} |
|
else if (i == 2) |
|
{ |
|
[BRStringPickerView showPickerWithTitle:GJText(@"请选择身高") dataSourceArr:hArr selectIndex:2 resultBlock:^(BRResultModel * _Nullable resultModel) { |
|
[self.heightBtn setTitle:resultModel.value forState:0]; |
|
}]; |
|
} |
|
else |
|
{ |
|
[BRStringPickerView showPickerWithTitle:GJText(@"请选择体重") dataSourceArr:wArr selectIndex:2 resultBlock:^(BRResultModel * _Nullable resultModel) { |
|
[self.weightBtn setTitle:resultModel.value forState:0]; |
|
}]; |
|
} |
|
|
|
}]; |
|
commBtn.tag = i; |
|
if (i == 1) self.birthdayBtn = commBtn; |
|
else if (i == 2) self.heightBtn = commBtn; |
|
else self.weightBtn = commBtn; |
|
commBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight; |
|
[bgView addSubview:commBtn]; |
|
[commBtn mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.equalTo(bgView.mas_right).inset(15); |
|
make.centerY.equalTo(titleLabel); |
|
make.size.mas_equalTo(CGSizeMake(SCREEN_WIDTH-150, Adapted(44))); |
|
}]; |
|
} |
|
// else |
|
// { |
|
// /// 姓名和电话号码 |
|
// UITextField *textfield = [UICommon ui_textField:CGRectZero textColor:KKTextBlackColor backColor:KKClearColor font:FontADA_(13) maxTextNum:20 placeholderColor:KKGrey143 placeholder:i == 2 ? GJText(@"请输入身高") : GJText(@"请输入体重") toMaxNum:^(UITextField *textField) { |
|
// |
|
// } change:^(UITextField *textField) { |
|
// |
|
// }]; |
|
// textfield.text = i == 2 ? @"100" : @"20"; |
|
// textfield.textAlignment = NSTextAlignmentRight; |
|
// textfield.keyboardType = UIKeyboardTypeNumberPad; |
|
// if (i == 2) self.heightField = textfield; |
|
// else self.weightField = textfield; |
|
// [bgView addSubview:textfield]; |
|
// [textfield mas_makeConstraints:^(MASConstraintMaker *make) { |
|
// make.right.equalTo(bgView).inset(10); |
|
// make.centerY.equalTo(titleLabel); |
|
// make.size.mas_equalTo(CGSizeMake(Adapted(200), Adapted(44))); |
|
// }]; |
|
// } |
|
} |
|
} |
|
|
|
#pragma mark 添加设备 |
|
/// 添加设备 |
|
- (void)SetAddDevice |
|
{ |
|
if (self.phoneField.text.length <= 0) |
|
{ |
|
[UICommon MessageErrorText:GJText(@"请输入号码")]; |
|
return; |
|
} |
|
|
|
if (self.nameField.text.length <= 0) |
|
{ |
|
[UICommon MessageErrorText:GJText(@"请输入姓名")]; |
|
return; |
|
} |
|
|
|
|
|
self.iconFile = UIImageJPEGRepresentation(self.iconBtn.currentImage, 1.0f); |
|
[UICommon MessageUpload:@"加载中"]; |
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; |
|
[parameters setValue:self.birthdayBtn.currentTitle forKey:@"birthday"]; |
|
[parameters setValue:self.heightBtn.currentTitle forKey:@"height"]; |
|
[parameters setValue:self.imei forKey:@"imei"]; |
|
[parameters setValue:self.phone forKey:@"my_phone"]; |
|
[parameters setValue:self.nameField.text forKey:@"name"]; |
|
[parameters setValue:self.phoneField.text forKey:@"phone"]; |
|
[parameters setValue:self.relationship forKey:@"relationship"]; |
|
[parameters setValue:@(self.relationshipId) forKey:@"relationshipId"]; |
|
[parameters setValue:@(self.sex) forKey:@"sex"]; |
|
[parameters setValue:self.weightBtn.currentTitle forKey:@"weight"]; |
|
[parameters setValue:@(self.model.virtualFlag) forKey:@"virtualFlag"]; |
|
if (self.model.virtualFlag) |
|
{ |
|
[parameters setValue:self.model.schId forKey:@"schId"]; |
|
[parameters setValue:self.model.gradeId forKey:@"gradeId"]; |
|
[parameters setValue:self.model.classId forKey:@"classId"]; |
|
} |
|
[[[APIManager sharedManager] uploadImageWithURL:AddDevice_URL parameters:parameters images:@[self.iconBtn.currentImage]] subscribeNext:^(id _Nullable x) { |
|
[UICommon HidenLoading]; |
|
[UICommon MessageSuccessText:@"添加成功"]; |
|
[[NSNotificationCenter defaultCenter] postNotificationName:UPDATA_DeviceList object:nil]; |
|
AfterDispatch(1, ^{ |
|
[self.navigationController popToRootViewControllerAnimated:YES]; |
|
}); |
|
|
|
} error:^(NSError * _Nullable error) { |
|
NSDictionary *dic = error.userInfo; |
|
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; |
|
}]; |
|
} |
|
|
|
|
|
- (void)selectIcon |
|
{ |
|
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; |
|
[alertController addAction:[UIAlertAction actionWithTitle:GJText(@"拍照") style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { |
|
|
|
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera; |
|
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) |
|
{ |
|
UIImagePickerController *picker = [[UIImagePickerController alloc] init]; |
|
picker.delegate = self; |
|
picker.sourceType = sourceType; |
|
[self presentViewController:picker animated:YES completion:nil]; |
|
}else { |
|
NSLog(@"模拟其中无法打开照相机,请在真机中使用"); |
|
} |
|
|
|
}]]; |
|
[alertController addAction:[UIAlertAction actionWithTitle:GJText(@"从相册选择") style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { |
|
|
|
UIImagePickerController * picker = [[UIImagePickerController alloc] init]; |
|
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) |
|
{ |
|
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; |
|
picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:picker.sourceType]; |
|
|
|
} |
|
picker.delegate = self; |
|
[self presentViewController:picker animated:YES completion:nil]; |
|
|
|
}]]; |
|
|
|
[alertController addAction:[UIAlertAction actionWithTitle:GJText(@"取消") style:UIAlertActionStyleCancel handler:nil]]; |
|
[self presentViewController:alertController animated:YES completion:nil]; |
|
return; |
|
} |
|
|
|
#pragma mark 协议的方法 |
|
//用户点击图像选取器中的“cancel”按钮时被调用,这说明用户想要中止选取图像的操作 |
|
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker |
|
{ |
|
[picker dismissViewControllerAnimated:YES completion:nil]; |
|
} |
|
//用户点击选取器中的“choose”按钮时被调用,告知委托对象,选取操作已经完成,同时将返回选取图片的实例 |
|
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey, id> *)info |
|
{ |
|
UIImage *curImg = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; |
|
[picker dismissViewControllerAnimated:YES completion:nil]; |
|
[self.iconBtn setImage:[UICommon reduceImage:curImg percent:0.5] forState:0]; |
|
} |
|
|
|
|
|
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string |
|
{ |
|
if (textField != self.phoneField) |
|
return NO; |
|
if([@"0123456789" containsString:string]) |
|
{ |
|
// 最终的结果 |
|
NSString *str = textField.text; |
|
NSString *resultStr = [str stringByReplacingCharactersInRange:range withString:string]; |
|
|
|
if(resultStr.length > 15){ |
|
return NO; |
|
}else{ |
|
return YES; |
|
} |
|
} |
|
else |
|
{ |
|
if([string isEqualToString:@""]){ |
|
return YES; |
|
} |
|
return NO; |
|
} |
|
} |
|
|
|
- (BOOL)textFieldShouldReturn:(UITextField *)textField |
|
{ |
|
[UICommon resignKeyboard]; |
|
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
|
|
|