RQPlaceBuyCell.m 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. //
  2. // RQPlaceBuyCell.m
  3. // JiaPei
  4. //
  5. // Created by 张嵘 on 2023/4/19.
  6. //
  7. #import "RQPlaceBuyCell.h"
  8. @interface RQPlaceBuyCell ()
  9. @property (nonatomic, readwrite, strong) RQPlaceBuyItemViewModel *viewModel;
  10. @property (weak, nonatomic) IBOutlet QMUIButton *buyBtn;
  11. @property (weak, nonatomic) IBOutlet QMUIButton *userAgreeBtn;
  12. @property (weak, nonatomic) IBOutlet QMUIButton *userAgreementBtn;
  13. @property (weak, nonatomic) IBOutlet UIView *coverView;
  14. @end
  15. @implementation RQPlaceBuyCell
  16. #pragma mark - PublicMethods
  17. + (instancetype)cellWithTableView:(UITableView *)tableView {
  18. static NSString *ID = @"RQPlaceBuyCell";
  19. RQPlaceBuyCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  20. if (!cell) {
  21. cell = [self rq_viewFromXib];
  22. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  23. }
  24. return cell;
  25. }
  26. - (void)bindViewModel:(RQPlaceBuyItemViewModel *)viewModel {
  27. @weakify(self)
  28. _viewModel = viewModel;
  29. if (!RQObjectIsNil(viewModel.placeListModel)) {
  30. if (viewModel.placeListModel.price > 0) {
  31. [self.buyBtn setTitleNormal:[NSString stringWithFormat:@"立即支付 ¥%.2f",viewModel.placeListModel.price / 100.f]];
  32. } else {
  33. [self.buyBtn setTitleNormal:@"立即支付"];
  34. }
  35. RAC(self.buyBtn, selected) = [[[RACObserve(viewModel, isBuy) deliverOnMainThread] takeUntil:self.rac_prepareForReuseSignal] map:^id _Nullable(id _Nullable value) {
  36. @strongify(self)
  37. self.coverView.hidden = !viewModel.isBuy;
  38. return @(viewModel.isBuy);
  39. }];
  40. }
  41. RAC(viewModel, isAgree) = [[RACObserve(self.userAgreeBtn, selected) deliverOnMainThread] takeUntil:self.rac_prepareForReuseSignal];
  42. RAC(self.userAgreeBtn, selected) = [[RACObserve(self.viewModel, chooseAgree) deliverOnMainThread] takeUntil:self.rac_prepareForReuseSignal];
  43. }
  44. - (IBAction)userAgreeBtnAction:(id)sender {
  45. _userAgreeBtn.selected = !_userAgreeBtn.selected;
  46. }
  47. - (IBAction)userAgreementBtnAction:(id)sender {
  48. self.userAgreeBtn.selected = YES;
  49. NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://ys.zzxcx.net/jsjp-sf.html"]];
  50. RQWebViewModel *viewModel = [[RQWebViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{RQViewModelRequestKey : request,RQViewModelWebViewTypeKey:@(RQWebViewType_VIP)}];
  51. RQWebViewViewController *viewController = [[RQWebViewViewController alloc] initWithViewModel:viewModel];
  52. RQBaseNavigationController *nav = [[RQBaseNavigationController alloc] initWithRootViewController:viewController];
  53. [RQControllerHelper.currentViewController presentViewController:nav animated:YES completion:^{
  54. }];
  55. }
  56. #pragma mark - SystemMethods
  57. - (void)awakeFromNib {
  58. [super awakeFromNib];
  59. }
  60. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  61. [super setSelected:selected animated:animated];
  62. // Configure the view for the selected state
  63. }
  64. @end