StudentList.m 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. //
  2. // StudentList.m
  3. // LNManager
  4. //
  5. // Created by EchoShacolee on 2017/4/8.
  6. // Copyright © 2017年 lee. All rights reserved.
  7. //
  8. #import "StudentList.h"
  9. #import "StudentDetail.h"
  10. #import "StudentListCell.h"
  11. #import "FaceColloectVC.h"
  12. @interface StudentList () <THDatePickerDelegate>
  13. {
  14. UIView *headerView;
  15. }
  16. @property (nonatomic, strong) THDatePickerViewController * datePicker;
  17. @property (nonatomic, retain) NSDate * curDate;
  18. @property (nonatomic, retain) NSDateFormatter * formatter;
  19. @property (nonatomic, assign) NSInteger currentPage;
  20. @end
  21. @implementation StudentList
  22. - (void)viewDidLoad {
  23. [super viewDidLoad];
  24. //@RQ-MARK 1.0.2修改:"人脸采集"模块展示单天报名学员(可进行人脸采集)
  25. self.navigationItem.title = (self.pageType == PageType_FaceCapture)? @"人脸采集学员列表" : @"学员列表";
  26. if (self.pageType == PageType_FaceCapture) [self creatRightNavigationItem];
  27. headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kSize.width, 50)];
  28. headerView.backgroundColor = [UIColor whiteColor];
  29. CGFloat wid = kSize.width/4.0 - 4.0;
  30. NSArray *titleArray = @[@"姓名",@"性别",@"车型",@"报名日期"];
  31. for (int i = 0; i < 4; i ++) {
  32. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(wid * i, 0, wid, 50)];
  33. label.font = [UIFont systemFontOfSize:18 weight:14];
  34. label.textAlignment = NSTextAlignmentCenter;
  35. label.text = titleArray[i];
  36. [headerView addSubview:label];
  37. }
  38. headerView.hidden = YES;
  39. self.tableView.tableHeaderView = headerView;
  40. [self.tableView registerNib:[UINib nibWithNibName:@"StudentListCell" bundle:nil] forCellReuseIdentifier:@"studentListCell"];
  41. [self getData];
  42. __weak typeof(self) weakSelf = self;
  43. self.holdervBlock = ^{
  44. [weakSelf getData];
  45. };
  46. if (self.pageType == PageType_FaceCapture) [self creatRefresh];
  47. }
  48. #pragma mark - UITableViewDataSource
  49. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  50. {
  51. StudentListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"studentListCell" forIndexPath:indexPath];
  52. if ([self.dataSource[indexPath.section] count] > 0) {
  53. cell.dataDic = self.dataSource[indexPath.section][indexPath.row];
  54. }
  55. return cell;
  56. }
  57. #pragma mark - TableViewDelegate
  58. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  59. if (self.pageType == PageType_FaceCapture) {
  60. [self goToFaceColloectVCWithIndexPath:indexPath];
  61. }else if (self.pageType == PageType_StudentList) {
  62. StudentDetail * vc = [[StudentDetail alloc]init];
  63. vc.dataSource = self.dataSource[indexPath.section][indexPath.row];//传入不再请求数据
  64. [self navPushHideTabbarToVC:vc];
  65. }
  66. }
  67. #pragma mark - Custom Way
  68. - (void)getData {
  69. NSMutableDictionary * mdic = [NSMutableDictionary new];
  70. [mdic setValue:@"" forKey:@"isPage"];
  71. [mdic setValue:@"" forKey:@"pageSize"];
  72. [mdic setValue:@"" forKey:@"currentPage"];
  73. [mdic setValue:defUser.userDict[@"id"] forKey:@"userId"];
  74. [mdic setValue:defUser.userDict[@"dqbh"] forKey:@"dqbh"];
  75. [mdic setValue:defUser.userDict[@"qxbh"] forKey:@"qxbh"];
  76. [mdic setValue:defUser.userDict[@"school"] forKey:@"school"];
  77. [mdic setValue:@"" forKey:@"isActive"];
  78. [mdic setValue:@"" forKey:@"logout"];
  79. [mdic setValue:@"" forKey:@"sex"];
  80. [mdic setValue:@"" forKey:@"subject"];
  81. [mdic setValue:@"" forKey:@"trainType"];
  82. [mdic setValue:@"" forKey:@"name"];
  83. [mdic setValue:@"" forKey:@"idcard"];
  84. [mdic setValue:@"" forKey:@"phone"];
  85. [mdic setValue:self.pageType == PageType_FaceCapture? [self.formatter stringFromDate:self.curDate] : @"" forKey:@"startTime"];
  86. [mdic setValue:self.pageType == PageType_FaceCapture? [self.formatter stringFromDate:self.curDate] : @"" forKey:@"endTime"];
  87. self.requsetDic = mdic;
  88. [self getDataWithDic:mdic method:@"students" block:^(NSDictionary *successdic) {
  89. NSLog(@"successdic----><>%@",successdic);
  90. NSArray * arr = successdic[@"body"];
  91. if (arr.count != 0) {
  92. self.holderV.hidden = YES;
  93. self->headerView.hidden = NO;
  94. }
  95. if (self.currentPage == 0) {
  96. [self.dataSource removeAllObjects];
  97. [self.sectionTitles removeAllObjects];
  98. }
  99. for (NSDictionary * dic in arr) {
  100. if (![self.sectionTitles containsObject:dic[@"ZM"]]) {
  101. [self.sectionTitles addObject:dic[@"ZM"]];
  102. [self.dataSource addObject:[NSMutableArray new]];
  103. }
  104. }
  105. //排序
  106. [self.sectionTitles sortUsingSelector:@selector(compare:)];
  107. for (NSDictionary * dic in arr) {
  108. NSInteger location = [self.sectionTitles indexOfObject:dic[@"ZM"]];
  109. [self.dataSource[location] addObject:dic];
  110. }
  111. [self endRefreshing];
  112. [self.tableView reloadData];
  113. }];
  114. }
  115. - (void)creatRefresh {
  116. self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
  117. _currentPage = 0;
  118. [self getData];
  119. }];
  120. }
  121. - (void)endRefreshing {
  122. [self.tableView.mj_header endRefreshing];
  123. [self.tableView.mj_footer endRefreshing];
  124. }
  125. - (void)creatRightNavigationItem {
  126. self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"选择日期" style:UIBarButtonItemStylePlain target:self action:@selector(rightNavigationItemClick)];
  127. [self.navigationItem.rightBarButtonItem setTintColor:RQMianColor];
  128. }
  129. - (void)rightNavigationItemClick {
  130. self.datePicker.date = self.curDate;
  131. [self presentSemiViewController:self.datePicker withOptions:@{
  132. KNSemiModalOptionKeys.pushParentBack : @(NO),
  133. KNSemiModalOptionKeys.animationDuration : @(0.3),
  134. KNSemiModalOptionKeys.shadowOpacity : @(0.3),
  135. }];
  136. }
  137. - (void)goToFaceColloectVCWithIndexPath:(NSIndexPath *)indexPath {
  138. FaceColloectVC *faceVC = [[FaceColloectVC alloc] init];
  139. faceVC.keyWord = self.dataSource[indexPath.section][indexPath.row][@"TSO_IDCARD"];
  140. faceVC.currentDate = self.curDate;
  141. [self navPushHideTabbarToVC:faceVC];
  142. }
  143. #pragma mark - THDatePickerDelegate
  144. - (void)datePickerDonePressed:(THDatePickerViewController *)datePicker {
  145. self.curDate = datePicker.date;
  146. [self getData];
  147. [self dismissSemiModalView];
  148. }
  149. - (void)datePickerCancelPressed:(THDatePickerViewController *)datePicker {
  150. [self dismissSemiModalView];
  151. }
  152. - (void)datePicker:(THDatePickerViewController *)datePicker selectedDate:(NSDate *)selectedDate {
  153. NSLog(@"Date selected: %@",[self.formatter stringFromDate:selectedDate]);
  154. }
  155. #pragma mark - Lazy Loading
  156. - (THDatePickerViewController *)datePicker {
  157. if (!_datePicker) {
  158. _datePicker = [THDatePickerViewController datePicker];
  159. _datePicker.delegate = self;
  160. _datePicker.currentDateColorSelected = RQMianColor;//当前日期被选中颜色
  161. _datePicker.currentDateColor = [UIColor redColor];//当前日期颜色
  162. _datePicker.selectedBackgroundColor = [UIColor lightGrayColor];//选中日期背景色
  163. [_datePicker setDisableYearSwitch:YES];//关闭左右滑动切换年
  164. [_datePicker setAllowClearDate:NO];
  165. [_datePicker setClearAsToday:YES];
  166. [_datePicker setAutoCloseOnSelectDate:NO];
  167. [_datePicker setAllowSelectionOfSelectedDate:YES];
  168. [_datePicker setDaysInHistorySelection:0];
  169. [_datePicker setDaysInFutureSelection:0];
  170. _datePicker.rounded = YES;
  171. }
  172. return _datePicker;
  173. }
  174. - (NSDate *)curDate {
  175. if (!_curDate) {
  176. _curDate = [NSDate date];
  177. }
  178. return _curDate;
  179. }
  180. - (NSDateFormatter *)formatter {
  181. if (!_formatter) {
  182. _formatter = [[NSDateFormatter alloc] init];
  183. [_formatter setDateFormat:@"yyyy-MM-dd"];
  184. }
  185. return _formatter;
  186. }
  187. - (NSInteger)currentPage {
  188. if (!_currentPage) {
  189. _currentPage = 0;
  190. }
  191. return _currentPage;
  192. }
  193. @end