// // YYRoomCPRankView.m // SweetParty // // Created by bj_szd on 2023/12/25. // #import "YYRoomCPRankView.h" #import "YYRoomCPRankCell.h" @interface YYRoomCPRankView () @property (nonatomic, strong) NSArray *titles; @property (nonatomic, strong) JXCategoryTitleView *categoryView; @property (nonatomic, assign) NSInteger currentIndex; @property (nonatomic, strong) NSMutableArray *dataArray; @property (nonatomic, assign) NSInteger page; @end @implementation YYRoomCPRankView - (void)awakeFromNib { [super awakeFromNib]; self.titles = @[@"日榜", @"周榜", @"月榜"]; self.dataArray = [[NSMutableArray alloc] init]; self.page = 1; [self createUI]; [self fetchData]; } - (void)createUI { WEAK_SELF [self.touchImgV dg_Tapped:^{ [weakSelf removeFromSuperview]; }]; [self.titleBgView addSubview:self.categoryView]; [self.categoryView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(0); }]; self.tableView.separatorStyle = NO; self.tableView.delegate = self; self.tableView.dataSource = self; [self.tableView registerNib:[UINib nibWithNibName:@"YYRoomCPRankCell" bundle:nil] forCellReuseIdentifier:@"YYRoomCPRankCell"]; self.tableView.rowHeight = 110; //刷新加载 self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refreshFetchData)]; self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(fetchMoreData)]; } - (void)fetchData { NSDictionary *params = @{@"time":@(self.currentIndex+1), @"page":@(self.page), @"page_limit":@(10)}; [AFNetworkRequset.shared postRequestWithParams:params Path:@"/api/coupling/get_cp_rank" Loading:NO Hud:NO Success:^(id _Nonnull responseDic) { if (self.page == 1) { [self.dataArray removeAllObjects]; [self.tableView reloadData]; } [self endRefresh]; NSArray *arr = [YYRoomCPRankModel mj_objectArrayWithKeyValuesArray:responseDic[@"data"][@"list"]]; [self.dataArray addObjectsFromArray:arr]; [self.tableView reloadData]; if (arr.count > 0) { [self endFooterRefreshWithMore]; }else { [self endFooterRefreshWithNoMore]; } } Failure:^(id _Nonnull errorData) { [self endRefresh]; }]; } - (void)refreshFetchData { self.page = 1; [self fetchData]; } - (void)fetchMoreData { self.page ++; [self fetchData]; } - (void)endRefresh { if ([self.tableView.mj_header isRefreshing]) { [self.tableView.mj_header endRefreshing]; } else if ([self.tableView.mj_footer isRefreshing]) { [self.tableView.mj_footer endRefreshing]; } } -(void)endFooterRefreshWithMore{ self.tableView.mj_footer.hidden = NO; [self.tableView.mj_footer endRefreshing]; } -(void)endFooterRefreshWithNoMore{ self.tableView.mj_footer.hidden = NO; [self.tableView.mj_footer endRefreshingWithNoMoreData]; } - (IBAction)onDismiss:(id)sender { [self removeFromSuperview]; } #pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.dataArray.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { YYRoomCPRankCell *cell = [tableView dequeueReusableCellWithIdentifier:@"YYRoomCPRankCell" forIndexPath:indexPath]; cell.selectionStyle = NO; YYRoomCPRankModel *model = self.dataArray[indexPath.row]; cell.model = model; // if (indexPath.row < 3) { // cell.orderImgV.hidden = YES; // cell.orderLab.hidden = YES; // cell.orderImgV.image = [UIImage imageNamed:[NSString stringWithFormat:@"cp_rank_%ld", indexPath.row+1]]; // }else { // cell.orderImgV.hidden = YES; // cell.orderLab.hidden = NO; // cell.orderLab.text = [NSString stringWithFormat:@"%ld", indexPath.row+1]; // } cell.orderLab.text = [NSString stringWithFormat:@"%02ld", indexPath.row+1]; return cell; } - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { self.currentIndex = index; [self refreshFetchData]; } // 分页菜单视图 - (JXCategoryTitleView *)categoryView { if (!_categoryView) { _categoryView = [[JXCategoryTitleView alloc] init]; _categoryView.delegate = self; _categoryView.titleFont = YBMediumFont(14); _categoryView.titleSelectedFont = YBBoldFont(14); _categoryView.titleColor = HEXCOLORA(0xFFFFFF, 1); _categoryView.titleSelectedColor = HEXCOLOR(0xE100E1); _categoryView.cellWidth = 240/3; _categoryView.cellSpacing = 0; _categoryView.contentEdgeInsetLeft = 0; _categoryView.contentEdgeInsetRight = 0; _categoryView.averageCellSpacingEnabled = NO; _categoryView.backgroundColor = HEXCOLORA(0x000000, 0.15); _categoryView.layer.cornerRadius =34/2; _categoryView.layer.masksToBounds = YES; _categoryView.titles = self.titles; JXCategoryIndicatorBackgroundView *backgroundView = [[JXCategoryIndicatorBackgroundView alloc] init]; backgroundView.indicatorHeight = 34; backgroundView.indicatorWidthIncrement = 0; backgroundView.indicatorCornerRadius = 17; // backgroundView.indicatorColor = [UIColor bm_colorGradientChangeWithSize:CGSizeMake(240/3, 34) direction:FXGradientChangeDirectionHorizontal startColor:mainLightColor endColor:mainDeepColor]; backgroundView.indicatorColor = kWhiteColor; // backgroundView.layer.borderWidth = 1; // backgroundView.layer.borderColor = HEXCOLOR(0xFFFFFF).CGColor; _categoryView.indicators = @[backgroundView]; } return _categoryView; } @end