CNLiveMineOrderTableViewCell.m 11 KB
//
//  CNLiveMineOrderTableViewCell.m
//  CNLiveMyOrderModule
//
//  Created by 殷巧娟 on 2019/11/18.
//

#import "CNLiveMineOrderTableViewCell.h"
#import "CNLiveMineOrderView.h"
#import "Masonry.h"
#import "CNLiveBaseKit.h"
#define Line_H  0.5
/** 通用的间距值 */
CGFloat const ZXMargin = 10;
@interface CNLiveMineOrderTableViewCell ()
@property (nonatomic, strong) CNLiveIconView *iconView;
@property (nonatomic, strong) CNLiveKindView *kindView;
@property (nonatomic, strong) CNLiveTotalView *totalView;
@property (nonatomic, strong) CNLiveFuncView *funcView;
@property (nonatomic, strong) UIView *line1;
@property (nonatomic, strong) UIView *line2;
@property (nonatomic, strong) UIView *line3;
@end
@implementation CNLiveMineOrderTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
        self.backgroundColor = kWeChatBgColor;
        [self initSubView];
        self.selectionStyle = UITableViewCellSelectionStyleGray;
    }
    return self;
}
- (void)initSubView{
    __weak typeof(self) weakSelf = self;
    [self.contentView addSubview:self.iconView];
    [self.contentView addSubview:self.kindView];
    [self.contentView addSubview:self.totalView];
    [self.contentView addSubview:self.funcView];
    [self.contentView addSubview:self.line1];
    [self.contentView addSubview:self.line3];
    
    [self p_addMasonry];
    self.funcView.funcBlock = ^(CNLiveMineOrderButtonItemType tag) {
        
        if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(cellWithOrderModel:type:)]) {
            [weakSelf.delegate cellWithOrderModel:weakSelf.list type:tag];
        }
    };
    self.iconView.darenHomeBlock = ^(CNLiveOrderList *list) {
        //        [CNOrderEventHandle darenHome:list];
    };
}
- (void)configOrderList:(CNLiveOrderList *)list delegate:(id<CNLiveMineOrderTableViewCellDelegate>)delegate {
    self.list = list;
    self.delegate = delegate;
    _iconView.list = list;
    _kindView.list = list;
    _totalView.list = list;
    [self configFuncItems:list];
}
-(void)setFrame:(CGRect)frame {
    frame.size.height -= ZXMargin;
    [super setFrame:frame];
}
/**
 *  ((0-待确认,1-允许修改,2-取消订单,3-待支付,4-取消确认, 5-待发货,6-待收货,7-已收货,8-申请退款,9-确认退款,10-拒绝退款,11-退款失败,12-退款成功)
*/
- (void)configFuncItems:(CNLiveOrderList *)list {
    
    CNLiveOrderListOrderItem *orderItem = list.orderItem;
    
    self.totalView.list = list;
    
    if (orderItem.status == 3) {    //待支付
        [self funcItemType:1 statusText:@"等待买家付款"];
    }
    
    if (orderItem.status == 4) {    //取消确认
        [self funcItemType:5 statusText:@"交易关闭"];
    }
    
    if (orderItem.status == 5) {    //待发货
        [self funcItemType:2 statusText:@"待发货"];
    }
    
    if (orderItem.status == 6) {    //已发货
        [self funcItemType:2 statusText:@"待收货"];
    }
    
    if (orderItem.status == 7) {    //已收货,若已评价显示交易成功,未评价显示待评价
        if (orderItem.commentable == true) {
            [self funcItemType:3 statusText:@"待评价"];
        } else {
            [self funcItemType:0 statusText:@"交易成功"];
        }
        
    }
    
    if (orderItem.status == 8 || orderItem.status == 9) {   //确认退款和申请退款为退款中状态
        [self funcItemType:4 statusText:@"退款中"];
    }
    
    if (orderItem.status == 11) {   //退款失败
        [self funcItemType:6 statusText:@"退款中"];
    }
    
    if (orderItem.status == 10) {   //拒绝退款
        [self funcItemType:2 statusText:@"退款失败"];
    }
    
    if (orderItem.status == 12) {   //退款成功
        [self funcItemType:4 statusText:@"退款成功"];
    }
    
}
- (void)funcItemType:(NSInteger)type statusText:(NSString *)text {
    
    [_iconView setStatusLabText:text];
    
    switch (type) {
        case 0: {   //交易成功
            
            CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"删除订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeDelete];
            _funcView.funcItems = @[btnItem1];
            
        }
        break;
        
        case 1: {   //代付款
            
            CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"取消订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeCancel];
            
            CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"付款" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypePay];
            
            _funcView.funcItems = @[btnItem3, btnItem2];
            
        }
        break;
        
        case 2: {   //待收货
            
            if (_list.orderItem.refundable == true) {
                
                CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"申请退款" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeRefund];
                
                CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"我要催单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeReminder];
                
                _funcView.funcItems = @[btnItem1, btnItem3];
                
            } else {
                
                CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"我要催单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeReminder];
                
                CNLiveMineOrderButtonItem *btnItem4 = [CNLiveMineOrderButtonItem title:@"确认收货" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeConfirmReceipt];
                
                if (_list.orderItem.status == 5) {
                    _funcView.funcItems = @[btnItem3];
                } else {
                    _funcView.funcItems = @[btnItem4, btnItem3];
                }
                
            }
            
        }
        break;
        
        case 3: {   //待评价
            
            CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"删除订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeDelete];
            CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"评价" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeEvaluate];
            
            _funcView.funcItems = @[btnItem1, btnItem2];
            
        }
        break;
        
        case 4: {   //退款
            
            CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"退款详情" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeRefundDetail];
            
            _funcView.funcItems = @[btnItem2];
            
        }
        break;
        
        case 5: {   //交易关闭
            
            CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"删除订单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeDelete];
            
            _funcView.funcItems = @[btnItem1];
            
        }
        break;
        
        case 6: {   //退款失败
            
            CNLiveMineOrderButtonItem *btnItem2 = [CNLiveMineOrderButtonItem title:@"退款详情" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeRefundDetail];
            
            CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"申请退款" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeRefund];
            
            _funcView.funcItems = @[btnItem3, btnItem2];
            
        }
        break;
        
        case 7: {   //拒绝退款
            
            CNLiveMineOrderButtonItem *btnItem1 = [CNLiveMineOrderButtonItem title:@"申请退款" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeRefund];
            
            CNLiveMineOrderButtonItem *btnItem3 = [CNLiveMineOrderButtonItem title:@"我要催单" type:CNLiveMineOrderButtonTypeGray tag:CNLiveMineOrderButtonItemTypeReminder];
            
            CNLiveMineOrderButtonItem *btnItem4 = [CNLiveMineOrderButtonItem title:@"确认收货" type:CNLiveMineOrderButtonTypeRed tag:CNLiveMineOrderButtonItemTypeConfirmReceipt];
            
            _funcView.funcItems = @[btnItem4, btnItem1, btnItem3];
            
        }
        break;
        
        default:
        break;
    }
    
}
    
- (void)p_addMasonry {
    
    [self.iconView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.left.right.mas_equalTo(self.contentView);
        make.height.mas_equalTo(44*RATIO);
    }];
    
    [self.line1 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.contentView);
        make.size.mas_equalTo(CGSizeMake(KScreenWidth, 0.5));
        make.bottom.mas_equalTo(self.iconView.mas_bottom);
    }];
    
    [self.kindView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.mas_equalTo(self.contentView);
        make.top.mas_equalTo(self.iconView.mas_bottom);
    }];
    [self.totalView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.mas_equalTo(self.contentView);
        make.top.mas_equalTo(self.kindView.mas_bottom);
        make.height.mas_equalTo(40*RATIO);
    }];
    
    [self.line3 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.contentView);
        make.size.mas_equalTo(CGSizeMake(KScreenWidth, 0.5));
        make.bottom.mas_equalTo(self.totalView.mas_bottom);
    }];
    
    [self.funcView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.mas_equalTo(self.contentView);
        make.top.mas_equalTo(self.totalView.mas_bottom);
        make.height.mas_equalTo(51*RATIO);
    }];
    
}
    
#pragma mark -
#pragma mark - Getter
- (CNLiveIconView *)iconView{
    if (!_iconView) {
        _iconView = [[CNLiveIconView alloc] init];
        _iconView.smallIcon = YES;
    }
    return _iconView;
}
    
- (CNLiveKindView *)kindView{
    if (!_kindView) {
        _kindView = [[CNLiveKindView alloc] init];
    }
    return _kindView;
}
    
- (CNLiveTotalView *)totalView{
    if (!_totalView) {
        _totalView = [[CNLiveTotalView alloc] init];
    }
    return _totalView;
}
    
- (CNLiveFuncView *)funcView{
    if (!_funcView) {
        _funcView = [[CNLiveFuncView alloc] init];
    }
    return _funcView;
}
    
- (UIView *)line1{
    if (!_line1) {
        _line1 = [[UIView alloc] init];
        _line1.backgroundColor = KGray227Color;
    }
    return _line1;
}
    
- (UIView *)line2{
    if (!_line2) {
        _line2 = [[UIView alloc] init];
        _line2.backgroundColor = KCommonLineColor;
    }
    return _line2;
}
    
- (UIView *)line3{
    if (!_line3) {
        _line3 = [[UIView alloc] init];
        _line3.backgroundColor = KGray227Color;
    }
    return _line3;
}

@end