GoodsReviewsCell.m 10 KB

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