RQVipCenterItemView.m 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  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. case RQHomePageSubjectType_SubjectOne_LI-1: {
  90. self.leftVipBtn.selected = (videoVipModel.spSubject1Int == 1);
  91. self.leftIconVipBtn.selected = (videoVipModel.spSubject1Int == 1);
  92. self.rightVipBtn.selected = (videoVipModel.spSubject1Int == 1);
  93. self.openVipBtn.hidden = (videoVipModel.spSubject1Int == 1);
  94. self.dateVipBtn.hidden = (videoVipModel.spSubject1Int == 0);
  95. self.continueBtn.hidden = (videoVipModel.spSubject1Int == 0);
  96. [self.dateVipBtn setTitleNormal:[NSString stringWithFormat:@"%@到期",videoVipModel.spSubject1]];
  97. break;
  98. }
  99. case RQHomePageSubjectType_SubjectFour_LI-1: {
  100. self.leftVipBtn.selected = (videoVipModel.spSubject4Int == 1);
  101. self.leftIconVipBtn.selected = (videoVipModel.spSubject4Int == 1);
  102. self.rightVipBtn.selected = (videoVipModel.spSubject4Int == 1);
  103. self.openVipBtn.hidden = (videoVipModel.spSubject4Int == 1);
  104. self.dateVipBtn.hidden = (videoVipModel.spSubject4Int == 0);
  105. self.continueBtn.hidden = (videoVipModel.spSubject4Int == 0);
  106. [self.dateVipBtn setTitleNormal:[NSString stringWithFormat:@"%@到期",videoVipModel.spSubject4]];
  107. break;
  108. }
  109. default:
  110. break;
  111. }
  112. }];
  113. }
  114. - (void)setHomePageSubjectType:(RQHomePageSubjectType)homePageSubjectType {
  115. _homePageSubjectType = homePageSubjectType;
  116. NSArray *canUseTypeModels = [self.typeModels.rac_sequence filter:^BOOL(RQTypeModel *typeModel) {
  117. if (!RQObjectIsNil(RQ_VIP_Module.activationModel) && RQ_VIP_Module.activationModel.isShare) {
  118. if (RQ_VIP_Module.activationModel.isActive == 1) {
  119. return ![typeModel.status isEqualToString:@"1"] && ((typeModel.homePageSubjectType == self.homePageSubjectType || typeModel.homePageSubjectType == RQHomePageSubjectType_SubjectAll) && (![typeModel.dictLabel containsString:@"计时"]));
  120. } else {
  121. return ![typeModel.status isEqualToString:@"1"] && (typeModel.homePageSubjectType == self.homePageSubjectType || typeModel.homePageSubjectType == RQHomePageSubjectType_SubjectAll) && ([typeModel.dictLabel containsString:@"含计时"]);
  122. }
  123. } else {
  124. return ![typeModel.status isEqualToString:@"1"] && (typeModel.homePageSubjectType == self.homePageSubjectType || typeModel.homePageSubjectType == RQHomePageSubjectType_SubjectAll) && (![typeModel.dictLabel containsString:@"计时"]);
  125. }
  126. }].array;
  127. if (canUseTypeModels.count > 0) {
  128. RQTypeModel *canUseTypeModel = canUseTypeModels.firstObject;
  129. NSString *nowPriceStr;
  130. if (RQStringIsNotEmpty(canUseTypeModel.dictValue) && [canUseTypeModel.dictValue containsString:@","]) {
  131. nowPriceStr = [canUseTypeModel.dictValue componentsSeparatedByString:@","].firstObject;
  132. } else {
  133. nowPriceStr = canUseTypeModel.dictValue;
  134. }
  135. NSString *nowPrice = [NSString stringWithFormat:@"¥%@",nowPriceStr];
  136. NSString *year = [NSString stringWithFormat:[canUseTypeModel.dictLabel isEqualToString:@"理论实操计时"]? @"/长期" : @"/1年"];
  137. NSString *price = [NSString stringWithFormat:@"%@%@",nowPrice,year];
  138. [self.openVipBtn setTitleNormal:[NSString stringWithFormat:@"%@%@",price,@" 立即开通"]];
  139. } else {
  140. [self.openVipBtn setTitleNormal:@"立即开通"];
  141. }
  142. switch (homePageSubjectType) {
  143. case RQHomePageSubjectType_SubjectOne: {
  144. self.bgImageView.image = RQImageNamed(@"科目一会员中心");
  145. [self.leftVipBtn setImage:RQImageNamed(@"科一银") forState:UIControlStateNormal];
  146. [self.leftVipBtn setImage:RQImageNamed(@"科一金") forState:UIControlStateSelected];
  147. [self.arrowImageView setImage:RQImageNamed(@"三角形1")];
  148. [self.jxvipImageView setImage:RQImageNamed(@"极享VIP")];
  149. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  150. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#EBF9F5"];
  151. graColor.toColor = [UIColor qmui_colorWithHexString:@"#9AFFE4"];
  152. graColor.type = QQGradualChangeTypeLeftToRight;
  153. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  154. break;
  155. }
  156. case RQHomePageSubjectType_SubjectTwo: {
  157. self.bgImageView.image = RQImageNamed(@"科目二会员中心");
  158. [self.leftVipBtn setImage:RQImageNamed(@"科二银") forState:UIControlStateNormal];
  159. [self.leftVipBtn setImage:RQImageNamed(@"科二金") forState:UIControlStateSelected];
  160. [self.arrowImageView setImage:RQImageNamed(@"三角形2")];
  161. [self.jxvipImageView setImage:RQImageNamed(@"极享VIP")];
  162. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  163. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#EBF1F9"];
  164. graColor.toColor = [UIColor qmui_colorWithHexString:@"#9AC2FF"];
  165. graColor.type = QQGradualChangeTypeLeftToRight;
  166. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  167. break;
  168. }
  169. case RQHomePageSubjectType_SubjectThree: {
  170. self.bgImageView.image = RQImageNamed(@"科目三会员中心");
  171. [self.leftVipBtn setImage:RQImageNamed(@"科三银") forState:UIControlStateNormal];
  172. [self.leftVipBtn setImage:RQImageNamed(@"科三金") forState:UIControlStateSelected];
  173. [self.arrowImageView setImage:RQImageNamed(@"三角形3")];
  174. [self.jxvipImageView setImage:RQImageNamed(@"极享VIP")];
  175. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  176. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#F9F4EB"];
  177. graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFDA9A"];
  178. graColor.type = QQGradualChangeTypeLeftToRight;
  179. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  180. break;
  181. }
  182. case RQHomePageSubjectType_SubjectFour: {
  183. self.bgImageView.image = RQImageNamed(@"科目四会员中心");
  184. [self.leftVipBtn setImage:RQImageNamed(@"科四银") forState:UIControlStateNormal];
  185. [self.leftVipBtn setImage:RQImageNamed(@"科四金") forState:UIControlStateSelected];
  186. [self.arrowImageView setImage:RQImageNamed(@"三角形4")];
  187. [self.jxvipImageView setImage:RQImageNamed(@"极享VIP")];
  188. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  189. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#F9EBEB"];
  190. graColor.toColor = [UIColor qmui_colorWithHexString:@"#FF9A9D"];
  191. graColor.type = QQGradualChangeTypeLeftToRight;
  192. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  193. break;
  194. }
  195. case RQHomePageSubjectType_SubjectOne_LI-1: {
  196. self.bgImageView.image = RQImageNamed(@"1科一特训包");
  197. [self.leftVipBtn setImage:RQImageNamed(@"科一银") forState:UIControlStateNormal];
  198. [self.leftVipBtn setImage:RQImageNamed(@"科一金") forState:UIControlStateSelected];
  199. [self.arrowImageView setImage:RQImageNamed(@"三角形5")];
  200. [self.jxvipImageView setImage:RQImageNamed(@"特训包")];
  201. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  202. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#F9EBEB"];
  203. graColor.toColor = [UIColor qmui_colorWithHexString:@"#FF9A9D"];
  204. graColor.type = QQGradualChangeTypeLeftToRight;
  205. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  206. break;
  207. }
  208. case RQHomePageSubjectType_SubjectFour_LI-1: {
  209. self.bgImageView.image = RQImageNamed(@"1科四特训包");
  210. [self.leftVipBtn setImage:RQImageNamed(@"科四银") forState:UIControlStateNormal];
  211. [self.leftVipBtn setImage:RQImageNamed(@"科四金") forState:UIControlStateSelected];
  212. [self.arrowImageView setImage:RQImageNamed(@"三角形6")];
  213. [self.jxvipImageView setImage:RQImageNamed(@"特训包")];
  214. [self.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  215. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#F9EBEB"];
  216. graColor.toColor = [UIColor qmui_colorWithHexString:@"#FF9A9D"];
  217. graColor.type = QQGradualChangeTypeLeftToRight;
  218. } size:CGSizeMake(RQ_FIT_HORIZONTAL(137.f), RQ_FIT_HORIZONTAL(25.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(25.f) / 2.f)] forState:UIControlStateNormal];
  219. break;
  220. }
  221. default:
  222. break;
  223. }
  224. }
  225. @end