GoodsEvaluationListVC.m 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. //
  2. // GoodsEvaluationListVC.m
  3. // yunbaolive
  4. //
  5. // Created by ybRRR on 2020/3/27.
  6. // Copyright © 2020 cat. All rights reserved.
  7. //
  8. #import "GoodsEvaluationListVC.h"
  9. #import "EvaluationListCell.h"
  10. #import "EvaluationListModel.h"
  11. @interface GoodsEvaluationListVC ()<UITableViewDelegate, UITableViewDataSource>
  12. {
  13. NSMutableArray *evalTypeBtnArray;
  14. NSString *typeStr;
  15. NSArray *typeArr;
  16. int page;
  17. UIView *headBack;
  18. }
  19. @property (nonatomic, strong)UITableView *listTable;
  20. @property (nonatomic, strong)NSArray *models;
  21. @property (nonatomic, strong)NSMutableArray *datasArr;
  22. @end
  23. @implementation GoodsEvaluationListVC
  24. -(void)requetCommentData{
  25. NSString *url = [purl stringByAppendingFormat:@"?service=Shop.getGoodsCommentList"];
  26. NSDictionary *dic = @{
  27. @"uid":[Config getOwnID],
  28. @"token":[Config getOwnToken],
  29. @"goodsid":self.goodsIDStr,
  30. @"type":typeStr,
  31. @"p":@(page)
  32. };
  33. [YBNetworking postWithUrl:@"Shop.getGoodsCommentList" Dic:dic Suc:^(int code, id info, NSString *msg) {
  34. [self.listTable.mj_header endRefreshing];
  35. [self.listTable.mj_footer endRefreshing];
  36. if (code ==0) {
  37. NSDictionary *infos = [info firstObject];
  38. NSArray *list =[infos valueForKey:@"comment_lists"];
  39. [self addHeadView:[infos valueForKey:@"type_nums"]];
  40. if (page == 1) {
  41. [self.datasArr removeAllObjects];
  42. }
  43. [self.datasArr addObjectsFromArray:list];
  44. [self.listTable reloadData];
  45. if (self.datasArr.count == 0) {
  46. [PublicView showImgNoData:self.listTable name:@"shop_无数据" text:YZMsg(@"还没有收到任何评价")];
  47. }else{
  48. [PublicView hiddenImgNoData:self.listTable];
  49. }
  50. }else{
  51. [MBProgressHUD showError:msg];
  52. }
  53. } Fail:^(id fail) {
  54. [self.listTable.mj_header endRefreshing];
  55. [self.listTable.mj_footer endRefreshing];
  56. }];
  57. }
  58. -(NSArray *)models
  59. {
  60. NSMutableArray *array = [NSMutableArray array];
  61. for (NSDictionary *dic in self.datasArr) {
  62. EvaluationListModel *model = [EvaluationListModel modelWithDic:dic];
  63. [array addObject:model];
  64. }
  65. _models = array;
  66. return _models;
  67. }
  68. - (void)viewDidLoad {
  69. [super viewDidLoad];
  70. self.titleL.text = YZMsg(@"全部评价");
  71. evalTypeBtnArray = [NSMutableArray array];
  72. self.datasArr =[NSMutableArray array];
  73. typeArr = @[@"all",@"img",@"video",@"append"];
  74. typeStr = typeArr[0];
  75. page = 1;
  76. [self requetCommentData];
  77. [self.view addSubview:self.listTable];
  78. }
  79. -(void)addHeadView:(NSDictionary *)dic{
  80. if (!headBack) {
  81. headBack = [[UIView alloc]initWithFrame:CGRectMake(0, 64+statusbarHeight, _window_width, 85)];
  82. headBack.backgroundColor = [UIColor whiteColor];
  83. [self.view addSubview:headBack];
  84. NSArray *arr = @[YZMsg(@"全部"),YZMsg(@"有图"),YZMsg(@"视频"),YZMsg(@"追加")];
  85. NSArray *keyArr = @[@"all_nums",@"img_nums",@"video_nums",@"append_nums"];
  86. CGFloat imgY = 0;
  87. for (int i = 0; i < arr.count; i ++) {
  88. if (i < 3) {
  89. imgY = 15;
  90. }else{
  91. imgY =15+26+10;
  92. }
  93. UIButton *btn = [UIButton buttonWithType:0];
  94. btn.frame = CGRectMake(15+(i%3)*(90 + 10), imgY, 90, 26);
  95. [btn setTitle:[NSString stringWithFormat:@"%@(%@)",arr[i],minstr([dic valueForKey:keyArr[i]])] forState:0];
  96. [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];
  97. [btn setTitleColor:Pink_Cor forState:UIControlStateNormal];
  98. [btn setBackgroundImage:[UIImage imageNamed:@"evaluation_sel"] forState:UIControlStateSelected];
  99. [btn setBackgroundImage:[UIImage imageNamed:@"evaluation_normal"] forState:UIControlStateNormal];
  100. btn.titleLabel.font = [UIFont systemFontOfSize:14];
  101. [btn addTarget:self action:@selector(evaluateClassClick:) forControlEvents:UIControlEventTouchUpInside];
  102. btn.tag = 20000+i;
  103. [headBack addSubview:btn];
  104. if (i == 0) {
  105. btn.selected = YES;
  106. }else{
  107. btn.selected = NO;
  108. }
  109. [evalTypeBtnArray addObject:btn];
  110. }
  111. [PublicObj lineViewWithFrame:CGRectMake(0, headBack.height-1, _window_width, 1) andColor:RGB(240, 240, 240) andView:headBack];
  112. }
  113. }
  114. - (void)evaluateClassClick:(UIButton *)sender{
  115. if (sender.selected) {
  116. return;
  117. }
  118. typeStr = [NSString stringWithFormat:@"%@",typeArr[sender.tag -20000]];
  119. NSLog(@"--=--=--=-=-:%@", typeStr);
  120. page = 1;
  121. for (UIButton *btn in evalTypeBtnArray) {
  122. if (btn == sender) {
  123. btn.selected = YES;
  124. }else{
  125. btn.selected = NO;
  126. }
  127. }
  128. [self requetCommentData];
  129. }
  130. -(UITableView *)listTable{
  131. if (!_listTable) {
  132. _listTable = [[UITableView alloc]initWithFrame:CGRectMake(0, 64+statusbarHeight+85, _window_width, _window_height-64-statusbarHeight-85) style:UITableViewStylePlain];
  133. _listTable.delegate = self;
  134. _listTable.dataSource = self;
  135. _listTable.separatorStyle = UITableViewCellSeparatorStyleNone;
  136. _listTable.mj_header = [MJRefreshHeader headerWithRefreshingBlock:^{
  137. page = 1;
  138. [self requetCommentData];
  139. }];
  140. _listTable.mj_footer = [MJRefreshBackFooter footerWithRefreshingBlock:^{
  141. page ++;
  142. [self requetCommentData];
  143. }];
  144. }
  145. return _listTable;
  146. }
  147. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  148. {
  149. return 1;
  150. }
  151. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  152. return self.models.count;
  153. }
  154. -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  155. {
  156. EvaluationListModel *model = self.models[indexPath.row];
  157. return model.cellHeight;
  158. }
  159. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  160. {
  161. NSString *CellIdentifier = [NSString stringWithFormat:@"EvaluationListCell%ld%ld",indexPath.section,indexPath.row];
  162. EvaluationListCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  163. if (!cell) {
  164. cell = [[EvaluationListCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  165. }
  166. EvaluationListModel *modelss = self.models[indexPath.row];
  167. cell.model = modelss;
  168. return cell;
  169. }
  170. -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  171. {
  172. [tableView deselectRowAtIndexPath:indexPath animated:YES];
  173. }
  174. @end