爵位完成
This commit is contained in:
@@ -31,6 +31,8 @@
|
||||
#import "QXWalletRuleView.h"
|
||||
#import "QXRechargeViewcController.h"
|
||||
#import "QXGiftWallViewController.h"
|
||||
#import "QXNobilityViewController.h"
|
||||
#import "QXHomePageNetwork.h"
|
||||
#import <WXApi.h>
|
||||
|
||||
@interface QXMineViewController ()<UITableViewDelegate,UITableViewDataSource,QXMineServiceCellDelegate,QXMainHeaderViewDelegate>
|
||||
@@ -40,6 +42,7 @@
|
||||
//@property (nonatomic,strong)UIButton *serviceBtn;
|
||||
//@property (nonatomic,strong)UIButton *settingBtn;
|
||||
@property (nonatomic,strong)QXUserModel *userModel;
|
||||
@property (nonatomic,strong)NSMutableArray *bannerArry;
|
||||
@end
|
||||
|
||||
@implementation QXMineViewController
|
||||
@@ -81,6 +84,7 @@
|
||||
// make.centerY.width.height.equalTo(self.settingBtn);
|
||||
// }];
|
||||
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(passwordDidChanged) name:noticeChangePassword object:nil];
|
||||
[self getBanner];
|
||||
}
|
||||
-(void)getUserInfo{
|
||||
MJWeakSelf
|
||||
@@ -167,7 +171,8 @@
|
||||
break;
|
||||
case QXMainHeaderOptionTypeNobility:{
|
||||
QXLOG(@"跳转贵族");
|
||||
|
||||
QXNobilityViewController *vc = [[QXNobilityViewController alloc] init];
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
break;
|
||||
case QXMainHeaderOptionTypeRecharge:{
|
||||
@@ -290,9 +295,18 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
-(void)getBanner{
|
||||
MJWeakSelf
|
||||
[QXHomePageNetwork homeBannerWithType:@"6" successBlock:^(NSArray<QXBanner *> * _Nonnull list) {
|
||||
weakSelf.tableHeaderView.bannerArray = list;
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
-(void)gotoSetting{
|
||||
QXSettingViewController *vc = [[QXSettingViewController alloc] init];
|
||||
vc.haveNobility = self.userModel.is_hide.intValue == 1;
|
||||
MJWeakSelf
|
||||
vc.logOutBlock = ^(BOOL isCancel) {
|
||||
if (isCancel) {
|
||||
@@ -361,6 +375,12 @@
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
-(NSMutableArray *)bannerArry{
|
||||
if (!_bannerArry) {
|
||||
_bannerArry = [NSMutableArray array];
|
||||
}
|
||||
return _bannerArry;
|
||||
}
|
||||
//-(UIButton *)settingBtn{
|
||||
// if (!_settingBtn) {
|
||||
// _settingBtn = [[UIButton alloc] init];
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// QXBuyNobilitySuccessViewController.h
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/10.
|
||||
//
|
||||
|
||||
#import "QXBaseViewController.h"
|
||||
#import "QXNobilityGetPriceModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXBuyNobilitySuccessViewController : QXBaseViewController
|
||||
@property (nonatomic,strong)QXNobilityGetPriceModel *model;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,142 @@
|
||||
//
|
||||
// QXBuyNobilitySuccessViewController.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/10.
|
||||
//
|
||||
|
||||
#import "QXBuyNobilitySuccessViewController.h"
|
||||
#import "QXNobilityBuyDesCell.h"
|
||||
|
||||
@interface QXBuyNobilitySuccessViewController ()<UITableViewDelegate,UITableViewDataSource>
|
||||
@property (nonatomic,strong)UITableView *tableView;
|
||||
@property (nonatomic,strong)UIView *headerView;
|
||||
@property (nonatomic,strong)UIImageView *resultImageView;
|
||||
@property (nonatomic,strong)UILabel *resultLabel;
|
||||
@property (nonatomic,strong)UILabel *titleLabel;
|
||||
@property (nonatomic,strong)UIImageView *nobilityImageView;
|
||||
@end
|
||||
|
||||
@implementation QXBuyNobilitySuccessViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view.
|
||||
}
|
||||
-(void)viewWillAppear:(BOOL)animated{
|
||||
[super viewWillAppear:animated];
|
||||
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
||||
}
|
||||
-(void)viewWillDisappear:(BOOL)animated{
|
||||
[super viewWillDisappear:animated];
|
||||
}
|
||||
|
||||
-(void)initSubViews{
|
||||
self.titleLabel.text = [NSString stringWithFormat:@"恭喜您已经成功开通%@爵位",self.model.nobility_name];
|
||||
[self.nobilityImageView sd_setImageWithURL:[NSURL URLWithString:self.model.nobility_image]];
|
||||
self.tableView.tableHeaderView = self.headerView;
|
||||
[self.view addSubview:self.tableView];
|
||||
}
|
||||
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
|
||||
return self.model.power_list.count;
|
||||
}
|
||||
|
||||
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
QXNobilityBuyDesCell *cell = [QXNobilityBuyDesCell cellWithTableView:tableView];
|
||||
QXNobilityGetPricePowerList *md = self.model.power_list[indexPath.row];
|
||||
cell.titleLabel.text = md.content;
|
||||
return cell;
|
||||
}
|
||||
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
return 36;
|
||||
}
|
||||
|
||||
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
|
||||
UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 42)];
|
||||
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(16, 12, SCREEN_WIDTH-32, 30)];
|
||||
label.font = [UIFont boldSystemFontOfSize:16];
|
||||
label.text = @"骑士特权";
|
||||
label.textColor = RGB16A(0x000000, 0.85);
|
||||
[header addSubview:label];
|
||||
return header;
|
||||
}
|
||||
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
|
||||
return 42;
|
||||
}
|
||||
|
||||
-(UITableView *)tableView{
|
||||
if (!_tableView) {
|
||||
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, SCREEN_HEIGHT-NavContentHeight) style:UITableViewStyleGrouped];
|
||||
self.tableView.backgroundColor = [UIColor clearColor];
|
||||
self.tableView.delegate = self;
|
||||
self.tableView.dataSource = self;
|
||||
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
|
||||
-(UIView *)headerView{
|
||||
if (!_headerView) {
|
||||
_headerView = [[UIView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, 280)];
|
||||
[_headerView addSubview:self.resultImageView];
|
||||
[_headerView addSubview:self.resultLabel];
|
||||
[_headerView addSubview:self.titleLabel];
|
||||
[_headerView addSubview:self.nobilityImageView];
|
||||
|
||||
[self.resultImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(68);
|
||||
make.height.mas_equalTo(60);
|
||||
make.top.mas_equalTo(25);
|
||||
make.centerX.equalTo(_headerView);
|
||||
}];
|
||||
[self.resultLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(22);
|
||||
make.centerX.equalTo(_headerView);
|
||||
make.top.equalTo(self.resultImageView.mas_bottom).offset(7);
|
||||
}];
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(20);
|
||||
make.centerX.equalTo(_headerView);
|
||||
make.top.equalTo(self.resultLabel.mas_bottom).offset(7);
|
||||
}];
|
||||
[self.nobilityImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(104);
|
||||
make.height.mas_equalTo(104);
|
||||
make.top.equalTo(self.titleLabel.mas_bottom).offset(36);
|
||||
make.centerX.equalTo(_headerView);
|
||||
}];
|
||||
}
|
||||
return _headerView;
|
||||
}
|
||||
|
||||
-(UIImageView *)resultImageView{
|
||||
if (!_resultImageView) {
|
||||
_resultImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_pay_result_successs"]];
|
||||
}
|
||||
return _resultImageView;
|
||||
}
|
||||
-(UILabel *)resultLabel{
|
||||
if (!_resultLabel) {
|
||||
_resultLabel = [[UILabel alloc] init];
|
||||
_resultLabel.textColor = RGB16(0x333333);
|
||||
_resultLabel.font = [UIFont boldSystemFontOfSize:20];
|
||||
_resultLabel.text = @"支付成功";
|
||||
}
|
||||
return _resultLabel;
|
||||
}
|
||||
-(UILabel *)titleLabel{
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.textColor = RGB16A(0x000000,0.65);
|
||||
_titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
-(UIImageView *)nobilityImageView{
|
||||
if (!_nobilityImageView) {
|
||||
_nobilityImageView = [[UIImageView alloc] init];
|
||||
}
|
||||
return _nobilityImageView;
|
||||
}
|
||||
@end
|
||||
17
QXLive/Mine(音域)/Controller/爵位/QXNobilityBuyViewController.h
Normal file
17
QXLive/Mine(音域)/Controller/爵位/QXNobilityBuyViewController.h
Normal file
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// QXNobilityBuyViewController.h
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/7.
|
||||
//
|
||||
|
||||
#import "QXBaseViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXNobilityBuyViewController : QXBaseViewController
|
||||
/// 购买id
|
||||
@property (nonatomic,strong)NSString *nobility_id;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
343
QXLive/Mine(音域)/Controller/爵位/QXNobilityBuyViewController.m
Normal file
343
QXLive/Mine(音域)/Controller/爵位/QXNobilityBuyViewController.m
Normal file
@@ -0,0 +1,343 @@
|
||||
//
|
||||
// QXNobilityBuyViewController.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/7.
|
||||
//
|
||||
|
||||
#import "QXNobilityBuyViewController.h"
|
||||
#import "QXNobilityBuyDesCell.h"
|
||||
#import "QXRechargePayTypeTableCell.h"
|
||||
#import "QXNobilityPriceView.h"
|
||||
#import "QXMineNetwork.h"
|
||||
#import "QXBuyNobilitySuccessViewController.h"
|
||||
#import <AlipaySDK/AlipaySDK.h>
|
||||
#import <WXApi.h>
|
||||
|
||||
@interface QXNobilityBuyViewController ()<UITableViewDelegate,UITableViewDataSource>
|
||||
@property (nonatomic,strong)UITableView *tableView;
|
||||
@property (nonatomic,strong)QXNobilityGetPriceModel *model;
|
||||
@property (nonatomic,strong)NSMutableArray* payTypeArray;
|
||||
@property (nonatomic,strong)QXNobilityPriceView *priceView;
|
||||
|
||||
@property (nonatomic,strong)UIView *footerView;
|
||||
|
||||
@property (nonatomic,strong)UIView *tableFooterView;
|
||||
|
||||
@property (nonatomic,assign)BOOL isSelectedAgreement;
|
||||
@property (nonatomic,strong)QXPayTypeModel* selectedPayTypeModel;
|
||||
@end
|
||||
|
||||
@implementation QXNobilityBuyViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view.
|
||||
}
|
||||
-(void)viewWillAppear:(BOOL)animated{
|
||||
[super viewWillAppear:animated];
|
||||
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
||||
}
|
||||
-(void)viewWillDisappear:(BOOL)animated{
|
||||
[super viewWillDisappear:animated];
|
||||
}
|
||||
-(void)setNavgationItems{
|
||||
[super setNavgationItems];
|
||||
self.navigationItem.title = @"支付";
|
||||
}
|
||||
- (void)initSubViews{
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(paySuccess) name:noticeAlipayResult object:nil];
|
||||
self.tableView.tableHeaderView = self.priceView;
|
||||
self.tableView.tableFooterView = self.tableFooterView;
|
||||
[self.view addSubview:self.tableView];
|
||||
[self getRechargeList];
|
||||
}
|
||||
|
||||
-(void)setNobility_id:(NSString *)nobility_id{
|
||||
_nobility_id = nobility_id;
|
||||
MJWeakSelf
|
||||
[QXMineNetwork getNobilityPriceWithId:nobility_id successBlock:^(QXNobilityGetPriceModel * _Nonnull model) {
|
||||
weakSelf.model = model;
|
||||
weakSelf.priceView.model = model;
|
||||
[weakSelf.tableView reloadData];
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
-(void)getRechargeList{
|
||||
MJWeakSelf
|
||||
|
||||
[QXMineNetwork walletPayTypeWithUserId:QXGlobal.shareGlobal.loginModel.user_id successBlock:^(QXPayTypeStatusModel * _Nonnull model) {
|
||||
[weakSelf.payTypeArray removeAllObjects];
|
||||
if (model.wx.is_pay_open.intValue == 1) {
|
||||
[weakSelf.payTypeArray addObject:model.wx];
|
||||
}
|
||||
if (model.ali.is_pay_open.intValue == 1) {
|
||||
[weakSelf.payTypeArray addObject:model.ali];
|
||||
}
|
||||
if (model.wx_tl.is_pay_open.intValue == 1) {
|
||||
[weakSelf.payTypeArray addObject:model.wx_tl];
|
||||
}
|
||||
if (model.ali_tl.is_pay_open.intValue == 1) {
|
||||
[weakSelf.payTypeArray addObject:model.ali_tl];
|
||||
}
|
||||
[weakSelf.tableView reloadData];
|
||||
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
-(void)payAction{
|
||||
if (!self.isSelectedAgreement) {
|
||||
showToast(@"请先阅读并同意爵位用户协议");
|
||||
return;
|
||||
}
|
||||
if (self.selectedPayTypeModel == nil) {
|
||||
showToast(@"请选择支付方式");
|
||||
return;
|
||||
}
|
||||
@weakify(self)
|
||||
[QXMineNetwork rechargePayWithMoney:self.model.price coin:@"" type:self.selectedPayTypeModel.type userId:QXGlobal.shareGlobal.loginModel.user_id typeId:@"" nobility_id:self.nobility_id successBlock:^(NSDictionary * _Nonnull dict) {
|
||||
@strongify(self)
|
||||
if (self.selectedPayTypeModel.type.intValue == 2) {
|
||||
NSDictionary *resultDict = dict[@"data"];
|
||||
NSString *order = [NSString stringWithFormat:@"%@",resultDict[@"ali"]];
|
||||
[[AlipaySDK defaultService] payOrder:order fromScheme:AppScheme callback:^(NSDictionary *resultDic) {
|
||||
NSLog(@"支付宝H5支付回调 - %@", resultDic);
|
||||
|
||||
}];
|
||||
}else if (self.selectedPayTypeModel.type.intValue == 1) {
|
||||
NSDictionary *resultDict = dict[@"data"][@"wx"];
|
||||
NSString *appid = resultDict[@"appid"];
|
||||
NSString *partnerId = resultDict[@"partnerid"];
|
||||
NSString *prepayId = [NSString stringWithFormat:@"%@",resultDict[@"prepayid"]];
|
||||
NSString *nonceStr = resultDict[@"noncestr"];
|
||||
UInt32 timeStamp = (UInt32)[resultDict[@"timestamp"] intValue];
|
||||
NSString *package = resultDict[@"package"];
|
||||
NSString *sign = resultDict[@"sign"];
|
||||
PayReq *req = [[PayReq alloc] init];
|
||||
req.openID = appid;
|
||||
req.partnerId = partnerId;
|
||||
req.prepayId = prepayId;
|
||||
req.nonceStr = nonceStr;
|
||||
req.timeStamp = timeStamp;
|
||||
req.package = package;
|
||||
req.sign = sign;
|
||||
[WXApi sendReq:req completion:^(BOOL success) {
|
||||
|
||||
}];
|
||||
}
|
||||
else if (self.selectedPayTypeModel.type.intValue == 4) {
|
||||
NSMutableDictionary*dic = [NSMutableDictionary dictionaryWithDictionary:dict[@"data"][@"tl"]];
|
||||
[dic removeObjectForKey:@"json_data"];
|
||||
NSString *json = [dic jsonStringEncoded];
|
||||
NSString *thirdPartSchema = [NSString stringWithFormat:@"thirdPartSchema=%@://",AppScheme];
|
||||
NSString *json1 = [json stringByReplacingOccurrencesOfString:@"\\" withString:@""];
|
||||
NSCharacterSet *customSet1 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
|
||||
// NSCharacterSet *customSet2 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
|
||||
NSCharacterSet *customSet3 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
|
||||
NSString *json2 = [json1 stringByAddingPercentEncodingWithAllowedCharacters:customSet1];
|
||||
NSString *encodedString = [thirdPartSchema stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
|
||||
NSString *queryString = [NSString stringWithFormat:@"payinfo=%@", json2];
|
||||
NSString *doubleEncodedQuery = [queryString stringByAddingPercentEncodingWithAllowedCharacters:customSet3];
|
||||
NSString *jumpStr = [NSString stringWithFormat:@"alipays://platformapi/startapp?appId=2021001104615521&page=pages/orderDetail/orderDetail&%@&query=%@",encodedString,doubleEncodedQuery];
|
||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:jumpStr] options:@{} completionHandler:nil];
|
||||
}else if (self.selectedPayTypeModel.type.intValue == 5) {
|
||||
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
|
||||
launchMiniProgramReq.userName = @"gh_e64a1a89a0ad";
|
||||
NSDictionary *dic = dict[@"data"][@"tl"];
|
||||
NSString *param = @"";
|
||||
for (NSString*key in dic.allKeys) {
|
||||
if (param.length == 0) {
|
||||
param = [param stringByAppendingFormat:@"%@=%@",key,dic[key]];
|
||||
}else{
|
||||
param = [param stringByAppendingFormat:@"&%@=%@",key,dic[key]];
|
||||
}
|
||||
}
|
||||
launchMiniProgramReq.path = [NSString stringWithFormat:@"pages/orderDetail/orderDetail?%@",param];
|
||||
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;
|
||||
[WXApi sendReq:launchMiniProgramReq completion:nil];
|
||||
}
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
-(void)paySuccess{
|
||||
QXBuyNobilitySuccessViewController *vc = [[QXBuyNobilitySuccessViewController alloc] init];
|
||||
vc.model = self.model;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
-(void)agreementAction{
|
||||
// id = 30;
|
||||
NSString *urlString = [NSString stringWithFormat:@"%@api/Page/page_show?id=%@",ServerUrl,@"30"];
|
||||
QXBaseWebViewController *vc = [[QXBaseWebViewController alloc] init];
|
||||
vc.urlStr = urlString;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
-(void)selectedAction:(UIButton*)sender{
|
||||
sender.selected = !sender.selected;
|
||||
self.isSelectedAgreement = sender.isSelected;
|
||||
}
|
||||
|
||||
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
|
||||
return 2;
|
||||
}
|
||||
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
|
||||
if (section == 0) {
|
||||
return self.payTypeArray.count;
|
||||
}else{
|
||||
return self.model.power_list.count;
|
||||
}
|
||||
}
|
||||
|
||||
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
if (indexPath.section == 0) {
|
||||
QXRechargePayTypeTableCell *cell = [QXRechargePayTypeTableCell cellWithTableView:tableView];
|
||||
cell.model = self.payTypeArray[indexPath.row];
|
||||
return cell;
|
||||
}else{
|
||||
QXNobilityBuyDesCell *cell = [QXNobilityBuyDesCell cellWithTableView:tableView];
|
||||
QXNobilityGetPricePowerList *md = self.model.power_list[indexPath.row];
|
||||
cell.titleLabel.text = md.content;
|
||||
return cell;
|
||||
}
|
||||
}
|
||||
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
return 36;
|
||||
}
|
||||
|
||||
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
|
||||
if (section == 0) {
|
||||
UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 42)];
|
||||
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(16, 12, SCREEN_WIDTH-32, 30)];
|
||||
label.font = [UIFont boldSystemFontOfSize:16];
|
||||
label.text = @"支付方式";
|
||||
label.textColor = RGB16A(0x000000, 0.85);
|
||||
[header addSubview:label];
|
||||
return header;
|
||||
}else{
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
|
||||
if (section == 0) {
|
||||
return 42;
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
|
||||
if (section == 0) {
|
||||
return self.footerView;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
|
||||
if (section == 0) {
|
||||
return self.footerView.height;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
if (indexPath.section == 0) {
|
||||
QXPayTypeModel *model = self.payTypeArray[indexPath.row];
|
||||
if (model == self.selectedPayTypeModel) {
|
||||
return;
|
||||
}
|
||||
if (self.selectedPayTypeModel) {
|
||||
self.selectedPayTypeModel.isSelected = NO;
|
||||
}
|
||||
model.isSelected = YES;
|
||||
self.selectedPayTypeModel = model;
|
||||
[tableView reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-(UITableView *)tableView{
|
||||
if (!_tableView) {
|
||||
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, SCREEN_HEIGHT-NavContentHeight) style:UITableViewStyleGrouped];
|
||||
self.tableView.backgroundColor = [UIColor clearColor];
|
||||
self.tableView.delegate = self;
|
||||
self.tableView.dataSource = self;
|
||||
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
-(QXNobilityPriceView *)priceView{
|
||||
if (!_priceView) {
|
||||
_priceView = [[QXNobilityPriceView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 187)];
|
||||
}
|
||||
return _priceView;
|
||||
}
|
||||
-(UIView *)footerView{
|
||||
if (!_footerView) {
|
||||
_footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 120)];
|
||||
UIButton *payBtn = [[UIButton alloc] initWithFrame:CGRectMake(37, 28, SCREEN_WIDTH-37*2, 42)];
|
||||
payBtn.backgroundColor = QXConfig.themeColor;
|
||||
[payBtn addRoundedCornersWithRadius:21];
|
||||
[payBtn setTitle:@"立即支付" forState:(UIControlStateNormal)];
|
||||
[payBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
|
||||
payBtn.titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
[payBtn addTarget:self action:@selector(payAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
[_footerView addSubview:payBtn];
|
||||
|
||||
UILabel *titleLabel = [[UILabel alloc] init];
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"点击支付即表示您同意《爵位用户协议》"];
|
||||
[attr yy_setColor:QXConfig.textColor range:NSMakeRange(0, attr.length)];
|
||||
[attr yy_setColor:QXConfig.themeColor range:NSMakeRange(attr.length-8, 8)];
|
||||
[attr yy_setFont:[UIFont systemFontOfSize:12] range:NSMakeRange(0, attr.length)];
|
||||
titleLabel.attributedText = attr;
|
||||
[titleLabel sizeToFit];
|
||||
titleLabel.x = (SCREEN_WIDTH-titleLabel.width)/2+15;
|
||||
titleLabel.y = payBtn.bottom+9;
|
||||
titleLabel.height = 30;
|
||||
[_footerView addSubview:titleLabel];
|
||||
|
||||
|
||||
UIButton *agreementBtn = [[UIButton alloc] initWithFrame:CGRectMake(titleLabel.right-100, titleLabel.top, 100, 30)];
|
||||
[agreementBtn addTarget:self action:@selector(agreementAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
[_footerView addSubview:agreementBtn];
|
||||
|
||||
UIButton *selectedBtn = [[UIButton alloc] initWithFrame:CGRectMake(titleLabel.left-30, titleLabel.top, 30, 30)];
|
||||
[selectedBtn setImage:[UIImage imageNamed:@"login_agreement_nor"] forState:(UIControlStateNormal)];
|
||||
[selectedBtn setImage:[UIImage imageNamed:@"login_agreement_sel"] forState:(UIControlStateSelected)];
|
||||
[selectedBtn addTarget:self action:@selector(selectedAction:) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
[_footerView addSubview:selectedBtn];
|
||||
}
|
||||
return _footerView;
|
||||
}
|
||||
|
||||
-(UIView *)tableFooterView{
|
||||
if (!_tableFooterView) {
|
||||
_tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 90)];
|
||||
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_desc_icon"]];
|
||||
imageView.frame = CGRectMake(16, 15, 18, 18);
|
||||
[_tableFooterView addSubview:imageView];
|
||||
|
||||
UILabel *titleLabel =[[ UILabel alloc] initWithFrame:CGRectMake(imageView.right+5, 15, 100, 18)];
|
||||
titleLabel.textColor = QXConfig.textColor;
|
||||
titleLabel.text = @"升级说明";
|
||||
titleLabel.font = [UIFont boldSystemFontOfSize:16];
|
||||
[_tableFooterView addSubview:titleLabel];
|
||||
|
||||
UILabel *bottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, imageView.bottom+10, SCREEN_WIDTH-16*2, 42)];
|
||||
bottomLabel.numberOfLines = 0;
|
||||
bottomLabel.textColor = QXConfig.textColor;
|
||||
bottomLabel.font = [UIFont systemFontOfSize:14];
|
||||
bottomLabel.text = @"如果您当前已有爵位,升级时将自动计算剩余价值抵扣新爵位费用";
|
||||
[_tableFooterView addSubview:bottomLabel];
|
||||
}
|
||||
return _tableFooterView;
|
||||
}
|
||||
-(NSMutableArray *)payTypeArray{
|
||||
if (!_payTypeArray) {
|
||||
_payTypeArray = [NSMutableArray array];
|
||||
}
|
||||
return _payTypeArray;
|
||||
}
|
||||
@end
|
||||
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// QXNobilityDetailViewController.h
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/8.
|
||||
//
|
||||
|
||||
#import "QXBaseViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXNobilityDetailViewController : QXBaseViewController
|
||||
@property (nonatomic,strong)NSString *cruuent_nobility_id;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
243
QXLive/Mine(音域)/Controller/爵位/QXNobilityDetailViewController.m
Normal file
243
QXLive/Mine(音域)/Controller/爵位/QXNobilityDetailViewController.m
Normal file
@@ -0,0 +1,243 @@
|
||||
//
|
||||
// QXNobilityDetailViewController.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/8.
|
||||
//
|
||||
|
||||
#import "QXNobilityDetailViewController.h"
|
||||
#import "GKCycleScrollView.h"
|
||||
#import "QXNobilityDetailTopCell.h"
|
||||
#import "QXMineNetwork.h"
|
||||
#import "QXNobilityDetailCell.h"
|
||||
#import "QXNobilityBuyViewController.h"
|
||||
|
||||
@interface QXNobilityDetailViewController ()<GKCycleScrollViewDataSource,GKCycleScrollViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource>
|
||||
@property (nonatomic,strong)GKCycleScrollView *cycleScrollView;
|
||||
@property (nonatomic,strong)UIView *headerView;
|
||||
@property (nonatomic,strong)UIImageView *headerImageView;
|
||||
@property (nonatomic,strong)UILabel *headerLabel;
|
||||
@property (nonatomic,strong)UICollectionView *collectionView;
|
||||
@property (nonatomic,strong)QXNobilityListModel *currentModel;
|
||||
|
||||
@property (nonatomic,strong)UIView *bottomView;
|
||||
@property (nonatomic,strong)UIImageView *bottomImageView;
|
||||
@property (nonatomic,strong)UILabel *bottomLabel;
|
||||
@property (nonatomic,strong)UIButton *openBtn;
|
||||
|
||||
@property (nonatomic,assign)NSInteger currentIndex;
|
||||
@end
|
||||
|
||||
@implementation QXNobilityDetailViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
self.isNoChangeBgImage = YES;
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view.
|
||||
}
|
||||
-(void)viewWillAppear:(BOOL)animated{
|
||||
[super viewWillAppear:animated];
|
||||
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
||||
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0xffffff)};
|
||||
}
|
||||
-(void)viewWillDisappear:(BOOL)animated{
|
||||
[super viewWillDisappear:animated];
|
||||
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0x000000)};
|
||||
}
|
||||
-(void)setNavgationItems{
|
||||
[super setNavgationItems];
|
||||
self.navigationTintColor = RGB16(0xffffff);
|
||||
self.navigationItem.title = @"爵位详情";
|
||||
UIButton*createBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
|
||||
[createBtn setImage:[UIImage imageNamed:@"nobility_help_icon"] forState:(UIControlStateNormal)];
|
||||
createBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentTrailing;
|
||||
[createBtn addTarget:self action:@selector(helpAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:createBtn];
|
||||
}
|
||||
|
||||
-(void)helpAction{
|
||||
NSString *urlString = [NSString stringWithFormat:@"%@api/Page/page_show?id=%@",ServerUrl,@"29"];
|
||||
QXBaseWebViewController *vc = [[QXBaseWebViewController alloc] init];
|
||||
vc.urlStr = urlString;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
-(void)getData{
|
||||
MJWeakSelf
|
||||
[QXMineNetwork getNobilityListSuccessBlock:^(NSArray<QXNobilityListModel *> * _Nonnull list) {
|
||||
[weakSelf.dataArray removeAllObjects];
|
||||
[weakSelf.dataArray addObjectsFromArray:list];
|
||||
weakSelf.currentModel = weakSelf.dataArray.firstObject;
|
||||
weakSelf.headerLabel.text = [NSString stringWithFormat:@"专属特权%@",self.currentModel.power.count_str];
|
||||
[weakSelf setPirce];
|
||||
for (NSInteger i = 0;i<weakSelf.dataArray.count;i++) {
|
||||
QXNobilityListModel*md = weakSelf.dataArray[i];
|
||||
if ([md.lid isEqualToString:weakSelf.cruuent_nobility_id]) {
|
||||
weakSelf.currentIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
weakSelf.cycleScrollView.defaultSelectIndex = weakSelf.currentIndex;
|
||||
[weakSelf.cycleScrollView reloadData];
|
||||
[weakSelf.collectionView reloadData];
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
|
||||
}];
|
||||
}
|
||||
-(void)initSubViews{
|
||||
[self updateBgImage:@"nobility_detail_bg"];
|
||||
[self.view addSubview:self.headerView];
|
||||
[self.view addSubview:self.cycleScrollView];
|
||||
[self.view addSubview:self.bottomView];
|
||||
|
||||
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
||||
int itemWidth = (SCREEN_WIDTH-16*2-8*2)/3;
|
||||
layout.itemSize = CGSizeMake(itemWidth, itemWidth);
|
||||
layout.minimumLineSpacing = 8;
|
||||
layout.minimumInteritemSpacing = 8;
|
||||
layout.sectionInset = UIEdgeInsetsMake(0, 16, 0, 16);
|
||||
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
|
||||
self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, self.headerView.bottom+16, SCREEN_WIDTH, SCREEN_HEIGHT-self.headerView.bottom-16-24-80) collectionViewLayout:layout];
|
||||
[self.collectionView registerNib:[UINib nibWithNibName:@"QXNobilityDetailCell" bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:@"QXNobilityDetailCell"];
|
||||
self.collectionView.delegate = self;
|
||||
self.collectionView.dataSource = self;
|
||||
self.collectionView.showsHorizontalScrollIndicator = NO;
|
||||
self.collectionView.bounces = NO;
|
||||
self.collectionView.pagingEnabled = NO;
|
||||
self.collectionView.backgroundColor = [UIColor clearColor];
|
||||
[self.view addSubview:self.collectionView];
|
||||
}
|
||||
|
||||
-(void)setPirce{
|
||||
NSString *price = [NSString stringWithFormat:@"%@开通:%@/%@天",self.currentModel.name,self.currentModel.pay_price,self.currentModel.day];
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:price];
|
||||
[attr yy_setColor:RGB16(0xFFDA7E) range:[price rangeOfString:self.currentModel.pay_price]];
|
||||
self.bottomLabel.attributedText = attr;
|
||||
}
|
||||
|
||||
-(void)openAction{
|
||||
QXNobilityBuyViewController *vc = [[QXNobilityBuyViewController alloc] init];
|
||||
vc.nobility_id = self.currentModel.lid;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
|
||||
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
|
||||
return self.currentModel.power.list.count;
|
||||
}
|
||||
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
|
||||
QXNobilityDetailCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXNobilityDetailCell" forIndexPath:indexPath];
|
||||
cell.model = self.currentModel.power.list[indexPath.row];
|
||||
return cell;
|
||||
}
|
||||
|
||||
#pragma mark - GKCycleScrollViewDataSource,GKCycleScrollViewDelegate
|
||||
- (NSInteger)numberOfCellsInCycleScrollView:(GKCycleScrollView *)cycleScrollView {
|
||||
return self.dataArray.count;
|
||||
}
|
||||
- (GKCycleScrollViewCell *)cycleScrollView:(GKCycleScrollView *)cycleScrollView cellForViewAtIndex:(NSInteger)index {
|
||||
GKCycleScrollViewCell *cell = [cycleScrollView dequeueReusableCell];
|
||||
if (!cell) {
|
||||
cell = [QXNobilityDetailTopCell new];
|
||||
}
|
||||
QXNobilityDetailTopCell *topcell = (QXNobilityDetailTopCell*)cell;
|
||||
topcell.index = index;
|
||||
topcell.myIndex = self.currentIndex;
|
||||
topcell.model = self.dataArray[index];
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (CGSize)sizeForCellInCycleScrollView:(GKCycleScrollView *)cycleScrollView {
|
||||
return CGSizeMake(220, 242);
|
||||
}
|
||||
-(void)cycleScrollView:(GKCycleScrollView *)cycleScrollView didScrollCellToIndex:(NSInteger)index{
|
||||
self.currentModel = self.dataArray[index];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
self.headerLabel.text = [NSString stringWithFormat:@"专属特权%@",self.currentModel.power.count_str];
|
||||
[self setPirce];
|
||||
[self.collectionView reloadData];
|
||||
});
|
||||
}
|
||||
- (void)cycleScrollView:(GKCycleScrollView *)cycleScrollView didSelectCellAtIndex:(NSInteger)index {
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(GKCycleScrollView *)cycleScrollView{
|
||||
if (!_cycleScrollView) {
|
||||
_cycleScrollView = [[GKCycleScrollView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, 242)];
|
||||
_cycleScrollView.dataSource = self;
|
||||
_cycleScrollView.delegate = self;
|
||||
_cycleScrollView.minimumCellAlpha = 0.0;
|
||||
_cycleScrollView.leftRightMargin = 16.0f;
|
||||
_cycleScrollView.topBottomMargin = 15.0f;
|
||||
_cycleScrollView.isInfiniteLoop = NO;
|
||||
_cycleScrollView.isAutoScroll = NO;
|
||||
}
|
||||
return _cycleScrollView;
|
||||
}
|
||||
|
||||
|
||||
-(UIView *)headerView{
|
||||
if (!_headerView) {
|
||||
_headerView = [[UIView alloc] initWithFrame:CGRectMake(0,self.cycleScrollView.bottom+16, SCREEN_WIDTH, ScaleWidth(35))];
|
||||
[_headerView addSubview:self.headerImageView];;
|
||||
[_headerView addSubview:self.headerLabel];;
|
||||
}
|
||||
return _headerView;
|
||||
}
|
||||
|
||||
-(UIImageView *)headerImageView{
|
||||
if (!_headerImageView) {
|
||||
_headerImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_power_header_bg"]];
|
||||
_headerImageView.contentMode = UIViewContentModeScaleToFill;
|
||||
_headerImageView.frame = CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(35));
|
||||
}
|
||||
return _headerImageView;
|
||||
}
|
||||
-(UILabel *)headerLabel{
|
||||
if (!_headerLabel) {
|
||||
_headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(35))];
|
||||
_headerLabel.textColor = RGB16(0xFFEDBD);
|
||||
_headerLabel.font = [UIFont systemFontOfSize:16];
|
||||
_headerLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _headerLabel;
|
||||
}
|
||||
|
||||
-(UIView *)bottomView{
|
||||
if (!_bottomView) {
|
||||
_bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-24-80, SCREEN_WIDTH, 80+24)];
|
||||
[_bottomView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)];
|
||||
[_bottomView addSubview:self.bottomImageView];
|
||||
[_bottomView addSubview:self.openBtn];
|
||||
[_bottomView addSubview:self.bottomLabel];
|
||||
}
|
||||
return _bottomView;
|
||||
}
|
||||
|
||||
-(UIImageView *)bottomImageView{
|
||||
if (!_bottomImageView) {
|
||||
_bottomImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_detail_bottom_bg"]];
|
||||
_bottomImageView.frame = CGRectMake(0, 0, self.bottomView.width, self.bottomView.height);
|
||||
}
|
||||
return _bottomImageView;
|
||||
}
|
||||
-(UIButton *)openBtn{
|
||||
if (!_openBtn) {
|
||||
_openBtn = [[UIButton alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-16-128, 19, 128, 41)];
|
||||
[_openBtn setBackgroundImage:[UIImage imageNamed:@"nobility_detail_open_btn"] forState:(UIControlStateNormal)];
|
||||
[_openBtn addTarget:self action:@selector(openAction) forControlEvents:(UIControlEventTouchUpInside)];;
|
||||
}
|
||||
return _openBtn;
|
||||
}
|
||||
|
||||
-(UILabel *)bottomLabel{
|
||||
if (!_bottomLabel) {
|
||||
_bottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 28, self.openBtn.left-16, 24)];
|
||||
_bottomLabel.textColor = RGB16(0xF7EAC9);
|
||||
_bottomLabel.font = [UIFont systemFontOfSize:16];
|
||||
}
|
||||
return _bottomLabel;
|
||||
}
|
||||
@end
|
||||
16
QXLive/Mine(音域)/Controller/爵位/QXNobilityViewController.h
Normal file
16
QXLive/Mine(音域)/Controller/爵位/QXNobilityViewController.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// QXNobilityViewController.h
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/7.
|
||||
//
|
||||
|
||||
#import "QXBaseViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXNobilityViewController : QXBaseViewController
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
176
QXLive/Mine(音域)/Controller/爵位/QXNobilityViewController.m
Normal file
176
QXLive/Mine(音域)/Controller/爵位/QXNobilityViewController.m
Normal file
@@ -0,0 +1,176 @@
|
||||
//
|
||||
// QXNobilityViewController.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/7.
|
||||
//
|
||||
|
||||
#import "QXNobilityViewController.h"
|
||||
#import "QXNobilityHeaderView.h"
|
||||
#import "QXNobilityContentView.h"
|
||||
#import "QXMineNetwork.h"
|
||||
#import "QXSeatHeaderView.h"
|
||||
#import "QXNobilityDetailViewController.h"
|
||||
#import "QXNobilityBuyViewController.h"
|
||||
|
||||
@interface QXNobilityViewController ()<QXNobilityHeaderViewDelegate>
|
||||
@property (nonatomic,strong)QXNobilityHeaderView *topView;
|
||||
@property (nonatomic,strong)UIView *nobilityBgView;
|
||||
@property (nonatomic,strong)UIView *nobilityContentView;
|
||||
@property (nonatomic,strong)UILabel *nobilityTitleLabel;
|
||||
//@property (nonatomic,strong)JXCategoryTitleView *categoryView;
|
||||
//@property (nonatomic,strong)JXCategoryListContainerView *containerView;
|
||||
@property (nonatomic,strong)UIView *bottomView;
|
||||
@property (nonatomic,strong)QXSeatHeaderView *userAvatarView;
|
||||
@property (nonatomic,strong)UILabel *bottomNickNameLabel;
|
||||
@property (nonatomic,strong)UIButton *bottomBuyBtn;
|
||||
@property (nonatomic,strong)NSMutableArray *titles;
|
||||
|
||||
@property (nonatomic,strong)QXNobilityContentView *contentView;;
|
||||
|
||||
@property (nonatomic,strong)QXNobilityModel* model;
|
||||
|
||||
@end
|
||||
|
||||
@implementation QXNobilityViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
self.isNoChangeBgImage = YES;
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view.
|
||||
}
|
||||
-(void)viewWillAppear:(BOOL)animated{
|
||||
[super viewWillAppear:animated];
|
||||
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
||||
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0xffffff)};
|
||||
}
|
||||
-(void)viewWillDisappear:(BOOL)animated{
|
||||
[super viewWillDisappear:animated];
|
||||
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0x000000)};
|
||||
}
|
||||
-(void)setNavgationItems{
|
||||
[super setNavgationItems];
|
||||
self.navigationTintColor = RGB16(0xffffff);
|
||||
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_nav_icon"]];
|
||||
imageView.frame = CGRectMake(0, 0, 71, 18);
|
||||
self.navigationItem.titleView = imageView;
|
||||
UIButton*createBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
|
||||
[createBtn setImage:[UIImage imageNamed:@"nobility_help_icon"] forState:(UIControlStateNormal)];
|
||||
createBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentTrailing;
|
||||
[createBtn addTarget:self action:@selector(helpAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:createBtn];
|
||||
|
||||
}
|
||||
- (void)initSubViews{
|
||||
[self updateBgImage:@"home_rank_vc_bg"];
|
||||
self.topView = [[QXNobilityHeaderView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH,0)];
|
||||
self.topView.delegate = self;
|
||||
[self.view addSubview:self.topView];
|
||||
|
||||
self.nobilityBgView = [[UIView alloc] initWithFrame:CGRectMake(16, self.topView.bottom, SCREEN_WIDTH-32, SCREEN_HEIGHT-self.topView.bottom-80)];
|
||||
self.nobilityBgView.backgroundColor = RGB16(0x1E2127);
|
||||
self.nobilityBgView.layer.borderWidth = 1;
|
||||
self.nobilityBgView.layer.borderColor = RGB16A(0xF5E9D1, 0.2).CGColor;
|
||||
[self.nobilityBgView addRoundedCornersWithRadius:12];
|
||||
[self.view addSubview:self.nobilityBgView];
|
||||
|
||||
self.nobilityContentView = [[UIView alloc] initWithFrame:CGRectMake(12, 12, self.nobilityBgView.width-24, self.nobilityBgView.height-24)];
|
||||
[self.nobilityContentView addRoundedCornersWithRadius:6];
|
||||
[self.nobilityBgView addSubview:self.nobilityContentView];
|
||||
|
||||
[self.view addSubview:self.bottomView];
|
||||
self.contentView = [[QXNobilityContentView alloc] initWithFrame:self.nobilityContentView.bounds];
|
||||
[self.nobilityContentView addSubview:self.contentView];
|
||||
}
|
||||
|
||||
-(void)getData{
|
||||
MJWeakSelf
|
||||
[QXMineNetwork getUserNobilitSuccessBlock:^(QXNobilityModel * _Nonnull model) {
|
||||
weakSelf.model = model;
|
||||
weakSelf.topView.model = model;
|
||||
weakSelf.contentView.model = model;
|
||||
[weakSelf.contentView reloadData];
|
||||
if (weakSelf.model.nobility_info.status.intValue == 0) {
|
||||
weakSelf.bottomView.hidden = YES;;
|
||||
}else{
|
||||
[weakSelf.userAvatarView setHeadIcon:model.user_info.avatar dress:@""];
|
||||
weakSelf.bottomNickNameLabel.text = [NSString stringWithFormat:@"%@的当前爵位状态是%@",model.user_info.nickname,model.nobility_info.name];
|
||||
weakSelf.bottomView.hidden = NO;;
|
||||
}
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
-(void)helpAction{
|
||||
NSString *urlString = [NSString stringWithFormat:@"%@api/Page/page_show?id=%@",ServerUrl,@"29"];
|
||||
QXBaseWebViewController *vc = [[QXBaseWebViewController alloc] init];
|
||||
vc.urlStr = urlString;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
-(void)buyAction{
|
||||
QXNobilityDetailViewController *vc = [[QXNobilityDetailViewController alloc] init];
|
||||
vc.cruuent_nobility_id = self.model.nobility_info.lid;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
|
||||
/// 去开通
|
||||
-(void)didOpenNobility{
|
||||
QXNobilityDetailViewController *vc = [[QXNobilityDetailViewController alloc] init];
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
/// 去续费
|
||||
-(void)didRenewNobility{
|
||||
QXNobilityBuyViewController *vc = [[QXNobilityBuyViewController alloc] init];
|
||||
vc.nobility_id = self.model.nobility_info.lid;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
|
||||
-(NSMutableArray *)titles{
|
||||
if (!_titles) {
|
||||
_titles = [NSMutableArray array];
|
||||
}
|
||||
return _titles;
|
||||
}
|
||||
-(UIView *)bottomView{
|
||||
if (!_bottomView) {
|
||||
_bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-57, SCREEN_WIDTH, 57)];
|
||||
[_bottomView addRoundedCornersWithRadius:20 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)];
|
||||
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_my_info_bg"]];
|
||||
imageView.frame = _bottomView.bounds;
|
||||
[_bottomView addSubview:imageView];
|
||||
[_bottomView addSubview:self.userAvatarView];
|
||||
[_bottomView addSubview:self.bottomNickNameLabel];
|
||||
[_bottomView addSubview:self.bottomBuyBtn];
|
||||
}
|
||||
return _bottomView;
|
||||
}
|
||||
-(QXSeatHeaderView *)userAvatarView{
|
||||
if (!_userAvatarView) {
|
||||
_userAvatarView = [[QXSeatHeaderView alloc] initWithFrame:CGRectMake(12, 12, 30, 30)];
|
||||
// [_userAvatarView setHeadIcon:QXGlobal.shareGlobal.loginModel.avatar dress:@""];
|
||||
}
|
||||
return _userAvatarView;
|
||||
}
|
||||
|
||||
-(UIButton *)bottomBuyBtn{
|
||||
if (!_bottomBuyBtn) {
|
||||
_bottomBuyBtn = [[UIButton alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-14-118, (57-36)/2, 118, 36)];
|
||||
[_bottomBuyBtn setBackgroundImage:[UIImage imageNamed:@"nobility_update_btn"] forState:(UIControlStateNormal)];
|
||||
[_bottomBuyBtn addTarget:self action:@selector(buyAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
}
|
||||
return _bottomBuyBtn;
|
||||
}
|
||||
-(UILabel *)bottomNickNameLabel{
|
||||
if (!_bottomNickNameLabel) {
|
||||
_bottomNickNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.userAvatarView.right+6, 0, self.bottomBuyBtn.left-self.userAvatarView.right-20, 57)];
|
||||
// _bottomNickNameLabel.text = QXGlobal.shareGlobal.loginModel.nickname;
|
||||
_bottomNickNameLabel.textColor = RGB16(0xF5E9D1);
|
||||
_bottomNickNameLabel.font = [UIFont systemFontOfSize:12];
|
||||
}
|
||||
return _bottomNickNameLabel;
|
||||
}
|
||||
@end
|
||||
@@ -21,6 +21,7 @@
|
||||
@implementation QXGiftWallViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
self.isNoChangeBgImage = YES;
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view.
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXSettingViewController : QXBaseViewController
|
||||
@property (nonatomic,copy)void(^logOutBlock)(BOOL isCancel);
|
||||
@property (nonatomic,assign)BOOL haveNobility;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -36,15 +36,27 @@ static NSInteger maxClickCount = 6;
|
||||
self.navigationItem.title = QXText(@"设置");
|
||||
}
|
||||
-(void)initSubViews{
|
||||
NSArray *section1 = @[
|
||||
// QXText(@"消息通知"),
|
||||
// QXText(@"未成年人模式"),
|
||||
QXText(@"黑名单"),
|
||||
QXText(@"设置密码"),
|
||||
QXText(@"手机绑定"),
|
||||
QXText(@"关于我们"),
|
||||
QXText(@"版本号")
|
||||
];
|
||||
NSArray *section1;
|
||||
if (self.haveNobility) {
|
||||
section1 = @[
|
||||
QXText(@"隐身进入房间"),
|
||||
QXText(@"黑名单"),
|
||||
QXText(@"设置密码"),
|
||||
QXText(@"手机绑定"),
|
||||
QXText(@"关于我们"),
|
||||
QXText(@"版本号")
|
||||
];
|
||||
}else{
|
||||
section1 = @[
|
||||
// QXText(@"消息通知"),
|
||||
QXText(@"黑名单"),
|
||||
QXText(@"设置密码"),
|
||||
QXText(@"手机绑定"),
|
||||
QXText(@"关于我们"),
|
||||
QXText(@"版本号")
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
NSArray *section2 = @[
|
||||
QXText(@"切换账号"),
|
||||
@@ -62,7 +74,8 @@ static NSInteger maxClickCount = 6;
|
||||
QXText(@"切换账号"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow],
|
||||
QXText(@"实名认证"):[NSNumber numberWithInteger:QXSettingCellTypeNormal],
|
||||
QXText(@"账号注销"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow],
|
||||
QXText(@"退出登录"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow]
|
||||
QXText(@"退出登录"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow],
|
||||
QXText(@"隐身进入房间"):[NSNumber numberWithInteger:QXSettingCellTypeSwitch]
|
||||
};
|
||||
|
||||
self.controllerDict = @{
|
||||
@@ -89,7 +102,8 @@ static NSInteger maxClickCount = 6;
|
||||
QXText(@"切换账号"):@"",
|
||||
QXText(@"实名认证"):@"",
|
||||
QXText(@"账号注销"):@"",
|
||||
QXText(@"退出登录"):@""
|
||||
QXText(@"退出登录"):@"",
|
||||
QXText(@"隐身进入房间"):QXGlobal.shareGlobal.loginModel.hide_status
|
||||
};
|
||||
[self.dataArray addObject:section1];
|
||||
[self.dataArray addObject:section2];
|
||||
@@ -111,10 +125,27 @@ static NSInteger maxClickCount = 6;
|
||||
NSString *value = self.valueDict[text];
|
||||
cell.titleLabel.text = text;
|
||||
cell.detailLabel.text = value;
|
||||
cell.btnSwitch.selected = value.intValue==1;
|
||||
[cell.btnSwitch addTarget:self action:@selector(setHideJoinRoom:) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
cell.cellType = [self.cellTypeDict[text] integerValue];
|
||||
cell.needLine = (indexPath.row>=0) && (indexPath.row < arr.count-1);
|
||||
return cell;
|
||||
}
|
||||
|
||||
-(void)setHideJoinRoom:(UIButton *)sender{
|
||||
sender.selected = !sender.selected;
|
||||
__block NSString *status = QXGlobal.shareGlobal.loginModel.hide_status;
|
||||
if ([status isEqualToString:@"0"]) {
|
||||
status = @"1";
|
||||
}else{
|
||||
status = @"0";
|
||||
}
|
||||
[QXMineNetwork getNobilityPriceWithHideStatus:status successBlock:^(NSDictionary * _Nonnull dict) {
|
||||
QXGlobal.shareGlobal.loginModel.hide_status = status;
|
||||
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
||||
|
||||
}];
|
||||
}
|
||||
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
|
||||
return [UIView new];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user