123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- //
- // RQVideoDetailSubPageViewModel.m
- // JSJP
- //
- // 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) RQHomePageSubjectType homePageSubjectType;
- @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.homePageSubjectType = [params[RQHomeSubPageTypeKey] integerValue];
- }
- return self;
- }
- - (void)initialize {
- [super initialize];
-
- self.prefersNavigationBarHidden = YES;
- ///配置数据
- // [self rq_configureData];
- [self updateData];
- }
- - (void)updateData {
- @weakify(self);
- VideosItem *videosItem = self.videoArr.firstObject;
- if (videosItem.teachingVideoTypeId == 0 && videosItem.id == 0 && RQStringIsEmpty(videosItem.videoDescribe)) {
- self.updateDataType = RQVideoDetailSubPageUpdateDataType_Request;
- [QMUITips showLoadingInView:DefaultTipsParentView];
- [[RACScheduler mainThreadScheduler] afterDelay:1.f schedule:^{
- @strongify(self)
- ///配置数据
- [self rq_configureData];
- self.updateDataType = RQVideoDetailSubPageUpdateDataType_Complete;
- [QMUITips hideAllTips];
- }];
- } else {
- 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:^{
- @strongify(self)
- ///配置数据
- [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) {
- @strongify(self)
- videosItem.index = [self.videoArr indexOfObject:videosItem] + 1;
- videosItem.totalNum = self.videoArr.count;
- videosItem.subject = self.homePageSubjectType;
- 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:^{
- @strongify(self)
- group0.itemViewModels = itemMutableArr.copy;
- self.dataSource = @[group0];
- }];
- }
- @end
|