Commit 7a6344f5 cgx

缺省页重新设计

1 个父辈 7a4a689d
......@@ -228,6 +228,7 @@
D0BE536E2845A7AF007F15B3 /* SignModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BE536D2845A7AF007F15B3 /* SignModel.m */; };
D0BE53712845AFD8007F15B3 /* NewTaskModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BE53702845AFD8007F15B3 /* NewTaskModel.m */; };
D0BE53742845B27E007F15B3 /* DailyTaskModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BE53732845B27E007F15B3 /* DailyTaskModel.m */; };
D0BFA77E2902304700A27310 /* DefaultView.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFA77D2902304700A27310 /* DefaultView.m */; };
D0C09ED728007D9100709D4C /* relax_normal_lottie.json in Resources */ = {isa = PBXBuildFile; fileRef = D0C09ED328007D9100709D4C /* relax_normal_lottie.json */; };
D0C09ED828007D9100709D4C /* 478_lottie.json in Resources */ = {isa = PBXBuildFile; fileRef = D0C09ED428007D9100709D4C /* 478_lottie.json */; };
D0C09ED928007D9100709D4C /* 478normal_lottie.json in Resources */ = {isa = PBXBuildFile; fileRef = D0C09ED528007D9100709D4C /* 478normal_lottie.json */; };
......@@ -758,6 +759,8 @@
D0BE53702845AFD8007F15B3 /* NewTaskModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewTaskModel.m; sourceTree = "<group>"; };
D0BE53722845B27E007F15B3 /* DailyTaskModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DailyTaskModel.h; sourceTree = "<group>"; };
D0BE53732845B27E007F15B3 /* DailyTaskModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DailyTaskModel.m; sourceTree = "<group>"; };
D0BFA77C2902304700A27310 /* DefaultView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DefaultView.h; sourceTree = "<group>"; };
D0BFA77D2902304700A27310 /* DefaultView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DefaultView.m; sourceTree = "<group>"; };
D0C09ED328007D9100709D4C /* relax_normal_lottie.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = relax_normal_lottie.json; sourceTree = "<group>"; };
D0C09ED428007D9100709D4C /* 478_lottie.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = 478_lottie.json; sourceTree = "<group>"; };
D0C09ED528007D9100709D4C /* 478normal_lottie.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = 478normal_lottie.json; sourceTree = "<group>"; };
......@@ -1370,6 +1373,7 @@
children = (
D0F808F72804204B0097899F /* Home */,
D0A72E30282B4FE300EED7BE /* Course */,
D078280D28FE616200C8D612 /* SleepStory */,
D0F808FB280421160097899F /* UnityGame */,
D0A72E36282B539200EED7BE /* WhiteNoise */,
D0F808F628041FB60097899F /* BreathingMethod */,
......@@ -1613,12 +1617,12 @@
D078280F28FE61BA00C8D612 /* PersonalDynamic */ = {
isa = PBXGroup;
children = (
D06F2C4F28F6AEC50023921E /* PersonDynViewModel.h */,
D06F2C5028F6AEC50023921E /* PersonDynViewModel.m */,
D0FE45BA28FF80AA0020710A /* MyDynamicController.h */,
D0FE45BB28FF80AA0020710A /* MyDynamicController.m */,
D0FE45BD28FF814C0020710A /* MyDynamicView.h */,
D0FE45BE28FF814C0020710A /* MyDynamicView.m */,
D0FE45BA28FF80AA0020710A /* MyDynamicController.h */,
D0FE45BB28FF80AA0020710A /* MyDynamicController.m */,
D06F2C4F28F6AEC50023921E /* PersonDynViewModel.h */,
D06F2C5028F6AEC50023921E /* PersonDynViewModel.m */,
D0FE45C328FF862F0020710A /* MyDynamicListResultModel.h */,
D0FE45C428FF862F0020710A /* MyDynamicListResultModel.m */,
);
......@@ -1857,7 +1861,6 @@
D078280228FE59B600C8D612 /* DynamicPublish */,
D078280A28FE5CC000C8D612 /* MessageCenter */,
D078280F28FE61BA00C8D612 /* PersonalDynamic */,
D078280D28FE616200C8D612 /* SleepStory */,
);
path = CommunityModule;
sourceTree = "<group>";
......@@ -2136,6 +2139,8 @@
D0E3564628F560E4007190EE /* View */ = {
isa = PBXGroup;
children = (
D0BFA77C2902304700A27310 /* DefaultView.h */,
D0BFA77D2902304700A27310 /* DefaultView.m */,
D0E3564728F56115007190EE /* BaseTableViewCell.h */,
D0E3564828F56115007190EE /* BaseTableViewCell.m */,
);
......@@ -2817,6 +2822,7 @@
D01DC95128701ECD0035B78B /* MyPointView.m in Sources */,
D053D0DC28F3C23200BB2B84 /* ReportViewModel.m in Sources */,
D0B836FB28F1655E006E76C0 /* DynamicCommentCell.m in Sources */,
D0BFA77E2902304700A27310 /* DefaultView.m in Sources */,
D0B836EF28F100B3006E76C0 /* ComDetailViewModel.m in Sources */,
D091E66B283F120100D3279E /* MyScoreModel.m in Sources */,
D01BD428282C003900BA86B3 /* NoiseTypeModel.m in Sources */,
......
......@@ -6,15 +6,20 @@
//
#import <UIKit/UIKit.h>
#import "DefaultView.h"
NS_ASSUME_NONNULL_BEGIN
/// 基类控制器
@interface BaseViewController : UIViewController
- (void)dealErrorWithType:(ExceptionType)type errInfo:(NSString *)errInfo;
/// 更新缺省页
/// @param type 缺省类型
/// @param info 缺省信息
- (void)updateDefalutView:(DefaultType)type info:(NSString *)info;
- (void)refreshHandle;
/// 事件回调
- (void)fireHandler;
@end
......
......@@ -6,10 +6,9 @@
//
#import "BaseViewController.h"
#import "ExceptionDefaultView.h"
@interface BaseViewController ()
@property (nonatomic, strong) ExceptionDefaultView *exceptionView;
@property (nonatomic, strong) DefaultView *defaultView;
@end
@implementation BaseViewController
......@@ -20,16 +19,27 @@
}
#pragma mark - public
- (void)dealErrorWithType:(ExceptionType)type errInfo:(NSString *)errInfo {
self.exceptionView.hidden = NO;
[self.exceptionView updateExceptionViewWithType:type];
- (void)fireHandler {
self.defaultView.hidden = YES;
}
- (void)updateDefalutView:(DefaultType)type info:(NSString *)info {
self.defaultView.hidden = NO;
[self.defaultView updateWithType:type];
if (type == ExceptionTypeNet) {
[self.exceptionView showServerErrInfo:errInfo];
[self.defaultView showServerErr:info];
}
}
- (void)refreshHandle {
self.exceptionView.hidden = YES;
#pragma mark - lazy
- (DefaultView *)defaultView {
if (!_defaultView) {
WS(weakSelf);
_defaultView = [[DefaultView alloc] initWithType:DefaultTypeNone handler:^{
[weakSelf fireHandler];
} superview:self.view];
}
return _defaultView;
}
#pragma mark - 品牌模式
......@@ -37,15 +47,4 @@
return NaviStyleDefault;
}
#pragma mark - lazy
- (ExceptionDefaultView *)exceptionView {
if (!_exceptionView) {
WS(weakSelf);
_exceptionView = [[ExceptionDefaultView alloc] initWithType:ExceptionTypeNet block:^{
[weakSelf refreshHandle];
} superView:self.view];
}
return _exceptionView;
}
@end
//
// DefaultView.h
// DreamSleep
//
// Created by peter on 2022/10/21.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
// 异常处理类型
typedef NS_ENUM(NSInteger, DefaultType) {
DefaultTypeNone, // 默认
DefaultTypeNet, // 网络异常
DefaultTypeEmpty // 没有数据
};
// 重试block回调
typedef void (^RetryBlock)(void);
/// 缺省页
@interface DefaultView : UIView
- (instancetype)initWithType:(DefaultType)type handler:(RetryBlock)handler superview:(UIView *)superview;
- (void)updateWithType:(DefaultType)type;
- (void)showServerErr:(NSString *)info;
@end
NS_ASSUME_NONNULL_END
//
// DefaultView.m
// DreamSleep
//
// Created by peter on 2022/10/21.
//
#import "DefaultView.h"
@interface DefaultView ()
@property (nonatomic, assign) DefaultType type;
@property (nonatomic, copy) RetryBlock handler;
@property (nonatomic, strong) UIImageView *defaultIcon;
@property (nonatomic, strong) UILabel *reasonLab;
@property (nonatomic, strong) UIButton *handleBtn;
@end
@implementation DefaultView
- (instancetype)initWithType:(DefaultType)type handler:(RetryBlock)handler superview:(UIView *)superview {
if (self = [super initWithFrame:CGRectZero]) {
self.type = type;
self.handler = handler;
[superview addSubview:self];
self.hidden = YES;
[self addSubview:self.defaultIcon];
[self addSubview:self.reasonLab];
[self addSubview:self.handleBtn];
[self mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(superview);
}];
[superview layoutIfNeeded];
CGFloat margin = (self.height - 128 - 24 - 40 - 42 - 42) / 2;
[self.defaultIcon mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self);
make.size.mas_equalTo(CGSizeMake(300, 128));
make.top.equalTo(self).offset(margin);
}];
[self.reasonLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self);
make.left.equalTo(self).offset(5);
make.right.equalTo(self).offset(-5);
make.height.equalTo(@24);
make.top.equalTo(self.defaultIcon.mas_bottom).offset(42);
}];
[self.handleBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self);
make.size.mas_equalTo(CGSizeMake(155, 40));
make.top.equalTo(self.reasonLab.mas_bottom).offset(42);
make.bottom.equalTo(self).offset(-margin);
}];
}
return self;
}
#pragma mark - public
- (void)updateWithType:(DefaultType)type {
self.type = type;
self.defaultIcon.image = [UIImage imageNamed:[self _getDefaultIconWithType:type]];
self.reasonLab.text = [self _getReasonWithType:type];
[self.handleBtn setTitle:[self _getHandleBtnTitleWithType:type] forState:UIControlStateNormal];
}
- (void)showServerErr:(NSString *)info {
self.reasonLab.text = (info && [info isKindOfClass:[NSString class]]) ? info : @"服务器异常";
}
#pragma mark - Actions
- (void)handle {
if (self.handler) { self.handler(); }
}
#pragma mark - private
- (NSString *)_getDefaultIconWithType:(DefaultType)type {
NSString *iconName = @"";
if (type == DefaultTypeNet) {
iconName = @"netDefault";
} else if (type == DefaultTypeEmpty) {
iconName = @"noData";
}
return iconName;
}
- (NSString *)_getReasonWithType:(DefaultType)type {
NSString *reason = @"";
if (type == DefaultTypeNet) {
reason = @"当前网络环境较差,点击刷新重新加载~";
} else if (type == DefaultTypeEmpty) {
reason = @"空空如也哦~";
}
return reason;
}
- (NSString *)_getHandleBtnTitleWithType:(DefaultType)type {
NSString *title = @"";
if (type == DefaultTypeNet) {
title = @"刷新";
} else if (type == DefaultTypeEmpty) {
title = @"重新获取";
}
return title;
}
#pragma mark - lazy
- (UIImageView *)defaultIcon {
if (!_defaultIcon) {
_defaultIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[self _getDefaultIconWithType:self.type]]];
_defaultIcon.dk_alphaPicker = DKAlphaPickerWithAlphas(1, .5, 1);
}
return _defaultIcon;
}
- (UILabel *)reasonLab {
if (!_reasonLab) {
_reasonLab = [UILabel labWithText:[self _getReasonWithType:self.type] font:SysFont(14) fit:YES];
_reasonLab.textAlignment = NSTextAlignmentCenter;
_reasonLab.dk_textColorPicker = DKColorPickerWithKey(SubTEXT);
}
return _reasonLab;
}
- (UIButton *)handleBtn {
if (!_handleBtn) {
_handleBtn = [UIButton btnWithTitle:[self _getHandleBtnTitleWithType:self.type] font:BoldFont(16)];
_handleBtn.dk_backgroundColorPicker = DKColorPickerWithKey(BrandBG);
[_handleBtn dk_setTitleColorPicker:DKColorPickerWithKey(Sub_Navi_TITLE) forState:UIControlStateNormal];
[_handleBtn addTarget:self action:@selector(handle) forControlEvents:UIControlEventTouchUpInside];
[_handleBtn cornerRadius:20];
}
return _handleBtn;
}
@end
......@@ -102,6 +102,7 @@
- (UIView *)tagsView {
if (!_tagsView) {
_tagsView = [UIView new];
_tagsView.clipsToBounds = YES;
}
return _tagsView;
}
......
......@@ -32,7 +32,8 @@
if (requestModel.resCode == DSResCodeSuccess) {
if (requestModel.articleArr.count == 0) {
[self dealErrorWithType:ExceptionTypeNoData errInfo:@""];
[self updateDefalutView:DefaultTypeEmpty info:@""];
[self.articleView reloadData];
return;
}
......@@ -49,7 +50,7 @@
if (requestModel.articleArr.count) {
[DSProgressHUD showToast:requestModel.errMessage];
} else {
[self dealErrorWithType:ExceptionTypeNet errInfo:requestModel.errMessage];
[self updateDefalutView:DefaultTypeNet info:requestModel.errMessage];
}
}
}];
......@@ -64,9 +65,9 @@
}
}
- (void)refreshHandle {
[super refreshHandle];
[self.articleView.mj_header beginRefreshing];
- (void)fireHandler {
[super fireHandler];
[self getArticleListRequest:NO];
}
#pragma mark - UITableViewDelegate
......
......@@ -63,8 +63,7 @@
- (void)publishAction {
if (self.dynamicVM.selectedPhotos.count || self.textView.text.length) {
// 1、登录了,判断是否绑定了手机号
#warning warning - 临时测试
if ([LoginUtils getUserMobile]) {
if (![LoginUtils getUserMobile]) {
// 2、弹出绑定手机提示框框
[self.bindMobileConfirmBox show];
return;
......@@ -212,8 +211,9 @@
- (UIButton *)publishBtn {
if (!_publishBtn) {
_publishBtn = [UIButton btnWithTitle:@"发布" titleColor:DSWhite font:BoldFont(16)];
_publishBtn = [UIButton btnWithTitle:@"发布" font:BoldFont(16)];
_publishBtn.dk_backgroundColorPicker = DKColorPickerWithKey(BrandBG);
[_publishBtn dk_setTitleColorPicker:DKColorPickerWithKey(Sub_Navi_TITLE) forState:UIControlStateNormal];
[_publishBtn addTarget:self action:@selector(publishAction) forControlEvents:UIControlEventTouchUpInside];
[_publishBtn cornerRadius:20];
}
......
......@@ -32,19 +32,19 @@
if (viewModel.resCode == DSResCodeSuccess) {
if (viewModel.listArr.count == 0) {
[self dealErrorWithType:ExceptionTypeNoData errInfo:@""];
[self updateDefalutView:DefaultTypeEmpty info:@""];
} else {
[self.dataSource addDataArray:viewModel.listArr];
[self.listView reloadData];
}
[self.listView reloadData];
} else {
[self dealErrorWithType:ExceptionTypeNet errInfo:viewModel.errMessage];
[self updateDefalutView:DefaultTypeNet info:viewModel.errMessage];
}
}];
}
- (void)refreshHandle {
[super refreshHandle];
- (void)fireHandler {
[super fireHandler];
[self getListDataRequest];
}
......
......@@ -32,6 +32,11 @@
self.edgesForExtendedLayout = UIRectEdgeNone;
}
- (void)fireHandler {
[super fireHandler];
[self getDynamicListRequest:NO];
}
#pragma mark - MyDynamicViewDelegate
- (void)getDynamicListRequest:(BOOL)loadMore {
if (loadMore == NO) { self.offset = 1; }
......@@ -43,13 +48,18 @@
[self.myDynamicView endRefreshingWithNoMoreData];
} else {
[self.myDynamicView endRefreshing:NO];
[self updateDefalutView:DefaultTypeEmpty info:@""];
}
} else {
self.offset++;
[self.myDynamicView updateCommunityMoments:loadMore];
}
} else {
[DSProgressHUD showToast:requestModel.errMessage];
if (loadMore) {
[DSProgressHUD showToast:requestModel.errMessage];
} else {
[self updateDefalutView:DefaultTypeNet info:requestModel.errMessage];
}
[self.myDynamicView endRefreshing:loadMore];
}
}];
......@@ -99,6 +109,9 @@
[self.myDynVM deleteComDynWithDynamicID:self.myDynVM.delete_id];
[self.myDynamicView deleteSuccess];
[self.myDynamicView updateListView];
if (self.myDynVM.listArr.count == 0) {
[self updateDefalutView:DefaultTypeEmpty info:@""];
}
// 刷新社区动态列表
[[NSNotificationCenter defaultCenter] postNotificationName:NeedUpdateComList object:nil];
} else {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!