RDSMyVC.m 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. //
  2. // RDSMyVC.m
  3. // Temperature
  4. //
  5. // Created by RD on 2022/11/2.
  6. //
  7. #import "RDSMyVC.h"
  8. #import "RDSHomeListVC.h"
  9. #import "UIView+RDSClip.h"
  10. #import "UIImage+Extension.h"
  11. #import "RDSUserProtocolViewController.h"
  12. #import "RDSMyInfoVC.h"
  13. #import "RDSHomeModel.h"
  14. #import "SPAlertController.h"
  15. #import "RDSSystemSetVC.h"
  16. @interface RDSMyVC ()<UIPickerViewDataSource,UIPickerViewDelegate>
  17. @property (weak, nonatomic) IBOutlet UIButton *headBtn;
  18. @property (weak, nonatomic) IBOutlet UILabel *userNameLab;
  19. @property (weak, nonatomic) IBOutlet UILabel *userIdLab;
  20. @property (weak, nonatomic) IBOutlet UIView *myHomeView;
  21. @property (weak, nonatomic) IBOutlet UILabel *homeNameLab;
  22. @property (weak, nonatomic) IBOutlet UIButton *myHomeBtn;
  23. @property (nonatomic, strong) SPAlertController *homeAlert;
  24. @property (nonatomic, strong) RDSHomeModel *selectHome;
  25. @property (nonatomic, strong) UIPickerView *homePick;
  26. @property (nonatomic, strong) UIButton *defaultHomeBtn;
  27. @end
  28. @implementation RDSMyVC
  29. - (void)viewDidLoad {
  30. [super viewDidLoad];
  31. // Do any additional setup after loading the view from its nib.
  32. self.title = @"我的";
  33. [self setUI];
  34. [kNotificationCenter addObserver:self selector:@selector(p_refreshUserInfo)name:RDSUpdateUserInfoNotice object:nil];
  35. }
  36. - (void)viewWillAppear:(BOOL)animated{
  37. [super viewWillAppear:animated];
  38. [self p_getHomeList];
  39. }
  40. - (void)setUI{
  41. self.view.backgroundColor = UIColor.whiteColor;
  42. [self p_refreshUserInfo];
  43. [self p_setupHomeAlert];
  44. }
  45. - (void)viewDidLayoutSubviews{
  46. [super viewDidLayoutSubviews];
  47. [_myHomeView rds_setCornerRadiusWithType:Corner_Radius_Or_BorderLine_UP Radius:20];
  48. _myHomeView.backgroundColor = UIColor.clearColor;
  49. UIImage *img = [UIImage rds_imageWithColor:RGB(183, 231, 233) toColor:RGB(7, 185, 185) imgSize:_myHomeBtn.frame.size];
  50. [_myHomeBtn setBackgroundImage:img forState:UIControlStateNormal];
  51. }
  52. - (void)p_refreshUserInfo{
  53. _userNameLab.text = TheDataManager.currentUser.user_name;
  54. _userIdLab.text = [NSString stringWithFormat:@"账号:%@",TheDataManager.currentUser.phone];
  55. [_headBtn setImage:TheDataManager.currentUser.headImg forState:UIControlStateNormal];
  56. }
  57. - (void)p_getHomeList{
  58. RDS_WEAKSELF(weakSelf)
  59. [RDSHomeModel rds_getHomeListIsAdmin:NO finished:^(NSError * _Nonnull error) {
  60. weakSelf.homeNameLab.text = TheDataManager.current_home_name;
  61. [weakSelf.homePick reloadAllComponents];
  62. }];
  63. }
  64. /// 头像
  65. - (IBAction)onHeadClick {
  66. RDSMyInfoVC *vc = [[RDSMyInfoVC alloc] init];
  67. vc.hidesBottomBarWhenPushed = YES;
  68. [self pushViewController:vc animated:YES];
  69. }
  70. /// 切换家庭
  71. - (IBAction)onMyHomeClick {
  72. _selectHome = TheDataManager.homes[TheDataManager.current_home_index];
  73. [self.homePick selectRow:TheDataManager.current_home_index inComponent:0 animated:NO];
  74. [self presentViewController:self.homeAlert animated:YES completion:nil];
  75. _defaultHomeBtn.selected = NO;
  76. }
  77. /// 家庭管理
  78. - (IBAction)onHomeListClick {
  79. RDSHomeListVC *vc = [[RDSHomeListVC alloc] init];
  80. vc.hidesBottomBarWhenPushed = YES;
  81. [self pushViewController:vc animated:YES];
  82. }
  83. /// 我的场景
  84. - (IBAction)onSceneListClick {
  85. RDSSystemSetVC *vc = [[RDSSystemSetVC alloc] init];
  86. vc.hidesBottomBarWhenPushed = YES;
  87. [self pushViewController:vc animated:YES];
  88. }
  89. /// 帮助与反馈
  90. - (IBAction)onHelpClick {
  91. RDSUserProtocolViewController *vc = [[RDSUserProtocolViewController alloc] init];
  92. vc.vcTitle = @"帮助与反馈";
  93. vc.url = kHelpList;
  94. vc.hidesBottomBarWhenPushed = YES;
  95. [self pushViewController:vc animated:YES];
  96. }
  97. /// 系统设置
  98. - (IBAction)onSetClick {
  99. RDSSystemSetVC *vc = [[RDSSystemSetVC alloc] init];
  100. vc.hidesBottomBarWhenPushed = YES;
  101. [self pushViewController:vc animated:YES];
  102. }
  103. - (void)onSelectHome{
  104. if(_defaultHomeBtn.isSelected){
  105. [RDSHudShower showWithStatus:@"切换中..."];
  106. [RDSDemoApiHelper rds_setDefaultHome:_selectHome.record_id success:^(id responseObject) {
  107. if ([responseObject[@"code"] intValue] == 0) {
  108. [RDSHudShower dismissHUD];
  109. } else{
  110. [RDSHudShower showErrorWithStatus:responseObject[@"message"]];
  111. }
  112. } failure:^(NSError *error) {
  113. [RDSHudShower showBottomToast:@"连接服务器失败"];
  114. }];
  115. }
  116. TheDataManager.current_home_id = _selectHome.record_id;
  117. TheDataManager.current_home_name = _selectHome.name;
  118. _homeNameLab.text = _selectHome.name;
  119. }
  120. - (void)p_setupHomeAlert{
  121. RDS_WEAKSELF(weakSelf)
  122. SPAlertController *alertController = [SPAlertController alertControllerWithTitle:@"切换家庭" message:@"" preferredStyle:SPAlertControllerStyleAlert animationType:SPAlertAnimationTypeDefault];
  123. UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH-56*2, 200)];
  124. UIPickerView *homePick = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH-56*2, 180)];
  125. homePick.delegate = self;
  126. homePick.dataSource = self;
  127. self.homePick = homePick;
  128. [homePick selectRow:TheDataManager.current_home_index inComponent:0 animated:NO];
  129. [view addSubview:homePick];
  130. UIView *defaultHome = [[UIView alloc] initWithFrame:CGRectMake(80, 170, 100, 20)];
  131. UIButton *btnImg = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
  132. [btnImg setImage:[UIImage imageNamed:@"icon_check"] forState:UIControlStateNormal];
  133. [btnImg setImage:[UIImage imageNamed:@"icon_check_sel"] forState:UIControlStateSelected];
  134. self.defaultHomeBtn = btnImg;
  135. UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(20, 0, 90, 20)];
  136. [btn setTitleColor:RDSGreenColor forState:UIControlStateNormal];;
  137. [btn setTitle:@"设为默认家庭" forState:UIControlStateNormal];
  138. btn.titleLabel.font = [UIFont systemFontOfSize:14];
  139. [btnImg addTarget:self action:@selector(p_setDefaultHome) forControlEvents:UIControlEventTouchUpInside];
  140. [btn addTarget:self action:@selector(p_setDefaultHome) forControlEvents:UIControlEventTouchUpInside];
  141. [defaultHome addSubview:btnImg];
  142. [defaultHome addSubview:btn];
  143. [view addSubview:defaultHome];
  144. // 插入一个view
  145. [alertController insertComponentView:view];
  146. SPAlertAction *action1 = [SPAlertAction actionWithTitle:@"取消" style:SPAlertActionStyleDefault handler:nil];
  147. SPAlertAction *action2 = [SPAlertAction actionWithTitle:@"确定" style:SPAlertActionStyleDefault handler:^(SPAlertAction * _Nonnull action) {
  148. [weakSelf onSelectHome];
  149. }];
  150. [alertController addAction:action1];
  151. [alertController addAction:action2];
  152. _homeAlert = alertController;
  153. }
  154. - (void)p_setDefaultHome{
  155. _defaultHomeBtn.selected = !_defaultHomeBtn.isSelected;
  156. }
  157. #pragma mark pickerView delegate
  158. //滚动选中的行
  159. -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
  160. if(TheDataManager.homes.count == 0){
  161. _selectHome = [[RDSHomeModel alloc] init];
  162. return;
  163. }
  164. _selectHome = TheDataManager.homes[row];
  165. }
  166. //每行显示的内容
  167. -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
  168. RDSHomeModel *hm = TheDataManager.homes[row];
  169. return hm.name;
  170. }
  171. //列宽
  172. //-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
  173. //
  174. // return 100;
  175. //}
  176. #pragma mark pickerView dataSource
  177. // 多少组
  178. -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
  179. return 1;
  180. }
  181. // 行
  182. -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
  183. return TheDataManager.homes.count;
  184. }
  185. - (void)dealloc{
  186. DDLog(@"dealloc~~");
  187. [kNotificationCenter removeObserver:self];
  188. }
  189. @end