GoodsReviewsCell.m 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  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. // if(self.currencyparameterClose){
  67. // self.currencyparameterClose(num, data);
  68. // }
  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.nicknameLab mas_makeConstraints:^(MASConstraintMaker *make) {
  82. make.left.equalTo(self.headImg.mas_right).offset(16);
  83. make.top.equalTo(self.headImg);
  84. make.height.mas_equalTo(20);
  85. make.right.equalTo(self.zanBtn.mas_left).offset(-10);
  86. }];
  87. [self.creatLab mas_makeConstraints:^(MASConstraintMaker *make) {
  88. make.left.equalTo(self.headImg.mas_right).offset(16);
  89. make.top.equalTo(self.nicknameLab.mas_bottom);
  90. make.height.mas_equalTo(20);
  91. make.right.equalTo(self.zanBtn.mas_left).offset(-10);
  92. }];
  93. [self.zanBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  94. make.right.mas_equalTo(-10);
  95. make.centerY.equalTo(self.headImg);
  96. make.height.mas_equalTo(20);
  97. make.width.mas_equalTo(60);
  98. }];
  99. [self.reviews_startV mas_makeConstraints:^(MASConstraintMaker *make) {
  100. make.left.mas_equalTo(20);
  101. make.height.mas_equalTo(15);
  102. make.width.mas_equalTo(95);
  103. make.top.equalTo(self.headImg.mas_bottom).offset(10);
  104. }];
  105. [self.sizeTitleLab mas_makeConstraints:^(MASConstraintMaker *make) {
  106. make.left.mas_equalTo(20);
  107. make.right.mas_equalTo(-20);
  108. make.top.equalTo(self.reviews_startV.mas_bottom).offset(10);
  109. }];
  110. [self.detailLab mas_makeConstraints:^(MASConstraintMaker *make) {
  111. make.top.equalTo(self.sizeTitleLab.mas_bottom).offset(20);
  112. make.left.mas_equalTo(20);
  113. make.right.mas_equalTo(-20);
  114. }];
  115. [self.reviewsImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  116. make.top.equalTo(self.detailLab.mas_bottom).offset(10);
  117. make.left.mas_equalTo(10);
  118. make.width.mas_equalTo(KScreenWidth-20);
  119. make.height.mas_equalTo(GoodsReviewsimgWidth + 20);
  120. make.bottom.mas_equalTo(-20);
  121. }];
  122. }
  123. #pragma mark - **************** handle ****************
  124. -(void)handle_addZanBtnEvent:(UIButton *)btn{
  125. /* if (NIL(User_token)){ //判断登陆
  126. [Fuction_Tool present_Loginpage];
  127. return;
  128. }
  129. NSString *url = nil;
  130. if(btn.selected){ //取消赞
  131. url = BaseRequestrUrl(GoodsDetails_productDelThumbsUp);
  132. }else{
  133. url = BaseRequestrUrl(GoodsDetails_productAddThumbsUp);
  134. }
  135. UIViewController *topVC = topViewController();
  136. [MBProgressHUD showHUDAddedTo:topVC.view animated:YES];
  137. [PPNetworkHelper POST:url parameters:@{@"entity_id":self.reviewM.review_id} success:^(id responseObject) {
  138. [MBProgressHUD hideHUDForView:topVC.view animated:YES];
  139. NSDictionary *tepDic = responseObject[@"data"];
  140. if(RequestSuccess){
  141. btn.selected = !btn.selected;
  142. self.zanBtn.selected = btn.selected;
  143. self.reviewM.thumbsUp = [NSString stringWithFormat:@"%d",![self.reviewM.thumbsUp boolValue]];
  144. self.reviewM.zan = [NSString stringWithFormat:@"%@",tepDic[@"num"]];
  145. [btn setTitle: self.reviewM.zan forState:UIControlStateNormal];
  146. [self.zanBtn setTitle: self.reviewM.zan forState:UIControlStateNormal];
  147. }
  148. [topVC.view makeToast:RequestErrorMsg duration:2 position:CSToastPositionCenter];
  149. } failure:^(NSError *error) {
  150. [MBProgressHUD hideHUDForView:topVC.view animated:YES];
  151. [topVC.view makeToast:ReqNetWorkFaild duration:2 position:CSToastPositionCenter];
  152. }];
  153. */
  154. }
  155. -(void)tap_imgFull:(UITapGestureRecognizer *)tap{
  156. }
  157. -(UIImageView *)headImg{
  158. if(!_headImg){
  159. _headImg = [[UIImageView alloc]init];
  160. _headImg.image = UIImageDefaultImg_SD;
  161. }
  162. return _headImg;
  163. }
  164. -(UILabel *)nicknameLab{
  165. if(!_nicknameLab){
  166. _nicknameLab = [[UILabel alloc]init];
  167. _nicknameLab.font = [UIFont fontWithName:Rob_Bold size:12];
  168. }
  169. return _nicknameLab;
  170. }
  171. -(UILabel *)creatLab{
  172. if(!_creatLab){
  173. _creatLab = [[UILabel alloc]init];
  174. _creatLab.font = [UIFont fontWithName:Rob_Regular size:12];
  175. }
  176. return _creatLab;
  177. }
  178. -(UIButton *)zanBtn{
  179. if(!_zanBtn){
  180. _zanBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  181. [_zanBtn setImage:[UIImage imageNamed:@"goos_zan_normal"] forState:UIControlStateNormal];
  182. [_zanBtn setImage:[UIImage imageNamed:@"goos_zan_select"] forState:UIControlStateSelected];
  183. [_zanBtn setTitle:@"10" forState:UIControlStateNormal];
  184. [_zanBtn setTitleColor:[UIColor colorWithHexString:@"#0B0B0B"] forState:UIControlStateNormal];
  185. _zanBtn.titleLabel.font = [UIFont fontWithName:Rob_Regular size:12];
  186. [_zanBtn addTarget:self action:@selector(handle_addZanBtnEvent:) forControlEvents:UIControlEventTouchUpInside];
  187. [_zanBtn setTitleEdgeInsets:UIEdgeInsetsMake(0, 8, 0, -8)];
  188. }
  189. return _zanBtn;
  190. }
  191. -(UILabel *)sizeTitleLab{
  192. if(!_sizeTitleLab){
  193. _sizeTitleLab = [[UILabel alloc]init];
  194. _sizeTitleLab.font = [UIFont fontWithName:Rob_Regular size:12];
  195. _sizeTitleLab.textColor = [UIColor colorWithHexString:@"#B2B2B2"];
  196. _sizeTitleLab.numberOfLines = 0;
  197. _sizeTitleLab.preferredMaxLayoutWidth = KScreenWidth - 40;
  198. // _sizeTitleLab.adjustsFontSizeToFitWidth = KScreenWidth -40;
  199. }
  200. return _sizeTitleLab;
  201. }
  202. -(UILabel *)detailLab{
  203. if(!_detailLab){
  204. _detailLab = [UILabel new];
  205. _detailLab.textColor = [UIColor colorWithHexString:@"#0B0B0B"];
  206. _detailLab.font = [UIFont fontWithName:Rob_Regular size:12];
  207. // _detailLab.adjustsFontSizeToFitWidth = KScreenWidth -40;
  208. _detailLab.numberOfLines = 0;
  209. _detailLab.preferredMaxLayoutWidth = KScreenWidth - 40;
  210. }
  211. return _detailLab;
  212. }
  213. -(GoodsReviewsImgV *)reviewsImgV{
  214. if(!_reviewsImgV){
  215. _reviewsImgV = [[GoodsReviewsImgV alloc]initWithFrame:CGRectMake(10, 0, KScreenWidth-20, GoodsReviewsimgWidth +20)];
  216. }
  217. return _reviewsImgV;
  218. }
  219. -(HCSStarRatingView *)reviews_startV{
  220. if(!_reviews_startV){
  221. _reviews_startV = [[HCSStarRatingView alloc]initWithFrame:CGRectMake(10, 20,95, 15)];
  222. _reviews_startV.value =5;
  223. _reviews_startV.userInteractionEnabled = NO;
  224. _reviews_startV.filledStarImage = IMAGE(@"reviews_full_star");
  225. _reviews_startV.emptyStarImage = IMAGE(@"reviews_empty_star");
  226. _reviews_startV.maximumValue = 5;
  227. _reviews_startV.backgroundColor = [UIColor clearColor];
  228. }
  229. return _reviews_startV;
  230. }
  231. @end