RQExamProbabilityViewModel.m 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. ///配置数据
  28. [self rq_configureData];
  29. [[[RQNotificationCenter rac_addObserverForName:RQExamProbabilityUpdateNotification object:nil] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(NSNotification * note) {
  30. @strongify(self)
  31. self.examResultArr = note.object[RQExamResultListItemKey];
  32. self.homePageSubjectType = [note.object[RQExamResultListSubjectKey] intValue];
  33. self.group0 = nil;
  34. [self rq_configureData];
  35. }];
  36. // [[RQ_HTTP_Service getMyScore] subscribeNext:^(NSArray *examResultModelArr) {
  37. // @strongify(self)
  38. // RQSimulateExamSituationItemViewModel *simulateExamSituationItemViewModel = [[RQSimulateExamSituationItemViewModel alloc] init];
  39. // simulateExamSituationItemViewModel.examResultArr = [[examResultModelArr.rac_sequence.signal filter:^BOOL(RQExamResultModel * examResultModel) {
  40. // return [examResultModelArr indexOfObject:examResultModel] < 10;
  41. // }].toArray.rac_sequence.signal map:^id _Nullable(RQExamResultModel * examResultModel) {
  42. // return @(examResultModel.score.integerValue);
  43. // }].toArray;
  44. // NSMutableArray *arr = self.group0.itemViewModels.mutableCopy;
  45. // [arr replaceObjectAtIndex:2 withObject:simulateExamSituationItemViewModel];
  46. // self.group0.itemViewModels = arr.copy;
  47. // self.dataSource = @[self.group0];
  48. // }];
  49. }
  50. #pragma mark - PrivateMethod
  51. - (void)rq_configureData {
  52. self.dataSource = @[self.group0];
  53. }
  54. - (RQCommonGroupViewModel *)group0 {
  55. if (!_group0) {
  56. _group0 = [RQCommonGroupViewModel groupViewModel];
  57. [_group0 setCustomStyleWithRQCommonGroupModel:^(RQCommonGroupModel *groupModel) {
  58. groupModel.footerHeight = 10.f;
  59. groupModel.footerBgColor = RQ_LIST_BACKGROUNDCOLOR;
  60. }];
  61. RQExamProbabilyItemViewModel *examProbabilyItemViewModel = [[RQExamProbabilyItemViewModel alloc] init];
  62. examProbabilyItemViewModel.homePageSubjectType = self.homePageSubjectType;
  63. RQExerciseSituationItemViewModel *exerciseSituationItemViewModel = [[RQExerciseSituationItemViewModel alloc] init];
  64. exerciseSituationItemViewModel.homePageSubjectType = self.homePageSubjectType;
  65. RQSimulateExamSituationItemViewModel *simulateExamSituationItemViewModel = [[RQSimulateExamSituationItemViewModel alloc] init];
  66. simulateExamSituationItemViewModel.examResultArr = self.examResultArr;
  67. RQExamHistoryItemViewModel *examHistoryItemViewModel = [[RQExamHistoryItemViewModel alloc] initWithExamResultArr:self.examResultArr];
  68. _group0.itemViewModels = @[examProbabilyItemViewModel, exerciseSituationItemViewModel,simulateExamSituationItemViewModel,examHistoryItemViewModel];
  69. }
  70. return _group0;
  71. }
  72. @end