// // MyViewController.m // LekangGuard // // Created by ecell on 2022/9/27. // #import "MyViewController.h" #import "MessageViewController.h" #import "ProblemViewController.h" #import "AboutViewController.h" #import "DPClearCacheTool.h" #import "ModifyDataViewController.h" @interface MyViewController () @property (nonatomic ,strong) UIScrollView *myScroll; @property (nonatomic ,weak) UIView *headerView; @property (nonatomic ,weak) UIView *bgView; @property (nonatomic ,weak) UILabel *cacheLabel; @property (nonatomic ,assign) UILabel *nameLabel; @property (nonatomic ,assign) UILabel *phoneLabel; @property (nonatomic ,assign) UIButton *iconImg; @property (nonatomic ,weak) UILabel *newsMeg; @property (nonatomic ,strong) MyUserMsgModel *userModel; @end @implementation MyViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.zx_navTitle = GJText(@"我的"); self.view.backgroundColor = KKBackgroundGrey; [self.view addSubview:self.myScroll]; [self.myScroll mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.view); make.top.equalTo(self.view).offset(iPhoneX_NavHeight); make.bottom.equalTo(self.view.mas_bottom); }]; //[self QueryMsg]; NSArray *titleArr = @[@[@""], @[GJText(@"消息中心"),GJText(@"清除缓存")], @[GJText(@"关于我们"),GJText(@"常见问题")], //@[GJText(@"地图切换")] ]; NSArray *imgeArr = @[@[@""], @[@"icon_my_message_center",@"icon_my_clear_the_cache"], @[@"icon_my_about_us",@"icon_my_common_problems"], //@[@"icon_common_map"] ]; for (int i = 0; i < titleArr.count; i++) { CGFloat hh = Adapted(100); //if (i == titleArr.count-1) hh = Adapted(50); UIView *bgView = [UICommon ui_view:CGRectZero backgroundColor:KKWhiteColorColor cornerRadius:8 borderWidth:0 borderColor:KKWhiteColorColor]; bgView.frame = CGRectMake(10, 10+i*10+Adapted(100)*i, SCREEN_WIDTH-20, hh); if(i == 0) self.headerView = bgView; else if(i == titleArr.count-1) self.bgView = bgView; [self.myScroll addSubview:bgView]; if (i > 0) { NSArray *tArr = titleArr[i]; NSArray *iarr = imgeArr[i]; for (int j = 0; j < tArr.count; j++) { UIImageView *leftImg = [UICommon ui_imageView:CGRectZero fileName:iarr[j]]; [bgView addSubview:leftImg]; UIButton *btn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(14) normalColor:KKTextBlackColor normalText:tArr[j] click:^(UIButton *button) { if ([button.currentTitle isEqualToString:GJText(@"消息中心")]) { MessageViewController *vc = [MessageViewController new]; vc.selectedIndex = 0; [self.navigationController pushViewController:vc animated:YES]; } else if ([button.currentTitle isEqualToString:GJText(@"常见问题")]) { ProblemViewController *vc = [ProblemViewController new]; [self.navigationController pushViewController:vc animated:YES]; } else if ([button.currentTitle isEqualToString:GJText(@"关于我们")]) { AboutViewController *vc = [AboutViewController new]; [self.navigationController pushViewController:vc animated:YES]; } else if ([button.currentTitle isEqualToString:GJText(@"清除缓存")]) { EasyAlertView *alertV = [EasyAlertView alertViewWithTitle:GJText(@"提示") subtitle:GJText(@"确定要清除缓存吗?") AlertViewType:AlertViewTypeSystemAlert config:nil]; [alertV addAlertItem:^EasyAlertItem *{ return [EasyAlertItem itemWithTitle:GJText(@"取消") type:AlertItemTypeSystemCancel callback:nil]; }]; [alertV addAlertItem:^EasyAlertItem *{ return [EasyAlertItem itemWithTitle:GJText(@"确定") type:AlertItemTypeSystemDefault callback:^(EasyAlertView *showview, long index) { //[UICommon MessageUpload:@"清除缓存中"]; [DPClearCacheTool clearCaches]; AfterDispatch(1, ^{ //[UICommon HidenLoading]; self.cacheLabel.text = [DPClearCacheTool getCacheSize]; }); }]; }]; [alertV showAlertView]; } }]; btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; [bgView addSubview:btn]; [btn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(bgView).offset(Adapted(50)*j); make.left.equalTo(bgView).offset(Adapted(leftImg.image.size.width)+20); make.right.equalTo(bgView.mas_right); make.height.mas_equalTo(Adapted(50)); }]; [leftImg mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(bgView).offset(10); make.centerY.equalTo(btn); make.size.mas_equalTo(CGSizeMake(Adapted(leftImg.image.size.width), Adapted(leftImg.image.size.height))); }]; UIImageView *rightImg = [UICommon ui_imageView:CGRectZero fileName:@"icon_enter_gray"]; [bgView addSubview:rightImg]; [rightImg mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(bgView.mas_right).inset(10); make.centerY.equalTo(btn); make.size.mas_equalTo(rightImg.image.size); }]; if (i == 1 && j == 0) { /// 未读消息展示红点 UILabel *newsMeg = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontADA_(12) textColor:KKGrey121 text:@"" Radius:5]; newsMeg.backgroundColor = UIColor.redColor; newsMeg.hidden = YES; self.newsMeg = newsMeg; [bgView addSubview:newsMeg]; [newsMeg mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(rightImg.mas_left).inset(15); make.centerY.equalTo(btn); make.width.height.mas_equalTo(10); }]; } if (i == 1 && j == 1) { ///缓存显示 UILabel *cacheLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontADA_(12) textColor:KKGrey121 text:[DPClearCacheTool getCacheSize] Radius:0]; self.cacheLabel = cacheLabel; [bgView addSubview:cacheLabel]; [cacheLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(rightImg.mas_left).inset(15); make.centerY.equalTo(btn); }]; } if (tArr.count > 1) { UILabel *line = [UILabel new]; line.backgroundColor = KKLineColor; [bgView addSubview:line]; [line mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(bgView); make.centerY.equalTo(bgView); make.height.mas_equalTo(0.5); }]; } } } else { UIButton *btn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(0) normalColor:KKTextBlackColor normalText:@"" click:^(UIButton *button) { ModifyDataViewController *vc = [ModifyDataViewController new]; vc.model = self.userModel; [self.navigationController pushViewController:vc animated:YES]; }]; [bgView addSubview:btn]; [btn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(bgView); make.left.right.equalTo(bgView); make.height.mas_equalTo(hh); }]; } } UIButton *outLoginBtn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(15) normalColor:KKWhiteColorColor normalText:GJText(@"退出登录") click:^(id x) { EasyAlertView *alertV = [EasyAlertView alertViewWithTitle:nil subtitle:GJText(@"确定退出登录吗") AlertViewType:AlertViewTypeSystemActionSheet config:nil]; [alertV addAlertItem:^EasyAlertItem *{ return [EasyAlertItem itemWithTitle:GJText(@"取消") type:AlertItemTypeSystemCancel callback:nil]; }]; [alertV addAlertItemWithTitle:GJText(@"退出登录") type:AlertItemTypeSystemDestructive callback:^(EasyAlertView *showview, long index) { [self Logout]; }]; [alertV showAlertView]; }]; outLoginBtn.backgroundColor = KKMainColor; outLoginBtn.layer.cornerRadius = 8; outLoginBtn.layer.masksToBounds = YES; [self.view addSubview:outLoginBtn]; [outLoginBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.view).inset(10); make.top.equalTo(self.bgView.mas_bottom).offset(Adapted(50)); make.height.mas_equalTo(Adapted(45)); }]; UIButton *cancelBtn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(15) normalColor:UIColor.redColor normalText:GJText(@"注销用户(谨慎)") click:^(id x) { EasyAlertView *alertV = [EasyAlertView alertViewWithTitle:GJText(@"警告:注销用户信息将被清空无法恢复,请确认是否注销!") subtitle:nil AlertViewType:AlertViewTypeSystemAlert config:nil]; [alertV addAlertItem:^EasyAlertItem *{ return [EasyAlertItem itemWithTitle:GJText(@"取消") type:AlertItemTypeSystemCancel callback:^(EasyAlertView *showview, long index) { }]; }]; [alertV addAlertItem:^EasyAlertItem *{ return [EasyAlertItem itemWithTitle:GJText(@"确定") type:AlertItemTypeSystemDefault callback:^(EasyAlertView *showview, long index) { [self UserCancel]; }]; }]; [alertV showAlertView]; }]; cancelBtn.layer.borderWidth = 1; cancelBtn.layer.borderColor = UIColor.redColor.CGColor; cancelBtn.layer.cornerRadius = 8; [self.view addSubview:cancelBtn]; [cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.view).inset(10); make.top.equalTo(outLoginBtn.mas_bottom).offset(Adapted(20)); make.height.mas_equalTo(Adapted(45)); }]; /// 头像 UIButton *iconImg = [UICommon ui_buttonSimple:CGRectZero font:0 normalColor:KKWhiteColorColor normalText:@"" click:^(id x) { ModifyDataViewController *vc = [ModifyDataViewController new]; vc.model = self.userModel; [self.navigationController pushViewController:vc animated:YES]; }]; iconImg.layer.cornerRadius = Adapted(33); iconImg.layer.masksToBounds = YES; iconImg.backgroundColor = KKWhiteColorColor; self.iconImg = iconImg; [self.headerView addSubview:iconImg]; [iconImg mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.headerView).offset(15); make.centerY.equalTo(self.headerView); make.width.height.mas_equalTo(Adapted(66)); }]; UILabel *nameLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontBoldADA_(18) textColor:KKTextBlackColor text:@"" Radius:0]; self.nameLabel = nameLabel; [self.headerView addSubview:nameLabel]; [nameLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(iconImg.mas_right).offset(10); make.top.equalTo(iconImg).offset(5); }]; UILabel *phoneLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontADA_(15) textColor:KKGrey219 text:@"" Radius:0]; self.phoneLabel = phoneLabel; [self.headerView addSubview:phoneLabel]; [phoneLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(nameLabel.mas_left); make.bottom.equalTo(iconImg.mas_bottom).inset(5); }]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self QueryMsg]; [self GetUnReadTotal]; } #pragma mark 查看个人资料 /// 查看个人资料 - (void)QueryMsg { [UICommon MessageUpload:@"加载中"]; NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setValue:APIManager.sharedManager.deviceModel.imei forKey:@"imei"]; [[[APIManager sharedManager] APGET:QueryMsg_URL parameters:parameters resultClass:MyUserMsgModel.class] subscribeNext:^(MyUserMsgModel *model) { [UICommon HidenLoading]; if (model != nil) { self.userModel = model; [self.iconImg sd_setImageWithURL:[NSURL URLWithString:model.image] forState:0 placeholderImage:ImageName_(@"icon_adults_occupies_the_head")]; self.nameLabel.text = model.name; self.phoneLabel.text = F(@"%@:%@",GJText(@"号码"), model.phone.length > 0 ? model.phone : @"--"); } } error:^(NSError * _Nullable error) { NSDictionary *dic = error.userInfo; [UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; }]; } #pragma mark 用户注销 /// 用户注销 - (void)UserCancel { [UICommon MessageUpload:@"正在注销"]; NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [[[APIManager sharedManager] APGET:UserCancel_URL parameters:parameters resultClass:nil] subscribeNext:^(id _Nullable x) { [UICommon HidenLoading]; [UICommon MessageSuccessText:@"注销成功"]; [[NSNotificationCenter defaultCenter] postNotificationName:sRelogin object:nil]; } error:^(NSError * _Nullable error) { NSDictionary *dic = error.userInfo; [UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; }]; } #pragma mark 退出登录 /// 退出登录 - (void)Logout { [UICommon MessageUpload:@"正在退出登录"]; NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [[[APIManager sharedManager] APGET:Logout_URL parameters:parameters resultClass:nil] subscribeNext:^(id _Nullable x) { [UICommon HidenLoading]; [[NSNotificationCenter defaultCenter] postNotificationName:sRelogin object:nil]; } error:^(NSError * _Nullable error) { NSDictionary *dic = error.userInfo; [UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; }]; } #pragma mark 查询未读消息数 /// 查询未读消息数 - (void)GetUnReadTotal { kWeakSelf(self) [UICommon MessageUpload:@"加载中"]; NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [[[APIManager sharedManager] APGET:UnReadTotal_URL parameters:parameters resultClass:nil] subscribeNext:^(NSArray *arr) { [UICommon HidenLoading]; if (ARRAYHASVALUE(arr)) { [arr enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL * _Nonnull stop) { NSInteger total = [obj[@"total"] integerValue]; weakself.newsMeg.hidden = total > 0 ? NO : YES; }]; } } error:^(NSError * _Nullable error) { NSDictionary *dic = error.userInfo; [UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; }]; } - (UIScrollView *)myScroll { if (!_myScroll) { _myScroll = [UIScrollView new]; _myScroll.backgroundColor = KKClearColor; } return _myScroll; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end