// // OnLineCompleteViewController.m // redstar // // Created by admin on 15/11/29. // Copyright © 2015年 ZWF. All rights reserved. // #import "OnLineCompleteViewController.h" #import "OnLineCompleteCell.h" #import "OnLineCompleteDetailCell.h" #import "OnLineResultViewController.h" #import "HttpClient.h" #import "OnLineDetailModel.h" #import "StoreDetailModel.h" #define kOnLineCompleteCell @"onLineCompleteCell" #define kOnLineCompleteDetailCell @"onLineCompleteDetailCell" @interface OnLineCompleteViewController ()<UITableViewDelegate, UITableViewDataSource> @property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) OnLineDetailModel *onLineDetail; @property (nonatomic, assign) BOOL isOpen; @property (nonatomic,strong) NSMutableArray *allStoreArray; @end @implementation OnLineCompleteViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { self.edgesForExtendedLayout = UIRectEdgeNone; self.extendedLayoutIncludesOpaqueBars = NO; self.modalPresentationCapturesStatusBarAppearance = NO; self.navigationController.navigationBar.translucent = NO; } [self setupNav]; self.tableView.delegate = self; self.tableView.dataSource = self; self.allStoreArray = [NSMutableArray array]; [self requestOnLineTaskComplete]; _isOpen = NO; } #pragma mark - Private Mothods - (void)setupNav { UILabel *customLab = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 30)]; [customLab setTextColor:[UIColor whiteColor]]; [customLab setText:@"任务完成情况一览"]; customLab.font = [UIFont boldSystemFontOfSize:19]; self.navigationItem.titleView = customLab; UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; backBtn.frame = CGRectMake(0, 0, 30, 44); [backBtn setImage:[UIImage imageNamed:@"back_btn"] forState:UIControlStateNormal]; [backBtn addTarget:self action:@selector(doBack:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn]; self.navigationItem.leftBarButtonItem = backItem; } - (void)requestOnLineTaskComplete { NSString *url = [NSString stringWithFormat:@"%@%@%@?fetch_parts=stores", kRedStarURL, kSportcheckDetailURL,self.uuid]; url = [url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; HttpClient *httpClient= [[HttpClient alloc] initWithUrl:url]; [httpClient getSportCheckDetailWithCompletion:^(id response, NSError *error) { NSLog(@"5.4 抽查明细 response = %@, error = %@", response, error); NSDictionary *dataDict = response[@"data"]; OnLineDetailModel *onlineDetail = [[OnLineDetailModel alloc] init]; [onlineDetail setValuesForKeysWithDictionary:dataDict]; _onLineDetail = onlineDetail; for (NSDictionary *dict in _onLineDetail.stores) { StoreDetailModel *storeModel = [[StoreDetailModel alloc] init]; [storeModel setValuesForKeysWithDictionary:dict]; [_allStoreArray addObject:storeModel]; } self.tableView.delegate = self; self.tableView.dataSource = self; [self.tableView reloadData]; }]; } - (void)doBack:(id)sender { [self.navigationController popViewControllerAnimated:YES]; } - (void)unfoldCilck:(UIButton *)sender { _isOpen = !_isOpen; NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; } #pragma mark - UITableView Delegate/DataSource - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 2; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (section == 0) { return 1; } else { return _allStoreArray.count; } } // cell显示的内容 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0) { OnLineCompleteDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:kOnLineCompleteDetailCell]; if (!cell) { cell = [[OnLineCompleteDetailCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kOnLineCompleteDetailCell]; } cell.titleLabel.text = [NSString stringWithFormat:@"%@", _onLineDetail.title]; cell.startDate.text = [NSString stringWithFormat:@"发起时间:%@", _onLineDetail.create_time]; cell.overDate.text = [NSString stringWithFormat:@"截止时间:%@", _onLineDetail.endDate]; cell.taskContent.text = @"任务内容:"; [cell.unfoldBtn addTarget:self action:@selector(unfoldCilck:) forControlEvents:UIControlEventTouchUpInside]; cell.arrowImageView.image = [UIImage imageNamed:@"grey-trilateral_down"]; if (_isOpen) { cell.taskDetailLabel.text = [NSString stringWithFormat:@"%@", _onLineDetail.content]; } else { cell.taskDetailLabel.text = @""; } return cell; } else { OnLineCompleteCell *cell = [tableView dequeueReusableCellWithIdentifier:kOnLineCompleteCell]; if (!cell) { cell = [[OnLineCompleteCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kOnLineCompleteCell]; } cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; cell.storeDetail = _allStoreArray[indexPath.row]; return cell; } } - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if (section == 0) { return CGFLOAT_MIN; } else { return 45; } } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0) { return; } else { OnLineResultViewController *onLineResult = [[OnLineResultViewController alloc] init]; onLineResult.storeDetail = _allStoreArray[indexPath.row]; onLineResult.checkUuid = self.uuid; [self.navigationController pushViewController:onLineResult animated:YES]; } } - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { return CGFLOAT_MIN; } - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { if (section == 0) { return nil; } UIView *sectionView = [[UIView alloc] init]; sectionView.backgroundColor = kSectionBackGroundColor; UILabel *shopList = [[UILabel alloc] init]; shopList.translatesAutoresizingMaskIntoConstraints = NO; shopList.text = [NSString stringWithFormat:@"商场列表(%d/%d)", _onLineDetail.finishCount, _onLineDetail.storeCount]; shopList.textColor = kNavigationBarColor; shopList.font = [UIFont systemFontOfSize:16.0]; sectionView.layer.borderWidth = 0.5; sectionView.layer.borderColor = kSeparateLineCGColor; [sectionView addSubview:shopList]; NSLayoutConstraint *titleLabelTop = [NSLayoutConstraint constraintWithItem:shopList attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:sectionView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0]; [sectionView addConstraint:titleLabelTop]; NSLayoutConstraint *titleLabelLeft = [NSLayoutConstraint constraintWithItem:shopList attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:sectionView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20]; [sectionView addConstraint:titleLabelLeft]; NSLayoutConstraint *titleLabelRight = [NSLayoutConstraint constraintWithItem:shopList attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:sectionView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20]; [sectionView addConstraint:titleLabelRight]; NSLayoutConstraint *titleLabelBottom = [NSLayoutConstraint constraintWithItem:shopList attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:sectionView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]; [sectionView addConstraint:titleLabelBottom]; return sectionView; } #pragma mark - lazy loading - (UITableView *)tableView { if (!_tableView) { _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; _tableView.translatesAutoresizingMaskIntoConstraints = NO; _tableView.showsVerticalScrollIndicator = NO; _tableView.showsHorizontalScrollIndicator = NO; _tableView.rowHeight = UITableViewAutomaticDimension; _tableView.estimatedRowHeight = 200.0; [_tableView registerClass:[OnLineCompleteCell class] forCellReuseIdentifier:kOnLineCompleteCell]; [_tableView registerClass:[OnLineCompleteDetailCell class] forCellReuseIdentifier:kOnLineCompleteDetailCell]; [self.view addSubview:_tableView]; NSLayoutConstraint *tableTop = [NSLayoutConstraint constraintWithItem:_tableView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:0]; [self.view addConstraint:tableTop]; NSLayoutConstraint *tableLeft = [NSLayoutConstraint constraintWithItem:_tableView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0]; [self.view addConstraint:tableLeft]; NSLayoutConstraint *tableRight = [NSLayoutConstraint constraintWithItem:_tableView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:0]; [self.view addConstraint:tableRight]; NSLayoutConstraint *tableBottom = [NSLayoutConstraint constraintWithItem:_tableView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]; [self.view addConstraint:tableBottom]; } return _tableView; } @end