PurchaseBoltView.m 12.1 KB
//
//  PurchaseBoltView.m
//  XFFruit
//
//  Created by n22 on 15/8/26.
//  Copyright (c) 2015年 Xummer. All rights reserved.
//

#import "PurchaseBoltView.h"
#import "MaskCell.h"
#define TableHeight 45
#define LeftMargin 80
#define TotalHeight 224
#define LeftHeight 44
#define BottomHeight 50
@interface PurchaseBoltView ()<UITextFieldDelegate>
{
    UIView *_leftView;
    UIButton *_currentBtn;
    NSIndexPath *_currentIndexPath;
    UIButton *_clearBtn;
}
@property (nonatomic,strong)NSString *state;
@property (nonatomic,strong)NSString *titleStr;
@property (nonatomic,strong)NSString *vendorNumber;

@property (nonatomic,strong)NSString *billNumber;
@property (nonatomic,strong)NSString *productNumber;


@end

@implementation PurchaseBoltView

- (instancetype)initWithFrame:(CGRect)frame state:(NSString *)state billNumber:(NSString *)billNumber titleStr:(NSString *)titleStr vendorNumber:(NSString *)vendorNumber productNumber:(NSString *)productNumber{
    self = [super initWithFrame:frame];
    if (self) {
        self.billNumber = billNumber;
        self.titleStr = titleStr;
        self.vendorNumber = vendorNumber;
        self.state = state;
        self.productNumber = productNumber;
        [self createView];
        [self createRightView];
        [self preferData];
    }
    return self;
}
- (void)preferData{
    //initial(未提交)submitted(已提交)rejected(已拒绝)approved(已审批)shipping(发运中)finished(已完成)
    if ([self.state isEqualToString:PURCHASE_STATE_INITIAL]) {
        _currentIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
    }else if ([self.state isEqualToString:PURCHASE_STATE_SUBMITTED]) {
        _currentIndexPath = [NSIndexPath indexPathForRow:1 inSection:0];
    }else if ([self.state isEqualToString:PURCHASE_STATE_REJECTED]) {
        _currentIndexPath = [NSIndexPath indexPathForRow:2 inSection:0];
    }else if ([self.state isEqualToString:PURCHASE_STATE_SHIPPING]) {
        _currentIndexPath = [NSIndexPath indexPathForRow:3 inSection:0];
    }else if ([self.state isEqualToString:PURCHASE_STATE_ABORTED]) {
        _currentIndexPath = [NSIndexPath indexPathForRow:4 inSection:0];
    }else if ([self.state isEqualToString:PURCHASE_STATE_FINISHED]) {
        _currentIndexPath = [NSIndexPath indexPathForRow:5 inSection:0];
    }else if ([self.state isEqualToString:PURCHASE_STATE_PROCESS]) {
        _currentIndexPath = [NSIndexPath indexPathForRow:6 inSection:0];
    }else if ([self.state isEqualToString:PURCHASE_STATE_PROCESSFAIL]) {
        _currentIndexPath = [NSIndexPath indexPathForRow:7 inSection:0];
    }
    self.billFiled.hidden = YES;
    if(self.billNumber.length > 0){
        self.billFiled.text = self.billNumber;
    }
    self.titleFiled.hidden = YES;
    if (self.titleStr.length > 0) {
        self.titleFiled.text = self.titleStr;
    }
    self.vendorFiled.hidden = YES;
    if (self.vendorNumber.length > 0) {
        self.vendorFiled.text = self.vendorNumber;
    }
    self.productFiled.hidden = YES;
    if (self.productNumber.length > 0) {
        self.productFiled.text = self.productNumber;
    }
}

#pragma mark - 创建视图
- (void)createView
{
    _leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, LeftMargin,self.frame.size.height- BottomHeight)];
    [self addSubview:_leftView];
    NSArray *arr = @[@"按状态",@"采购单号",@"标题",@"供应商Uuid",@"商品"];
    for (NSInteger i = 0; i<arr.count; i++) {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
        button.frame = CGRectMake(0, LeftHeight * i ,  LeftMargin ,LeftHeight);
        [button setTitle:arr[i] forState:UIControlStateNormal];
        [button setTitleColor:GXF_DETAIL_COLOR forState:UIControlStateNormal];
        if (i == 0) {
            button.enabled = NO;
            _currentBtn = button;
        }
        [button setBackgroundImage:[UIImage imageNamed:@"maskEnable"] forState:UIControlStateDisabled];
        [button setBackgroundImage:[UIImage imageNamed:@"mask"] forState:UIControlStateNormal];
        button.tag = 1001+i;
        [button addTarget:self action:@selector(leftBtnClick:) forControlEvents:UIControlEventTouchUpInside];
        [_leftView addSubview:button];
    }
    _clearBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    _clearBtn.frame = CGRectMake(0, CGRectGetMaxY(_leftView.frame), self.frame.size.width, BottomHeight);
    [_clearBtn setTitle:@"清空选项" forState:UIControlStateNormal];
    [_clearBtn setTitleColor:GXF_CONTENT_COLOR forState:UIControlStateNormal];
    _clearBtn.titleLabel.font = GXF_FIFTEENTEN_SIZE;
    [_clearBtn addTarget:self action:@selector(clearBolt) forControlEvents:UIControlEventTouchUpInside];
    [self addSubview:_clearBtn];
}
- (void)createRightView{
    NSArray *arr = @[@"输入类似采购单号",@"输入类似标题",@"输入类似供应商Uuid",@"输入类似商品"];
    UIView *contentView = [[UIView alloc]initWithFrame:CGRectMake(LeftMargin, 0, ScreenSize.width - LeftMargin, self.frame.size.height - BottomHeight)];
    contentView.backgroundColor = [UIColor whiteColor];
    [self addSubview:contentView];
    UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 20, (ScreenSize.width - LeftMargin - 10*2), 20)];
    contentLabel.font = GXF_FIFTEENTEN_SIZE;
    contentLabel.text = @"类似于:";
    [contentView addSubview:contentLabel];
    
    for (NSInteger i = 0; i < arr.count; i ++) {
        UITextField *contentField = [[UITextField alloc]initWithFrame:CGRectMake(10, CGRectGetMaxY(contentLabel.frame) + 10, (ScreenSize.width - LeftMargin - 10*2), 30)];
        contentField.textAlignment = NSTextAlignmentLeft;
        contentField.textColor = GXF_CONTENT_COLOR;
        contentField.borderStyle = UITextBorderStyleRoundedRect;
        contentField.font = GXF_FIFTEENTEN_SIZE;
        contentField.placeholder = arr[i];

        contentField.returnKeyType = UIReturnKeyDone;
        contentField.delegate = self;
        [contentView addSubview:contentField];
        if (i == 0) {
            _billFiled = contentField;
        }else if(i == 1){
            _titleFiled = contentField;
        }else if(i == 2){
            _vendorFiled = contentField;
        }else if (i == 3){
            _productFiled = contentField;
        }
    }
    self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(LeftMargin, 0, ScreenSize.width - LeftMargin, self.frame.size.height - BottomHeight) style:(UITableViewStylePlain)];
    self.tableView.backgroundColor = [UIColor whiteColor];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    [self addSubview:self.tableView];
    
}


- (void)leftBtnClick:(UIButton *)btn{
    _currentBtn.enabled = YES;
    btn.enabled = NO;
    _currentBtn = btn;
    [self keyBoardHidden];
    switch (btn.tag) {
        case 1001://状态
        {
            self.tableView.hidden = NO;
            _billFiled.hidden = YES;
            _titleFiled.hidden = YES;
            _vendorFiled.hidden = YES;
            _productFiled.hidden = YES;
        }
            break;
        case 1002://条件二
        {
            self.tableView.hidden = YES;
            _billFiled.hidden = NO;
            _titleFiled.hidden = YES;
            _vendorFiled.hidden = YES;
            _productFiled.hidden = YES;
        }
            break;
        case 1003://条件三
        {
            self.tableView.hidden = YES;
            _billFiled.hidden = YES;
            _titleFiled.hidden = NO;
            _vendorFiled.hidden = YES;
            _productFiled.hidden = YES;
        }
            break;
        case 1004://条件四
        {
            self.tableView.hidden = YES;
            _billFiled.hidden = YES;
            _titleFiled.hidden = YES;
            _vendorFiled.hidden = NO;
            _productFiled.hidden = YES;
        }
            break;
        case 1005://条件五
        {
            self.tableView.hidden = YES;
            _billFiled.hidden = YES;
            _titleFiled.hidden = YES;
            _vendorFiled.hidden = YES;
            _productFiled.hidden = NO;
        }
            break;
        default:
            break;
    }
}

- (void)clearBolt{
    if (_billFiled.text.length > 0) {
        _billFiled.text = @"";
    }
    if (_titleFiled.text.length > 0) {
        _titleFiled.text = @"";
    }
    if (_vendorFiled.text.length > 0) {
        _vendorFiled.text = @"";
    }
    if (_productFiled.text.length > 0) {
        _productFiled.text = @"";
    }
    if (_currentIndexPath) {
        _currentIndexPath = nil;
        [self.tableView reloadData];
    }
    if ([self.delegate respondsToSelector:@selector(clearBoltInformation)]) {
        [self.delegate clearBoltInformation];
    }
}

#pragma mark - 协议
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.dataArr.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellID = @"MaskID";
    MaskCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil) {
        cell = [[MaskCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID totalWidth: ScreenSize.width - 80 totalHeight:TableHeight];
        tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }
    if (_dataArr.count > 0) {
        cell.Commitbtn.hidden = YES;
        [cell setTitleStr:self.dataArr[indexPath.row]];
        
    }
    if (_currentIndexPath) {
        if (indexPath.row == _currentIndexPath.row) {
            cell.Commitbtn.hidden = NO;
        }else{
            cell.Commitbtn.hidden = YES;
        }
    }
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    //获取选中的cell
    MaskCell *currentCell = (MaskCell *)[tableView cellForRowAtIndexPath:_currentIndexPath];
    currentCell.Commitbtn.hidden = YES;
    MaskCell *cell = (MaskCell *)[tableView cellForRowAtIndexPath:indexPath];
    cell.Commitbtn.hidden = NO;
    _currentIndexPath = indexPath;
    
    //initial(未提交)submitted(已提交)rejected(已拒绝)approved(已审批)shipping(发运中)finished(已完成)
    
    NSString *stateStr = @"";
    if (indexPath.row == 0) {
        stateStr = PURCHASE_STATE_INITIAL;
    }else if(indexPath.row == 1){
        stateStr = PURCHASE_STATE_SUBMITTED;
    }else if(indexPath.row == 2){
        stateStr = PURCHASE_STATE_REJECTED;
    }else if(indexPath.row == 3){
        stateStr = PURCHASE_STATE_SHIPPING;
    }else if(indexPath.row == 4){
        stateStr = PURCHASE_STATE_ABORTED;
    }else if(indexPath.row == 5){
        stateStr = PURCHASE_STATE_FINISHED;
    }else if(indexPath.row == 6){
        stateStr = PURCHASE_STATE_PROCESS;
    }else if(indexPath.row == 7){
        stateStr = PURCHASE_STATE_PROCESSFAIL;
    }
    [self.delegate getBoltValueSelectRow:stateStr];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return TableHeight;
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    [self keyBoardHidden];
    return YES;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    [self keyBoardHidden];
}
- (void)keyBoardHidden{
    [self.billFiled resignFirstResponder];
    [self.titleFiled resignFirstResponder];
    [self.vendorFiled resignFirstResponder];
    [self.productFiled resignFirstResponder];
}

- (void)textFieldDidEndEditing:(UITextField *)textField{
    if (textField == self.billFiled) {
//        if (self.billFiled.text.length > 0) {
            [self.delegate getbillLike:self.billFiled.text];
//        }
    }else if(textField == self.titleFiled){
//        if (self.titleFiled.text.length > 0) {
            [self.delegate gettitleLike:self.titleFiled.text];
//        }
    }else if(textField == self.vendorFiled){
//        if (self.vendorFiled.text.length > 0) {
            [self.delegate getvendorLike:self.vendorFiled.text];
//        }
    }else if(textField == self.productFiled){
        //        if (self.vendorFiled.text.length > 0) {
        [self.delegate getproductLike:self.productFiled.text];
        //        }
    }
}


@end