ASPointsHomeViewController.m 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. //
  2. // ASPointsHomeViewController.m
  3. // Asteria
  4. //
  5. // Created by iOS on 2023/6/19.
  6. //
  7. #import "ASPointsHomeViewController.h"
  8. #import "ASPointHeadView.h"
  9. #import "ASPointEranCell.h"
  10. #import "ASPointDetailViewController.h"
  11. #import "ASPointsViewModel.h"
  12. @interface ASPointsHomeViewController ()<UITableViewDelegate,UITableViewDataSource>
  13. @property (nonatomic, strong) ASPointsViewModel *vm;
  14. @property (nonatomic, strong) ASPointHeadView *headV;
  15. @property (nonatomic, strong) UITableView *tableV;
  16. @end
  17. @implementation ASPointsHomeViewController
  18. - (void)viewDidLoad {
  19. [super viewDidLoad];
  20. self.vm = [[ASPointsViewModel alloc] init];
  21. [self loadSubVs];
  22. [self configSubV];
  23. }
  24. - (void)viewWillAppear:(BOOL)animated {
  25. [super viewWillAppear:animated];
  26. __weak typeof(self) weakSelf = self;
  27. [self.vm getExtraList:^(BOOL hasNext, NSString * _Nonnull msg) {
  28. [weakSelf.tableV reloadData];
  29. }];
  30. }
  31. - (void)configSubV {
  32. [self setTitleStr:@"Points"];
  33. [self setNavRightSearch:^{
  34. // TODO: - to Search VC
  35. }];
  36. NSString *points = ASUserInfoManager.shared.userPoints;
  37. [self.headV setData:points];
  38. __weak typeof(self) weakSelf = self;
  39. [self.headV setRuleCallBack:^{
  40. UIViewController *vc = [CTMediator.sharedInstance getWebViewVc:@{
  41. @"title":@"Points Rules",
  42. @"url":PointRuleWebUrl,
  43. }];
  44. [weakSelf.navigationController pushViewController:vc animated:true];
  45. }];
  46. [self.headV setDetailCallBack:^{
  47. ASPointDetailViewController *vc = [ASPointDetailViewController new];
  48. [weakSelf.navigationController pushViewController:vc animated:true];
  49. }];
  50. self.customNavBar.backgroundColor = _F0FFFA;
  51. }
  52. - (void)loadSubVs {
  53. [self.view addSubview:self.tableV];
  54. [self.tableV mas_makeConstraints:^(MASConstraintMaker *make) {
  55. make.top.equalTo(self.customNavBar.mas_bottom);
  56. make.leading.trailing.bottom.equalTo(self.view);
  57. }];
  58. }
  59. // MARK: - subVs
  60. - (ASPointHeadView *)headV {
  61. if (!_headV) {
  62. ASPointHeadView *v = [[ASPointHeadView alloc] initWithFrame:CGRectZero];
  63. _headV = v;
  64. }
  65. return _headV;
  66. }
  67. - (UITableView *)tableV {
  68. if (!_tableV) {
  69. UITableView *v = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
  70. [v registerClass:[ASPointEranCell class] forCellReuseIdentifier:@"ASPointEranCell"];
  71. v.delegate = self;
  72. v.dataSource = self;
  73. [v baseSet];
  74. v.tableHeaderView = self.headV;
  75. _tableV = v;
  76. }
  77. return _tableV;
  78. }
  79. // MARK: - UITableViewDelegate,UITableViewDataSource
  80. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  81. return self.vm.extraPathList.count;
  82. }
  83. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  84. ASPointEranCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ASPointEranCell" forIndexPath:indexPath];
  85. if (indexPath.row >= self.vm.extraPathList.count) {
  86. return cell;
  87. }
  88. ASExtraPointsModel *m = self.vm.extraPathList[indexPath.row];
  89. [cell setData:m.name des:m.point status:!m.is_obtain];
  90. return cell;
  91. }
  92. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  93. if (indexPath.row >= self.vm.extraPathList.count) {
  94. return;
  95. }
  96. ASExtraPointsModel *m = self.vm.extraPathList[indexPath.row];
  97. if (!m.is_obtain) {
  98. return;
  99. }
  100. switch (m.type.intValue) {
  101. case -1:{
  102. [self toHomeVc];
  103. }
  104. break;
  105. case 0: {
  106. // TODO: 去订单列表
  107. }
  108. break;
  109. default: {
  110. if (m.categoryId != nil && m.categoryId.length > 0) {
  111. UIViewController *vc = [CTMediator.sharedInstance getProductListVc:@{
  112. @"type":m.categoryId, //String
  113. @"title":m.name,//String
  114. @"secondTime": [NSNumber numberWithInteger:15],// NSNumber,
  115. @"pointGetType":[NSNumber numberWithInteger:m.type.integerValue],//NSNumber
  116. }];
  117. [self.navigationController pushViewController:vc animated:true];
  118. }
  119. }
  120. break;
  121. }
  122. }
  123. @end