// // RQWrongAndCollectionCell.m // SDJK // // Created by 张嵘 on 2022/5/23. // #import "RQWrongAndCollectionCell.h" @interface RQWrongAndCollectionCell () @property (nonatomic, readwrite, strong) RQWrongAndCollectionItemViewModel *viewModel; @property (weak, nonatomic) IBOutlet UIImageView *myBgImageView; @property (weak, nonatomic) IBOutlet UILabel *myTitleLabel; @property (weak, nonatomic) IBOutlet UILabel *numLabel; @property (weak, nonatomic) IBOutlet UIButton *clearBtn; @property (weak, nonatomic) IBOutlet QMUIButton *synBtn; @end @implementation RQWrongAndCollectionCell #pragma mark - PublicMethods + (instancetype)cellWithTableView:(UITableView *)tableView { static NSString *ID = @"RQWrongAndCollectionCell"; RQWrongAndCollectionCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; if (!cell) { cell = [self rq_viewFromXib]; cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.clearBtn.layer.cornerRadius = RQ_FIT_HORIZONTAL(30.f) / 2.f; cell.synBtn.layer.cornerRadius = RQ_FIT_HORIZONTAL(30.f) / 2.f; } return cell; } - (void)bindViewModel:(RQWrongAndCollectionItemViewModel *)viewModel { _viewModel = viewModel; _myBgImageView.image = RQImageNamed(viewModel.icon); _myTitleLabel.text = viewModel.title; RAC(_numLabel, text) = [RACObserve(viewModel, subtitle) takeUntil:self.rac_prepareForReuseSignal]; if ([_myTitleLabel.text isEqualToString:@"做错题"]) { [_clearBtn setTitleNormal:@"清空错题"]; _numLabel.textColor = RQColorFromHexString(@"#B5CFFC"); [_clearBtn setTitleColor:RQ_MAIN_COLOR forState:UIControlStateNormal]; [_clearBtn setTapActionWithBlock:^(UITapGestureRecognizer *tap) { [NSObject rq_showAlertViewWithTitle:@"温馨提示" message:@"确认要清空错题吗?" confirmTitle:@"确认" cancelTitle:@"关闭" confirmAction:^{ // [MBProgressHUD rq_showProgressHUD:@"清空中..."]; // [[RQ_HTTP_Service queryDeleteWrongRecord] subscribeNext:^(id _Nullable x) { // [RQ_SDJK_DB_MANAGER deleteAllWrongModelsWithComplete:^(BOOL isSuccess) { // [MBProgressHUD rq_hideHUD]; // if (isSuccess) { // [MBProgressHUD rq_showTips:@"清空成功"]; // } else { // [MBProgressHUD rq_showTips:@"清空本地表失败"]; // } // }]; // } error:^(NSError * _Nullable error) { // [MBProgressHUD rq_hideHUD]; // [MBProgressHUD rq_showErrorTips:error]; // }]; [RQ_SDJK_DB_MANAGER deleteAllWrongModelsWithComplete:^(BOOL isSuccess) { [MBProgressHUD rq_hideHUD]; if (isSuccess) { [MBProgressHUD rq_showTips:@"清空成功"]; } else { [MBProgressHUD rq_showTips:@"清空本地表失败"]; } }]; } cancelAction:nil]; }]; [_synBtn setTitleNormal:@"同步错题"]; [_synBtn setTitleColor:RQ_MAIN_COLOR forState:UIControlStateNormal]; // [_synBtn setTapActionWithBlock:^(UITapGestureRecognizer *tap) { // // }]; } else { [_clearBtn setTitleNormal:@"清空收藏题"]; _numLabel.textColor = RQColorFromHexString(@"#B5FCD6"); [_clearBtn setTitleColor:RQ_MAIN_TEXT_COLOR_4 forState:UIControlStateNormal]; [_clearBtn setTapActionWithBlock:^(UITapGestureRecognizer *tap) { [NSObject rq_showAlertViewWithTitle:@"温馨提示" message:@"确认要清空收藏题吗?" confirmTitle:@"确认" cancelTitle:@"关闭" confirmAction:^{ // [MBProgressHUD rq_showProgressHUD:@"清空中..."]; // [[RQ_HTTP_Service queryDeleteCollectionRecord] subscribeNext:^(id _Nullable x) { // [RQ_SDJK_DB_MANAGER deleteAllCollectionModelsWithComplete:^(BOOL isSuccess) { // [MBProgressHUD rq_hideHUD]; // if (isSuccess) { // [MBProgressHUD rq_showTips:@"清空成功"]; // } else { // [MBProgressHUD rq_showTips:@"清空本地表失败"]; // } // }]; // } error:^(NSError * _Nullable error) { // [MBProgressHUD rq_hideHUD]; // [MBProgressHUD rq_showErrorTips:error]; // }]; [RQ_SDJK_DB_MANAGER deleteAllCollectionModelsWithComplete:^(BOOL isSuccess) { [MBProgressHUD rq_hideHUD]; if (isSuccess) { [MBProgressHUD rq_showTips:@"清空成功"]; } else { [MBProgressHUD rq_showTips:@"清空本地表失败"]; } }]; } cancelAction:nil]; }]; [_synBtn setTitleNormal:@"同步收藏题"]; [_synBtn setTitleColor:RQ_MAIN_TEXT_COLOR_4 forState:UIControlStateNormal]; // [_synBtn setTapActionWithBlock:^(UITapGestureRecognizer *tap) { // // }]; } } - (IBAction)synBtnAction:(id)sender { BOOL isCollect = [self.synBtn.titleLabel.text isEqualToString:@"同步收藏题"]; LCActionSheet *sheet = [LCActionSheet sheetWithTitle:@"" cancelButtonTitle:@"取消" clicked:^(LCActionSheet * _Nonnull actionSheet, NSInteger buttonIndex) { switch (buttonIndex) { case 1: { [QMUITips showLoading:@"合并中..." inView:DefaultTipsParentView]; if (isCollect) { [[RQ_HTTP_Service postCollectionsWithSubject:self.viewModel.homePageSubjectType] subscribeNext:^(id _Nullable x) { [[RQ_HTTP_Service getAppCollectionByUserWithSubject:self.viewModel.homePageSubjectType] subscribeNext:^(NSArray *collectionModelArr) { [RQ_SDJK_DB_MANAGER addCollectionRecordWithRQCollectionModelArr:collectionModelArr isClearOldData:YES complete:^(BOOL isSuccess, NSError * _Nullable error) { [QMUITips hideAllTips]; if (isSuccess) { [RQ_SDJK_DB_MANAGER refreshCollectCount]; [QMUITips showSucceed:@"合并成功"]; } }]; } error:^(NSError * _Nullable error) { [QMUITips hideAllTips]; [QMUITips showError:[NSError rq_tipsFromError:error]]; }]; } error:^(NSError * _Nullable error) { [QMUITips hideAllTips]; [QMUITips showError:[NSError rq_tipsFromError:error]]; }]; } else { [[RQ_HTTP_Service postWrongsWithSubject:self.viewModel.homePageSubjectType] subscribeNext:^(id _Nullable x) { [[RQ_HTTP_Service getAppWrongByUserWithSubject:self.viewModel.homePageSubjectType] subscribeNext:^(NSArray *wrongModelArr) { [RQ_SDJK_DB_MANAGER addWrongRecordWithRQWrongModelArr:wrongModelArr isClearOldData:YES complete:^(BOOL isSuccess, NSError * _Nullable error) { [QMUITips hideAllTips]; if (isSuccess) { [RQ_SDJK_DB_MANAGER refreshWrongCount]; [QMUITips showSucceed:@"合并成功"]; } }]; } error:^(NSError * _Nullable error) { [QMUITips hideAllTips]; [QMUITips showError:[NSError rq_tipsFromError:error]]; }]; } error:^(NSError * _Nullable error) { [QMUITips hideAllTips]; [QMUITips showError:[NSError rq_tipsFromError:error]]; }]; } break; } case 2: { [QMUITips showLoading:@"备份中..." inView:DefaultTipsParentView]; if (isCollect) { [[RQ_HTTP_Service postBakCollectionsWithSubject:self.viewModel.homePageSubjectType] subscribeNext:^(id _Nullable x) { [QMUITips hideAllTips]; [QMUITips showSucceed:@"备份成功"]; } error:^(NSError * _Nullable error) { [QMUITips hideAllTips]; [QMUITips showError:[NSError rq_tipsFromError:error]]; }]; } else { [[RQ_HTTP_Service postBakWrongsWithSubject:self.viewModel.homePageSubjectType] subscribeNext:^(id _Nullable x) { [QMUITips hideAllTips]; [QMUITips showSucceed:@"备份成功"]; } error:^(NSError * _Nullable error) { [QMUITips hideAllTips]; [QMUITips showError:[NSError rq_tipsFromError:error]]; }]; } break; } case 3: { [QMUITips showLoading:@"恢复中..." inView:DefaultTipsParentView]; if (isCollect) { [[RQ_HTTP_Service getAppCollectionByUserWithSubject:self.viewModel.homePageSubjectType] subscribeNext:^(NSArray *collectionModelArr) { [RQ_SDJK_DB_MANAGER addCollectionRecordWithRQCollectionModelArr:collectionModelArr isClearOldData:YES complete:^(BOOL isSuccess, NSError * _Nullable error) { [QMUITips hideAllTips]; if (isSuccess) { [RQ_SDJK_DB_MANAGER refreshCollectCount]; [QMUITips showSucceed:@"恢复成功"]; } }]; } error:^(NSError * _Nullable error) { [QMUITips hideAllTips]; [QMUITips showError:[NSError rq_tipsFromError:error]]; }]; } else { [[RQ_HTTP_Service getAppWrongByUserWithSubject:self.viewModel.homePageSubjectType] subscribeNext:^(NSArray *wrongModelArr) { [RQ_SDJK_DB_MANAGER addWrongRecordWithRQWrongModelArr:wrongModelArr isClearOldData:YES complete:^(BOOL isSuccess, NSError * _Nullable error) { [QMUITips hideAllTips]; if (isSuccess) { [RQ_SDJK_DB_MANAGER refreshWrongCount]; [QMUITips showSucceed:@"恢复成功"]; } }]; } error:^(NSError * _Nullable error) { [QMUITips hideAllTips]; [QMUITips showError:[NSError rq_tipsFromError:error]]; }]; } break; } default: break; } } otherButtonTitles:isCollect? @"合并本机和云端收藏" : @"合并本机和云端错题",isCollect? @"备份本机收藏到云端" : @"备份本机错题到云端",isCollect? @"恢复云端收藏到本机" : @"恢复云端错题到本机", nil]; sheet.buttonFont = RQRegularFont_16; sheet.buttonColor = RQ_MAIN_TEXT_COLOR_1; sheet.buttonHeight = 60.f; [sheet show]; } #pragma mark - SystemMethods - (void)awakeFromNib { [super awakeFromNib]; } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; } @end