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.
444 lines
18 KiB
444 lines
18 KiB
![]()
2 years ago
|
//
|
||
|
// 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 = 2;
|
||
|
[self zx_setRightBtnWithText:GJText(@"添加") clickedBlock:^(ZXNavItemBtn * _Nonnull btn) {
|
||
|
[self SetAddDevice];
|
||
|
}];
|
||
|
[self DeviceMsgView];
|
||
|
}
|
||
|
|
||
|
#pragma mark 设备信息View
|
||
|
/// 设备信息View
|
||
|
- (void)DeviceMsgView
|
||
|
{
|
||
|
NSArray *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:GJText(@"请输入设备电话号码") toMaxNum:^(UITextField *textField) {
|
||
|
|
||
|
} change:^(UITextField *textField) {
|
||
|
|
||
|
}];
|
||
|
textfield.textAlignment = NSTextAlignmentRight;
|
||
|
textfield.enabled = NO;
|
||
|
textfield.textColor = KKGrey143;
|
||
|
if (i == 1)
|
||
|
{
|
||
|
textfield.text = self.model.name;
|
||
|
self.nameField = textfield;
|
||
|
}
|
||
|
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
|
||
|
{
|
||
|
/// 性别
|
||
|
NSArray *sexArr = @[GJText(@"男"),
|
||
|
GJText(@"女"),
|
||
|
GJText(@"保密")];
|
||
|
UIButton *sexBtn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(13) normalColor:KKTextBlackColor normalText:GJText(@"女") click:^(UIButton *btn) {
|
||
|
[BRStringPickerView showPickerWithTitle:GJText(@"请选择性别") dataSourceArr:sexArr selectIndex:1 resultBlock:^(BRResultModel * _Nullable resultModel) {
|
||
|
[UICommon resignKeyboard];
|
||
|
[btn setTitle:resultModel.value forState:0];
|
||
|
self.sex = resultModel.index+1;
|
||
|
}];
|
||
|
}];
|
||
|
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"];
|
||
|
[[[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
|