shareRecordDetailsHWViewController.m 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. //
  2. // shareRecordDetailsHWViewController.m
  3. // 双子星云手机
  4. //
  5. // Created by xd h on 2024/5/15.
  6. //
  7. #import "shareRecordDetailsHWViewController.h"
  8. @interface shareRecordDetailsHWViewController ()
  9. @property (nonatomic,strong)UIView *whiteBgView;
  10. @property (nonatomic,strong)UILabel *shareTitleLabel;
  11. @property (nonatomic,strong)UILabel *shareBeginDateLabel;
  12. @property (nonatomic,strong)UIImageView *shareQRCodeImageView;
  13. @property (nonatomic,strong)UIButton*checkShareLinkButton;
  14. @property (nonatomic,strong)UIView *extractCodeBgView;
  15. @property (nonatomic,strong)UILabel *extractCodeTip2Lab;
  16. @property (nonatomic,strong)UILabel *shareEndDateLabel;
  17. @property (nonatomic,strong)UIButton*cancelShareLinkButton;
  18. @property (nonatomic,strong)UIButton*shareLinkCopyButton;
  19. @end
  20. @implementation shareRecordDetailsHWViewController
  21. - (void)viewDidLoad {
  22. [super viewDidLoad];
  23. // Do any additional setup after loading the view.
  24. [self.toolBar setHidden:YES];
  25. [self.navigationBar setHidden:YES];
  26. [self.navBarBGView setHidden:NO];
  27. self.navBarBGView.backgroundColor = [UIColor whiteColor];
  28. [self.view setBackgroundColor:[UIColor hwColor:@"#F5F7FA"]];
  29. self.titleLabel.text = NSLocalizedString(@"share_record_title",nil);
  30. [self drawAnyView];
  31. }
  32. - (void)drawAnyView{
  33. //
  34. _whiteBgView = [[UIView alloc] init];
  35. _whiteBgView.backgroundColor = [UIColor whiteColor];
  36. [self.view addSubview:_whiteBgView];
  37. _whiteBgView.layer.cornerRadius = 8;
  38. _whiteBgView.layer.masksToBounds = YES;
  39. [_whiteBgView mas_makeConstraints:^(MASConstraintMaker *make) {
  40. make.left.mas_equalTo(15);
  41. make.right.mas_equalTo(-15);
  42. make.top.equalTo(self.navBarBGView.mas_bottom).offset(40.f);
  43. make.height.mas_equalTo(448);
  44. }];
  45. //文件夹图标
  46. UIImageView *folderImageView = [[UIImageView alloc] init];
  47. folderImageView.image = [UIImage imageNamed:@"uploadFile_file_icon"];
  48. folderImageView.backgroundColor = [UIColor whiteColor];
  49. [self.view addSubview:folderImageView];
  50. folderImageView.layer.cornerRadius = 44;
  51. folderImageView.layer.masksToBounds = YES;
  52. [folderImageView mas_makeConstraints:^(MASConstraintMaker *make) {
  53. make.top.equalTo(self.navBarBGView.mas_bottom).offset(10.f);
  54. make.centerX.mas_equalTo(self.view.mas_centerX);
  55. make.width.mas_equalTo(88);
  56. make.height.mas_equalTo(88);
  57. }];
  58. _shareTitleLabel = [[UILabel alloc] init];
  59. //_shareTitleLabel.text = @"banner.png等多个文件";
  60. _shareTitleLabel.textAlignment = NSTextAlignmentCenter;
  61. _shareTitleLabel.textColor = HW0A132BColor;
  62. _shareTitleLabel.font = [UIFont systemFontOfSize:14.0];
  63. [_whiteBgView addSubview:_shareTitleLabel];
  64. [_shareTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  65. make.top.equalTo(folderImageView.mas_bottom).offset(5.f);
  66. make.left.mas_equalTo(15);
  67. make.right.mas_equalTo(-15);
  68. make.height.mas_equalTo(20);
  69. }];
  70. _shareBeginDateLabel = [[UILabel alloc] init];
  71. //_shareBeginDateLabel.text = @"2024/04/25 19:45";
  72. _shareBeginDateLabel.textAlignment = NSTextAlignmentCenter;
  73. _shareBeginDateLabel.textColor = HW666666Color;
  74. _shareBeginDateLabel.font = [UIFont systemFontOfSize:12.0];
  75. [_whiteBgView addSubview:_shareBeginDateLabel];
  76. [_shareBeginDateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  77. make.top.equalTo(_shareTitleLabel.mas_bottom).offset(25.f);
  78. make.left.mas_equalTo(15);
  79. make.right.mas_equalTo(-15);
  80. make.height.mas_equalTo(15);
  81. }];
  82. UIImageView *QRCodeEdgingImageView = [[UIImageView alloc] init];
  83. QRCodeEdgingImageView.image = [UIImage imageNamed:@"share_QRCode_edging"];
  84. [_whiteBgView addSubview:QRCodeEdgingImageView];
  85. [QRCodeEdgingImageView mas_makeConstraints:^(MASConstraintMaker *make) {
  86. make.top.equalTo(_shareBeginDateLabel.mas_bottom).offset(10.f);
  87. make.centerX.mas_equalTo(self.view.mas_centerX);
  88. make.width.mas_equalTo(208);
  89. make.height.mas_equalTo(208);
  90. }];
  91. _shareQRCodeImageView = [[UIImageView alloc] init];
  92. //_shareQRCodeImageView.backgroundColor = [UIColor lightGrayColor];
  93. [QRCodeEdgingImageView addSubview:_shareQRCodeImageView];
  94. [_shareQRCodeImageView mas_makeConstraints:^(MASConstraintMaker *make) {
  95. make.top.mas_equalTo(20);
  96. make.bottom.mas_equalTo(-20);
  97. make.left.mas_equalTo(20);
  98. make.right.mas_equalTo(-20);
  99. }];
  100. //_shareQRCodeImageView.image = [self generateQRCodeWithInputMessage:@"http://baidu.com" Width:168 Height:168];
  101. _checkShareLinkButton = [[UIButton alloc] init];
  102. [_checkShareLinkButton setTitle:NSLocalizedString(@"check_share_link_title",nil) forState:UIControlStateNormal];
  103. [_checkShareLinkButton setTitleColor:[UIColor hwColor:@"#01B7EA"] forState:UIControlStateNormal];
  104. _checkShareLinkButton.titleLabel.font = [UIFont systemFontOfSize:14.0];
  105. [_checkShareLinkButton addTarget:self action:@selector(didClickButtonFun:) forControlEvents:UIControlEventTouchUpInside];
  106. _checkShareLinkButton.tag = 1;
  107. [self.view addSubview:_checkShareLinkButton];
  108. [_checkShareLinkButton mas_makeConstraints:^(MASConstraintMaker *make) {
  109. make.left.mas_equalTo(15);
  110. make.right.mas_equalTo(-15);
  111. make.top.equalTo(QRCodeEdgingImageView.mas_bottom).offset(0.f);
  112. make.height.mas_equalTo(30);
  113. }];
  114. //提取码
  115. _extractCodeBgView = [[UIView alloc] init];
  116. _extractCodeBgView.backgroundColor = [UIColor hwColor:@"#F9F9F9"];
  117. [_whiteBgView addSubview:_extractCodeBgView];
  118. _extractCodeBgView.layer.cornerRadius = 8;
  119. _extractCodeBgView.layer.masksToBounds = YES;
  120. [_extractCodeBgView mas_makeConstraints:^(MASConstraintMaker *make) {
  121. make.left.mas_equalTo(50);
  122. make.right.mas_equalTo(-50);
  123. make.top.equalTo(_checkShareLinkButton.mas_bottom).offset(15);
  124. make.height.mas_equalTo(40);
  125. }];
  126. UILabel *extractCodeTipLab = [[UILabel alloc] init];
  127. extractCodeTipLab.font = [UIFont systemFontOfSize:14.f];
  128. [extractCodeTipLab setTextColor:HW0A132BColor];
  129. extractCodeTipLab.text = NSLocalizedString(@"share_Extract_code_tip",nil);
  130. [_extractCodeBgView addSubview:extractCodeTipLab];
  131. [extractCodeTipLab mas_makeConstraints:^(MASConstraintMaker *make) {
  132. make.left.mas_equalTo(15);
  133. make.right.mas_equalTo(_extractCodeBgView.mas_centerX);
  134. make.top.mas_equalTo(0);
  135. make.bottom.mas_equalTo(0);
  136. }];
  137. _extractCodeTip2Lab = [[UILabel alloc] init];
  138. _extractCodeTip2Lab.font = [UIFont systemFontOfSize:14.f];
  139. //[_extractCodeTip2Lab setTextAlignment:(NSTextAlignmentRight)];
  140. [_extractCodeTip2Lab setTextAlignment:(NSTextAlignmentCenter)];
  141. [_extractCodeTip2Lab setTextColor:[UIColor hwColor:@"#01B7EA" alpha:1.0]];
  142. [_extractCodeBgView addSubview:_extractCodeTip2Lab];
  143. //extractCodeTip2Lab.text = _addShareMod.data.extractionCode;
  144. [_extractCodeTip2Lab mas_makeConstraints:^(MASConstraintMaker *make) {
  145. //make.left.mas_equalTo(extractCodeTipLab.mas_right);
  146. make.left.mas_equalTo(20);
  147. make.right.mas_equalTo(-20);
  148. make.top.mas_equalTo(0);
  149. make.bottom.mas_equalTo(0);
  150. }];
  151. _shareEndDateLabel = [[UILabel alloc] init];
  152. //_shareEndDateLabel.text = @"2024/04/25 19:45";
  153. _shareEndDateLabel.textAlignment = NSTextAlignmentCenter;
  154. _shareEndDateLabel.textColor = HW0A132BColor;
  155. _shareEndDateLabel.font = [UIFont systemFontOfSize:14.0];
  156. [_whiteBgView addSubview:_shareEndDateLabel];
  157. [_shareEndDateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  158. make.top.equalTo(_extractCodeBgView.mas_bottom).offset(15.f);
  159. make.left.mas_equalTo(15);
  160. make.right.mas_equalTo(-15);
  161. make.height.mas_equalTo(15);
  162. }];
  163. _cancelShareLinkButton = [[UIButton alloc] init];
  164. [_cancelShareLinkButton setTitle:NSLocalizedString(@"cancel_share_title",nil) forState:UIControlStateNormal];
  165. [_cancelShareLinkButton setTitleColor:HW0A132BColor forState:UIControlStateNormal];
  166. _cancelShareLinkButton.titleLabel.font = [UIFont systemFontOfSize:14.0];
  167. [_cancelShareLinkButton addTarget:self action:@selector(didClickButtonFun:) forControlEvents:UIControlEventTouchUpInside];
  168. _cancelShareLinkButton.tag = 2;
  169. [self.view addSubview:_cancelShareLinkButton];
  170. _cancelShareLinkButton.layer.cornerRadius = 8;
  171. _cancelShareLinkButton.layer.masksToBounds = YES;
  172. _cancelShareLinkButton.backgroundColor = [UIColor hwColor:@"#E3E8F1"];
  173. [_cancelShareLinkButton mas_makeConstraints:^(MASConstraintMaker *make) {
  174. make.left.mas_equalTo(15);
  175. make.width.mas_equalTo(130);
  176. make.top.equalTo(_whiteBgView.mas_bottom).offset(25);
  177. make.height.mas_equalTo(48);
  178. }];
  179. _shareLinkCopyButton = [[UIButton alloc] init];
  180. CGFloat w_btn = SCREEN_W-130 -15 -10 -15;
  181. // gradient
  182. CAGradientLayer *gl = [CAGradientLayer layer];
  183. gl.frame = CGRectMake(0,0,w_btn,48.f);
  184. gl.startPoint = CGPointMake(0, 0.5);
  185. gl.endPoint = CGPointMake(1, 0.5);
  186. gl.colors = @[(__bridge id)HW0CDEFDColor.CGColor, (__bridge id)HW058DFBColor.CGColor];
  187. gl.locations = @[@(0), @(1.0f)];
  188. [_shareLinkCopyButton.layer addSublayer:gl];
  189. [_shareLinkCopyButton setTitleColor:[UIColor whiteColor] forState:(UIControlStateNormal)];
  190. [_shareLinkCopyButton addTarget:self action:@selector(didClickButtonFun:) forControlEvents:(UIControlEventTouchUpInside)];
  191. [_shareLinkCopyButton setTitle:NSLocalizedString(@"copy_share_link_title",nil) forState:(UIControlStateNormal)];
  192. [_shareLinkCopyButton.titleLabel setFont:[UIFont systemFontOfSize:14.f]];
  193. [_shareLinkCopyButton.layer setCornerRadius:8.f];
  194. _shareLinkCopyButton.clipsToBounds = YES;
  195. _shareLinkCopyButton.tag = 11;
  196. [self.view addSubview:_shareLinkCopyButton];
  197. [_shareLinkCopyButton mas_makeConstraints:^(MASConstraintMaker *make) {
  198. make.right.mas_equalTo(-15);
  199. make.width.mas_equalTo(w_btn);
  200. make.top.equalTo(_whiteBgView.mas_bottom).offset(25);
  201. make.height.mas_equalTo(48);
  202. }];
  203. }
  204. // 生成二维码
  205. - (UIImage *)generateQRCodeWithInputMessage:(NSString *)inputMessage
  206. Width:(CGFloat)width
  207. Height:(CGFloat)height{
  208. NSData *inputData = [inputMessage dataUsingEncoding:NSUTF8StringEncoding];
  209. CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
  210. [filter setValue:inputData forKey:@"inputMessage"];
  211. // [filter setValue:@"H" forKey:@"inputCorrectionLevel"]; // 设置二维码不同级别的容错率
  212. CIImage *ciImage = filter.outputImage;
  213. // 消除模糊
  214. CGFloat scaleX = MIN(width, height)/ciImage.extent.size.width;
  215. CGFloat scaleY = MIN(width, height)/ciImage.extent.size.height;
  216. ciImage = [ciImage imageByApplyingTransform:CGAffineTransformScale(CGAffineTransformIdentity, scaleX, scaleY)];
  217. UIImage *returnImage = [UIImage imageWithCIImage:ciImage];
  218. return returnImage;
  219. }
  220. - (void)didClickButtonFun:(UIButton*)but
  221. {
  222. }
  223. - (void)viewWillAppear:(BOOL)animated
  224. {
  225. [super viewWillAppear:animated];
  226. [self handleDataFun];
  227. }
  228. //- (void)setDataModel:(ShareRecordListModel *)dataModel
  229. - (void)handleDataFun
  230. {
  231. //_dataModel = dataModel;
  232. if(!_dataModel.expirationStatus){
  233. _cancelShareLinkButton.hidden = NO;
  234. _shareLinkCopyButton.hidden = NO;
  235. }
  236. else{
  237. _cancelShareLinkButton.hidden = YES;
  238. _shareLinkCopyButton.hidden = YES;
  239. }
  240. //失效时间
  241. NSString *tipStr = NSLocalizedString(@"copy_share_link_Invalid_tip3",nil);
  242. _shareEndDateLabel.text = [[NSString alloc] initWithFormat:@"%@: %@",tipStr,_dataModel.expirationTime];
  243. ShareFileDataModel *fileModel = _dataModel.fileListVOS.firstObject;
  244. NSString *titleStr = [[NSString alloc] initWithFormat:@"%@%@%ld%@",fileModel.fileName,NSLocalizedString(@"share_file_more_tip",nil), _dataModel.fileListVOS.count,NSLocalizedString(@"share_file_Numbers_tip",nil)];
  245. if(_dataModel.fileListVOS.count == 1){
  246. titleStr = fileModel.fileName;
  247. }
  248. _shareTitleLabel.text = titleStr;
  249. _shareBeginDateLabel.text = _dataModel.createTime;
  250. NSString *serUrl = @"http://192.168.12.253:8080/#/pages/fileSharing/index?token=";
  251. NSString *shareUrl = [[NSString alloc] initWithFormat:@"%@%@",serUrl,_dataModel.token];
  252. _shareQRCodeImageView.image = [self generateQRCodeWithInputMessage:shareUrl Width:168 Height:168];
  253. _extractCodeTip2Lab.text = _dataModel.extractionCode;
  254. if(_dataModel.platformType == 4){
  255. [_whiteBgView mas_remakeConstraints:^(MASConstraintMaker *make) {
  256. make.left.mas_equalTo(15);
  257. make.right.mas_equalTo(-15);
  258. make.top.equalTo(self.navBarBGView.mas_bottom).offset(40.f);
  259. make.height.mas_equalTo(508);
  260. }];
  261. _extractCodeBgView.hidden = NO;
  262. [_shareEndDateLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  263. make.top.equalTo(_extractCodeBgView.mas_bottom).offset(15.f);
  264. make.left.mas_equalTo(15);
  265. make.right.mas_equalTo(-15);
  266. make.height.mas_equalTo(15);
  267. }];
  268. }
  269. else{
  270. [_whiteBgView mas_remakeConstraints:^(MASConstraintMaker *make) {
  271. make.left.mas_equalTo(15);
  272. make.right.mas_equalTo(-15);
  273. make.top.equalTo(self.navBarBGView.mas_bottom).offset(40.f);
  274. make.height.mas_equalTo(448);
  275. }];
  276. _extractCodeBgView.hidden = YES;
  277. [_shareEndDateLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  278. make.top.equalTo(_checkShareLinkButton.mas_bottom).offset(15.f);
  279. make.left.mas_equalTo(15);
  280. make.right.mas_equalTo(-15);
  281. make.height.mas_equalTo(15);
  282. }];
  283. }
  284. }
  285. @end