cdts/xdts-ios 3/TreeHole/Code/Features/Profile/ViewController/ReportViewController.m
2023-07-27 09:20:00 +08:00

157 lines
5.6 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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