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.
385 lines
14 KiB
385 lines
14 KiB
// |
|
// DeviceMenuTableViewCell.m |
|
// tongxin |
|
// |
|
// Created by ecell on 2023/7/11. |
|
// Copyright © 2023 xTT. All rights reserved. |
|
// |
|
|
|
#import "DeviceMenuTableViewCell.h" |
|
|
|
#import "DeviceTabCollectionViewCell.h" |
|
#import "WSLWaterFlowLayout.h" |
|
|
|
#import "TimingSwitchVC.h" |
|
#import "CourseViewController.h" |
|
#import "FamilyViewController.h" |
|
#import "PPFriendViewController.h" |
|
#import "NewStepVC.h" |
|
#import "DeviceLoseViewController.h" |
|
#import "WatchDialViewController.h" |
|
#import "ChatViewController.h" |
|
#import "BloodAndOxygenViewController.h" |
|
#import "ContactsViewController.h" |
|
#import "HAndTViewController.h" |
|
#import "jjcdViewController.h" |
|
#import "VIPViewController.h" |
|
#import "StudentInfoViewController.h" |
|
#import "WiFiViewController.h" |
|
#import "ShortMessageListViewController.h" |
|
#import "ApplicationManageViewController.h" |
|
#import "ChatListViewController.h" |
|
#import "WhiteContactViewController.h" |
|
|
|
@interface DeviceMenuTableViewCell ()<WSLWaterFlowLayoutDelegate,UICollectionViewDelegate,UICollectionViewDataSource> |
|
|
|
|
|
@property (nonatomic, assign) WSLWaterFlowLayoutStyle flowLayoutStyle; |
|
@property (nonatomic, strong) UICollectionView *collectionView; |
|
|
|
@property (nonatomic ,weak) UILabel *titleLabel; |
|
@property (nonatomic ,weak) UIView *bgView; |
|
|
|
@end |
|
|
|
@implementation DeviceMenuTableViewCell |
|
|
|
|
|
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier |
|
{ |
|
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; |
|
if (self) |
|
{ |
|
self.selectionStyle = UITableViewCellSelectionStyleNone; |
|
self.backgroundColor = KKClearColor; |
|
[self subCellView]; |
|
} |
|
|
|
return self; |
|
} |
|
|
|
- (void)setChatMsgNum:(NSInteger)chatMsgNum |
|
{ |
|
_chatMsgNum = chatMsgNum; |
|
[self.collectionView reloadData]; |
|
} |
|
|
|
- (void)setImageArr:(NSArray *)ImageArr |
|
{ |
|
_ImageArr = ImageArr; |
|
} |
|
|
|
- (void)setTitleArr:(NSArray *)TitleArr |
|
{ |
|
_TitleArr = TitleArr; |
|
[self.collectionView reloadData]; |
|
} |
|
|
|
- (void)setTitleStr:(NSString *)titleStr |
|
{ |
|
_titleStr = titleStr; |
|
self.titleLabel.text = titleStr; |
|
// [self.collectionView mas_remakeConstraints:^(MASConstraintMaker *make) { |
|
// make.left.right.equalTo(self.bgView); |
|
// if (titleStr.length > 0) |
|
// make.top.equalTo(self.titleLabel.mas_bottom).offset(10); |
|
// else |
|
// make.top.equalTo(self.bgView).offset(5); |
|
// make.bottom.equalTo(self.bgView.mas_bottom); |
|
// }]; |
|
} |
|
|
|
- (void)subCellView |
|
{ |
|
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontBold_(14) textColor:KKTextColor text:@"" Radius:0]; |
|
self.titleLabel = titleLabel; |
|
[self.contentView addSubview:titleLabel]; |
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(self); |
|
make.top.equalTo(self.mas_top).offset(15); |
|
}]; |
|
|
|
UIView *bgView = [UICommon ui_view:CGRectZero backgroundColor:KKWhiteColorColor cornerRadius:10 borderWidth:0 borderColor:KKWhiteColorColor]; |
|
self.bgView = bgView; |
|
[self.contentView addSubview:bgView]; |
|
[bgView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(self.mas_left).offset(0); |
|
make.top.equalTo(titleLabel.mas_bottom).offset(10); |
|
make.right.equalTo(self.mas_right).inset(0); |
|
make.bottom.equalTo(self.mas_bottom); |
|
}]; |
|
|
|
[bgView addSubview:self.collectionView]; |
|
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(bgView); |
|
make.top.equalTo(bgView).offset(5); |
|
make.bottom.equalTo(bgView.mas_bottom); |
|
}]; |
|
} |
|
|
|
#pragma mark - Lazy |
|
- (UICollectionView *)collectionView |
|
{ |
|
if (!_collectionView) { |
|
WSLWaterFlowLayout *flowLayout = [[WSLWaterFlowLayout alloc] init]; |
|
flowLayout.delegate = self; |
|
flowLayout.flowLayoutStyle = self.flowLayoutStyle; |
|
|
|
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 10, 0, 0) collectionViewLayout:flowLayout]; |
|
_collectionView.backgroundColor = KKClearColor; |
|
_collectionView.delegate = self; |
|
_collectionView.dataSource = self; |
|
_collectionView.alwaysBounceVertical = YES; |
|
_collectionView.showsVerticalScrollIndicator = NO; |
|
_collectionView.scrollEnabled = NO; |
|
[_collectionView registerClass:DeviceTabCollectionViewCell.class forCellWithReuseIdentifier:NSStringFromClass(DeviceTabCollectionViewCell.class)]; |
|
|
|
} |
|
return _collectionView; |
|
} |
|
|
|
|
|
|
|
#pragma mark - WSLWaterFlowLayoutDelegate |
|
//返回每个item大小 |
|
- (CGSize)waterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
return CGSizeMake((ScreenWidth-40)/4, (ScreenWidth-40)/4.5); |
|
} |
|
|
|
/** 头视图Size */ |
|
-(CGSize )waterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout sizeForHeaderViewInSection:(NSInteger)section |
|
{ |
|
return CGSizeMake(ScreenWidth, 0.1); |
|
} |
|
/** 列数*/ |
|
-(CGFloat)columnCountInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout |
|
{ |
|
return 4; |
|
} |
|
|
|
/** 列间距*/ |
|
-(CGFloat)columnMarginInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout |
|
{ |
|
return 0; |
|
} |
|
/** 行间距*/ |
|
-(CGFloat)rowMarginInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout |
|
{ |
|
return 0; |
|
} |
|
/** 边缘之间的间距*/ |
|
-(UIEdgeInsets)edgeInsetInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout |
|
{ |
|
return UIEdgeInsetsMake(0, 0, 0, 0); |
|
} |
|
|
|
#pragma mark - UICollectionView数据源 |
|
//组个数 |
|
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView |
|
{ |
|
return 1; |
|
} |
|
|
|
//组内成员个数 |
|
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section |
|
{ |
|
return [self.ImageArr count]; |
|
} |
|
|
|
|
|
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
DeviceTabCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass(DeviceTabCollectionViewCell.class) forIndexPath:indexPath]; |
|
cell.imageName = self.ImageArr[indexPath.row]; |
|
cell.titleName = self.TitleArr[indexPath.row]; |
|
cell.chatMsgNum = self.chatMsgNum; |
|
return cell; |
|
} |
|
|
|
//选择了某个cell |
|
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
NSLog(@"%ld组第%ld个",indexPath.section, indexPath.row); |
|
NSString *title = self.TitleArr[indexPath.row]; |
|
if([title isEqualToString:@"家庭成员"] || [title isEqualToString:@"电话本"] || [title isEqualToString:@"管理员"]) |
|
{ |
|
ContactsViewController *vc = (ContactsViewController *)[UICommon pusXibViewController:@"ContactsViewController"]; |
|
vc.viewType = [title isEqualToString:@"电话本"] ? 999 : 888; |
|
} |
|
else if ([title isEqualToString:@"微聊"]) |
|
{ |
|
ChatListViewController *vc = [[ChatListViewController alloc] init]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if([title isEqualToString:@"视频通话"]) |
|
{ |
|
[UICommon pusXibViewController:@"VideoCallViewController"]; |
|
} |
|
else if([title isEqualToString:@"设备闹钟"]) |
|
{ |
|
[UICommon pusXibViewController:@"VoiceAlarmViewController"]; |
|
} |
|
else if([title isEqualToString:@"上课禁用"]) |
|
{ |
|
[UICommon pusXibViewController:@"DisturbBanViewController"]; |
|
} |
|
else if([title isEqualToString:@"SOS号码"]) |
|
{ |
|
[UICommon pusXibViewController:@"SOSViewController"]; |
|
} |
|
else if([title isEqualToString:@"定时开关机"]) |
|
{ |
|
TimingSwitchVC *vc = [TimingSwitchVC new]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"查找设备"]) |
|
{ |
|
LGAlertView *alertView = [[LGAlertView alloc] initWithTitle:@"查找设备" message:@"点击查找设备,设备接收到指令,会响铃60秒,按任意键可以取消。若设备处于关机或未联网状态,则无法向设备端发送相关指令" style:LGAlertViewStyleAlert buttonTitles:@[@"确定"] cancelButtonTitle:@"取消" destructiveButtonTitle:nil actionHandler:^(LGAlertView *alertView, NSString *title, NSUInteger index) { |
|
|
|
[cUser.cDevice editOperationDeviceInfoWithParameters:@{@"opFind":@(1)} |
|
success:^(id responseObject) { |
|
[SVProgressHUD showSuccessWithStatus:@"查找设备成功,等待响铃"]; |
|
} failure:^(id faiObject) { |
|
xLog(@"查找设备失败"); |
|
[SVProgressHUD showSuccessWithStatus:faiObject[@"msg"]]; |
|
}]; |
|
|
|
} cancelHandler:nil destructiveHandler:nil]; |
|
[alertView setMessageFont:[UIFont systemFontOfSize:14]]; |
|
[alertView setMessageTextColor:[UIColor systemGrayColor]]; |
|
[alertView showAnimated:YES completionHandler:nil]; |
|
|
|
} |
|
else if([title isEqualToString:@"课程表"]) |
|
{ |
|
CourseViewController *vc = [[CourseViewController alloc] init]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"亲情号"]) |
|
{ |
|
FamilyViewController *vc = [[FamilyViewController alloc] init]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"好友列表"]) |
|
{ |
|
PPFriendViewController *vc = [[PPFriendViewController alloc] init]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if([title isEqualToString:@"计步"]) |
|
{ |
|
NewStepVC * vc = [NewStepVC new]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"学生资料"]) |
|
{ |
|
StudentInfoViewController *vc = [[StudentInfoViewController alloc] init]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[vc setValue:@(NO) forKey:@"isAdd"]; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"设备资料"]) |
|
{ |
|
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; |
|
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"EditDeviceViewController"]; |
|
[vc setValue:@(NO) forKey:@"isAdd"]; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"VIP客服"]) |
|
{ |
|
VIPViewController *vc = [VIPViewController new]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"设备WIFI"]) |
|
{ |
|
WiFiViewController * vc = [WiFiViewController new]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"设备监听"]) |
|
{ |
|
[UICommon pusXibViewController:@"MonitorViewController"]; |
|
} |
|
else if ([title isEqualToString:@"应用管理"]) |
|
{ |
|
ApplicationManageViewController *vc = [[ApplicationManageViewController alloc] init]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"血压检测"] || [title isEqualToString:@"血氧检测"]) |
|
{ |
|
BloodAndOxygenViewController *vc = [[BloodAndOxygenViewController alloc] init]; |
|
vc.types = [title isEqualToString:@"血压"] ? 888 : 999; |
|
vc.zx_navTitle = title; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"心率检测"] || [title isEqualToString:@"体温检测"]) |
|
{ |
|
HAndTViewController *vc = [HAndTViewController new]; |
|
vc.type = [title isEqualToString:@"心率检测"] ? 0 : 1; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"远程拍照"]) |
|
{ |
|
[UICommon pusXibViewController:@"RemoteCameraViewController"]; |
|
} |
|
else if ([title isEqualToString:@"健康码"] || [title isEqualToString:@"核酸码"]) |
|
{ |
|
jjcdViewController *vc = [jjcdViewController new]; |
|
vc.viewType = [title isEqualToString:@"健康码"] ? 888 : 999; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"手表短信"]) |
|
{ |
|
ShortMessageListViewController *vc = [[ShortMessageListViewController alloc] init]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
|
|
else if ([title isEqualToString:@"蓝牙防丢"]) |
|
{ |
|
DeviceLoseViewController *vc = [DeviceLoseViewController new]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"表盘中心"]) |
|
{ |
|
WatchDialViewController *vc = [WatchDialViewController new]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
else if ([title isEqualToString:@"钱包"]) |
|
{ |
|
|
|
} |
|
else if ([title isEqualToString:@"通讯录"]) |
|
{ |
|
WhiteContactViewController *vc = [[WhiteContactViewController alloc] init]; |
|
vc.hidesBottomBarWhenPushed = YES; |
|
[[UICommon currentVC].navigationController pushViewController:vc animated:YES]; |
|
} |
|
} |
|
|
|
|
|
- (void)awakeFromNib { |
|
[super awakeFromNib]; |
|
// Initialization code |
|
} |
|
|
|
- (void)setSelected:(BOOL)selected animated:(BOOL)animated { |
|
[super setSelected:selected animated:animated]; |
|
|
|
// Configure the view for the selected state |
|
} |
|
|
|
@end
|
|
|