RQTestResultsViewModel.m 4.6 KB

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