MyReserveVC.m 9.8 KB

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