123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- //
- // RQSimulationResultsViewModel.m
- // SDJK
- //
- // Created by 张嵘 on 2021/8/6.
- //
- #import "RQSimulationResultsViewModel.h"
- @interface RQSimulationResultsViewModel ()
- /// 总数
- @property (nonatomic, readwrite, copy) NSString *totalStr;
- @end
- @implementation RQSimulationResultsViewModel
- #pragma mark - Public Method
- - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params{
- if (self = [super initWithServices:services params:params]) {
- }
- return self;
- }
- - (void)initialize{
- [super initialize];
- /// 允许下拉刷新
- self.shouldPullUpToLoadMore = YES;
- self.shouldPullDownToRefresh = YES;
- self.prefersNavigationBarHidden = YES;
- self.prefersNavigationBarBottomLineHidden = YES;
- self.perPage = 10;
-
- /// 配置数据
- [self rq_configureData];
- }
- #pragma mark - PrivateMethod
- - (void)rq_configureData {
- @weakify(self);
- /// 列表
- RAC(self, items) = self.requestRemoteDataCommand.executionSignals.switchToLatest;
- /// 数据源
- RAC(self, dataSource) = [RACObserve(self, items) map:^(NSArray * items) {
- @strongify(self)
- RQScoreRecordModel *lastScoreRecordModel = items.lastObject;
- self.dataTotalNum = lastScoreRecordModel.total;
- self.totalStr = [NSString stringWithFormat:@"%ld",lastScoreRecordModel.total? : 0];
- return [self dataSourceWithItems:items];
- }];
-
- /// 选中cell 跳转的命令
- self.didSelectCommand = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(NSIndexPath * indexPath) {
- return [RACSignal empty];
- }];
-
- }
- /// 请求数据
- - (RACSignal *)requestRemoteDataSignalWithPage:(NSUInteger)page {
- NSArray * (^itemsBlock)(NSArray *) = ^(NSArray *products) {
- if (page == 1 || page == 0) {
- /// 下拉刷新
- } else {
- /// 上拉加载
- products = @[(self.items ?: @[]).rac_sequence, products.rac_sequence].rac_sequence.flatten.array;
- }
- return products;
- };
- ///
- return [[[RQ_HTTP_Service getScoreInfoListWithPageNum:self.page pageSize:self.perPage] map:itemsBlock] doError:^(NSError * _Nonnull error) {
- [MBProgressHUD rq_showErrorTips:error];
- }];
- }
- #pragma mark - 辅助方法
- - (NSArray *)dataSourceWithItems:(NSArray *)items {
- NSArray *viewModels = [items.rac_sequence map:^(RQScoreRecordModel *scoreRecordModel) {
- RQCommonGroupViewModel *group = [RQCommonGroupViewModel groupViewModel];
- RQSimulationResultsListItemViewModel *simulationResultsListItemViewModel = [[RQSimulationResultsListItemViewModel alloc] initWithRQScoreRecordModel:scoreRecordModel];
- simulationResultsListItemViewModel.rowHeight = RQ_FIT_HORIZONTAL(44.f);
- group.itemViewModels = @[simulationResultsListItemViewModel];
- return group;
- }].array;
-
- return viewModels ?: @[];
- }
- @end
|