// // RQExerciseViewModel.m // SDJK // // Created by 张嵘 on 2021/8/12. // #import "RQExerciseViewModel.h" @interface RQExerciseViewModel () @property (nonatomic, readwrite, assign) RQExerciseType exerciseType; /// homePageCarType @property (nonatomic, readwrite, assign) RQHomePageCarType homePageCarType; /// homePageSubjectType @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType; /// homeSubPageType @property (nonatomic, readwrite, assign) RQHomeSubPageType homeSubPageType; /// homeSubEditListType @property (nonatomic, readwrite, assign) RQHomeSubEditListType homeSubEditListType; @property (nonatomic, readwrite, copy) NSString *titleStr; @property (nonatomic, readwrite, assign) NSInteger number; @property (nonatomic, readwrite, copy) NSArray *questionArr; @end @implementation RQExerciseViewModel #pragma mark - Public Method - (instancetype)initWithServices:(id)services params:(NSDictionary *)params { if (self = [super initWithServices:services params:params]) { self.exerciseType = [params[RQExerciseTypeKey] integerValue]; self.homePageCarType = [params[RQHomePageCarTypeKey] integerValue]; self.homePageSubjectType = [params[RQHomePageSubjectTypeKey] integerValue]; self.homeSubPageType = [params[RQHomeSubPageTypeKey] integerValue]; self.homeSubEditListType = [params[RQHomeSubEditListTypeKey] integerValue]; self.titleStr = params[RQViewModelIDKey]; self.number = [params[RQViewCommonValueKey] integerValue]; self.questionArr = params[RQViewModelUtilKey]; } return self; } - (void)initialize { [super initialize]; /// 配置标题 [self rq_configureTitle]; ///配置数据 [self rq_configureData]; } #pragma mark - PrivateMethod - (void)rq_configureTitle { [[RACSignal combineLatest:@[RACObserve(self, homePageCarType), RACObserve(self, homePageSubjectType), RACObserve(self, homeSubPageType)] reduce:^id(NSNumber *homePageCarType, NSNumber *homePageSubjectType, NSNumber *homeSubPageType){ NSString *homePageCarTypeStr = @""; switch (homePageCarType.integerValue) { case RQHomePageCarType_Car: homePageCarTypeStr = @"轿车"; break; case RQHomePageCarType_Bus: homePageCarTypeStr = @"客车"; break; case RQHomePageCarType_Truck: homePageCarTypeStr = @"货车"; break; case RQHomePageCarType_Motorcycle: homePageCarTypeStr = @"摩托车"; break; default: break; } NSString *homePageSubjectTypeStr = @""; switch (homePageSubjectType.integerValue) { case RQHomePageSubjectType_SubjectOne: homePageSubjectTypeStr = @"科目一"; break; case RQHomePageSubjectType_SubjectTwo: homePageSubjectTypeStr = @"科目二"; break; case RQHomePageSubjectType_SubjectThree: homePageSubjectTypeStr = @"科目三"; break; case RQHomePageSubjectType_SubjectFour: homePageSubjectTypeStr = @"科目四"; break; default: break; } NSString *homeSubPageTypeStr = @""; switch (homeSubPageType.integerValue) { case RQHomeSubPageType_SequentialPractice: homeSubPageTypeStr = @"顺序练习"; break; case RQHomeSubPageType_LocalTopics: homeSubPageTypeStr = @"地方专题"; break; case RQHomeSubPageType_ClassificationExercise: homeSubPageTypeStr = @"分类练习"; break; case RQHomeSubPageType_WrongTopicAndCollection: homeSubPageTypeStr = @"错题·收藏"; break; case RQHomeSubPageType_SelectedTestQuestions: homeSubPageTypeStr = @"精选考题"; break; case RQHomeSubPageType_MockExamination: homeSubPageTypeStr = @"模拟考试"; break; case RQHomeSubPageType_FreeTry: homeSubPageTypeStr = @"免费试用"; break; default: break; } return _titleStr? [NSString stringWithFormat:@"%@/%@/%@/%@",homePageCarTypeStr,homePageSubjectTypeStr,homeSubPageTypeStr,_titleStr] : [NSString stringWithFormat:@"%@/%@/%@",homePageCarTypeStr,homePageSubjectTypeStr,homeSubPageTypeStr]; }] subscribeNext:^(NSString *titleStr) { self.title = titleStr; }]; } - (void)rq_configureData { } @end