// // PBScreeningView.m // IphoneBIMe // // Created by zjf on 2020/9/7. // Copyright © 2020 ProBIM. All rights reserved. // #import "PBScreeningView.h" #import "PBIssueNavModel.h" static NSString *const CellID = @"CellID"; @interface PBScreeningView () @property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) NSArray *relatedArr; @property (nonatomic, strong) NSArray *levelArr; @property (nonatomic, strong) NSArray *stateArr; @property (nonatomic, strong) NSMutableArray *relatedBtnArr; @property (nonatomic, strong) NSMutableArray *levelBtnArr; @property (nonatomic, strong) NSMutableArray *stateBtnArr; @property (nonatomic, strong) NSMutableArray *typeBtnArr; @property (nonatomic, assign) NSInteger relatedIndex; @property (nonatomic, assign) NSInteger levelIndex; @property (nonatomic, assign) NSInteger stateIndex; @property (nonatomic, assign) NSInteger typeIndex; @end @implementation PBScreeningView - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { [self setupUI]; } return self; } - (void)setupUI { self.backgroundColor = [UIColor whiteColor]; self.tableView = [[UITableView alloc] init]; self.tableView.dataSource = self; self.tableView.delegate = self; self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 200.f; self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellID]; [self addSubview:self.tableView]; [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.left.right.equalTo(self); make.bottom.equalTo(self).offset(-70); }]; UIButton *resetBtn = [UIButton z_bgImageButton:[UIImage imageNamed:@"resetBtn"]]; [resetBtn addTarget:self action:@selector(resetAction) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:resetBtn]; [resetBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.tableView.mas_bottom).offset(10); make.left.equalTo(self).offset(9); make.size.mas_equalTo(CGSizeMake(116, 50)); }]; UIButton *confirmBtn = [UIButton z_bgImageButton:[UIImage imageNamed:@"confirmBtn"]]; [confirmBtn addTarget:self action:@selector(confirmAction) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:confirmBtn]; [confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.tableView.mas_bottom).offset(10); make.left.equalTo(resetBtn.mas_right); make.size.mas_equalTo(CGSizeMake(166, 50)); }]; } - (void)resetAction { self.relatedIndex = 0; self.levelIndex = 0; self.stateIndex = 0; self.typeIndex = 0; [self setBtnSelectState]; } - (void)confirmAction { for (NSInteger i = 0; i < self.relatedBtnArr.count; i++) { UIButton *btn = self.relatedBtnArr[i]; if (btn.selected) { self.relatedIndex = i; } } PBIssueNavModel *issueNavModel = self.relatedArr[self.relatedIndex]; NSLog(@"%@",issueNavModel.ItemName); for (NSInteger i = 0; i < self.levelBtnArr.count; i++) { UIButton *btn = self.levelBtnArr[i]; if (btn.selected) { self.levelIndex = i; } } PBIssueNavModel *issueNavModel1 = self.levelArr[self.levelIndex]; NSLog(@"%@",issueNavModel1.ItemName); for (NSInteger i = 0; i < self.stateBtnArr.count; i++) { UIButton *btn = self.stateBtnArr[i]; if (btn.selected) { self.stateIndex = i; } } PBIssueNavModel *issueNavModel2 = self.stateArr[self.stateIndex]; NSLog(@"%@",issueNavModel2.ItemName); for (NSInteger i = 0; i < self.typeBtnArr.count; i++) { UIButton *btn = self.typeBtnArr[i]; if (btn.selected) { self.typeIndex = i; } } PBIssueNavModel *issueNavModel3 = self.typeArr[self.typeIndex]; NSLog(@"%@",issueNavModel3.ItemName); if (self.determineBlock) { self.determineBlock(issueNavModel.ItemDetailId, issueNavModel1.ItemDetailId, issueNavModel2.ItemDetailId, issueNavModel3.ItemDetailId); } } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 0; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellID forIndexPath:indexPath]; return cell; } - (UIView *)setupHeaderView { CGFloat bgVH = 450 + self.typeArr.count * (32 + 8); UIView *bgV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.width, bgVH)]; bgV.backgroundColor = [UIColor whiteColor]; UILabel *titleL = [UILabel z_labelWithText:@"显示相关数据" Color:PBColor(97, 111, 125) isBold:YES Font:13]; [bgV addSubview:titleL]; [titleL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(bgV).offset(17); make.left.equalTo(bgV).offset(15); make.height.equalTo(@16); }]; CGFloat btnW = 62.f; CGFloat margin = 15.f; CGFloat spacing = (self.width - (btnW * (self.relatedArr.count - 1)) - (2 * margin)) / (self.relatedArr.count - 1 - 1); for (NSInteger i = 0; i < self.relatedArr.count; i++) { PBIssueNavModel *obj = self.relatedArr[i]; UIButton *btn = [[UIButton alloc] init]; btn.tag = 100 + i; [btn addTarget:self action:@selector(relatedSelecd:) forControlEvents:UIControlEventTouchUpInside]; [btn setTitle:obj.ItemName forState:UIControlStateNormal]; [btn setTitleColor:PBColor(40, 58, 79) forState:UIControlStateNormal]; btn.titleLabel.font = [UIFont systemFontOfSize:13]; [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg"] forState:UIControlStateNormal]; [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg_select"] forState:UIControlStateSelected]; [bgV addSubview:btn]; CGFloat topH; CGFloat leftSpacing; if (i == 0) { topH = 19; leftSpacing = margin; }else { topH = 59; leftSpacing = margin + (spacing * (i - 1)) + (btnW * (i - 1)); } [btn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(titleL.mas_bottom).offset(topH); make.left.equalTo(bgV).offset(leftSpacing); make.size.mas_equalTo(CGSizeMake(62, 32)); }]; [self.relatedBtnArr addObject:btn]; } UILabel *levelTitleL = [UILabel z_labelWithText:@"严重等级" Color:PBColor(97, 111, 125) isBold:YES Font:13]; [bgV addSubview:levelTitleL]; [levelTitleL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(titleL.mas_bottom).offset(130); make.left.equalTo(bgV).offset(15); make.height.equalTo(@16); }]; CGFloat levelBtnW = 62.f; CGFloat levelMargin = 15.f; CGFloat levelSpacing = (self.width - (levelBtnW * self.levelArr.count) - (2 * levelMargin)) / (self.levelArr.count - 1); for (NSInteger i = 0; i < self.levelArr.count; i++) { PBIssueNavModel *obj = self.levelArr[i]; UIButton *btn = [[UIButton alloc] init]; btn.tag = 200 + i; [btn addTarget:self action:@selector(levelSelecd:) forControlEvents:UIControlEventTouchUpInside]; [btn setTitle:obj.ItemName forState:UIControlStateNormal]; [btn setTitleColor:PBColor(40, 58, 79) forState:UIControlStateNormal]; btn.titleLabel.font = [UIFont systemFontOfSize:13]; [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg"] forState:UIControlStateNormal]; [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg_select"] forState:UIControlStateSelected]; [bgV addSubview:btn]; CGFloat leftSpacing = levelMargin + (levelSpacing * i) + (levelBtnW * i); [btn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(levelTitleL.mas_bottom).offset(19); make.left.equalTo(bgV).offset(leftSpacing); make.size.mas_equalTo(CGSizeMake(62, 32)); }]; [self.levelBtnArr addObject:btn]; } UILabel *stateTitleL = [UILabel z_labelWithText:@"状态" Color:PBColor(97, 111, 125) isBold:YES Font:13]; [bgV addSubview:stateTitleL]; [stateTitleL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(levelTitleL.mas_bottom).offset(90); make.left.equalTo(bgV).offset(15); make.height.equalTo(@16); }]; CGFloat stateBtnW = 62.f; CGFloat stateMargin = 15.f; CGFloat stateSpacing = (self.width - (stateBtnW * 4) - (2 * stateMargin)) / 3; for (NSInteger i = 0; i < self.stateArr.count; i++) { PBIssueNavModel *obj = self.stateArr[i]; UIButton *btn = [[UIButton alloc] init]; btn.tag = 300 + i; [btn addTarget:self action:@selector(stateSelecd:) forControlEvents:UIControlEventTouchUpInside]; [btn setTitle:obj.ItemName forState:UIControlStateNormal]; [btn setTitleColor:PBColor(40, 58, 79) forState:UIControlStateNormal]; btn.titleLabel.font = [UIFont systemFontOfSize:13]; [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg"] forState:UIControlStateNormal]; [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg_select"] forState:UIControlStateSelected]; [bgV addSubview:btn]; CGFloat topH; CGFloat leftSpacing; if (i == 0) { topH = 19; leftSpacing = stateMargin; }else if (i == 1) { topH = 19; leftSpacing = stateMargin + (stateSpacing * i) + (stateBtnW * i); }else { topH = 59; leftSpacing = stateMargin + (stateSpacing * (i - 2)) + (stateBtnW * (i - 2)); } [btn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(stateTitleL.mas_bottom).offset(topH); make.left.equalTo(bgV).offset(leftSpacing); make.size.mas_equalTo(CGSizeMake(62, 32)); }]; [self.stateBtnArr addObject:btn]; } UILabel *typeTitleL = [UILabel z_labelWithText:@"类型" Color:PBColor(97, 111, 125) isBold:YES Font:13]; [bgV addSubview:typeTitleL]; [typeTitleL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(stateTitleL.mas_bottom).offset(130); make.left.equalTo(bgV).offset(15); make.height.equalTo(@16); }]; CGFloat typeBtnW = 190.f; CGFloat typeBtnH = 32.f; CGFloat typeTop = 19.f; CGFloat typeSpacing = 8.f; for (NSInteger i = 0; i < self.typeArr.count; i++) { PBIssueNavModel *obj = self.typeArr[i]; UIButton *btn = [[UIButton alloc] init]; btn.tag = 400 + i; [btn addTarget:self action:@selector(typeSelecd:) forControlEvents:UIControlEventTouchUpInside]; [btn setTitle:obj.ItemName forState:UIControlStateNormal]; [btn setTitleColor:PBColor(40, 58, 79) forState:UIControlStateNormal]; btn.titleLabel.font = [UIFont systemFontOfSize:13]; [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg"] forState:UIControlStateNormal]; [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg_select"] forState:UIControlStateSelected]; [bgV addSubview:btn]; CGFloat topH = typeTop + (typeSpacing * i) + (typeBtnH * i); [btn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(typeTitleL.mas_bottom).offset(topH); make.left.equalTo(bgV).offset(15); make.size.mas_equalTo(CGSizeMake(typeBtnW, typeBtnH)); }]; [self.typeBtnArr addObject:btn]; } return bgV; } - (void)setBtnSelectState { for (NSInteger i = 0 ; i < self.relatedBtnArr.count; i++) { UIButton *btn = self.relatedBtnArr[i]; if (i == self.relatedIndex) { btn.selected = YES; }else { btn.selected = NO; } } for (NSInteger i = 0 ; i < self.levelBtnArr.count; i++) { UIButton *btn = self.levelBtnArr[i]; if (i == self.levelIndex) { btn.selected = YES; }else { btn.selected = NO; } } for (NSInteger i = 0 ; i < self.stateBtnArr.count; i++) { UIButton *btn = self.stateBtnArr[i]; if (i == self.stateIndex) { btn.selected = YES; }else { btn.selected = NO; } } for (NSInteger i = 0 ; i < self.typeBtnArr.count; i++) { UIButton *btn = self.typeBtnArr[i]; if (i == self.typeIndex) { btn.selected = YES; }else { btn.selected = NO; } } } - (void)relatedSelecd:(UIButton *)btn { NSInteger flag = btn.tag - 100; for (NSInteger i = 0; i < self.relatedBtnArr.count; i++) { UIButton *btn = self.relatedBtnArr[i]; if (i == flag) { btn.selected = YES; }else { btn.selected = NO; } } } - (void)levelSelecd:(UIButton *)btn { NSInteger flag = btn.tag - 200; for (NSInteger i = 0; i < self.levelBtnArr.count; i++) { UIButton *btn = self.levelBtnArr[i]; if (i == flag) { btn.selected = YES; }else { btn.selected = NO; } } } - (void)stateSelecd:(UIButton *)btn { NSInteger flag = btn.tag - 300; for (NSInteger i = 0; i < self.stateBtnArr.count; i++) { UIButton *btn = self.stateBtnArr[i]; if (i == flag) { btn.selected = YES; }else { btn.selected = NO; } } } - (void)typeSelecd:(UIButton *)btn { NSInteger flag = btn.tag - 400; for (NSInteger i = 0; i < self.typeBtnArr.count; i++) { UIButton *btn = self.typeBtnArr[i]; if (i == flag) { btn.selected = YES; }else { btn.selected = NO; } } } - (NSArray *)relatedArr { if (_relatedArr == nil) { PBIssueNavModel *issueNavModel9 = [[PBIssueNavModel alloc] init]; issueNavModel9.ItemDetailId = @""; issueNavModel9.ItemName = @"全部"; PBIssueNavModel *issueNavModel13 = [[PBIssueNavModel alloc] init]; issueNavModel13.ItemDetailId = @"AsLauncher"; issueNavModel13.ItemName = @"我发起"; PBIssueNavModel *issueNavModel10 = [[PBIssueNavModel alloc] init]; issueNavModel10.ItemDetailId = @"AsChecker"; issueNavModel10.ItemName = @"我检查"; PBIssueNavModel *issueNavModel11 = [[PBIssueNavModel alloc] init]; issueNavModel11.ItemDetailId = @"AsRectifier"; issueNavModel11.ItemName = @"我整改"; PBIssueNavModel *issueNavModel12 = [[PBIssueNavModel alloc] init]; issueNavModel12.ItemDetailId = @"AsRechecker"; issueNavModel12.ItemName = @"我验收"; _relatedArr = @[issueNavModel9, issueNavModel13, issueNavModel10, issueNavModel11, issueNavModel12]; } return _relatedArr; } - (NSArray *)levelArr { if (_levelArr == nil) { PBIssueNavModel *issueNavModel = [[PBIssueNavModel alloc] init]; issueNavModel.ItemDetailId = @""; issueNavModel.ItemName = @"全部"; PBIssueNavModel *issueNavModel1 = [[PBIssueNavModel alloc] init]; issueNavModel1.ItemDetailId = @"非常严重"; issueNavModel1.ItemName = @"非常严重"; PBIssueNavModel *issueNavModel2 = [[PBIssueNavModel alloc] init]; issueNavModel2.ItemDetailId = @"严重"; issueNavModel2.ItemName = @"严重"; PBIssueNavModel *issueNavModel3 = [[PBIssueNavModel alloc] init]; issueNavModel3.ItemDetailId = @"一般"; issueNavModel3.ItemName = @"一般"; _levelArr = @[issueNavModel, issueNavModel3, issueNavModel2, issueNavModel1]; } return _levelArr; } - (NSArray *)stateArr { if (_stateArr == nil) { PBIssueNavModel *issueNavModel4 = [[PBIssueNavModel alloc] init]; issueNavModel4.ItemDetailId = @""; issueNavModel4.ItemName = @"全部"; PBIssueNavModel *issueNavModel5 = [[PBIssueNavModel alloc] init]; issueNavModel5.ItemDetailId = @"E_Closed"; issueNavModel5.ItemName = @"已关闭"; PBIssueNavModel *issueNavModel6 = [[PBIssueNavModel alloc] init]; issueNavModel6.ItemDetailId = @"A_ToBeCheck"; issueNavModel6.ItemName = @"待检查"; PBIssueNavModel *issueNavModel7 = [[PBIssueNavModel alloc] init]; issueNavModel7.ItemDetailId = @"B_ToBeRectified"; issueNavModel7.ItemName = @"待整改"; PBIssueNavModel *issueNavModel8 = [[PBIssueNavModel alloc] init]; issueNavModel8.ItemDetailId = @"C_ToBeRecheck"; issueNavModel8.ItemName = @"待验收"; PBIssueNavModel *issueNavModel9 = [[PBIssueNavModel alloc] init]; issueNavModel9.ItemDetailId = @"D_Qualified"; issueNavModel9.ItemName = @"已合格"; _stateArr = @[issueNavModel4, issueNavModel5, issueNavModel6, issueNavModel7, issueNavModel8, issueNavModel9]; } return _stateArr; } - (void)setTypeArr:(NSArray *)typeArr { _typeArr = typeArr; self.tableView.tableHeaderView = [self setupHeaderView]; [self setBtnSelectState]; } - (NSMutableArray *)relatedBtnArr { if (_relatedBtnArr == nil) { _relatedBtnArr = [[NSMutableArray alloc] init]; } return _relatedBtnArr; } - (NSMutableArray *)levelBtnArr { if (_levelBtnArr == nil) { _levelBtnArr = [[NSMutableArray alloc] init]; } return _levelBtnArr; } - (NSMutableArray *)stateBtnArr { if (_stateBtnArr == nil) { _stateBtnArr = [[NSMutableArray alloc] init]; } return _stateBtnArr; } - (NSMutableArray *)typeBtnArr { if (_typeBtnArr == nil) { _typeBtnArr = [[NSMutableArray alloc] init]; } return _typeBtnArr; } /** PBIssueNavModel *issueNavModel = [[PBIssueNavModel alloc] init]; issueNavModel.ItemDetailId = @""; issueNavModel.ItemName = @"等级"; PBIssueNavModel *issueNavModel1 = [[PBIssueNavModel alloc] init]; issueNavModel1.ItemDetailId = @"非常严重"; issueNavModel1.ItemName = @"非常严重"; PBIssueNavModel *issueNavModel2 = [[PBIssueNavModel alloc] init]; issueNavModel2.ItemDetailId = @"严重"; issueNavModel2.ItemName = @"严重"; PBIssueNavModel *issueNavModel3 = [[PBIssueNavModel alloc] init]; issueNavModel3.ItemDetailId = @"一般"; issueNavModel3.ItemName = @"一般"; NSArray *typeArr = @[issueNavModel, issueNavModel1, issueNavModel2, issueNavModel3]; PBIssueNavModel *issueNavMode4 = [[PBIssueNavModel alloc] init]; issueNavMode4.ItemDetailId = @""; issueNavMode4.ItemName = @"状态"; PBIssueNavModel *issueNavModel5 = [[PBIssueNavModel alloc] init]; issueNavModel5.ItemDetailId = @"A_ToBeCheck"; issueNavModel5.ItemName = @"待检查"; PBIssueNavModel *issueNavModel6 = [[PBIssueNavModel alloc] init]; issueNavModel6.ItemDetailId = @"B_ToBeRectified"; issueNavModel6.ItemName = @"待整改"; PBIssueNavModel *issueNavModel7 = [[PBIssueNavModel alloc] init]; issueNavModel7.ItemDetailId = @"C_ToBeRecheck"; issueNavModel7.ItemName = @"待验收"; PBIssueNavModel *issueNavModel8 = [[PBIssueNavModel alloc] init]; issueNavModel8.ItemDetailId = @"D_Qualified"; issueNavModel8.ItemName = @"已合格"; NSArray *stateArr = @[issueNavMode4, issueNavModel5, issueNavModel6, issueNavModel7, issueNavModel8]; PBIssueNavModel *issueNavModel9 = [[PBIssueNavModel alloc] init]; issueNavModel9.ItemDetailId = @""; issueNavModel9.ItemName = @"相关"; PBIssueNavModel *issueNavModel10 = [[PBIssueNavModel alloc] init]; issueNavModel10.ItemDetailId = @"AsChecker"; issueNavModel10.ItemName = @"我检查"; PBIssueNavModel *issueNavModel11 = [[PBIssueNavModel alloc] init]; issueNavModel11.ItemDetailId = @"AsRectifier"; issueNavModel11.ItemName = @"我整改"; PBIssueNavModel *issueNavModel12 = [[PBIssueNavModel alloc] init]; issueNavModel12.ItemDetailId = @"AsRechecker"; issueNavModel12.ItemName = @"我验收"; NSArray *relatedArr = @[issueNavModel9, issueNavModel10, issueNavModel11, issueNavModel12]; */ //if ([self.customDelegate respondsToSelector:@selector(LeftMenuViewClick:)]) { // [self.customDelegate LeftMenuViewClick:indexPath.row]; //} /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end