NYFailSpecialExerciseDetailsViewModel.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. //
  2. // NYFailSpecialExerciseDetailsViewModel.m
  3. // jiaPei
  4. //
  5. // Created by Ning.ge on 2024/12/12.
  6. // Copyright © 2024 JCZ. All rights reserved.
  7. //
  8. #import "NYFailSpecialExerciseDetailsViewModel.h"
  9. @interface NYFailSpecialExerciseDetailsViewModel ()
  10. @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType;
  11. @property (nonatomic, readwrite, strong) NSDictionary *dataDicts;
  12. @property (nonatomic, readwrite, strong) NSDictionary *titleDict;
  13. @end
  14. @implementation NYFailSpecialExerciseDetailsViewModel
  15. #pragma mark - Public Method
  16. - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
  17. if (self = [super initWithServices:services params:params]) {
  18. self.homePageSubjectType = [params[RQHomePageSubjectTypeKey] integerValue];
  19. self.title = params[RQHomePageSpTitleKey];
  20. }
  21. return self;
  22. }
  23. - (void)initialize {
  24. [super initialize];
  25. [self loadPointData];
  26. [self rq_configureData];
  27. }
  28. #pragma mark - ConfigureData
  29. - (void)rq_configureData {
  30. /// 数据源
  31. RAC(self, dataSource) = [RACSignal
  32. combineLatest:@[RACObserve(RQ_USER_MANAGER, isCykh)]
  33. reduce:^(NSNumber *isCykh) {
  34. NYFailSpecialExerciseGroupViewModel *group0 = [NYFailSpecialExerciseGroupViewModel groupViewModel];
  35. group0.headerHeight = RQ_FIT_HORIZONTAL(130);
  36. NYFailSpecialExerciseItemModel *itemModel_0 = [[NYFailSpecialExerciseItemModel alloc] initWithTitle:@"扣分" icon:@"扣分"];
  37. NYFailSpecialExerciseItemModel *itemModel_1 = [[NYFailSpecialExerciseItemModel alloc] initWithTitle:@"驾驶证" icon:@"驾驶证"];
  38. NYFailSpecialExerciseItemModel *itemModel_2 = [[NYFailSpecialExerciseItemModel alloc] initWithTitle:@"罚款" icon:@"罚款"];
  39. NYFailSpecialExerciseItemModel *itemModel_3 = [[NYFailSpecialExerciseItemModel alloc] initWithTitle:@"判刑扣留" icon:@"判刑扣留"];
  40. group0.itemViewModels = @[itemModel_0,itemModel_1,itemModel_2,itemModel_3
  41. ];
  42. RQCommonGroupViewModel *group2 = [RQCommonGroupViewModel groupViewModel];
  43. RQTimeADItemViewModel *timeADItemViewModel = [[RQTimeADItemViewModel alloc] init];
  44. group2.itemViewModels = @[timeADItemViewModel];
  45. return @[group0,group2];
  46. }];
  47. }
  48. // 加载 JSON 文件并解析
  49. - (void)loadPointData {
  50. // 获取资源文件路径
  51. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"pointData" ofType:@"json"];
  52. if (filePath) {
  53. // 读取文件数据
  54. NSData *data = [NSData dataWithContentsOfFile:filePath];
  55. if (data) {
  56. NSError *error = nil;
  57. // 使用 JSONSerialization 解析 JSON 数据
  58. self.dataDicts = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
  59. NSLog(@"%@",self.dataDicts.allKeys);
  60. if (error) {
  61. NSLog(@"JSON解析错误: %@", error.localizedDescription);
  62. }
  63. } else {
  64. NSLog(@"文件读取失败");
  65. }
  66. } else {
  67. NSLog(@"文件路径未找到");
  68. }
  69. }
  70. - (NSDictionary *)titleDict{
  71. if(!_titleDict){
  72. _titleDict = @{@"扣分":@"koufen",
  73. @"驾驶证":@"jiashizheng",
  74. @"罚款":@"fakuan",
  75. @"判刑扣留":@"juliu",
  76. @"安全常识":@"anquanchangshi",
  77. @"交警手势":@"shoushi",
  78. @"周期":@"zhouqi",
  79. @"特殊天气":@"tianqi",
  80. @"速度灯光":@"dengguang",
  81. @"通行原则":@"tongxing"};
  82. }
  83. return _titleDict;
  84. }
  85. @end