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.
 
 
 

279 lines
10 KiB

//
// HAndTViewController.m
// LekangGuard
//
// Created by ecell on 2022/11/25.
//
#import "HAndTViewController.h"
#import "HAndTChartCell.h"
#import "HeartAndTempModel.h"
#import "HAndTTableViewCell.h"
#import "HAndTSwitchTableViewCell.h"
@interface HAndTViewController ()<UITableViewDelegate,UITableViewDataSource>
/// 编辑上报频率的容器View
@property (strong, nonatomic) UIView * editingFrequencyView;
/// 编辑上报频率的TextField
@property (strong, nonatomic) UITextField * editingFrequencyTextField;
@property (strong, nonatomic) UITableView *myTableView;
@property (strong, nonatomic) HeartAndTempModel* model;
@property (nonatomic ,strong) NSString *qDayStr;
@property (nonatomic ,strong)NSMutableArray *myDataSource;
@end
@implementation HAndTViewController
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self loadDataWithQdayStr:nil];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = KKBackgroundGrey;
self.zx_navTitle = self.type == 1 ? GJText(@"心率") : GJText(@"体温");
[self initUI];
}
- (void)loadDataWithQdayStr:(NSString*)qDay
{
kWeakSelf(self)
if(!qDay || qDay.length == 0)
{
//今天
self.qDayStr = [UICommon getDateFormatWithStr:@"yyyy-MM-dd" date:[NSDate date]];
}
else
{
self.qDayStr = qDay;
}
// add by lsz 21-12-28 @try{}@catch{}
@try {
[HeartAndTempModel getHeartAndTempDataWithType:self.type date:self.qDayStr success:^(HeartAndTempModel * _Nonnull model) {
weakself.model = model;
[weakself.myTableView reloadData];
} failure:^(NSError * _Nonnull error) {
}];
} @catch (NSException *exception) {
NSLog(@"HeartAndTemp err=%@",exception);
}
}
- (void)initUI{
if(self.type == 1){
self.title = GJText(@"心率");
self.myDataSource[1] = @[GJText(@"心率开关")];
}else{
self.title = GJText(@"体温");
self.myDataSource[1] = @[GJText(@"体温开关")];
}
_myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, iPhoneX_NavHeight, SCREEN_WIDTH, SCREEN_HEIGHT-iPhoneX_NavHeight) style:UITableViewStyleGrouped];
_myTableView.backgroundColor = KKClearColor;
_myTableView.delegate = self;
_myTableView.dataSource = self;
[self.view addSubview:_myTableView];
_myTableView.bounces = NO; //禁止弹跳
_myTableView.showsHorizontalScrollIndicator = NO;
_myTableView.showsVerticalScrollIndicator = NO;
//去线
_myTableView.separatorStyle = UITableViewCellSelectionStyleNone;
// iOS 11 系统 tableView 会自动调整高度 在 Gounp 模式下 头部的高度会有问题 ,需要对 预设的高度设置为0
_myTableView.estimatedRowHeight = 0;
_myTableView.estimatedSectionHeaderHeight = 0;
_myTableView.estimatedSectionFooterHeight = 0;
[_myTableView registerNib:[UINib nibWithNibName:@"HAndTChartCell" bundle:nil] forCellReuseIdentifier:@"HAndTChartCellID"];
[_myTableView registerClass:HAndTSwitchTableViewCell.class forCellReuseIdentifier:NSStringFromClass(HAndTSwitchTableViewCell.class)];
[_myTableView registerClass:HAndTTableViewCell.class forCellReuseIdentifier:NSStringFromClass(HAndTTableViewCell.class)];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return self.myDataSource.count;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.myDataSource[section] count];
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
{
return 0.01;
}else if(section == 1)
{
return AdaptedHeight(15);
}else{
return 1;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0.01;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *title = self.myDataSource[indexPath.section][indexPath.row];
if([title isEqualToString:@"图表"]){
return 491;
}else{
return Adapted(50);
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *title = self.myDataSource[indexPath.section][indexPath.row];
kWeakSelf(self)
if([title isEqualToString:@"图表"])
{
HAndTChartCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HAndTChartCellID" forIndexPath:indexPath];
if(_model){
[cell setDataModel:_model WithType:_type WithqDayStr:self.qDayStr];
}
cell.measurementEndBlock = ^{
[weakself loadDataWithQdayStr:nil];
};
cell.switchQueryBlock = ^(NSString * _Nonnull qDay) {
[weakself loadDataWithQdayStr:qDay];
};
return cell;
}
else if ([title containsString:@"开关"])
{
HAndTSwitchTableViewCell *cell = [HAndTSwitchTableViewCell cellWithTableView:tableView indexPath:indexPath];
if(_model)
cell.isSwitchOpen = [_model.switchOn boolValue];
cell.titleStr = F(@"%@%@", GJText(self.type == 1 ? GJText(@"心率") : GJText(@"体温")),GJText(@"开关"));
cell.isSwitch = ^(BOOL isOpen){
NSLog(@"切换开关");
if(weakself.model)
{
[HeartAndTempModel postHeartAndTempDataWithType:weakself.type cmd:1 obj:isOpen ? @"1" : @"0" success:^(id _Nonnull responseObject){
[UICommon MessageSuccessText:@"修改成功"];
weakself.model.switchOn = @(isOpen);
[weakself.myTableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:1]] withRowAnimation:UITableViewRowAnimationNone];
} failure:^(NSError * _Nonnull error) {
[weakself.myTableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:1]] withRowAnimation:UITableViewRowAnimationNone];
}];
}
};
return cell;
}
else
{
HAndTTableViewCell *cell = [HAndTTableViewCell cellWithTableView:tableView indexPath:indexPath];
cell.textStr = [NSString stringWithFormat:GJText(@"%@分钟/次"),self.model.frequency];
return cell;
}
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *title = self.myDataSource[indexPath.section][indexPath.row];
if([title containsString:GJText(@"频率")]){
//显示
[self showChangeFrequency];
}
}
-(void)showChangeFrequency
{
if(!_editingFrequencyView)
{
_editingFrequencyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 50)];
_editingFrequencyView.backgroundColor = [UIColor whiteColor];
CGFloat alertViewWidth = (320.f - 20*2 - 20*2);
_editingFrequencyTextField = [[UITextField alloc] initWithFrame:CGRectMake((SCREEN_WIDTH - alertViewWidth)/2, 1, alertViewWidth, 48)];
_editingFrequencyTextField.borderStyle = UITextBorderStyleRoundedRect;
_editingFrequencyTextField.layer.borderColor = RGB(229, 229, 229).CGColor;
_editingFrequencyTextField.backgroundColor = RGB(250, 250, 250);
_editingFrequencyTextField.placeholder = GJText(@"请输入上报频率(分钟/次)");
_editingFrequencyTextField.keyboardType = UIKeyboardTypeNumberPad;
[_editingFrequencyView addSubview:_editingFrequencyTextField];
}
_editingFrequencyTextField.text = self.model.frequency;
kWeakSelf(self)
LGAlertView *alertView = [[LGAlertView alloc] initWithViewAndTitle:GJText(@"上报频率") message:@"" style:LGAlertViewStyleAlert view:_editingFrequencyView buttonTitles:@[GJText(@"确定")] cancelButtonTitle:GJText(@"取消") destructiveButtonTitle:nil actionHandler:^(LGAlertView * _Nonnull alertView, NSUInteger index, NSString * _Nullable title) {
[weakself.editingFrequencyTextField resignFirstResponder];
NSLog(@"修改 上报频率 %@",weakself.editingFrequencyTextField.text);
NSNumber *tempFrequency = @([weakself.model.frequency intValue]);
@try {
tempFrequency = @([weakself.editingFrequencyTextField.text intValue]);
} @catch (NSException *exception) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[UICommon MessageErrorText:@"请输入正确的数值"];
});
return ;
} @finally {
}
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:tempFrequency forKey:@"frequency"];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[HeartAndTempModel postHeartAndTempDataWithType:weakself.type cmd:2 obj:F(@"%@", tempFrequency) success:^(id _Nonnull responseObject) {
[UICommon MessageSuccessText:@"修改成功"];
weakself.model.frequency = weakself.editingFrequencyTextField.text;
[weakself.myTableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:2]] withRowAnimation:UITableViewRowAnimationNone];
} failure:^(NSError * _Nonnull error) {
[weakself.myTableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:2]] withRowAnimation:UITableViewRowAnimationNone];
}];
});
} cancelHandler:^(LGAlertView * _Nonnull alertView) {
[weakself.editingFrequencyTextField resignFirstResponder];
} destructiveHandler:^(LGAlertView * _Nonnull alertView) {
}];
[alertView showAnimated:YES completionHandler:nil];
}
- (NSMutableArray *)myDataSource
{
if(!_myDataSource)
{
_myDataSource = [NSMutableArray arrayWithArray:@[@[@"图表"],@[@"开关"],@[@"上报频率"]]];
}
return _myDataSource;
}
/*
#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