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.
 
 
 

230 lines
8.7 KiB

//
// ModifyDataViewController.m
// LekangGuard
//
// Created by ecell on 2023/1/8.
//
#import "ModifyDataViewController.h"
@interface ModifyDataViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
@property (nonatomic ,strong) NSArray *titleArr;
@property (nonatomic ,strong) NSData *iconFile;
@property (nonatomic ,weak) UIImageView *iconImg;
@property (nonatomic ,strong) NSString *nameStr;
@property (nonatomic ,strong) NSString *phoneStr;
@property (nonatomic ,assign) BOOL isSelectIcon;
///
@property (nonatomic ,strong) UIImage *curImg;
@end
@implementation ModifyDataViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.zx_navTitle = GJText(@"我的资料");
self.isSelectIcon = NO;
[self zx_setRightBtnWithText:GJText(@"保存") clickedBlock:^(ZXNavItemBtn * _Nonnull btn) {
[self UpdateInfo];
}];
self.nameStr = self.model.name;
self.phoneStr = self.model.phone;
self.titleArr = @[GJText(@"头像"),
GJText(@"昵称"),
GJText(@"手机号")];
UIView *bgView = [UICommon ui_view:CGRectMake(0, iPhoneX_NavHeight, SCREEN_WIDTH, Adapted(55)*self.titleArr.count) backgroundColor:KKWhiteColorColor cornerRadius:0 borderWidth:0 borderColor:KKWhiteColorColor];
[self.view addSubview:bgView];
for (int i = 0; i < self.titleArr.count; i++)
{
UIButton *btn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(14) normalColor:KKTextBlackColor normalText:self.titleArr[i] click:^(UIButton *button) {
if (button.tag == 0)
{
[self selectIcon];
}
}];
btn.tag = i;
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[bgView addSubview:btn];
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(bgView).offset(Adapted(55)*i);
make.left.equalTo(bgView).offset(20);
make.right.equalTo(bgView.mas_right);
make.height.mas_equalTo(Adapted(55));
}];
if (i == 0)
{
UIImageView *iconImg = [UIImageView new];
iconImg.layer.cornerRadius = 5;
iconImg.layer.masksToBounds = YES;
[iconImg sd_setImageWithURL:[NSURL URLWithString:self.model.image] placeholderImage:ImageName_(@"icon_adults_occupies_the_head")];
self.iconImg = iconImg;
[bgView addSubview:iconImg];
[iconImg mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(bgView.mas_right).inset(20);
make.centerY.equalTo(btn);
make.height.width.mas_equalTo(Adapted(45));
}];
}
else
{
UITextField *nameField = [UICommon ui_textField:CGRectZero textColor:KKTextBlackColor backColor:KKClearColor font:FontADA_(14) maxTextNum:i == 1 ? 30 : 11 placeholderColor:KKGrey121 placeholder:@"" toMaxNum:nil change:nil];
nameField.textAlignment = NSTextAlignmentRight;
nameField.text = i == 1 ? self.model.name : self.model.phone;
nameField.tag = i;
[nameField addTarget:self action:@selector(textFieldEditChanged:) forControlEvents:UIControlEventEditingChanged];
[bgView addSubview:nameField];
[nameField mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(bgView).inset(20);
make.centerY.equalTo(btn);
make.left.equalTo(bgView).offset(20);
make.height.mas_equalTo(Adapted(46));
}];
}
if (i < self.titleArr.count-1)
{
UILabel *line = [UILabel new];
line.backgroundColor = KKLineColor;
[btn addSubview:line];
[line mas_makeConstraints:^(MASConstraintMaker *make) {
//make.left.equalTo(bgView).offset(20);
make.left.right.equalTo(bgView);
make.bottom.equalTo(btn.mas_bottom);
make.height.mas_equalTo(0.5);
}];
}
}
}
- (void)textFieldEditChanged:(UITextField *)textField
{
if (textField.tag == 1)
{
self.nameStr = textField.text;
}
else
self.phoneStr = textField.text;
}
#pragma mark 修改账号信息
/// 修改账号信息
- (void)UpdateInfo
{
if (self.model.phone.length <= 0)
{
[UICommon MessageErrorText:@"请先绑定设备"];
return;
}
if (self.nameStr.length <= 0)
{
[UICommon MessageErrorText:@"昵称不能为空"];
return;
}
if (self.phoneStr.length <= 0)
{
[UICommon MessageErrorText:@"手机号不能为空"];
return;
}
if (!self.curImg) self.curImg = self.iconImg.image;
[UICommon MessageUpload:@"加载中"];
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setValue:self.model.imei forKey:@"imei"];
[parameters setValue:self.nameStr forKey:@"name"];
[parameters setValue:self.phoneStr forKey:@"phone"];
[[[APIManager sharedManager] uploadImageWithURL:UpdateInfo_URL parameters:parameters images:self.isSelectIcon ? @[self.curImg] : nil] subscribeNext:^(id _Nullable x) {
NSLog(@"%@",x);
[UICommon HidenLoading];
[UICommon MessageSuccessText:@"保存成功"];
AfterDispatch(1, ^{
[self.navigationController popViewControllerAnimated:YES];
});
} error:^(NSError * _Nullable error) {
NSDictionary *dic = error.userInfo;
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]];
}];
}
- (void)selectIcon
{
[UICommon resignKeyboard];
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];
if(curImg)
{
self.curImg = curImg;
self.iconImg.image = [UICommon reduceImage:curImg percent:0.5];
self.isSelectIcon = 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