RQSpecialPractiseViewModel.m 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. //
  2. // RQSpecialPractiseViewModel.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2022/6/21.
  6. // Copyright © 2022 JCZ. All rights reserved.
  7. //
  8. #import "RQSpecialPractiseViewModel.h"
  9. @interface RQSpecialPractiseViewModel ()
  10. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group0;
  11. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group1;
  12. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group2;
  13. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group3;
  14. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group4;
  15. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group5;
  16. @property (nonatomic, readwrite, copy) NSArray *zeroArr;
  17. @property (nonatomic, readwrite, copy) NSArray *oneArr;
  18. @property (nonatomic, readwrite, copy) NSArray *twoArr;
  19. @property (nonatomic, readwrite, copy) NSArray *threeArr;
  20. @property (nonatomic, readwrite, copy) NSArray *fourArr;
  21. @property (nonatomic, readwrite, copy) NSArray *fiveArr;
  22. @property (nonatomic, readwrite, copy) NSArray *chapterArr;
  23. @property (nonatomic, readwrite, copy) NSArray *pointArr;
  24. @end
  25. @implementation RQSpecialPractiseViewModel
  26. #pragma mark - Public Method
  27. - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
  28. if (self = [super initWithServices:services params:params]) {
  29. }
  30. return self;
  31. }
  32. - (void)initialize {
  33. [super initialize];
  34. self.title = @"专项练习";
  35. ///配置数据
  36. [self rq_configureData];
  37. }
  38. #pragma mark - PrivateMethod
  39. - (void)rq_configureData {
  40. self.dataSource = @[self.group0, self.group1, self.group2, self.group3, self.group4, self.group5];
  41. }
  42. #pragma mark - LazyLoad
  43. - (RQCommonGroupViewModel *)group0 {
  44. if (!_group0) {
  45. _group0 = [RQCommonGroupViewModel groupViewModel];
  46. _group0.itemViewModels = self.zeroArr;
  47. }
  48. return _group0;
  49. }
  50. - (RQCommonGroupViewModel *)group1 {
  51. if (!_group1) {
  52. _group1 = [RQCommonGroupViewModel groupViewModel];
  53. [_group1 setCustomStyleWithRQCommonGroupModel:^(RQCommonGroupModel *groupModel) {
  54. groupModel.footerHeight = 10.f;
  55. }];
  56. _group1.itemViewModels = self.oneArr;
  57. }
  58. return _group1;
  59. }
  60. - (RQCommonGroupViewModel *)group2 {
  61. if (!_group2) {
  62. _group2 = [RQCommonGroupViewModel groupViewModel];
  63. [_group2 setCustomStyleWithRQCommonGroupModel:^(RQCommonGroupModel *groupModel) {
  64. groupModel.header = @"未做/已做";
  65. groupModel.headerHeight = 56.f;
  66. groupModel.headerBgColor = UIColor.whiteColor;
  67. groupModel.footerHeight = 10.f;
  68. }];
  69. _group2.itemViewModels = self.twoArr;
  70. }
  71. return _group2;
  72. }
  73. - (RQCommonGroupViewModel *)group3 {
  74. if (!_group3) {
  75. _group3 = [RQCommonGroupViewModel groupViewModel];
  76. [_group3 setCustomStyleWithRQCommonGroupModel:^(RQCommonGroupModel *groupModel) {
  77. groupModel.header = @"试题类型";
  78. groupModel.headerHeight = 56.f;
  79. groupModel.headerBgColor = UIColor.whiteColor;
  80. groupModel.footerHeight = 10.f;
  81. }];
  82. _group3.itemViewModels = self.threeArr;
  83. }
  84. return _group3;
  85. }
  86. - (RQCommonGroupViewModel *)group4 {
  87. if (!_group4) {
  88. _group4 = [RQCommonGroupViewModel groupViewModel];
  89. [_group4 setCustomStyleWithRQCommonGroupModel:^(RQCommonGroupModel *groupModel) {
  90. groupModel.header = @"内容类型";
  91. groupModel.headerHeight = 56.f;
  92. groupModel.headerBgColor = UIColor.whiteColor;
  93. groupModel.footerHeight = 10.f;
  94. }];
  95. _group4.itemViewModels = self.fourArr;
  96. }
  97. return _group4;
  98. }
  99. - (RQCommonGroupViewModel *)group5 {
  100. if (!_group5) {
  101. _group5 = [RQCommonGroupViewModel groupViewModel];
  102. [_group5 setCustomStyleWithRQCommonGroupModel:^(RQCommonGroupModel *groupModel) {
  103. groupModel.header = @"考点练习";
  104. groupModel.headerBgColor = UIColor.whiteColor;
  105. groupModel.headerHeight = 56.f;
  106. groupModel.footerHeight = 40.f;
  107. groupModel.footerBgColor = UIColor.whiteColor;
  108. }];
  109. _group5.itemViewModels = self.fiveArr;
  110. }
  111. return _group5;
  112. }
  113. - (NSArray *)zeroArr {
  114. //福州市-江苏-目前写死
  115. if ([RQ_USER_MANAGER.currentUser.city isEqualToString:@"3501"]) {
  116. NSInteger allCount = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Locality];
  117. return @[
  118. [[RQSpecialPracticeItemViewModel alloc] initWithTitleStr:@"本地练习" subTitleStr:[NSString qmui_stringWithNSInteger:allCount] iconImgStr:@"章节练习背景" itemCount:3.f],
  119. [[RQSpecialPracticeItemViewModel alloc] initWithTitleStr:@"章节练习" subTitleStr:[NSString qmui_stringWithNSInteger:self.chapterArr.count] iconImgStr:@"章节练习背景" itemCount:3.f],
  120. [[RQSpecialPracticeItemViewModel alloc] initWithTitleStr:@"考点练习" subTitleStr:[NSString qmui_stringWithNSInteger:self.pointArr.count] iconImgStr:@"考点练习背景" itemCount:3.f]
  121. ];
  122. }
  123. return @[
  124. [[RQSpecialPracticeItemViewModel alloc] initWithTitleStr:@"章节练习" subTitleStr:[NSString qmui_stringWithNSInteger:self.chapterArr.count] iconImgStr:@"章节练习背景" itemCount:2.f],
  125. [[RQSpecialPracticeItemViewModel alloc] initWithTitleStr:@"考点练习" subTitleStr:[NSString qmui_stringWithNSInteger:self.pointArr.count] iconImgStr:@"考点练习背景" itemCount:2.f]
  126. ];
  127. }
  128. - (NSArray *)oneArr {
  129. return @[
  130. [[RQSpecialAddItemViewModel alloc] initWithTitleStr:@"新规题" iconImgStr:@"新规题"],
  131. [[RQSpecialAddItemViewModel alloc] initWithTitleStr:@"易错题" iconImgStr:@"易错题"],
  132. [[RQSpecialAddItemViewModel alloc] initWithTitleStr:@"争议题" iconImgStr:@"争议题"],
  133. [[RQSpecialAddItemViewModel alloc] initWithTitleStr:@"图标技巧" iconImgStr:@"图标技巧"],
  134. ];
  135. }
  136. - (NSArray *)twoArr {
  137. return @[
  138. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"未做题" iconImgStr:@"未做题"],
  139. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"已做题" iconImgStr:@"已做题"],
  140. ];
  141. }
  142. - (NSArray *)threeArr {
  143. return (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour || RQ_YDTQuestion_Module.carType == RQHomePageCarType_Truck)? @[
  144. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"单选题" iconImgStr:@"单选题"],
  145. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"判断题" iconImgStr:@"判断题"],
  146. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"多选题" iconImgStr:@"多选题"],
  147. ] : @[[[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"单选题" iconImgStr:@"单选题"],
  148. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"判断题" iconImgStr:@"判断题"],];
  149. }
  150. - (NSArray *)fourArr {
  151. return (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour)? @[
  152. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"文字题" iconImgStr:@"文字题"],
  153. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"图片题" iconImgStr:@"图片题"],
  154. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"动画题" iconImgStr:@"动画题"],
  155. ] : @[
  156. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"文字题" iconImgStr:@"文字题"],
  157. [[RQSpecialQuestionItemViewModel alloc] initWithTitleStr:@"图片题" iconImgStr:@"图片题"],
  158. ];
  159. }
  160. - (NSArray *)fiveArr {
  161. return [self.pointArr.rac_sequence.signal map:^id _Nullable(RQYDTPointModel *pointModel) {
  162. return [[RQSpecialPointItemViewModel alloc] initWithPointArr:self.pointArr currentPoint:pointModel];
  163. }].toArray;
  164. }
  165. - (NSArray *)chapterArr {
  166. if (!_chapterArr) {
  167. _chapterArr = [RQ_YDTQuestion_Module getChapterArr];
  168. }
  169. return _chapterArr;
  170. }
  171. - (NSArray *)pointArr {
  172. if (!_pointArr) {
  173. _pointArr = [RQ_YDTQuestion_Module getPoint];
  174. }
  175. return _pointArr;
  176. }
  177. @end