ASCategoryViewController.m 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  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. //
  51. // NSDictionary *param = @{@"currency_code":currency};
  52. // [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  53. // K_WEAK_SELF;
  54. // [self.vm setAllCurrencyToService:param complete:^(BOOL isSuc, NSString * _Nonnull msg) {
  55. // K_STRONG_SELF;
  56. // [MBProgressHUD hideHUDForView:self.view animated:YES];
  57. // if (isSuc) {
  58. // [self.view makeToast:@"Success" duration:2 position:CSToastPositionCenter];
  59. //
  60. // //更新header币种
  61. // [ASNetTools.shared updateEngine];
  62. //
  63. // //切换币种之后通知首页数据刷新
  64. // [NSNotificationCenter.defaultCenter postNotificationName:HomeDataUpdateByCurrency object:nil];
  65. //
  66. // [ASCurrencyManager.shared setSelectCurrency:currency];
  67. // [self.rightTableV reloadData];
  68. // } else {
  69. // if (AS_String_valid(msg)) {
  70. // [self.view makeToast:msg duration:2 position:CSToastPositionCenter];
  71. // } else {
  72. // [self.view makeToast:@"failed" duration:2 position:CSToastPositionCenter];
  73. // }
  74. // }
  75. // }];
  76. //}
  77. - (void)loadSubVs {
  78. self.statusBgV.backgroundColor = _E0FFF5;
  79. self.customNavBar.backgroundColor = _E0FFF5;
  80. self.titleStr = @"Category";
  81. [self.view addSubview:self.bottomV];
  82. [self.bottomV addSubview:self.leftTableV];
  83. [self.bottomV addSubview:self.rightTableV];
  84. [self.bottomV mas_makeConstraints:^(MASConstraintMaker *make) {
  85. make.top.equalTo(self.customNavBar.mas_bottom).offset(10);
  86. make.left.right.equalTo(self.view);
  87. make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
  88. }];
  89. [self.leftTableV mas_makeConstraints:^(MASConstraintMaker *make) {
  90. make.width.equalTo(@130);
  91. make.left.top.bottom.equalTo(self.bottomV);
  92. }];
  93. [self.rightTableV mas_makeConstraints:^(MASConstraintMaker *make) {
  94. make.top.bottom.right.equalTo(self.bottomV);
  95. make.left.equalTo(self.leftTableV.mas_right);
  96. }];
  97. }
  98. // MARK: - actions
  99. - (void)toResult:(NSString *)key type:(NSString *)type keyWord:(NSString *)word {
  100. NSDictionary *para = @{
  101. @"type":AS_String_NotNull(type), //String
  102. @"title":AS_String_NotNull(key),//String
  103. @"searchKey":AS_String_NotNull(word),//String
  104. };
  105. UIViewController *vc = [CTMediator.sharedInstance getProductListVc:para];
  106. [self.navigationController pushViewController:vc animated:true];
  107. }
  108. // MARK: - subvs
  109. - (KWSearchMainTypeTableView *)leftTableV {
  110. if (!_leftTableV) {
  111. KWSearchMainTypeTableView *leftTab = [[KWSearchMainTypeTableView alloc] initWithFrame:CGRectMake(0, 10, 180, self.view.bounds.size.height) style:UITableViewStylePlain];
  112. leftTab.backgroundColor = _F8F8F8;
  113. @weakify(self);
  114. _leftTableV = leftTab;
  115. leftTab.callBack = ^{
  116. NSInteger selectIndex = weak_self.leftTableV.selectIndex;
  117. if (selectIndex >= weak_self.leftTableV.arr.count) {
  118. weak_self.rightTableV.arr = weak_self.leftTableV.moneyType.children_data;
  119. [weak_self.rightTableV reloadData];
  120. return;
  121. }
  122. KWMainTypeModel *m = weak_self.leftTableV.arr[selectIndex];
  123. if (m.children_data.count == 0) {
  124. [self toResult:m.title type:m.Id keyWord:@""];
  125. } else {
  126. weak_self.rightTableV.arr = m.children_data;
  127. [weak_self.rightTableV reloadData];
  128. }
  129. };
  130. }
  131. return _leftTableV;
  132. }
  133. - (KWSearchSubTypeTableView *)rightTableV {
  134. if(!_rightTableV) {
  135. KWSearchSubTypeTableView *tab = [[KWSearchSubTypeTableView alloc] initWithFrame:CGRectMake(0, 10, 180, self.view.bounds.size.height) style:UITableViewStylePlain];
  136. tab.backgroundColor = _F8F8F8;
  137. _rightTableV = tab;
  138. @weakify(self);
  139. [_rightTableV setCallBack:^(NSIndexPath * _Nonnull indexP) {
  140. KWSearchSubTypeModel *m = weak_self.rightTableV.arr[indexP.section].children_data[indexP.item];
  141. [weak_self toResult:m.title type:m.Id keyWord:@""];
  142. }];
  143. [_rightTableV setCallBackSection:^(NSInteger index) {
  144. KWSubTypeSectionModel *m = weak_self.rightTableV.arr[index];
  145. if (m.isMoneyType) {
  146. // [weak_self requestSetCurrency:m.title];
  147. // 0
  148. [ASCurrencyManager.shared setSelectCurrency:m.title];
  149. [weak_self.rightTableV reloadData];
  150. //1 更新header币种
  151. [ASNetTools.shared updateEngine];
  152. //2 切换币种之后通知首页数据刷新
  153. [NSNotificationCenter.defaultCenter postNotificationName:HomeDataUpdateByCurrency object:nil];
  154. return;
  155. }
  156. [weak_self toResult:m.title type:m.Id keyWord:@""];
  157. }];
  158. }
  159. return _rightTableV;
  160. }
  161. -(UIView *)bottomV {
  162. if (!_bottomV) {
  163. UIView *v = [[UIView alloc] init];
  164. v.backgroundColor = [UIColor colorWithHexString:@"#ffffff"];
  165. _bottomV = v;
  166. }
  167. return _bottomV;
  168. }
  169. @end