GoodsReviewsCell.m 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. //
  2. // GoodsReviewsCell.m
  3. // westkissMob
  4. //
  5. // Created by 王猛 on 2022/9/28.
  6. //
  7. #import "GoodsReviewsCell.h"
  8. #import "GoodsReviewsImgV.h"
  9. #import "ASGoodsDetailsVM.h"
  10. #import "HCSStarRatingView.h"
  11. @interface GoodsReviewsCell ()
  12. @property (nonatomic, strong) UIImageView *headImg;
  13. @property (nonatomic, strong) UILabel *nicknameLab;
  14. @property (nonatomic, strong) UILabel *creatLab;
  15. @property (nonatomic, strong) UIButton *zanBtn;
  16. @property (nonatomic, strong) HCSStarRatingView *reviews_startV;
  17. @property (nonatomic, strong) UILabel *sizeTitleLab;
  18. @property (nonatomic, strong) UILabel *detailLab;
  19. @property(nonatomic, strong) GoodsReviewsImgV *reviewsImgV;
  20. @end
  21. @implementation GoodsReviewsCell
  22. - (void)awakeFromNib {
  23. [super awakeFromNib];
  24. // Initialization code
  25. }
  26. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  27. [super setSelected:selected animated:animated];
  28. // Configure the view for the selected state
  29. }
  30. - (void)configData:(id)Data{
  31. GoodsReviewsListM *model = (GoodsReviewsListM *)Data;
  32. self.reviewM = model;
  33. self.headImg.image = UIImageDefaultImg_SD;
  34. self.nicknameLab.text = model.nickname;
  35. self.creatLab.text = model.created_at;
  36. self.sizeTitleLab.text = model.title;
  37. self.detailLab.text = model.detail;
  38. ///wm_todo 点赞本地记录的表
  39. // self.zanBtn.selected = [model.thumbsUp integerValue];
  40. self.reviews_startV.value =[model.review_value floatValue] ;
  41. [self.zanBtn setTitle:model.zan forState:UIControlStateNormal];
  42. if(!isValid(model.image_video) || model.image_video.count == 0 ){
  43. [self.reviewsImgV mas_updateConstraints:^(MASConstraintMaker *make) {
  44. make.height.mas_equalTo(10);
  45. }];
  46. }else{
  47. [self.reviewsImgV mas_updateConstraints:^(MASConstraintMaker *make) {
  48. make.height.mas_equalTo(GoodsReviewsimgWidth + 20);
  49. }];
  50. }
  51. [self.reviewsImgV tt_confignewdata:model.image_video];
  52. }
  53. - (void)setupSubviewS{
  54. [self.contentView addSubview:self.headImg];
  55. [self.contentView addSubview:self.nicknameLab];
  56. [self.contentView addSubview:self.creatLab];
  57. [self.contentView addSubview:self.zanBtn];
  58. [self.contentView addSubview:self.reviews_startV];
  59. [self.contentView addSubview:self.sizeTitleLab];
  60. [self.contentView addSubview:self.detailLab];
  61. [self.contentView addSubview:self.reviewsImgV];
  62. [self setupSubViewsFrame];
  63. self.backgroundColor = [UIColor clearColor];
  64. @weakify(self)
  65. self.reviewsImgV.ViewtapClose = ^(NSInteger num, id _Nonnull data) {
  66. @strongify(self)
  67. if(self.currencyparameterClose){
  68. self.currencyparameterClose(num, data);
  69. }
  70. };
  71. }
  72. - (void)setupSubViewsFrame{
  73. [self.headImg mas_makeConstraints:^(MASConstraintMaker *make) {
  74. make.left.top.mas_equalTo(20);
  75. make.width.mas_equalTo(40);
  76. make.height.mas_equalTo(40);
  77. }];
  78. [self.nicknameLab mas_makeConstraints:^(MASConstraintMaker *make) {
  79. make.left.equalTo(self.headImg.mas_right).offset(16);
  80. make.top.equalTo(self.headImg);
  81. make.height.mas_equalTo(20);
  82. make.right.equalTo(self.zanBtn.mas_left).offset(-10);
  83. }];
  84. [self.creatLab mas_makeConstraints:^(MASConstraintMaker *make) {
  85. make.left.equalTo(self.headImg.mas_right).offset(16);
  86. make.top.equalTo(self.nicknameLab.mas_bottom);
  87. make.height.mas_equalTo(20);
  88. make.right.equalTo(self.zanBtn.mas_left).offset(-10);
  89. }];
  90. [self.zanBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  91. make.right.mas_equalTo(-10);
  92. make.centerY.equalTo(self.headImg);
  93. make.height.mas_equalTo(20);
  94. make.width.mas_equalTo(60);
  95. }];
  96. [self.reviews_startV mas_makeConstraints:^(MASConstraintMaker *make) {
  97. make.left.mas_equalTo(20);
  98. make.height.mas_equalTo(15);
  99. make.width.mas_equalTo(95);
  100. make.top.equalTo(self.headImg.mas_bottom).offset(10);
  101. }];
  102. [self.sizeTitleLab mas_makeConstraints:^(MASConstraintMaker *make) {
  103. make.left.mas_equalTo(20);
  104. make.right.mas_equalTo(-20);
  105. make.top.equalTo(self.reviews_startV.mas_bottom).offset(10);
  106. }];
  107. [self.detailLab mas_makeConstraints:^(MASConstraintMaker *make) {
  108. make.top.equalTo(self.sizeTitleLab.mas_bottom).offset(20);
  109. make.left.mas_equalTo(20);
  110. make.right.mas_equalTo(-20);
  111. }];
  112. [self.reviewsImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  113. make.top.equalTo(self.detailLab.mas_bottom).offset(10);
  114. make.left.mas_equalTo(10);
  115. make.width.mas_equalTo(KScreenWidth-20);
  116. make.height.mas_equalTo(GoodsReviewsimgWidth + 20);
  117. make.bottom.mas_equalTo(-20);
  118. }];
  119. }
  120. #pragma mark - **************** handle ****************
  121. -(void)handle_addZanBtnEvent:(UIButton *)btn{
  122. //判断登陆
  123. if (![ASUserInfoManager.shared isLogin]) {
  124. [Fuction_Tool pop_toLoginVC];
  125. return;
  126. }
  127. NSDictionary *params = nil;
  128. if(btn.selected){ //取消赞
  129. params = @{@"rid":self.reviewM.review_id, @"flag":@"del"};
  130. }else{
  131. params = @{@"rid":self.reviewM.review_id, @"flag":@"add"};
  132. }
  133. UIViewController *topVC = topViewController();
  134. [MBProgressHUD showHUDAddedTo:topVC.view animated:YES];
  135. K_WEAK_SELF;
  136. [ASNetTools.shared getWithPath:Reviews_rewriteProductAddReviewzan param:params success:^(id _Nonnull json) {
  137. K_STRONG_SELF;
  138. [MBProgressHUD hideHUDForView:topVC.view animated:YES];
  139. NSLog(@"=======%@", json);
  140. // NSDictionary *tepDic = (NSDictionary *)json;
  141. btn.selected = !btn.selected;
  142. self.zanBtn.selected = btn.selected;
  143. if (btn.selected) {
  144. self.reviewM.zan = [NSString stringWithFormat:@"%d", [self.reviewM.zan intValue] + 1];
  145. [btn setTitle:self.reviewM.zan forState:UIControlStateNormal];
  146. [self.zanBtn setTitle:self.reviewM.zan forState:UIControlStateNormal];
  147. } else {
  148. self.reviewM.zan = [NSString stringWithFormat:@"%d", [self.reviewM.zan intValue] - 1];
  149. [btn setTitle:self.reviewM.zan forState:UIControlStateNormal];
  150. [self.zanBtn setTitle:self.reviewM.zan forState:UIControlStateNormal];
  151. }
  152. //// self.reviewM.thumbsUp = [NSString stringWithFormat:@"%d",![self.reviewM.thumbsUp boolValue]];
  153. // self.reviewM.zan = [NSString stringWithFormat:@"%@",tepDic[@"num"]];
  154. // [btn setTitle: self.reviewM.zan forState:UIControlStateNormal];
  155. // [self.zanBtn setTitle:self.reviewM.zan forState:UIControlStateNormal];
  156. } faild:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
  157. // K_STRONG_SELF;
  158. [MBProgressHUD hideHUDForView:topVC.view animated:YES];
  159. }];
  160. }
  161. -(void)tap_imgFull:(UITapGestureRecognizer *)tap{
  162. }
  163. -(UIImageView *)headImg{
  164. if(!_headImg){
  165. _headImg = [[UIImageView alloc]init];
  166. _headImg.image = UIImageDefaultImg_SD;
  167. }
  168. return _headImg;
  169. }
  170. -(UILabel *)nicknameLab{
  171. if(!_nicknameLab){
  172. _nicknameLab = [[UILabel alloc]init];
  173. _nicknameLab.font = [UIFont fontWithName:Rob_Bold size:12];
  174. }
  175. return _nicknameLab;
  176. }
  177. -(UILabel *)creatLab{
  178. if(!_creatLab){
  179. _creatLab = [[UILabel alloc]init];
  180. _creatLab.font = [UIFont fontWithName:Rob_Regular size:12];
  181. }
  182. return _creatLab;
  183. }
  184. -(UIButton *)zanBtn{
  185. if(!_zanBtn){
  186. _zanBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  187. [_zanBtn setImage:[UIImage imageNamed:@"goos_zan_normal"] forState:UIControlStateNormal];
  188. [_zanBtn setImage:[UIImage imageNamed:@"goos_zan_select"] forState:UIControlStateSelected];
  189. [_zanBtn setTitle:@"10" forState:UIControlStateNormal];
  190. [_zanBtn setTitleColor:[UIColor colorWithHexString:@"#0B0B0B"] forState:UIControlStateNormal];
  191. _zanBtn.titleLabel.font = [UIFont fontWithName:Rob_Regular size:12];
  192. [_zanBtn addTarget:self action:@selector(handle_addZanBtnEvent:) forControlEvents:UIControlEventTouchUpInside];
  193. [_zanBtn setTitleEdgeInsets:UIEdgeInsetsMake(0, 8, 0, -8)];
  194. }
  195. return _zanBtn;
  196. }
  197. -(UILabel *)sizeTitleLab{
  198. if(!_sizeTitleLab){
  199. _sizeTitleLab = [[UILabel alloc]init];
  200. _sizeTitleLab.font = [UIFont fontWithName:Rob_Regular size:12];
  201. _sizeTitleLab.textColor = [UIColor colorWithHexString:@"#B2B2B2"];
  202. _sizeTitleLab.numberOfLines = 0;
  203. _sizeTitleLab.preferredMaxLayoutWidth = KScreenWidth - 40;
  204. // _sizeTitleLab.adjustsFontSizeToFitWidth = KScreenWidth -40;
  205. }
  206. return _sizeTitleLab;
  207. }
  208. -(UILabel *)detailLab{
  209. if(!_detailLab){
  210. _detailLab = [UILabel new];
  211. _detailLab.textColor = [UIColor colorWithHexString:@"#0B0B0B"];
  212. _detailLab.font = [UIFont fontWithName:Rob_Regular size:12];
  213. // _detailLab.adjustsFontSizeToFitWidth = KScreenWidth -40;
  214. _detailLab.numberOfLines = 0;
  215. _detailLab.preferredMaxLayoutWidth = KScreenWidth - 40;
  216. }
  217. return _detailLab;
  218. }
  219. -(GoodsReviewsImgV *)reviewsImgV{
  220. if(!_reviewsImgV){
  221. _reviewsImgV = [[GoodsReviewsImgV alloc]initWithFrame:CGRectMake(10, 0, KScreenWidth-20, GoodsReviewsimgWidth +20)];
  222. }
  223. return _reviewsImgV;
  224. }
  225. -(HCSStarRatingView *)reviews_startV{
  226. if(!_reviews_startV){
  227. _reviews_startV = [[HCSStarRatingView alloc]initWithFrame:CGRectMake(10, 20,95, 15)];
  228. _reviews_startV.value =5;
  229. _reviews_startV.userInteractionEnabled = NO;
  230. _reviews_startV.filledStarImage = IMAGE(@"reviews_full_star");
  231. _reviews_startV.emptyStarImage = IMAGE(@"reviews_empty_star");
  232. _reviews_startV.maximumValue = 5;
  233. _reviews_startV.backgroundColor = [UIColor clearColor];
  234. }
  235. return _reviews_startV;
  236. }
  237. @end