|
@@ -0,0 +1,348 @@
|
|
|
|
+//
|
|
|
|
+// ASOrderListCell.m
|
|
|
|
+// Asteria
|
|
|
|
+//
|
|
|
|
+// Created by iOS on 2024/5/14.
|
|
|
|
+//
|
|
|
|
+
|
|
|
|
+#import "ASOrderListCell.h"
|
|
|
|
+#import "KWMineHomeOrderSubView.h"
|
|
|
|
+
|
|
|
|
+@interface ASOrderListCell ()
|
|
|
|
+
|
|
|
|
+@property (nonatomic, strong) UIStackView *prodStackV;
|
|
|
|
+
|
|
|
|
+@property (nonatomic, strong) UIView *bgV;
|
|
|
|
+
|
|
|
|
+@property (nonatomic, strong) UILabel *orderNoNameLB;
|
|
|
|
+@property (nonatomic, strong) UILabel *orderNoLB;
|
|
|
|
+@property (nonatomic, strong) UILabel *timeLB;
|
|
|
|
+@property (nonatomic, strong) UIButton *viewBt;
|
|
|
|
+
|
|
|
|
+@property (nonatomic, strong) UIButton *trackBt;
|
|
|
|
+@property (nonatomic, strong) UIButton *reorderBt;
|
|
|
|
+@property (nonatomic, strong) UIButton *paynowBt;
|
|
|
|
+@property (nonatomic, strong) UILabel *statusLb;
|
|
|
|
+@property (nonatomic, strong) UILabel *totalTiLb;
|
|
|
|
+@property (nonatomic, strong) UILabel *totalNumLb;
|
|
|
|
+
|
|
|
|
+@property (nonatomic, strong) UIView *lineV;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+@property (nonatomic, strong) KWMineHomeOrderModel *m;
|
|
|
|
+
|
|
|
|
+@end
|
|
|
|
+
|
|
|
|
+@implementation ASOrderListCell
|
|
|
|
+
|
|
|
|
+- (void)setData:(KWMineHomeOrderModel *)model {
|
|
|
|
+ self.m = model;
|
|
|
|
+ self.statusLb.text = model.state;
|
|
|
|
+ self.timeLB.text = [NSString stringWithFormat:@"Date: %@", model.created_at];
|
|
|
|
+ self.orderNoLB.text = model.increment_id;
|
|
|
|
+ self.totalNumLb.text = [NSString stringWithFormat:@"%@%@", model.currency_symbol, model.grand_total];
|
|
|
|
+ for (UIView*item in self.prodStackV.arrangedSubviews) {
|
|
|
|
+ if (item.superview) {
|
|
|
|
+ [item removeFromSuperview];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for (KWMineOrderProInfoModel *info in model.items) {
|
|
|
|
+ KWMineHomeOrderSubView *subV = [[KWMineHomeOrderSubView alloc] init];
|
|
|
|
+ [subV setData:info canEdit:true];
|
|
|
|
+ [self.prodStackV addArrangedSubview:subV];
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
|
|
|
+ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
|
|
|
|
+ if (self) {
|
|
|
|
+ [self configSubV];
|
|
|
|
+ }
|
|
|
|
+ return self;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (void)awakeFromNib {
|
|
|
|
+ [super awakeFromNib];
|
|
|
|
+ // Initialization code
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
|
|
|
|
+ [super setSelected:selected animated:animated];
|
|
|
|
+
|
|
|
|
+ // Configure the view for the selected state
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (void)configSubV {
|
|
|
|
+ self.selectionStyle = UITableViewCellSelectionStyleNone;
|
|
|
|
+
|
|
|
|
+ self.contentView.backgroundColor = _F8F8F8;
|
|
|
|
+ self.bgV = [UIView new];
|
|
|
|
+ self.bgV.layer.cornerRadius = 4;
|
|
|
|
+ self.bgV.layer.masksToBounds = true;
|
|
|
|
+ self.bgV.backgroundColor = Col_FFF;
|
|
|
|
+
|
|
|
|
+ [self.contentView addSubview:self.bgV];
|
|
|
|
+ [self.bgV mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.left.equalTo(self.contentView).offset(10);
|
|
|
|
+ make.right.equalTo(self.contentView).offset(-10);
|
|
|
|
+ make.top.equalTo(self.contentView).offset(0);
|
|
|
|
+ make.bottom.equalTo(self.contentView).offset(-10);
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+ self.prodStackV = [[UIStackView alloc] init];
|
|
|
|
+ self.prodStackV.axis = UILayoutConstraintAxisVertical;
|
|
|
|
+ self.prodStackV.spacing = 20;
|
|
|
|
+ self.prodStackV.distribution = UIStackViewDistributionFillEqually;
|
|
|
|
+ self.prodStackV.alignment = UIStackViewAlignmentFill;
|
|
|
|
+
|
|
|
|
+ [self.bgV addSubview:self.prodStackV];
|
|
|
|
+
|
|
|
|
+ [self.bgV addSubview:self.orderNoNameLB];
|
|
|
|
+ [self.bgV addSubview:self.orderNoLB];
|
|
|
|
+ [self.bgV addSubview:self.timeLB];
|
|
|
|
+ [self.bgV addSubview:self.viewBt];
|
|
|
|
+ [self.bgV addSubview:self.statusLb];
|
|
|
|
+ [self.bgV addSubview:self.totalTiLb];
|
|
|
|
+ [self.bgV addSubview:self.totalNumLb];
|
|
|
|
+ [self.bgV addSubview:self.lineV];
|
|
|
|
+
|
|
|
|
+ UIStackView *btStv = [[UIStackView alloc] init];
|
|
|
|
+ btStv.axis = UILayoutConstraintAxisHorizontal;
|
|
|
|
+ btStv.spacing = 20;
|
|
|
|
+ btStv.distribution = UIStackViewDistributionFillEqually;
|
|
|
|
+ btStv.alignment = UIStackViewAlignmentFill;
|
|
|
|
+
|
|
|
|
+ [self.bgV addSubview:btStv];
|
|
|
|
+ [btStv addArrangedSubview:self.trackBt];
|
|
|
|
+ [btStv addArrangedSubview:self.reorderBt];
|
|
|
|
+ [btStv addArrangedSubview:self.viewBt];
|
|
|
|
+ [btStv addArrangedSubview:self.paynowBt];
|
|
|
|
+
|
|
|
|
+ [self.statusLb mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.left.equalTo(@10);
|
|
|
|
+ make.right.equalTo(@(-10));
|
|
|
|
+ make.top.equalTo(self.bgV).offset(20);
|
|
|
|
+ make.height.equalTo(@17);
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+ [self.orderNoNameLB mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.left.equalTo(self.statusLb);
|
|
|
|
+ make.top.equalTo(self.statusLb.mas_bottom).offset(10);
|
|
|
|
+ make.height.equalTo(@16);
|
|
|
|
+ }];
|
|
|
|
+ [self.orderNoLB mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.left.equalTo(self.orderNoNameLB.mas_right);
|
|
|
|
+ make.centerY.equalTo(self.orderNoNameLB);
|
|
|
|
+ make.height.equalTo(@16);
|
|
|
|
+ }];
|
|
|
|
+ [self.orderNoLB setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
|
|
|
|
+ [self.orderNoNameLB setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
|
|
|
|
+
|
|
|
|
+ [self.timeLB mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.left.equalTo(self.orderNoLB.mas_right).offset(10);
|
|
|
|
+ make.centerY.equalTo(self.orderNoNameLB);
|
|
|
|
+ make.height.equalTo(@16);
|
|
|
|
+ make.right.equalTo(self.bgV).offset(-10);
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+ [self.lineV mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.left.right.equalTo(self.statusLb);
|
|
|
|
+ make.height.equalTo(@1);
|
|
|
|
+ make.top.equalTo(self.orderNoNameLB.mas_bottom).offset(10);
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ [self.prodStackV mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.top.equalTo(self.lineV.mas_bottom).offset(10);
|
|
|
|
+ make.left.equalTo(self.bgV).offset(10);
|
|
|
|
+ make.right.equalTo(self.bgV).offset(-10);
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+ [self.totalTiLb mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.left.equalTo(self.prodStackV.mas_left);
|
|
|
|
+ make.top.equalTo(self.prodStackV.mas_bottom).offset(21);
|
|
|
|
+ make.height.equalTo(@16);
|
|
|
|
+ }];
|
|
|
|
+ [self.totalNumLb setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
|
|
|
|
+ [self.totalNumLb mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.centerY.equalTo(self.totalTiLb);
|
|
|
|
+ make.left.equalTo(self.totalTiLb.mas_right);
|
|
|
|
+ make.right.equalTo(self.prodStackV.mas_right);
|
|
|
|
+ make.height.equalTo(@16);
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+ [btStv mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.right.equalTo(self.statusLb);
|
|
|
|
+ make.bottom.equalTo(self.bgV.mas_bottom).offset(-30);
|
|
|
|
+ make.height.equalTo(@36);
|
|
|
|
+ make.top.equalTo(self.totalTiLb.mas_bottom).offset(30);
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+ [self.viewBt mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
+ make.height.equalTo(@36);
|
|
|
|
+ make.width.equalTo(@76);
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+- (UIView *)lineV {
|
|
|
|
+ if (!_lineV) {
|
|
|
|
+ UIView *v = [UIView baseV];
|
|
|
|
+ v.backgroundColor = _F4F4F4;
|
|
|
|
+ _lineV = v;
|
|
|
|
+ }
|
|
|
|
+ return _lineV;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UILabel *)statusLb {
|
|
|
|
+ if (!_statusLb) {
|
|
|
|
+ UILabel *lb = [[UILabel alloc] init];
|
|
|
|
+ lb.font = [UIFont fontWithName:Rob_Bold size:14];
|
|
|
|
+ lb.textColor = Col_000;
|
|
|
|
+ lb.backgroundColor = [UIColor clearColor];
|
|
|
|
+ _statusLb = lb;
|
|
|
|
+ }
|
|
|
|
+ return _statusLb;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UILabel *)totalTiLb {
|
|
|
|
+ if (!_totalTiLb) {
|
|
|
|
+ UILabel *lb = [[UILabel alloc] init];
|
|
|
|
+ lb.font = [UIFont fontWithName:Rob_Regular size:14];
|
|
|
|
+ lb.textColor = Col_000;
|
|
|
|
+ lb.backgroundColor = [UIColor clearColor];
|
|
|
|
+ lb.textAlignment = NSTextAlignmentRight;
|
|
|
|
+ lb.text = @"Order Total:";
|
|
|
|
+ _totalTiLb = lb;
|
|
|
|
+ }
|
|
|
|
+ return _totalTiLb;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UILabel *)totalNumLb {
|
|
|
|
+ if (!_totalNumLb) {
|
|
|
|
+ UILabel *lb = [[UILabel alloc] init];
|
|
|
|
+ lb.font = [UIFont fontWithName:Rob_Bold size:14];
|
|
|
|
+ lb.textColor = Col_000;
|
|
|
|
+ lb.backgroundColor = [UIColor clearColor];
|
|
|
|
+ _totalNumLb = lb;
|
|
|
|
+ }
|
|
|
|
+ return _totalNumLb;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UILabel *)orderNoNameLB {
|
|
|
|
+ if (!_orderNoNameLB) {
|
|
|
|
+ UILabel *lb = [[UILabel alloc] init];
|
|
|
|
+ lb.font = [UIFont fontWithName:Rob_Regular size:12];
|
|
|
|
+ lb.textColor = [UIColor colorWithHexString:@"#666666"];
|
|
|
|
+ lb.backgroundColor = [UIColor clearColor];
|
|
|
|
+ lb.textAlignment = NSTextAlignmentLeft;
|
|
|
|
+ lb.text = @"Order Number:";
|
|
|
|
+ _orderNoNameLB = lb;
|
|
|
|
+ }
|
|
|
|
+ return _orderNoNameLB;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UILabel *)orderNoLB {
|
|
|
|
+ if (!_orderNoLB) {
|
|
|
|
+ UILabel *lb = [[UILabel alloc] init];
|
|
|
|
+ lb.font = [UIFont fontWithName:Rob_Regular size:12];
|
|
|
|
+ lb.textColor = [UIColor colorWithHexString:@"#666666"];
|
|
|
|
+ lb.backgroundColor = [UIColor clearColor];
|
|
|
|
+ _orderNoLB = lb;
|
|
|
|
+ }
|
|
|
|
+ return _orderNoLB;
|
|
|
|
+}
|
|
|
|
+- (UILabel *)timeLB {
|
|
|
|
+ if (!_timeLB) {
|
|
|
|
+ UILabel *lb = [[UILabel alloc] init];
|
|
|
|
+ lb.font = [UIFont fontWithName:Rob_Regular size:12];
|
|
|
|
+ lb.textColor = [UIColor colorWithHexString:@"#666666"];
|
|
|
|
+ lb.backgroundColor = [UIColor clearColor];
|
|
|
|
+ lb.textAlignment = NSTextAlignmentLeft;
|
|
|
|
+ _timeLB = lb;
|
|
|
|
+ }
|
|
|
|
+ return _timeLB;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UIButton *)viewBt {
|
|
|
|
+ if (!_viewBt) {
|
|
|
|
+ UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
|
|
+ NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"View Order"];
|
|
|
|
+ [attStr addAttributes:@{
|
|
|
|
+ NSFontAttributeName:[UIFont fontWithName:Rob_Regular size:14],
|
|
|
|
+ NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),
|
|
|
|
+ NSUnderlineColorAttributeName:[UIColor colorWithHexString:@"#000000"],
|
|
|
|
+ NSForegroundColorAttributeName:[UIColor colorWithHexString:@"#000000"],
|
|
|
|
+ } range:NSMakeRange(0, attStr.length)];
|
|
|
|
+ bt.tag = 10000;
|
|
|
|
+ [bt setAttributedTitle:attStr forState:UIControlStateNormal];
|
|
|
|
+ [bt addTarget:self action:@selector(viewBtAction:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
|
+ _viewBt = bt;
|
|
|
|
+ }
|
|
|
|
+ return _viewBt;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UIButton *)trackBt {
|
|
|
|
+ if (!_trackBt) {
|
|
|
|
+ UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
|
|
+ NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"Track Order"];
|
|
|
|
+ [attStr addAttributes:@{
|
|
|
|
+ NSFontAttributeName:[UIFont fontWithName:Rob_Regular size:14],
|
|
|
|
+ NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),
|
|
|
|
+ NSUnderlineColorAttributeName:[UIColor colorWithHexString:@"#000000"],
|
|
|
|
+ NSForegroundColorAttributeName:[UIColor colorWithHexString:@"#000000"],
|
|
|
|
+ } range:NSMakeRange(0, attStr.length)];
|
|
|
|
+ bt.tag = 10001;
|
|
|
|
+ [bt setAttributedTitle:attStr forState:UIControlStateNormal];
|
|
|
|
+ [bt addTarget:self action:@selector(viewBtAction:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
|
+ _trackBt = bt;
|
|
|
|
+ }
|
|
|
|
+ return _trackBt;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UIButton *)reorderBt {
|
|
|
|
+ if (!_reorderBt) {
|
|
|
|
+ UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
|
|
+ NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"Reorder"];
|
|
|
|
+ [attStr addAttributes:@{
|
|
|
|
+ NSFontAttributeName:[UIFont fontWithName:Rob_Regular size:14],
|
|
|
|
+ NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),
|
|
|
|
+ NSUnderlineColorAttributeName:[UIColor colorWithHexString:@"#000000"],
|
|
|
|
+ NSForegroundColorAttributeName:[UIColor colorWithHexString:@"#000000"],
|
|
|
|
+ } range:NSMakeRange(0, attStr.length)];
|
|
|
|
+ bt.tag = 10002;
|
|
|
|
+ [bt setAttributedTitle:attStr forState:UIControlStateNormal];
|
|
|
|
+ [bt addTarget:self action:@selector(viewBtAction:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
|
+ _reorderBt = bt;
|
|
|
|
+ }
|
|
|
|
+ return _reorderBt;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+- (UIButton *)paynowBt {
|
|
|
|
+ if (!_paynowBt) {
|
|
|
|
+ UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
|
|
+ bt.tag = 10003;
|
|
|
|
+ bt.hidden = true;
|
|
|
|
+ bt.titleLabel.font = [UIFont fontWithName:Rob_Regular size:14];
|
|
|
|
+ [bt setTitle:@"Pay Now" forState:UIControlStateNormal];
|
|
|
|
+ [bt addTarget:self action:@selector(viewBtAction:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
|
+ _viewBt = bt;
|
|
|
|
+ }
|
|
|
|
+ return _viewBt;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+-(void)viewBtAction:(UIButton *)bt {
|
|
|
|
+
|
|
|
|
+ if (self.viewOrderCall) {
|
|
|
|
+ self.viewOrderCall(bt.tag-10000);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@end
|
|
|
|
+
|