浏览代码

课堂培训 up 35%

openlockPPP 1 年之前
父节点
当前提交
e771dcd116
共有 34 个文件被更改,包括 658 次插入381 次删除
  1. 28 0
      jiaPei.xcodeproj/project.pbxproj
  2. 二进制
      jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate
  3. 二进制
      jiaPei/Images.xcassets/Modules/TimeModule/classroom_bgbg.imageset/1861706858460_bgbg.jpg
  4. 21 0
      jiaPei/Images.xcassets/Modules/TimeModule/classroom_bgbg.imageset/Contents.json
  5. 22 0
      jiaPei/Images.xcassets/Modules/TimeModule/模拟培训.imageset/Contents.json
  6. 二进制
      jiaPei/Images.xcassets/Modules/TimeModule/模拟培训.imageset/模拟培训@2x.png
  7. 二进制
      jiaPei/Images.xcassets/Modules/TimeModule/模拟培训.imageset/模拟培训@3x.png
  8. 22 0
      jiaPei/Images.xcassets/Modules/TimeModule/课堂培训.imageset/Contents.json
  9. 二进制
      jiaPei/Images.xcassets/Modules/TimeModule/课堂培训.imageset/课堂培训@2x.png
  10. 二进制
      jiaPei/Images.xcassets/Modules/TimeModule/课堂培训.imageset/课堂培训@3x.png
  11. 3 3
      jiaPei/Modules/HomePageModule/View/HomePage/RQHomeSubPageVideoScrollCell.xib
  12. 4 2
      jiaPei/Modules/ProfileModule/View/RQProfileUserAndVipCell.m
  13. 7 6
      jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileSubjectFourVipCell.m
  14. 9 6
      jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileSubjectOneVipCell.m
  15. 7 6
      jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileSubjectThreeVipCell.m
  16. 7 6
      jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileSubjectTwoVipCell.m
  17. 7 5
      jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileVipCell.m
  18. 1 1
      jiaPei/Modules/ProfileModule/ViewModel/RQProfileViewModel.m
  19. 17 17
      jiaPei/Modules/TimeModule/View/RQTimeRuleCell.m
  20. 7 327
      jiaPei/Modules/TimeModule/View/RQTimeRuleCell.xib
  21. 12 1
      jiaPei/Modules/TimeModule/ViewModel/RQTimeViewModel.m
  22. 1 1
      jiaPei/Modules/TimeModule/ViewModel/itemViewModel/RQTimeRuleItemViewModel.m
  23. 12 0
      jiaPei/Modules/TimeModule/ViewModel/itemViewModel/RQTimeSingleItemViewModel.m
  24. 17 0
      jiaPei/NewTheory/NYClassRoomVC.h
  25. 87 0
      jiaPei/NewTheory/NYClassRoomVC.m
  26. 21 0
      jiaPei/NewTheory/View/NYClassRoomPeiCell.h
  27. 44 0
      jiaPei/NewTheory/View/NYClassRoomPeiCell.m
  28. 187 0
      jiaPei/NewTheory/View/NYClassRoomPeiCell.xib
  29. 17 0
      jiaPei/NewTheory/ViewModel/NYClassRoomPeiViewModel.h
  30. 22 0
      jiaPei/NewTheory/ViewModel/NYClassRoomPeiViewModel.m
  31. 18 0
      jiaPei/NewTheory/ViewModel/NYClassRoomViewModel.h
  32. 55 0
      jiaPei/NewTheory/ViewModel/NYClassRoomViewModel.m
  33. 1 0
      jiaPei/PrefixHeader.pch
  34. 2 0
      jiaPei/Utils/Router/RQRouter.m

+ 28 - 0
jiaPei.xcodeproj/project.pbxproj

@@ -90,6 +90,11 @@
 		900A2DE52A1FA89700395C1F /* RQAppEventAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 900A2DE02A1FA89700395C1F /* RQAppEventAnnotation.m */; };
 		900A2DE62A1FA89700395C1F /* RQBaseAppEventModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 900A2DE12A1FA89700395C1F /* RQBaseAppEventModule.m */; };
 		9017E8DA2A6F97DC00571501 /* NYADViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9017E8D92A6F97DC00571501 /* NYADViewManager.m */; };
+		9040D2852B6F703E002F4686 /* NYClassRoomVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 9040D2842B6F703E002F4686 /* NYClassRoomVC.m */; };
+		9040D2882B6F7E07002F4686 /* NYClassRoomViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9040D2872B6F7E07002F4686 /* NYClassRoomViewModel.m */; };
+		9040D28C2B6F8ACB002F4686 /* NYClassRoomPeiCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9040D28A2B6F8ACB002F4686 /* NYClassRoomPeiCell.m */; };
+		9040D28D2B6F8ACB002F4686 /* NYClassRoomPeiCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9040D28B2B6F8ACB002F4686 /* NYClassRoomPeiCell.xib */; };
+		9040D2902B6F94DA002F4686 /* NYClassRoomPeiViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9040D28F2B6F94DA002F4686 /* NYClassRoomPeiViewModel.m */; };
 		9043ADB42A56C739005F6F81 /* NYChooseTypeAlertViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9043ADB32A56C739005F6F81 /* NYChooseTypeAlertViewController.m */; };
 		90626F3D2A204BC400C8FA05 /* kt_jq.db in Resources */ = {isa = PBXBuildFile; fileRef = 90626F3C2A204BC300C8FA05 /* kt_jq.db */; };
 		90626F402A20540600C8FA05 /* YNYDTJQQuestionModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 90626F3F2A20540600C8FA05 /* YNYDTJQQuestionModule.m */; };
@@ -1814,6 +1819,15 @@
 		900A2DE22A1FA89700395C1F /* RQAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RQAppDelegate.h; sourceTree = "<group>"; };
 		9017E8D82A6F97DC00571501 /* NYADViewManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYADViewManager.h; sourceTree = "<group>"; };
 		9017E8D92A6F97DC00571501 /* NYADViewManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYADViewManager.m; sourceTree = "<group>"; };
+		9040D2832B6F703E002F4686 /* NYClassRoomVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYClassRoomVC.h; sourceTree = "<group>"; };
+		9040D2842B6F703E002F4686 /* NYClassRoomVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYClassRoomVC.m; sourceTree = "<group>"; };
+		9040D2862B6F7E07002F4686 /* NYClassRoomViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYClassRoomViewModel.h; sourceTree = "<group>"; };
+		9040D2872B6F7E07002F4686 /* NYClassRoomViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYClassRoomViewModel.m; sourceTree = "<group>"; };
+		9040D2892B6F8ACB002F4686 /* NYClassRoomPeiCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYClassRoomPeiCell.h; sourceTree = "<group>"; };
+		9040D28A2B6F8ACB002F4686 /* NYClassRoomPeiCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYClassRoomPeiCell.m; sourceTree = "<group>"; };
+		9040D28B2B6F8ACB002F4686 /* NYClassRoomPeiCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYClassRoomPeiCell.xib; sourceTree = "<group>"; };
+		9040D28E2B6F94DA002F4686 /* NYClassRoomPeiViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYClassRoomPeiViewModel.h; sourceTree = "<group>"; };
+		9040D28F2B6F94DA002F4686 /* NYClassRoomPeiViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYClassRoomPeiViewModel.m; sourceTree = "<group>"; };
 		9043ADB22A56C739005F6F81 /* NYChooseTypeAlertViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYChooseTypeAlertViewController.h; sourceTree = "<group>"; };
 		9043ADB32A56C739005F6F81 /* NYChooseTypeAlertViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYChooseTypeAlertViewController.m; sourceTree = "<group>"; };
 		90626F3C2A204BC300C8FA05 /* kt_jq.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = kt_jq.db; sourceTree = "<group>"; };
@@ -4634,6 +4648,8 @@
 				90BA2E802A3177B50029A54A /* NYTheoryTimeVC.m */,
 				90BA2E842A3177DE0029A54A /* NYGetjobTimeVC.h */,
 				90BA2E852A3177DE0029A54A /* NYGetjobTimeVC.m */,
+				9040D2832B6F703E002F4686 /* NYClassRoomVC.h */,
+				9040D2842B6F703E002F4686 /* NYClassRoomVC.m */,
 				90BA2E892A317BEB0029A54A /* NYBasetjTimeVC.h */,
 				90BA2E8A2A317BEB0029A54A /* NYBasetjTimeVC.m */,
 				9043ADB22A56C739005F6F81 /* NYChooseTypeAlertViewController.h */,
@@ -4655,6 +4671,10 @@
 				90BA2EA22A330D180029A54A /* NYGetjobTimeViewModel.m */,
 				90BA2EA92A3317510029A54A /* NYGetjobStartRuleViewModel.h */,
 				90BA2EAA2A3317510029A54A /* NYGetjobStartRuleViewModel.m */,
+				9040D2862B6F7E07002F4686 /* NYClassRoomViewModel.h */,
+				9040D2872B6F7E07002F4686 /* NYClassRoomViewModel.m */,
+				9040D28E2B6F94DA002F4686 /* NYClassRoomPeiViewModel.h */,
+				9040D28F2B6F94DA002F4686 /* NYClassRoomPeiViewModel.m */,
 			);
 			path = ViewModel;
 			sourceTree = "<group>";
@@ -4671,6 +4691,9 @@
 				90BA2EA42A3316510029A54A /* NYGetjobStartRuleCell.h */,
 				90BA2EA52A3316510029A54A /* NYGetjobStartRuleCell.m */,
 				90BA2EA62A3316510029A54A /* NYGetjobStartRuleCell.xib */,
+				9040D2892B6F8ACB002F4686 /* NYClassRoomPeiCell.h */,
+				9040D28A2B6F8ACB002F4686 /* NYClassRoomPeiCell.m */,
+				9040D28B2B6F8ACB002F4686 /* NYClassRoomPeiCell.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -9909,6 +9932,7 @@
 				D0295C84243F0B8B00B46AB1 /* 1-7-2.jpg in Resources */,
 				D0295C10243F0B8B00B46AB1 /* 1-3-12.jpg in Resources */,
 				D0295EB1243F1B8700B46AB1 /* transrules.db in Resources */,
+				9040D28D2B6F8ACB002F4686 /* NYClassRoomPeiCell.xib in Resources */,
 				1863A5D71BF449C70043F1CD /* Images.xcassets in Resources */,
 				D0295D63243F0B8C00B46AB1 /* img13.png in Resources */,
 				D0295CD2243F0B8B00B46AB1 /* 1-5-23.jpg in Resources */,
@@ -10752,6 +10776,7 @@
 				D074575929272C680050BE10 /* QMFileCollectionCell.m in Sources */,
 				D092510525A6422500820F82 /* CheckBodyManager.m in Sources */,
 				D0BD9E1B28F41D3E0086CF1A /* RQUpdateView.m in Sources */,
+				9040D28C2B6F8ACB002F4686 /* NYClassRoomPeiCell.m in Sources */,
 				D0870D732701A6B9004EC94E /* UITextField+BlocksKit.m in Sources */,
 				D09C56C82851F43B00088A2E /* RQPayTypeItemViewModel.m in Sources */,
 				180CBFA61C5B426A0014F55F /* TrainDetailVC.m in Sources */,
@@ -10835,6 +10860,7 @@
 				1809CA4B1D48A69B005D16DA /* PeriodVC.m in Sources */,
 				D0F8F10D2929C6F50008019C /* Evaluation.m in Sources */,
 				D0295ECD243F1EC800B46AB1 /* payRequsestHandler.mm in Sources */,
+				9040D2882B6F7E07002F4686 /* NYClassRoomViewModel.m in Sources */,
 				D04DF7A327006F72006E3633 /* UISearchBar+RQExtension.m in Sources */,
 				D0481FEB2863284A00BD0E4E /* RQSpecialAddCell.m in Sources */,
 				D084D86D27CDFC5D00E521F0 /* RQVipAllFunctionCell.m in Sources */,
@@ -11147,6 +11173,7 @@
 				D074574129272C680050BE10 /* QMChatRoomBaseCell.m in Sources */,
 				D0913E0D28A6AA6600F28430 /* UIViewController+RQChangeIconNoAlert.m in Sources */,
 				D00A15142754A41C00793046 /* MPPlayerController.m in Sources */,
+				9040D2902B6F94DA002F4686 /* NYClassRoomPeiViewModel.m in Sources */,
 				185F22A31BE6F38500720049 /* AppDelegate.m in Sources */,
 				D0870E502701B5A0004EC94E /* RQHTTPService+RQLogin.m in Sources */,
 				D09E5D5325E3AA260099E87C /* BDFaceBaseViewController.m in Sources */,
@@ -11192,6 +11219,7 @@
 				D00A14FE2754A41C00793046 /* RQVideoDetailSubPageViewController.m in Sources */,
 				D04DF7C427006F73006E3633 /* RQMomentHelper.m in Sources */,
 				D0D045A827477C7A00257D01 /* RQDiscoverViewModel.m in Sources */,
+				9040D2852B6F703E002F4686 /* NYClassRoomVC.m in Sources */,
 				D084D86827CDF9D600E521F0 /* RQVipContentCell.m in Sources */,
 				D02010BB29373AE8001B9F4D /* SLAlertView.m in Sources */,
 				D02010CA29373AE8001B9F4D /* SLTimer.m in Sources */,

二进制
jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate


二进制
jiaPei/Images.xcassets/Modules/TimeModule/classroom_bgbg.imageset/1861706858460_bgbg.jpg


+ 21 - 0
jiaPei/Images.xcassets/Modules/TimeModule/classroom_bgbg.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "1861706858460_bgbg.jpg",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 22 - 0
jiaPei/Images.xcassets/Modules/TimeModule/模拟培训.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "模拟培训@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "模拟培训@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
jiaPei/Images.xcassets/Modules/TimeModule/模拟培训.imageset/模拟培训@2x.png


二进制
jiaPei/Images.xcassets/Modules/TimeModule/模拟培训.imageset/模拟培训@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/TimeModule/课堂培训.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "课堂培训@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "课堂培训@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
jiaPei/Images.xcassets/Modules/TimeModule/课堂培训.imageset/课堂培训@2x.png


二进制
jiaPei/Images.xcassets/Modules/TimeModule/课堂培训.imageset/课堂培训@3x.png


+ 3 - 3
jiaPei/Modules/HomePageModule/View/HomePage/RQHomeSubPageVideoScrollCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -29,7 +29,7 @@
                                 <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <stackView opaque="NO" contentMode="scaleToFill" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="Iaf-aH-0be">
+                            <stackView hidden="YES" opaque="NO" contentMode="scaleToFill" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="Iaf-aH-0be">
                                 <rect key="frame" x="279.5" y="10" width="49.5" height="36"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="更多" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GoI-S1-4yQ">

+ 4 - 2
jiaPei/Modules/ProfileModule/View/RQProfileUserAndVipCell.m

@@ -76,9 +76,11 @@
     RAC(_carTypeBtn, rq_titleStr) = [RACObserve(viewModel, userModel.carType) takeUntil:self.rac_prepareForReuseSignal];
     RAC(_schoolNameBtn, rq_titleStr) = [[RACObserve(viewModel, userModel.schoolName) map:^id _Nullable(id  _Nullable value) {
         if (RQObjectIsNil(viewModel.userModel.schInfo)) {
-            return RQStringIsNotEmpty(viewModel.userModel.schoolName)? viewModel.userModel.schoolName : @"未获取到驾校名称";
+//            return RQStringIsNotEmpty(viewModel.userModel.schoolName)? viewModel.userModel.schoolName : @"未获取到驾校名称";
+            return RQStringIsNotEmpty(viewModel.userModel.schoolName)? viewModel.userModel.schoolName : @"";
         } else {
-            return RQStringIsNotEmpty(viewModel.userModel.schInfo.name)? viewModel.userModel.schInfo.name : (RQStringIsNotEmpty(viewModel.userModel.schoolName)? viewModel.userModel.schoolName : @"未获取到驾校名称");
+//            return RQStringIsNotEmpty(viewModel.userModel.schInfo.name)? viewModel.userModel.schInfo.name : (RQStringIsNotEmpty(viewModel.userModel.schoolName)? viewModel.userModel.schoolName : @"未获取到驾校名称");
+            return RQStringIsNotEmpty(viewModel.userModel.schInfo.name)? viewModel.userModel.schInfo.name : (RQStringIsNotEmpty(viewModel.userModel.schoolName)? viewModel.userModel.schoolName : @"");
         }
     }] takeUntil:self.rac_prepareForReuseSignal];
 }

+ 7 - 6
jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileSubjectFourVipCell.m

@@ -36,12 +36,13 @@
         graColor.type = QQGradualChangeTypeLeftToRight;
     } size:cell.bounds.size cornerRadius:QQRadiusMakeSame(10.f)]];
     
-    [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
-        graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
-        graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
-        graColor.type = QQGradualChangeTypeLeftToRight;
-    } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
-    
+    if(cell.leftVipBtn.currentBackgroundImage==nil){
+        [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+            graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
+            graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
+            graColor.type = QQGradualChangeTypeLeftToRight;
+        } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
+    }
     [cell.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
         graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FFA316"];
         graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFC610"];

+ 9 - 6
jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileSubjectOneVipCell.m

@@ -37,12 +37,13 @@
         graColor.type = QQGradualChangeTypeLeftToRight;
     } size:cell.bounds.size cornerRadius:QQRadiusMakeSame(10.f)]];
     
-    [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
-        graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
-        graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
-        graColor.type = QQGradualChangeTypeLeftToRight;
-    } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
-    
+    if(cell.leftVipBtn.currentBackgroundImage==nil){
+        [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+            graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
+            graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
+            graColor.type = QQGradualChangeTypeLeftToRight;
+        } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
+    }
     [cell.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
         graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FFA316"];
         graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFC610"];
@@ -53,6 +54,7 @@
     return cell;
 }
 
+
 - (void)bindViewModel:(RQProfileVipItemViewModel *)viewModel {
     self.viewModel = viewModel;
     [[self singnal] subscribeNext:^(id  _Nullable x) {}];
@@ -87,6 +89,7 @@
             _openVipBtn.hidden = RQ_VIP_Module.isSubject1Vip;
             _dateLabel.hidden = !_openVipBtn.hidden;
             _dateLabel.text = [NSString stringWithFormat:@"%@到期",RQ_VIP_Module.videoVipModel.subject1];
+            NSLog(@"_leftVipBtn+++++++_leftVipBtn");
             [_leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
                 graColor.fromColor =  RQ_VIP_Module.isSubject1Vip? [UIColor qmui_colorWithHexString:@"#FFA316"] : [UIColor qmui_colorWithHexString:@"#ABAEB1"];
                 graColor.toColor = RQ_VIP_Module.isSubject1Vip? [UIColor qmui_colorWithHexString:@"#FFC610"] : [UIColor qmui_colorWithHexString:@"#F5F5F6"];

+ 7 - 6
jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileSubjectThreeVipCell.m

@@ -37,12 +37,13 @@
         graColor.type = QQGradualChangeTypeLeftToRight;
     } size:cell.bounds.size cornerRadius:QQRadiusMakeSame(10.f)]];
     
-    [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
-        graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
-        graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
-        graColor.type = QQGradualChangeTypeLeftToRight;
-    } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
-    
+    if(cell.leftVipBtn.currentBackgroundImage==nil){
+        [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+            graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
+            graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
+            graColor.type = QQGradualChangeTypeLeftToRight;
+        } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
+    }
     [cell.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
         graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FFA316"];
         graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFC610"];

+ 7 - 6
jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileSubjectTwoVipCell.m

@@ -37,12 +37,13 @@
         graColor.type = QQGradualChangeTypeLeftToRight;
     } size:cell.bounds.size cornerRadius:QQRadiusMakeSame(10.f)]];
     
-    [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
-        graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
-        graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
-        graColor.type = QQGradualChangeTypeLeftToRight;
-    } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
-    
+    if(cell.leftVipBtn.currentBackgroundImage==nil){
+        [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+            graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
+            graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
+            graColor.type = QQGradualChangeTypeLeftToRight;
+        } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
+    }
     [cell.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
         graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FFA316"];
         graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFC610"];

+ 7 - 5
jiaPei/Modules/ProfileModule/View/RQProfileVipCells/RQProfileVipCell.m

@@ -56,11 +56,13 @@
         graColor.type = QQGradualChangeTypeLeftToRight;
     } size:cell.bounds.size cornerRadius:QQRadiusMakeSame(10.f)]];
     
-    [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
-        graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
-        graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
-        graColor.type = QQGradualChangeTypeLeftToRight;
-    } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
+    if(cell.leftVipBtn.currentBackgroundImage==nil){
+        [cell.leftVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+            graColor.fromColor = [UIColor qmui_colorWithHexString:@"#ABAEB1"];
+            graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5F5F6"];
+            graColor.type = QQGradualChangeTypeLeftToRight;
+        } size:CGSizeMake(RQ_FIT_HORIZONTAL(110.f), RQ_FIT_HORIZONTAL(30.f)) cornerRadius:QQRadiusMake(0, RQ_FIT_HORIZONTAL(30.f) / 2.f, 0, RQ_FIT_HORIZONTAL(30.f) / 2.f)] forState:UIControlStateNormal];
+    }
     
     [cell.openVipBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
         graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FFA316"];

+ 1 - 1
jiaPei/Modules/ProfileModule/ViewModel/RQProfileViewModel.m

@@ -200,7 +200,7 @@
     
 //    group2.itemViewModels = @[coupon, synchronizationProgress, myOrder, transferQuery];
     group2.itemViewModels = @[test, synchronizationProgress, transferQuery, onlineService];
-
+//    group2.itemViewModels = @[test, synchronizationProgress,  onlineService];
     /// 第四组
     RQProfileUserAndVipHeaderGroupViewModel *group3 = [RQProfileUserAndVipHeaderGroupViewModel groupViewModel];
     group3.header = @"优惠相关";

+ 17 - 17
jiaPei/Modules/TimeModule/View/RQTimeRuleCell.m

@@ -36,23 +36,23 @@
     self.ruleTwo.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
     self.ruleTwo.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
     
-    self.ruleThree.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
-    self.ruleThree.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
-    
-    self.ruleFour.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
-    self.ruleFour.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
-    
-    self.ruleFive.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
-    self.ruleFive.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
-    
-    self.ruleSix.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
-    self.ruleSix.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
-    
-    self.ruleSeven.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
-    self.ruleSeven.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
-    
-    self.ruleEight.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
-    self.ruleEight.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
+//    self.ruleThree.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
+//    self.ruleThree.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
+//    
+//    self.ruleFour.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
+//    self.ruleFour.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
+//    
+//    self.ruleFive.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
+//    self.ruleFive.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
+//    
+//    self.ruleSix.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
+//    self.ruleSix.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
+//    
+//    self.ruleSeven.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
+//    self.ruleSeven.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
+//    
+//    self.ruleEight.layer.backgroundColor = [UIColor colorWithRed:65025/255.0 green:65025/255.0 blue:65025/255.0 alpha:1.0].CGColor;
+//    self.ruleEight.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1600].CGColor;
 }
 
 @end

+ 7 - 327
jiaPei/Modules/TimeModule/View/RQTimeRuleCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -11,14 +11,14 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="RQTimeRuleCell">
-            <rect key="frame" x="0.0" y="0.0" width="320" height="890"/>
+            <rect key="frame" x="0.0" y="0.0" width="320" height="360"/>
             <autoresizingMask key="autoresizingMask"/>
             <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
-                <rect key="frame" x="0.0" y="0.0" width="320" height="890"/>
+                <rect key="frame" x="0.0" y="0.0" width="320" height="360"/>
                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                 <subviews>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qsy-YA-V7d">
-                        <rect key="frame" x="16" y="8" width="288" height="874"/>
+                        <rect key="frame" x="16" y="8" width="288" height="344"/>
                         <color key="backgroundColor" red="0.94901960784313721" green="0.95294117647058818" blue="0.96078431372549022" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
@@ -36,7 +36,7 @@
                         <nil key="highlightedColor"/>
                     </label>
                     <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="sOn-RG-Whh">
-                        <rect key="frame" x="32" y="80.666666666666686" width="256" height="670"/>
+                        <rect key="frame" x="32" y="80.666666666666686" width="256" height="141"/>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5w8-Zz-rAV">
                                 <rect key="frame" x="0.0" y="0.0" width="256" height="66.666666666666671"/>
@@ -140,318 +140,10 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </view>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CUF-fC-GOe">
-                                <rect key="frame" x="0.0" y="151" width="256" height="87.666666666666686"/>
-                                <subviews>
-                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Dg-4d-SoD">
-                                        <rect key="frame" x="0.0" y="0.0" width="47" height="87.666666666666671"/>
-                                        <subviews>
-                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="timeRule3" translatesAutoresizingMaskIntoConstraints="NO" id="FiR-oO-cZ6">
-                                                <rect key="frame" x="13.333333333333334" y="26.666666666666661" width="20.333333333333329" height="34.333333333333343"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="width" secondItem="FiR-oO-cZ6" secondAttribute="height" multiplier="25:42" id="kNI-PG-Opk"/>
-                                                </constraints>
-                                            </imageView>
-                                        </subviews>
-                                        <color key="backgroundColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <constraints>
-                                            <constraint firstItem="FiR-oO-cZ6" firstAttribute="height" secondItem="9Dg-4d-SoD" secondAttribute="height" multiplier="42/108" id="1gt-iU-t8c"/>
-                                            <constraint firstAttribute="width" secondItem="9Dg-4d-SoD" secondAttribute="height" multiplier="58:108" id="7Dd-Uz-Sf0"/>
-                                            <constraint firstItem="FiR-oO-cZ6" firstAttribute="centerY" secondItem="9Dg-4d-SoD" secondAttribute="centerY" id="w2t-df-PTm"/>
-                                            <constraint firstItem="FiR-oO-cZ6" firstAttribute="centerX" secondItem="9Dg-4d-SoD" secondAttribute="centerX" id="yja-hS-01v"/>
-                                        </constraints>
-                                    </view>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="确保教练手机是正常联网且安装支持3G以上的移动,联通和电信的SIM,否则无法采集到手机终端的位置,系统会判定分钟学时无效" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="12" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fsl-uH-Wsu">
-                                        <rect key="frame" x="63" y="8" width="185" height="71.666666666666671"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                </subviews>
-                                <color key="backgroundColor" systemColor="systemGray6Color"/>
-                                <constraints>
-                                    <constraint firstAttribute="bottom" secondItem="fsl-uH-Wsu" secondAttribute="bottom" constant="8" id="1M6-OV-9q7"/>
-                                    <constraint firstItem="fsl-uH-Wsu" firstAttribute="leading" secondItem="9Dg-4d-SoD" secondAttribute="trailing" constant="16" id="2C5-N0-OZV"/>
-                                    <constraint firstAttribute="trailing" secondItem="fsl-uH-Wsu" secondAttribute="trailing" constant="8" id="9Uc-2x-seQ"/>
-                                    <constraint firstItem="9Dg-4d-SoD" firstAttribute="top" secondItem="CUF-fC-GOe" secondAttribute="top" id="AOd-2q-4mU"/>
-                                    <constraint firstItem="fsl-uH-Wsu" firstAttribute="top" secondItem="CUF-fC-GOe" secondAttribute="top" constant="8" id="hLc-zu-uht"/>
-                                    <constraint firstAttribute="bottom" secondItem="9Dg-4d-SoD" secondAttribute="bottom" id="kZU-Kv-jhL"/>
-                                    <constraint firstItem="9Dg-4d-SoD" firstAttribute="leading" secondItem="CUF-fC-GOe" secondAttribute="leading" id="tuY-im-vMH"/>
-                                </constraints>
-                                <userDefinedRuntimeAttributes>
-                                    <userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
-                                        <size key="value" width="0.0" height="3"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowOpacity">
-                                        <integer key="value" value="1"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius ">
-                                        <integer key="value" value="6"/>
-                                    </userDefinedRuntimeAttribute>
-                                </userDefinedRuntimeAttributes>
-                            </view>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ypK-sB-fK9">
-                                <rect key="frame" x="0.0" y="248.6666666666666" width="256" height="84.666666666666657"/>
-                                <subviews>
-                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="WpF-Vj-WTa">
-                                        <rect key="frame" x="0.0" y="0.0" width="47" height="84.666666666666671"/>
-                                        <subviews>
-                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="timeRule4" translatesAutoresizingMaskIntoConstraints="NO" id="XHH-oE-n8P">
-                                                <rect key="frame" x="13" y="25.333333333333371" width="21" height="34"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="width" secondItem="XHH-oE-n8P" secondAttribute="height" multiplier="26:42" id="7dm-yJ-XTo"/>
-                                                </constraints>
-                                            </imageView>
-                                        </subviews>
-                                        <color key="backgroundColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <constraints>
-                                            <constraint firstItem="XHH-oE-n8P" firstAttribute="height" secondItem="WpF-Vj-WTa" secondAttribute="height" multiplier="42/104" id="QUG-yc-nfW"/>
-                                            <constraint firstItem="XHH-oE-n8P" firstAttribute="centerX" secondItem="WpF-Vj-WTa" secondAttribute="centerX" id="hCU-BN-nXk"/>
-                                            <constraint firstAttribute="width" secondItem="WpF-Vj-WTa" secondAttribute="height" multiplier="58:104" id="op6-RP-exr"/>
-                                            <constraint firstItem="XHH-oE-n8P" firstAttribute="centerY" secondItem="WpF-Vj-WTa" secondAttribute="centerY" id="uyn-5h-4BQ"/>
-                                        </constraints>
-                                    </view>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="系统为防止特殊情况,教练带教过程接到电话,允许断网一段时间,默认15分钟,如果超过15分钟,所带教学员的分钟学时无效" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="12" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Lkr-SZ-7Kc">
-                                        <rect key="frame" x="63" y="8" width="185" height="68.666666666666671"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                </subviews>
-                                <color key="backgroundColor" systemColor="systemGray6Color"/>
-                                <constraints>
-                                    <constraint firstAttribute="bottom" secondItem="Lkr-SZ-7Kc" secondAttribute="bottom" constant="8" id="1ao-xv-WuJ"/>
-                                    <constraint firstAttribute="bottom" secondItem="WpF-Vj-WTa" secondAttribute="bottom" id="KJh-n6-G3W"/>
-                                    <constraint firstItem="Lkr-SZ-7Kc" firstAttribute="leading" secondItem="WpF-Vj-WTa" secondAttribute="trailing" constant="16" id="Smy-g9-I5w"/>
-                                    <constraint firstAttribute="width" secondItem="ypK-sB-fK9" secondAttribute="height" multiplier="315/104" id="VWc-BT-47Y"/>
-                                    <constraint firstItem="Lkr-SZ-7Kc" firstAttribute="top" secondItem="ypK-sB-fK9" secondAttribute="top" constant="8" id="VfU-sC-hNP"/>
-                                    <constraint firstItem="WpF-Vj-WTa" firstAttribute="leading" secondItem="ypK-sB-fK9" secondAttribute="leading" id="amf-R5-bCx"/>
-                                    <constraint firstItem="WpF-Vj-WTa" firstAttribute="top" secondItem="ypK-sB-fK9" secondAttribute="top" id="iEh-hT-i9B"/>
-                                    <constraint firstAttribute="trailing" secondItem="Lkr-SZ-7Kc" secondAttribute="trailing" constant="8" id="voc-YC-lnp"/>
-                                </constraints>
-                                <userDefinedRuntimeAttributes>
-                                    <userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
-                                        <size key="value" width="0.0" height="3"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowOpacity">
-                                        <integer key="value" value="1"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius ">
-                                        <integer key="value" value="6"/>
-                                    </userDefinedRuntimeAttribute>
-                                </userDefinedRuntimeAttributes>
-                            </view>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="m6O-cg-vaa">
-                                <rect key="frame" x="0.0" y="343.33333333333331" width="256" height="65"/>
-                                <subviews>
-                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3tS-Lc-EKL">
-                                        <rect key="frame" x="0.0" y="0.0" width="47" height="65"/>
-                                        <subviews>
-                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="timeRule5" translatesAutoresizingMaskIntoConstraints="NO" id="Ixo-iI-Rp2">
-                                                <rect key="frame" x="13.666666666666666" y="15.333333333333314" width="19.666666666666671" height="34"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="width" secondItem="Ixo-iI-Rp2" secondAttribute="height" multiplier="24:42" id="Cc8-A5-gjR"/>
-                                                </constraints>
-                                            </imageView>
-                                        </subviews>
-                                        <color key="backgroundColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <constraints>
-                                            <constraint firstAttribute="width" secondItem="3tS-Lc-EKL" secondAttribute="height" multiplier="58:80" id="2Sk-oF-YS6"/>
-                                            <constraint firstItem="Ixo-iI-Rp2" firstAttribute="centerX" secondItem="3tS-Lc-EKL" secondAttribute="centerX" id="9w1-FE-HbB"/>
-                                            <constraint firstItem="Ixo-iI-Rp2" firstAttribute="centerY" secondItem="3tS-Lc-EKL" secondAttribute="centerY" id="dLr-Wj-T3S"/>
-                                            <constraint firstItem="Ixo-iI-Rp2" firstAttribute="height" secondItem="3tS-Lc-EKL" secondAttribute="height" multiplier="42/80" id="m7Z-ZQ-uqe"/>
-                                        </constraints>
-                                    </view>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学员和教练的有效距离不能超过规定距离,否则分钟学时无效,详情请咨询教练或您所在的驾校" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="12" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Fhj-IU-w8X">
-                                        <rect key="frame" x="63" y="8" width="185" height="49"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                </subviews>
-                                <color key="backgroundColor" systemColor="systemGray6Color"/>
-                                <constraints>
-                                    <constraint firstItem="Fhj-IU-w8X" firstAttribute="leading" secondItem="3tS-Lc-EKL" secondAttribute="trailing" constant="16" id="CUL-PX-8OH"/>
-                                    <constraint firstAttribute="bottom" secondItem="Fhj-IU-w8X" secondAttribute="bottom" constant="8" id="EdZ-3h-4E7"/>
-                                    <constraint firstAttribute="trailing" secondItem="Fhj-IU-w8X" secondAttribute="trailing" constant="8" id="LjO-4e-bId"/>
-                                    <constraint firstItem="3tS-Lc-EKL" firstAttribute="leading" secondItem="m6O-cg-vaa" secondAttribute="leading" id="PCx-aa-Rjg"/>
-                                    <constraint firstItem="Fhj-IU-w8X" firstAttribute="top" secondItem="m6O-cg-vaa" secondAttribute="top" constant="8" id="Q5I-P6-uAY"/>
-                                    <constraint firstAttribute="bottom" secondItem="3tS-Lc-EKL" secondAttribute="bottom" id="g1x-is-WlS"/>
-                                    <constraint firstItem="3tS-Lc-EKL" firstAttribute="top" secondItem="m6O-cg-vaa" secondAttribute="top" id="rwI-93-QTF"/>
-                                    <constraint firstAttribute="width" secondItem="m6O-cg-vaa" secondAttribute="height" multiplier="315/80" id="zlx-pu-vCv"/>
-                                </constraints>
-                                <userDefinedRuntimeAttributes>
-                                    <userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
-                                        <size key="value" width="0.0" height="3"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowOpacity">
-                                        <integer key="value" value="1"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius ">
-                                        <integer key="value" value="6"/>
-                                    </userDefinedRuntimeAttribute>
-                                </userDefinedRuntimeAttributes>
-                            </view>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uFU-dW-uum">
-                                <rect key="frame" x="0.0" y="418.33333333333331" width="256" height="65"/>
-                                <subviews>
-                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bo3-8c-hC7">
-                                        <rect key="frame" x="0.0" y="0.0" width="47" height="65"/>
-                                        <subviews>
-                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="timeRule6" translatesAutoresizingMaskIntoConstraints="NO" id="9cc-iY-jz3">
-                                                <rect key="frame" x="13.333333333333334" y="15.333333333333371" width="20.333333333333329" height="34"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="width" secondItem="9cc-iY-jz3" secondAttribute="height" multiplier="25:42" id="cdt-jb-sDy"/>
-                                                </constraints>
-                                            </imageView>
-                                        </subviews>
-                                        <color key="backgroundColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <constraints>
-                                            <constraint firstItem="9cc-iY-jz3" firstAttribute="centerY" secondItem="bo3-8c-hC7" secondAttribute="centerY" id="JaH-wX-s66"/>
-                                            <constraint firstItem="9cc-iY-jz3" firstAttribute="centerX" secondItem="bo3-8c-hC7" secondAttribute="centerX" id="SEH-T6-WGA"/>
-                                            <constraint firstAttribute="width" secondItem="bo3-8c-hC7" secondAttribute="height" multiplier="58:80" id="aW8-Hb-RO9"/>
-                                            <constraint firstItem="9cc-iY-jz3" firstAttribute="height" secondItem="bo3-8c-hC7" secondAttribute="height" multiplier="42/80" id="ghM-jh-igw"/>
-                                        </constraints>
-                                    </view>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="系统默认在2分钟及以上时间段内,如果移动距离为0米,视为无效分钟学时" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="12" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2pR-P0-NN0">
-                                        <rect key="frame" x="63" y="8" width="185" height="49"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                </subviews>
-                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                <constraints>
-                                    <constraint firstAttribute="bottom" secondItem="2pR-P0-NN0" secondAttribute="bottom" constant="8" id="9GC-sT-8SS"/>
-                                    <constraint firstItem="bo3-8c-hC7" firstAttribute="leading" secondItem="uFU-dW-uum" secondAttribute="leading" id="Nxf-od-Izd"/>
-                                    <constraint firstAttribute="bottom" secondItem="bo3-8c-hC7" secondAttribute="bottom" id="SKs-RG-sKI"/>
-                                    <constraint firstItem="2pR-P0-NN0" firstAttribute="leading" secondItem="bo3-8c-hC7" secondAttribute="trailing" constant="16" id="ZSc-yp-GZE"/>
-                                    <constraint firstItem="2pR-P0-NN0" firstAttribute="top" secondItem="uFU-dW-uum" secondAttribute="top" constant="8" id="btG-SP-nhl"/>
-                                    <constraint firstItem="bo3-8c-hC7" firstAttribute="top" secondItem="uFU-dW-uum" secondAttribute="top" id="fAn-fg-8Xb"/>
-                                    <constraint firstAttribute="width" secondItem="uFU-dW-uum" secondAttribute="height" multiplier="315/80" id="kXB-GQ-4mb"/>
-                                    <constraint firstAttribute="trailing" secondItem="2pR-P0-NN0" secondAttribute="trailing" constant="8" id="xiJ-HY-BXY"/>
-                                </constraints>
-                                <userDefinedRuntimeAttributes>
-                                    <userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
-                                        <size key="value" width="0.0" height="3"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowOpacity">
-                                        <integer key="value" value="1"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius ">
-                                        <integer key="value" value="6"/>
-                                    </userDefinedRuntimeAttribute>
-                                </userDefinedRuntimeAttributes>
-                            </view>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IZW-TA-u50">
-                                <rect key="frame" x="0.0" y="493.33333333333326" width="256" height="77"/>
-                                <subviews>
-                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BiA-Kf-rEs">
-                                        <rect key="frame" x="0.0" y="0.0" width="47" height="77"/>
-                                        <subviews>
-                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="timeRule7" translatesAutoresizingMaskIntoConstraints="NO" id="lLu-Lp-Zjv">
-                                                <rect key="frame" x="14.333333333333337" y="21.333333333333375" width="18.666666666666671" height="34.333333333333343"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="width" secondItem="lLu-Lp-Zjv" secondAttribute="height" multiplier="23:42" id="3xq-RY-UIn"/>
-                                                </constraints>
-                                            </imageView>
-                                        </subviews>
-                                        <color key="backgroundColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <constraints>
-                                            <constraint firstItem="lLu-Lp-Zjv" firstAttribute="centerX" secondItem="BiA-Kf-rEs" secondAttribute="centerX" id="4Z6-uX-zAs"/>
-                                            <constraint firstAttribute="width" secondItem="BiA-Kf-rEs" secondAttribute="height" multiplier="58:95" id="PPs-U6-xM4"/>
-                                            <constraint firstItem="lLu-Lp-Zjv" firstAttribute="height" secondItem="BiA-Kf-rEs" secondAttribute="height" multiplier="42/95" id="QK5-Yv-G1O"/>
-                                            <constraint firstItem="lLu-Lp-Zjv" firstAttribute="centerY" secondItem="BiA-Kf-rEs" secondAttribute="centerY" id="eog-f8-ycP"/>
-                                        </constraints>
-                                    </view>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="根据规定,学员科目二和科目三1分钟内移动距离不能低于规定的数值,否则分钟学时无效,具体询问驾校或教练" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="12" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="rRf-aa-mGg">
-                                        <rect key="frame" x="63" y="8" width="185" height="61"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                </subviews>
-                                <color key="backgroundColor" systemColor="systemGray6Color"/>
-                                <constraints>
-                                    <constraint firstItem="rRf-aa-mGg" firstAttribute="leading" secondItem="BiA-Kf-rEs" secondAttribute="trailing" constant="16" id="1nY-Do-Wi9"/>
-                                    <constraint firstItem="BiA-Kf-rEs" firstAttribute="leading" secondItem="IZW-TA-u50" secondAttribute="leading" id="GnC-hM-lUD"/>
-                                    <constraint firstAttribute="trailing" secondItem="rRf-aa-mGg" secondAttribute="trailing" constant="8" id="LMb-lZ-MCL"/>
-                                    <constraint firstAttribute="bottom" secondItem="BiA-Kf-rEs" secondAttribute="bottom" id="RoX-Hi-YfH"/>
-                                    <constraint firstAttribute="bottom" secondItem="rRf-aa-mGg" secondAttribute="bottom" constant="8" id="RpI-i8-P3R"/>
-                                    <constraint firstItem="rRf-aa-mGg" firstAttribute="top" secondItem="IZW-TA-u50" secondAttribute="top" constant="8" id="UDj-JU-e15"/>
-                                    <constraint firstAttribute="width" secondItem="IZW-TA-u50" secondAttribute="height" multiplier="315/95" id="woW-Yp-d6F"/>
-                                    <constraint firstItem="BiA-Kf-rEs" firstAttribute="top" secondItem="IZW-TA-u50" secondAttribute="top" id="zEe-gS-4HY"/>
-                                </constraints>
-                                <userDefinedRuntimeAttributes>
-                                    <userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
-                                        <size key="value" width="0.0" height="3"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowOpacity">
-                                        <integer key="value" value="1"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius ">
-                                        <integer key="value" value="6"/>
-                                    </userDefinedRuntimeAttribute>
-                                </userDefinedRuntimeAttributes>
-                            </view>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jXY-G2-Avk">
-                                <rect key="frame" x="0.0" y="580.33333333333337" width="256" height="89.666666666666629"/>
-                                <subviews>
-                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9d7-AZ-qM3">
-                                        <rect key="frame" x="0.0" y="0.0" width="47" height="89.666666666666671"/>
-                                        <subviews>
-                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="timeRule8" translatesAutoresizingMaskIntoConstraints="NO" id="Y5x-6V-3Tr">
-                                                <rect key="frame" x="13.333333333333334" y="27.666666666666632" width="20.333333333333329" height="34.333333333333343"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="width" secondItem="Y5x-6V-3Tr" secondAttribute="height" multiplier="25:42" id="wvX-90-tRB"/>
-                                                </constraints>
-                                            </imageView>
-                                        </subviews>
-                                        <color key="backgroundColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <constraints>
-                                            <constraint firstAttribute="width" secondItem="9d7-AZ-qM3" secondAttribute="height" multiplier="58:110" id="Cgg-yy-2Td"/>
-                                            <constraint firstItem="Y5x-6V-3Tr" firstAttribute="centerX" secondItem="9d7-AZ-qM3" secondAttribute="centerX" id="KcV-t4-EJv"/>
-                                            <constraint firstItem="Y5x-6V-3Tr" firstAttribute="centerY" secondItem="9d7-AZ-qM3" secondAttribute="centerY" id="dD6-Ur-vc6"/>
-                                            <constraint firstItem="Y5x-6V-3Tr" firstAttribute="height" secondItem="9d7-AZ-qM3" secondAttribute="height" multiplier="42/110" id="e8R-wo-u96"/>
-                                        </constraints>
-                                    </view>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="如果您选择计时收费训练,您可以在训练结束且支付完成后对教练进行评价和投诉,如果训练完成后不支付,您的学时将无效且无法进行下一次训练" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="12" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1K0-an-MMd">
-                                        <rect key="frame" x="63" y="8" width="185" height="73.666666666666671"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                </subviews>
-                                <color key="backgroundColor" systemColor="systemGray6Color"/>
-                                <constraints>
-                                    <constraint firstItem="9d7-AZ-qM3" firstAttribute="leading" secondItem="jXY-G2-Avk" secondAttribute="leading" id="0a3-qb-MWC"/>
-                                    <constraint firstItem="1K0-an-MMd" firstAttribute="top" secondItem="jXY-G2-Avk" secondAttribute="top" constant="8" id="6Vr-Ja-RZo"/>
-                                    <constraint firstAttribute="width" secondItem="jXY-G2-Avk" secondAttribute="height" multiplier="315/110" id="Bpf-ha-5tk"/>
-                                    <constraint firstAttribute="bottom" secondItem="1K0-an-MMd" secondAttribute="bottom" constant="8" id="HhF-VC-olH"/>
-                                    <constraint firstAttribute="bottom" secondItem="9d7-AZ-qM3" secondAttribute="bottom" id="O9G-QA-Nfr"/>
-                                    <constraint firstAttribute="trailing" secondItem="1K0-an-MMd" secondAttribute="trailing" constant="8" id="m6O-vF-Rsn"/>
-                                    <constraint firstItem="9d7-AZ-qM3" firstAttribute="top" secondItem="jXY-G2-Avk" secondAttribute="top" id="o0T-sQ-Fl7"/>
-                                    <constraint firstItem="1K0-an-MMd" firstAttribute="leading" secondItem="9d7-AZ-qM3" secondAttribute="trailing" constant="16" id="uM5-ee-Ctw"/>
-                                </constraints>
-                                <userDefinedRuntimeAttributes>
-                                    <userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
-                                        <size key="value" width="0.0" height="3"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowOpacity">
-                                        <integer key="value" value="1"/>
-                                    </userDefinedRuntimeAttribute>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius ">
-                                        <integer key="value" value="6"/>
-                                    </userDefinedRuntimeAttribute>
-                                </userDefinedRuntimeAttributes>
-                            </view>
                         </subviews>
-                        <constraints>
-                            <constraint firstItem="CUF-fC-GOe" firstAttribute="width" secondItem="CUF-fC-GOe" secondAttribute="height" multiplier="315/108" id="tDm-uF-rlI"/>
-                        </constraints>
                     </stackView>
                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="为了保证您的合法利益,请遵守规定,同时也请提醒您的教练,手机不能断网或在带教过程中长时间接听电话,否则会影响您的学时有效性判断,导致学时无效" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="12" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sZn-kb-DTX">
-                        <rect key="frame" x="32" y="766.66666666666663" width="256" height="60.666666666666629"/>
+                        <rect key="frame" x="32" y="237.66666666666663" width="256" height="61"/>
                         <constraints>
                             <constraint firstAttribute="width" secondItem="sZn-kb-DTX" secondAttribute="height" multiplier="315:75" id="m1i-pI-uF4"/>
                         </constraints>
@@ -478,13 +170,7 @@
                 <constraint firstAttribute="trailing" secondItem="sOn-RG-Whh" secondAttribute="trailing" constant="32" id="w6z-EX-2JR"/>
             </constraints>
             <connections>
-                <outlet property="ruleEight" destination="jXY-G2-Avk" id="2NP-Dy-JsR"/>
-                <outlet property="ruleFive" destination="m6O-cg-vaa" id="FZ7-eJ-2tY"/>
-                <outlet property="ruleFour" destination="ypK-sB-fK9" id="Sie-KE-Jo6"/>
                 <outlet property="ruleOne" destination="5w8-Zz-rAV" id="f9m-4d-dcF"/>
-                <outlet property="ruleSeven" destination="IZW-TA-u50" id="OFj-qW-VLo"/>
-                <outlet property="ruleSix" destination="uFU-dW-uum" id="Pyq-YL-fjm"/>
-                <outlet property="ruleThree" destination="CUF-fC-GOe" id="6yh-wz-WPv"/>
                 <outlet property="ruleTwo" destination="5Ci-8l-zKA" id="ddG-X5-GoB"/>
             </connections>
             <point key="canvasLocation" x="55" y="42"/>
@@ -493,12 +179,6 @@
     <resources>
         <image name="timeRule1" width="15" height="42"/>
         <image name="timeRule2" width="25" height="42"/>
-        <image name="timeRule3" width="25" height="42"/>
-        <image name="timeRule4" width="26" height="42"/>
-        <image name="timeRule5" width="24" height="42"/>
-        <image name="timeRule6" width="25" height="42"/>
-        <image name="timeRule7" width="23" height="42"/>
-        <image name="timeRule8" width="25" height="42"/>
         <systemColor name="systemGray6Color">
             <color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
         </systemColor>

+ 12 - 1
jiaPei/Modules/TimeModule/ViewModel/RQTimeViewModel.m

@@ -59,13 +59,24 @@
         timeSingle3ItemViewModel.icon = @"我的学时";
         timeSingle3ItemViewModel.title = @"我的学时";
         
+        RQTimeSingleItemViewModel *timeSingle4ItemViewModel = [[RQTimeSingleItemViewModel alloc] init];
+        timeSingle4ItemViewModel.icon = @"课堂培训";
+        timeSingle4ItemViewModel.title = @"课堂培训";
+        
+        RQTimeSingleItemViewModel *timeSingle5ItemViewModel = [[RQTimeSingleItemViewModel alloc] init];
+        timeSingle5ItemViewModel.icon = @"模拟培训";
+        timeSingle5ItemViewModel.title = @"模拟培训";
+        
         //2023-12-13 日 , 从业计时不在开启
 //        group1.itemViewModels = RQ_USER_MANAGER.isCykh? @[timeSingle1ItemViewModel, timeSingle2ItemViewModel, timeSingle3ItemViewModel] : @[timeSingle1ItemViewModel, timeSingle3ItemViewModel];
-        group1.itemViewModels = @[timeSingle1ItemViewModel, timeSingle3ItemViewModel];
+        //2023-02-04 日 , 新增 课堂培训,模拟培训(待定)
+        group1.itemViewModels = @[timeSingle1ItemViewModel, timeSingle3ItemViewModel,timeSingle4ItemViewModel];
         RQCommonGroupViewModel *group2 = [RQCommonGroupViewModel groupViewModel];
         RQTimeRuleItemViewModel *timeRuleItemViewModel = [[RQTimeRuleItemViewModel alloc] init];
         group2.itemViewModels = @[timeRuleItemViewModel];
         
+        
+        
         return @[group0, group1, group2];
 
     }];

+ 1 - 1
jiaPei/Modules/TimeModule/ViewModel/itemViewModel/RQTimeRuleItemViewModel.m

@@ -15,7 +15,7 @@
 @implementation RQTimeRuleItemViewModel
 - (instancetype)init {
     if (self = [super init]) {
-        self.itemSize = CGSizeMake(RQ_SCREEN_WIDTH, RQ_FIT_HORIZONTAL(873.f) + (10 * 7) + (16 * 6));
+        self.itemSize = CGSizeMake(RQ_SCREEN_WIDTH, RQ_FIT_HORIZONTAL(313.f) + (10 * 7) + (16 * 6));
     }
     return self;
 }

+ 12 - 0
jiaPei/Modules/TimeModule/ViewModel/itemViewModel/RQTimeSingleItemViewModel.m

@@ -12,6 +12,7 @@
 #import "ScanVC.h"
 #import "NYTheoryTimeViewModel.h"
 #import "NYGetjobTimeViewModel.h"
+#import "NYClassRoomViewModel.h"
 
 @interface RQTimeSingleItemViewModel () {
 //    PeriodVC                   *KVOPeriodVC;
@@ -69,6 +70,10 @@
         [self gotoPeriod:1];
     } else if ([str isEqualToString:@"我的学时"]) {
         [self gotoTrainInfo];
+    } else if ([str isEqualToString:@"课堂培训"]) {
+        [self gotoPeriod:2];
+    } else if ([str isEqualToString:@"模拟培训"]) {
+        [self gotoTrainInfo];
     } else {
         
     }
@@ -103,7 +108,14 @@
             KVOPeriodVC = [self getNYGetjobTimeVC];
             vc = KVOPeriodVC;
         }
+    }else if(type==2){
+        NYClassRoomViewModel *viewModel = [[NYClassRoomViewModel alloc]  initWithServices:RQ_APPDELEGATE.services params:nil];
+        NYClassRoomVC *classViewController = [[NYClassRoomVC alloc] initWithViewModel:viewModel];
+        //timeViewController.vcType = TimeVCTypeAJob;
+        [self navPushHideTabbarToVC:classViewController];
+        return;
     }
+    
     if(vc)[self navPushHideTabbarToVC:vc];
     
 //    PeriodVC *vc = nil;

+ 17 - 0
jiaPei/NewTheory/NYClassRoomVC.h

@@ -0,0 +1,17 @@
+//
+//  NYClassRoomVC.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/2/4.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYClassRoomVC : RQCommonCollectionViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 87 - 0
jiaPei/NewTheory/NYClassRoomVC.m

@@ -0,0 +1,87 @@
+//
+//  NYClassRoomVC.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/2/4.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import "NYClassRoomVC.h"
+#import "NYClassRoomViewModel.h"
+#import "NYGetjobStartRuleCell.h"
+
+@interface NYClassRoomVC ()
+/// viewModel
+@property (nonatomic, readonly, strong) NYClassRoomViewModel *viewModel;
+
+@end
+
+@implementation NYClassRoomVC
+
+@dynamic viewModel;
+
+#pragma mark - SystemMethod
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    
+    
+    self.view.backgroundColor = UIColor.whiteColor;
+    self.collectionView.backgroundColor = UIColor.clearColor;
+    self.collectionView.backgroundView.backgroundColor = UIColor.clearColor;
+    UIImageView *bgImageView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"classroom_bgbg"]];
+    [self.view insertSubview:bgImageView atIndex:0];
+    [bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.top.right.mas_equalTo(self.view);
+        make.height.mas_equalTo(184.f);
+    }];
+}
+
+- (UIColor *)qmui_titleViewTintColor
+{
+    return UIColor.whiteColor;
+}
+
+- (UIImage *)qmui_navigationBarBackgroundImage
+{
+    return [UIImage qmui_imageWithColor:UIColor.clearColor];
+}
+
+#pragma mark - OverrideMethods
+/// 配置collectionView的区域
+- (UIEdgeInsets)contentInset {
+    return UIEdgeInsetsMake(RQ_APPLICATION_STATUS_BAR_HEIGHT + RQ_APPLICATION_NAV_BAR_HEIGHT, 0, 0, 0);
+}
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath {
+    RQCommonGroupViewModel *groupViewModel = self.viewModel.dataSource[indexPath.section];
+    RQCommonCollectionItemViewModel *itemViewModel = groupViewModel.itemViewModels[indexPath.row];
+    return [NSClassFromString(itemViewModel.itemClassName) cellWithCollectionView:collectionView forIndexPath:indexPath];
+}
+
+- (void)configureCell:(RQCommonCell *)cell atIndexPath:(NSIndexPath *)indexPath withObject:(id)object {
+    [cell bindViewModel:object];
+}
+
+- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
+    switch (section) {
+        case 1: {
+            return UIEdgeInsetsMake(0, 16, 0, 16);
+        }
+        default: {
+            return UIEdgeInsetsZero;
+        }
+    }
+}
+
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
+    switch (section) {
+        case 1:
+            return (RQ_SCREEN_WIDTH - 32 - (RQ_FIT_HORIZONTAL(90.f) * 3)) / 2.f;
+            
+        default:
+            return 8;
+    }
+}
+
+@end

+ 21 - 0
jiaPei/NewTheory/View/NYClassRoomPeiCell.h

@@ -0,0 +1,21 @@
+//
+//  NYClassRoomPeiCell.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/2/4.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import "CollectionViewCell.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYClassRoomPeiCell : RQCommonCollectionViewCell
+
+@property (weak, nonatomic) IBOutlet UIView *px00_view;
+
+@property (weak, nonatomic) IBOutlet UIView *px01_view;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 44 - 0
jiaPei/NewTheory/View/NYClassRoomPeiCell.m

@@ -0,0 +1,44 @@
+//
+//  NYClassRoomPeiCell.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/2/4.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import "NYClassRoomPeiCell.h"
+#import "NYClassRoomPeiViewModel.h"
+
+@interface NYClassRoomPeiCell ()
+
+@property (nonatomic, readwrite, strong) NYClassRoomPeiViewModel *viewModel;
+
+@end
+
+@implementation NYClassRoomPeiCell
+#pragma mark - PublicMethods
++ (instancetype)cellWithCollectionView:(UICollectionView *)collectionView forIndexPath:(NSIndexPath *)indexPath {
+    static NSString *ID = @"NYClassRoomPeiCell";
+    [collectionView registerNib:[UINib nibWithNibName:ID bundle:nil] forCellWithReuseIdentifier:ID];
+    NYClassRoomPeiCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
+    if (!cell) cell = [self rq_viewFromXib];
+
+    return cell;
+}
+
+- (void)bindViewModel:(NYClassRoomPeiViewModel *)viewModel {
+    self.viewModel = viewModel;
+}
+
+#pragma mark - SystemMethods
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.contentView.backgroundColor = UIColor.clearColor;
+    
+    _px00_view.layer.shadowColor = RGBA_COLOR(124, 129, 136, 0.2).CGColor;
+    _px01_view.layer.shadowColor = RGBA_COLOR(124, 129, 136, 0.2).CGColor;
+    
+}
+
+
+@end

+ 187 - 0
jiaPei/NewTheory/View/NYClassRoomPeiCell.xib

@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="NYClassRoomPeiCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="555"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="555"/>
+                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lNa-sV-KWt">
+                        <rect key="frame" x="16" y="32" width="288" height="300"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="培训信息" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ct5-rH-4pJ">
+                                <rect key="frame" x="8" y="15" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="教练姓名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H5t-2o-drT">
+                                <rect key="frame" x="8" y="51" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="学员姓名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="611-v6-Zac">
+                                <rect key="frame" x="8" y="80" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="培训车型" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZVI-2s-Wo3">
+                                <rect key="frame" x="8" y="115" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="车牌号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="f1O-Me-US2">
+                                <rect key="frame" x="8" y="144" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="教室名称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mpa-rs-d11">
+                                <rect key="frame" x="8" y="179" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="驾校简称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Inj-0d-SuS">
+                                <rect key="frame" x="8" y="208" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="签到时间" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I87-Rq-n6E">
+                                <rect key="frame" x="8" y="237" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="培训类型" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6fO-G5-aFg">
+                                <rect key="frame" x="8" y="268" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="300" id="hV5-tY-1K7"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="NO"/>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                <integer key="value" value="10"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius">
+                                <integer key="value" value="8"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowOpacity">
+                                <integer key="value" value="1"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
+                                <size key="value" width="0.0" height="0.0"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
+                    </view>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5AK-y0-nrp">
+                        <rect key="frame" x="16" y="348" width="288" height="141"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="培训照片" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kYM-KR-Vu2">
+                                <rect key="frame" x="8" y="15" width="76" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="141" id="mzc-NX-2nW"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="NO"/>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                <integer key="value" value="10"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius">
+                                <integer key="value" value="8"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.shadowOpacity">
+                                <integer key="value" value="1"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
+                                <size key="value" width="0.0" height="0.0"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
+                    </view>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="开始计时bg" translatesAutoresizingMaskIntoConstraints="NO" id="7Jf-mw-lBI">
+                        <rect key="frame" x="73" y="499" width="174" height="50"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="50" id="pHY-hZ-TMD"/>
+                            <constraint firstAttribute="width" constant="174" id="w3c-xL-BMz"/>
+                        </constraints>
+                    </imageView>
+                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="l5L-dJ-GEH">
+                        <rect key="frame" x="73" y="494" width="174" height="55"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="55" id="508-xR-VPe"/>
+                            <constraint firstAttribute="width" constant="174" id="ezd-zA-FXU"/>
+                        </constraints>
+                        <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
+                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                        <state key="normal" title="签到">
+                            <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        </state>
+                    </button>
+                </subviews>
+            </view>
+            <viewLayoutGuide key="safeArea" id="SEy-5g-ep8"/>
+            <constraints>
+                <constraint firstItem="l5L-dJ-GEH" firstAttribute="top" secondItem="5AK-y0-nrp" secondAttribute="bottom" constant="5" id="1Cp-At-PVo"/>
+                <constraint firstItem="5AK-y0-nrp" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="16" id="1Kz-pI-qdB"/>
+                <constraint firstItem="5AK-y0-nrp" firstAttribute="top" secondItem="lNa-sV-KWt" secondAttribute="bottom" constant="16" id="3Qp-RW-Ya6"/>
+                <constraint firstItem="7Jf-mw-lBI" firstAttribute="centerX" secondItem="gTV-IL-0wX" secondAttribute="centerX" id="O8q-dI-YCe"/>
+                <constraint firstItem="7Jf-mw-lBI" firstAttribute="top" secondItem="5AK-y0-nrp" secondAttribute="bottom" constant="10" id="PoM-GS-vjq"/>
+                <constraint firstItem="l5L-dJ-GEH" firstAttribute="centerX" secondItem="gTV-IL-0wX" secondAttribute="centerX" id="bm3-EN-FxD"/>
+                <constraint firstAttribute="trailing" secondItem="lNa-sV-KWt" secondAttribute="trailing" constant="16" id="fKO-4P-bYQ"/>
+                <constraint firstItem="lNa-sV-KWt" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="16" id="l13-ec-Cyn"/>
+                <constraint firstItem="lNa-sV-KWt" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="32" id="mYb-Qv-OBL"/>
+                <constraint firstAttribute="trailing" secondItem="5AK-y0-nrp" secondAttribute="trailing" constant="16" id="nZr-0X-GSf"/>
+            </constraints>
+            <size key="customSize" width="308" height="505"/>
+            <connections>
+                <outlet property="px00_view" destination="lNa-sV-KWt" id="HoW-Zg-zOK"/>
+                <outlet property="px01_view" destination="5AK-y0-nrp" id="ftz-2W-xLd"/>
+            </connections>
+            <point key="canvasLocation" x="235.11450381679387" y="148.94366197183101"/>
+        </collectionViewCell>
+    </objects>
+    <resources>
+        <image name="开始计时bg" width="136" height="72"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 17 - 0
jiaPei/NewTheory/ViewModel/NYClassRoomPeiViewModel.h

@@ -0,0 +1,17 @@
+//
+//  NYClassRoomPeiViewModel.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/2/4.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYClassRoomPeiViewModel : RQCommonCollectionItemViewModel
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 22 - 0
jiaPei/NewTheory/ViewModel/NYClassRoomPeiViewModel.m

@@ -0,0 +1,22 @@
+//
+//  NYClassRoomPeiViewModel.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/2/4.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import "NYClassRoomPeiViewModel.h"
+
+@implementation NYClassRoomPeiViewModel
+- (instancetype)init {
+    if (self = [super init]) {
+        self.itemSize = CGSizeMake(RQ_SCREEN_WIDTH, RQ_FIT_HORIZONTAL(555.f));
+    }
+    return self;
+}
+
+- (NSString *)itemClassName {
+    return @"NYClassRoomPeiCell";
+}
+@end

+ 18 - 0
jiaPei/NewTheory/ViewModel/NYClassRoomViewModel.h

@@ -0,0 +1,18 @@
+//
+//  NYClassRoomViewModel.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/2/4.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYClassRoomViewModel : RQCommonCollectionViewModel
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 55 - 0
jiaPei/NewTheory/ViewModel/NYClassRoomViewModel.m

@@ -0,0 +1,55 @@
+//
+//  NYClassRoomViewModel.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/2/4.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import "NYClassRoomViewModel.h"
+#import "NYTimeRuleItemViewModel.h"
+#import "NYClassRoomPeiViewModel.h"
+
+@interface NYClassRoomViewModel ()
+
+@end
+
+@implementation NYClassRoomViewModel
+#pragma mark - Public Method
+- (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
+    if (self = [super initWithServices:services params:params]) {
+        
+    }
+    return self;
+}
+
+- (void)initialize {
+    [super initialize];
+    
+    self.title = @"课堂培训";
+    ///配置数据
+    [self rq_configureData];
+}
+
+#pragma mark - ConfigureData
+- (void)rq_configureData {
+//    @weakify(self)
+    /// 数据源
+    RAC(self, dataSource) = [RACSignal
+                            combineLatest:@[RACObserve(RQ_USER_MANAGER, isCykh)]
+                            reduce:^(NSNumber *isCykh) {
+//        @strongify(self)
+//        RQCommonGroupViewModel *group0 = [RQCommonGroupViewModel groupViewModel];
+//        RQTimeADItemViewModel *timeADItemViewModel = [[RQTimeADItemViewModel alloc] init];
+//        group0.itemViewModels = @[timeADItemViewModel];
+//
+        RQCommonGroupViewModel *group1 = [RQCommonGroupViewModel groupViewModel];
+        NYClassRoomPeiViewModel *classRoomPeiViewModel = [[NYClassRoomPeiViewModel alloc] init];
+        group1.itemViewModels = @[classRoomPeiViewModel];
+        
+        
+        return @[group1];
+
+    }];
+}
+@end

+ 1 - 0
jiaPei/PrefixHeader.pch

@@ -120,6 +120,7 @@
 #import "NYBasetjTimeVC.h"
 #import "NYTheoryTimeVC.h"  //理论计时
 #import "NYGetjobTimeVC.h"  //从业计时
+#import "NYClassRoomVC.h"  //课堂培训
 
 /**一个全局的单例。
  这个地方可以放入版本判断信息 如果版本太低 不能打开 并告诉用户最低支持的版本信息--danson

+ 2 - 0
jiaPei/Utils/Router/RQRouter.m

@@ -96,6 +96,8 @@ static RQRouter *sharedInstance_ = nil;
              @"RQTimeViewModel"                     :               @"RQTimeViewController",
              @"NYTheoryTimeViewModel"                     :               @"NYTheoryTimeVC",
              @"NYGetjobTimeViewModel"                     :               @"NYGetjobTimeVC",
+             @"NYClassRoomViewModel"                     :               @"NYClassRoomVC",
+             
 //             @"RQTimeViewModel"                     :               @"TimingBaseVC",
              /*DiscoverModule*/
 //             @"RQDiscoverViewModel"                 :               @"RQDiscoverViewController",