YOUPAIHRGuildCenterSearchVC.m 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. //
  2. // YOUPAIHRGuildCenterSearchVC.m
  3. // VQU
  4. //
  5. // Created by xiaohaoran on 2021/11/3.
  6. // Copyright © 2021 MS. All rights reserved.
  7. //
  8. #import "YOUPAIHRGuildCenterSearchVC.h"
  9. #import "YOUPAIHRGuildCenterSearchCell.h"
  10. #import "YOUPAIHRGuildCenterDetailVC.h"
  11. #import "YOUPAIHRGuildCenterSearchModel.h"
  12. @interface YOUPAIHRGuildCenterSearchVC ()<UISearchBarDelegate,UITableViewDelegate,UITableViewDataSource>
  13. @property(nonatomic,strong)UISearchBar* youpaipsearchBar;
  14. @property(nonatomic,strong)UITableView *youpaiptableView;
  15. @property(nonatomic,strong)NSMutableArray *youpaipdataMutArr;//进来就有(待审核数据)
  16. @property(nonatomic,strong)NSMutableArray* youpaippersonArray;//搜索结果
  17. @property(nonatomic,assign)NSInteger youpaipcurrentPage;//代表当前页码
  18. @property(nonatomic,assign)NSInteger youpaiptotalPage;
  19. @property(nonatomic,assign)BOOL youpaipisSearch;
  20. @property(nonatomic,copy)NSString *youpaipcurrentString;
  21. @end
  22. @implementation YOUPAIHRGuildCenterSearchVC
  23. - (void)viewDidLoad {
  24. [super viewDidLoad];
  25. self.title = @"加入公会";
  26. [self youpaifsetSearchUI];
  27. [self youpaiptableView];
  28. self.youpaiptableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(youpaifloadNewData)];
  29. MJRefreshAutoNormalFooter* normalFooter = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(youpaifloadMoreData)];
  30. [normalFooter setTitle:@"正在加载..." forState:(MJRefreshStateRefreshing)];
  31. [normalFooter setTitle:@"" forState:(MJRefreshStateNoMoreData)];
  32. self.youpaiptableView.mj_footer = normalFooter;
  33. self.youpaiptableView.mj_footer.automaticallyHidden = YES;
  34. [self.youpaiptableView.mj_header beginRefreshing];
  35. }
  36. - (void)youpaifloadNewData{
  37. self.youpaiptableView.mj_footer.hidden = YES;
  38. [self.youpaiptableView.mj_footer endRefreshing];//先结束上拉,假如有的话
  39. self.youpaipcurrentPage = 1;
  40. if (self.youpaipisSearch) {
  41. [self.youpaippersonArray removeAllObjects];
  42. [LCHttpHelper requestWithURLString:ChatRoom_Guild_guildSearch parameters:@{@"keyword":self.youpaipcurrentString} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  43. NSDictionary* dict = (NSDictionary*)responseObject;
  44. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  45. if (code==0) {//成功
  46. [self.youpaippersonArray removeAllObjects];
  47. YOUPAIHRGuildCenterSearchModel* model = [YOUPAIHRGuildCenterSearchModel mj_objectWithKeyValues:dict[@"data"]];
  48. [self.youpaippersonArray addObject:model];
  49. [self.youpaiptableView reloadData];
  50. }
  51. [self.youpaiptableView.mj_footer endRefreshing];
  52. if (self.youpaippersonArray.count != 0) {
  53. [self.youpaiptableView lz_hideEmptyView];
  54. }else{
  55. [self.youpaiptableView lz_showEmptyViewWithImage:[UIImage imageNamed:@"vqu_images_not_home_data"] content:@"暂无数据"];
  56. }
  57. } failure:^(NSError *error) {
  58. [self.youpaiptableView.mj_footer endRefreshing];
  59. }];
  60. }
  61. [LCHttpHelper requestWithURLString:ChatRoom_Guild_search parameters:@{@"page":@(self.youpaipcurrentPage),@"number":@"15"} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  62. NSDictionary* dict = (NSDictionary*)responseObject;
  63. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  64. if (code==0) {//成功
  65. [self.youpaipdataMutArr removeAllObjects];
  66. NSArray* array = [[dict objectForKey:@"data"]objectForKey:@"list"];
  67. NSMutableArray* modelArray = [YOUPAIHRGuildCenterSearchModel mj_objectArrayWithKeyValuesArray:array];
  68. NSMutableArray* tempArray = [NSMutableArray arrayWithArray:(NSArray*)modelArray];
  69. [self.youpaipdataMutArr addObjectsFromArray:tempArray];
  70. self.youpaiptotalPage = [[[dict objectForKey:@"data"]objectForKey:@"total_page"]integerValue];
  71. self.youpaipcurrentPage = [[[dict objectForKey:@"data"]objectForKey:@"page"]integerValue];
  72. [self.youpaiptableView reloadData];
  73. if (self.youpaipcurrentPage>=self.youpaiptotalPage) {
  74. [self.youpaiptableView.mj_footer endRefreshingWithNoMoreData];
  75. self.youpaiptableView.mj_footer.hidden = YES;
  76. }
  77. [self.youpaiptableView.mj_header endRefreshing];
  78. if (self.youpaipdataMutArr.count != 0) {
  79. [self.youpaiptableView lz_hideEmptyView];
  80. }else{
  81. [self.youpaiptableView lz_showEmptyViewWithImage:[UIImage imageNamed:@"vqu_images_not_home_data"] content:@"暂无数据"];
  82. }
  83. }else{
  84. [self.youpaiptableView.mj_header endRefreshing];
  85. }
  86. } failure:^(NSError *error) {
  87. [self.youpaiptableView.mj_header endRefreshing];
  88. }];
  89. }
  90. - (void)youpaifloadMoreData{
  91. [self.youpaiptableView.mj_header endRefreshing];
  92. self.youpaiptableView.mj_footer.hidden = YES;
  93. [self.youpaiptableView.mj_footer endRefreshing];
  94. self.youpaipcurrentPage+=1;
  95. if (self.youpaipisSearch) {//搜索
  96. [self.youpaippersonArray removeAllObjects];
  97. [LCHttpHelper requestWithURLString:ChatRoom_Guild_guildSearch parameters:@{@"keyword":self.youpaipcurrentString} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  98. NSDictionary* dict = (NSDictionary*)responseObject;
  99. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  100. if (code==0) {//成功
  101. [self.youpaippersonArray removeAllObjects];
  102. YOUPAIHRGuildCenterSearchModel* model = [YOUPAIHRGuildCenterSearchModel mj_objectWithKeyValues:dict[@"data"]];
  103. [self.youpaippersonArray addObject:model];
  104. [self.youpaiptableView reloadData];
  105. }
  106. [self.youpaiptableView.mj_footer endRefreshing];
  107. if (self.youpaippersonArray.count != 0) {
  108. [self.youpaiptableView lz_hideEmptyView];
  109. }else{
  110. [self.youpaiptableView lz_showEmptyViewWithImage:[UIImage imageNamed:@"vqu_images_not_home_data"] content:@"暂无数据"];
  111. }
  112. } failure:^(NSError *error) {
  113. [self.youpaiptableView.mj_footer endRefreshing];
  114. }];
  115. }else{
  116. [LCHttpHelper requestWithURLString:ChatRoom_Guild_search parameters:@{@"page":@(self.youpaipcurrentPage),@"number":@"15"} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  117. NSDictionary* dict = (NSDictionary*)responseObject;
  118. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  119. if (code==0) {//成功
  120. NSArray* array = [[dict objectForKey:@"data"]objectForKey:@"list"];
  121. NSMutableArray* modelArray = [YOUPAIHRGuildCenterSearchModel mj_objectArrayWithKeyValuesArray:array];
  122. NSMutableArray* tempArray = [NSMutableArray arrayWithArray:(NSArray*)modelArray];
  123. [self.youpaipdataMutArr addObjectsFromArray:tempArray];
  124. self.youpaiptotalPage = [[[dict objectForKey:@"data"] objectForKey:@"total_page"]integerValue];
  125. self.youpaipcurrentPage = [[[dict objectForKey:@"data"]objectForKey:@"page"]integerValue];
  126. [self.youpaiptableView reloadData];
  127. if (self.youpaipcurrentPage>=self.youpaiptotalPage) {
  128. [self.youpaiptableView.mj_footer endRefreshingWithNoMoreData];
  129. self.youpaiptableView.mj_footer.hidden = YES;
  130. }
  131. [self.youpaiptableView.mj_header endRefreshing];
  132. }else{
  133. [self.youpaiptableView.mj_header endRefreshing];
  134. }
  135. if (self.youpaipdataMutArr.count != 0) {
  136. [self.youpaiptableView lz_hideEmptyView];
  137. }else{
  138. [self.youpaiptableView lz_showEmptyViewWithImage:[UIImage imageNamed:@"vqu_images_not_home_data"] content:@"暂无数据"];
  139. }
  140. } failure:^(NSError *error) {
  141. [self.youpaiptableView.mj_header endRefreshing];
  142. }];
  143. }
  144. }
  145. -(void)youpaifbackVC{
  146. [self.youpaipsearchBar resignFirstResponder];
  147. }
  148. - (void)youpaifcancelClick{
  149. self.youpaipsearchBar.text = @"";
  150. [self searchBar:self.youpaipsearchBar textDidChange:@""];
  151. }
  152. - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
  153. [self.youpaipsearchBar resignFirstResponder];
  154. }
  155. - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
  156. [searchBar resignFirstResponder];
  157. //判断空格
  158. if ([[searchBar.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length]==0) {
  159. searchBar.text = @"";
  160. self.youpaipisSearch = NO;
  161. }else{
  162. self.youpaipisSearch = YES;
  163. self.youpaipcurrentString = searchBar.text;
  164. [LCHttpHelper requestWithURLString:ChatRoom_Guild_guildSearch parameters:@{@"keyword":self.youpaipcurrentString} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  165. NSDictionary* dict = (NSDictionary*)responseObject;
  166. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  167. if (code==0) {//成功
  168. [self.youpaippersonArray removeAllObjects];
  169. YOUPAIHRGuildCenterSearchModel* model = [YOUPAIHRGuildCenterSearchModel mj_objectWithKeyValues:dict[@"data"]];
  170. if (model != nil) {
  171. [self.youpaippersonArray addObject:model];
  172. }
  173. [self.youpaiptableView reloadData];
  174. }
  175. [self.youpaiptableView.mj_footer endRefreshing];
  176. if (self.youpaippersonArray.count != 0) {
  177. [self.youpaiptableView lz_hideEmptyView];
  178. }else{
  179. [self.youpaiptableView lz_showEmptyViewWithImage:[UIImage imageNamed:@"vqu_images_not_home_data"] content:@"暂无数据"];
  180. }
  181. } failure:^(NSError *error) {
  182. [self.youpaiptableView.mj_footer endRefreshing];
  183. }];
  184. }
  185. }
  186. - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
  187. NSLog(@"%@",searchText);
  188. NSLog(@"%@",searchBar.text);
  189. if ([searchBar.text isEqualToString:@""]) {
  190. // self.tableView.hidden = YES;
  191. [self.youpaippersonArray removeAllObjects];
  192. self.youpaipcurrentPage = 1;
  193. self.youpaipcurrentString = @"";
  194. self.youpaipisSearch = NO;
  195. [self.youpaiptableView.mj_header beginRefreshing];
  196. }else{
  197. }
  198. }
  199. -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  200. // YOUPAIHRGuildCenterDetailVC *vc = [YOUPAIHRGuildCenterDetailVC new];
  201. // [self.navigationController pushViewController:vc animated:YES];
  202. }
  203. -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  204. return 68;
  205. }
  206. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  207. if (self.youpaipisSearch) {
  208. return self.youpaippersonArray.count;
  209. }
  210. return self.youpaipdataMutArr.count;
  211. }
  212. -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  213. YOUPAIHRGuildCenterSearchCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HRGuildCenterSearchID" forIndexPath:indexPath];;
  214. if (cell == nil) {
  215. cell = [[YOUPAIHRGuildCenterSearchCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"HRGuildCenterSearchID"];
  216. }
  217. [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
  218. cell.backgroundColor = LCBkgColor;
  219. YOUPAIHRGuildCenterSearchModel *model;
  220. if (self.youpaipisSearch) {
  221. model = self.youpaippersonArray[indexPath.row];
  222. }else{
  223. model = self.youpaipdataMutArr[indexPath.row];
  224. }
  225. cell.youpaipmodel = model;
  226. @weakify(self);
  227. [cell setYoupaipjoinGuildBlock:^(YOUPAIHRGuildCenterSearchModel * _Nonnull model) {
  228. @strongify(self);
  229. [self youpaifguildJoin:model];
  230. }];
  231. return cell;
  232. }
  233. //申请加入
  234. -(void)youpaifguildJoin:(YOUPAIHRGuildCenterSearchModel*)model{
  235. [LCHttpHelper requestWithURLString:ChatRoom_guildJoin parameters:@{@"guild_id":[NSString stringWithFormat:@"%ld",model.youpaipid]} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  236. NSDictionary* dict = (NSDictionary*)responseObject;
  237. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  238. if (code==0) {//成功
  239. self.youpaipisSearch = NO;
  240. [self.youpaiptableView.mj_header beginRefreshing];
  241. }else{
  242. [ZCHUDHelper showTitle:dict[@"message"]];
  243. }
  244. } failure:^(NSError *error) {
  245. }];
  246. }
  247. - (void)youpaifsetSearchUI{
  248. UIView *bgSearchView = [UIView new];
  249. [self.view addSubview:bgSearchView];
  250. [bgSearchView mas_makeConstraints:^(MASConstraintMaker *make) {
  251. make.left.mas_equalTo(0);
  252. make.right.mas_equalTo(0);
  253. make.top.mas_equalTo(NavBarHeight+8);
  254. make.height.mas_equalTo(44);
  255. }];
  256. bgSearchView.backgroundColor = LCBkgColor;
  257. UISearchBar* search = [[UISearchBar alloc]initWithFrame:CGRectZero];
  258. [bgSearchView addSubview:search];
  259. [search mas_makeConstraints:^(MASConstraintMaker *make) {
  260. make.left.mas_equalTo(10);
  261. make.width.mas_equalTo(KScreenWidth-80);
  262. make.top.mas_equalTo(0);
  263. make.bottom.mas_equalTo(0);
  264. }];
  265. [search setImage:[UIImage imageNamed:@"vqu_images_H_search_icon"]
  266. forSearchBarIcon:UISearchBarIconSearch
  267. state:UIControlStateNormal];
  268. // search.tintColor = ZYPinkColor;
  269. search.backgroundImage = [UIImage imageWithColor:LCBkgColor size:CGSizeMake(KScreenWidth-80, 44)];
  270. [search setSearchFieldBackgroundImage:[UIImage imageWithColor:HexColorFromRGB(0x4F4B5B) size:CGSizeMake(KScreenWidth-80, 38.0f)] forState:UIControlStateNormal];
  271. // search.searchTextField.clearButtonMode = UITextFieldViewModeAlways;
  272. UITextField *searchField = [search valueForKey:@"searchField"];
  273. if (searchField) {
  274. searchField.frame = CGRectMake(16,8,search.frame.size.width-16,38);
  275. [searchField setBackgroundColor:HexColorFromRGB(0x4F4B5B)];
  276. searchField.layer.cornerRadius = 19.0f;
  277. searchField.layer.masksToBounds = YES;
  278. searchField.font = LCFont(14);
  279. searchField.textColor = [UIColor whiteColor];
  280. NSMutableAttributedString* placeholder = [[NSMutableAttributedString alloc]initWithString:@"搜索公会ID"];
  281. [placeholder addAttribute:NSFontAttributeName value:LCFont(14) range:NSMakeRange(0, placeholder.length)];
  282. [placeholder addAttribute:NSForegroundColorAttributeName value:HexColorFromRGB(0x6C6B70) range:NSMakeRange(0, placeholder.length)];
  283. searchField.attributedPlaceholder = placeholder;
  284. searchField.clearButtonMode = UITextFieldViewModeAlways;
  285. }
  286. search.delegate = self;
  287. self.youpaipsearchBar = search;
  288. //取消
  289. UIButton *cancelBtn = [UIButton new];
  290. [bgSearchView addSubview:cancelBtn];
  291. [cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  292. make.left.mas_equalTo(search.mas_right);
  293. make.right.mas_equalTo(0);
  294. make.top.mas_equalTo(0);
  295. make.bottom.mas_equalTo(0);
  296. }];
  297. [cancelBtn setTitle:@"取消" forState:UIControlStateNormal];
  298. [cancelBtn setTitleColor:HexColorFromRGB(0x9F9DA5) forState:UIControlStateNormal];
  299. [cancelBtn addTarget:self action:@selector(youpaifcancelButtonClick) forControlEvents:UIControlEventTouchUpInside];
  300. }
  301. -(UITableView *)youpaiptableView{
  302. if (_youpaiptableView == nil) {
  303. _youpaiptableView = [[UITableView alloc]initWithFrame:CGRectZero style:UITableViewStylePlain];
  304. [self.view addSubview:_youpaiptableView];
  305. [_youpaiptableView mas_makeConstraints:^(MASConstraintMaker *make) {
  306. make.top.mas_equalTo(44+8+NavBarHeight);
  307. make.left.mas_equalTo(0);
  308. make.right.mas_equalTo(0);
  309. make.bottom.mas_equalTo(-SafeHeight);
  310. }];
  311. _youpaiptableView.delegate = self;
  312. _youpaiptableView.dataSource = self;
  313. _youpaiptableView.backgroundColor = [UIColor clearColor];
  314. _youpaiptableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  315. _youpaiptableView.showsVerticalScrollIndicator = NO;
  316. _youpaiptableView.showsHorizontalScrollIndicator = NO;
  317. if (@available(iOS 15.0, *)) {
  318. _youpaiptableView.sectionHeaderTopPadding = 0;
  319. }
  320. [_youpaiptableView registerClass:[YOUPAIHRGuildCenterSearchCell class] forCellReuseIdentifier:@"HRGuildCenterSearchID"];
  321. }
  322. return _youpaiptableView;
  323. }
  324. -(void)youpaifcancelButtonClick{
  325. [self.youpaipsearchBar resignFirstResponder];
  326. if (self.youpaipsearchBar.text.length>0) {
  327. self.youpaipsearchBar.text = @"";
  328. }else{
  329. [self.navigationController popViewControllerAnimated:YES];
  330. }
  331. }
  332. -(NSMutableArray *)youpaipdataMutArr{
  333. if(_youpaipdataMutArr == nil){
  334. _youpaipdataMutArr = [NSMutableArray new];
  335. }
  336. return _youpaipdataMutArr;
  337. }
  338. -(NSMutableArray *)youpaippersonArray{
  339. if(_youpaippersonArray == nil){
  340. _youpaippersonArray = [NSMutableArray new];
  341. }
  342. return _youpaippersonArray;
  343. }
  344. @end