// // RQHomeSubPageLocalTopicListViewModel.m // SDJK // // Created by 张嵘 on 2021/10/15. // #import "RQHomeSubPageLocalTopicListViewModel.h" @interface RQHomeSubPageLocalTopicListViewModel () /// homePageCarType @property (nonatomic, readwrite, assign) RQHomePageCarType homePageCarType; /// homePageSubjectType @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType; /// homeSubPageType @property (nonatomic, readwrite, assign) RQHomeSubPageType homeSubPageType; /// groupDicArr @property (nonatomic, readwrite, copy) NSArray *groupDicArr; @end @implementation RQHomeSubPageLocalTopicListViewModel #pragma mark - Public Method - (instancetype)initWithServices:(id)services params:(NSDictionary *)params{ if (self = [super initWithServices:services params:params]) { self.homePageCarType = [params[RQHomePageCarTypeKey] integerValue]; self.homePageSubjectType = [params[RQHomePageSubjectTypeKey] integerValue]; self.homeSubPageType = [params[RQHomeSubPageTypeKey] integerValue]; } 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 = @"轿车(C1/C2/C3)"; break; case RQHomePageCarType_Bus: homePageCarTypeStr = @"客车(A1/A3/B1)"; break; case RQHomePageCarType_Truck: homePageCarTypeStr = @"货车(A2/B2)"; break; case RQHomePageCarType_Motorcycle: homePageCarTypeStr = @"摩托车(D/E/F)"; 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 = (homeSubPageType.integerValue == RQHomeSubPageType_SequentialPractice)? @"顺序练习" : @"地方专题"; return [NSString stringWithFormat:@"%@/%@/%@",homePageCarTypeStr,homePageSubjectTypeStr,homeSubPageTypeStr]; }] subscribeNext:^(NSString *titleStr) { self.title = titleStr; }]; } - (void)rq_configureData { @weakify(self); /// 第零组 RQCommonGroupViewModel *group = [RQCommonGroupViewModel groupViewModel]; group.headerHeight = CGFLOAT_MIN; group.footerHeight = CGFLOAT_MIN; NSMutableArray *groupArr = @[].mutableCopy; NSArray *columnArr = [RQ_QUESTION_DB_MANAGER getColumnWithCarType:self.homePageCarType subject:self.homePageSubjectType pageType:self.homeSubPageType]; [columnArr.rac_sequence.signal subscribeNext:^(NSString *titleStr) { RQHomeSubPageListItemViewModel *item = [[RQHomeSubPageListItemViewModel alloc] init]; item.homePageCarType = self.homePageCarType; item.homePageSubjectType = self.homePageSubjectType; item.homeSubPageType = self.homeSubPageType; item.title = titleStr; item.rowHeight = RQ_FIT_HORIZONTAL(76.f); [groupArr addObject:item]; } completed:^{ @strongify(self); group.itemViewModels = groupArr.copy; self.dataSource = @[group]; }]; } #pragma mark - LazyLoad @end