YMGuildManagementViewController.m 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. //
  2. // YMGuildManagementViewController.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/3/26.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMGuildManagementViewController.h"
  9. #import "GHTabViewCell.h"
  10. #import "YMGuildManagementViewModel.h"
  11. #import "YMGuildManagementMyEarningsInfoView.h"
  12. #import <JXPagingView/JXPagerView.h>
  13. #import "YMGuildManagementDatePickerViewController.h"
  14. @interface YMGuildManagementViewController ()<UITableViewDataSource,UITableViewDelegate>
  15. /// 公会管理VM
  16. @property (nonatomic, strong) YMGuildManagementViewModel *viewModel;
  17. @property (nonatomic, strong) UIImageView *bgImgv;
  18. @property (nonatomic, strong) UITableView *contentTableView;
  19. @property (nonatomic, strong) YMGuildManagementMyEarningsInfoView *infoView;
  20. @property (nonatomic, strong) YMGuildManagementDatePickerViewController *datePickManager;
  21. @end
  22. @implementation YMGuildManagementViewController
  23. @dynamic viewModel;
  24. - (UIStatusBarStyle)preferredStatusBarStyle {
  25. return UIStatusBarStyleLightContent;
  26. }
  27. - (void)viewDidLoad {
  28. [super viewDidLoad];
  29. self.ym_navigationStyle = YMBaseNavigationStyleClearBgWhiteBackArrow;
  30. [self.view addSubview:self.bgImgv];
  31. [self.bgImgv mas_makeConstraints:^(MASConstraintMaker *make) {
  32. make.top.leading.trailing.equalTo(self.view);
  33. make.height.equalTo(adapt(256));
  34. }];
  35. [self.view bringSubviewToFront:self.contentTableView];
  36. [self.view bringSubviewToFront:self.ym_customNavView];
  37. self.bgImgv.layer.zPosition = 1;
  38. self.contentTableView.layer.zPosition = 2;
  39. self.ym_customNavView.layer.zPosition = 3;
  40. }
  41. - (void)ym_setupViews{
  42. [self.view insertSubview:self.contentTableView atIndex:0];
  43. [self.view setNeedsUpdateConstraints];
  44. [self.view updateConstraintsIfNeeded];
  45. }
  46. //- (void)updateViewConstraints{
  47. // [super updateViewConstraints];
  48. //}
  49. - (void)ym_bindViewModel{
  50. [self.viewModel getGongHuiData];
  51. [self.infoView ym_bindViewModel:self.viewModel];
  52. @weakify(self)
  53. [[self.viewModel.refreshUISubject takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id result) {
  54. @strongify(self)
  55. [self.contentTableView reloadData];
  56. }];
  57. }
  58. - (UITableView *)contentTableView{
  59. if (!_contentTableView) {
  60. _contentTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight) style:UITableViewStylePlain];
  61. _contentTableView.delegate = self;
  62. _contentTableView.dataSource = self;
  63. _contentTableView.showsVerticalScrollIndicator = NO;
  64. _contentTableView.showsHorizontalScrollIndicator = NO;
  65. _contentTableView.separatorColor = UIColor.clearColor;
  66. _contentTableView.backgroundColor = UIColor.clearColor;
  67. _contentTableView.estimatedRowHeight = 0;
  68. _contentTableView.estimatedSectionHeaderHeight = 0;
  69. _contentTableView.estimatedSectionFooterHeight = 0;
  70. [_contentTableView registerNib:[UINib nibWithNibName:@"GHTabViewCell" bundle:[NSBundle bundleForClass:[GHTabViewCell class]]] forCellReuseIdentifier:@"GHTabViewCell"];
  71. _contentTableView.tableHeaderView = self.infoView;
  72. //_contentTableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
  73. }
  74. return _contentTableView;
  75. }
  76. - (UIImageView *)bgImgv {
  77. if (!_bgImgv) {
  78. _bgImgv = [[UIImageView alloc] init];
  79. _bgImgv.image = [UIImage imageNamed:@""];
  80. _bgImgv.backgroundColor = HexColorFromRGB(0xFE57B1);
  81. }
  82. return _bgImgv;
  83. }
  84. - (YMGuildManagementMyEarningsInfoView *)infoView{
  85. if (!_infoView) {
  86. _infoView = [[YMGuildManagementMyEarningsInfoView alloc]init];
  87. _infoView.frame = CGRectMake(0, 0, kScreenWidth, adapt(316));
  88. WS(weakSelf)
  89. // [[[_infoView.timeBtn1 rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) {
  90. // weakSelf.isStart = YES;
  91. // weakSelf.isEnd = NO;
  92. // [weakSelf openDatePickerPopupView];
  93. // }];
  94. // [[[_infoView.timeBtn2 rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) {
  95. // weakSelf.isStart = NO;
  96. // weakSelf.isEnd = YES;
  97. // [weakSelf openDatePickerPopupView];
  98. // }];
  99. [[[_infoView.btnView rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) {
  100. // weakSelf.isStart = YES;
  101. // weakSelf.isEnd = NO;
  102. [weakSelf openDatePickerPopupView];
  103. }];
  104. [[[_infoView.sortBtn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) {
  105. [weakSelf.viewModel showBottomSort];
  106. }];
  107. }
  108. return _infoView;
  109. }
  110. //- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
  111. // self.infoView.backgroundColor = UIColor.whiteColor;
  112. // return self.infoView;
  113. //}
  114. //
  115. //
  116. //- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
  117. // return adapt(256);
  118. //}
  119. //- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
  120. // return 40;
  121. //}
  122. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  123. return 358;
  124. }
  125. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  126. return 1;
  127. }
  128. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  129. return self.viewModel.mangeModel.list.count;
  130. }
  131. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  132. GHTabViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GHTabViewCell"];
  133. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  134. [cell ym_bindViewModel:self.viewModel.mangeModel.list[indexPath.item]];
  135. return cell;
  136. }
  137. - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  138. if (scrollView.contentOffset.y > (adapt(256) - kYMNavHeight)) {
  139. self.ym_customNavView.backgroundColor = HexColorFromRGBA(0xFF76C0, 1);
  140. } else {
  141. self.ym_customNavView.backgroundColor = UIColor.clearColor;
  142. }
  143. }
  144. - (void)openDatePickerPopupView{
  145. self.datePickManager = [[YMGuildManagementDatePickerViewController alloc] init];
  146. self.datePickManager.isStart = YES;
  147. self.datePickManager.isEnd = NO;
  148. // self.datePickManager.isShadeBackground = true;
  149. // self.datePickManager.cancelButtonFont = LCFont(15);
  150. // self.datePickManager.confirmButtonFont = LCFont(15);
  151. // self.datePickManager.cancelButtonTextColor = LZA3AABEColor;
  152. // self.datePickManager.confirmButtonTextColor = LZ273145Color;
  153. // self.datePickManager.headerViewBackgroundColor = [UIColor whiteColor];
  154. // self.datePickManager.headerHeight = 50;
  155. UIDatePicker *datePicker = self.datePickManager.datePicker;
  156. // datePicker.rowHeight = 35;
  157. // datePicker.middleTextColor = LZ273145Color;
  158. // datePicker.textColorOfSelectedRow = LZ273145Color;
  159. // datePicker.textColorOfOtherRow = LZD3D1D7Color;
  160. // datePicker.textFontOfSelectedRow = LCFont(17);
  161. // datePicker.textFontOfOtherRow = LCFont(17);
  162. // datePicker.lineBackgroundColor = [UIColor clearColor];
  163. NSDate *currentDate = [NSDate date];
  164. NSString *currentYear = [[YMCalendarUtils shareCalender] dateStrWithDate:currentDate dateStrFormatterStr:@"yyyy"];
  165. NSString *currentMonth = [[YMCalendarUtils shareCalender] dateStrWithDate:currentDate dateStrFormatterStr:@"MM"];
  166. NSString *currentDay = [[YMCalendarUtils shareCalender] dateStrWithDate:currentDate dateStrFormatterStr:@"dd"];
  167. NSString *maxDateStr = stringFormat(@"%zd-%@-%@",[currentYear integerValue], currentMonth,currentDay);
  168. NSString *minDateStr = stringFormat(@"%zd-%@-%@",[currentYear integerValue] - 1, currentMonth,currentDay);
  169. datePicker.maximumDate = [[YMCalendarUtils shareCalender] dateWithDateStr:maxDateStr dateStrFormatterStr:@"yyyy-MM-dd"];
  170. datePicker.minimumDate = [[YMCalendarUtils shareCalender] dateWithDateStr:minDateStr dateStrFormatterStr:@"yyyy-MM-dd"];
  171. // datePicker.delegate = self;
  172. // datePicker.datePickerType = PGDatePickerTypeLine;
  173. // datePicker.isHiddenMiddleText = false;
  174. // datePicker.datePickerMode = PGDatePickerModeDate;
  175. WS(weakSelf)
  176. [[[self.datePickManager.confirmButn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) {
  177. [weakSelf dismissViewControllerAnimated:false completion:nil];
  178. NSDate *selectedDate = weakSelf.datePickManager.datePicker.date;
  179. NSCalendar *calder = [NSCalendar currentCalendar];
  180. NSDateComponents *dateComponents = [calder components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:selectedDate];
  181. NSString *endTimeStr = [weakSelf endTimeStr:[dateComponents year] :[dateComponents month] :[dateComponents day]];
  182. if (weakSelf.datePickManager.isStart) {
  183. weakSelf.viewModel.startTime = endTimeStr;
  184. [weakSelf.datePickManager setStartTime:weakSelf.viewModel.startTime];
  185. }
  186. if (weakSelf.datePickManager.isEnd) {
  187. weakSelf.viewModel.endTime = endTimeStr;
  188. [weakSelf.datePickManager setEndTime:weakSelf.viewModel.endTime];
  189. }
  190. [weakSelf.viewModel getGongHuiData];
  191. }];
  192. self.datePickManager.modalPresentationStyle = UIModalPresentationOverCurrentContext;
  193. [self presentViewController:self.datePickManager animated:false completion:nil];
  194. }
  195. //- (void)datePicker:(PGDatePicker *)datePicker didSelectDate:(NSDateComponents *)dateComponents{
  196. // NSString *time = [self endTimeStr:[dateComponents year] :[dateComponents month] :[dateComponents day]];
  197. // if (self.isStart) {
  198. // self.viewModel.startTime = time;
  199. // [self.datePickManager setStartTime:time];
  200. // }
  201. // if (self.isEnd) {
  202. // self.viewModel.endTime = time;
  203. // [self.datePickManager setEndTime:time];
  204. // }
  205. // [self.viewModel getGongHuiData];
  206. //}
  207. //
  208. - (NSString*)endTimeStr:(NSInteger)year :(NSInteger)month :(NSInteger)day{
  209. NSString *dayStr = [NSString stringWithFormat:@"%ld",day];
  210. NSString *monthStr = [NSString stringWithFormat:@"%ld",month];
  211. if(day< 10){
  212. dayStr = [NSString stringWithFormat:@"0%ld",day];
  213. }
  214. if(month < 10){
  215. monthStr = [NSString stringWithFormat:@"0%ld",month];
  216. }
  217. return [NSString stringWithFormat:@"%ld-%@-%@",year,monthStr,dayStr];
  218. }
  219. @end