//
|
// PBViewPointDetailsController.m
|
// IphoneBIMe
|
//
|
// Created by zjf on 2018/7/24.
|
// Copyright © 2018年 ProBIM. All rights reserved.
|
//
|
|
#import "PBViewPointDetailsController.h"
|
#import "PBProjectModel.h"
|
#import "PBModelsModel.h"
|
#import "PBViewPointModel.h"
|
#import "PBViewPointDetailCell.h"
|
#import "PBLoadModelDisplayController.h"
|
#import "PBImageShowViewController.h"
|
|
@interface PBViewPointDetailsController ()<UITableViewDataSource, UITableViewDelegate>
|
@property (nonatomic, strong) UITableView *tableView;
|
@property (nonatomic, strong) NSMutableArray<PBViewPointModel *> *dataList;
|
@property (nonatomic, weak) UIImageView *viewPointImageV;
|
@property (nonatomic, strong) UIImage *image;
|
@property (nonatomic, weak) UIButton *loadViewPointBtn;
|
@end
|
|
@implementation PBViewPointDetailsController
|
|
- (void)viewDidLoad {
|
[super viewDidLoad];
|
[self setupNav];
|
[self setupUI];
|
[self loadData];
|
}
|
- (void)setupNav {
|
PBBackNavItem *backNav = [PBBackNavItem backNacItem];
|
if ([self.viewPointModel.Type isEqualToString:@"0"]) {
|
backNav.title = @"视点";
|
}else {
|
backNav.title = @"批注";
|
}
|
[backNav addTarget:self action:@selector(backItemAction) forControlEvents:UIControlEventTouchUpInside];
|
UIBarButtonItem *backNavItem = [[UIBarButtonItem alloc] initWithCustomView:backNav];
|
self.navigationItem.leftBarButtonItem = backNavItem;
|
|
if ([self.viewPointModel.Type isEqualToString:@"0"]) {
|
UIBarButtonItem *setToDefaultItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Model_previewItem_default"] style:UIBarButtonItemStylePlain target:self action:@selector(setToDefaultViewPoint)];
|
self.navigationItem.rightBarButtonItem = setToDefaultItem;
|
if (self.viewPointModel.IsDefault) {
|
self.navigationItem.rightBarButtonItem.enabled = NO;
|
}else {
|
self.navigationItem.rightBarButtonItem.enabled = YES;
|
}
|
}
|
}
|
- (void)backItemAction {
|
[self.navigationController popViewControllerAnimated:YES];
|
}
|
- (void)setToDefaultViewPoint {
|
[YJProgressHUD showProgress:@"" inView:self.view];
|
[[PBNetworkTools sharedTools] RequestSetDefaultViewpointWithProjectID:_modelsModel.ProjectID andModelId:_modelsModel.ID andViewpointID:_viewPointModel.ID andCallBack:^(NSURLSessionDataTask *task, id response, NSError *error) {
|
if (error){
|
NSLog(@"%@",error);
|
[YJProgressHUD showMessage:@"设置失败" inView:self.view];
|
return;
|
}
|
[YJProgressHUD hide];
|
NSString *str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
|
NSLog(@"%@",str);
|
if ([str isEqualToString:@"\"\""]) {
|
self.dataList[0].IsDefault = YES;
|
[self.tableView reloadData];
|
if (self.updataDefaultViewPointBlock) {
|
self.updataDefaultViewPointBlock();
|
}
|
}else {
|
[YJProgressHUD showMessage:@"设置失败" inView:self.view];
|
}
|
}];
|
}
|
- (void)setupUI {
|
self.title = self.viewPointModel.Name;
|
self.view.backgroundColor = [UIColor whiteColor];
|
self.tableView = [[UITableView alloc] init];
|
self.tableView.bounces = NO;
|
self.tableView.rowHeight = UITableViewAutomaticDimension;
|
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
self.tableView.estimatedRowHeight = 180;
|
self.tableView.dataSource = self;
|
self.tableView.delegate = self;
|
[self.view addSubview:self.tableView];
|
CGFloat height;
|
if (IS_IPHONE_X) {
|
height = 110.0f;
|
}else {
|
height = 76.0f;
|
}
|
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.left.right.equalTo(self.view);
|
make.bottom.equalTo(self.view).offset(-(height));
|
}];
|
NSString *btnText;
|
if (self.isExamineShow) {
|
btnText = @"确认";
|
}else {
|
btnText = [self.viewPointModel.Type isEqualToString:@"0"] ? @"加载视点" : @"加载批注";
|
}
|
UIButton *loadViewPointBtn = [UIButton z_textButton:btnText boldFontSize:18 normalColor:[UIColor whiteColor]];
|
[loadViewPointBtn addTarget:self action:@selector(LoadModelDisplayVC) forControlEvents:UIControlEventTouchUpInside];
|
[loadViewPointBtn setBackgroundImage:[UIImage imageNamed:@"Model_loadViewPointBtn_bg"] forState:UIControlStateNormal];
|
|
[self.view addSubview:loadViewPointBtn];
|
[loadViewPointBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.equalTo(self.tableView.mas_bottom).offset(10);
|
make.left.equalTo(self.view).offset(16);
|
make.right.equalTo(self.view).offset(-16);
|
make.height.equalTo(@50);
|
}];
|
self.loadViewPointBtn = loadViewPointBtn;
|
self.loadViewPointBtn.hidden = YES;
|
}
|
- (void)LoadModelDisplayVC {
|
PBLoadModelDisplayController *modelDisplayVC = [[PBLoadModelDisplayController alloc] init];
|
modelDisplayVC.projectModel = _projectModel;
|
modelDisplayVC.modelID = _modelsModel.ID;
|
modelDisplayVC.viewID = _viewPointModel.ViewID;
|
modelDisplayVC.viewPointID = _viewPointModel.ID;
|
[self.navigationController pushViewController:modelDisplayVC animated:YES];
|
}
|
|
- (void)loadData {
|
// [YJProgressHUD showCustomAnimation:@"" inview:self.view];
|
[YJProgressHUD showProgress:@"" inView:self.view];
|
[[PBNetworkTools sharedTools] RequestGetFullViewpointWithProjectID:_modelsModel.ProjectID andViewpointID:_viewPointModel.ID andCallBack:^(NSURLSessionDataTask *task, id response, NSError *error) {
|
if (error) {
|
NSLog(@"%@",error);
|
[YJProgressHUD showMessage:@"加载失败" inView:self.view];
|
return;
|
}
|
[YJProgressHUD hide];
|
self.loadViewPointBtn.hidden = NO;
|
NSString *str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
|
str = [str stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""];
|
str = [str stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
|
NSMutableString *mString = [NSMutableString stringWithString:str];
|
[mString deleteCharactersInRange:NSMakeRange(0, 1)];
|
[mString deleteCharactersInRange:NSMakeRange(mString.length-1, 1)];
|
PBViewPointModel *viewPointModel = [PBViewPointModel yy_modelWithJSON:mString.copy];
|
[self.dataList addObject:viewPointModel];
|
self.loadViewPointModel = viewPointModel;
|
if (viewPointModel.Links.count == 0) {
|
self.image = [UIImage imageNamed:@"Model_viewPoint_ failureImage"];
|
}else {
|
NSString *thumbnail = [viewPointModel.Links[0] valueForKey:@"Content"];
|
NSRange range = [thumbnail rangeOfString:@"base64,"];
|
thumbnail = [thumbnail substringFromIndex:range.location + range.length];
|
self.image = [NSString imageDecoding:thumbnail];
|
}
|
self.tableView.tableHeaderView = [self tableHeadViewWithImage:self.image];
|
[self.tableView reloadData];
|
}];
|
}
|
- (UIView *)tableHeadViewWithImage:(UIImage *)image {
|
NSInteger imageW = image.size.width;
|
NSInteger imageH = image.size.height;
|
CGFloat scale = (CGFloat)self.view.width / (CGFloat)imageW;
|
imageH = imageH *scale;
|
UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.width, imageH)];
|
UIImageView *imageV = [[UIImageView alloc] initWithImage:image];
|
[bgView addSubview:imageV];
|
[imageV mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.bottom.left.right.equalTo(bgView);
|
}];
|
imageV.userInteractionEnabled = YES;
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction)];
|
[imageV addGestureRecognizer:tap];
|
self.viewPointImageV = imageV;
|
return bgView;
|
}
|
- (void)tapAction {
|
PBImageShowViewController *imageShowVC = [[PBImageShowViewController alloc] init];
|
imageShowVC.image = self.image;
|
imageShowVC.modalPresentationStyle = UIModalPresentationFullScreen;
|
[self presentViewController:imageShowVC animated:NO completion:nil];
|
}
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
return self.dataList.count;
|
}
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
PBViewPointDetailCell *cell = [PBViewPointDetailCell new];
|
cell.viewPointModel = self.dataList[indexPath.row];
|
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
return cell;
|
}
|
- (void)setProjectModel:(PBProjectModel *)projectModel {
|
_projectModel = projectModel;
|
}
|
- (void)setViewPointModel:(PBViewPointModel *)viewPointModel {
|
_viewPointModel = viewPointModel;
|
}
|
- (void)setModelsModel:(PBModelsModel *)modelsModel {
|
_modelsModel = modelsModel;
|
}
|
- (NSMutableArray *)dataList {
|
if (_dataList == nil) {
|
_dataList = [[NSMutableArray alloc] init];
|
}
|
return _dataList;
|
}
|
- (void)setIsExamineShow:(BOOL)isExamineShow {
|
_isExamineShow = isExamineShow;
|
}
|
- (void)didReceiveMemoryWarning {
|
[super didReceiveMemoryWarning];
|
// Dispose of any resources that can be recreated.
|
}
|
|
/*
|
#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
|