// // RQPlaceBuyCell.m // JiaPei // // Created by 张嵘 on 2023/4/19. // #import "RQPlaceBuyCell.h" @interface RQPlaceBuyCell () @property (nonatomic, readwrite, strong) RQPlaceBuyItemViewModel *viewModel; @property (weak, nonatomic) IBOutlet QMUIButton *buyBtn; @property (weak, nonatomic) IBOutlet QMUIButton *userAgreeBtn; @property (weak, nonatomic) IBOutlet QMUIButton *userAgreementBtn; @property (weak, nonatomic) IBOutlet UIView *coverView; @end @implementation RQPlaceBuyCell #pragma mark - PublicMethods + (instancetype)cellWithTableView:(UITableView *)tableView { static NSString *ID = @"RQPlaceBuyCell"; RQPlaceBuyCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; if (!cell) { cell = [self rq_viewFromXib]; cell.selectionStyle = UITableViewCellSelectionStyleNone; } return cell; } - (void)bindViewModel:(RQPlaceBuyItemViewModel *)viewModel { @weakify(self) _viewModel = viewModel; if (!RQObjectIsNil(viewModel.placeListModel)) { if (viewModel.placeListModel.price > 0) { [self.buyBtn setTitleNormal:[NSString stringWithFormat:@"立即支付 ¥%.2f",viewModel.placeListModel.price / 100.f]]; } else { [self.buyBtn setTitleNormal:@"立即支付"]; } RAC(self.buyBtn, selected) = [[[RACObserve(viewModel, isBuy) deliverOnMainThread] takeUntil:self.rac_prepareForReuseSignal] map:^id _Nullable(id _Nullable value) { @strongify(self) self.coverView.hidden = !viewModel.isBuy; return @(viewModel.isBuy); }]; } RAC(viewModel, isAgree) = [[RACObserve(self.userAgreeBtn, selected) deliverOnMainThread] takeUntil:self.rac_prepareForReuseSignal]; RAC(self.userAgreeBtn, selected) = [[RACObserve(self.viewModel, chooseAgree) deliverOnMainThread] takeUntil:self.rac_prepareForReuseSignal]; } - (IBAction)userAgreeBtnAction:(id)sender { _userAgreeBtn.selected = !_userAgreeBtn.selected; } - (IBAction)userAgreementBtnAction:(id)sender { self.userAgreeBtn.selected = YES; NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://ys.zzxcx.net/jsjp-sf.html"]]; RQWebViewModel *viewModel = [[RQWebViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{RQViewModelRequestKey : request,RQViewModelWebViewTypeKey:@(RQWebViewType_VIP)}]; RQWebViewViewController *viewController = [[RQWebViewViewController alloc] initWithViewModel:viewModel]; RQBaseNavigationController *nav = [[RQBaseNavigationController alloc] initWithRootViewController:viewController]; [RQControllerHelper.currentViewController presentViewController:nav animated:YES completion:^{ }]; } #pragma mark - SystemMethods - (void)awakeFromNib { [super awakeFromNib]; } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end