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.

299 lines
11 KiB

2 years ago
//
// 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"];
2 years ago
[[[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