12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- //
- // RQVideoDetailSubPageViewModel.m
- // SDJK
- //
- // Created by 张嵘 on 2021/10/26.
- //
- #import "RQVideoDetailSubPageViewModel.h"
- @interface RQVideoDetailSubPageViewModel ()
- @property (nonatomic, readwrite, strong) NSArray *videoArr;
- @property (nonatomic, readwrite, copy) NSString *subTitle;
- @property (nonatomic, readwrite, strong) NSIndexPath *indexPath;
- @property (nonatomic, readwrite, assign) RQVideoDetailSubPageUpdateDataType updateDataType;
- @property (nonatomic, readwrite, assign) RQVideoSourceType videoSourceType;
- @end
- @implementation RQVideoDetailSubPageViewModel
- #pragma mark - Public Method
- - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
- if (self = [super initWithServices:services params:params]) {
- self.videoArr = params[RQViewModelUtilKey];
- self.title = params[RQViewModelTitleKey];
- self.subTitle = params[RQViewModelIDKey];
- self.indexPath = params[RQViewCommonValueKey];
- self.updateDataType = RQVideoDetailSubPageUpdateDataType_Default;
- self.videoSourceType = [params[RQVideoSourceTypeKey] integerValue];
- }
- return self;
- }
- - (void)initialize {
- [super initialize];
-
- self.prefersNavigationBarHidden = YES;
- ///配置数据
- // [self rq_configureData];
- if (![self.subTitle isEqualToString:@"12580"]) {
- [self updateData];
- } else {
- self.subTitle = @"";
- ///配置数据
- [self rq_configureData];
- self.updateDataType = RQVideoDetailSubPageUpdateDataType_Complete;
- }
- }
- - (void)updateData {
- @weakify(self);
- VideosItem *videosItem = self.videoArr.firstObject;
- self.updateDataType = RQVideoDetailSubPageUpdateDataType_Request;
- [[RQ_HTTP_Service getTeachingVideoByTypeId:videosItem.teachingVideoTypeId] subscribeNext:^(NSArray *arr) {
- @strongify(self);
- self.videoArr = [arr.rac_sequence.signal map:^id _Nullable(VideosItem *videoItem) {
- return videoItem;
- }].toArray;
- } error:^(NSError * _Nullable error) {
-
- } completed:^{
- ///配置数据
- [self rq_configureData];
- self.updateDataType = RQVideoDetailSubPageUpdateDataType_Complete;
- }];
- }
- #pragma mark - PrivateMethod
- - (void)rq_configureData {
- @weakify(self);
- /// 第零组
- RQCommonGroupViewModel *group0 = [RQCommonGroupViewModel groupViewModel];
- group0.headerHeight = CGFLOAT_MIN;
- group0.footerHeight = CGFLOAT_MIN;
-
- NSMutableArray *itemMutableArr = @[].mutableCopy;
- [self.videoArr.rac_sequence.signal subscribeNext:^(VideosItem *videosItem) {
- videosItem.index = [self.videoArr indexOfObject:videosItem] + 1;
- videosItem.totalNum = self.videoArr.count;
- RQVideoDetailSubPageItemViewModel *videoDetailSubPageItemViewModel = [[RQVideoDetailSubPageItemViewModel alloc] initWithVideosItem:videosItem];
- videoDetailSubPageItemViewModel.rowHeight = RQ_FIT_HORIZONTAL(88.f);
- videoDetailSubPageItemViewModel.operation = ^{
- @strongify(self);
- [RQNotificationCenter postNotificationName:RQPlayVideoUrlNotification object:@{
- RQPlayVideoItemKey : videosItem,
- RQPlayVideoItemArrKey : self.videoArr,
- }];
- };
- [itemMutableArr addObject:videoDetailSubPageItemViewModel];
- } completed:^{
- group0.itemViewModels = itemMutableArr.copy;
- self.dataSource = @[group0];
- }];
- }
- @end
|