123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- //
- // RQHomeSubPageListViewModel.m
- // SDJK
- //
- // Created by 张嵘 on 2021/8/4.
- //
- #import "RQHomeSubPageListViewModel.h"
- @interface RQHomeSubPageListViewModel ()
- /// 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 RQHomeSubPageListViewModel
- #pragma mark - Public Method
- - (instancetype)initWithServices:(id<RQViewModelServices>)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
|