NYBlockExerciseViewModel.m 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // NYBlockExerciseViewModel.m
  3. // jiaPei
  4. //
  5. // Created by Ning.ge on 2024/12/5.
  6. // Copyright © 2024 JCZ. All rights reserved.
  7. //
  8. #import "NYBlockExerciseViewModel.h"
  9. @interface NYBlockExerciseViewModel ()
  10. @property (nonatomic, readwrite, strong) RQTreeListModel *treeListModel;
  11. @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType;
  12. @property (nonatomic, readwrite, assign) NSInteger mySection;
  13. @end
  14. @implementation NYBlockExerciseViewModel
  15. #pragma mark - Public Method
  16. - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
  17. if (self = [super initWithServices:services params:params]) {
  18. self.homePageSubjectType = [params[RQHomePageSubjectTypeKey] integerValue];
  19. }
  20. return self;
  21. }
  22. - (void)dealloc{
  23. [[NSNotificationCenter defaultCenter] removeObserver:self];
  24. }
  25. - (void)initialize {
  26. [super initialize];
  27. /// 配置标题
  28. self.title = @"分段练习题";
  29. [self rq_configureData];
  30. //通知-刷新
  31. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(my_readData) name:NYBlockExerciseUpdateNotification object:nil];
  32. }
  33. - (void)my_readData {
  34. for (NYBlockExerciseGroupViewModel *group in self.dataSource) {
  35. for (NYBlockExerciseItemModel *item in group.itemViewModels) {
  36. [item updateData];
  37. }
  38. }
  39. }
  40. #pragma mark - ConfigureData
  41. - (void)rq_configureData {
  42. RQ_Exercise_Module.currentExerciseType = RQExerciseType_Block_List;
  43. /// 数据源
  44. RAC(self, dataSource) = [RACSignal
  45. combineLatest:@[RACObserve(RQ_USER_MANAGER, isCykh)]
  46. reduce:^(NSNumber *isCykh) {
  47. NYBlockExerciseGroupViewModel *group0 = [NYBlockExerciseGroupViewModel groupViewModel];
  48. group0.header = @"1.夯实基础";
  49. group0.headerDesStr = @"覆盖大多知识考点,建立扎实的知识基础";
  50. group0.star = 3;
  51. group0.headerHeight = 80.f;
  52. NYBlockExerciseItemModel *itemModel_0 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题一" group:0];
  53. NYBlockExerciseItemModel *itemModel_1 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题二" group:0];
  54. NYBlockExerciseItemModel *itemModel_2 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题三" group:0];
  55. NYBlockExerciseItemModel *itemModel_3 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题四" group:0];
  56. NYBlockExerciseItemModel *itemModel_4 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题五" group:0];
  57. NYBlockExerciseItemModel *itemModel_5 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题六" group:0];
  58. group0.itemViewModels = @[itemModel_0,itemModel_1,itemModel_2,itemModel_3,itemModel_4,itemModel_5];
  59. NYBlockExerciseGroupViewModel *group1 = [NYBlockExerciseGroupViewModel groupViewModel];
  60. group1.header = @"2.拔高拓展";
  61. group1.headerDesStr = @"突破驾考理论重难点,掌握更全面考点";
  62. group1.star = 4;
  63. group1.headerHeight = 80.f;
  64. NYBlockExerciseItemModel *itemModel1_0 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题一" group:1];
  65. NYBlockExerciseItemModel *itemModel1_1 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题二" group:1];
  66. NYBlockExerciseItemModel *itemModel1_2 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题三" group:1];
  67. NYBlockExerciseItemModel *itemModel1_3 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题四" group:1];
  68. group1.itemViewModels = @[itemModel1_0,itemModel1_1,itemModel1_2,itemModel1_3];
  69. NYBlockExerciseGroupViewModel *group2 = [NYBlockExerciseGroupViewModel groupViewModel];
  70. group2.header = @"3.巩固练习";
  71. group2.headerDesStr = @"深化理解记忆题目细节,提高答题正确率";
  72. group2.star = 5;
  73. group2.headerHeight = 80.f;
  74. NYBlockExerciseItemModel *itemModel2_0 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题一" group:2];
  75. NYBlockExerciseItemModel *itemModel2_1 = [[NYBlockExerciseItemModel alloc] initWithLeftStr:@"试题二" group:2];
  76. group2.itemViewModels = @[itemModel2_0,itemModel2_1];
  77. return @[group0,group1,group2];
  78. }];
  79. }
  80. @end