RQVipCenterItemView.m 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. //
  2. // RQVipCenterItemView.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2022/11/15.
  6. // Copyright © 2022 JCZ. All rights reserved.
  7. //
  8. #import "RQVipCenterItemView.h"
  9. @implementation RQVipCenterItemView
  10. + (instancetype)rqVipCenterItemView {
  11. return [super rq_viewFromXib];
  12. }
  13. - (void)awakeFromNib {
  14. @weakify(self)
  15. [super awakeFromNib];
  16. [self.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  17. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
  18. graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
  19. graColor.type = QQGradualChangeTypeLeftToRight;
  20. } size:CGSizeMake(RQ_FIT_HORIZONTAL(52.f), RQ_FIT_HORIZONTAL(20.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(20.f) / 2.f, 0, RQ_FIT_HORIZONTAL(20.f) / 2.f)] forState:UIControlStateNormal];
  21. [self.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  22. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FFA316"];
  23. graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFC610"];
  24. graColor.type = QQGradualChangeTypeLeftToRight;
  25. } size:CGSizeMake(RQ_FIT_HORIZONTAL(52.f), RQ_FIT_HORIZONTAL(20.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(20.f) / 2.f, 0, RQ_FIT_HORIZONTAL(20.f) / 2.f)] forState:UIControlStateSelected];
  26. [self.rightVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  27. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
  28. graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
  29. graColor.type = QQGradualChangeTypeLeftToRight;
  30. } size:CGSizeMake(RQ_FIT_HORIZONTAL(53.f), RQ_FIT_HORIZONTAL(18.f)) cornerRadius:QQRadiusMake(0, 10.f, 5.f, 0.f)] forState:UIControlStateNormal];
  31. [self.rightVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  32. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#DBA05C"];
  33. graColor.toColor = [UIColor qmui_colorWithHexString:@"#F3C085"];
  34. graColor.type = QQGradualChangeTypeLeftToRight;
  35. } size:CGSizeMake(RQ_FIT_HORIZONTAL(53.f), RQ_FIT_HORIZONTAL(18.f)) cornerRadius:QQRadiusMake(0, 10.f, 5.f, 0.f)] forState:UIControlStateSelected];
  36. [self.dateVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  37. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#DBA05C"];
  38. graColor.toColor = [UIColor qmui_colorWithHexString:@"#F3C085"];
  39. graColor.type = QQGradualChangeTypeLeftToRight;
  40. } size:CGSizeMake(RQ_FIT_HORIZONTAL(142.f), RQ_FIT_HORIZONTAL(20.f)) cornerRadius:QQRadiusMake(RQ_FIT_HORIZONTAL(20.f) / 2.f, 0.f, RQ_FIT_HORIZONTAL(20.f) / 2.f, 0.f)] forState:UIControlStateNormal];
  41. [self.continueBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  42. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#EBF1F9"];
  43. graColor.toColor = [UIColor qmui_colorWithHexString:@"#9AC2FF"];
  44. graColor.type = QQGradualChangeTypeLeftToRight;
  45. } size:CGSizeMake(RQ_FIT_HORIZONTAL(58.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  46. [[[RACObserve(RQ_VIP_Module, videoVipModel) deliverOnMainThread] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(RQVideoVipModel * videoVipModel) {
  47. @strongify(self)
  48. switch (self.homePageSubjectType) {
  49. case RQHomePageSubjectType_SubjectOne: {
  50. self.leftVipBtn.selected = (videoVipModel.subject1Int == 1);
  51. self.leftIconVipBtn.selected = (videoVipModel.subject1Int == 1);
  52. self.rightVipBtn.selected = (videoVipModel.subject1Int == 1);
  53. self.openVipBtn.hidden = (videoVipModel.subject1Int == 1);
  54. self.dateVipBtn.hidden = (videoVipModel.subject1Int == 0);
  55. self.continueBtn.hidden = (videoVipModel.subject1Int == 0);
  56. [self.dateVipBtn setTitleNormal:[NSString stringWithFormat:@"%@到期",videoVipModel.subject1]];
  57. break;
  58. }
  59. case RQHomePageSubjectType_SubjectTwo: {
  60. self.leftVipBtn.selected = (videoVipModel.subject2Int == 1);
  61. self.leftIconVipBtn.selected = (videoVipModel.subject2Int == 1);
  62. self.rightVipBtn.selected = (videoVipModel.subject2Int == 1);
  63. self.openVipBtn.hidden = (videoVipModel.subject2Int == 1);
  64. self.dateVipBtn.hidden = (videoVipModel.subject2Int == 0);
  65. self.continueBtn.hidden = (videoVipModel.subject2Int == 0);
  66. [self.dateVipBtn setTitleNormal:[NSString stringWithFormat:@"%@到期",videoVipModel.subject2]];
  67. break;
  68. }
  69. case RQHomePageSubjectType_SubjectThree: {
  70. self.leftVipBtn.selected = (videoVipModel.subject3Int == 1);
  71. self.leftIconVipBtn.selected = (videoVipModel.subject3Int == 1);
  72. self.rightVipBtn.selected = (videoVipModel.subject3Int == 1);
  73. self.openVipBtn.hidden = (videoVipModel.subject3Int == 1);
  74. self.dateVipBtn.hidden = (videoVipModel.subject3Int == 0);
  75. self.continueBtn.hidden = (videoVipModel.subject3Int == 0);
  76. [self.dateVipBtn setTitleNormal:[NSString stringWithFormat:@"%@到期",videoVipModel.subject3]];
  77. break;
  78. }
  79. case RQHomePageSubjectType_SubjectFour: {
  80. self.leftVipBtn.selected = (videoVipModel.subject4Int == 1);
  81. self.leftIconVipBtn.selected = (videoVipModel.subject4Int == 1);
  82. self.rightVipBtn.selected = (videoVipModel.subject4Int == 1);
  83. self.openVipBtn.hidden = (videoVipModel.subject4Int == 1);
  84. self.dateVipBtn.hidden = (videoVipModel.subject4Int == 0);
  85. self.continueBtn.hidden = (videoVipModel.subject4Int == 0);
  86. [self.dateVipBtn setTitleNormal:[NSString stringWithFormat:@"%@到期",videoVipModel.subject4]];
  87. break;
  88. }
  89. default:
  90. break;
  91. }
  92. }];
  93. }
  94. - (void)setHomePageSubjectType:(RQHomePageSubjectType)homePageSubjectType {
  95. _homePageSubjectType = homePageSubjectType;
  96. NSArray *canUseTypeModels = [self.typeModels.rac_sequence filter:^BOOL(RQTypeModel *typeModel) {
  97. if (!RQObjectIsNil(RQ_VIP_Module.activationModel) && RQ_VIP_Module.activationModel.isShare) {
  98. if (RQ_VIP_Module.activationModel.isActive == 1) {
  99. return ![typeModel.status isEqualToString:@"1"] && ((typeModel.homePageSubjectType == self.homePageSubjectType || typeModel.homePageSubjectType == RQHomePageSubjectType_SubjectAll) && (![typeModel.dictLabel containsString:@"计时"]));
  100. } else {
  101. return ![typeModel.status isEqualToString:@"1"] && (typeModel.homePageSubjectType == self.homePageSubjectType || typeModel.homePageSubjectType == RQHomePageSubjectType_SubjectAll) && ([typeModel.dictLabel containsString:@"含计时"]);
  102. }
  103. } else {
  104. return ![typeModel.status isEqualToString:@"1"] && (typeModel.homePageSubjectType == self.homePageSubjectType || typeModel.homePageSubjectType == RQHomePageSubjectType_SubjectAll) && (![typeModel.dictLabel containsString:@"计时"]);
  105. }
  106. }].array;
  107. if (canUseTypeModels.count > 0) {
  108. RQTypeModel *canUseTypeModel = canUseTypeModels.firstObject;
  109. NSString *nowPriceStr;
  110. if (RQStringIsNotEmpty(canUseTypeModel.dictValue) && [canUseTypeModel.dictValue containsString:@","]) {
  111. nowPriceStr = [canUseTypeModel.dictValue componentsSeparatedByString:@","].firstObject;
  112. } else {
  113. nowPriceStr = canUseTypeModel.dictValue;
  114. }
  115. NSString *nowPrice = [NSString stringWithFormat:@"¥%@",nowPriceStr];
  116. NSString *year = [NSString stringWithFormat:[canUseTypeModel.dictLabel isEqualToString:@"理论实操计时"]? @"/长期" : @"/1年"];
  117. NSString *price = [NSString stringWithFormat:@"%@%@",nowPrice,year];
  118. [self.openVipBtn setTitleNormal:[NSString stringWithFormat:@"%@%@",price,@" 立即开通"]];
  119. } else {
  120. [self.openVipBtn setTitleNormal:@"立即开通"];
  121. }
  122. switch (homePageSubjectType) {
  123. case RQHomePageSubjectType_SubjectOne: {
  124. self.bgImageView.image = RQImageNamed(@"科目一会员中心");
  125. [self.leftVipBtn setImage:RQImageNamed(@"科一银") forState:UIControlStateNormal];
  126. [self.leftVipBtn setImage:RQImageNamed(@"科一金") forState:UIControlStateSelected];
  127. [self.arrowImageView setImage:RQImageNamed(@"三角形1")];
  128. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  129. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#EBF9F5"];
  130. graColor.toColor = [UIColor qmui_colorWithHexString:@"#9AFFE4"];
  131. graColor.type = QQGradualChangeTypeLeftToRight;
  132. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  133. break;
  134. }
  135. case RQHomePageSubjectType_SubjectTwo: {
  136. self.bgImageView.image = RQImageNamed(@"科目二会员中心");
  137. [self.leftVipBtn setImage:RQImageNamed(@"科二银") forState:UIControlStateNormal];
  138. [self.leftVipBtn setImage:RQImageNamed(@"科二金") forState:UIControlStateSelected];
  139. [self.arrowImageView setImage:RQImageNamed(@"三角形2")];
  140. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  141. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#EBF1F9"];
  142. graColor.toColor = [UIColor qmui_colorWithHexString:@"#9AC2FF"];
  143. graColor.type = QQGradualChangeTypeLeftToRight;
  144. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  145. break;
  146. }
  147. case RQHomePageSubjectType_SubjectThree: {
  148. self.bgImageView.image = RQImageNamed(@"科目三会员中心");
  149. [self.leftVipBtn setImage:RQImageNamed(@"科三银") forState:UIControlStateNormal];
  150. [self.leftVipBtn setImage:RQImageNamed(@"科三金") forState:UIControlStateSelected];
  151. [self.arrowImageView setImage:RQImageNamed(@"三角形3")];
  152. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  153. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#F9F4EB"];
  154. graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFDA9A"];
  155. graColor.type = QQGradualChangeTypeLeftToRight;
  156. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  157. break;
  158. }
  159. case RQHomePageSubjectType_SubjectFour: {
  160. self.bgImageView.image = RQImageNamed(@"科目四会员中心");
  161. [self.leftVipBtn setImage:RQImageNamed(@"科四银") forState:UIControlStateNormal];
  162. [self.leftVipBtn setImage:RQImageNamed(@"科四金") forState:UIControlStateSelected];
  163. [self.arrowImageView setImage:RQImageNamed(@"三角形4")];
  164. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  165. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#F9EBEB"];
  166. graColor.toColor = [UIColor qmui_colorWithHexString:@"#FF9A9D"];
  167. graColor.type = QQGradualChangeTypeLeftToRight;
  168. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  169. break;
  170. }
  171. default:
  172. break;
  173. }
  174. }
  175. @end