Browse Source

初始化项目版本

RONG 2 years ago
commit
80406c5133
100 changed files with 5991 additions and 0 deletions
  1. 2289 0
      LN_School.xcodeproj/project.pbxproj
  2. 7 0
      LN_School.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  3. BIN
      LN_School.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
  4. 113 0
      LN_School.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/LN_School.xcscheme
  5. 32 0
      LN_School.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist
  6. 19 0
      LN_School.xcodeproj/xcuserdata/zhangrong.xcuserdatad/xcschemes/xcschememanagement.plist
  7. 10 0
      LN_School.xcworkspace/contents.xcworkspacedata
  8. 8 0
      LN_School.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  9. BIN
      LN_School.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
  10. 17 0
      LN_School.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  11. BIN
      LN_School.xcworkspace/xcuserdata/echoshacolee.xcuserdatad/UserInterfaceState.xcuserstate
  12. 5 0
      LN_School.xcworkspace/xcuserdata/echoshacolee.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  13. BIN
      LN_School.xcworkspace/xcuserdata/zhangrong.xcuserdatad/UserInterfaceState.xcuserstate
  14. 56 0
      LN_School.xcworkspace/xcuserdata/zhangrong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  15. 15 0
      LN_School/ADView/ADLinkVC.h
  16. 71 0
      LN_School/ADView/ADLinkVC.m
  17. 30 0
      LN_School/ADView/AdvertisingColumn.h
  18. 136 0
      LN_School/ADView/AdvertisingColumn.m
  19. 27 0
      LN_School/AFView/AFDescribeObj.h
  20. 73 0
      LN_School/AFView/AFDescribeObj.m
  21. 19 0
      LN_School/AFView/AFView.h
  22. 245 0
      LN_School/AFView/AFView.m
  23. 13 0
      LN_School/AboutVC.h
  24. 92 0
      LN_School/AboutVC.m
  25. 18 0
      LN_School/AddressBookVC.h
  26. 50 0
      LN_School/AddressBookVC.m
  27. 32 0
      LN_School/AllCoachCell.h
  28. 158 0
      LN_School/AllCoachCell.m
  29. 15 0
      LN_School/AllCoachPlanVC.h
  30. 342 0
      LN_School/AllCoachPlanVC.m
  31. 59 0
      LN_School/AppDelegate.h
  32. 550 0
      LN_School/AppDelegate.m
  33. 13 0
      LN_School/ApplyContact.h
  34. 63 0
      LN_School/ApplyContact.m
  35. 66 0
      LN_School/ApplyContact.xib
  36. 21 0
      LN_School/ApplyPlanStuCell.h
  37. 24 0
      LN_School/ApplyPlanStuCell.m
  38. 22 0
      LN_School/ApplyPlanStuListVC.h
  39. 126 0
      LN_School/ApplyPlanStuListVC.m
  40. 15 0
      LN_School/ApplyQuit.h
  41. 383 0
      LN_School/ApplyQuit.m
  42. 13 0
      LN_School/AssessorDetail.h
  43. 119 0
      LN_School/AssessorDetail.m
  44. 13 0
      LN_School/AssessorList.h
  45. 101 0
      LN_School/AssessorList.m
  46. 62 0
      LN_School/Assets.xcassets/AppIcon.appiconset/Contents.json
  47. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_Sch.png
  48. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneApp_60pt@2x.png
  49. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneApp_60pt@3x.png
  50. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneNotification_20pt@2x.png
  51. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneNotification_20pt@3x.png
  52. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneSpootlight5_29pt@2x.png
  53. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneSpootlight5_29pt@3x.png
  54. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneSpootlight7_40pt@2x.png
  55. BIN
      LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneSpootlight7_40pt@3x.png
  56. 21 0
      LN_School/Assets.xcassets/ApplyContact.imageset/Contents.json
  57. BIN
      LN_School/Assets.xcassets/ApplyContact.imageset/通讯录.png
  58. 6 0
      LN_School/Assets.xcassets/Contents.json
  59. 74 0
      LN_School/Assets.xcassets/LaunchImage.launchimage/Contents.json
  60. BIN
      LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS56_320x480pt.png
  61. BIN
      LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS56_320x480pt@2x.png
  62. BIN
      LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS56_320x568pt@2x.png
  63. BIN
      LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS789_320x480pt@2x.png
  64. BIN
      LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS789_320x568pt@2x.png
  65. BIN
      LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS89_375x667pt@2x.png
  66. BIN
      LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS89_414x736pt@3x.png
  67. BIN
      LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhoneXPortraitiOS11_375x812pt@3x.png
  68. 21 0
      LN_School/Assets.xcassets/defaultImg.imageset/Contents.json
  69. BIN
      LN_School/Assets.xcassets/defaultImg.imageset/WechatIMG8.jpg
  70. 6 0
      LN_School/Assets.xcassets/headImage/Contents.json
  71. 21 0
      LN_School/Assets.xcassets/headImage/portrait1.imageset/Contents.json
  72. BIN
      LN_School/Assets.xcassets/headImage/portrait1.imageset/portrait1.png
  73. 21 0
      LN_School/Assets.xcassets/headImage/portrait10.imageset/Contents.json
  74. BIN
      LN_School/Assets.xcassets/headImage/portrait10.imageset/portrait10.png
  75. 21 0
      LN_School/Assets.xcassets/headImage/portrait2.imageset/Contents.json
  76. BIN
      LN_School/Assets.xcassets/headImage/portrait2.imageset/portrait2.png
  77. 21 0
      LN_School/Assets.xcassets/headImage/portrait3.imageset/Contents.json
  78. BIN
      LN_School/Assets.xcassets/headImage/portrait3.imageset/portrait3.png
  79. 21 0
      LN_School/Assets.xcassets/headImage/portrait4.imageset/Contents.json
  80. BIN
      LN_School/Assets.xcassets/headImage/portrait4.imageset/portrait4.png
  81. 21 0
      LN_School/Assets.xcassets/headImage/portrait5.imageset/Contents.json
  82. BIN
      LN_School/Assets.xcassets/headImage/portrait5.imageset/portrait5.png
  83. 21 0
      LN_School/Assets.xcassets/headImage/portrait6.imageset/Contents.json
  84. BIN
      LN_School/Assets.xcassets/headImage/portrait6.imageset/portrait6.png
  85. 21 0
      LN_School/Assets.xcassets/headImage/portrait7.imageset/Contents.json
  86. BIN
      LN_School/Assets.xcassets/headImage/portrait7.imageset/portrait7.png
  87. 21 0
      LN_School/Assets.xcassets/headImage/portrait8.imageset/Contents.json
  88. BIN
      LN_School/Assets.xcassets/headImage/portrait8.imageset/portrait8.png
  89. 21 0
      LN_School/Assets.xcassets/headImage/portrait9.imageset/Contents.json
  90. BIN
      LN_School/Assets.xcassets/headImage/portrait9.imageset/portrait9.png
  91. 6 0
      LN_School/Assets.xcassets/login/Contents.json
  92. 21 0
      LN_School/Assets.xcassets/login/login_bg.imageset/Contents.json
  93. BIN
      LN_School/Assets.xcassets/login/login_bg.imageset/bg.png
  94. 21 0
      LN_School/Assets.xcassets/login/login_bg2.imageset/Contents.json
  95. BIN
      LN_School/Assets.xcassets/login/login_bg2.imageset/bg2.png
  96. 21 0
      LN_School/Assets.xcassets/login/login_img01.imageset/Contents.json
  97. BIN
      LN_School/Assets.xcassets/login/login_img01.imageset/img01.png
  98. 21 0
      LN_School/Assets.xcassets/login/login_img02.imageset/Contents.json
  99. BIN
      LN_School/Assets.xcassets/login/login_img02.imageset/img02.png
  100. 21 0
      LN_School/Assets.xcassets/login/login_img03.imageset/Contents.json

File diff suppressed because it is too large
+ 2289 - 0
LN_School.xcodeproj/project.pbxproj


+ 7 - 0
LN_School.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:LN_School.xcodeproj">
+   </FileRef>
+</Workspace>

BIN
LN_School.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate


+ 113 - 0
LN_School.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/LN_School.xcscheme

@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0830"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "186872AD1E9661A700E34E8E"
+               BuildableName = "LN_School.app"
+               BlueprintName = "LN_School"
+               ReferencedContainer = "container:LN_School.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      language = ""
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "186872C61E9661A700E34E8E"
+               BuildableName = "LN_SchoolTests.xctest"
+               BlueprintName = "LN_SchoolTests"
+               ReferencedContainer = "container:LN_School.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "186872D11E9661A700E34E8E"
+               BuildableName = "LN_SchoolUITests.xctest"
+               BlueprintName = "LN_SchoolUITests"
+               ReferencedContainer = "container:LN_School.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "186872AD1E9661A700E34E8E"
+            BuildableName = "LN_School.app"
+            BlueprintName = "LN_School"
+            ReferencedContainer = "container:LN_School.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Release"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      language = ""
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "186872AD1E9661A700E34E8E"
+            BuildableName = "LN_School.app"
+            BlueprintName = "LN_School"
+            ReferencedContainer = "container:LN_School.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "186872AD1E9661A700E34E8E"
+            BuildableName = "LN_School.app"
+            BlueprintName = "LN_School"
+            ReferencedContainer = "container:LN_School.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 32 - 0
LN_School.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>LN_School.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>0</integer>
+		</dict>
+	</dict>
+	<key>SuppressBuildableAutocreation</key>
+	<dict>
+		<key>186872AD1E9661A700E34E8E</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+		<key>186872C61E9661A700E34E8E</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+		<key>186872D11E9661A700E34E8E</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 19 - 0
LN_School.xcodeproj/xcuserdata/zhangrong.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>LN_School.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>10</integer>
+		</dict>
+		<key>LN_School.xcscheme_^#shared#^_</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>23</integer>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 10 - 0
LN_School.xcworkspace/contents.xcworkspacedata

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:LN_School.xcodeproj">
+   </FileRef>
+   <FileRef
+      location = "group:Pods/Pods.xcodeproj">
+   </FileRef>
+</Workspace>

+ 8 - 0
LN_School.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>

BIN
LN_School.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate


+ 17 - 0
LN_School.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Bucket
+   type = "0"
+   version = "2.0">
+   <Breakpoints>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            scope = "1"
+            stopOnStyle = "0">
+         </BreakpointContent>
+      </BreakpointProxy>
+   </Breakpoints>
+</Bucket>

BIN
LN_School.xcworkspace/xcuserdata/echoshacolee.xcuserdatad/UserInterfaceState.xcuserstate


+ 5 - 0
LN_School.xcworkspace/xcuserdata/echoshacolee.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Bucket
+   type = "0"
+   version = "2.0">
+</Bucket>

BIN
LN_School.xcworkspace/xcuserdata/zhangrong.xcuserdatad/UserInterfaceState.xcuserstate


+ 56 - 0
LN_School.xcworkspace/xcuserdata/zhangrong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Bucket
+   uuid = "9860C259-1E24-4716-8599-3A65C4CBC051"
+   type = "0"
+   version = "2.0">
+   <Breakpoints>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "AA86F52D-98F1-4688-8C45-E1B472FCC711"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "LN_School/FaceColloectView.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "199"
+            endingLineNumber = "199"
+            landmarkName = "-imgCropUpload"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "A757F652-831F-45F5-B912-3D604A8FC9F9"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "LN_School/FaceColloectView.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "206"
+            endingLineNumber = "206"
+            landmarkName = "-imgCropUpload"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "EC2FD626-630B-4EFB-9658-3F3AE215D7C8"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "LN_School/Category/UIViewController+ModalPresentationStyle.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "53"
+            endingLineNumber = "53"
+            landmarkName = "-modalPresentationStyle"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+   </Breakpoints>
+</Bucket>

+ 15 - 0
LN_School/ADView/ADLinkVC.h

@@ -0,0 +1,15 @@
+//
+//  ADLinkVC.h
+//  jiaPei
+//
+//  Created by apple on 16/4/26.
+//  Copyright © 2016年 JCZ. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ADLinkVC : UIViewController
+
+@property (nonatomic, copy) NSString *urlString;
+
+@end

+ 71 - 0
LN_School/ADView/ADLinkVC.m

@@ -0,0 +1,71 @@
+//
+//  ADLinkVC.m
+//  jiaPei
+//
+//  Created by apple on 16/4/26.
+//  Copyright © 2016年 JCZ. All rights reserved.
+//
+
+#import "ADLinkVC.h"
+#import <WebKit/WebKit.h>
+#import <MBProgressHUD.h>
+
+@interface ADLinkVC ()<WKNavigationDelegate>
+
+@end
+
+@implementation ADLinkVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.view.backgroundColor = [UIColor whiteColor];
+    
+    self.tabBarController.tabBar.hidden = YES;
+    
+    if (_urlString.length > 0) {
+        
+        [self creatWebView];
+    }
+}
+
+-(void)creatWebView
+{
+    WKWebView *view = [[WKWebView alloc] initWithFrame:kFrame];
+    view.navigationDelegate = self;
+    [self.view addSubview: view];
+    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:_urlString]];
+
+    [MBProgressHUD showHUDAddedTo:self.view animated:NO];
+    [view loadRequest:request];
+}
+
+#pragma mark -
+// 页面加载失败时调用
+- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error{
+    
+    [MBProgressHUD hideHUDForView:self.view animated:NO];
+}
+
+// 页面加载完毕时调用
+- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation{
+    
+    [MBProgressHUD hideHUDForView:self.view animated:NO];
+}
+
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 30 - 0
LN_School/ADView/AdvertisingColumn.h

@@ -0,0 +1,30 @@
+//
+//  AdvertisingColumn.h
+//  CustomTabBar
+//  Created by shikee_app05 on 14-12-30.
+//  Copyright (c) 2014年 chan kaching. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface AdvertisingColumn : UIView<UIScrollViewDelegate>{
+    
+    NSTimer *_timer;
+}
+
+//广告栏
+@property (nonatomic,strong) UIScrollView *scrollView;
+@property (nonatomic,strong) UIPageControl *pageControl;
+@property (nonatomic,strong) UILabel *imageNum;
+@property (nonatomic,retain) NSArray *imgArray;
+@property (nonatomic,retain) UIViewController *supVC;
+@property (nonatomic) NSInteger totalNum;
+
+
+- (void)setImgArray:(NSArray *)imgArray;
+- (void)openTimer;
+- (void)closeTimer;
+
+
+@end
+

+ 136 - 0
LN_School/ADView/AdvertisingColumn.m

@@ -0,0 +1,136 @@
+//
+//  AdvertisingColumn.m
+//  CustomTabBar
+//
+//  Created by shikee_app05 on 14-12-30.
+//  Copyright (c) 2014年 chan kaching. All rights reserved.
+//
+
+#import "AdvertisingColumn.h"
+#import "ADLinkVC.h"
+
+@implementation AdvertisingColumn
+
+- (id)initWithFrame:(CGRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        _scrollView = [[UIScrollView alloc]initWithFrame:frame];
+        _scrollView.delegate = self;//设置代理UIscrollViewDelegate
+        _scrollView.showsVerticalScrollIndicator = NO;//是否显示竖向滚动条
+        _scrollView.showsHorizontalScrollIndicator = NO;//是否显示横向滚动条
+        _scrollView.pagingEnabled = YES;//是否设置分页
+        _scrollView.bounces = NO;
+        
+        [self addSubview:_scrollView];
+
+        /*
+         ***容器,装载
+         */
+        UIView *containerView = [[UIView alloc]initWithFrame:CGRectMake(0, CGRectGetHeight(self.frame)-20, CGRectGetWidth(self.frame), 20)];
+        containerView.backgroundColor = [UIColor clearColor];
+        [self addSubview:containerView];
+        UIView *alphaView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(containerView.frame), CGRectGetHeight(containerView.frame))];
+        alphaView.alpha = 0.7;
+        [containerView addSubview:alphaView];
+        
+        //分页控制
+        _pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(kSize.width*0.5 - 15, 0, kSize.width, 20)];
+        _pageControl.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
+        _pageControl.currentPage = 0; //初始页码为0
+        [containerView addSubview:_pageControl];
+        
+        //图片张数
+        _imageNum = [[UILabel alloc]initWithFrame:CGRectMake(10, 0, CGRectGetWidth(containerView.frame)-20, 20)];
+        _imageNum.font = [UIFont scaleSize:15];
+        _imageNum.backgroundColor = [UIColor clearColor];
+        _imageNum.textColor = [UIColor whiteColor];
+        _imageNum.textAlignment = NSTextAlignmentRight;
+        [containerView addSubview:_imageNum];
+        
+        /*
+         ***配置定时器,自动滚动广告栏
+         */
+        _timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(timerAction:) userInfo:nil repeats:YES];
+        [[NSRunLoop  currentRunLoop] addTimer:_timer forMode:NSDefaultRunLoopMode];
+        //[_timer setFireDate:[NSDate distantFuture]];//关闭定时器
+    }
+    self.backgroundColor = [UIColor orangeColor];
+    return self;
+}
+//---------------------------------------------------------------------------------
+
+-(void)timerAction:(NSTimer *)timer{
+    if (_totalNum>1) {
+        CGPoint newOffset = _scrollView.contentOffset;
+        newOffset.x = newOffset.x + CGRectGetWidth(_scrollView.frame);
+        //    NSLog(@"newOffset.x = %f",newOffset.x);
+        if (newOffset.x > (CGRectGetWidth(_scrollView.frame) * (_totalNum-1))) {
+            newOffset.x = 0 ;
+        }
+        int index = newOffset.x / CGRectGetWidth(_scrollView.frame);   //当前是第几个视图
+        newOffset.x = index * CGRectGetWidth(_scrollView.frame);
+        _imageNum.text = [NSString stringWithFormat:@"%d / %d",index+1,(int)_totalNum];
+        [_scrollView setContentOffset:newOffset animated:YES];
+    }else{
+        [_timer setFireDate:[NSDate distantFuture]];//关闭定时器
+    }
+}
+
+#pragma mark- PageControl绑定ScrollView
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
+   
+    if ([scrollView isMemberOfClass:[UITableView class]]) {
+        
+    }else {
+        int index = fabs(scrollView.contentOffset.x) / scrollView.frame.size.width;   //当前是第几个视图
+        _pageControl.currentPage = index;
+        _imageNum.text = [NSString stringWithFormat:@"%d / %d",(int)_pageControl.currentPage+1,(int)_totalNum];
+    }
+}
+- (void)setImgArray:(NSArray *)imgArray{
+    
+    _imgArray = imgArray;
+    _totalNum = [imgArray count];
+  
+    for (int i = 0; i<_totalNum; i++) {
+        UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(i*CGRectGetWidth(_scrollView.frame), 0, CGRectGetWidth(_scrollView.frame), CGRectGetHeight(_scrollView.frame))];
+        img.contentMode = UIViewContentModeScaleAspectFill;
+        //img.image = [UIImage imageNamed:imgArray[i]];
+        [img setClipsToBounds:YES];
+        img.image = [UIImage imageNamed:imgArray[i]];
+        [img setTag:i];
+        
+        //把手势添加到指定视图上
+        [img setUserInteractionEnabled:YES];
+        UITapGestureRecognizer *tapGesture  = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(skipToADLink:)];
+        [img addGestureRecognizer:tapGesture];
+        
+        [_scrollView addSubview:img];
+    }
+    _imageNum.text = [NSString stringWithFormat:@"%d / %d",(int)_pageControl.currentPage+1,(int)_totalNum];
+    _pageControl.numberOfPages = _totalNum; //设置页数 //滚动范围 600=300*2,分2页
+    CGRect frame;
+    frame = _pageControl.frame;
+    frame.size.width = 15*_totalNum;
+    _pageControl.frame = frame;
+    
+    _scrollView.contentSize = CGSizeMake(CGRectGetWidth(_scrollView.frame)*_totalNum,CGRectGetHeight(_scrollView.frame));//滚动范围 600=300*2,分2页
+
+}
+
+//程序内跳转
+-(void)skipToADLink:(UITapGestureRecognizer *)gesture
+{
+    
+}
+
+- (void)openTimer{
+    [_timer setFireDate:[NSDate distantPast]];//开启定时器
+}
+- (void)closeTimer{
+    [_timer setFireDate:[NSDate distantFuture]];//关闭定时器
+}
+
+
+@end

+ 27 - 0
LN_School/AFView/AFDescribeObj.h

@@ -0,0 +1,27 @@
+//
+//  AFDescribeObj.h
+//  animationFrame
+//
+//  Created by pingshw on 14-5-27.
+//  Copyright (c) 2014年 pingshw. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+typedef enum
+{
+    AFAnimationStrokeEnd = 0
+}AFAnimationType;
+
+@interface AFDescribeObj : NSObject
+
+@property (nonatomic, weak) UIView *containerView;
+@property (nonatomic) AFAnimationType type;
+@property (nonatomic, strong) NSArray *shapeLayers;
+@property (nonatomic, strong) CABasicAnimation *basicAnimation;
+
+- (id)initWithType:(AFAnimationType)af_type inView:(UIView *)view;
+- (void)setStartTime:(CGFloat)af_startTime andDuration:(CGFloat)af_duration;
+- (void)addLineFrom:(CGPoint)from toPoint:(CGPoint)to color:(UIColor *)color;
+
+@end

+ 73 - 0
LN_School/AFView/AFDescribeObj.m

@@ -0,0 +1,73 @@
+//
+//  AFDescribeObj.m
+//  animationFrame
+//
+//  Created by pingshw on 14-5-27.
+//  Copyright (c) 2014年 pingshw. All rights reserved.
+//
+
+#import "AFDescribeObj.h"
+
+@implementation AFDescribeObj
+{
+    NSArray *types;
+    CGFloat startTime;
+    CGFloat duration;
+}
+@synthesize containerView;
+@synthesize type;
+@synthesize shapeLayers;
+@synthesize basicAnimation;
+
+- (id)initWithType:(AFAnimationType)af_type inView:(UIView *)view
+{
+    self = [super init];
+    
+    if (self)
+    {
+        self.type = af_type;
+        self.containerView = view;
+        
+        shapeLayers = [NSArray array];
+        
+        types = @[@"strokeEnd"];
+    }
+    
+    return self;
+}
+
+- (void)setStartTime:(CGFloat)af_startTime andDuration:(CGFloat)af_duration
+{
+    startTime = af_startTime;
+    duration = af_duration;
+    
+    basicAnimation = [CABasicAnimation animationWithKeyPath:types[type]];
+    basicAnimation.delegate = containerView;
+    basicAnimation.duration = af_duration+af_startTime;
+    basicAnimation.fromValue = [NSNumber numberWithFloat:-af_startTime/af_duration];
+    basicAnimation.toValue = [NSNumber numberWithFloat:1.0];
+}
+
+- (void)addLineFrom:(CGPoint)from toPoint:(CGPoint)to color:(UIColor *)color
+{
+    UIBezierPath *path = [UIBezierPath bezierPath];
+    [path moveToPoint:from];
+    [path addLineToPoint:to];
+    
+    CAShapeLayer *pathLayer = [CAShapeLayer layer];
+    pathLayer.frame = containerView.bounds;
+    pathLayer.path = path.CGPath;
+    pathLayer.strokeColor = color.CGColor;
+    pathLayer.lineWidth = 2.0f;
+    pathLayer.lineJoin = kCALineJoinBevel;
+    
+    [pathLayer addAnimation:basicAnimation forKey:types[type]];
+    
+    NSMutableArray *ary = [NSMutableArray arrayWithArray:shapeLayers];
+    [ary addObject:pathLayer];
+    shapeLayers = [NSArray arrayWithArray:ary];
+    
+    [containerView.layer addSublayer:pathLayer];
+}
+
+@end

+ 19 - 0
LN_School/AFView/AFView.h

@@ -0,0 +1,19 @@
+//
+//  AFView.h
+//  animationFrame
+//
+//  Created by pingshw on 14-5-27.
+//  Copyright (c) 2014年 pingshw. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface AFView : UIView
+@property (nonatomic) CGFloat min_X;
+@property (nonatomic) CGFloat min_Y;
+@property (nonatomic) CGFloat max_X;
+@property (nonatomic) CGFloat max_Y;
+@property (nonatomic, strong) NSArray *data;
+@property (nonatomic, strong) NSArray *x_labels;
+@property (nonatomic, strong) NSArray *y_labels;
+@end

+ 245 - 0
LN_School/AFView/AFView.m

@@ -0,0 +1,245 @@
+//
+//  AFView.m
+//  animationFrame
+//
+//  Created by pingshw on 14-5-27.
+//  Copyright (c) 2014年 pingshw. All rights reserved.
+//
+
+#import "AFView.h"
+#import "AFDescribeObj.h"
+
+@interface CCView : UIView
+
+@end
+
+@implementation AFView
+{
+    CGFloat w;
+    CGFloat h;
+}
+@synthesize min_Y;
+@synthesize max_Y;
+@synthesize min_X;
+@synthesize max_X;
+@synthesize data;
+@synthesize x_labels;
+@synthesize y_labels;
+
+- (id)initWithFrame:(CGRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+
+        w = frame.size.width;
+        h = frame.size.height;
+        
+        //背景色
+//        self.backgroundColor = defGreen;
+    }
+    return self;
+}
+
+- (void)setData:(NSArray *)_data
+{
+    data = [NSArray arrayWithArray:_data];
+    
+//    NSString* imgName = @"question_index_bg.png";
+    CGFloat startTime = .5f;
+//    UIImageView *iv;
+    
+    UIColor* lineCol = [UIColor whiteColor];
+    
+    CGFloat imgw = 12;
+    CGPoint e;
+    UIView* ccv;
+    if (_data.count >0) {
+        e = [data[0] CGPointValue];
+        if (max_X == min_X) {
+            //如果只有一个点 就把点放中间
+            e.x = w / 2.0;
+        }else{
+            e.x = (e.x - min_X)*0.8*w/(max_X - min_X) + 0.125*w;
+        }
+        
+        e.y = 0.875*h - (e.y - min_Y)*0.8*h/(max_Y - min_Y);
+        ccv = [[CCView alloc] initWithFrame:CGRectMake(0, 0, imgw, imgw)];
+        [self addSubview:ccv];
+        ccv.center = e;
+    }
+    
+    for (int i=1; i<data.count; i++)
+    {
+        
+        CGPoint s = [data[i-1] CGPointValue];
+        CGPoint e = [data[i] CGPointValue];
+        
+        s.x = (s.x - min_X)*0.8*w/(max_X - min_X) + 0.125*w;
+        s.y = 0.875*h - (s.y - min_Y)*0.8*h/(max_Y - min_Y);
+        e.x = (e.x - min_X)*0.8*w/(max_X - min_X) + 0.125*w;
+        e.y = 0.875*h - (e.y - min_Y)*0.8*h/(max_Y - min_Y);
+        
+        AFDescribeObj *desObj = [[AFDescribeObj alloc] initWithType:AFAnimationStrokeEnd inView:self];
+        [desObj setStartTime:startTime andDuration:1.5f/data.count];//用1.5S来画线
+        [desObj addLineFrom:s toPoint:e color:lineCol];
+        startTime += 0.5f;
+        
+        ccv = [[CCView alloc] initWithFrame:CGRectMake(0, 0, imgw, imgw)];
+        [self addSubview:ccv];
+        ccv.center = e;
+//        [ccArr addObject:ccv];
+    }
+    
+//    for (UIView* v in ccArr) {
+//        [self bringSubviewToFront:v];
+//    }
+}
+
+- (void)setX_labels:(NSArray *)_x_labels
+{
+    x_labels = [NSArray arrayWithArray:_x_labels];
+    CGFloat num = ((CGFloat)x_labels.count)-1.0;
+    if (num == 0.0) {
+        num = 2.0f;
+    }
+    CGFloat x_interval = 0.8*w/num;
+    
+    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0.9*h, w, 0.1*h)];
+    v.alpha = 0;
+    
+    for (int i=0; i<x_labels.count; i++)
+    {
+        NSString *str = x_labels[i];
+        if (x_labels.count == 1) {
+            //如果只有一个点 将label放中间
+            i ++;
+        }
+        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.025*w+i*x_interval, 0, 0.2*w, 0.1*h)];
+        label.backgroundColor = [UIColor clearColor];
+        label.textAlignment = NSTextAlignmentCenter;
+        label.font = [UIFont scaleSize:16.0];
+        label.text = str;
+        [v addSubview:label];
+        [label setTextColor:[UIColor whiteColor]];
+    }
+    
+    [self addSubview:v];
+    [UIView animateWithDuration:1.5f
+                     animations:^{
+                         v.alpha = 1;
+                     }];
+}
+
+- (void)setY_labels:(NSArray *)_y_labels
+{
+    y_labels = [NSArray arrayWithArray:_y_labels];
+    CGFloat num = ((CGFloat)y_labels.count)-1.0;
+    CGFloat y_interval = 0.8*h/num;
+    
+    CGFloat wid = .2*w;
+    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, wid, h)];
+    v.alpha = 0;
+    
+    for (int i=0; i<y_labels.count; i++)
+    {
+        NSString *str = y_labels[y_labels.count- 1 - i];
+        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 0.875*h - 6 - y_interval*i, wid, w/28.0)];
+        [label setFrame:CGRectMake(5,h*.78- h/7.0*i, wid, h/7.0)];
+        label.backgroundColor = [UIColor clearColor];
+        label.textAlignment = NSTextAlignmentLeft;
+        label.font = [UIFont scaleSize:16.0];
+        label.text = str;
+        [v addSubview:label];
+        [label setTextColor:[UIColor whiteColor]];
+        
+        CGFloat hei = h*.95;
+        UIView*v = [[UIView alloc] initWithFrame:CGRectMake(0.1*w,.08*hei+hei*1.0/y_labels.count*i, w, 1)];
+        [v setBackgroundColor:RGBA_COLOR(240, 240, 240, 1)];//[UIColor colorWithRed:240 green:240 blue:240 alpha:1]
+        [self addSubview:v];
+        
+        label.center = CGPointMake(label.center.x, v.y);
+    }
+    
+    [self addSubview:v];
+    [UIView animateWithDuration:1.5f
+                     animations:^{
+                         v.alpha = 1;
+                     }];
+}
+
+@end
+
+
+@implementation CCView
+
+-(instancetype)initWithFrame:(CGRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self setBackgroundColor:[UIColor clearColor]];
+    }
+    return self;
+}
+
+
+
+-(void)drawRect:(CGRect)rect
+{
+    //圆的线条宽度
+    CGFloat lw = 2;
+    UIColor *color = [UIColor whiteColor];
+    [color set];//设置线条颜色
+    CGFloat d = self.frame.size.width * .8;
+    CGFloat x = (self.frame.size.width - d)/2.0;
+    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(x, x, d, d)];
+    path.lineWidth = lw;
+    [path stroke];//空心的图形
+}
+@end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 13 - 0
LN_School/AboutVC.h

@@ -0,0 +1,13 @@
+//
+//  AboutVC.h
+//  jiaPei
+//
+//  Created by apple on 15/11/18.
+//  Copyright (c) 2015年 JCZ. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface AboutVC : UIViewController
+
+@end

+ 92 - 0
LN_School/AboutVC.m

@@ -0,0 +1,92 @@
+//
+//  AboutVC.m
+//  jiaPei
+//
+//  Created by apple on 15/11/18.
+//  Copyright (c) 2015年 JCZ. All rights reserved.
+//
+
+#import "AboutVC.h"
+
+@interface AboutVC ()
+
+@end
+
+@implementation AboutVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    [self myInit];
+}
+
+-(void)viewDidAppear:(BOOL)animated{
+    [super viewDidAppear:animated];
+    self.navigationController.navigationBar.alpha = 1.0;
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+}
+
+-(void)myInit
+{
+    [self setTitle:@"关于"];
+    [self goBackByNavigation];
+
+    
+    UIImageView* iv = [[UIImageView alloc] initWithFrame:CGRectMake(0, -kNavOffSet, kSize.width, kSize.height)];
+    [iv setImage:[UIImage imageNamed:@"about"]];
+    [self.view addSubview:iv];
+    
+    CGFloat x = kSize.width/3.0;
+    CGFloat w, h;
+    w = h = x;
+    
+    UIImageView *logoImg = [[UIImageView alloc] initWithFrame:CGRectMake(x, 100, w, h)];
+    logoImg.image = [UIImage imageNamed:@"defaultLogo"];
+    logoImg.layer.masksToBounds = YES;
+    logoImg.layer.cornerRadius  = 5;
+    [iv addSubview:logoImg];
+    
+    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
+    // app名称
+    NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];
+    // app版本
+    NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
+    NSString *str = [NSString stringWithFormat:@"%@(%@)",app_Name,app_Version];
+    
+    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(x - 30, 100 + h + 0, w + 60, 50)];
+    label.backgroundColor = [UIColor clearColor];
+    [label setText:str Font:24 TextColor:RGB_COLOR(116, 0, 5) Alignment:NSTextAlignmentCenter];
+    [iv addSubview:label];
+}
+
+@end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 18 - 0
LN_School/AddressBookVC.h

@@ -0,0 +1,18 @@
+//
+//  AddressBookVC.h
+//  LN_School
+//
+//  Created by apple on 2017/4/9.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import <AddressBookUI/AddressBookUI.h>
+
+@interface AddressBookVC : ABPeoplePickerNavigationController
+
+
+/** whichPage 1 通讯录首页 2不是首页
+ */
+@property (nonatomic, copy) NSString *whichPage;
+
+@end

+ 50 - 0
LN_School/AddressBookVC.m

@@ -0,0 +1,50 @@
+//
+//  AddressBookVC.m
+//  LN_School
+//
+//  Created by apple on 2017/4/9.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import "AddressBookVC.h"
+
+@interface AddressBookVC ()
+
+@end
+
+@implementation AddressBookVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+}
+
+-(void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    self.whichPage = @"1";
+}
+
+-(void)viewDidDisappear:(BOOL)animated
+{
+    [super viewDidDisappear:animated];
+    self.whichPage = @"2";
+}
+
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 32 - 0
LN_School/AllCoachCell.h

@@ -0,0 +1,32 @@
+//
+//  AllCoachCell.h
+//  jiaPei
+//
+//  Created by apple on 16/8/18.
+//  Copyright © 2016年 JCZ. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "AllCoachPlanVC.h"
+
+
+@interface AllCoachCell : UITableViewCell
+
+@property (strong, nonatomic)  UIImageView *headImg;
+
+@property (strong, nonatomic)  UILabel *nameLabel;
+
+@property (strong, nonatomic)  UILabel *carTypeLabel;
+
+@property (strong, nonatomic)  UILabel *scoreLabel;
+
+@property (strong, nonatomic)  UILabel *countLabel;
+
+@property (strong, nonatomic)  UIButton *commentBtn;
+
+@property (nonatomic, retain)  AllCoachPlanVC *superVC;
+
+@property (nonatomic, strong)  NSDictionary *dataDic;
+
+
+@end

+ 158 - 0
LN_School/AllCoachCell.m

@@ -0,0 +1,158 @@
+//
+//  AllCoachCell.m
+//  jiaPei
+//
+//  Created by apple on 16/8/18.
+//  Copyright © 2016年 JCZ. All rights reserved.
+//
+
+#import "AllCoachCell.h"
+#import "CoachOrderCommentVC.h"
+#import "CDPStarEvaluation.h"
+
+@interface AllCoachCell()
+{
+    //NSMutableArray    *starArray;
+    UIImageView       *VImg;
+    CDPStarEvaluation *starImageView;//星形评价
+}
+@end
+
+@implementation AllCoachCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+    // Configure the view for the selected state
+}
+
+-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
+{
+    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+    if (self) {
+        
+        self.backgroundColor = KBackGroundColor;
+        
+        CGFloat wid = kSize.width;
+        
+        CGFloat x,y,w,h;
+        
+        x = 10;
+        y = 10;
+        w = 80;
+        h = 90;
+        _headImg = [[UIImageView alloc] KSetxywh];
+        [_headImg borderColor:kLineColor width:2 cornorRadios:5];
+        [self.contentView addSubview:_headImg];
+        
+        x += w + 10;
+        w = wid - x - 10;
+        h = 30;
+        
+        UILabel *label;
+        NSMutableArray *labelArray = [NSMutableArray array];
+        for (int i = 0; i < 3; i ++) {
+            label = [[UILabel alloc] initWithFrame:CGRectMake(x, y + i*h, w, h)];
+            [self.contentView addSubview:label];
+            [labelArray addObject:label];
+        }
+        
+        _nameLabel    = labelArray[0];
+        _nameLabel.width -= 40;
+        _carTypeLabel = [[UILabel alloc] initWithFrame:_nameLabel.frame];
+        [self.contentView addSubview:_carTypeLabel];
+        _scoreLabel   = labelArray[1];
+        _countLabel   = labelArray[2];
+        
+        VImg = [[UIImageView alloc] initWithFrame:CGRectMake(kSize.width - 40, _nameLabel.y + 5, 20, 20)];
+        //VImg.backgroundColor = [UIColor redColor];
+        [self.contentView addSubview:VImg];
+        
+        //星级
+        y += h + 7;
+        h = 16;
+        w = h*4.98;
+        starImageView = [[CDPStarEvaluation alloc] initWithFrame:CGRectMake(x, y, w, h) onTheView:self.contentView];
+        
+        
+        NSString *titString = @"0条学员点评";
+        w = [titString sizeForFont:Font16].width + 3;
+        x = wid - w - 10;
+        y = _countLabel.y;
+        h = 30;
+        _commentBtn = [[UIButton alloc] KSetxywh];
+        [_commentBtn setTitle:@"" textColor:[UIColor colorWithRed:54/255.0 green:123/255.0 blue:193/255.0 alpha:1] font:Font16 fotState:UIControlStateNormal];
+        [_commentBtn target:self];
+        [self.contentView addSubview:_commentBtn];
+        
+        y += h/2.0 + [titString sizeForFont:Font16].height/2.0 + 1;
+        [_commentBtn addViewWithRect:CGRectMake(x, y, w, 1.5) Color:[UIColor colorWithRed:54/255.0 green:123/255.0 blue:193/255.0 alpha:1]];
+    }
+    return self;
+}
+
+-(void)setDataDic:(NSDictionary *)dataDic
+{
+    _dataDic = dataDic;
+    
+    NSString *headString = dataDic[@"PHOTO"];
+    if (!headString) {
+        headString = dataDic[@"HEADIMG"];
+    }
+    if (!headString) {
+        headString = @"";
+    }
+    _headImg.contentMode =  UIViewContentModeScaleAspectFit;
+    [_headImg sd_setImageWithURL:[NSURL URLWithString:headString] placeholderImage:[UIImage imageNamed:@"NOIMG"]];
+    
+    
+    if ([dataDic[@"VIP"] integerValue] == 0) {
+        VImg.image = [UIImage imageNamed:@"vipIcon.png"];
+    }else{
+        VImg.image = [UIImage imageNamed:@"school_name_icon.png"];
+    }
+    
+    //星级
+    [starImageView setStarWithFloat:[dataDic[@"STAR"] floatValue]/5.0];
+    
+    
+    NSString *driveAge = [NSString stringWithFormat:@"%@",dataDic[@"DRIVEAGE"]];
+    if (!driveAge || driveAge.length < 1 || [driveAge isEqualToString:@"0"]) {
+        driveAge = @"1";
+    }
+    [_nameLabel setText:dataDic[@"NAME"] Font:Font17 TextColor:KContentTextColor Alignment:NSTextAlignmentLeft];
+    NSMutableAttributedString *abs = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@    驾龄%@年",dataDic[@"NAME"],driveAge]];
+    [abs beginEditing];//FontTitle titleColor
+    //字体大小
+    [abs addAttribute:NSFontAttributeName
+                value:[UIFont scaleSize:20.0]
+                range:NSMakeRange(0, [dataDic[@"NAME"] length])];
+    //字体颜色
+    [abs addAttribute:NSForegroundColorAttributeName
+                value:KTitleColor
+                range:NSMakeRange(0, [dataDic[@"NAME"] length])];
+    _nameLabel.attributedText = abs;
+    
+    
+    [_carTypeLabel setText:[NSString stringWithFormat:@"%@  %@",[dataDic[@"SEX"] integerValue] == 1?@"男":@"女",dataDic[@"CARTYPE"]] Font:Font17 TextColor:[UIColor orangeColor] Alignment:NSTextAlignmentRight];
+    [_scoreLabel setText:[NSString stringWithFormat:@"综合评分:%@分",dataDic[@"SCORE"]] Font:Font17 TextColor:[UIColor orangeColor] Alignment:NSTextAlignmentRight];
+    [_countLabel setText:[NSString stringWithFormat:@"交易成功:%@笔",dataDic[@"ORDERNUM"]] Font:Font17 TextColor:[UIColor orangeColor] Alignment:NSTextAlignmentLeft];
+    
+    [_commentBtn setTitle:[NSString stringWithFormat:@"%@条学员评价",dataDic[@"COUNT"]] forState:UIControlStateNormal];
+}
+
+
+-(void)btnClick:(UIButton *)sender
+{
+    //跳转到评论页面
+    CoachOrderCommentVC *vc = [[CoachOrderCommentVC alloc] init];
+    vc.coachID = _dataDic[@"CI_OUT_ID"];
+    [_superVC navPushHideTabbarToVC:vc];
+}
+
+
+
+@end

+ 15 - 0
LN_School/AllCoachPlanVC.h

@@ -0,0 +1,15 @@
+//
+//  AllCoachPlanVC.h
+//  jiaPei
+//
+//  Created by apple on 16/8/18.
+//  Copyright © 2016年 JCZ. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface AllCoachPlanVC : UIViewController
+
+@property (nonatomic, copy) NSString *fenceSiteID;
+
+@end

+ 342 - 0
LN_School/AllCoachPlanVC.m

@@ -0,0 +1,342 @@
+//
+//  AllCoachPlanVC.m
+//  jiaPei
+//
+//  Created by apple on 16/8/18.
+//  Copyright © 2016年 JCZ. All rights reserved.
+//
+
+#import "AllCoachPlanVC.h"
+#import "CoachPlanVC.h"
+#import "HolderView.h"
+#import "AllCoachCell.h"
+
+
+@interface AllCoachPlanVC ()<UITableViewDelegate,UITableViewDataSource,UISearchDisplayDelegate,UISearchResultsUpdating,UISearchControllerDelegate>
+{
+    HolderView          *holderV;
+    UITableView         *mainTableView;
+    UITextField         *textField;
+    UISearchBar         *_searchBar;
+    UISearchController  *_searchController;
+    
+    BOOL             isResult;
+    NSArray          *dataArray;
+    NSMutableArray   *resultArray;
+}
+
+@end
+
+@implementation AllCoachPlanVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    
+    [self myInit];
+}
+
+-(void)viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self.view endEditing:YES];
+    
+    [MBProgressHUD hideHUDForView:self.view];
+    //这个一定要写  要不然会在退出去下一个页面时候 搜索栏有一定时间的存留
+    if (_searchController.active) {
+        _searchController.active = NO;
+        if (_searchController.searchBar && _searchController.searchBar.superview) {
+            [_searchController.searchBar removeFromSuperview];
+        }
+    }
+}
+
+-(void)myInit{
+    
+    [self setTitle:@"教练列表"];
+    [self.view setBackgroundColor:KBackGroundColor];
+    [self goBackByNavigation];
+    
+    isResult    = NO;
+    dataArray   = [NSArray array];
+    resultArray = [NSMutableArray array];
+    
+    
+    mainTableView = [[UITableView alloc] initWithFrame:kFrame style:UITableViewStylePlain];
+    mainTableView.height = kSize.height-kNavOffSet;
+    mainTableView.delegate = self;
+    mainTableView.dataSource = self;
+    mainTableView.rowHeight = 110;
+    mainTableView.tableFooterView = [UIView new];
+    [self.view addSubview:mainTableView];
+    
+    
+    
+    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
+    {
+        _searchController =[[UISearchController alloc]initWithSearchResultsController:nil];
+        _searchController.delegate = self;
+        [_searchController.searchBar sizeToFit];
+        _searchController.searchResultsUpdater = self;
+        //这个是在搜索时候将之前的隐藏 包括表 无法点击 适合弹出新的tableviewcontroller 默认yes
+        _searchController.dimsBackgroundDuringPresentation = NO;
+        //这个是搜索时候隐藏导航栏
+        _searchController.hidesNavigationBarDuringPresentation = NO;
+        _searchController.searchBar.placeholder=@"请输入教练姓名或者电话";
+//        _contactTable.sectionIndexColor = [UIColor blueColor];
+        mainTableView.tableHeaderView=_searchController.searchBar;
+        
+        //[self searchBarTextDidBeginEditing:_searchController.searchBar];
+        //不用弹出 因为没有单独的tableviewcontroller
+        //[self presentViewController:_searchController animated:YES completion:nil];
+    }else{
+        //实例化一个搜索框
+        _searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, kSize.width, 40)];
+        //设置背景色
+        [_searchBar setBarTintColor:[UIColor grayColor]];
+        //设置搜索框风格
+        [_searchBar setSearchBarStyle:UISearchBarStyleProminent];
+        
+        [_searchBar setPlaceholder:@"请输入教练姓名或者电话"];
+        //设置显示取消按钮
+        [_searchBar setShowsCancelButton:YES animated:YES];
+        //设置类型的标题
+        //[_searchBar setScopeButtonTitles:@[@"按姓名查找",@"按电话查找"]];
+        //改变索引的颜色
+        //_contactTable.sectionIndexColor = [UIColor blueColor];
+        //改变索引选中的背景颜色
+        
+        //设置表的表头
+        [mainTableView setTableHeaderView:_searchBar];
+        
+        //搜索显示器 Display显示
+        UISearchDisplayController * displayController = [[UISearchDisplayController alloc] initWithSearchBar:_searchBar contentsController:self];
+        
+        [displayController setDelegate:self];
+        [displayController setSearchResultsDataSource:self];
+        [displayController setSearchResultsDelegate:self];
+    }
+    
+    
+    
+    holderV = [[HolderView alloc] initWithFrame:mainTableView.frame];
+    [holderV freshBlock:^{
+        
+        [self getCoachInfos];
+    }];
+    [self.view addSubview:holderV];
+    
+    [self getCoachInfos];
+}
+
+-(void)btnClick:(UIButton *)sender
+{
+    [self.view endEditing:YES];
+    
+    [resultArray removeAllObjects];
+    
+    if (textField.text.length < 1) {
+        isResult = NO;
+    }else{
+        isResult = YES;
+        for (NSDictionary *dic in dataArray) {
+            
+            if ([dic[@"NAME"] containsString:textField.text] || [dic[@"CARTYPE"] containsString:textField.text] || [dic[@"SEX"] containsString:textField.text]) {
+                
+                [resultArray addObject:dic];
+            }
+        }
+    }
+    
+    [mainTableView reloadData];
+}
+
+
+
+#pragma mark    maintableview delegate
+-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    if (isResult) {
+        return resultArray.count;
+    }
+    return dataArray.count;
+}
+
+-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    AllCoachCell *cell = [tableView dequeueReusableCellWithIdentifier:@"allCoach"];
+    if (cell == nil)
+    {
+        cell = [[AllCoachCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"allCoach"];
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    }
+    
+    NSDictionary *dic;
+    if (isResult) {
+        dic = resultArray[indexPath.row];
+    }else{
+        dic = dataArray[indexPath.row];
+    }
+    cell.dataDic = dic;
+    cell.superVC = self;
+    
+    return cell;
+}
+
+-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    CoachPlanVC *vc = [[CoachPlanVC alloc] init];
+    if (isResult) {
+        vc.coachDic = resultArray[indexPath.row];
+    }else{
+        vc.coachDic = dataArray[indexPath.row];
+    }
+    
+    [self navPushHideTabbarToVC:vc];
+}
+
+-(void)scrollViewDidScroll:(UIScrollView *)scrollView
+{
+    //[self.view endEditing:YES];
+    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
+    {
+        if (_searchController.searchBar) {
+            [_searchController.searchBar endEditing:YES];
+        }
+    }else{
+        if (_searchBar) {
+            [_searchBar endEditing:YES];
+        }
+    }
+}
+
+#pragma mark SearchController Delegate
+-(void)willPresentSearchController:(UISearchController *)searchController{
+    
+    _searchController.searchBar.showsCancelButton = YES;
+    UIButton *canceLBtn = [_searchController.searchBar valueForKey:@"cancelButton"];
+    [canceLBtn setTitle:@"取消" forState:UIControlStateNormal];
+    [canceLBtn setTitleColor:defGreen forState:UIControlStateNormal];
+}
+
+#pragma mark UISearchDisplayController  代理方法
+//iOS7搜索的时候 会调用这个方法
+- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
+{
+    //NSLog(@"searchString====%@",searchString);
+    [resultArray removeAllObjects];
+    
+    if (searchString.length < 1) {
+        isResult = NO;
+    }else{
+        isResult = YES;
+        for (NSDictionary *dic in dataArray) {
+            
+            NSString *numString = @"1234567890";
+            if (searchString.length == 1 && [numString containsString:searchString]) {
+                
+                if ([dic[@"STAR"] integerValue] > [numString integerValue]) {
+                    
+                    [resultArray addObject:dic];
+                }
+                continue;
+            }
+            
+            if ([dic[@"NAME"] containsString:searchString] || [dic[@"CARTYPE"] containsString:searchString] || [dic[@"SEX"] containsString:searchString] || [dic[@"MOBILE"] containsString:searchString]) {
+                
+                [resultArray addObject:dic];
+            }
+        }
+    }
+    
+    [mainTableView reloadData];
+    
+    return YES;
+}
+//点击不同的选择范围的时候调用
+-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption
+{
+    [self searchDisplayController:controller shouldReloadTableForSearchString:_searchBar.text];
+    return YES;
+}
+
+//iOS8搜索调用的方法
+- (void)updateSearchResultsForSearchController:(UISearchController *)searchController
+{
+    [resultArray removeAllObjects];
+    
+    NSString *searchString = _searchController.searchBar.text;
+    if (searchString.length < 1) {
+        isResult = NO;
+    }else{
+        isResult = YES;
+        for (NSDictionary *dic in dataArray) {
+            
+            NSString *numString = @"1234567890";
+            if (searchString.length == 1 && [numString containsString:searchString]) {
+                
+                if ([dic[@"STAR"] intValue] >= [searchString intValue]) {
+                    [resultArray addObject:dic];
+                }
+                continue;
+            }
+            
+            if ([dic[@"NAME"] containsString:searchString] || [dic[@"CARTYPE"] containsString:searchString] || [dic[@"SEX"] containsString:searchString] || [dic[@"MOBILE"] containsString:searchString]) {
+                
+                [resultArray addObject:dic];
+            }
+        }
+    }
+    
+    [mainTableView reloadData];
+}
+
+#pragma mark       异步获取教练信息
+
+-(void)getCoachInfos{
+    
+    if (![NetManager connectedToNetWork]) {
+        showMsgUnconnect();
+        return;
+    }
+    
+    
+    NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
+    NSString *method = @"getSchPlaceCoachs";
+    if (_fenceSiteID.length > 0) {
+        [dic setValue:_fenceSiteID  forKey:@"placeId"];
+    }else {
+        [dic setValue:defUser.userDict[@"school"]  forKey:@"schid"];
+        method = @"getCoachInfos";
+    }
+
+    [MBProgressHUD showLoadToView:self.view];
+    [NetManager requestAnythingWithURL:method dictionary:dic dataArray:nil completion:^(NSDictionary *root){
+        
+        [MBProgressHUD hideHUDForView:self.view];
+        [holderV setHidden:NO];
+        if (!root) {
+            ShowMsg(@"获取教练列表失败!");
+            return;
+        }
+        if ([root[@"code"] isEqualToString:@"1"]) {
+            ShowMsg(root[@"msg"]);
+            return;
+        }
+        
+        if ([root[@"body"] count] < 1) {
+            return;
+        }
+        
+        dataArray = root[@"body"];
+        
+        [holderV setHidden:YES];
+        [mainTableView reloadData];
+    }];
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+}
+
+
+@end

+ 59 - 0
LN_School/AppDelegate.h

@@ -0,0 +1,59 @@
+//
+//  AppDelegate.h
+//  LN_School
+//
+//  Created by apple on 2017/4/5.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <BaiduMapAPI_Base/BMKMapManager.h>
+
+
+//百度地图
+#define BAIDU_APPKEY        @"sQ7eGiQTERhUmRqc0F5s5AUPgpPIwhXY"
+
+//个推
+#import "GTSDK/GeTuiSdk.h"
+// iOS10 及以上需导入 UserNotifications.framework
+#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
+#import <UserNotifications/UserNotifications.h>
+#endif
+
+// 个推开发者网站中申请App时,注册的AppId、AppKey、AppSecret
+#define kGtAppId           @"ornGF9x9HYAlJzJOFBkP65"
+#define kGtAppKey          @"yVOJ0XCzgV7EG91GSf01f7"
+#define kGtAppSecret       @"FrTFDAPpV7AXA8HJ5YN183"
+
+//bugly
+#define BUGLY_APP_ID       @"4ac82c226a"
+
+//客服
+#define CUSTOMERSERVICE_APPKEY        @"909255a0-4f40-11e7-a416-f12e96c638e0"
+
+
+@interface AppDelegate : UIResponder <UIApplicationDelegate>
+
+@property (strong, nonatomic) UIWindow *window;
+
+
+/**是否已登录*/
+@property  BOOL isLogin;
+
+//推送绑定clientID
+@property(nonatomic,copy)NSString *token;
+
+/**PureCamera 是否开启所有裁剪尺寸*/
+@property (nonatomic, assign) BOOL takePhotoAllRect;
+
+
+/**是否驾校管理员账号 (0系统管理员 1驾校管理员)Y (2驾校普通干活的)N*/
+@property  BOOL isSchool;
+
+
+//初始化页面
+- (void)initHomeVC;
+
+
+@end
+

+ 550 - 0
LN_School/AppDelegate.m

@@ -0,0 +1,550 @@
+//
+//  AppDelegate.m
+//  LN_School
+//
+//  Created by apple on 2017/4/5.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+#import "ExceptionHandle.h"
+#import "workVC.h"
+#import "statisticsVC.h"
+#import "ContactVC.h"
+#import "personVC.h"
+#import "WaringVC.h"
+#import "CheckCourseVC.h"
+
+#import "MyUINavigationController.h"
+#import "LoginViewController.h"
+#import "WelcomeVC.h"
+#import <AddressBookUI/AddressBookUI.h>
+
+//客服
+#import "QMProfileManager.h"
+//bugly腾讯bug统计
+#import <Bugly/Bugly.h>
+
+@interface AppDelegate ()<BMKGeneralDelegate,GeTuiSdkDelegate,UNUserNotificationCenterDelegate>
+{
+    NSString *pushType;
+}
+@end
+
+@implementation AppDelegate
+
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+    
+    //设置根试图
+    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
+    self.window.backgroundColor = [UIColor whiteColor];
+    
+    NSUserDefaults *ud  = [NSUserDefaults standardUserDefaults];
+    if ([[ud objectForKey:@"isFirstOpenApp"] isEqualToString:@"NO"]) {
+        LoginViewController *vc = [[LoginViewController alloc] init];
+        [self.window setRootViewController:vc];
+    }else{
+        [ud setObject:@"NO" forKey:@"isFirstOpenApp"];
+        WelcomeVC *vc = [[WelcomeVC alloc]init];
+        self.window.rootViewController = vc;
+    }
+    [self.window makeKeyAndVisible];
+
+    //版本更新检查
+    [self onCheckVersion];
+    
+    //第三方sdk启动
+    [self registerThirdSDK];
+    
+    //推送
+    /*
+     若用户点击icon启动,lauchOptions内无数据
+     */
+#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_10_0
+//这里即使不判断系统版本,后面也做了避免消息重复处理。didReceiveNotificationResponse 统一处理
+    //远程通知
+    if (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey])
+    {
+        //关于这个方法远程和进程不一样 一个是userinfo字典。一个是本地通知
+        NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
+        NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:userInfo];
+        [self remoteNotificationDealWithDic:dic];
+    }
+    
+#endif
+    
+    return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application {
+    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+    // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
+}
+
+
+- (void)applicationDidEnterBackground:(UIApplication *)application {
+    
+    UIApplicationState state = [[UIApplication sharedApplication] applicationState];
+    
+    NSLog(@"%ld",(long)state);
+    if (state  == UIApplicationStateInactive) {//---说明是锁屏
+        
+    }else if(state  == UIApplicationStateBackground){//---说明进入后台
+        
+        NSLog(@"background");
+    }
+}
+
+
+- (void)applicationWillEnterForeground:(UIApplication *)application {
+    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
+}
+
+
+- (void)applicationDidBecomeActive:(UIApplication *)application {
+    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+    //重置角标
+    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];//本地
+    [GeTuiSdk resetBadge];//同步给个推
+}
+
+
+- (void)applicationWillTerminate:(UIApplication *)application {
+    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+}
+
+#pragma mark 第三方sdk注册
+-(void)registerThirdSDK{
+    
+    //异常统计
+#ifdef DEBUG
+    //do sth1.
+#else
+    [Bugly startWithAppId:BUGLY_APP_ID];
+#endif
+    
+    //百度地图
+    // 如果要关注网络及授权验证事件,请设定     generalDelegate参数
+    BOOL ret = [[[BMKMapManager alloc]init] start:BAIDU_APPKEY  generalDelegate:self];
+    if (!ret) {
+        NSLog(@"manager start failed!");
+    }
+    
+    //客服注册
+    QMProfileManager *manger = [QMProfileManager sharedInstance];
+    [manger loadProfile:@"sinatechcn" password:@"321456"];//8062moor 123456
+    
+    
+    // 通过个推平台分配的appId、 appKey 、appSecret 启动SDK,注:该方法需要在主线程中调用
+    [GeTuiSdk startSdkWithAppId:kGtAppId appKey:kGtAppKey appSecret:kGtAppSecret delegate:self];
+    [self registerRemoteNotification];
+}
+
+#pragma mark     初始化页面
+- (void)initHomeVC
+{
+    NSArray *titleArray   = @[@"工作",@"统计",@"联系人",@"我的"];//@"消息",
+    NSArray *imageArray   = @[@"work",@"statistics",@"phonePeople",@"person"];//@"message",
+    NSArray *image_hArray = @[@"work_h",@"statistics_h",@"phonePeople_h",@"person_h"];//@"message_h",
+    NSArray *vcArray      = @[@"workVC",@"statisticsVC",@"ContactVC",@"personVC"];//@"WillDoVC",
+    
+    UITabBarController *tabBar = [[UITabBarController alloc] init];
+    
+    NSMutableArray *navArray = [NSMutableArray arrayWithCapacity:titleArray.count];
+    for (int i = 0; i < titleArray.count; i ++) {
+        
+        NSString *vcName = vcArray[i];
+        UIViewController *vc = [[NSClassFromString(vcName) alloc] init];
+        
+        UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:titleArray[i] image:[[[UIImage imageNamed:imageArray[i]] tint:[UIColor grayColor]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:image_hArray[i]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
+        vc.tabBarItem = item;
+        
+        MyUINavigationController *nav = [[MyUINavigationController alloc] initWithRootViewController:vc];
+        [navArray addObject:nav];
+       
+    }
+    
+    //统一设置tabBarItem的标题属性
+    [[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor],NSFontAttributeName:[UIFont scaleSize:14]} forState:UIControlStateNormal];
+    [[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:defGreen,NSFontAttributeName:[UIFont scaleSize:14]} forState:UIControlStateSelected];
+    
+    tabBar.viewControllers = navArray;
+    tabBar.selectedIndex = 0;
+    [self.window setRootViewController:tabBar];
+}
+
+#pragma mark 推送注册
+/** 注册 APNs */
+- (void)registerRemoteNotification {
+    /*
+     警告:Xcode8 需要手动开启"TARGETS -> Capabilities -> Push Notifications"
+     */
+    
+    if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {
+        
+        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
+        center.delegate = self;
+        [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionCarPlay) completionHandler:^(BOOL granted, NSError *_Nullable error) {
+            if (!error) {
+                NSLog(@"request authorization succeeded!(iOS >= 10.0)");
+            }
+        }];
+        
+    } else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
+        UIUserNotificationType types = (UIUserNotificationTypeAlert | UIUserNotificationTypeSound | UIUserNotificationTypeBadge);
+        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
+        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
+    }
+    
+    //远程需添加
+    [[UIApplication sharedApplication] registerForRemoteNotifications];
+}
+
+/** 远程通知注册成功委托 */
+- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
+    
+    NSString *token = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
+    token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];
+    NSLog(@"\n>>>[DeviceToken Success]:%@\n\n", token);
+    
+    // 向个推服务器注册deviceToken
+    [GeTuiSdk registerDeviceToken:token];
+}
+
+/** 远程通知注册失败委托 */
+- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
+    
+    //    NSLog(@"FailToRegisterForRemoteNotificationsWithError:%@",error);
+    
+}
+
+//iOS7.0 以后支持 APP 后台刷新数据,会回调 performFetchWithCompletionHandler 接口。为保证个推SDK的数据刷新,需在该回调接口中调用[GeTuiSdk resume]方法帮助个推 SDK 刷新数据。
+- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
+    /// Background Fetch 恢复SDK 运行
+    [GeTuiSdk resume];
+    completionHandler(UIBackgroundFetchResultNewData);
+}
+
+#pragma mark - iOS < 10
+/*
+ 1.点击通知栏,
+ 2.要求app未被杀死,如果app是terminate就去didfinishlaunch获取;这一点在ios10以后改善了
+ */
+
+//------远程推送
+//处理PNs 通知点击事件 A,统计有效用户点击数
+- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
+    
+    NSLog(@"didReceiveRemoteNotification and iOS<10");
+    // 将收到的APNs信息传给个推统计
+    [GeTuiSdk handleRemoteNotification:userInfo];
+    completionHandler(UIBackgroundFetchResultNewData);
+    
+    [self remoteNotificationDealWithDic:userInfo];
+}
+
+#pragma mark iOS > 10
+/*
+ 1.对于iOS 10 及以后版本,为处理 APNs 通知点击,统计有效用户点击数,需先添加 UNUserNotificationCenterDelegate
+ 2.app可以处于任何状态(terminate,前/后台)
+ */
+#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
+
+- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
+    
+    NSLog(@"willPresentNotification and iOS>10前台:%@", notification.request.content.userInfo);
+    
+    // 根据APP需要,判断是否要提示用户Badge、Sound、Alert(ios>10 如果需要应用在前台也展示通知)
+    completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);
+    
+}
+
+//  iOS 10: 统一获取推送的接口  点击通知进入App时触发,在该方法内统计有效用户点击数 (点击弹窗,不管app处于任何状态(terminate,前/后台)都会调用)
+- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler {
+    
+    NSLog(@"didReceiveNotificationResponse iOS>10:%@", response.notification.request.content.userInfo);
+    
+    //远程推送
+    //将收到的APNs信息传给个推统计
+    [GeTuiSdk handleRemoteNotification:response.notification.request.content.userInfo];
+    completionHandler();
+    
+    NSDictionary* userInfo = response.notification.request.content.userInfo;
+
+    [self remoteNotificationDealWithDic:userInfo];
+}
+
+#endif
+
+#pragma mark - 个推相关方法
+
+/** SDK启动成功返回cid */
+- (void)GeTuiSdkDidRegisterClient:(NSString *)clientId {
+    //个推SDK已注册,返回clientId
+    NSLog(@"\n>>>[GeTuiSdk RegisterClient]:%@\n\n", clientId);
+    
+    myDelegate.token = clientId;
+    
+    [LoginViewController saveIosMei];
+    
+}
+
+/** SDK遇到错误回调 */
+- (void)GeTuiSdkDidOccurError:(NSError *)error {
+    //个推错误报告,集成步骤发生的任何错误都在这里通知,如果集成后,无法正常收到消息,查看这里的通知。
+    NSLog(@"\n>>>[GexinSdk error]:%@\n\n", [error localizedDescription]);
+}
+
+/** SDK收到透传消息回调 *//*(个推-客户端)*/
+//只要你不是点通知窗口进来的,and发消息的时候有选择离线的情况,都会进这里---by@lee
+- (void)GeTuiSdkDidReceivePayloadData:(NSData *)payloadData andTaskId:(NSString *)taskId andMsgId:(NSString *)msgId andOffLine:(BOOL)offLine fromGtAppId:(NSString *)appId {
+    
+    //此处鉴于服务端推送消息过于频繁,做一个如果是离线消息就不要提示的判断,所以离线消息就只能通过apns获取到了,@lee 2017/10/8
+    if (offLine) {
+        return;
+    }
+    
+    //收到个推消息
+    if (payloadData) {
+        NSString * payloadMsg = [[NSString alloc] initWithBytes:payloadData.bytes length:payloadData.length encoding:NSUTF8StringEncoding];
+        NSLog(@"GeTuiSdkDidReceivepayloadMsg:%@",payloadMsg);
+        
+        //判断是否被处理过[即发送离线消息的时候,会走apns+个推sdk(有效期内)]
+        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+        NSString *oldmsgId = [userDefaults objectForKey:@"remoteNotifymsgId"];
+        if ([oldmsgId isEqualToString:msgId]) {
+            return;
+        }
+        
+        NSDictionary * dictionary = [NSJSONSerialization JSONObjectWithData:payloadData options:NSJSONReadingMutableContainers error:nil];
+        if (dictionary.count == 0) {
+            return;
+        }
+        //sdk离线情况(非前台)点开进入会因didreceive已经处理,不再重复处理弹框】
+        pushType = [NSString stringWithFormat:@"%@",dictionary[@"code"]];
+        if (pushType != 0) {
+            
+            //报警信息
+            UIAlertController *alertFind = [UIAlertController alertControllerWithTitle:dictionary[@"title"] message:dictionary[@"body"] preferredStyle:UIAlertControllerStyleAlert];
+            
+            [alertFind addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
+                
+            }]];
+            [alertFind addAction:[UIAlertAction actionWithTitle:@"前往" style:UIAlertActionStyleDefault handler:^(UIAlertAction *  action) {
+                
+                [self gotopPush];
+            }]];
+            [self.window.rootViewController presentViewController:alertFind animated:true completion:nil];
+            
+        }else{
+            
+            //其它信息
+            [self showMsgByArertWithTitle:dictionary[@"title"] message:dictionary[@"body"]];
+          
+        }
+        
+    }
+}
+
+#pragma mark 远程通知的数据处理
+-(void)remoteNotificationDealWithDic:(NSDictionary *)userInfo{
+    
+    /*
+    {
+        "_ge_" = 1;
+        "_gmid_" = "OSL-0818_bJ6zVRy8cC6JsflZOYPXO9:965f14a1051748c4a48f9db2437362e5:d48422d462d2bcf0b9d962f150b235b9";
+        "_gurl_" = "sdk.open.extension.getui.com:8123";
+        aps =     {
+            alert =         {
+                body = "\U60a8\U9a7e\U6821\U6709\U8f66\U8f86\U7ec8\U7aef\U62a5\U8b66\U9700\U89e3\U9664\Uff0c\U8bf7\U67e5\U770b\U5e76\U5904\U7406";
+                title = "\U544a\U8b66\U6d88\U606f";
+            };
+            badge = 2;
+            category = "button\U663e\U793a";
+            "content-available" = 1;
+            "mutable-content" = 1;
+            sound = default;
+        };
+        payload = "{\"title\":\"\U544a\U8b66\U6d88\U606f\",\"type\":\"1\",\"msg\":\"\U60a8\U9a7e\U6821\U6709\U8f66\U8f86\U7ec8\U7aef\U62a5\U8b66\U9700\U89e3\U9664\Uff0c\U8bf7\U67e5\U770b\U5e76\U5904\U7406\"}";
+    }
+     */
+    
+    
+    // _gmid_对应-- taskId msgId clientID
+    //这里使用msgid判断是否被处理【不过似乎应该用taskid?@lee,幻想着一个任务多条消息]
+    NSString *msgId = [userInfo[@"_gmid_"] componentsSeparatedByString:@":"][1];
+    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+    NSString *oldMsgId = [userDefaults objectForKey:@"remoteNotifymsgId"];
+    
+    if ([msgId isEqualToString:oldMsgId]) {
+        return;
+    }
+   
+    //开始处理
+    [userDefaults setObject:msgId forKey:@"remoteNotifymsgId"];
+    [userDefaults synchronize];
+    
+    NSString *jsonStr = userInfo[@"payload"];
+    if ([jsonStr length] == 0) {
+        return;
+    }
+    
+    NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
+    if (data) {
+        NSDictionary * payloadDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
+        if (payloadDic.count == 0) {
+            return;
+        }
+        pushType = [NSString stringWithFormat:@"%@",payloadDic[@"code"]];
+        if (pushType != 0) {
+            [self gotopPush];
+        }else{
+            //其它信息
+            [self showMsgByArertWithTitle:payloadDic[@"title"] message:payloadDic[@"body"]];
+        }
+    }
+}
+
+-(void)showMsgByArertWithTitle:(NSString *)title message:(NSString *)message{
+    
+    if (message.length == 0) {
+        return;
+    }
+    
+    //其它信息
+    UIAlertController *alertFind = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
+    
+    [alertFind addAction:[UIAlertAction actionWithTitle:@"我知道了" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
+        
+    }]];
+    [self.window.rootViewController presentViewController:alertFind animated:true completion:nil];
+}
+
+
+#pragma mark - 推送跳转
+
+-(void)gotopPush{
+    
+    switch ([pushType integerValue]) {
+        case 1:
+            [self goWaringVC];
+            break;
+        case 2:
+            [self goCheckCourseVC];
+            break;
+        default:
+            break;
+    }
+}
+
+-(void)goWaringVC{
+    
+    if (defUser.userDict[@"school"] == nil) {
+        
+        [self showMsgByArertWithTitle:@"提示" message:@"请在登录成功后,前往报警统计界面查看详情"];
+        return;
+    }
+    
+    WaringVC *vc = [[WaringVC alloc]init];
+    vc.isNotification = YES;
+    MyUINavigationController *nav = [[MyUINavigationController alloc]initWithRootViewController:vc];
+    [myDelegate.window setRootViewController:nav];
+}
+
+-(void)goCheckCourseVC{
+    
+    if (defUser.userDict[@"school"] == nil) {
+        
+        [self showMsgByArertWithTitle:@"提示" message:@"请在登录成功后,前往学时审核界面查看详情"];
+        return;
+    }
+    
+    CheckCourseVC *vc = [[CheckCourseVC alloc]init];
+    vc.isNotification = YES;
+    MyUINavigationController *nav = [[MyUINavigationController alloc]initWithRootViewController:vc];
+    [myDelegate.window setRootViewController:nav];
+}
+
+#pragma mark       检查新旧
+-(void)onCheckVersion
+{
+    if (![NetManager connectedToNetWork]) {
+        
+        return;
+    }
+    
+    NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
+    NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
+    
+    NSString *URL = @"http://itunes.apple.com/cn/lookup?id=1252906760";
+    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
+    [request setURL:[NSURL URLWithString:URL]];
+    [request setHTTPMethod:@"POST"];
+    
+    NSOperationQueue *queue=[NSOperationQueue mainQueue];
+    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
+        
+        //这个导致部分手机网络不好时候出现闪退情况
+        if (!data) {
+            return;
+        }
+        //如果data等于nil的时候 再去解析 会发生崩溃
+        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
+        
+        if (!dic) {
+            return;
+        }
+        NSArray *infoArray = [dic objectForKey:@"results"];
+        if ([infoArray count]) {
+            NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
+            NSString *lastVersion = [releaseInfo objectForKey:@"version"];
+            
+            NSArray *last = [lastVersion componentsSeparatedByString:@"."];
+            NSArray *current = [currentVersion componentsSeparatedByString:@"."];
+            NSComparisonResult result = [last[0] compare:current[0]];
+            if (result == NSOrderedDescending) {
+                
+                [self updateVersion];
+            }else if(result == NSOrderedSame){
+                
+                result = [last[1] compare:current[1]];
+                if (result == NSOrderedDescending) {
+                    
+                    [self updateVersion];
+                }else if(result == NSOrderedSame){
+                    
+                    result = [last[2] compare:current[2]];
+                    if (result == NSOrderedDescending) {
+                        [self updateVersion];
+                    }
+                }
+            }
+        }
+    }];
+}
+
+-(void)updateVersion
+{
+    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"更新提示" message:@"有新的版本发布,是否前往更新?" delegate:self cancelButtonTitle:@"关闭" otherButtonTitles:@"更新", nil];
+    alert.tag = 10000;
+    [alert show];
+}
+
+-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
+{
+    if (alertView.tag == 10000) {
+        
+        if (buttonIndex == 1) {
+            NSURL *url = [NSURL URLWithString:@"itms-apps://itunes.apple.com/cn/app/id1252906760?l=en&mt=8"];
+            [[UIApplication sharedApplication]openURL:url];
+        }
+    }
+    
+    
+}
+
+
+
+@end

+ 13 - 0
LN_School/ApplyContact.h

@@ -0,0 +1,13 @@
+//
+//  ApplyContact.h
+//  LN_School
+//
+//  Created by EchoShacolee on 2017/9/26.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ApplyContact : UIViewController
+
+@end

+ 63 - 0
LN_School/ApplyContact.m

@@ -0,0 +1,63 @@
+//
+//  ApplyContact.m
+//  LN_School
+//
+//  Created by EchoShacolee on 2017/9/26.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import "ApplyContact.h"
+
+
+@interface ApplyContact ()
+@property (weak, nonatomic) IBOutlet UIButton *sureBtn;
+@property (weak, nonatomic) IBOutlet UILabel *lab;
+@property (weak, nonatomic) IBOutlet UIButton *jumpBtn;
+
+@end
+
+@implementation ApplyContact
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    
+    if (kDevice_Is_iPhoneX) {
+        CGRect frame = _sureBtn.frame;
+        _sureBtn.frame = CGRectMake(frame.origin.x, frame.origin.y-SafeAreaBottomHeight, frame.size.width, frame.size.height);
+        CGRect frame2 = _jumpBtn.frame;
+        _jumpBtn.frame = CGRectMake(frame2.origin.x, kStatusHeight+10, frame2.size.width, frame2.size.height);
+    }
+    
+    _sureBtn.backgroundColor = defGreen;
+    _lab.text = @"允许优易学车访问手机通讯录,方便快捷和你的手机联系人联系。\n(通讯录信息会受到加密保护,仅存在手机本地方便用户联系,不用作上传到服务器或其它用途)";
+    
+    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
+    [ud setObject:@"YES" forKey:@"hasLaunched"];
+    [ud synchronize];
+}
+- (IBAction)jump:(id)sender {
+    [self dismissViewControllerAnimated:YES completion:nil];
+}
+- (IBAction)sure:(id)sender {
+    [self dismissViewControllerAnimated:YES completion:^{
+        UITabBarController *tabbarC = (UITabBarController *)myDelegate.window.rootViewController;
+        tabbarC.selectedIndex = 2;
+    }];
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 66 - 0
LN_School/ApplyContact.xib

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina3_5" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ApplyContact">
+            <connections>
+                <outlet property="jumpBtn" destination="7oc-vn-na7" id="N5M-iG-ABa"/>
+                <outlet property="lab" destination="4Fc-Zs-Idy" id="UEt-RH-w3M"/>
+                <outlet property="sureBtn" destination="Dow-m1-TJX" id="JoV-3O-oWG"/>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Dow-m1-TJX">
+                    <rect key="frame" x="0.0" y="430" width="320" height="50"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
+                    <color key="backgroundColor" red="0.0" green="0.50196081400000003" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                    <state key="normal" title="确定">
+                        <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                    </state>
+                    <connections>
+                        <action selector="sure:" destination="-1" eventType="touchUpInside" id="maS-ov-QoE"/>
+                    </connections>
+                </button>
+                <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7oc-vn-na7">
+                    <rect key="frame" x="230" y="30" width="80" height="30"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                    <state key="normal" title="跳过">
+                        <color key="titleColor" red="0.50196081400000003" green="0.50196081400000003" blue="0.50196081400000003" alpha="1" colorSpace="calibratedRGB"/>
+                    </state>
+                    <connections>
+                        <action selector="jump:" destination="-1" eventType="touchUpInside" id="k8M-wS-cXx"/>
+                    </connections>
+                </button>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="允许优易学车访问手机通讯录,方便快捷和你的手机联系人联系。(通讯录信息会受到加密保护,仅存在手机本地方便用户联系,不用作上传到服务器或其它用途)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Fc-Zs-Idy">
+                    <rect key="frame" x="20" y="183" width="280" height="167"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                    <color key="textColor" red="0.29803922770000002" green="0.29803922770000002" blue="0.29803922770000002" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="ApplyContact" translatesAutoresizingMaskIntoConstraints="NO" id="MUa-Yn-bU5">
+                    <rect key="frame" x="128" y="162" width="64" height="64"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                </imageView>
+            </subviews>
+            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+            <point key="canvasLocation" x="24" y="52"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="ApplyContact" width="128" height="128"/>
+    </resources>
+</document>

+ 21 - 0
LN_School/ApplyPlanStuCell.h

@@ -0,0 +1,21 @@
+//
+//  ApplyPlanStuCell.h
+//  LN_School
+//
+//  Created by apple on 2017/7/17.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ApplyPlanStuCell : UITableViewCell
+
+@property (nonatomic, strong) UIImageView *headImg;
+
+@property (nonatomic, strong) UILabel     *nameLabel;
+
+@property (nonatomic, strong) UILabel     *dateLabel;
+
+@property (nonatomic, strong) UILabel     *telLabel;
+
+@end

+ 24 - 0
LN_School/ApplyPlanStuCell.m

@@ -0,0 +1,24 @@
+//
+//  ApplyPlanStuCell.m
+//  LN_School
+//
+//  Created by apple on 2017/7/17.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import "ApplyPlanStuCell.h"
+
+@implementation ApplyPlanStuCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+@end

+ 22 - 0
LN_School/ApplyPlanStuListVC.h

@@ -0,0 +1,22 @@
+//
+//  ApplyPlanStuListVC.h
+//  LN_School
+//
+//  Created by apple on 2017/7/17.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+
+//这个页面可能要做个取消学员预约的功能 放在学员的信息按钮上  取消预约后要刷新0.0
+
+
+
+#import <UIKit/UIKit.h>
+
+@interface ApplyPlanStuListVC : UIViewController
+
+
+@property (nonatomic, strong) NSDictionary *planDic;
+
+@end
+

+ 126 - 0
LN_School/ApplyPlanStuListVC.m

@@ -0,0 +1,126 @@
+//
+//  ApplyPlanStuListVC.m
+//  LN_School
+//
+//  Created by apple on 2017/7/17.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import "ApplyPlanStuListVC.h"
+
+@interface ApplyPlanStuListVC ()<UITableViewDelegate,UITableViewDataSource>
+{
+    UITableView      *mainTableView;
+    UILabel          *noReserveLabel;
+    
+    NSArray          *dataArray;
+}
+
+@end
+
+@implementation ApplyPlanStuListVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+
+    self.title = @"已预约学员";
+    [self.view setBackgroundColor:KBackGroundColor];
+    [self goBackByNavigation];
+    
+    
+    dataArray = [NSArray array];
+    
+    
+    mainTableView = [[UITableView alloc] initWithFrame:kFrame style:UITableViewStylePlain];
+    mainTableView.delegate = self;
+    mainTableView.dataSource =self;
+    mainTableView.tableFooterView = [UIView new];
+    [self.view addSubview:mainTableView];
+    
+
+    noReserveLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 30, kSize.width - 40, 50)];
+    [noReserveLabel setText:@"暂未查询到已预约学员" Font:Font21 TextColor:KTitleColor Alignment:NSTextAlignmentCenter];
+    [self.view addSubview:noReserveLabel];
+    
+    
+    [self getReserves];
+}
+
+
+#pragma mark  tableView
+-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return dataArray.count;
+}
+
+-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    
+    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
+    if (cell == nil) {
+        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
+    }
+    
+    NSDictionary *dic = dataArray[indexPath.row];
+    cell.textLabel.text = [NSString stringWithFormat:@"%@       %@",dic[@"USERNAME"],dic[@"TEL"]];
+    
+    NSString *dateString = dic[@"CRDATE"];
+    if (dateString.length > 16) {
+        dateString = [dateString substringToIndex:16];
+    }
+    
+    cell.detailTextLabel.text = [NSString stringWithFormat:@"%@",dateString];
+    return cell;
+}
+
+
+#pragma mark       数据
+-(void)getReserves
+{
+    if (![NetManager connectedToNetWork]) {
+        return;
+    }
+    
+    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
+    [dic setObject:_planDic[@"ID"] forKey:@"planId"];
+    
+    NSString *method = @"getReserves";
+    [MBProgressHUD showLoadToView:self.view];
+    [NetManager requestAnythingWithURL:method dictionary:dic dataArray:nil completion:^(NSDictionary *root)  {
+        
+        [MBProgressHUD hideHUDForView:self.view];
+        
+        if (!root)
+        {
+            ShowMsg(@"网络请求失败");
+            return;
+        }
+        
+        if ([root[@"code"] intValue] == 1) {
+            ShowMsg(root[@"body"]);
+            return;
+        }
+        
+        dataArray = root[@"body"];
+        
+        
+        
+        if (dataArray.count > 0) {
+            
+            noReserveLabel.hidden = YES;
+        }else{
+            
+            noReserveLabel.hidden = NO;
+        }
+        
+        [mainTableView reloadData];
+    }];
+}
+
+
+
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+}
+
+
+@end

+ 15 - 0
LN_School/ApplyQuit.h

@@ -0,0 +1,15 @@
+//
+//  ApplyQuit.h
+//  LN_School
+//
+//  Created by EchoShacolee on 2017/4/20.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ApplyQuit : UIViewController
+
+@property(nonatomic,copy)BlockTypeVo blcok;
+
+@end

+ 383 - 0
LN_School/ApplyQuit.m

@@ -0,0 +1,383 @@
+//
+//  ApplyQuit.m
+//  LN_School
+//
+//  Created by EchoShacolee on 2017/4/20.
+//  Copyright © 2017年 Danson. All rights reserved.
+//
+
+#import "ApplyQuit.h"
+#import "applyCell.h"
+#import "QuitTextViewCell.h"
+
+@interface ApplyQuit ()<UITableViewDataSource,UITableViewDelegate,UITextFieldDelegate,UITextViewDelegate,UINavigationControllerDelegate>
+{
+    UITableView * _tableView;
+    
+    NSArray *_titles;
+    NSArray *_dataArr;
+    NSMutableArray *_sheetsArray;
+    NSArray *_auditUserInfo;
+    NSArray *_placeholders;
+}
+@end
+
+@implementation ApplyQuit
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.navigationItem.title = @"退学申请";
+    self.navigationController.navigationBar.translucent = NO;
+    self.view.backgroundColor = KBackGroundColor;
+    
+    [self goBackByNavigation];
+    
+    [self myInit];
+    [self getAuditUserInfo];
+}
+
+-(void)myInit{
+    
+    _titles = @[@[@"学员证件号",@"报名费用",@"已收金额",@"应退款金额"],@[@"审核人"],@[@"退学原因"]];
+    _dataArr = @[[NSMutableArray arrayWithArray:@[@"请输入学员证件号",@"请填写报名费用",@"请填写已收金额",@"请填写应退款金额"]],
+                 [NSMutableArray arrayWithArray:@[@"  >"]],//请选择审核人
+                 [NSMutableArray arrayWithArray:@[@""]]//请输入退学原因
+                 ];
+    _placeholders = [NSArray arrayWithArray:_dataArr[0]];
+    _sheetsArray = [NSMutableArray arrayWithArray:@[@"无"]];
+    _auditUserInfo = [NSArray array];
+    
+    _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, kSize.width, kSize.height-kNavOffSet) style:UITableViewStyleGrouped];
+    _tableView.dataSource = self;
+    _tableView.delegate = self;
+    _tableView.estimatedSectionHeaderHeight = 0;
+    _tableView.estimatedSectionFooterHeight = 0;
+    [self.view addSubview:_tableView];
+    
+    //
+    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kSize.width, 100)];
+    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(10, 25, kSize.width - 20, 50)];
+    btn.backgroundColor = defGreen;
+    [btn borderCornorRadios:5];
+    [btn setTitle:@"提交" textColor:[UIColor whiteColor] font:Font18 fotState:UIControlStateNormal];
+    [btn target:self Tag:1];
+    [view addSubview:btn];
+    _tableView.tableFooterView = view;
+}
+
+
+- (void)btnClick:(UIButton *)sender
+{
+    [self.view endEditing:YES];
+    [self quitSchool];
+}
+#pragma mark tableview代理方法
+-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return _titles.count;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return [_titles[section] count];
+}
+
+-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    
+    if (indexPath.section == 2) {
+        return 106;
+    }
+    return 44;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    //textView
+    if (indexPath.section == 2) {
+        QuitTextViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cellID"];
+        if (!cell) {
+            cell = [[[NSBundle mainBundle]loadNibNamed:@"QuitTextViewCell" owner:nil options:nil]lastObject];
+            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+        }
+        cell.textView.delegate = self;
+        return cell;
+    }
+    
+    applyCell* cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
+    if (cell == nil)
+    {
+        cell = [[applyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    }
+    
+    [cell.titLabel setText:[_titles[indexPath.section] objectAtIndex:indexPath.row]];
+    
+    NSArray *detailArray = _dataArr[indexPath.section];
+    
+    cell.detailField.delegate = self;
+    cell.detailField.keyboardType = UIKeyboardTypeNumberPad;
+    if (indexPath.row == 0) {
+        cell.detailField.keyboardType = UIKeyboardTypeDefault;
+    }
+    cell.detailField.tag = indexPath.section * 10 + indexPath.row;
+    
+    if (indexPath.section == 1)
+    {
+        cell.detailField.userInteractionEnabled = NO;
+        cell.detailField.textColor = defGreen;
+        cell.detailField.text = detailArray[indexPath.row];
+    }else if (indexPath.section == 0) {
+        
+        cell.detailField.userInteractionEnabled = YES;
+        if ([_placeholders containsObject:detailArray[indexPath.row]]) {
+            cell.detailField.placeholder = detailArray[indexPath.row];
+        }else {
+            cell.detailField.textColor = KTitleColor;
+            cell.detailField.text = detailArray[indexPath.row];
+        }
+    }
+    return cell;
+}
+
+-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    [self.view endEditing:YES];
+    
+    if (indexPath.section == 1)
+    {
+        if (_sheetsArray.count == 0) {
+            [self getAuditUserInfo];
+            return;
+        }
+        
+        UIAlertController * alert = [UIAlertController alertControllerWithTitle:nil message:@"审核人列表" preferredStyle:UIAlertControllerStyleActionSheet];
+        for (NSString * str in _sheetsArray) {
+            [alert addAction:[UIAlertAction actionWithTitle:str style:0 handler:^(UIAlertAction * _Nonnull action) {
+                
+                [_dataArr[1] replaceObjectAtIndex:0 withObject:str];
+                [_tableView reloadData];
+            }]];
+        }
+        [alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]];
+        [self presentViewController:alert animated:YES completion:nil];
+    }
+    
+    
+}
+
+-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
+{
+    return .1;
+}
+-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
+{
+    return 25;
+}
+
+-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
+    //NSLog(@"1");
+    [self.view endEditing:YES];
+}
+
+
+#pragma mark    textField
+-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
+{
+    
+    
+    NSIndexPath *indexpath = indexpath= [NSIndexPath indexPathForRow:textField.tag%10 inSection:textField.tag/10];;
+    
+    //获取当前cell在tableview中的位置
+    CGRect rectintableview=[_tableView rectForRowAtIndexPath:indexpath];
+    
+    [_tableView setContentOffset:CGPointMake(_tableView.contentOffset.x,rectintableview.origin.y-25) animated:YES];
+    return YES;
+}
+
+-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
+{
+    NSString *textString = textField.text;
+    
+    NSMutableArray *array = _dataArr[textField.tag/10];
+    [array replaceObjectAtIndex:textField.tag%10 withObject:textString];
+    
+    [_tableView reloadData];
+    
+    return YES;
+}
+
+-(BOOL)textFieldShouldReturn:(UITextField *)textField
+{
+    [textField endEditing:YES];
+    return YES;
+}
+
+#pragma mark textview代理
+-(BOOL)textViewShouldBeginEditing:(UITextView *)textView{
+    
+    NSIndexPath *indexpath= [NSIndexPath indexPathForRow:0 inSection:2];
+    
+    //获取当前cell在tableview中的位置
+    CGRect rectintableview=[_tableView rectForRowAtIndexPath:indexpath];
+    
+    [_tableView setContentOffset:CGPointMake(_tableView.contentOffset.x,rectintableview.origin.y-25)];
+    
+    return YES;
+}
+
+- (BOOL)textViewShouldEndEditing:(UITextView *)textView{
+    NSString * str = textView.text;
+    [_dataArr[2] replaceObjectAtIndex:0 withObject:str];
+    return YES;
+}
+
+- (void)textViewDidChange:(UITextView *)textView{
+    
+    NSString * str = textView.text;
+    [_dataArr[2] replaceObjectAtIndex:0 withObject:str];
+    return;
+}
+
+#pragma mark 网络请求
+-(void)getAuditUserInfo{
+    
+    //
+    if (![NetManager connectedToNetWork]) {
+        showMsgUnconnect();
+        return;
+    }
+    NSMutableDictionary * dic = [NSMutableDictionary new];
+    [dic setObject:defUser.userDict[@"school"] forKey:@"schoolId"];
+    [MBProgressHUD showLoadToView:self.view];
+    [NetManager requestAnythingWithURL:@"getAuditUserInfo" dictionary:dic dataArray:nil completion:^(NSDictionary *root) {
+        
+        [MBProgressHUD hideHUDForView:self.view];
+        
+        if (!root) {
+            ShowErrorMsg(@"请求失败!");
+            return;
+        }
+        if ([root[@"code"] isEqualToString:@"1"]) {
+            ShowErrorMsg(root[@"msg"]);
+            NSLog(@"%@",root[@"msg"]);
+            return;
+        }
+        
+        _auditUserInfo = root[@"body"];
+        [_sheetsArray removeAllObjects];
+        for (NSDictionary * dic in _auditUserInfo) {
+            [_sheetsArray addObject:dic[@"text"]];
+        }
+        
+        if (_auditUserInfo.count == 0) {
+            ShowMsg(@"未获取到审核人列表");
+        }
+        
+    }];
+}
+
+-(void)quitSchool{
+    
+    for (NSString *str in _dataArr[0]) {
+        if (str.length == 0 || [_placeholders containsObject:str]) {
+            ShowMsg(@"请填写完整信息");
+            return;
+        }
+    }
+    
+    for (NSString * str in _dataArr[1]) {
+        if([str isEqualToString:@"  >"])
+        {
+            ShowMsg(@"请选择审核人");
+            return;
+        }
+    }
+    
+    for (NSString *str in _dataArr[2]) {
+        if (str.length == 0) {
+            ShowMsg(@"请填写完整信息");
+            return;
+        }
+    }
+    
+    //
+    if (![NetManager connectedToNetWork]) {
+        showMsgUnconnect();
+        return;
+    }
+    
+    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
+    
+    [dic setObject:defUser.userDict[@"id"] forKey:@"userId"];
+    [dic setObject:_dataArr[0][0] forKey:@"idcard"];
+    [dic setObject:_dataArr[0][1] forKey:@"price"];
+    [dic setObject:_dataArr[0][2] forKey:@"priceIn"];
+    [dic setObject:_dataArr[0][3] forKey:@"priceOut"];
+    [dic setObject:_dataArr[2][0] forKey:@"reason"];
+    
+    NSString * auditUserId = @"";
+    for (NSDictionary * dic in _auditUserInfo) {
+        if ([dic[@"text"] isEqualToString:_dataArr[1][0]]) {
+            auditUserId = [NSString stringWithFormat:@"%@",dic[@"id"]];
+        }
+    }
+    
+    [dic setObject:auditUserId forKey:@"auditUser"];
+    
+    [MBProgressHUD showLoadToView:self.view];
+    [NetManager requestAnythingWithURL:@"quitSchool" dictionary:dic dataArray:nil completion:^(NSDictionary *root) {
+        
+        [MBProgressHUD hideHUDForView:self.view];
+        
+        if (!root) {
+            ShowErrorMsg(@"请求失败!");
+            return;
+        }
+        if ([root[@"code"] isEqualToString:@"1"]) {
+            ShowErrorMsg(root[@"msg"]);
+            NSLog(@"%@",root[@"msg"]);
+            return;
+        }
+        
+        ShowMsg(@"登记成功");
+        
+        if (self.blcok) {
+            self.blcok();
+        }
+        [self.navigationController popViewControllerAnimated:YES];
+        
+    }];
+    
+}
+
+#pragma mark - 限制输入字符
+
+-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
+    
+    if (textField.tag == 0 && range.location >= 18) {
+        return NO;
+    }
+    
+    if (textField.tag != 0 && range.location >= 5) {
+        return NO;
+    }
+    return YES;
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+ #pragma mark - Navigation
+ 
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
+ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+ // Get the new view controller using [segue destinationViewController].
+ // Pass the selected object to the new view controller.
+ }
+ */
+
+@end
+

+ 13 - 0
LN_School/AssessorDetail.h

@@ -0,0 +1,13 @@
+//
+//  AssessorDetail.h
+//  LNManager
+//
+//  Created by EchoShacolee on 2017/4/10.
+//  Copyright © 2017年 lee. All rights reserved.
+//
+
+#import "Job_Detail_base.h"
+
+@interface AssessorDetail : Job_Detail_base
+
+@end

+ 119 - 0
LN_School/AssessorDetail.m

@@ -0,0 +1,119 @@
+//
+//  AssessorDetail.m
+//  LNManager
+//
+//  Created by EchoShacolee on 2017/4/10.
+//  Copyright © 2017年 lee. All rights reserved.
+//
+
+#import "AssessorDetail.h"
+#import <TZImageManager.h>
+#import <TZImagePickerController.h>
+
+@interface AssessorDetail ()
+
+@end
+
+@implementation AssessorDetail
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    
+    self.navigationItem.title = @"考核员详情";
+    
+    [self setSegmentControllWithTitles:@[@"基本信息"] isBttomBar:NO];
+    
+    [self getRequsetData];
+
+}
+
+-(void)setData{
+    self.headImgStr = self.dataSource[@"EI_PHOTO_PATH"];
+    _keysArr = @[
+//  @[@"培训机构编号",@"EI_INSCODE"],
+                          
+                          @[@"姓名",@"EI_NAME"],
+                          @[@"性别",@"EI_SEX"],
+                          @[@"证件号",@"EI_IDCARD"],
+                          @[@"手机号码",@"EI_MOBILE"],
+                          @[@"联系地址",@"EI_ADDRESS"],
+                          
+                          @[@"驾驶证号",@"EI_DRILICENCE"],
+                          @[@"驾驶证初领日期",@"EI_FSTDRILICDATE"],
+                          @[@"职业资格证号",@"EI_OCCUPATIONNO"],
+                          @[@"职业资格等级",@"EI_OCCUPATIONLEVEL"],
+                          @[@"准驾车型",@"EI_DRIPERMITTED"],
+                          @[@"准教车型",@"EI_TEACHPERMITTED"],
+                          @[@"供职状态",@"EI_EMPLOYSTATUS"],
+                          @[@"入职日期",@"EI_HIREDATE"],
+                          @[@"离职日期",@"EI_LEAVEDATE"],
+                          @[@"全国统一编号",@"EI_EXAMNUM"],
+                          @[@"备案时间",@"EI_RECORD_DATE"]
+//                          @[@"备案状态",@"EI_RECORD_STATUS"]
+                          ];
+    
+    [super setData];
+}
+
+#pragma mark - 上传头像
+-(void)uploadHeadImg:(UIImage*)image
+{
+    
+    NSData *data = UIImagePNGRepresentation([image scaledToWid:100]);
+    NSString *imgString = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
+    
+    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
+    
+    [dic setObject:imgString forKey:@"content"];
+    [dic setObject:self.dataSource[@"EI_ID"] forKey:@"eiId"];
+    
+    NSString *method = @"uploadExaminerPhoto";
+    [MBProgressHUD showLoadToView:self.view];
+    [NetManager requestAnythingWithURL:method dictionary:dic dataArray:nil completion:^(NSDictionary *root) {
+        
+        [MBProgressHUD hideHUDForView:self.view];
+        
+        if (!root) {
+            ShowMsg(@"上传头像失败!");
+            return;
+        }
+        if ([root[@"code"] isEqualToString:@"1"]) {
+            ShowErrorMsg(root[@"msg"]);
+            return;
+        }
+        
+        //上传照片成功
+        self.headImgStr = root[@"body"];
+        ShowMsg(root[@"msg"]);
+        [_tableViews[0] reloadData];
+    }];
+    
+}
+
+-(void)getRequsetData{
+    
+    [self getDataWithDic:self.requesetDic method:@"examers" block:^(NSDictionary *successDic) {
+        
+        self.dataSource = [NSMutableDictionary dictionaryWithDictionary:successDic[@"body"][0]];
+        self.headImgStr = [NSString stringWithFormat:@"%@",self.dataSource[@"EI_PHOTO_PATH"]];
+        [_tableViews[0] reloadData];
+        
+    }];
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 13 - 0
LN_School/AssessorList.h

@@ -0,0 +1,13 @@
+//
+//  AssessorList.h
+//  LNManager
+//
+//  Created by EchoShacolee on 2017/4/8.
+//  Copyright © 2017年 lee. All rights reserved.
+//
+
+#import "SYBase_tbVC.h"
+
+@interface AssessorList : SYBase_tbVC
+
+@end

+ 101 - 0
LN_School/AssessorList.m

@@ -0,0 +1,101 @@
+//
+//  AssessorList.m
+//  LNManager
+//
+//  Created by EchoShacolee on 2017/4/8.
+//  Copyright © 2017年 lee. All rights reserved.
+//
+
+#import "AssessorList.h"
+#import "AssessorDetail.h"
+
+@interface AssessorList ()
+
+@end
+
+@implementation AssessorList
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    
+    self.navigationItem.title = @"考核员列表";
+    
+    [self getData];
+    
+    __weak typeof(self) weakSelf = self;
+    self.holdervBlock = ^{
+        [weakSelf getData];
+    };
+}
+
+-(void)getData{
+    
+    NSMutableDictionary * mDic = [[NSMutableDictionary alloc]init];
+    [mDic setValue:defUser.userDict[@"dqbh"]  forKey:@"dqbh"];
+    [mDic setValue:defUser.userDict[@"qxbh"]  forKey:@"qxbh"];
+    [mDic setValue:defUser.userDict[@"school"] forKey:@"schoolId"];
+    [mDic setValue:@"" forKey:@"name"];
+    [mDic setValue:@"" forKey:@"idcard"];
+    [mDic setValue:@"" forKey:@"mobile"];
+    
+    _requsetDic = mDic;
+    [self getDataWithDic:mDic method:@"examers" block:^(NSDictionary *successdic) {
+        NSArray * arr = successdic[@"body"];
+        if (arr.count != 0) {
+            self.holderV.hidden = YES;
+        }
+        
+        for (NSDictionary * dic in arr) {
+            if (![_sectionTitles containsObject:dic[@"ZM"]]) {
+                [_sectionTitles addObject:dic[@"ZM"]];
+                [_dataSource addObject:[NSMutableArray new]];
+            }
+        }
+        
+        //排序
+        [_sectionTitles sortUsingSelector:@selector(compare:)];
+        
+        for (NSDictionary * dic in arr) {
+            NSInteger location = [_sectionTitles indexOfObject:dic[@"ZM"]];
+            [_dataSource[location] addObject:dic];
+        }
+        
+        [self.tableView reloadData];
+    }];
+}
+
+-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cellId" forIndexPath:indexPath];
+    if ([_dataSource[indexPath.section] count] > 0) {
+        cell.textLabel.text = _dataSource[indexPath.section][indexPath.row][@"EI_NAME"];
+    }
+    return cell;
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+    
+    AssessorDetail * vc = [[AssessorDetail alloc]init];
+    vc.dataSource = _dataSource[indexPath.section][indexPath.row];
+    [_requsetDic setValue:_dataSource[indexPath.section][indexPath.row][@"EI_IDCARD"] forKey:@"idcard"];
+    vc.requesetDic = _requsetDic;
+    [self navPushHideTabbarToVC:vc];
+    
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 62 - 0
LN_School/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -0,0 +1,62 @@
+{
+  "images" : [
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "ln_SchiPhoneNotification_20pt@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "ln_SchiPhoneNotification_20pt@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "ln_SchiPhoneSpootlight5_29pt@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "ln_SchiPhoneSpootlight5_29pt@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "ln_SchiPhoneSpootlight7_40pt@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "ln_SchiPhoneSpootlight7_40pt@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "ln_SchiPhoneApp_60pt@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "ln_SchiPhoneApp_60pt@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "1024x1024",
+      "idiom" : "ios-marketing",
+      "filename" : "ln_Sch.png",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_Sch.png


BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneApp_60pt@2x.png


BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneApp_60pt@3x.png


BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneNotification_20pt@2x.png


BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneNotification_20pt@3x.png


BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneSpootlight5_29pt@2x.png


BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneSpootlight5_29pt@3x.png


BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneSpootlight7_40pt@2x.png


BIN
LN_School/Assets.xcassets/AppIcon.appiconset/ln_SchiPhoneSpootlight7_40pt@3x.png


+ 21 - 0
LN_School/Assets.xcassets/ApplyContact.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "通讯录.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
LN_School/Assets.xcassets/ApplyContact.imageset/通讯录.png


+ 6 - 0
LN_School/Assets.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 74 - 0
LN_School/Assets.xcassets/LaunchImage.launchimage/Contents.json

@@ -0,0 +1,74 @@
+{
+  "images" : [
+    {
+      "extent" : "full-screen",
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "filename" : "定格广告页iPhoneXPortraitiOS11_375x812pt@3x.png",
+      "minimum-system-version" : "11.0",
+      "subtype" : "2436h",
+      "scale" : "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "filename" : "定格广告页iPhonePortraitiOS89_414x736pt@3x.png",
+      "minimum-system-version" : "8.0",
+      "subtype" : "736h",
+      "scale" : "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "filename" : "定格广告页iPhonePortraitiOS89_375x667pt@2x.png",
+      "minimum-system-version" : "8.0",
+      "subtype" : "667h",
+      "scale" : "2x"
+    },
+    {
+      "extent" : "full-screen",
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "filename" : "定格广告页iPhonePortraitiOS789_320x480pt@2x.png",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "extent" : "full-screen",
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "filename" : "定格广告页iPhonePortraitiOS789_320x568pt@2x.png",
+      "minimum-system-version" : "7.0",
+      "subtype" : "retina4",
+      "scale" : "2x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "filename" : "定格广告页iPhonePortraitiOS56_320x480pt.png",
+      "orientation" : "portrait",
+      "scale" : "1x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "filename" : "定格广告页iPhonePortraitiOS56_320x480pt@2x.png",
+      "orientation" : "portrait",
+      "scale" : "2x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "filename" : "定格广告页iPhonePortraitiOS56_320x568pt@2x.png",
+      "subtype" : "retina4",
+      "orientation" : "portrait",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS56_320x480pt.png


BIN
LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS56_320x480pt@2x.png


BIN
LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS56_320x568pt@2x.png


BIN
LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS789_320x480pt@2x.png


BIN
LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS789_320x568pt@2x.png


BIN
LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS89_375x667pt@2x.png


BIN
LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhonePortraitiOS89_414x736pt@3x.png


BIN
LN_School/Assets.xcassets/LaunchImage.launchimage/定格广告页iPhoneXPortraitiOS11_375x812pt@3x.png


+ 21 - 0
LN_School/Assets.xcassets/defaultImg.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/defaultImg.imageset/WechatIMG8.jpg


+ 6 - 0
LN_School/Assets.xcassets/headImage/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait1.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait1.imageset/portrait1.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait10.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait10.imageset/portrait10.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait2.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait2.imageset/portrait2.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait3.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait3.imageset/portrait3.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait4.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait4.imageset/portrait4.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait5.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait5.imageset/portrait5.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait6.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait6.imageset/portrait6.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait7.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait7.imageset/portrait7.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait8.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait8.imageset/portrait8.png


+ 21 - 0
LN_School/Assets.xcassets/headImage/portrait9.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/headImage/portrait9.imageset/portrait9.png


+ 6 - 0
LN_School/Assets.xcassets/login/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 21 - 0
LN_School/Assets.xcassets/login/login_bg.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/login/login_bg.imageset/bg.png


+ 21 - 0
LN_School/Assets.xcassets/login/login_bg2.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/login/login_bg2.imageset/bg2.png


+ 21 - 0
LN_School/Assets.xcassets/login/login_img01.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/login/login_img01.imageset/img01.png


+ 21 - 0
LN_School/Assets.xcassets/login/login_img02.imageset/Contents.json

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

BIN
LN_School/Assets.xcassets/login/login_img02.imageset/img02.png


+ 21 - 0
LN_School/Assets.xcassets/login/login_img03.imageset/Contents.json

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

Some files were not shown because too many files changed in this diff