RQExerciseViewModel.m 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. //
  2. // RQExerciseViewModel.m
  3. // SDJK
  4. //
  5. // Created by 张嵘 on 2021/8/12.
  6. //
  7. #import "RQExerciseViewModel.h"
  8. @interface RQExerciseViewModel ()
  9. @property (nonatomic, readwrite, assign) RQExerciseType exerciseType;
  10. /// homePageCarType
  11. @property (nonatomic, readwrite, assign) RQHomePageCarType homePageCarType;
  12. /// homePageSubjectType
  13. @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType;
  14. /// homeSubPageType
  15. @property (nonatomic, readwrite, assign) RQHomeSubPageType homeSubPageType;
  16. /// homeSubEditListType
  17. @property (nonatomic, readwrite, assign) RQHomeSubEditListType homeSubEditListType;
  18. @property (nonatomic, readwrite, copy) NSString *titleStr;
  19. @property (nonatomic, readwrite, assign) NSInteger number;
  20. @property (nonatomic, readwrite, copy) NSArray *questionArr;
  21. @end
  22. @implementation RQExerciseViewModel
  23. #pragma mark - Public Method
  24. - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
  25. if (self = [super initWithServices:services params:params]) {
  26. self.exerciseType = [params[RQExerciseTypeKey] integerValue];
  27. self.homePageCarType = [params[RQHomePageCarTypeKey] integerValue];
  28. self.homePageSubjectType = [params[RQHomePageSubjectTypeKey] integerValue];
  29. self.homeSubPageType = [params[RQHomeSubPageTypeKey] integerValue];
  30. self.homeSubEditListType = [params[RQHomeSubEditListTypeKey] integerValue];
  31. self.titleStr = params[RQViewModelIDKey];
  32. self.number = [params[RQViewCommonValueKey] integerValue];
  33. self.questionArr = params[RQViewModelUtilKey];
  34. }
  35. return self;
  36. }
  37. - (void)initialize {
  38. [super initialize];
  39. /// 配置标题
  40. [self rq_configureTitle];
  41. ///配置数据
  42. [self rq_configureData];
  43. }
  44. #pragma mark - PrivateMethod
  45. - (void)rq_configureTitle {
  46. [[RACSignal combineLatest:@[RACObserve(self, homePageCarType), RACObserve(self, homePageSubjectType), RACObserve(self, homeSubPageType)]
  47. reduce:^id(NSNumber *homePageCarType, NSNumber *homePageSubjectType, NSNumber *homeSubPageType){
  48. NSString *homePageCarTypeStr = @"";
  49. switch (homePageCarType.integerValue) {
  50. case RQHomePageCarType_Car:
  51. homePageCarTypeStr = @"轿车";
  52. break;
  53. case RQHomePageCarType_Bus:
  54. homePageCarTypeStr = @"客车";
  55. break;
  56. case RQHomePageCarType_Truck:
  57. homePageCarTypeStr = @"货车";
  58. break;
  59. case RQHomePageCarType_Motorcycle:
  60. homePageCarTypeStr = @"摩托车";
  61. break;
  62. default:
  63. break;
  64. }
  65. NSString *homePageSubjectTypeStr = @"";
  66. switch (homePageSubjectType.integerValue) {
  67. case RQHomePageSubjectType_SubjectOne:
  68. homePageSubjectTypeStr = @"科目一";
  69. break;
  70. case RQHomePageSubjectType_SubjectTwo:
  71. homePageSubjectTypeStr = @"科目二";
  72. break;
  73. case RQHomePageSubjectType_SubjectThree:
  74. homePageSubjectTypeStr = @"科目三";
  75. break;
  76. case RQHomePageSubjectType_SubjectFour:
  77. homePageSubjectTypeStr = @"科目四";
  78. break;
  79. default:
  80. break;
  81. }
  82. NSString *homeSubPageTypeStr = @"";
  83. switch (homeSubPageType.integerValue) {
  84. case RQHomeSubPageType_SequentialPractice:
  85. homeSubPageTypeStr = @"顺序练习";
  86. break;
  87. case RQHomeSubPageType_LocalTopics:
  88. homeSubPageTypeStr = @"地方专题";
  89. break;
  90. case RQHomeSubPageType_ClassificationExercise:
  91. homeSubPageTypeStr = @"分类练习";
  92. break;
  93. case RQHomeSubPageType_WrongTopicAndCollection:
  94. homeSubPageTypeStr = @"错题·收藏";
  95. break;
  96. case RQHomeSubPageType_SelectedTestQuestions:
  97. homeSubPageTypeStr = @"精选考题";
  98. break;
  99. case RQHomeSubPageType_MockExamination:
  100. homeSubPageTypeStr = @"模拟考试";
  101. break;
  102. case RQHomeSubPageType_FreeTry:
  103. homeSubPageTypeStr = @"免费试用";
  104. break;
  105. default:
  106. break;
  107. }
  108. return _titleStr? [NSString stringWithFormat:@"%@/%@/%@/%@",homePageCarTypeStr,homePageSubjectTypeStr,homeSubPageTypeStr,_titleStr] : [NSString stringWithFormat:@"%@/%@/%@",homePageCarTypeStr,homePageSubjectTypeStr,homeSubPageTypeStr];
  109. }] subscribeNext:^(NSString *titleStr) {
  110. self.title = titleStr;
  111. }];
  112. }
  113. - (void)rq_configureData {
  114. }
  115. @end