// // SurveyDetailViewController.m // XFFruit // // Created by 陈俊俊 on 15/8/7. // Copyright (c) 2015年 Xummer. All rights reserved. // #import "ResultDetailViewController.h" #import "SurveyDetailViewController.h" #import "SurveyUser.h" #import "UIImageView+WebCache.h" #import <WebKit/WebKit.h> #define BottomHeight 50 #define LeftMargin 20 #define LeftWidth 100 #define LeftHeight 20 #define TopMargin 15 #define ContentMargin 10 typedef enum : NSUInteger { DetailTag = 6000, EndTag, } BtnTag; @interface SurveyDetailViewController () <UIAlertViewDelegate, WKNavigationDelegate> { UIScrollView *_scrollView; UIView *_surveyView; UIView *_bottomView; UIImageView *_chartImageView; WKWebView *_webViewChart; } @property (nonatomic, strong) UILabel *billNumberLabel; @property (nonatomic, strong) UILabel *stateLabel; @property (nonatomic, strong) UILabel *titleLabel; @property (nonatomic, strong) UILabel *productLabel; @property (nonatomic, strong) UILabel *beginDateLabel; @property (nonatomic, strong) UILabel *endDateLabel; @property (nonatomic, strong) UILabel *userLabel; @property (nonatomic, strong) UILabel *noteLabel; @property (nonatomic, strong) UILabel *lefeNoteLabel; @end @implementation SurveyDetailViewController - (void)viewDidLoad { [super viewDidLoad]; self.title = @"行情调研详情"; [self bulifLayout]; [self getDataFromServer]; } - (void)getDataFromServer { __weak typeof(self) weakSelf = self; void (^succ)(id) = ^(id data) { [IBTLoadingView hideHUDWithText:nil]; __strong __typeof(weakSelf) strongSelf = weakSelf; if (data) { NSInteger success = [data[@"success"] integerValue]; NSString *message = data[@"message"]; if (success == 1) { NSDictionary *dictData = data[@"data"]; Survey *survey = [[Survey alloc] init]; [survey setValuesForKeysWithDictionary:dictData]; self.survey = survey; [strongSelf fetchtSurveyDetail]; } else { [IBTLoadingView showTips:message]; } } else { [strongSelf fetchtSurveyDetail]; } [self createResultChart]; }; void (^fail)(id) = ^(id data) { [IBTLoadingView hideHUDWithText:nil]; [IBTLoadingView showTips:data]; }; [IBTLoadingView showProgressLabel:@"正在加载..."]; [[ICRHTTPController sharedController] getResultWithSurveyUuid:self.surveyUuid success:succ failure:fail]; } - (void)createResultChart { NSString *url = [NSString stringWithFormat:@"%@/cruiser-web/chart/surveychart.thor?enterprise=%@&surveyUuid=%@",HTTP_REST_REPORT_BASE_URL, [ICRUserUtil sharedInstance].orgId, self.surveyUuid]; [_webViewChart loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]]; // void (^succ)(id) = ^(id data) { // if (data) { // NSInteger success = [data[@"success"] integerValue]; // NSString *message = data[@"message"]; // if (success == 1) { // NSString *dataStr = data[@"data"]; // NSRange range = [HTTP_REST_API_BASE_URL rangeOfString:@"rest"]; // NSString *serverURl = [HTTP_REST_API_BASE_URL substringToIndex:range.location]; // NSString *urlStr = [NSString stringWithFormat:@"%@DisplayChart?filename=%@", serverURl, dataStr]; // [_chartImageView sd_setImageWithURL:[NSURL URLWithString:urlStr]]; // } else { // [IBTLoadingView showTips:message]; // } // } // }; // void (^fail)(id) = ^(id data) { // [IBTLoadingView hideHUDWithText:nil]; // [IBTLoadingView showTips:data]; // }; // [[ICRHTTPController sharedController] resultChartWithResultUuid:self.surveyUuid // width:[NSNumber numberWithFloat:CGRectGetWidth(_chartImageView.frame)] // height:[NSNumber numberWithFloat:CGRectGetHeight(_chartImageView.frame)] // success:succ // failure:fail]; } - (void)fetchtSurveyDetail { self.billNumberLabel.text = [IBTCommon checkString:self.survey.billNumber]; if ([self.survey.state isEqualToString:SURVEY_STATE_INITIAL]) { self.stateLabel.textColor = [UIColor redColor]; self.stateLabel.text = @"未提交"; } else if ([self.survey.state isEqualToString:SURVEY_STATE_SUBMITTED]) { self.stateLabel.textColor = [UIColor greenColor]; self.stateLabel.text = @"已提交"; } else if ([self.survey.state isEqualToString:SURVEY_STATE_INSURVEY]) { self.stateLabel.textColor = [UIColor grayColor]; self.stateLabel.text = @"调研中"; } else if ([self.survey.state isEqualToString:SURVEY_STATE_FINISHED]) { self.stateLabel.textColor = [UIColor blackColor]; self.stateLabel.text = @"已完成"; } NSString *user = @""; for (NSDictionary *userDict in self.survey.users) { SurveyUser *surveyUser = [[SurveyUser alloc] init]; [surveyUser setValuesForKeysWithDictionary:userDict]; if (user.length == 0) { user = [user stringByAppendingFormat:@"%@", surveyUser.userName]; } else { user = [user stringByAppendingFormat:@"、%@", surveyUser.userName]; } } self.titleLabel.text = [IBTCommon checkString:self.survey.title]; self.productLabel.text = [IBTCommon checkString:self.survey.productName]; self.beginDateLabel.text = [IBTCommon checkString:self.survey.beginDate]; self.endDateLabel.text = [IBTCommon checkString:self.survey.endDate]; self.userLabel.text = [IBTCommon checkString:user]; self.noteLabel.text = [NSString stringWithFormat:@"%@", self.survey.remark ? self.survey.remark : @"无"]; [self setNoteHeight]; } - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation { [MBProgressHUD showHUDAddedTo:webView animated:YES]; } - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { [MBProgressHUD hideHUDForView:webView animated:YES]; } #pragma mark - 视图初始化 - (void)bulifLayout { _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, ScreenSize.width, ScreenSize.height - 64 - BottomHeight)]; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.showsVerticalScrollIndicator = NO; _scrollView.backgroundColor = XXFBgColor; [self.view addSubview:_scrollView]; UIButton *endBtn = [IBTCustomButtom creatButtonWithFrame:CGRectMake(LeftMargin, ScreenSize.height - 64 - BottomHeight + 5, ScreenSize.width - LeftMargin * 2, 40) target:self sel:@selector(btnClick:) tag:EndTag image:nil title:@"结束" titleColor:[UIColor whiteColor] isCorner:YES corner:8 bgColor:GXF_COMMIT_COLOR]; [self.view addSubview:endBtn]; _surveyView = [[UIView alloc] initWithFrame:CGRectMake(0, TopMargin, ScreenSize.width, LeftHeight * 9 + ContentMargin * 10)]; _surveyView.backgroundColor = [UIColor whiteColor]; [_scrollView addSubview:_surveyView]; UILabel *tagLabel = [[UILabel alloc] initWithFrame:CGRectMake(LeftMargin / 2, ContentMargin, LeftWidth * 2, LeftHeight)]; tagLabel.text = @"【调研内容】"; tagLabel.font = GXF_SEVENTEENTH_SIZE; tagLabel.textColor = HexColor(@"7ebf74"); [_surveyView addSubview:tagLabel]; NSArray *leftArr = @[ @"单号:", @"状态:", @"标题:", @"商品:", @"开始日期:", @"截止日期:", @"调研人员:", @"备注:" ]; for (NSInteger i = 0; i < leftArr.count; i++) { UILabel *leftLabel = [[UILabel alloc] initWithFrame:CGRectMake(LeftMargin, CGRectGetMaxY(tagLabel.frame) + ContentMargin + (LeftHeight + ContentMargin) * i, LeftWidth, LeftHeight)]; leftLabel.font = GXF_SEVENTEENTH_SIZE; leftLabel.text = leftArr[i]; leftLabel.textColor = GXF_DETAIL_COLOR; [_surveyView addSubview:leftLabel]; UILabel *rightLabel = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(leftLabel.frame), CGRectGetMaxY(tagLabel.frame) + ContentMargin + (LeftHeight + ContentMargin) * i, _surveyView.frame.size.width - LeftMargin - LeftWidth, LeftHeight)]; rightLabel.font = GXF_SEVENTEENTH_SIZE; rightLabel.textColor = GXF_DETAIL_COLOR; if (i == 0) { self.billNumberLabel = rightLabel; } else if (i == 1) { self.stateLabel = rightLabel; } else if (i == 2) { self.titleLabel = rightLabel; } else if (i == 3) { self.productLabel = rightLabel; } else if (i == 4) { self.beginDateLabel = rightLabel; } else if (i == 5) { self.endDateLabel = rightLabel; } else if (i == 6) { rightLabel.numberOfLines = 0; self.userLabel = rightLabel; } else if (i == 7) { rightLabel.numberOfLines = 0; self.noteLabel = rightLabel; self.lefeNoteLabel = leftLabel; } [_surveyView addSubview:rightLabel]; } _bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(_surveyView.frame) + TopMargin, ScreenSize.width, 500)]; _bottomView.backgroundColor = [UIColor whiteColor]; [_scrollView addSubview:_bottomView]; UILabel *resultLabel = [[UILabel alloc] initWithFrame:CGRectMake(LeftMargin / 2, 10, LeftWidth * 2, LeftHeight)]; resultLabel.text = @"【行情反馈】"; resultLabel.font = GXF_SEVENTEENTH_SIZE; resultLabel.textColor = HexColor(@"7ebf74"); [_bottomView addSubview:resultLabel]; NSString *jScript; if (ScreenSize.width != 320) { jScript = @"var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, maximum-scale=2.0, user-scalable=no');document.getElementsByTagName('head')[0].appendChild(meta);"; }else{ jScript = @"var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=410, maximum-scale=2.0, user-scalable=no');document.getElementsByTagName('head')[0].appendChild(meta);"; } WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES]; WKUserContentController *wkUController = [[WKUserContentController alloc] init]; [wkUController addUserScript:wkUScript]; WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init]; wkWebConfig.userContentController = wkUController; _webViewChart = [[WKWebView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(resultLabel.frame), CGRectGetWidth(_bottomView.frame), CGRectGetHeight(_bottomView.frame) - LeftHeight ) configuration:wkWebConfig]; [_bottomView addSubview:_webViewChart]; UIButton *btn = [IBTCustomButtom creatButtonWithFrame:CGRectMake(CGRectGetWidth(_bottomView.frame) - 100, 10, 100, LeftHeight) target:self sel:@selector(btnClick:) tag:DetailTag image:nil title:@">>查看详情" titleColor:HexColor(@"7ebf74") isCorner:NO corner:0 bgColor:nil]; [_bottomView addSubview:btn]; if ([self.survey.state isEqualToString:@"finished"]) { endBtn.hidden = YES; CGRect scrollViewFrame = _scrollView.frame; scrollViewFrame.size.height = ScreenSize.height - 64; _scrollView.frame = scrollViewFrame; } } - (void)btnClick:(UIButton *)btn { if (btn.tag == DetailTag) { ResultDetailViewController *rvc = [ResultDetailViewController new]; rvc.surveyUuid = self.surveyUuid; [self PushViewController:rvc animated:YES]; } else if (btn.tag == EndTag) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"温馨提示" message:@"请确认结束" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确" @"认", nil]; alertView.delegate = self; [alertView show]; } } #pragma mark - 结束行情调研 - (void)finishSurveyRequest { void (^succ)(id) = ^(id data) { [IBTLoadingView hideHUDWithText:nil]; if (data) { NSInteger success = [data[@"success"] integerValue]; NSString *message = data[@"message"]; if (success == 1) { [self backSurvey]; } else { [IBTLoadingView showTips:message]; } } else { [IBTLoadingView showTips:@"返回异常"]; } }; void (^fail)(id) = ^(id data) { [IBTLoadingView hideHUDWithText:nil]; [IBTLoadingView showTips:data]; }; [IBTLoadingView showProgressLabel:@"正在加载..."]; [[ICRHTTPController sharedController] surveyFinishWithUuid:self.surveyUuid version:self.survey.version success:succ failure:fail]; } //返回列表 - (void)backSurvey { [ICRUserUtil sharedInstance].needFresh = YES; [self PopViewControllerAnimated:YES]; } - (void)setNoteHeight { CGFloat personHeight = [self.userLabel calculateHeight]; CGRect personFrame = self.userLabel.frame; personFrame.size.height = personHeight; self.userLabel.frame = personFrame; CGFloat noteHeight = [self.noteLabel calculateHeight]; CGRect noteFrame = self.noteLabel.frame; noteFrame.size.height = noteHeight; noteFrame.origin.y = CGRectGetMaxY(self.userLabel.frame) + ContentMargin; self.noteLabel.frame = noteFrame; CGRect leftNoteFrame = self.lefeNoteLabel.frame; leftNoteFrame.origin.y = CGRectGetMaxY(self.userLabel.frame) + ContentMargin; self.lefeNoteLabel.frame = leftNoteFrame; CGFloat totalHeight = noteHeight + (LeftHeight * 7 + ContentMargin * 10) + personHeight; CGRect surveyFrame = _surveyView.frame; surveyFrame.size.height = totalHeight; _surveyView.frame = surveyFrame; CGRect bottomFrame = _bottomView.frame; bottomFrame.origin.y = CGRectGetMaxY(_surveyView.frame) + TopMargin; _bottomView.frame = bottomFrame; _scrollView.contentSize = CGSizeMake(ScreenSize.width, totalHeight + CGRectGetHeight(_bottomView.frame) + TopMargin * 2); } - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 1) { [self finishSurveyRequest];//结束 } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } @end