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.

238 lines
9.0 KiB

//
// ChoosePersonAddressVC.m
// watch
//
// Created by WeiChaoZheng on 2017/10/28.
// Copyright © 2017xTT. All rights reserved.
//
#import "ChoosePersonAddressVC.h"
#import "PersonEditAddressCell.h"
#import "ChooseContactCell.h"
#import "CommonPopView.h"
@interface ChoosePersonAddressVC ()<UITableViewDelegate,UITableViewDataSource,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate>
@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 = @"添加联系人";
//设置 右上角的保存按钮
[self zx_setRightBtnWithText:@"提交" clickedBlock:^(ZXNavItemBtn * _Nonnull btn) {
[self saveAction];
}];
self.zx_navRightBtn.enabled = NO;
[self.zx_navRightBtn setTitleColor:RGB(255, 175, 141) forState:0];
[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];
[SVProgressHUD showErrorWithStatus:@"请至少选择一个要提交的联系人"];
return;
}
CommonPopView *popView = [CommonPopView new];
[popView subPopView:popViewType_tjlxr PopTitle:@"提示" PopText:@"确认提交当前所选联系人?" okTouchBlock:^{
[self upPersonAddressData];
}];
// 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-iPhoneX_NavHeight) style:UITableViewStylePlain];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.emptyDataSetSource = self;
self.tableView.emptyDataSetDelegate = self;
self.tableView.sectionIndexColor = mainColor; /// 索引文字颜色
self.emptyText = @"通讯录暂无联系人";
_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:@"未选中"];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 56;
}
-(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];
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;
}
}
}
self.zx_navRightBtn.enabled = temp ? YES : NO;
[self.zx_navRightBtn setTitleColor:temp ? mainColor : RGB(255, 175, 141) forState:0];
}
@end