You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.8 KiB
97 lines
2.8 KiB
// |
|
// WXYZ_FeedbackPhotoManager.m |
|
// WXReader |
|
// |
|
// Created by Andrew on 2019/12/28. |
|
// Copyright © 2019 Andrew. All rights reserved. |
|
// |
|
|
|
#import "WXYZ_FeedbackPhotoManager.h" |
|
|
|
@interface WXYZ_FeedbackPhotoManager () |
|
|
|
@property (nonatomic, strong) NSMutableSet *uploadSet; |
|
|
|
@end |
|
|
|
@implementation WXYZ_FeedbackPhotoManager |
|
|
|
implementation_singleton(WXYZ_FeedbackPhotoManager) |
|
|
|
- (instancetype)init |
|
{ |
|
if (self = [super init]) { |
|
self.uploadSet = [NSMutableSet set]; |
|
} |
|
return self; |
|
} |
|
|
|
- (void)addPhotoImage:(UIImage *)image complete:(void(^)(WXYZ_FeedbackPhotoModel *photoModel))completeBlock |
|
{ |
|
NSString *imageBase64 = [TFViewHelper getBase64StringWithImageData:UIImagePNGRepresentation(image)]; |
|
if (imageBase64.length == 0 || !imageBase64) { |
|
if (completeBlock) { |
|
completeBlock(nil); |
|
} |
|
return; |
|
} |
|
|
|
[self.uploadSet addObject:@"upload"]; |
|
|
|
WS(weakSelf) |
|
[TFNetworkTools POST:Upload_Image parameters:@{@"image":imageBase64} model:WXYZ_FeedbackPhotoModel.class success:^(BOOL isSuccess, id _Nullable t_model, TFNetworkRequestModel *requestModel) { |
|
if (isSuccess) { |
|
!completeBlock ?: completeBlock(t_model); |
|
} else { |
|
[TFPromptManager showPromptViewWithStatus:TFPromptStatusError promptTitle:TFLocalizedString(@"图片上传失败")]; |
|
!completeBlock ?: completeBlock(nil); |
|
} |
|
|
|
[weakSelf.uploadSet removeObject:[weakSelf.uploadSet anyObject]]; |
|
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { |
|
[TFPromptManager showPromptWithError:error defaultText:nil]; |
|
// [weakSelf.uploadSet removeObject:[weakSelf.uploadSet anyObject]]; |
|
!completeBlock ?: completeBlock(nil); |
|
}]; |
|
} |
|
|
|
- (BOOL)isUploading |
|
{ |
|
return self.uploadSet.count > 0; |
|
} |
|
|
|
- (void)deletePhotoWithPhotoModel:(WXYZ_FeedbackPhotoModel *)photoModel |
|
{ |
|
if (photoModel.show_img.length <= 0) { |
|
[TFPromptManager showPromptViewWithStatus:TFPromptStatusError promptTitle:TFLocalizedString(@"图片删除失败")]; |
|
return; |
|
} |
|
|
|
[self removeAllPhotoImageWithPhotoArray:@[photoModel]]; |
|
|
|
if (photoModel) { |
|
if (self.deletePhotoBlock) { |
|
self.deletePhotoBlock(photoModel); |
|
} |
|
} |
|
} |
|
|
|
- (void)removeAllPhotoImageWithPhotoArray:(NSArray *)dataSources |
|
{ |
|
[self.uploadSet removeAllObjects]; |
|
|
|
if (dataSources.count <= 0) { |
|
return; |
|
} |
|
|
|
NSMutableArray *imgs = [NSMutableArray arrayWithCapacity:3]; |
|
for (WXYZ_FeedbackPhotoModel *t_model in dataSources) { |
|
if (t_model.img) { |
|
[imgs addObject:t_model.img]; |
|
} |
|
} |
|
|
|
[TFNetworkTools POST:Delete_Upload_Image parameters:@{@"image":[imgs componentsJoinedByString:@"||"]} model:nil success:nil failure:nil]; |
|
} |
|
|
|
@end
|
|
|