YOUPAILZVipVC.m 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. //
  2. // YOUPAILZVipVC.m
  3. // VQU
  4. //
  5. // Created by CY on 2021/8/20.
  6. // Copyright © 2021 MS. All rights reserved.
  7. //
  8. #import "YOUPAILZVipVC.h"
  9. #import "YOUPAILZVipCategoryModel.h"
  10. #import "JXCategoryView.h"
  11. #import "YOUPAILZVipDetailsVC.h"
  12. #import "YOUPAILZVipSetterVC.h"
  13. @interface YOUPAILZVipVC ()<JXCategoryViewDelegate,JXCategoryListContainerViewDelegate>
  14. @property (nonatomic, weak) JXCategoryListContainerView *youpaippagerView;
  15. @property (nonatomic, weak) JXCategoryTitleView *youpaipcategoryView;
  16. @property (nonatomic,strong) NSArray <YOUPAILZVipCategoryModel *> *youpaipvips;
  17. @property(nonatomic,strong)UIView *youpaipredView;
  18. @end
  19. @implementation YOUPAILZVipVC
  20. -(void)viewWillAppear:(BOOL)animated{
  21. [super viewWillAppear:animated];
  22. self.navigationController.navigationBarHidden = YES;
  23. [self youpaifrequestVipInfo];
  24. }
  25. - (void)viewWillDisappear:(BOOL)animated{
  26. [super viewWillDisappear:animated];
  27. self.navigationController.navigationBarHidden = NO;
  28. }
  29. - (UIStatusBarStyle)preferredStatusBarStyle{
  30. return UIStatusBarStyleLightContent;
  31. }
  32. - (void)viewDidLoad {
  33. [super viewDidLoad];
  34. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(youpaifchangeRedDotStatus:) name:@"changeRedDotStatus" object:nil];
  35. [self youpaifloadNavView];
  36. [self youpaifrequestVipListData];
  37. }
  38. -(void)youpaifchangeRedDotStatus:(NSNotification*)notic{
  39. NSLog(@"%@",notic.userInfo);
  40. NSDictionary *dict = notic.userInfo;
  41. NSString *status = [NSString stringWithFormat:@"%@",dict[@"redDot"]];
  42. if ([status isEqualToString:@"1"]) {
  43. self.youpaipredView.hidden = NO;
  44. }else{
  45. self.youpaipredView.hidden = YES;
  46. }
  47. }
  48. -(void)dealloc{
  49. [[NSNotificationCenter defaultCenter]removeObserver:self];
  50. }
  51. -(void)youpaifloadNavView{
  52. UIView *navView = [UIView new];
  53. [self.view addSubview:navView];
  54. [navView mas_makeConstraints:^(MASConstraintMaker *make) {
  55. make.left.mas_equalTo(0);
  56. make.right.mas_equalTo(0);
  57. make.top.mas_equalTo(0);
  58. make.height.mas_equalTo(NavBarHeight);
  59. }];
  60. navView.backgroundColor = LCBkgColor;
  61. //返回
  62. UIButton *cancelBtn = [UIButton new];
  63. [navView addSubview:cancelBtn ];
  64. [cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  65. make.left.mas_equalTo(10);
  66. make.top.mas_equalTo(StatusBarHeight);
  67. make.size.mas_equalTo(CGSizeMake(40, 40));
  68. }];
  69. [cancelBtn setImage:[UIImage imageNamed:@"vqu_images_D_cancel"] forState:UIControlStateNormal];
  70. //title
  71. UILabel *titleLabel = [UILabel new];
  72. [navView addSubview:titleLabel];
  73. [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  74. make.centerY.mas_equalTo(cancelBtn);
  75. make.centerX.mas_equalTo(0);
  76. }];
  77. titleLabel.text = @"贵族中心";
  78. titleLabel.font = LCBoldFont(17);
  79. titleLabel.textColor = [UIColor whiteColor];
  80. //设置
  81. UIButton *setBtn = [UIButton new];
  82. [navView addSubview:setBtn ];
  83. [setBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  84. make.right.mas_equalTo(-14);
  85. make.centerY.mas_equalTo(titleLabel);
  86. make.size.mas_equalTo(CGSizeMake(40, 20));
  87. }];
  88. [setBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  89. [setBtn setTitle:@"设置" forState:UIControlStateNormal];
  90. setBtn.titleLabel.font = [UIFont systemFontOfSize:14];
  91. //未读红点
  92. UIView *redView = [UIView new];
  93. [navView addSubview:redView];
  94. self.youpaipredView = redView;
  95. [redView mas_makeConstraints:^(MASConstraintMaker *make) {
  96. make.left.mas_equalTo(setBtn.mas_right).offset(0);
  97. make.bottom.mas_equalTo(setBtn.mas_top).offset(-4);
  98. make.size.mas_equalTo(CGSizeMake(4, 4));
  99. }];
  100. redView.layer.cornerRadius = 2;
  101. redView.layer.masksToBounds = YES;
  102. redView.backgroundColor = LCRedColor;
  103. redView.hidden = YES;
  104. //事件
  105. [cancelBtn addTarget: self action:@selector(youpaifcancelButtonClick) forControlEvents:UIControlEventTouchUpInside];
  106. [setBtn addTarget: self action:@selector(youpaifvipSetterClick) forControlEvents:UIControlEventTouchUpInside];
  107. }
  108. -(void)youpaifcancelButtonClick{
  109. [self.navigationController popViewControllerAnimated:YES];
  110. }
  111. - (void)youpaifinitUI{
  112. // self.navigationItem.rightBarButtonItem = [UIBarButtonItem itemWithTarget:self action:@selector(youpaifvipSetterClick) title:@"设置" font:LCFont15 titleColor:[UIColor whiteColor] highlightedColor:[UIColor whiteColor] titleEdgeInsets:UIEdgeInsetsZero];
  113. JXCategoryTitleView *categoryView = [[JXCategoryTitleView alloc] init];
  114. NSMutableArray <NSString *>*titles = [NSMutableArray array];
  115. NSInteger index = 0;
  116. for (YOUPAILZVipCategoryModel *model in self.youpaipvips) {
  117. [titles addObject:model.youpaipname];
  118. if([model.youpaipid isEqual:[NSString stringWithFormat:@"%@",@([LCSaveModel getUserModel].youpaipuserinfo.youpaipvip)]]){
  119. index = [self.youpaipvips indexOfObject:model];
  120. }
  121. }
  122. categoryView.backgroundColor = LCBkgColor;
  123. categoryView.titles = titles.copy;
  124. categoryView.delegate = self;
  125. categoryView.titleSelectedColor = HexColorFromRGB(0xFDCC88);
  126. categoryView.titleColor = [[UIColor whiteColor] colorWithAlphaComponent:0.65f];
  127. categoryView.titleColorGradientEnabled = YES;
  128. categoryView.titleFont = LCFont(15.0f);
  129. categoryView.titleSelectedFont = LCBoldFont(15.0f);
  130. categoryView.defaultSelectedIndex = index;
  131. categoryView.cellWidth = JXCategoryViewAutomaticDimension;
  132. categoryView.cellSpacing = ScaleSize(20.0f);
  133. categoryView.averageCellSpacingEnabled = YES;
  134. [self.view addSubview:categoryView];
  135. self.youpaipcategoryView = categoryView;
  136. [categoryView mas_makeConstraints:^(MASConstraintMaker *make) {
  137. make.left.offset(0.0f);
  138. make.top.equalTo(NavBarHeight);
  139. make.right.offset(-0.0f);
  140. make.height.offset(40.0f);
  141. }];
  142. JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
  143. lineView.verticalMargin = 4.0f;
  144. lineView.indicatorHeight = 2.0f;
  145. lineView.indicatorWidth = 8;
  146. lineView.indicatorColor = HexColorFromRGB(0xFDCC88);
  147. lineView.indicatorCornerRadius = 1.0f;
  148. categoryView.indicators = @[lineView];
  149. JXCategoryListContainerView *pagerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_CollectionView delegate:self];
  150. [pagerView setDefaultSelectedIndex:index];
  151. pagerView.listCellBackgroundColor = LCBkgColor;
  152. [self.view addSubview:pagerView];
  153. self.youpaippagerView = pagerView;
  154. categoryView.listContainer = pagerView;
  155. [pagerView mas_makeConstraints:^(MASConstraintMaker *make) {
  156. make.left.offset(0.0f);
  157. make.right.offset(0.0f);
  158. make.top.equalTo(categoryView.mas_bottom);
  159. make.bottom.offset(0.0f);
  160. }];
  161. }
  162. - (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView{
  163. return self.youpaipvips.count;
  164. }
  165. - (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index{
  166. YOUPAILZVipDetailsVC *vc = [[YOUPAILZVipDetailsVC alloc] init];
  167. vc.youpaipvipId = self.youpaipvips[index].youpaipid;
  168. return vc;
  169. }
  170. - (void)youpaifvipSetterClick{
  171. YOUPAILZVipSetterVC *setterVC = [[YOUPAILZVipSetterVC alloc] init];
  172. [self.navigationController pushViewController:setterVC animated:YES];
  173. }
  174. - (void)youpaifrequestVipListData{
  175. @weakify(self);
  176. [LCHttpHelper requestWithURLString:VipCategoryList parameters:@{} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  177. @strongify(self);
  178. NSDictionary* dict = (NSDictionary*)responseObject;
  179. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  180. if (code == 0) {//成功
  181. self.youpaipvips = [YOUPAILZVipCategoryModel mj_objectArrayWithKeyValuesArray:dict[@"data"]];
  182. [self youpaifinitUI];
  183. }
  184. } failure:^(NSError *error) {
  185. }];
  186. }
  187. - (void)youpaifrequestVipInfo{
  188. [LCHttpHelper requestWithURLString:VipDetails parameters:nil needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  189. NSDictionary* dict = (NSDictionary*)responseObject;
  190. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  191. if (code == 0) {//成功
  192. NSString *status = dict[@"data"][@"red_dot"][@"is_watch_setting"];
  193. [[NSNotificationCenter defaultCenter]postNotificationName:@"changeRedDotStatus" object:nil userInfo:@{@"redDot":status}];
  194. }
  195. } failure:^(NSError *error) {
  196. }];
  197. }
  198. @end