// // HistoryOrderViewController.m // IBOSSmini // // Created by guan hong hou on 2017/5/16. // Copyright © 2017年 elongtian. All rights reserved. // #import "HistoryOrderViewController.h" #import "SideSlipModel.h" #import "DateFormat.h" #import "HistoryOrderFrame.h" #import "HistoryOrderTableViewCell.h" #import "OrderDetailViewController.h" #define orderTextFont [UIFont systemFontOfSize:14] @interface HistoryOrderViewController () @end @implementation HistoryOrderViewController #pragma mark - 公共函数 /** viewDidLoad函数 */ - (void)viewDidLoad { [super viewDidLoad]; [self initUI]; _orderArr=[NSMutableArray new]; _cartModel=[OrderModel new]; } /** 修改:2017-9-25 适配机型 安全区视图发生变化 */ -(void)viewSafeAreaInsetsDidChange{ _tbView.frame=CGRectMake(0,CGRectGetMaxY(_separatorView.frame), SCREENWIDTH,self.view.superview.frame.size.height-CGRectGetMaxY(_separatorView.frame)); [super viewSafeAreaInsetsDidChange]; } #pragma mark - 委托回调函数 //数据加载完成回调函数 - (void)onLoadFinish:(ASIDownManager *)sender { NSDictionary *dic = [sender.mWebStr JSONValue]; [self cancel]; if (dic && [dic isKindOfClass:[NSDictionary class]]) { int iStatus = [[dic objectForKey:@"Status"] intValue]; NSString *message=[dic objectForKey:@"Message"]; _tbView.backgroundView=nil; if (iStatus == 0) { NSArray * approvArr=[dic objectForKey:@"Result"]; NSLog(@"arr=%@",approvArr); if(approvArr!=nil) { [_orderArr removeAllObjects]; _orderArr=[[NSMutableArray alloc]initWithArray:approvArr]; _separatorView.hidden=NO; [_cartModel parseWorkFlowArr:_orderArr]; [_tbView reloadData]; if(_orderArr.count==0){ _tbView.backgroundView=nil; UIView *noDataView=[[UIView alloc]init]; noDataView.frame=_tbView.bounds; UIImageView *nodataImgView=[[UIImageView alloc] initWithFrame:CGRectMake(noDataView.frame.size.width/2-16,noDataView.frame.size.height/2-16,32,32)]; [nodataImgView setImage:[UIImage imageNamed:@"icon_no_data"]]; [noDataView addSubview:nodataImgView]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(noDataView.frame.size.width/2-16-12,CGRectGetMaxY(nodataImgView.frame)+3,70, 25)]; label.font=[UIFont systemFontOfSize:NoDataFontOfSize]; label.text = @"无数据"; label.numberOfLines = 2; label.textColor = [UIColor lightGrayColor]; [noDataView addSubview:label]; _tbView.backgroundView=noDataView; [self showAlertViewText:@"未找到匹配结果"]; return; } } } else if(iStatus==ActionResultStatusAuthError ||iStatus==ActionResultStatusNoLogin ||iStatus==ActionResultStatusLogined ||iStatus == ActionResultStatusLoginedInvalid){ [self showReLoginDialog:message]; return; } else { [self showAlertViewText:message]; } } } //数据加载失败回调函数 - (void)onLoadFail:(ASIDownManager *)sender { [self cancel]; [self showAlertViewText:@"加载失败"]; } // tableviewcell的高度 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { HistoryOrderFrame *orderFrame=_cartModel.workflowArr[indexPath.row]; return orderFrame.cellHeight; } //tableview的分区数 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } //tableview的行数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return _cartModel.workflowArr.count; } //获取tableviewcell -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"OrderCell"; HistoryOrderTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell=[[HistoryOrderTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; cell.selectionStyle=UITableViewCellSelectionStyleNone; cell.delegate=self; HistoryOrderFrame *infoFrame=_cartModel.workflowArr[indexPath.row]; [cell parseCartInfo:infoFrame]; return cell; } //行点击事件 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { OrderDetailViewController *detailVC=[[OrderDetailViewController alloc] init]; NSDictionary *dic= _orderArr[indexPath.row]; NSString *orderId=[dic objectForKey:@"OrderID"]; detailVC.orderId=orderId; detailVC.dicInfo=[dic copy]; self.cNav.visibleViewController.hidesBottomBarWhenPushed=YES; [self.cNav pushViewController:detailVC animated:YES]; } //删除订单成功 - (void)onDeleteLoadFinish:(ASIDownManager *)sender { NSDictionary *dic = [sender.mWebStr JSONValue]; [self cancelHUD]; if (dic && [dic isKindOfClass:[NSDictionary class]]) { int iStatus = [[dic objectForKey:@"Status"] intValue]; NSString *message=[dic objectForKey:@"Message"]; if (iStatus == 0) { [self refreshData]; } else if(iStatus==ActionResultStatusAuthError ||iStatus==ActionResultStatusNoLogin ||iStatus==ActionResultStatusLogined ||iStatus == ActionResultStatusLoginedInvalid){ [self showReLoginDialog:message]; return; } else { [self showAlertViewText:message]; } } } //删除订单失败 - (void)onDeleteLoadFail:(ASIDownManager *)sender { [self cancelHUD]; [self showAlertViewText:@"请求失败"]; } #pragma mark - 私有函数 //初始化UI -(void)initUI{ self.view.backgroundColor=[UIColor whiteColor]; _btnSearch=[UIButton buttonWithType:UIButtonTypeCustom]; _btnSearch.frame=CGRectMake(15, 10, Screen_Width-30, 35); [_btnSearch setTitle:@"历史订单查询" forState:UIControlStateNormal]; [_btnSearch setBackgroundColor:[UIColor colorWithRed:232.0/255.0 green:233.0/255.0 blue:235.0/255.0 alpha:1]]; [self.view addSubview:_btnSearch]; _btnSearch.layer.cornerRadius = 10; _btnSearch.layer.masksToBounds = YES; _btnSearch.titleLabel.font=orderTextFont; [_btnSearch addTarget:self action:@selector(searchHistoryData) forControlEvents:UIControlEventTouchUpInside]; [_btnSearch setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal]; _separatorView = [[UIView alloc] init]; _separatorView.frame = CGRectMake(0,CGRectGetMaxY(_btnSearch.frame)+10,Screen_Width,10); _separatorView.backgroundColor = LineBackgroundColor; [self.view addSubview:_separatorView]; _tbView=[UITableView new]; _tbView.separatorStyle=UITableViewCellSeparatorStyleNone; if(IsiPhoneX){ _tbView.frame=CGRectMake(0,CGRectGetMaxY(_separatorView.frame), Screen_Width, self.view.superview.frame.size.height-CGRectGetMaxY(_separatorView.frame)); } else{ _tbView.frame=CGRectMake(0,CGRectGetMaxY(_separatorView.frame), Screen_Width, self.view.frame.size.height-CGRectGetMaxY(_separatorView.frame)-105); } _tbView.delegate=self; _tbView.dataSource=self; [self.view addSubview:_tbView]; __weak typeof(self) weakself=self; self.filterController = [[SideSlipFilterController alloc] initWithSponsor:self resetBlock:^(NSArray *dataList) { for (SideSlipModel *model in dataList) { model.selectedItemList = nil; model.customDict = nil; } } commitBlock:^(NSArray *dataList) { SideSlipModel *serviceRegionModel = dataList[0]; _m = [serviceRegionModel.customDict objectForKey:SEARCH_RANGE_MODEL]; NSString *startDate= _m.startDate; NSString *endDate=_m.endDate; if(startDate==nil){ [self showAlertViewText:@"请选择开始日期"]; return; } if(endDate==nil){ [self showAlertViewText:@"请选择结束日期"]; return; } NSUInteger result= [DateFormat compareDate:startDate withDate:endDate]; if(result==-1){ [self showAlertViewText:@"开始日期不能大于结束日期"]; return; } NSDateFormatter *dateFormat=[[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyy-MM-dd"];//设定时间格式,这里可以设置成自己需要的格式 NSDate *startD =[dateFormat dateFromString:startDate]; NSDate *endD=[dateFormat dateFromString:endDate]; NSInteger days= [DateFormat calculateDaysFromBegin:startD end:endD]; if(days>31){ [self showAlertViewText:@"日期间隔天数不能大于31天"]; return; } [weakself.filterController dismiss]; [self reloadData]; }]; _filterController.animationDuration = .3f; _filterController.hasHeadView = YES; _filterController.sideSlipLeading = UIScreenSideSlipLeading*[UIScreen mainScreen].bounds.size.width; _filterController.dataList = [self packageDataList]; } //取消进度条 - (void)cancelHUD { [_HUD hide:YES]; } //删除历史订单函数 -(void)deleteHistoryOrderItem:(OrderItemModel*)orderItem{ UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:@"确定要删除吗?" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { }]; UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { [self deleteOrder:orderItem]; }]; UIColor *cancelColor=[UIColor blackColor]; UIColor *sureColor=[UIColor redColor]; [cancelAction setValue:cancelColor forKey:@"titleTextColor"]; [otherAction setValue:sureColor forKey:@"titleTextColor"]; [alertController addAction:cancelAction]; [alertController addAction:otherAction]; [self presentViewController:alertController animated:YES completion:nil]; } -(void)deleteOrder:(OrderItemModel*)order { self.mDownManager = [[ASIDownManager alloc] init]; _mDownManager.delegate = self; _mDownManager.OnImageDown = @selector(onDeleteLoadFinish:); _mDownManager.OnImageFail = @selector(onDeleteLoadFail:); _HUD = [[MBProgressHUD alloc] initWithView:self.view]; [self.view addSubview:_HUD]; _HUD.dimBackground = YES; _HUD.labelText = @"删除中..."; [_HUD show:YES]; NSString *urlStr = ServerURL; NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:@"DeleteIOrder" forKey:@"Action"]; [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"]; [dict setObject:kkUserCode forKey:@"UserCode"]; [dict setObject:kkUserPwd forKey:@"UserPassword"]; [dict setObject:kkSessionKey forKey:@"SessionKey"]; [dict setObject:order.orderID forKey:@"OrderIDs"]; [_mDownManager postHttpRequest:urlStr dic:dict path:nil fileName:nil]; } //加载历史订单数据 -(void)refreshData{ [self reloadData]; } //加载数据 -(void)reloadData{ [self startLoading]; NSString *urlStr = ServerURL; NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:@"GetOrderList" forKey:@"Action"]; [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"]; [dict setObject:kkUserCode forKey:@"UserCode"]; [dict setObject:kkUserPwd forKey:@"UserPassword"]; [dict setObject:kkSessionKey forKey:@"SessionKey"]; if(_m.orderNo!=nil){ [dict setObject:_m.orderNo forKey:@"OrderNo"]; } else{ [dict setObject:@"" forKey:@"OrderNo"]; } if(_m.customerName!=nil){ [dict setObject:_m.customerName forKey:@"CustomerName"]; } else{ [dict setObject:@"" forKey:@"CustomerName"]; } if(_m.customerCode!=nil){ [dict setObject:_m.customerCode forKey:@"CustomerCode"]; } else{ [dict setObject:@"" forKey:@"CustomerCode"]; } if(_m.customerAddress!=nil){ [dict setObject:_m.customerAddress forKey:@"Address"]; } else{ [dict setObject:@"" forKey:@"Address"]; } [dict setObject:_m.startDate forKey:@"CreateTimeFrom"]; [dict setObject:_m.endDate forKey:@"CreateTimeTo"]; self.mDownManager = [[ASIDownManager alloc] init]; _mDownManager.delegate = self; _mDownManager.OnImageDown = @selector(onLoadFinish:); _mDownManager.OnImageFail = @selector(onLoadFail:); [_mDownManager postHttpRequest:urlStr dic:dict path:nil fileName:nil]; } //进度条取消 - (void)cancel { [self stopLoading]; } //抽屉加载布局 - (NSArray *)packageDataList { NSMutableArray *dataArray = [NSMutableArray array]; SideSlipModel *model = [[SideSlipModel alloc] init]; model.containerCellClass = @"HistoryOrderSearchTableViewCell"; model.regionTitle = @"查询条件"; [dataArray addObject:model]; return [dataArray mutableCopy]; } // 加载抽屉 - (void)searchHistoryData{ [_filterController showPagerView:self.cNav]; } @end