// // OnLineViewController.m // redstar // // Created by admin on 15/11/1. // Copyright © 2015年 ZWF. All rights reserved. // #import "OnLineViewController.h" #import "OnLineTableViewCell.h" #import "OnLineFooterView.h" #import "SpotCheckOnLineViewController.h" #import "SelectStoreViewController.h" #import "HttpClient.h" #import "TreeNodeModel.h" #define kOnLineTableViewCell @"onlineTableViewCell" @interface OnLineViewController () <UITableViewDelegate, UITableViewDataSource, UIAlertViewDelegate, SelectStoreDelegate> @property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) NSArray *titleArray; @property (nonatomic, strong) NSMutableArray *uuidArray; @property (nonatomic, strong) OnLineFooterView *footView; @property (nonatomic, strong) NSString *storeName; @property (nonatomic, strong) NSString *dateStr; @property (nonatomic, strong) UIView *backGroundView; @property (nonatomic, strong) UIView *pickBackView; @property (nonatomic, strong) UIDatePicker *datePicker; @end @implementation OnLineViewController - (void)viewDidLoad { [super viewDidLoad]; 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; self.titleArray = [NSArray arrayWithObjects:@"商场名称", @"截止时间", nil]; [self addTableView]; 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; _storeName = @"全部"; _dateStr = @""; } - (void)doBack:(id)sender { if ([[self.navigationController.viewControllers objectAtIndex:0] isKindOfClass:[SpotCheckOnLineViewController class]]) { SpotCheckOnLineViewController *spotCheckVC = (SpotCheckOnLineViewController *)[self.navigationController.viewControllers objectAtIndex:0]; [self.navigationController popToViewController:spotCheckVC animated:YES]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - Private Methods - (void)addTableView { [self.tableView registerClass:[OnLineTableViewCell class] forCellReuseIdentifier:kOnLineTableViewCell]; self.tableView.tableFooterView = self.footView; } - (void)saveClick:(UIButton *)sender { if (_dateStr.length == 0) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请选择截止时间!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil]; [alert show]; return; } if (self.footView.titleTextView.text.length == 0 || self.footView.contentTextView.text.length == 0) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"任务标题和任务内容不能为空!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil]; [alert show]; return; } // 提示框 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"您确定要下达新的抽查任务吗?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil]; alert.tag = 334281; alert.delegate = self; [alert show]; } - (void)closeBackGroundView { [UIView animateWithDuration:0.3 animations:^{ _backGroundView.alpha = .0f; _pickBackView.alpha = 0.0f; } completion:^(BOOL finished) { [_backGroundView removeFromSuperview]; [_datePicker removeFromSuperview]; [_pickBackView removeFromSuperview]; _backGroundView = nil; _datePicker = nil; _pickBackView = nil; }]; } - (void)okClick:(UIButton *)sender { NSDate *select = [_datePicker date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; _dateStr = [dateFormatter stringFromDate:select]; [self closeBackGroundView]; [self.tableView reloadData]; } #pragma mark - SelectStoreDelegate - (void)deliverWithArray:(NSMutableArray *)array { NSString *nameStr = @""; _uuidArray = [NSMutableArray array]; if (array.count == 0) { _storeName = @"全部"; } else { for (TreeNodeModel *model in array) { nameStr = [nameStr stringByAppendingString:[NSString stringWithFormat:@"%@,", model.name]]; NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:model.uuid , @"store_uuid", model.code , @"store_code", model.name , @"store_name", nil]; [_uuidArray addObject:dict]; } _storeName = nameStr; } NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; } #pragma mark - TableView Delegate/DateSource - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (alertView.tag == 334281) { if (buttonIndex == 1) { NSDate *date = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"YYYY-MM-dd hh:mm:ss"]; NSString *dateString = [dateFormatter stringFromDate:date]; NSString *operId = [[NSUserDefaults standardUserDefaults] objectForKey:@"user_code"]; NSString *operName = [[NSUserDefaults standardUserDefaults] objectForKey:@"user_name"]; NSString *url = [NSString stringWithFormat:@"%@%@%@&operId=%@&operName=%@", kRedStarURL, kSaveSportcheckURL, dateString, operId, operName]; url = [url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; NSLog(@"发起抽查url = %@", url); HttpClient *httpClient= [[HttpClient alloc] initWithUrl:url]; NSDictionary *parameters = @{@"title":self.footView.titleTextView.text, @"content":self.footView.contentTextView.text, @"endDate":_dateStr, @"state":@"initial", @"stores":_uuidArray}; NSLog(@"发起抽查par = %@", parameters); [httpClient saveSportCheckWithParameters:parameters completion:^(id response, NSError *error) { NSLog(@"发起抽查 response = %@", response); NSLog(@"发起抽查 error = %@", error); if ([response[@"message"] isEqualToString:@"ok"]) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"下达任务成功!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil]; alert.tag = 334285; [alert show]; } }]; } } if (alertView.tag == 334285) { if (buttonIndex == 0) { [self.navigationController popViewControllerAnimated:YES]; } } } #pragma mark - TableView Delegate/DateSource - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return _titleArray.count; } // cell显示的内容 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { OnLineTableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:kOnLineTableViewCell]; if (!cell) { cell = [[OnLineTableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kOnLineTableViewCell]; } cell.titleLabel.text = [NSString stringWithFormat:@"%@", _titleArray[indexPath.row]]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; cell.selectionStyle = UITableViewCellSelectionStyleNone; if (indexPath.row == 0) { cell.selectLabel.text = [NSString stringWithFormat:@"%@", _storeName]; } else { cell.selectLabel.text = [NSString stringWithFormat:@"%@", _dateStr]; } return cell; } // cell的高度 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 50; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row == 0) { SelectStoreViewController *select = [[SelectStoreViewController alloc] init]; select.delegate = self; [self.navigationController pushViewController:select animated:YES]; } else { if (!_backGroundView) { _backGroundView = [[UIView alloc] initWithFrame:self.view.bounds]; UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeBackGroundView)]; [_backGroundView addGestureRecognizer:tapGR]; } if (!_pickBackView) { _pickBackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 190)]; _pickBackView.backgroundColor = [UIColor whiteColor]; _pickBackView.center = CGPointMake(self.view.center.x, self.view.center.y - 120); _pickBackView.alpha = 0.0; UIButton *okButton = [[UIButton alloc] initWithFrame:CGRectMake(140, 150, 140, 40)]; [okButton setTitle:@"确定" forState:UIControlStateNormal]; okButton.titleLabel.font = [UIFont systemFontOfSize:15.0]; [okButton setTitleColor:kLightBlack forState:UIControlStateNormal]; [okButton addTarget:self action:@selector(okClick:) forControlEvents:UIControlEventTouchUpInside]; [_pickBackView addSubview:okButton]; UIButton *quitButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 150, 140, 40)]; [quitButton setTitle:@"取消" forState:UIControlStateNormal]; quitButton.titleLabel.font = [UIFont systemFontOfSize:15.0]; [quitButton setTitleColor:kLightBlack forState:UIControlStateNormal]; [quitButton addTarget:self action:@selector(closeBackGroundView) forControlEvents:UIControlEventTouchUpInside]; [_pickBackView addSubview:quitButton]; } if (!_datePicker) { _datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, 280, 150)]; _datePicker.datePickerMode = UIDatePickerModeDate; [_pickBackView addSubview:_datePicker]; } _backGroundView.alpha = 0; _backGroundView.backgroundColor = [UIColor blackColor]; [self.view insertSubview:_backGroundView aboveSubview:_tableView]; [self.view insertSubview:_pickBackView aboveSubview:_backGroundView]; [UIView animateWithDuration:0.3 animations:^{ _backGroundView.alpha = 0.6; _pickBackView.alpha = 1.0; }]; } } #pragma mark - lazy loading - (UITableView *)tableView { if (!_tableView) { _tableView = [[UITableView alloc] initWithFrame:CGRectZero]; _tableView.translatesAutoresizingMaskIntoConstraints = NO; _tableView.delegate = self; _tableView.dataSource = self; _tableView.showsVerticalScrollIndicator = NO; _tableView.showsHorizontalScrollIndicator = NO; [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; } - (OnLineFooterView *)footView { if (!_footView) { if (kScreenHeight == 480) { _footView = [[OnLineFooterView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 400)]; } else { _footView = [[OnLineFooterView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, (kScreenHeight - 100 - 64))]; } [_footView.saveButton addTarget:self action:@selector(saveClick:) forControlEvents:UIControlEventTouchUpInside]; } return _footView; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end