// // SPShopMallVC.m // romantic // // Created by bj_szd on 2022/7/29. // Copyright © 2022 romantic. All rights reserved. // #import "SPShopMallVC.h" #import "SPShopMallCell.h" #import "SPMineDressVC.h" #import "DressUpToBuyView.h" #import "JXCategoryTitleBackgroundView.h" @interface SPShopMallVC () @property (weak, nonatomic) IBOutlet UIImageView *kuangImgV; @property (weak, nonatomic) IBOutlet UIImageView *avatarImgV; @property (weak, nonatomic) IBOutlet UILabel *nicknameLab; @property (weak, nonatomic) IBOutlet UIImageView *gxImgV; @property (weak, nonatomic) IBOutlet UIImageView *mlImgV; @property (weak, nonatomic) IBOutlet UIView *bottomBgView; @property (weak, nonatomic) IBOutlet UICollectionView *collectionView; @property (weak, nonatomic) IBOutlet UIButton *buyBtn; @property (weak, nonatomic) IBOutlet UILabel *priceLab; @property (weak, nonatomic) IBOutlet UILabel *IDLab; @property (nonatomic, strong) NSArray *titles; @property (nonatomic, strong) JXCategoryTitleBackgroundView *categoryView; @property (nonatomic, strong) JXCategoryIndicatorImageView *lineView; @property (nonatomic, strong) NSArray *dataArray; @property (nonatomic, assign) NSInteger currentIndex; @property (nonatomic, assign) NSInteger pickIndex; @end @implementation SPShopMallVC - (void)viewDidLoad { [super viewDidLoad]; [self showNaviBarWithTitle:@"装扮商城"]; self.titles = @[@"头像框", @"坐骑", @"资料展示" ,@"气泡", @"个人靓号", @"房间靓号"]; self.pickIndex = -1; [self createUI]; [self fetchData]; } -(void)fetchData { NSDictionary *params = @{@"page":@(1), @"page_limit":@(1000), @"type":@(self.currentIndex+1)}; [[AFNetworkRequset shared] postRequestWithParams:params Path:@"/api/Decorate/get_decorate_list" Loading:NO Hud:NO Success:^(id _Nonnull responseDic) { NSArray *arr = [SPShopMallModel mj_objectArrayWithKeyValuesArray:responseDic[@"data"]]; self.dataArray = arr; [self.collectionView reloadData]; } Failure:^(id _Nonnull errorData) { }]; } - (IBAction)onBuy:(id)sender { if (self.pickIndex == -1) { [HelpPageDefine showMessage:@"请选择装扮"]; return; } SPShopMallModel *model = self.dataArray[self.pickIndex]; if (0 == self.currentIndex) { [self.kuangImgV sd_setImageWithURL:[NSURL URLWithString:model.base_image]]; } NSString *did = minStr(model.did); [AFNetworkRequset.shared postRequestWithParams:@{@"did":did} Path:@"api/decorate/get_decorate_info" Loading:NO Hud:NO Success:^(id _Nonnull responseDic) { SPShopMallModel *detailModel = [SPShopMallModel mj_objectWithKeyValues:responseDic[@"data"]]; DressUpToBuyView *view = LoadNib(@"DressUpToBuyView"); [self.view addSubview:view]; if (self.currentIndex>3) { [view configWithModel:detailModel title:self.titles[self.currentIndex-1]]; }else{ [view configWithModel:detailModel title:self.titles[self.currentIndex]]; } [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionTransitionCurlUp animations:^{ view.frame = CGRectMake(0, 0, APPW, APPH); } completion:^(BOOL finished) { }]; } Failure:^(id _Nonnull errorData) { }]; } - (void)createUI { [self.bottomBgView addSubview:self.categoryView]; self.categoryView.frame = CGRectMake(10, 10, ScreenWidth-20, 40); UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; CGFloat itemW = (ScreenWidth-10*2-20*3)/4; layout.itemSize = CGSizeMake(itemW, itemW+60); layout.minimumInteritemSpacing = 20; layout.minimumLineSpacing = 0; layout.sectionInset = UIEdgeInsetsMake(0, 10, 0, 10); _collectionView.collectionViewLayout = layout; _collectionView.delegate = self; _collectionView.dataSource = self; [_collectionView registerNib:[UINib nibWithNibName:@"SPShopMallCell" bundle:nil] forCellWithReuseIdentifier:@"SPShopMallCell"]; [self.avatarImgV sd_setImageWithURL:[NSURL URLWithString:self.model.head_pic] placeholderImage:kDefaultUserIcon]; self.nicknameLab.text = self.model.nick_name; self.IDLab.text = [NSString stringWithFormat:@"%@", self.model.uid]; [self.gxImgV sd_setImageWithURL:[NSURL URLWithString:self.model.contribution_level_image]]; [self.mlImgV sd_setImageWithURL:[NSURL URLWithString:self.model.charm_level_image]]; [ControlCreator createButton:self.view rect:CGRectMake(ScreenWidth-60-12, yb_StatusBar_H+7, 60, 30) text:@"我的装扮" font:YBMediumFont(12) color:HEXCOLOR(0x333333) backguoundColor:nil imageName:nil target:self action:@selector(onMineDress)]; [self.buyBtn setJianBianWithCGSize:CGSizeMake(ScreenWidth-15*2, 45)]; } - (void)onMineDress { SPMineDressVC *vc = [[SPMineDressVC alloc] init]; vc.model = self.model; [self.navigationController pushViewController:vc animated:YES]; } #pragma mark -------- collectionView代理方法 ------ - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return self.dataArray.count; } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { SPShopMallCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"SPShopMallCell" forIndexPath:indexPath]; SPShopMallModel *model = self.dataArray[indexPath.row]; cell.model = model; if (self.pickIndex == indexPath.row) { cell.bgImgV.image = ImageNamed(@"mall_bg_sel"); }else { cell.bgImgV.image = ImageNamed(@"mall_bg_nor"); } return cell; } - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { self.pickIndex = indexPath.row; [self.collectionView reloadData]; if (0 == self.currentIndex) { SPShopMallModel *model = self.dataArray[self.pickIndex]; // [self.kuangImgV sd_setImageWithURL:[NSURL URLWithString:model.base_image]]; } // SPShopMallModel *model = self.dataArray[self.pickIndex]; // self.priceLab.text = model.price; // // UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"确定购买该装扮吗?" message:nil preferredStyle:UIAlertControllerStyleAlert]; // [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { // [self onBuy:nil]; // }]]; // [alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]]; // [self presentViewController:alert animated:YES completion:nil]; } - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { if (index < 3){ self.currentIndex = index; }else{ self.currentIndex = index+1; } self.pickIndex = -1; self.priceLab.text = @""; [self fetchData]; if (index == 2){ _lineView.horizontalMargin = 52; }else if (index == 5 || index == 4){ _lineView.horizontalMargin = 40; }else if (index == 0){ _lineView.horizontalMargin = 30; }else{ _lineView.horizontalMargin = 22; } } - (JXCategoryTitleBackgroundView *)categoryView { if (!_categoryView) { _categoryView = [[JXCategoryTitleBackgroundView alloc] init]; _categoryView.delegate = self; _categoryView.titleFont = YBMediumFont(14); _categoryView.titleSelectedFont = YBBoldFont(15); _categoryView.titleColor = HEXCOLOR(0xFFFFFF); _categoryView.titleSelectedColor = HEXCOLOR(0x333333); _categoryView.selectedBackgroundColor = kClearColor; _categoryView.cellWidth = 90; _categoryView.cellSpacing = 10; _categoryView.titles = self.titles; _categoryView.contentEdgeInsetLeft = 0; _categoryView.contentEdgeInsetRight = 0; _categoryView.normalImageName = @"dress_title_nor"; _categoryView.selectedImageName = @"dress_title_sel"; } return _categoryView; } @end