123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657 |
- //
- // JXGroupMessagesSelectFriendVC.m
- // shiku_im
- //
- // Created by p on 2018/5/25.
- // Copyright © 2018年 Reese. All rights reserved.
- //
- #import "JXGroupMessagesSelectFriendVC.h"
- #import "JXCell.h"
- #import "UIImage+Color.h"
- #import "QCheckBox.h"
- #import "JXChatViewController.h"
- #import "JXSelectLabelsVC.h"
- #import "JXLabelObject.h"
- #import "BMChineseSort.h"
- #import "JXSelectGroupSendVC.h"
- #import "OrganizeSelectVC.h"
- #import "EmployeObject.h"
- @interface JXGroupMessagesSelectFriendVC () <UITextFieldDelegate, JXSelectLabelsVCDelegate, JXSelectGroupSendVCDelegate, OrganizeSelectVCDelegate>
- @property (nonatomic, strong) NSMutableArray *array;
- @property (nonatomic, strong) UITextField *seekTextField;
- @property (nonatomic, strong) NSMutableArray *searchArray;
- @property (nonatomic, strong) NSSet * existSet;
- @property (nonatomic, strong) NSMutableArray *selUserIdArray;
- @property (nonatomic, strong) NSMutableArray *selUserNameArray;
- @property (nonatomic, strong) UIButton *nextBtn;
- @property (nonatomic, strong) UIView *tableHeadView;
- @property (nonatomic, strong) UILabel *selectLabelTip;
- @property (nonatomic, strong) UILabel *selectGroupTip;
- @property (nonatomic, strong) UILabel *selectColleagueTip;
- @property (nonatomic, strong) UILabel *selectMaillistTip;
- @property (nonatomic, strong) UILabel *selectLabels;
- @property (nonatomic, strong) UILabel *selectGroups;
- @property (nonatomic, strong) UILabel *selectColleagues;
- @property (nonatomic, strong) UILabel *selectMaillists;
- @property (nonatomic, strong) NSMutableArray *selLabelsArr;
- @property (nonatomic, strong) NSMutableArray *selGroupsArr;
- @property (nonatomic, strong) NSMutableArray *selColleaguesArr;
- @property (nonatomic, strong) NSMutableArray *selMailistArr;
- //排序后的出现过的拼音首字母数组
- @property(nonatomic,strong)NSMutableArray *indexArray;
- //排序好的结果数组
- @property(nonatomic,strong)NSMutableArray *letterResultArr;
- @property (nonatomic, strong) NSMutableArray *checkBoxArr;
- @end
- @implementation JXGroupMessagesSelectFriendVC
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- self.heightHeader = JX_SCREEN_TOP;
- self.heightFooter = JX_SCREEN_BOTTOM;
- self.isGotoBack = YES;
- //self.view.frame = g_window.bounds;
- self.isShowFooterPull = NO;
- [self createHeadAndFoot];
-
- _array = [NSMutableArray array];
- _searchArray = [NSMutableArray array];
- _selUserIdArray = [NSMutableArray array];
- _selUserNameArray = [NSMutableArray array];
- _selLabelsArr = [NSMutableArray array];
- _checkBoxArr = [NSMutableArray array];
- self.title = Localized(@"JX_SelectReceiver");
-
- UIButton *allSelect = [[UIButton alloc] init];
- [allSelect setTitle:Localized(@"JX_CheckAll") forState:UIControlStateNormal];
- [allSelect setTitle:Localized(@"JX_Cencal") forState:UIControlStateSelected];
- [allSelect setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
- [allSelect.titleLabel setFont:SYSFONT(15)];
- allSelect.frame = CGRectMake(JX_SCREEN_WIDTH - 60, JX_SCREEN_TOP - 33, 60, 24);
- [allSelect addTarget:self action:@selector(allSelect:) forControlEvents:UIControlEventTouchUpInside];
- [self.tableHeader addSubview:allSelect];
-
- self.nextBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, self.tableFooter.frame.size.width, 48)];
- self.nextBtn.titleLabel.font = [UIFont systemFontOfSize:15.0];
- [self.nextBtn setTitle:Localized(@"JX_NextStep") forState:UIControlStateNormal];
- [self.nextBtn setTitleColor:THEMECOLOR forState:UIControlStateNormal];
- [self.nextBtn addTarget:self action:@selector(nextBtnAction:) forControlEvents:UIControlEventTouchUpInside];
- [self.tableFooter addSubview:self.nextBtn];
-
-
- //搜索输入框
- _tableHeadView = [[UIView alloc] initWithFrame:CGRectMake(0, JX_SCREEN_TOP, JX_SCREEN_WIDTH, 55)];
- // backView.backgroundColor = HEXCOLOR(0xf0f0f0);
- [self.view addSubview:_tableHeadView];
-
- // UIButton *cancelBtn = [[UIButton alloc] initWithFrame:CGRectMake(backView.frame.size.width-5-45, 5, 45, 30)];
- // [cancelBtn setTitle:Localized(@"JX_Cencal") forState:UIControlStateNormal];
- // [cancelBtn setTitleColor:THEMECOLOR forState:UIControlStateNormal];
- // [cancelBtn addTarget:self action:@selector(cancelBtnAction) forControlEvents:UIControlEventTouchUpInside];
- // cancelBtn.titleLabel.font = SYSFONT(14);
- // [backView addSubview:cancelBtn];
-
-
- _seekTextField = [[UITextField alloc] initWithFrame:CGRectMake(15, 10, _tableHeadView.frame.size.width - 30, 35)];
- _seekTextField.placeholder = Localized(@"JX_EnterKeyword");
- _seekTextField.textColor = [UIColor blackColor];
- [_seekTextField setFont:SYSFONT(14)];
- _seekTextField.backgroundColor = HEXCOLOR(0xf0f0f0);
- UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"card_search"]];
- UIView *leftView = [[UIView alloc ]initWithFrame:CGRectMake(0, 0, 30, 30)];
- // imageView.center = CGPointMake(leftView.frame.size.width/2, leftView.frame.size.height/2);
- imageView.center = leftView.center;
- [leftView addSubview:imageView];
- _seekTextField.leftView = leftView;
- _seekTextField.leftViewMode = UITextFieldViewModeAlways;
- _seekTextField.borderStyle = UITextBorderStyleNone;
- _seekTextField.layer.masksToBounds = YES;
- _seekTextField.layer.cornerRadius = 5;
- _seekTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
- _seekTextField.delegate = self;
- _seekTextField.returnKeyType = UIReturnKeyGoogle;
- [_tableHeadView addSubview:_seekTextField];
- [_seekTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
-
- UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, 49.5, JX_SCREEN_WIDTH, .5)];
- lineView.backgroundColor = HEXCOLOR(0xdcdcdc);
- [_tableHeadView addSubview:lineView];
-
- //选择标签群发
- UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(_seekTextField.frame)+8, JX_SCREEN_WIDTH, 54)];
- [btn addTarget:self action:@selector(selectLabels:) forControlEvents:UIControlEventTouchUpInside];
- [_tableHeadView addSubview:btn];
-
- _selectLabelTip = [[UILabel alloc] initWithFrame:CGRectMake(15, 0, btn.frame.size.width, btn.frame.size.height)];
- _selectLabelTip.font = [UIFont systemFontOfSize:16.0];
- _selectLabelTip.text = Localized(@"JX_SelectTagGroup");
- [btn addSubview:_selectLabelTip];
-
- _selectLabels = [[UILabel alloc] initWithFrame:CGRectMake(15, CGRectGetMaxY(_selectLabelTip.frame), btn.frame.size.width, btn.frame.size.height - CGRectGetMaxY(_selectLabelTip.frame))];
- _selectLabels.font = [UIFont systemFontOfSize:15.0];
- _selectLabels.text = @"[标签1,标签2]";
- _selectLabels.textColor = [UIColor lightGrayColor];
- [btn addSubview:_selectLabels];
- lineView = [[UIView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(btn.frame) + 4.5, JX_SCREEN_WIDTH, .5)];
- lineView.backgroundColor = HEXCOLOR(0xdcdcdc);
- [_tableHeadView addSubview:lineView];
- //选择群组群发
- UIButton *btn2 = [[UIButton alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(lineView.frame), JX_SCREEN_WIDTH, 54)];
- [_tableHeadView addSubview:btn2];
- [btn2 addTarget:self action:@selector(selectorGroup:) forControlEvents:UIControlEventTouchUpInside];
- _selectGroupTip = [[UILabel alloc] initWithFrame:CGRectMake(15, 0, btn2.frame.size.width, btn2.frame.size.height)];
- _selectGroupTip.font = [UIFont systemFontOfSize:16.0];
- _selectGroupTip.text = Localized(@"JX_SelectGroupGroupSending");
- [btn2 addSubview:_selectGroupTip];
-
- _selectGroups = [[UILabel alloc] initWithFrame:CGRectMake(15, CGRectGetMaxY(_selectGroupTip.frame), btn2.frame.size.width, btn2.frame.size.height - CGRectGetMaxY(_selectGroupTip.frame))];
- _selectGroups.font = [UIFont systemFontOfSize:15.0];
- _selectGroups.text = @"[群组1,群组2]";
- _selectGroups.textColor = [UIColor lightGrayColor];
- [btn2 addSubview:_selectGroups];
-
- lineView = [[UIView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(btn2.frame) + 4.5, JX_SCREEN_WIDTH, .5)];
- lineView.backgroundColor = HEXCOLOR(0xdcdcdc);
- [_tableHeadView addSubview:lineView];
- //选择同事群发
- UIButton *btn3 = [[UIButton alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(lineView.frame), JX_SCREEN_WIDTH, 54)];
- // [_tableHeadView addSubview:btn3];
- [btn3 addTarget:self action:@selector(selectorColleague:) forControlEvents:UIControlEventTouchUpInside];
- _selectColleagueTip = [[UILabel alloc] initWithFrame:CGRectMake(15, 0, btn3.frame.size.width, btn3.frame.size.height)];
- _selectColleagueTip.font = [UIFont systemFontOfSize:16.0];
- _selectColleagueTip.text = Localized(@"JX_SelectAGroupOfColleagues");
- [btn3 addSubview:_selectColleagueTip];
-
- _selectColleagues = [[UILabel alloc] initWithFrame:CGRectMake(15, CGRectGetMaxY(_selectColleagueTip.frame), btn3.frame.size.width, btn3.frame.size.height - CGRectGetMaxY(_selectColleagueTip.frame))];
- _selectColleagues.font = [UIFont systemFontOfSize:15.0];
- _selectColleagues.text = @"[同事1,同事2]";
- _selectColleagues.textColor = [UIColor lightGrayColor];
- [btn3 addSubview:_selectColleagues];
-
- lineView = [[UIView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(btn3.frame) + 4.5, JX_SCREEN_WIDTH, .5)];
- lineView.backgroundColor = HEXCOLOR(0xdcdcdc);
- // [_tableHeadView addSubview:lineView];
-
- //选择通讯录群发
- UIButton *btn4 = [[UIButton alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(lineView.frame), JX_SCREEN_WIDTH, 54)];
- // [_tableHeadView addSubview:btn4];
- [btn4 addTarget:self action:@selector(selectorMaillist:) forControlEvents:UIControlEventTouchUpInside];
- _selectMaillistTip = [[UILabel alloc] initWithFrame:CGRectMake(15, 0, btn4.frame.size.width, btn4.frame.size.height)];
- _selectMaillistTip.font = [UIFont systemFontOfSize:16.0];
- _selectMaillistTip.text = Localized(@"JX_SelectMobilePhoneToContactTheCrowd");
- [btn4 addSubview:_selectMaillistTip];
-
- _selectMaillists = [[UILabel alloc] initWithFrame:CGRectMake(15, CGRectGetMaxY(_selectMaillistTip.frame), btn4.frame.size.width, btn4.frame.size.height - CGRectGetMaxY(_selectMaillistTip.frame))];
- _selectMaillists.font = [UIFont systemFontOfSize:15.0];
- _selectMaillists.text = @"[通讯录]";
- _selectMaillists.textColor = [UIColor lightGrayColor];
- [btn4 addSubview:_selectMaillists];
-
- _tableHeadView.frame = CGRectMake(_tableHeadView.frame.origin.x, _tableHeadView.frame.origin.y, _tableHeadView.frame.size.width, CGRectGetMaxY(btn3.frame));
- self.tableView.tableHeaderView = _tableHeadView;
-
- // [self getArrayData];
-
- }
- - (void)selectLabels:(UIButton *)btn {
-
- JXSelectLabelsVC *vc = [[JXSelectLabelsVC alloc] init];
- vc.delegate = self;
- vc.selLabels = [NSMutableArray arrayWithArray:_selLabelsArr];
- [g_navigation pushViewController:vc animated:YES];
- }
- - (void)selectorGroup:(UIButton *)btn{
- JXSelectGroupSendVC *vc = [[JXSelectGroupSendVC alloc] initWithTitle:SELECTGroup];
- vc.delegate = self;
- vc.seletedArray = [NSMutableArray arrayWithArray:_selGroupsArr];
- [g_navigation pushViewController:vc animated:YES];
- }
- - (void)selectorColleague:(UIButton *)btn{
- OrganizeSelectVC *vc = [[OrganizeSelectVC alloc] init];
- vc.delegate = self;
- vc.seletedArray = [NSMutableArray arrayWithArray:_selColleaguesArr];
- [g_navigation pushViewController:vc animated:YES];
- }
- - (void)selectorMaillist:(UIButton *)btn{
- JXSelectGroupSendVC *vc = [[JXSelectGroupSendVC alloc] initWithTitle:SELECTMaillist];
- vc.delegate = self;
- vc.seletedArray = [NSMutableArray arrayWithArray:_selMailistArr];
- [g_navigation pushViewController:vc animated:YES];
- }
- - (void)selectLabelsVC:(JXSelectLabelsVC *)selectLabelsVC selectLabelsArray:(NSMutableArray *)array {
- _selLabelsArr = [NSMutableArray arrayWithArray:array];
-
- NSMutableString *nameStr = [NSMutableString string];
- for (NSInteger i = 0; i < array.count; i ++) {
- JXLabelObject *labelObj = array[i];
- if (i == 0) {
- [nameStr appendFormat:@"[\"%@",labelObj.groupName];
- }else if (i == array.count - 1) {
- [nameStr appendFormat:@",%@\"]",labelObj.groupName];
- }else {
- [nameStr appendFormat:@",%@",labelObj.groupName];
- }
- if (array.count == 1) {
- [nameStr appendString:@"\"]"];
- }
- }
-
- self.selectLabels.text = nameStr;
- if (nameStr.length > 0) {
- self.selectLabelTip.frame = CGRectMake(self.selectLabelTip.frame.origin.x, self.selectLabelTip.frame.origin.y, self.selectLabelTip.frame.size.width, 27);
- self.selectLabels.frame = CGRectMake(self.selectLabels.frame.origin.x, CGRectGetMaxY(_selectLabelTip.frame), self.selectLabels.frame.size.width, 27);
- }else {
- self.selectLabelTip.frame = CGRectMake(self.selectLabelTip.frame.origin.x, self.selectLabelTip.frame.origin.y, self.selectLabelTip.frame.size.width, 54);
- self.selectLabels.frame = CGRectMake(self.selectLabels.frame.origin.x, CGRectGetMaxY(_selectLabelTip.frame), self.selectLabels.frame.size.width, 0);
- }
- }
- - (void)selectVC:(JXSelectGroupSendVC *)selectLabelsVC selectArray:(NSMutableArray *)array{
- if ([selectLabelsVC.titleString isEqualToString:SELECTGroup]) {
- _selGroupsArr = [NSMutableArray arrayWithArray:array];
- NSMutableString *groupsName = [NSMutableString string];
- for (NSInteger i = 0; i < array.count; i++) {
- JXUserObject *user = array[i];
- if (i == 0) {
- [groupsName appendFormat:@"[\"%@",user.userNickname];
- }else if (i == array.count - 1){
- [groupsName appendFormat:@",%@\"]",user.userNickname];
- }else{
- [groupsName appendFormat:@",%@",user.userNickname];
- }
- if (array.count == 1) {
- [groupsName appendString:@"\"]"];
- }
- }
- self.selectGroups.text = groupsName;
- if (groupsName.length > 0) {
- self.selectGroupTip.frame = CGRectMake(self.selectGroupTip.frame.origin.x, self.selectGroupTip.frame.origin.y, self.selectGroupTip.frame.size.width, 27);
- self.selectGroups.frame = CGRectMake(self.selectGroups.frame.origin.x, CGRectGetMaxY(_selectGroupTip.frame), self.selectGroups.frame.size.width, 27);
- }else {
- self.selectGroupTip.frame = CGRectMake(self.selectGroupTip.frame.origin.x, self.selectGroupTip.frame.origin.y, self.selectGroupTip.frame.size.width, 54);
- self.selectGroups.frame = CGRectMake(self.selectGroups.frame.origin.x, CGRectGetMaxY(_selectGroupTip.frame), self.selectGroups.frame.size.width, 0);
- }
- }
- if ([selectLabelsVC.titleString isEqualToString:SELECTMaillist]) {
- {
- _selMailistArr = [NSMutableArray arrayWithArray:array];
- NSMutableString *groupsName = [NSMutableString string];
- for (NSInteger i = 0; i < array.count; i++) {
- JXUserObject *user = array[i];
- if (i == 0) {
- [groupsName appendFormat:@"[\"%@",user.userNickname];
- }else if (i == array.count - 1){
- [groupsName appendFormat:@",%@\"]",user.userNickname];
- }else{
- [groupsName appendFormat:@",%@",user.userNickname];
- }
- if (array.count == 1) {
- [groupsName appendString:@"\"]"];
- }
- }
- self.selectMaillists.text = groupsName;
- if (groupsName.length > 0) {
- self.selectMaillistTip.frame = CGRectMake(self.selectMaillistTip.frame.origin.x, self.selectMaillistTip.frame.origin.y, self.selectMaillistTip.frame.size.width, 27);
- self.selectMaillists.frame = CGRectMake(self.selectMaillists.frame.origin.x, CGRectGetMaxY(_selectMaillistTip.frame), self.selectMaillists.frame.size.width, 27);
- }else {
- self.selectMaillistTip.frame = CGRectMake(self.selectMaillistTip.frame.origin.x, self.selectMaillistTip.frame.origin.y, self.selectMaillistTip.frame.size.width, 54);
- self.selectMaillists.frame = CGRectMake(self.selectMaillists.frame.origin.x, CGRectGetMaxY(_selectMaillistTip.frame), self.selectMaillists.frame.size.width, 0);
- }
- }
- }
- }
- - (void)selectOrganizeVC:(OrganizeSelectVC *)selectVC selectArray:(NSMutableArray *)array{
- _selColleaguesArr = [NSMutableArray arrayWithArray:array];
- NSMutableString *colleaguesName = [NSMutableString string];
- for (NSInteger i = 0; i < array.count; i++) {
- EmployeObject *employe = array[i];
- if (i == 0) {
- [colleaguesName appendFormat:@"[\"%@",employe.nickName];
- }else if (i == array.count - 1){
- [colleaguesName appendFormat:@",%@\"]",employe.nickName];
- }else{
- [colleaguesName appendFormat:@",%@",employe.nickName];
- }
- if (array.count == 1) {
- [colleaguesName appendString:@"\"]"];
- }
- }
- self.selectColleagues.text = colleaguesName;
- if (colleaguesName.length > 0) {
- self.selectColleagueTip.frame = CGRectMake( self.selectColleagueTip.frame.origin.x, self.selectColleagueTip.frame.origin.y, self.selectMaillistTip.frame.size.width, 27);
- self.selectColleagues.frame = CGRectMake( self.selectColleagueTip.frame.origin.x, CGRectGetMaxY(_selectColleagueTip.frame), self.selectColleagues.frame.size.width, 27);
- }else {
- self.selectColleagueTip.frame = CGRectMake( self.selectColleagueTip.frame.origin.x, self.selectColleagueTip.frame.origin.y, self.selectColleagueTip.frame.size.width, 54);
- self.selectColleagues.frame = CGRectMake(self.selectColleagues.frame.origin.x, CGRectGetMaxY(_selectColleagueTip.frame), self.selectColleagues.frame.size.width, 0);
- }
- }
- - (void)allSelect:(UIButton *)btn {
- btn.selected = !btn.selected;
-
- [_selUserIdArray removeAllObjects];
- [_selUserNameArray removeAllObjects];
- if (btn.selected) {
- NSArray *array;
- if (_seekTextField.text.length > 0) {
- array = _searchArray;
- }else {
- array = _array;
- }
- for (JXUserObject *user in array) {
- [_selUserIdArray addObject:user.userId];
- [_selUserNameArray addObject:user.userNickname];
- }
- }
-
- [self.nextBtn setTitle:[NSString stringWithFormat:@"%@(%ld)",Localized(@"JX_NextStep"),_selUserIdArray.count] forState:UIControlStateNormal];
- [_checkBoxArr removeAllObjects];
- [self.tableView reloadData];
- }
- - (void)nextBtnAction:(UIButton *)btn {
-
- NSMutableArray *selUserIdArray = [NSMutableArray array];
- NSMutableArray *selUserNameArray = [NSMutableArray array];
-
- [selUserIdArray addObjectsFromArray:_selUserIdArray];
- [selUserNameArray addObjectsFromArray:_selUserNameArray];
- for (NSInteger i = 0; i < self.selLabelsArr.count; i ++) {
- JXLabelObject *labelObj = self.selLabelsArr[i];
- NSArray *labelUserIds = [labelObj.userIdList componentsSeparatedByString:@","];
- for (NSInteger j = 0; j < labelUserIds.count; j ++) {
- NSString *labelUserId = labelUserIds[j];
- NSString *labelUserName = [JXUserObject getUserNameWithUserId:labelUserId];
- BOOL flag = NO;
- NSMutableArray *array = [NSMutableArray arrayWithArray:selUserIdArray];
- for (NSInteger m = 0; m < array.count; m ++) {
- NSString *selUserId = array[m];
- if ([labelUserId isEqualToString:selUserId]) {
- flag = YES;
- break;
- }
- }
-
- if (!flag) {
- [selUserIdArray addObject:labelUserId];
- [selUserNameArray addObject:labelUserName];
- }
- }
- }
- for (NSInteger i = 0; i < self.selGroupsArr.count; i++) {
- JXUserObject *group = self.selGroupsArr[i];
- [selUserIdArray addObject:group.userId];
- [selUserNameArray addObject:group.userNickname];
- }
- for (NSInteger i = 0; i < self.selMailistArr.count; i++) {
- JXUserObject *user = self.selMailistArr[i];
- [selUserIdArray addObject:user.userId];
- [selUserNameArray addObject:user.userNickname];
- }
- for (NSInteger i = 0; i < self.selColleaguesArr.count; i++) {
- EmployeObject *employe = self.selColleaguesArr[i];
- [selUserIdArray addObject:employe.userId];
- [selUserNameArray addObject:employe.nickName];
- }
-
- if (!selUserIdArray.count) {
- [g_App showAlert:Localized(@"JX_SelectGroupUsers")];
- return;
- }
-
- JXChatViewController *vc = [[JXChatViewController alloc] init];
- vc.userIds = selUserIdArray;
- vc.userNames = selUserNameArray;
- vc.isGroupMessages = YES;
- vc.userNmaesWithFriend = selUserNameArray;
- vc.isCYMSGgroupANDFriendy = YES;
- [g_navigation pushViewController:vc animated:YES];
- }
- - (void) cancelBtnAction {
- _seekTextField.text = nil;
- [_seekTextField resignFirstResponder];
- [self getArrayData];
- }
- - (void)didSelectedCheckBox:(QCheckBox *)checkbox checked:(BOOL)checked{
- JXUserObject *user;
- if (_seekTextField.text.length > 0) {
- user = _searchArray[checkbox.tag % 100000-1];
- }else{
- user = [[self.letterResultArr objectAtIndex:checkbox.tag / 100000-1] objectAtIndex:checkbox.tag % 100000-1];
- }
-
- if(checked){
- BOOL flag = NO;
- for (NSInteger i = 0; i < _selUserIdArray.count; i ++) {
- NSString *selUserId = _selUserIdArray[i];
- if ([selUserId isEqualToString:user.userId]) {
- flag = YES;
- return;
- }
- }
- [_selUserIdArray addObject:user.userId];
- [_selUserNameArray addObject:user.userNickname];
- }
- else{
- [_selUserIdArray removeObject:user.userId];
- [_selUserNameArray removeObject:user.userNickname];
- }
- if (_selUserIdArray.count <= 0) {
- [self.nextBtn setTitle:[NSString stringWithFormat:@"%@",Localized(@"JX_NextStep")] forState:UIControlStateNormal];
- }else {
- [self.nextBtn setTitle:[NSString stringWithFormat:@"%@(%ld)",Localized(@"JX_NextStep"),_selUserIdArray.count] forState:UIControlStateNormal];
- }
- }
- - (void) textFieldDidChange:(UITextField *)textField {
-
- if (textField.text.length <= 0) {
- [self getArrayData];
- return;
- }
-
- [_searchArray removeAllObjects];
- for (NSInteger i = 0; i < _array.count; i ++) {
- JXUserObject * user = _array[i];
- NSString *userStr = [user.userNickname lowercaseString];
- NSString *textStr = [textField.text lowercaseString];
- if ([userStr rangeOfString:textStr].location != NSNotFound) {
- [_searchArray addObject:user];
- }
- }
-
- [_checkBoxArr removeAllObjects];
- [self.tableView reloadData];
- }
- -(void)getArrayData{
- _array=[[JXUserObject sharedInstance] fetchAllUserFromLocal];
- //选择拼音 转换的 方法
- BMChineseSortSetting.share.sortMode = 2; // 1或2
- //排序 Person对象
- [BMChineseSort sortAndGroup:_array key:@"userNickname" finish:^(bool isSuccess, NSMutableArray *unGroupArr, NSMutableArray *sectionTitleArr, NSMutableArray<NSMutableArray *> *sortedObjArr) {
- if (isSuccess) {
- self.indexArray = sectionTitleArr;
- self.letterResultArr = sortedObjArr;
- [_checkBoxArr removeAllObjects];
- [self.tableView reloadData];
- }
- }];
- // //根据Person对象的 name 属性 按中文 对 Person数组 排序
- // self.indexArray = [BMChineseSort IndexWithArray:_array Key:@"userNickname"];
- // self.letterResultArr = [BMChineseSort sortObjectArray:_array Key:@"userNickname"];
- // [self.tableView reloadData];
- }
- #pragma mark ---------tableView协议----------------
- -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- {
- // if (_seekTextField.text.length > 0) {
- // return 1;
- // }
- // return [self.indexArray count];
- return 0;
- }
- - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
- if (_seekTextField.text.length > 0) {
- return Localized(@"JXFriend_searchTitle");
- }
- return [self.indexArray objectAtIndex:section];
- }
- -(void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{
- UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
- header.tintColor = HEXCOLOR(0xF2F2F2);
- [header.textLabel setTextColor:HEXCOLOR(0x999999)];
- [header.textLabel setFont:SYSFONT(15)];
- }
- -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- {
- if (_seekTextField.text.length > 0) {
- return _searchArray.count;
- }
- return [(NSArray *)[self.letterResultArr objectAtIndex:section] count];
- }
- -(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
- // if (_seekTextField.text.length > 0) {
- // return nil;
- // }
- // return self.indexArray;
- return nil;
- }
- - (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
- return index;
- }
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- NSArray * tempArray;
-
- if (_seekTextField.text.length > 0) {
- tempArray = _searchArray;
- }else{
- tempArray = [self.letterResultArr objectAtIndex:indexPath.section];
- }
-
- JXCell *cell=nil;
- NSString* cellName = [NSString stringWithFormat:@"selVC_%d",(int)indexPath.row];
- // cell = [tableView dequeueReusableCellWithIdentifier:cellName];
- // QCheckBox* btn;
- // if (!cell) {
- cell = [[JXCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellName];
- cell.selectionStyle = UITableViewCellSelectionStyleNone;
- QCheckBox* btn = [[QCheckBox alloc] initWithDelegate:self];
- btn.frame = CGRectMake(13, 18.5, 22, 22);
- [cell addSubview:btn];
- // }
-
- JXUserObject *user=tempArray[indexPath.row];
-
- btn.tag = (indexPath.section + 1) * 100000 + (indexPath.row + 1);
- BOOL flag = NO;
- for (NSInteger i = 0; i < _selUserIdArray.count; i ++) {
- NSString *selUserId = _selUserIdArray [i];
- if ([user.userId isEqualToString:selUserId]) {
- flag = YES;
- break;
- }
- }
- btn.checked = flag;
-
- [_checkBoxArr addObject:btn];
- // cell = [[JXCell alloc] init];
- [_table addToPool:cell];
- cell.title = user.userNickname;
- // cell.subtitle = user.userId;
- cell.bottomTitle = [TimeUtil formatDate:user.timeCreate format:@"MM-dd HH:mm"];
- cell.userId = user.userId;
- cell.isSmall = YES;
- [cell headImageViewImageWithUserId:nil roomId:nil];
-
-
- CGFloat headX = 13*2+22;
-
- cell.headImageView.frame = CGRectMake(headX,9.5,40,40);
- cell.headImageView.layer.cornerRadius = cell.headImageView.frame.size.width / 2;
- cell.lbTitle.frame = CGRectMake(CGRectGetMaxX(cell.headImageView.frame)+15, 21.5, JX_SCREEN_WIDTH - 115 -CGRectGetMaxX(cell.headImageView.frame)-14, 16);
- cell.lbSubTitle.frame = CGRectMake(CGRectGetMaxX(cell.headImageView.frame)+15, cell.lbSubTitle.frame.origin.y, JX_SCREEN_WIDTH - 55 -CGRectGetMaxX(cell.headImageView.frame)-14, cell.lbSubTitle.frame.size.height);
- cell.lineView.frame = CGRectMake(CGRectGetMaxX(cell.headImageView.frame)+15,59-LINE_WH,JX_SCREEN_WIDTH,LINE_WH);
- if (indexPath.row == [(NSArray *)[self.letterResultArr objectAtIndex:indexPath.section] count]-1) {
- cell.lineView.frame = CGRectMake(cell.lineView.frame.origin.x, cell.lineView.frame.origin.y, cell.lineView.frame.size.width,0);
- }else {
- cell.lineView.frame = CGRectMake(cell.lineView.frame.origin.x, cell.lineView.frame.origin.y, cell.lineView.frame.size.width,LINE_WH);
- }
- // cell.headImageView.frame = CGRectMake(cell.headImageView.frame.origin.x + 50, cell.headImageView.frame.origin.y, cell.headImageView.frame.size.width, cell.headImageView.frame.size.height);
- // cell.lbTitle.frame = CGRectMake(cell.lbTitle.frame.origin.x + 50, cell.lbTitle.frame.origin.y, cell.lbTitle.frame.size.width, cell.lbTitle.frame.size.height);
-
- return cell;
- }
- -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- {
- // QCheckBox *checkBox = nil;
- // for (NSInteger i = 0; i < _checkBoxArr.count; i ++) {
- // QCheckBox *btn = _checkBoxArr[i];
- // if (btn.tag / 10000 == indexPath.section && btn.tag % 10000 == indexPath.row) {
- // checkBox = btn;
- // break;
- // }
- // }
-
- JXCell *cell = [tableView cellForRowAtIndexPath:indexPath];
- QCheckBox *checkBox = [cell viewWithTag:(indexPath.section + 1) * 100000 + (indexPath.row + 1)];
-
- checkBox.selected = !checkBox.selected;
- [self didSelectedCheckBox:checkBox checked:checkBox.selected];
- }
- -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- return 59;
- }
- - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
- [self.view endEditing:YES];
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- /*
- #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
|