RQExamProbabilityViewModel.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // RQExamProbabilityViewModel.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2022/7/29.
  6. // Copyright © 2022 JCZ. All rights reserved.
  7. //
  8. #import "RQExamProbabilityViewModel.h"
  9. @interface RQExamProbabilityViewModel ()
  10. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group0;
  11. @property (nonatomic, readwrite, copy) NSArray *examResultArr;
  12. @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType;
  13. @end
  14. @implementation RQExamProbabilityViewModel
  15. #pragma mark - Public Method
  16. - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
  17. if (self = [super initWithServices:services params:params]) {
  18. self.examResultArr = params[RQViewModelUtilKey];
  19. }
  20. return self;
  21. }
  22. - (void)initialize {
  23. [super initialize];
  24. @weakify(self)
  25. self.title = @"成绩单";
  26. self.prefersNavigationBarBottomLineHidden = YES;
  27. self.homePageSubjectType = RQ_YDTQuestion_Module.subject;
  28. ///配置数据
  29. [self rq_configureData];
  30. [[[RQNotificationCenter rac_addObserverForName:RQExamProbabilityUpdateNotification object:nil] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(NSNotification * note) {
  31. @strongify(self)
  32. self.examResultArr = note.object[RQExamResultListItemKey];
  33. self.homePageSubjectType = [note.object[RQExamResultListSubjectKey] intValue];
  34. self.group0 = nil;
  35. [self rq_configureData];
  36. }];
  37. // [[RQ_HTTP_Service getMyScore] subscribeNext:^(NSArray *examResultModelArr) {
  38. // @strongify(self)
  39. // RQSimulateExamSituationItemViewModel *simulateExamSituationItemViewModel = [[RQSimulateExamSituationItemViewModel alloc] init];
  40. // simulateExamSituationItemViewModel.examResultArr = [[examResultModelArr.rac_sequence.signal filter:^BOOL(RQExamResultModel * examResultModel) {
  41. // return [examResultModelArr indexOfObject:examResultModel] < 10;
  42. // }].toArray.rac_sequence.signal map:^id _Nullable(RQExamResultModel * examResultModel) {
  43. // return @(examResultModel.score.integerValue);
  44. // }].toArray;
  45. // NSMutableArray *arr = self.group0.itemViewModels.mutableCopy;
  46. // [arr replaceObjectAtIndex:2 withObject:simulateExamSituationItemViewModel];
  47. // self.group0.itemViewModels = arr.copy;
  48. // self.dataSource = @[self.group0];
  49. // }];
  50. }
  51. #pragma mark - PrivateMethod
  52. - (void)rq_configureData {
  53. self.dataSource = @[self.group0];
  54. }
  55. - (RQCommonGroupViewModel *)group0 {
  56. if (!_group0) {
  57. _group0 = [RQCommonGroupViewModel groupViewModel];
  58. [_group0 setCustomStyleWithRQCommonGroupModel:^(RQCommonGroupModel *groupModel) {
  59. groupModel.footerHeight = 10.f;
  60. groupModel.footerBgColor = RQ_LIST_BACKGROUNDCOLOR;
  61. }];
  62. RQExamProbabilyItemViewModel *examProbabilyItemViewModel = [[RQExamProbabilyItemViewModel alloc] init];
  63. examProbabilyItemViewModel.homePageSubjectType = self.homePageSubjectType;
  64. RQExerciseSituationItemViewModel *exerciseSituationItemViewModel = [[RQExerciseSituationItemViewModel alloc] init];
  65. exerciseSituationItemViewModel.homePageSubjectType = self.homePageSubjectType;
  66. RQSimulateExamSituationItemViewModel *simulateExamSituationItemViewModel = [[RQSimulateExamSituationItemViewModel alloc] init];
  67. simulateExamSituationItemViewModel.examResultArr = self.examResultArr;
  68. RQExamHistoryItemViewModel *examHistoryItemViewModel = [[RQExamHistoryItemViewModel alloc] initWithExamResultArr:self.examResultArr];
  69. _group0.itemViewModels = @[examProbabilyItemViewModel, exerciseSituationItemViewModel,simulateExamSituationItemViewModel,examHistoryItemViewModel];
  70. }
  71. return _group0;
  72. }
  73. @end