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.
340 lines
14 KiB
340 lines
14 KiB
// |
|
// EditMeViewController.m |
|
// watch |
|
// |
|
// Created by xTT on 2017/7/13. |
|
// Copyright © 2017年 xTT. All rights reserved. |
|
// |
|
|
|
#import "EditMeViewController.h" |
|
#import "ShowWXViewController.h" |
|
#import <WXApi.h> |
|
//#import "WXApiObject.h" |
|
#import "WechatAuthSDK.h" |
|
|
|
@interface EditMeViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate> |
|
|
|
@property (strong, nonatomic) User *editUser; |
|
|
|
@end |
|
|
|
@implementation EditMeViewController |
|
|
|
@synthesize myDataSource = _myDataSource; |
|
|
|
- (NSMutableArray *)myDataSource{ |
|
if (!_myDataSource) { |
|
|
|
NSArray *tempArr = @[@"头像",@"昵称",@"手机账号",@"微信",@"密码"]; |
|
if(cUser.account_status.intValue == 0){ |
|
if(cUser.wx_status.intValue == 1){ |
|
//微信 |
|
tempArr = @[@"头像",@"昵称",@"手机号码"]; |
|
}else{ |
|
//imei |
|
tempArr = @[@"头像",@"昵称",@"手机号码"]; |
|
} |
|
}else{ |
|
// 手机登录 或者 是 已有的手机账号绑定了某微信号,使用某微信号登录 |
|
tempArr = @[@"头像",@"昵称",@"手机账号",@"微信",@"密码"]; |
|
} |
|
_myDataSource = [[NSMutableArray alloc] initWithArray:@[tempArr]]; |
|
|
|
} |
|
return _myDataSource; |
|
} |
|
|
|
- (User *)editUser{ |
|
if (!_editUser) { |
|
_editUser = [[User alloc] init]; |
|
_editUser.openid = cUser.openid; |
|
|
|
_editUser.image = cUser.image; |
|
_editUser.name = cUser.name; |
|
_editUser.phone = cUser.phone; |
|
} |
|
return _editUser; |
|
} |
|
-(void)viewWillAppear:(BOOL)animated{ |
|
if(self.willLoadBlack){ |
|
self.willLoadBlack(); |
|
} |
|
[self refreshData]; |
|
} |
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
// Do any additional setup after loading the view. |
|
self.zx_navTitle = @"编辑资料"; |
|
WEAKSELF |
|
[self.myTableView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(self.view); |
|
make.top.equalTo(self.view).offset(iPhoneX_NavHeight); |
|
make.bottom.equalTo(self.view.mas_bottom); |
|
}]; |
|
self.myTableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ |
|
[weakSelf refreshData]; |
|
}]; |
|
[self zx_setRightBtnWithText:@"保存" clickedBlock:^(ZXNavItemBtn * _Nonnull btn) { |
|
[self.view endEditing:YES]; //取消 所有的输入框的焦点 |
|
if (self.editUser.phone.length != 11) { |
|
[SVProgressHUD showErrorWithStatus:@"请输入11位号码"]; |
|
}else if(self.editUser.name.length == 0){ |
|
[SVProgressHUD showErrorWithStatus:@"请输入昵称"]; |
|
}else if(self.editUser.name.length >8) { |
|
[SVProgressHUD showErrorWithStatus:@"昵称不能大于8个字符"]; |
|
} else{ |
|
[self.editUser saveUserInfoSuccess:^(id responseObject) { |
|
// cUser.image = self.editUser.image; |
|
cUser.phone = self.editUser.phone; |
|
cUser.name = self.editUser.name; |
|
cUser.avator = self.editUser.avator; |
|
[self.navigationController popViewControllerAnimated:YES]; |
|
} failure:^(id faiObject) { |
|
|
|
}]; |
|
} |
|
}]; |
|
} |
|
-(void)refreshData{ |
|
WEAKSELF |
|
[cUser getUserInfoSuccess:^(id responseObject) { |
|
|
|
[weakSelf.myTableView reloadData]; |
|
[weakSelf.myTableView.mj_header endRefreshing]; |
|
} failure:^(id faiObject) { |
|
[weakSelf.myTableView.mj_header endRefreshing]; |
|
}]; |
|
} |
|
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ |
|
NSString *title = self.myDataSource[indexPath.section][indexPath.row]; |
|
if ([title isEqualToString:@"头像"]) { |
|
baseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"baseCell"]; |
|
if (!cell) { |
|
cell = [[baseCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"baseCell"]; |
|
|
|
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; |
|
imageView.layer.cornerRadius = 3; |
|
imageView.layer.masksToBounds = YES; |
|
[imageView sd_setImageWithURL:[NSURL URLWithString:cUser.avator] |
|
placeholderImage:[myHelper getImageWithName:@"默认头像"] |
|
options:SDWebImageRetryFailed]; |
|
} |
|
cell.textLabel.text = title; |
|
|
|
UIImageView *imageView = (UIImageView *)cell.accessoryView; |
|
if (self.editUser.image) { |
|
imageView.image = self.editUser.image; |
|
} |
|
return cell; |
|
}else{ |
|
TextFieldCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TextFieldCell"]; |
|
if (!cell) { |
|
cell = [[TextFieldCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"TextFieldCell"]; |
|
cell.accessoryType = UITableViewCellAccessoryNone; |
|
cell.textField.textAlignment = NSTextAlignmentRight; |
|
} |
|
cell.textLabel.text = title; |
|
if ([title isEqualToString:@"昵称"]) { |
|
cell.maxLimitLength = 20; |
|
cell.textField.text = self.editUser.name; |
|
cell.textField.placeholder = @"8位字符内"; |
|
}else if ([title isEqualToString:@"手机账号"]){ |
|
cell.textField.text = self.editUser.phone; |
|
cell.textField.textColor = [UIColor lightGrayColor]; |
|
cell.userInteractionEnabled = NO; |
|
|
|
}else if ([title isEqualToString:@"微信"]){ |
|
if (cUser.wx_status == nil || cUser.wx_status.intValue == 0) { |
|
cell.textField.text = @"立即绑定"; |
|
cell.textField.textColor = mainColor; |
|
}else{ |
|
cell.textField.text = cUser.wx_name; |
|
cell.textField.textColor = [UIColor lightGrayColor]; |
|
} |
|
|
|
cell.textField.userInteractionEnabled = NO; |
|
}else if ([title isEqualToString:@"密码"]){ |
|
cell.textField.text = @"修改"; |
|
cell.textField.textColor = mainColor; |
|
cell.textField.userInteractionEnabled = NO; |
|
}else if ([title isEqualToString:@"手机号码"]){ |
|
//微信登录 和 imei登录 才会显示 手机号码 , 手机登录的是显示手机账号 |
|
cell.textField.keyboardType = UIKeyboardTypeNamePhonePad; |
|
if(cUser.phone == nil ||cUser.phone.length == 0){ |
|
cell.textField.text = @"立即绑定"; |
|
cell.textField.textColor = mainColor; |
|
cell.textField.userInteractionEnabled = NO; |
|
}else{ |
|
cell.textField.text = self.editUser.phone; |
|
cell.textField.textColor = [UIColor darkGrayColor]; |
|
cell.textField.userInteractionEnabled = YES; |
|
} |
|
|
|
} |
|
|
|
cell.block = ^(NSString *sender, TextFieldCell *cell) { |
|
if ([title isEqualToString:@"昵称"]) { |
|
self.editUser.name = sender; |
|
}else if ([title isEqualToString:@"手机号码"]){ |
|
self.editUser.phone = sender; |
|
} |
|
}; |
|
return cell; |
|
} |
|
return nil; |
|
} |
|
|
|
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ |
|
NSString *title = self.myDataSource[indexPath.section][indexPath.row]; |
|
if ([title isEqualToString:@"头像"]){ |
|
UIAlertController *sheet = [myHelper getAlertWithPicture:^(UIImagePickerController *imagePickerVC) { |
|
imagePickerVC.delegate = self; |
|
[self presentViewController:imagePickerVC animated:YES completion:^{}]; |
|
}]; |
|
if(sheet){ |
|
[self presentViewController:sheet animated:YES completion:nil]; |
|
} |
|
}else if ([title isEqualToString:@"密码"]){ |
|
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; |
|
baseViewController *vc = [sb instantiateViewControllerWithIdentifier:@"ChangePasswordViewController"]; |
|
[self.navigationController pushViewController:vc animated:YES]; |
|
}else if ([title isEqualToString:@"微信"]){ |
|
if (cUser.wx_status.intValue == 0 || cUser.wx_status == nil) { |
|
WEAKSELF |
|
[[APHandleManager sharedManager] authorizationWachat:^(NSDictionary *authInfo) { |
|
NSMutableDictionary * dic = [NSMutableDictionary dictionary]; |
|
[dic setValue:authInfo[@"unionid"] forKey:@"id"]; |
|
[dic setValue:authInfo[@"nickname"] forKey:@"name"]; |
|
[dic setValue:authInfo[@"unionid"] forKey:@"unionid"]; |
|
[User userBindWX:dic success:^(id responseObject) { |
|
//清除数据 刷新列表 |
|
weakSelf.editUser = nil; |
|
[weakSelf refreshData]; |
|
|
|
} failure:^(id faiObject) { |
|
[weakSelf refreshData]; |
|
}]; |
|
} failure:^(HandleStatus code) { |
|
|
|
}]; |
|
|
|
// SSDKPlatformType platformType = SSDKPlatformTypeWechat; |
|
// [ShareSDK cancelAuthorize:SSDKPlatformTypeWechat]; |
|
// |
|
// |
|
// |
|
// WEAKSELF |
|
// [ShareSDK getUserInfo:platformType |
|
// onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) |
|
// { |
|
// if (state == SSDKResponseStateSuccess) |
|
// { |
|
// NSMutableDictionary * dic = [NSMutableDictionary dictionary]; |
|
// [dic setValue:user.uid forKey:@"id"]; |
|
// [dic setValue:user.nickname forKey:@"name"]; |
|
// [dic setValue:[user.rawData objectForKey:@"unionid"] forKey:@"unionid"]; |
|
// |
|
// //2 是微信登录 |
|
// [User userBindWX:dic success:^(id responseObject) { |
|
// //清除数据 刷新列表 |
|
// weakSelf.editUser = nil; |
|
// [weakSelf refreshData]; |
|
// |
|
// } failure:^(id faiObject) { |
|
// [weakSelf refreshData]; |
|
// }]; |
|
// }else{ |
|
// NSLog(@"%@",error); |
|
// } |
|
// }]; |
|
|
|
}else{ |
|
//跳转到解绑页面 |
|
xLog(@"跳转到解绑页面"); |
|
ShowWXViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"ShowWXViewController"]; |
|
[self.navigationController pushViewController:vc animated:YES]; |
|
|
|
} |
|
}else if ([title isEqualToString:@"手机号码"]){ |
|
WEAKSELF |
|
if(self.editUser.phone == nil || self.editUser.phone.length == 0){ |
|
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"请输入手机号"message:@""preferredStyle:UIAlertControllerStyleAlert]; |
|
[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { |
|
textField.keyboardType = UIKeyboardTypePhonePad; |
|
}]; |
|
|
|
[alert addAction:[UIAlertAction actionWithTitle:@"取消" |
|
style:UIAlertActionStyleCancel |
|
handler:^(UIAlertAction * _Nonnull action) {}]]; |
|
|
|
[alert addAction:[UIAlertAction actionWithTitle:@"确定" |
|
style:UIAlertActionStyleDefault |
|
handler:^(UIAlertAction * _Nonnull action) |
|
{ |
|
UITextField *textField = alert.textFields[0]; |
|
if(textField.text.length != 11){ |
|
[SVProgressHUD showErrorWithStatus:@"请输入11位号码"]; |
|
return ; |
|
} |
|
[User wxUserApplyPhone:textField.text success:^(id responseObject) { |
|
xLog(@"微信账号绑定 手机号 成功"); |
|
weakSelf.editUser = nil; |
|
[weakSelf refreshData]; |
|
|
|
} failure:^(id faiObject) { |
|
|
|
}]; |
|
}]]; |
|
[self presentViewController:alert animated:YES completion:nil]; |
|
} |
|
|
|
|
|
} |
|
} |
|
|
|
#pragma mark UIImagePickerControllerDelegate |
|
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated { |
|
if ([UIDevice currentDevice].systemVersion.floatValue < 11) { |
|
return; |
|
} |
|
if ([viewController isKindOfClass:NSClassFromString(@"PUPhotoPickerHostViewController")]) { |
|
[viewController.view.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { |
|
if (obj.frame.size.width < 42) { |
|
[viewController.view sendSubviewToBack:obj]; |
|
*stop = YES; |
|
} |
|
}]; |
|
} |
|
} |
|
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info |
|
{ |
|
[picker dismissViewControllerAnimated:YES completion:^{}]; |
|
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage]; |
|
self.editUser.image = image; |
|
[self.myTableView reloadData]; |
|
} |
|
|
|
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker |
|
{ |
|
[picker dismissViewControllerAnimated:YES completion:nil]; |
|
} |
|
|
|
|
|
- (void)didReceiveMemoryWarning { |
|
[super didReceiveMemoryWarning]; |
|
// Dispose of any resources that can be recreated. |
|
} |
|
|
|
/* |
|
#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
|
|
|