MyReserveVC.m 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. //
  2. // MyReserveVC.m
  3. // jiaPei
  4. //
  5. // Created by apple on 15/12/24.
  6. // Copyright © 2015年 JCZ. All rights reserved.
  7. //
  8. #import "MyReserveVC.h"
  9. #import "STSegView.h"
  10. #import "HolderView.h"
  11. #import "DateView.h"
  12. #import "ReserveCell.h"
  13. @interface MyReserveVC ()<UITableViewDataSource,UITableViewDelegate>
  14. {
  15. STSegView *seg;
  16. UITableView *mainTableView;
  17. HolderView *holder;
  18. UIBarButtonItem *item;
  19. UIView *backView;
  20. UIButton *beginBtn;
  21. UIButton *endBtn;
  22. NSMutableArray *dataArray;;
  23. NSString *beginDate;
  24. NSString *endDate;
  25. NSInteger reserveState;
  26. NSInteger currentPage;
  27. }
  28. @end
  29. @implementation MyReserveVC
  30. - (void)viewDidLoad {
  31. [super viewDidLoad];
  32. [self myInit];
  33. [self getReserveInfos];
  34. }
  35. -(void)viewWillDisappear:(BOOL)animated
  36. {
  37. [super viewWillDisappear:animated];
  38. RemoveHUD();
  39. }
  40. - (void)didReceiveMemoryWarning {
  41. [super didReceiveMemoryWarning];
  42. }
  43. -(void)myInit
  44. {
  45. [self.view setBackgroundColor:[UIColor whiteColor]];
  46. [self setTitle:@"查看我的预约"];
  47. [self goBackByNavigation];
  48. currentPage = 1;
  49. reserveState = 1;
  50. beginDate = @"";
  51. endDate = @"";
  52. dataArray = [NSMutableArray array];
  53. item = [[UIBarButtonItem alloc] initWithTitle:@"查找" style:UIBarButtonItemStyleDone target:self action:@selector(clickToSearch)];
  54. [item setTintColor:defGreen];
  55. [self.navigationItem setRightBarButtonItem:item];
  56. CGFloat x,y,w,h;
  57. x = y = 0;
  58. w = kSize.width;
  59. h = 50;
  60. seg = [[STSegView alloc] initWithFrame:CGRectMake(x, y, w, h)];
  61. [seg setTitles:@[@"已同意",@"已拒绝",@"预约中",@"已取消"]];
  62. seg.selectedIndex = 0;
  63. [self.view addSubview:seg];
  64. y += h;
  65. h = kSize.height - y - 64;
  66. mainTableView = [[UITableView alloc] initWithFrame:CGRectMake(x, y, w, h) style:UITableViewStyleGrouped];
  67. mainTableView.delegate = self;
  68. mainTableView.dataSource = self;
  69. mainTableView.rowHeight = 180;
  70. [self.view addSubview:mainTableView];
  71. [seg click:^(NSString* sInd) {
  72. //切换状态选择后 要将当前页码置1 开始结束时间置空
  73. currentPage = 1;
  74. beginDate = @"";
  75. endDate = @"";
  76. switch ([sInd integerValue]) {
  77. case 0:
  78. reserveState = 1;
  79. break;
  80. case 1:
  81. reserveState = 0;
  82. break;
  83. case 2:
  84. reserveState = 2;
  85. break;
  86. case 3:
  87. reserveState = 3;
  88. break;
  89. default:
  90. break;
  91. }
  92. [self getReserveInfos];
  93. }];
  94. holder = [[HolderView alloc] initWithFrame:mainTableView.frame];
  95. [holder freshBlock:^{
  96. currentPage = 1;
  97. [self getReserveInfos];
  98. }];
  99. [self.view addSubview:holder];
  100. }
  101. -(void)clickToSearch
  102. {
  103. item.enabled = NO;
  104. backView = [[UIView alloc] initWithFrame:kFrame];
  105. backView.backgroundColor = [UIColor colorWithWhite:.1 alpha:.5];
  106. [self.view addSubview:backView];
  107. CGFloat x, y, w, h, bd;
  108. x = 20;
  109. y = (kSize.height - 250)/2.0;
  110. w = kSize.width - 40;
  111. h = 250;
  112. UIView *searchView = [[UIView alloc] KSetxywh];
  113. searchView.backgroundColor = KBackGroundColor;
  114. searchView.layer.masksToBounds = YES;
  115. searchView.layer.cornerRadius = 5;
  116. [backView addSubview:searchView];
  117. x = y = bd = 15;
  118. w = searchView.width - 30;
  119. h = 50;
  120. NSArray *imgArray = @[@"beginDate",@"endDate"];
  121. NSString *beginDateStr = @"预约开始日期";
  122. NSString *endDateStr = @"预约结束日期";
  123. if (beginDate.length > 0) {
  124. beginDateStr = beginDate;
  125. }
  126. if (endDate.length > 0) {
  127. endDateStr = endDate;
  128. }
  129. NSArray *titles = @[beginDateStr,endDateStr];
  130. NSMutableArray *btns = [NSMutableArray arrayWithCapacity:3];
  131. for (int i = 0; i < 2; i ++) {
  132. UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(x + bd, 2*y + i*(h + bd), 20, 20)];
  133. imageView.image = [[UIImage imageNamed:imgArray[i]] tint:defGreen];
  134. [searchView addSubview:imageView];
  135. UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y + i*(h + bd) , w, h)];
  136. [button setTitle:titles[i] textColor:KContentTextColor font:16 fotState:UIControlStateNormal];
  137. button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
  138. button.titleEdgeInsets = UIEdgeInsetsMake(0, 3*bd, 0, 0);
  139. [button borderColor:kLineColor width:2 cornorRadios:5];
  140. [button target:self Tag:i];
  141. [searchView addSubview:button];
  142. [btns addObject:button];
  143. }
  144. beginBtn = btns[0];
  145. endBtn = btns[1];
  146. y += 2*(h + bd);
  147. w = (w - 2*bd)/2.0;
  148. NSArray *titleArrays = @[@"取消",@"查询"];
  149. for (int i = 0; i < 2; i ++) {
  150. UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x + i*(w + 2*bd), y , w, h)];
  151. [button setTitle:titleArrays[i] textColor:defGreen font:16 fotState:UIControlStateNormal];
  152. [button borderColor:kLineColor width:2 cornorRadios:5];
  153. [button target:self Tag:i + 2];
  154. [searchView addSubview:button];
  155. }
  156. }
  157. -(void)btnClick:(UIButton *)sender
  158. {
  159. switch (sender.tag) {
  160. case 0:
  161. {
  162. DateView *dateV = [[DateView alloc] init];
  163. [dateV setStyle:0];
  164. [dateV showWithComplete:^(NSString * result) {
  165. beginDate = result;
  166. [beginBtn setTitle:beginDate forState:UIControlStateNormal];
  167. }];
  168. }
  169. break;
  170. case 1:
  171. {
  172. DateView *dateV = [[DateView alloc] init];
  173. [dateV setStyle:0];
  174. [dateV showWithComplete:^(NSString * result) {
  175. endDate = result;
  176. [endBtn setTitle:endDate forState:UIControlStateNormal];
  177. }];
  178. }
  179. break;
  180. case 2:
  181. {
  182. if (backView) {
  183. [backView removeFromSuperview];
  184. }
  185. item.enabled = YES;
  186. }
  187. break;
  188. case 3:
  189. {
  190. if (backView) {
  191. [backView removeFromSuperview];
  192. }
  193. item.enabled = YES;
  194. //如果是重新选择时间 需要将currentPage重置为1
  195. currentPage = 1;
  196. [self getReserveInfos];
  197. }
  198. break;
  199. default:
  200. break;
  201. }
  202. }
  203. #pragma mark tableView delegate
  204. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  205. {
  206. return dataArray.count;
  207. }
  208. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  209. {
  210. return 1;
  211. }
  212. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  213. {
  214. ReserveCell* cell =[tableView dequeueReusableCellWithIdentifier:@"ReserveCell"];
  215. if (cell == nil) {
  216. cell = [[ReserveCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ReserveCell"];
  217. [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
  218. }
  219. cell.dataDic = dataArray[indexPath.section];
  220. [cell click:^{
  221. currentPage = 1;
  222. [self getReserveInfos];
  223. }];
  224. return cell;
  225. }
  226. -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
  227. {
  228. UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kSize.width, 15)];
  229. view.backgroundColor = kLineColor;
  230. return view;
  231. }
  232. -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
  233. {
  234. return 15;
  235. }
  236. -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
  237. {
  238. UIView *view = [UIView new];
  239. return view;
  240. }
  241. -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
  242. {
  243. return .1;
  244. }
  245. -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
  246. {
  247. CGPoint off = scrollView.contentOffset;
  248. if (scrollView.contentSize.height - off.y - scrollView.frame.size.height < 1) {
  249. [scrollView setContentOffset:CGPointMake(off.x, off.y - 10) animated:YES];
  250. // NSLog(@"AT bottom");
  251. [self getReserveInfos];
  252. }
  253. }
  254. #pragma mark - 数据请求
  255. -(void)getReserveInfos
  256. {
  257. //NSLog(@"我的预约---->%@---->%@",arr,root);
  258. NSDictionary *root = nil;
  259. if (currentPage == 1) {
  260. holder.hidden = NO;
  261. [dataArray removeAllObjects];
  262. }
  263. if (!root) {
  264. ShowMsgError();
  265. return;
  266. }
  267. if ([root[@"code"] isEqualToString:@"1"]) {
  268. ShowMsg(root[@"body"]);
  269. return;
  270. }
  271. NSArray *array = root[@"body"];
  272. if ([array count] < 1) {
  273. ShowMsg(@"已加载全部");
  274. return;
  275. }
  276. [dataArray addObjectsFromArray:array];
  277. currentPage += 1;
  278. holder.hidden = YES;
  279. [mainTableView reloadData];
  280. }
  281. @end