cdts/xdts-ios 3/TreeHole/Code/Features/Profile/ViewController/ReportViewController.m

157 lines
5.6 KiB
Mathematica
Raw Normal View History

2023-07-27 09:20:00 +08:00
//
// ReportViewController.m
// Youth
//
// Created by mambaxie on 2022/1/2.
//
#import "ReportViewController.h"
#import "FSTextInputView.h"
@interface ReportViewController ()
@property (nonatomic, strong) FSTextInputView *inputView;
@property (nonatomic, strong) NSMutableArray<PYThemeButton *> *addImageButtons;
@property (nonatomic, strong) PYThemeButton *okButton;
@end
@implementation ReportViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"举报";
self.view.backgroundColor = BG_COLOR;
UIView *imageItem = [[UIView alloc] init];
imageItem.width = SCREEN_WIDTH;
imageItem.backgroundColor = [UIColor clearColor];
UIView *imageSection = [self sectionWithTitle:@"图片证据" tips:@"至少1张 · 重要)"];
imageSection.y = NAVIGATION_BAR_HEIGHT;
[imageItem addSubview:imageSection];
self.addImageButtons = [NSMutableArray array];
WeakSelf(self);
for (int i = 0; i < 3; i++) {
PYThemeButton *addButton = [PYThemeButton addImageButtonWithAction:^(UIButton * _Nonnull btn) {
[weakself updateOKButton];
}];
addButton.x = FIX_SIZE(15) + (addButton.width + FIX_SIZE(10)) * i;
addButton.y = imageSection.bottom + FIX_SIZE(10);
[self.addImageButtons addObject:addButton];
[imageItem addSubview:addButton];
imageItem.height = addButton.bottom + FIX_SIZE(15);
}
[self.view addSubview:imageItem];
UIView *contentItem = [UIView new];
contentItem.backgroundColor = UIColor.clearColor;
contentItem.width = SCREEN_WIDTH;
[self.view addSubview:contentItem];
contentItem.y = imageItem.bottom + FIX_SIZE(10);
UIView *contentSection = [self sectionWithTitle:@"举报内容" tips:@"(必选)"];
[contentItem addSubview:contentSection];
FSTextInputView *inputView = [[FSTextInputView alloc] init];
inputView.placeHolderLabel.text = @"最多200字";
inputView.x = FIX_SIZE(15);
inputView.y = contentSection.bottom + FIX_SIZE(10);
inputView.width = self.view.width - inputView.x * 2;
inputView.height = FIX_SIZE(90);
inputView.maxTextLength = 200;
[contentItem addSubview:inputView];
inputView.backgroundColor = COLOR_WITH_RGB(0x2D2F42 );
inputView.textview.font = MT_FONT_REGULAR_SIZE(13);
inputView.textview.textColor = TITLE_COLOR;
inputView.layer.cornerRadius = FIX_SIZE(13);
inputView.layer.borderWidth = 0.5;
inputView.layer.borderColor = COLOR_WITH_RGB(0x83A4A).CGColor;
self.inputView = inputView;
contentItem.height = inputView.bottom + FIX_SIZE(15);
PYThemeButton *okButton = [PYThemeButton buttonWithTitle:@"提交" action:^(UIButton * _Nonnull button) {
[SVProgressHUD showWithStatus:nil];
NSMutableArray *datasM = [NSMutableArray array];
for (PYThemeButton *btn in weakself.addImageButtons) {
if (btn.addedImage) {
[datasM addObject:compressImageToDataIfNeed(btn.addedImage)];
}
}
NSString *content = weakself.inputView.textview.text;
[PYHTTPManager uploadFileWithScene:AliOSSUploadSceneReport datas:datasM completion:^(id _Nullable rsp, NSError * _Nullable error) {
if (!error) {
NSMutableDictionary *paramsM = [NSMutableDictionary dictionary];
if ([rsp isKindOfClass:[NSArray class]]) {
NSArray *urls = rsp;
if (urls.count >= 1) {
paramsM[@"report_img_one"] = urls[0];
}
if (urls.count >= 2) {
paramsM[@"report_img_two"] = urls[1];
}
if (urls.count >= 3) {
paramsM[@"report_img_three"] = urls[2];
}
}
paramsM[@"report_text"] = content;
paramsM[@"report_user_id"] = @(weakself.user.ID);
[PYHTTPManager postWithPath:@"reportuser" params:paramsM callback:^(id _Nullable rsp, NSError * _Nullable error) {
if (!error) {
[SVProgressHUD showSuccessWithStatus:@"举报成功"];
[weakself.navigationController popViewControllerAnimated:YES];
}
}];
}
}];
}];
self.okButton = okButton;
okButton.enabled = NO;
[self.view addSubview:okButton];
okButton.bottom = SCREEN_HEIGHT - FIX_SIZE(28);
inputView.didChangeText = ^(FSTextInputView *inputView) {
[weakself updateOKButton];
};
}
- (void)updateOKButton {
BOOL hasImage = NO;
for (PYThemeButton *btn in self.addImageButtons) {
if (btn.addedImage) {
hasImage = YES;
break;
}
}
self.okButton.enabled = self.inputView.textview.hasText && hasImage;
}
- (UIView *)sectionWithTitle:(NSString *)title tips:(NSString *)tips {
UIView *item = [[UIView alloc] init];
item.width = SCREEN_WIDTH;
item.height = FIX_SIZE(48);
UILabel *titleLabel = [UILabel mt_titleLabelWithText:title];
titleLabel.font = MT_FONT_MEDIUM_SIZE(13);
titleLabel.textColor = TITLE_COLOR;
[titleLabel sizeToFit];
titleLabel.x = FIX_SIZE(15);
titleLabel.centerY = item.height * 0.5;
[item addSubview:titleLabel];
UILabel *tipsLabel = [UILabel mt_titleLabelWithText:tips];
tipsLabel.font = MT_FONT_MEDIUM_SIZE(11);
tipsLabel.textColor = COLOR_WITH_RGB(0xFC4588);
[tipsLabel sizeToFit];
tipsLabel.x = titleLabel.right;
tipsLabel.centerY = item.height * 0.5;
[item addSubview:tipsLabel];
return item;
}
@end