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.
298 lines
11 KiB
298 lines
11 KiB
// |
|
// SelectContactViewController.m |
|
// LekangGuard |
|
// |
|
// Created by ecell on 2022/10/12. |
|
// |
|
|
|
#import "SelectContactViewController.h" |
|
#import "SelectContactCollectionViewCell.h" |
|
#import "AddWatchViewController.h" |
|
|
|
@interface SelectContactViewController ()<WSLWaterFlowLayoutDelegate,UICollectionViewDelegate,UICollectionViewDataSource,UITextFieldDelegate> |
|
|
|
/// 关系Field |
|
@property (nonatomic ,weak) UITextField *contactField; |
|
|
|
/// 手机号Field |
|
@property (nonatomic ,weak) UITextField *phoneField; |
|
|
|
/// 号码View |
|
@property (nonatomic ,weak) UIView *phoneView; |
|
|
|
@property (nonatomic, strong) UICollectionView *collectionView; |
|
|
|
@property (nonatomic, assign) WSLWaterFlowLayoutStyle flowLayoutStyle; |
|
|
|
/// 昵称Arr |
|
@property (nonatomic ,strong) NSArray *nameArr; |
|
|
|
/// 头像Arr |
|
@property (nonatomic ,strong) NSArray *imgArr; |
|
|
|
/// 关系ID |
|
@property (nonatomic ,assign) NSInteger relationshipId; |
|
|
|
/// 关系 |
|
@property (nonatomic ,strong) NSString *relationship; |
|
|
|
@end |
|
|
|
@implementation SelectContactViewController |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
// Do any additional setup after loading the view. |
|
self.zx_navTitle = GJText(@"选择关系"); |
|
if (self.model.binding_status == 1) |
|
{ |
|
EasyAlertView *alertV = [EasyAlertView alertViewWithTitle:nil subtitle:F(GJText(@"设备已被%@绑定,请选择关系后向管理员申请关注!"), self.model.admin_phone) AlertViewType:AlertViewTypeSystemAlert config:nil]; |
|
[alertV addAlertItem:^EasyAlertItem *{ |
|
return [EasyAlertItem itemWithTitle:GJText(@"确定") type:AlertItemTypeSystemDefault callback:^(EasyAlertView *showview, long index) { |
|
}]; |
|
}]; |
|
[alertV showAlertView]; |
|
} |
|
|
|
[self zx_setRightBtnWithText:GJText(self.model.binding_status == 1 ? @"申请关注" : @"下一步") clickedBlock:^(ZXNavItemBtn * _Nonnull btn) { |
|
if (self.phoneField.text.length <= 1) |
|
{ |
|
[UICommon MessageErrorText:@"请输入号码"]; |
|
return; |
|
} |
|
if (self.model.binding_status == 1) |
|
{ |
|
[self SetAttention]; |
|
} |
|
else |
|
{ |
|
AddWatchViewController *vc = [AddWatchViewController new]; |
|
vc.relationshipId = self.relationshipId; |
|
vc.relationship = self.relationship; |
|
vc.phone = self.phoneField.text; |
|
vc.imei = self.imei; |
|
vc.model = self.model; |
|
[self.navigationController pushViewController:vc animated:YES]; |
|
} |
|
}]; |
|
|
|
self.imgArr = [UICommon getUnclickRelationshipImageArr:self.model.device_type]; |
|
self.nameArr = [UICommon getRelationshipNameArr:self.model.device_type]; |
|
|
|
for (int i = 0; i < 2; i++) |
|
{ |
|
UIView *bgView = [UICommon ui_view:CGRectZero backgroundColor:RGB(245, 245, 245) cornerRadius:5 borderWidth:0 borderColor:KKClearColor]; |
|
if (i == 1) self.phoneView = bgView; |
|
[self.view addSubview:bgView]; |
|
[bgView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(self.view).inset(15); |
|
make.top.equalTo(self.view).offset(iPhoneX_NavHeight+Adapted(20)+Adapted(50*i)+10*i); |
|
make.height.mas_equalTo(Adapted(50)); |
|
}]; |
|
|
|
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentLeft font:FontADA_(13) textColor:KKTextBlackColor text:i == 0 ? GJText(@"与我的关系") : GJText(@"我的号码") Radius:0]; |
|
CGFloat width = [(NSString *)titleLabel.text boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, 18) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:FontADA_(13)} context:nil].size.width; |
|
[bgView addSubview:titleLabel]; |
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(bgView).offset(10); |
|
make.centerY.equalTo(bgView); |
|
make.width.mas_equalTo(width); |
|
}]; |
|
|
|
UITextField *textfield = [UICommon ui_textField:CGRectZero textColor:KKTextBlackColor backColor:KKClearColor font:FontADA_(13) maxTextNum:i == 0 ? 20 : 11 placeholderColor:KKGrey143 placeholder:i == 0 ? GJText(@"请输入关系") : GJText(@"请输入号码") toMaxNum:^(UITextField *textField) { |
|
|
|
} change:^(UITextField *textField) { |
|
|
|
}]; |
|
textfield.textAlignment = NSTextAlignmentRight; |
|
if (i == 0) self.contactField = textfield; |
|
else |
|
{ |
|
textfield.keyboardType = UIKeyboardTypePhonePad; |
|
textfield.delegate = self; |
|
self.phoneField = textfield; |
|
} |
|
[bgView addSubview:textfield]; |
|
[textfield mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(titleLabel.mas_right).offset(7); |
|
make.right.equalTo(bgView).inset(10); |
|
make.centerY.equalTo(bgView); |
|
make.height.mas_equalTo(Adapted(44)); |
|
}]; |
|
} |
|
|
|
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentLeft font:FontADA_(14) textColor:KKTextBlackColor text:GJText(@"选择头像") Radius:0]; |
|
[self.view addSubview:titleLabel]; |
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(self.view).offset(15); |
|
make.top.equalTo(self.phoneView.mas_bottom).offset(Adapted(15)); |
|
}]; |
|
|
|
WSLWaterFlowLayout *FlowLayout = [[WSLWaterFlowLayout alloc] init]; |
|
FlowLayout.delegate = self; |
|
FlowLayout.flowLayoutStyle = self.flowLayoutStyle; |
|
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:FlowLayout]; |
|
_collectionView.dataSource = self; |
|
_collectionView.delegate = self; |
|
_collectionView.showsVerticalScrollIndicator = NO; |
|
_collectionView.alwaysBounceVertical = YES; |
|
_collectionView.allowsMultipleSelection = NO; |
|
_collectionView.scrollEnabled = NO; |
|
_collectionView.backgroundColor = KKClearColor; |
|
if (@available(iOS 11.0, *)) |
|
_collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; |
|
[_collectionView registerClass:SelectContactCollectionViewCell.class forCellWithReuseIdentifier:NSStringFromClass(SelectContactCollectionViewCell.class)]; |
|
[self.view addSubview:_collectionView]; |
|
[_collectionView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(self.view); |
|
make.top.equalTo(titleLabel.mas_bottom).offset(0); |
|
make.bottom.equalTo(self.view.mas_bottom); |
|
}]; |
|
|
|
kWeakSelf(self) |
|
AfterDispatch(1, ^{ |
|
NSIndexPath *indexPaths = [NSIndexPath indexPathForRow:0 inSection:0]; |
|
[weakself collectionView:weakself.collectionView didSelectItemAtIndexPath:indexPaths]; |
|
}); |
|
} |
|
|
|
|
|
#pragma mark - WSLWaterFlowLayoutDelegate |
|
//返回每个item大小 |
|
- (CGSize)waterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
return CGSizeMake((SCREEN_WIDTH-75)/4, (SCREEN_WIDTH-75)/4+Adapted(25)); |
|
} |
|
|
|
/** 头视图Size */ |
|
-(CGSize )waterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout sizeForHeaderViewInSection:(NSInteger)section |
|
{ |
|
return CGSizeMake(SCREEN_WIDTH, 0.1); |
|
} |
|
/** 列数*/ |
|
-(CGFloat)columnCountInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout |
|
{ |
|
return 4; |
|
} |
|
/** 列间距*/ |
|
-(CGFloat)columnMarginInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout |
|
{ |
|
return 15; |
|
} |
|
/** 行间距*/ |
|
-(CGFloat)rowMarginInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout |
|
{ |
|
return 10; |
|
} |
|
/** 边缘之间的间距*/ |
|
-(UIEdgeInsets)edgeInsetInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout |
|
{ |
|
return UIEdgeInsetsMake(0, 15, 10, 15); |
|
} |
|
|
|
|
|
#pragma mark - UICollectionView数据源 |
|
//组个数 |
|
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView |
|
{ |
|
return 1; |
|
} |
|
|
|
//组内成员个数 |
|
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section |
|
{ |
|
return self.imgArr.count; |
|
} |
|
|
|
//设置元素内容 |
|
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
SelectContactCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass(SelectContactCollectionViewCell.class) forIndexPath:indexPath]; |
|
|
|
cell.tag = indexPath.item+1; |
|
cell.deviceType = self.model.device_type; |
|
cell.iconImgName = self.imgArr[indexPath.row]; |
|
cell.nameStr = self.nameArr[indexPath.row]; |
|
|
|
|
|
return cell; |
|
} |
|
|
|
|
|
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
[UICommon resignKeyboard]; |
|
[collectionView selectItemAtIndexPath:indexPath animated:YES scrollPosition:UICollectionViewScrollPositionNone]; |
|
self.contactField.text = [UICommon getRelationshipNameWithCodeID:indexPath.item+1 deviceType:self.model.device_type]; |
|
self.relationship = self.contactField.text; |
|
self.relationshipId = indexPath.item+1; |
|
} |
|
|
|
#pragma mark 申请关注 |
|
/// 申请关注 |
|
- (void)SetAttention |
|
{ |
|
[UICommon MessageUpload:@"加载中"]; |
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; |
|
[parameters setValue:self.model.adminUserId forKey:@"adminUserId"]; |
|
[parameters setValue:self.imei forKey:@"imei"]; |
|
[parameters setValue:self.phoneField.text forKey:@"phone"]; |
|
[parameters setValue:self.relationship forKey:@"relationship"]; |
|
[parameters setValue:@(self.relationshipId) forKey:@"relationshipImageId"]; |
|
[parameters setValue:@(self.model.virtualFlag) forKey:@"virtualFlag"]; |
|
[[[APIManager sharedManager] APPOST:SendAccount_URL parameters:parameters isJson:YES resultClass:nil] 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]]; |
|
}]; |
|
} |
|
|
|
- (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
|
|
|