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.
206 lines
8.1 KiB
206 lines
8.1 KiB
// |
|
// ChoosePersonAddressVC.m |
|
// watch |
|
// |
|
// Created by WeiChaoZheng on 2017/10/28. |
|
// Copyright © 2017年 xTT. All rights reserved. |
|
// |
|
|
|
#import "ChoosePersonAddressVC.h" |
|
#import "PersonEditAddressCell.h" |
|
#import "ChooseContactCell.h" |
|
@interface ChoosePersonAddressVC ()<UITableViewDelegate,UITableViewDataSource> |
|
|
|
@property (strong,nonatomic) NSMutableDictionary<NSString *,NSArray *> *dataSouce; |
|
@property (strong,nonatomic) NSMutableArray<NSString*> *nameKeys; |
|
|
|
@end |
|
|
|
@implementation ChoosePersonAddressVC |
|
|
|
- (Contacts *)infoContacts{ |
|
if (!_infoContacts) { |
|
_infoContacts = [[Contacts alloc] init]; |
|
[_infoContacts setDefaultValue]; |
|
} |
|
return _infoContacts; |
|
} |
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
self.view.backgroundColor = [UIColor whiteColor]; |
|
[self initData]; |
|
|
|
self.zx_navTitle = @"添加联系人"; |
|
|
|
//设置 右上角的保存按钮 |
|
// UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc] initWithTitle:@"提交" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction)]; |
|
// self.navigationItem.rightBarButtonItem = rightBtn; |
|
|
|
[self zx_setRightBtnWithText:@"提交" clickedBlock:^(ZXNavItemBtn * _Nonnull btn) { |
|
[self saveAction]; |
|
}]; |
|
|
|
[SVProgressHUD show]; |
|
} |
|
|
|
-(void)saveAction |
|
{ |
|
BOOL temp = false; |
|
for (NSString * key in self.dataSouce) { |
|
NSArray<PPPersonModel*>*arr = self.dataSouce[key]; |
|
for (PPPersonModel *model in arr) { |
|
if(model.isSelect){ |
|
temp = true; |
|
} |
|
} |
|
} |
|
if(!temp){ |
|
LGAlertView *alertView = [[LGAlertView alloc] initWithTitle:@"提示" message:@"请至少选择一个要提交的联系人" style:LGAlertViewStyleAlert buttonTitles:@[@"确定"] cancelButtonTitle:nil destructiveButtonTitle:nil actionHandler:^(LGAlertView *alertView, NSString *title, NSUInteger index) { |
|
|
|
} cancelHandler:nil destructiveHandler:nil]; |
|
[alertView showAnimated:YES completionHandler:nil]; |
|
return; |
|
} |
|
|
|
|
|
LGAlertView *alertView = [[LGAlertView alloc] initWithTitle:@"提示" message:@"确认提交当前所选联系人?" style:LGAlertViewStyleAlert buttonTitles:@[@"确定"] cancelButtonTitle:@"容我想想" destructiveButtonTitle:nil actionHandler:^(LGAlertView *alertView, NSString *title, NSUInteger index) { |
|
if(index == 0){ |
|
[self upPersonAddressData]; |
|
} |
|
} cancelHandler:nil destructiveHandler:nil]; |
|
[alertView showAnimated:YES completionHandler:nil]; |
|
} |
|
-(void)upPersonAddressData{ |
|
// 保存数据,刷新TabelView |
|
// 遍历联系人的Model |
|
NSMutableArray *newArr = [NSMutableArray array]; |
|
for (NSString * key in self.dataSouce) { |
|
NSArray<PPPersonModel*>*arr = self.dataSouce[key]; |
|
for (PPPersonModel *model in arr) { |
|
if(model.isSelect){ |
|
// MARK: 添加短号 lsz |
|
for (NSString *mobile in model.mobileArray) { |
|
[newArr addObject:@{@"name":model.name,@"phone":mobile}]; |
|
} |
|
//[newArr addObject:@{@"name":model.name,@"phone":model.mobileArray[0]}]; |
|
} |
|
} |
|
} |
|
//MARK: 上传数据 |
|
[self.infoContacts.contact_arry addObjectsFromArray:[newArr copy]]; |
|
|
|
NSLog(@"@contact_arry = %zd", self.infoContacts.contact_arry.count); |
|
NSLog(@"@newArr = %zd", newArr.count); |
|
|
|
WEAKSELF |
|
[self.infoContacts saveManyPerson:^{ |
|
[weakSelf goBack]; |
|
} failure:^{ |
|
[self.infoContacts.contact_arry removeAllObjects]; |
|
}]; |
|
} |
|
|
|
-(void)goBack{ |
|
[self.navigationController popViewControllerAnimated:YES]; |
|
} |
|
|
|
-(void) initData{ |
|
WeakSelf |
|
//获取按联系人姓名首字拼音A~Z排序(已经对姓名的第二个字做了处理) |
|
[PPGetAddressBook getOrderAddressBook:^(NSDictionary<NSString *,NSArray *> *addressBookDict, NSArray *nameKeys) { |
|
//addressBookDict: 装着所有联系人的字典 |
|
//nameKeys: A~Z拼音字母数组; |
|
weakSelf.nameKeys = [NSMutableArray arrayWithArray:nameKeys]; |
|
weakSelf.dataSouce = [NSMutableDictionary dictionaryWithDictionary:addressBookDict]; |
|
//刷新 tableView |
|
[weakSelf initTabelView]; |
|
[SVProgressHUD dismiss]; |
|
} authorizationFailure:^{ |
|
|
|
LGAlertView *alertView = [[LGAlertView alloc] initWithTitle:[NSString stringWithFormat:@"请为%@打开通讯录权限",APPName] message:@"" style:LGAlertViewStyleAlert buttonTitles:@[@"设置"] cancelButtonTitle:@"取消" destructiveButtonTitle:nil actionHandler:^(LGAlertView *alertView, NSString *title, NSUInteger index) { |
|
NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; |
|
|
|
if([[UIApplication sharedApplication] canOpenURL:url]) { |
|
|
|
NSURL*url =[NSURL URLWithString:UIApplicationOpenSettingsURLString]; |
|
[[UIApplication sharedApplication] openURL:url]; |
|
|
|
} |
|
} cancelHandler:nil destructiveHandler:nil]; |
|
[alertView showAnimated:YES completionHandler:nil]; |
|
}]; |
|
|
|
} |
|
-(void) initTabelView { |
|
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, iPhoneX_NavHeight, ScreenWidth, ScreenHeight-64-iPhoneX_NavHeight) style:UITableViewStylePlain]; |
|
self.tableView.delegate = self; |
|
self.tableView.dataSource = self; |
|
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone; |
|
[self.view addSubview:_tableView]; |
|
[_tableView registerNib:[UINib nibWithNibName:@"ChooseContactCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"ChooseContactCellID"]; |
|
|
|
} |
|
|
|
|
|
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ |
|
NSArray *arr = self.dataSouce[self.nameKeys[section]]; |
|
return arr.count; |
|
} |
|
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ |
|
return self.nameKeys.count; |
|
} |
|
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ |
|
return self.nameKeys[section]; |
|
} |
|
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ |
|
ChooseContactCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChooseContactCellID" forIndexPath:indexPath]; |
|
|
|
NSArray<PPPersonModel*> *arr = self.dataSouce[self.nameKeys[indexPath.section]]; |
|
PPPersonModel * model = arr[indexPath.row]; |
|
cell.nameLabel.text = model.name; |
|
if(model.mobileArray.count > 1){ |
|
cell.phoneLabel.text = [NSString stringWithFormat:@"%@(%zd)",model.mobileArray[0],model.mobileArray.count]; |
|
} else if (model.mobileArray.count > 0) { |
|
cell.phoneLabel.text = model.mobileArray[0]; |
|
} else{ |
|
cell.phoneLabel.text = @"未知"; |
|
} |
|
if (model.isSelect) { |
|
cell.selectImageView.image = [UIImage imageNamed:@"选中"]; |
|
}else{ |
|
cell.selectImageView.image = [UIImage imageNamed:@"CellGraySelected"]; |
|
} |
|
cell.selectionStyle = UITableViewCellSelectionStyleNone; |
|
return cell; |
|
} |
|
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ |
|
|
|
return 60; |
|
} |
|
-(NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView{ |
|
return self.nameKeys; |
|
} |
|
|
|
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ |
|
// ChoosePACell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChoosePACellID" forIndexPath:indexPath]; |
|
|
|
NSMutableArray<PPPersonModel*> *Marr = [NSMutableArray arrayWithArray:self.dataSouce[self.nameKeys[indexPath.section]]]; |
|
PPPersonModel * model = Marr[indexPath.row]; |
|
if (model.mobileArray.count ==0) { |
|
LGAlertView *alertView = [[LGAlertView alloc] initWithTitle:@"添加的通讯录号码不能为空" message:@"" style:LGAlertViewStyleAlert buttonTitles:@[@"确定"] cancelButtonTitle:nil destructiveButtonTitle:nil actionHandler:^(LGAlertView *alertView, NSString *title, NSUInteger index) { |
|
|
|
} cancelHandler:nil destructiveHandler:nil]; |
|
[alertView showAnimated:YES completionHandler:nil]; |
|
return; |
|
} |
|
model.isSelect = !model.isSelect; |
|
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@end |
|
|
|
|