ASCategoryViewController.m 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. //
  2. // ASCategoryViewController.m
  3. // Asteria
  4. //
  5. // Created by iOS on 2023/7/10.
  6. //
  7. #import "ASCategoryViewController.h"
  8. #import "KWSearchMainTypeTableView.h"
  9. #import "KWSearchSubTypeTableView.h"
  10. #import "ASCategoriesViewModel.h"
  11. @interface ASCategoryViewController ()
  12. @property (nonatomic, strong) ASCategoriesViewModel *vm;
  13. @property (nonatomic, strong) KWSearchMainTypeTableView *leftTableV;
  14. @property (nonatomic, strong) KWSearchSubTypeTableView *rightTableV;
  15. @property (nonatomic, strong) UIView *bottomV;
  16. @end
  17. @implementation ASCategoryViewController
  18. - (void)viewDidLoad {
  19. [super viewDidLoad];
  20. self.vm = [ASCategoriesViewModel new];
  21. [self loadSubVs];
  22. [self getData];
  23. }
  24. - (void)getData {
  25. __weak typeof(self) weakSelf = self;
  26. [self.vm getAllCateGories:@"" com:^(BOOL isSuc, NSString * _Nonnull msg) {
  27. NSArray<KWMainTypeModel *> *tempArr = weakSelf.vm.totalDatas;
  28. weakSelf.leftTableV.arr = tempArr;
  29. NSInteger cusSelect = 0;
  30. for (int i=0; i<tempArr.count; i++) {
  31. KWMainTypeModel *temp = tempArr[i];
  32. if (temp.children_data.count > 0) {
  33. cusSelect = i;
  34. break;
  35. }
  36. }
  37. if (tempArr.count > cusSelect) {
  38. weakSelf.rightTableV.arr = tempArr[cusSelect].children_data;
  39. }
  40. weakSelf.leftTableV.selectIndex = cusSelect;
  41. [weakSelf.leftTableV reloadData];
  42. [weakSelf.rightTableV reloadData];
  43. if (!isSuc) {
  44. [weakSelf.view makeToast:msg];
  45. }
  46. }];
  47. }
  48. //设置币种
  49. - (void)requestSetCurrency:(NSString *)currency {
  50. NSDictionary *param = @{@"currency_code":currency};
  51. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  52. K_WEAK_SELF;
  53. [self.vm setAllCurrencyToService:param complete:^(BOOL isSuc, NSString * _Nonnull msg) {
  54. K_STRONG_SELF;
  55. [MBProgressHUD hideHUDForView:self.view animated:YES];
  56. if (isSuc) {
  57. [self.view makeToast:@"Success" duration:2 position:CSToastPositionCenter];
  58. [ASCurrencyManager.shared setSelectCurrency:currency];
  59. [self.rightTableV reloadData];
  60. } else {
  61. if (AS_String_valid(msg)) {
  62. [self.view makeToast:msg duration:2 position:CSToastPositionCenter];
  63. } else {
  64. [self.view makeToast:@"failed" duration:2 position:CSToastPositionCenter];
  65. }
  66. }
  67. }];
  68. }
  69. - (void)loadSubVs {
  70. self.statusBgV.backgroundColor = _E0FFF5;
  71. self.customNavBar.backgroundColor = _E0FFF5;
  72. self.titleStr = @"Category";
  73. [self.view addSubview:self.bottomV];
  74. [self.bottomV addSubview:self.leftTableV];
  75. [self.bottomV addSubview:self.rightTableV];
  76. [self.bottomV mas_makeConstraints:^(MASConstraintMaker *make) {
  77. make.top.equalTo(self.customNavBar.mas_bottom).offset(10);
  78. make.left.right.equalTo(self.view);
  79. make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
  80. }];
  81. [self.leftTableV mas_makeConstraints:^(MASConstraintMaker *make) {
  82. make.width.equalTo(@130);
  83. make.left.top.bottom.equalTo(self.bottomV);
  84. }];
  85. [self.rightTableV mas_makeConstraints:^(MASConstraintMaker *make) {
  86. make.top.bottom.right.equalTo(self.bottomV);
  87. make.left.equalTo(self.leftTableV.mas_right);
  88. }];
  89. }
  90. // MARK: - actions
  91. - (void)toResult:(NSString *)key type:(NSString *)type keyWord:(NSString *)word {
  92. NSDictionary *para = @{
  93. @"type":type, //String
  94. @"title":key,//String
  95. @"searchKey":word,//String
  96. };
  97. UIViewController *vc = [CTMediator.sharedInstance getProductListVc:para];
  98. [self.navigationController pushViewController:vc animated:true];
  99. }
  100. // MARK: - subvs
  101. - (KWSearchMainTypeTableView *)leftTableV {
  102. if (!_leftTableV) {
  103. KWSearchMainTypeTableView *leftTab = [[KWSearchMainTypeTableView alloc] initWithFrame:CGRectMake(0, 10, 180, self.view.bounds.size.height) style:UITableViewStylePlain];
  104. leftTab.backgroundColor = _F8F8F8;
  105. @weakify(self);
  106. _leftTableV = leftTab;
  107. leftTab.callBack = ^{
  108. NSInteger selectIndex = weak_self.leftTableV.selectIndex;
  109. if (selectIndex >= weak_self.leftTableV.arr.count) {
  110. weak_self.rightTableV.arr = weak_self.leftTableV.moneyType.children_data;
  111. [weak_self.rightTableV reloadData];
  112. return;
  113. }
  114. KWMainTypeModel *m = weak_self.leftTableV.arr[selectIndex];
  115. if (m.children_data.count == 0) {
  116. [self toResult:m.title type:m.Id keyWord:@""];
  117. } else {
  118. weak_self.rightTableV.arr = m.children_data;
  119. [weak_self.rightTableV reloadData];
  120. }
  121. };
  122. }
  123. return _leftTableV;
  124. }
  125. - (KWSearchSubTypeTableView *)rightTableV {
  126. if(!_rightTableV) {
  127. KWSearchSubTypeTableView *tab = [[KWSearchSubTypeTableView alloc] initWithFrame:CGRectMake(0, 10, 180, self.view.bounds.size.height) style:UITableViewStylePlain];
  128. tab.backgroundColor = _F8F8F8;
  129. _rightTableV = tab;
  130. @weakify(self);
  131. [_rightTableV setCallBack:^(NSIndexPath * _Nonnull indexP) {
  132. KWSearchSubTypeModel *m = weak_self.rightTableV.arr[indexP.section].children_data[indexP.item];
  133. [weak_self toResult:m.title type:m.Id keyWord:@""];
  134. }];
  135. [_rightTableV setCallBackSection:^(NSInteger index) {
  136. KWSubTypeSectionModel *m = weak_self.rightTableV.arr[index];
  137. if (m.isMoneyType) {
  138. [weak_self requestSetCurrency:m.title];
  139. return;
  140. }
  141. [weak_self toResult:m.title type:m.Id keyWord:@""];
  142. }];
  143. }
  144. return _rightTableV;
  145. }
  146. -(UIView *)bottomV {
  147. if (!_bottomV) {
  148. UIView *v = [[UIView alloc] init];
  149. v.backgroundColor = [UIColor colorWithHexString:@"#ffffff"];
  150. _bottomV = v;
  151. }
  152. return _bottomV;
  153. }
  154. @end