ソースを参照

首页课程 UI

Steven 3 年 前
コミット
bf4f0d89b2
100 ファイル変更2361 行追加75 行削除
  1. 74 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/Contents.json
  4. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_down.imageset/Contents.json
  5. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_down.imageset/sort_down@2x.png
  6. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_down.imageset/sort_down@3x.png
  7. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_up.imageset/Contents.json
  8. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_up.imageset/sort_up@2x.png
  9. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_up.imageset/sort_up@3x.png
  10. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/Style/instrument_shadow.imageset/Contents.json
  11. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/Style/instrument_shadow.imageset/instrument_shadow@2x.png
  12. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/Style/instrument_shadow.imageset/instrument_shadow@3x.png
  13. 28 2
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h
  14. 51 2
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m
  15. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Define/Common.h
  16. 8 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch
  17. 5 4
      KulexiuForTeacher/KulexiuForTeacher/Common/ThirdPart/MSSBrowse/MSSBrowseBaseViewController.m
  18. 14 13
      KulexiuForTeacher/KulexiuForTeacher/Common/ThirdPart/MSSBrowse/MSSBrowseNetworkViewController.m
  19. 3 1
      KulexiuForTeacher/KulexiuForTeacher/Common/ThirdPart/SDCycleScrollView/SDCycleScrollView.m
  20. 20 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h
  21. 20 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.m
  22. 130 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m
  23. 29 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/AccompanyLessonModel.h
  24. 162 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/AccompanyLessonModel.m
  25. 27 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.h
  26. 148 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.m
  27. 21 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.h
  28. 494 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m
  29. 40 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonSearchView.h
  30. 98 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonSearchView.m
  31. 168 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonSearchView.xib
  32. 21 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.h
  33. 90 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.m
  34. 198 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.xib
  35. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveLessionBodyView.h
  36. 20 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveLessionBodyView.m
  37. 19 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopCell.h
  38. 36 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopCell.m
  39. 51 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopCell.xib
  40. 26 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopView.h
  41. 127 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopView.m
  42. 9 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/CreateStyle/View/InstrumentChooseCell.xib
  43. 0 10
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.m
  44. 30 11
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m
  45. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.m
  46. 11 11
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.xib
  47. 5 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageVideoView.m
  48. 1 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/View/VeriCheckView.m
  49. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoListBodyView.m
  50. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/Assets.car
  51. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/KulexiuForTeacher
  52. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/MinePageHeadView.nib
  53. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/MineVideoCell.nib
  54. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/PasswordBodyView.nib
  55. 47 14
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/_CodeSignature/CodeResources
  56. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/SDWebImage/libSDWebImage.a
  57. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/Whiteboard/libWhiteboard.a
  58. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/libPods-KulexiuForTeacher.a
  59. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphoneos/KulexiuForTeacher.build/KulexiuForTeacher-project-headers.hmap
  60. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/KulexiuForTeacher-project-headers.hmap
  61. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarCell.d
  62. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarCollectionView.d
  63. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarConfig.d
  64. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarDate.d
  65. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarHeader.d
  66. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarHelper.d
  67. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarManager.d
  68. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarPicker.d
  69. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AboutUsBodyView.d
  70. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AboutUsViewController.d
  71. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AccompanyCourseCell.d
  72. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AccompanyDownloadCallbackMessage.d
  73. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AccompanyDownloadMessage.d
  74. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AddressViewController.d
  75. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AnimationContoller.d
  76. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AppDelegate.d
  77. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ApplyBottomView.d
  78. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ApplyMemberModel.d
  79. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ApplySpeechMessage.d
  80. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ApplySpeechResultMessage.d
  81. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ArchiveTools.d
  82. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AssistantTransferMessage.d
  83. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AudioPlayManager.d
  84. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AudioRecordManager.d
  85. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AuthDisplayView.d
  86. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/BaseViewController.d
  87. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CALayer+Color.d
  88. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CALayer+Layout.d
  89. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CREmojiCollectionCell.d
  90. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatAddressBodyView.d
  91. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatAddressHeaderView.d
  92. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatAddressViewController.d
  93. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatAreaView.d
  94. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatComplainBodyView.d
  95. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatNavView.d
  96. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatViewController.d
  97. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ClassSongMessage.d
  98. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ClassTitleView.d
  99. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ClassTitleView.o
  100. 1 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ClassVideoListCell.d

+ 74 - 0
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -495,6 +495,12 @@
 		BCC03F8C280526B300461B7C /* MyStyleVideoChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F8B280526B300461B7C /* MyStyleVideoChooseView.m */; };
 		BCC03F8F2805484200461B7C /* StyleVideoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F8D2805484200461B7C /* StyleVideoModel.m */; };
 		BCC03F9228054DC300461B7C /* KSVideoHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F9128054DC300461B7C /* KSVideoHelper.m */; };
+		BCC03F95280562F700461B7C /* MyLessonBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F94280562F700461B7C /* MyLessonBodyView.m */; };
+		BCC03F98280567CC00461B7C /* MyLessonSearchView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F97280567CC00461B7C /* MyLessonSearchView.m */; };
+		BCC03F9A2805681100461B7C /* MyLessonSearchView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC03F992805681100461B7C /* MyLessonSearchView.xib */; };
+		BCC03F9E280579A500461B7C /* MyLiveCourseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F9C280579A500461B7C /* MyLiveCourseCell.m */; };
+		BCC03F9F280579A500461B7C /* MyLiveCourseCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC03F9D280579A500461B7C /* MyLiveCourseCell.xib */; };
+		BCC03FA228057D6700461B7C /* MyLiveLessionBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03FA128057D6700461B7C /* MyLiveLessionBodyView.m */; };
 		BCC9F35527F5F4FD00647449 /* LiveSeatMember.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC9F35427F5F4FD00647449 /* LiveSeatMember.m */; };
 		BCC9F40727F69BD200647449 /* SealClass.strings in Resources */ = {isa = PBXBuildFile; fileRef = BCC9F35C27F69BD100647449 /* SealClass.strings */; };
 		BCC9F40927F69BD200647449 /* ZoomControl.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC9F36427F69BD100647449 /* ZoomControl.m */; };
@@ -563,6 +569,12 @@
 		BCC9F44927F69BD200647449 /* ClassroomService.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC9F40027F69BD200647449 /* ClassroomService.m */; };
 		BCC9F44A27F69BD200647449 /* RTCService.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC9F40227F69BD200647449 /* RTCService.m */; };
 		BCC9F44B27F69BD200647449 /* KSIMService.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC9F40627F69BD200647449 /* KSIMService.m */; };
+		BCDB0931280583C100D0BDAD /* NSObject+KSDateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDB0930280583C100D0BDAD /* NSObject+KSDateFormatter.m */; };
+		BCDB093428058A8700D0BDAD /* LiveLessonModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDB093228058A8700D0BDAD /* LiveLessonModel.m */; };
+		BCDB093728058BBE00D0BDAD /* AccompanyLessonModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDB093628058BBE00D0BDAD /* AccompanyLessonModel.m */; };
+		BCDB093E2805C0EF00D0BDAD /* NewClassPopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDB093A2805C0ED00D0BDAD /* NewClassPopCell.m */; };
+		BCDB093F2805C0EF00D0BDAD /* NewClassPopCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCDB093B2805C0EE00D0BDAD /* NewClassPopCell.xib */; };
+		BCDB09402805C0EF00D0BDAD /* NewClassPopView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDB093D2805C0EF00D0BDAD /* NewClassPopView.m */; };
 		BCE6A07F27F7FACA00C97704 /* UIView+SubViewExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BCE6A07E27F7FACA00C97704 /* UIView+SubViewExtension.m */; };
 		BCE6A08527F81B4200C97704 /* MinePageSubmitView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCE6A08427F81B4200C97704 /* MinePageSubmitView.m */; };
 		BCE6A08727F81B4D00C97704 /* MinePageSubmitView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCE6A08627F81B4D00C97704 /* MinePageSubmitView.xib */; };
@@ -1504,6 +1516,16 @@
 		BCC03F8E2805484200461B7C /* StyleVideoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleVideoModel.h; sourceTree = "<group>"; };
 		BCC03F9028054DC300461B7C /* KSVideoHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSVideoHelper.h; sourceTree = "<group>"; };
 		BCC03F9128054DC300461B7C /* KSVideoHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSVideoHelper.m; sourceTree = "<group>"; };
+		BCC03F93280562F700461B7C /* MyLessonBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyLessonBodyView.h; sourceTree = "<group>"; };
+		BCC03F94280562F700461B7C /* MyLessonBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyLessonBodyView.m; sourceTree = "<group>"; };
+		BCC03F96280567CC00461B7C /* MyLessonSearchView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyLessonSearchView.h; sourceTree = "<group>"; };
+		BCC03F97280567CC00461B7C /* MyLessonSearchView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyLessonSearchView.m; sourceTree = "<group>"; };
+		BCC03F992805681100461B7C /* MyLessonSearchView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyLessonSearchView.xib; sourceTree = "<group>"; };
+		BCC03F9B280579A500461B7C /* MyLiveCourseCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyLiveCourseCell.h; sourceTree = "<group>"; };
+		BCC03F9C280579A500461B7C /* MyLiveCourseCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyLiveCourseCell.m; sourceTree = "<group>"; };
+		BCC03F9D280579A500461B7C /* MyLiveCourseCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyLiveCourseCell.xib; sourceTree = "<group>"; };
+		BCC03FA028057D6700461B7C /* MyLiveLessionBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyLiveLessionBodyView.h; sourceTree = "<group>"; };
+		BCC03FA128057D6700461B7C /* MyLiveLessionBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyLiveLessionBodyView.m; sourceTree = "<group>"; };
 		BCC9F35327F5F4FD00647449 /* LiveSeatMember.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LiveSeatMember.h; sourceTree = "<group>"; };
 		BCC9F35427F5F4FD00647449 /* LiveSeatMember.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LiveSeatMember.m; sourceTree = "<group>"; };
 		BCC9F35B27F69BD100647449 /* KSRemoteUserManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRemoteUserManager.h; sourceTree = "<group>"; };
@@ -1642,6 +1664,17 @@
 		BCC9F40327F69BD200647449 /* RTCService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCService.h; sourceTree = "<group>"; };
 		BCC9F40527F69BD200647449 /* KSIMService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSIMService.h; sourceTree = "<group>"; };
 		BCC9F40627F69BD200647449 /* KSIMService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSIMService.m; sourceTree = "<group>"; };
+		BCDB092F280583C000D0BDAD /* NSObject+KSDateFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+KSDateFormatter.h"; sourceTree = "<group>"; };
+		BCDB0930280583C100D0BDAD /* NSObject+KSDateFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+KSDateFormatter.m"; sourceTree = "<group>"; };
+		BCDB093228058A8700D0BDAD /* LiveLessonModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveLessonModel.m; sourceTree = "<group>"; };
+		BCDB093328058A8700D0BDAD /* LiveLessonModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveLessonModel.h; sourceTree = "<group>"; };
+		BCDB093528058BBD00D0BDAD /* AccompanyLessonModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccompanyLessonModel.h; sourceTree = "<group>"; };
+		BCDB093628058BBE00D0BDAD /* AccompanyLessonModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AccompanyLessonModel.m; sourceTree = "<group>"; };
+		BCDB09392805C0EC00D0BDAD /* NewClassPopView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewClassPopView.h; sourceTree = "<group>"; };
+		BCDB093A2805C0ED00D0BDAD /* NewClassPopCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewClassPopCell.m; sourceTree = "<group>"; };
+		BCDB093B2805C0EE00D0BDAD /* NewClassPopCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NewClassPopCell.xib; sourceTree = "<group>"; };
+		BCDB093C2805C0EE00D0BDAD /* NewClassPopCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewClassPopCell.h; sourceTree = "<group>"; };
+		BCDB093D2805C0EF00D0BDAD /* NewClassPopView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewClassPopView.m; sourceTree = "<group>"; };
 		BCE6A07D27F7FACA00C97704 /* UIView+SubViewExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+SubViewExtension.h"; sourceTree = "<group>"; };
 		BCE6A07E27F7FACA00C97704 /* UIView+SubViewExtension.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+SubViewExtension.m"; sourceTree = "<group>"; };
 		BCE6A08327F81B4200C97704 /* MinePageSubmitView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MinePageSubmitView.h; sourceTree = "<group>"; };
@@ -2230,6 +2263,8 @@
 		277930C527E30FBD0010E277 /* Category */ = {
 			isa = PBXGroup;
 			children = (
+				BCDB092F280583C000D0BDAD /* NSObject+KSDateFormatter.h */,
+				BCDB0930280583C100D0BDAD /* NSObject+KSDateFormatter.m */,
 				2779331327E310A70010E277 /* UIView+Animation.h */,
 				2779331427E310A90010E277 /* UIView+Animation.m */,
 				2779331527E310AA0010E277 /* UIView+ShowProgress.h */,
@@ -3482,6 +3517,10 @@
 		BC0167A227FC06C300AE66A1 /* Model */ = {
 			isa = PBXGroup;
 			children = (
+				BCDB093328058A8700D0BDAD /* LiveLessonModel.h */,
+				BCDB093228058A8700D0BDAD /* LiveLessonModel.m */,
+				BCDB093528058BBD00D0BDAD /* AccompanyLessonModel.h */,
+				BCDB093628058BBE00D0BDAD /* AccompanyLessonModel.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -3489,6 +3528,17 @@
 		BC0167A327FC06C300AE66A1 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				BCDB09382805C0DD00D0BDAD /* PopView */,
+				BCC03F93280562F700461B7C /* MyLessonBodyView.h */,
+				BCC03F94280562F700461B7C /* MyLessonBodyView.m */,
+				BCC03F96280567CC00461B7C /* MyLessonSearchView.h */,
+				BCC03F97280567CC00461B7C /* MyLessonSearchView.m */,
+				BCC03F992805681100461B7C /* MyLessonSearchView.xib */,
+				BCC03F9B280579A500461B7C /* MyLiveCourseCell.h */,
+				BCC03F9C280579A500461B7C /* MyLiveCourseCell.m */,
+				BCC03F9D280579A500461B7C /* MyLiveCourseCell.xib */,
+				BCC03FA028057D6700461B7C /* MyLiveLessionBodyView.h */,
+				BCC03FA128057D6700461B7C /* MyLiveLessionBodyView.m */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -4136,6 +4186,18 @@
 			path = IM;
 			sourceTree = "<group>";
 		};
+		BCDB09382805C0DD00D0BDAD /* PopView */ = {
+			isa = PBXGroup;
+			children = (
+				BCDB093C2805C0EE00D0BDAD /* NewClassPopCell.h */,
+				BCDB093A2805C0ED00D0BDAD /* NewClassPopCell.m */,
+				BCDB093B2805C0EE00D0BDAD /* NewClassPopCell.xib */,
+				BCDB09392805C0EC00D0BDAD /* NewClassPopView.h */,
+				BCDB093D2805C0EF00D0BDAD /* NewClassPopView.m */,
+			);
+			path = PopView;
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
@@ -4279,6 +4341,7 @@
 				BCE6A09B27F83E8E00C97704 /* MinePageVideoCell.xib in Resources */,
 				2723B68E27F1686100E0B90B /* HomeNavView.xib in Resources */,
 				BC5EB5C62804087700B4A3B0 /* MyStyleBottomView.xib in Resources */,
+				BCDB093F2805C0EF00D0BDAD /* NewClassPopCell.xib in Resources */,
 				275E3DE927F4679E0010EC30 /* LiveRoomHeadView.xib in Resources */,
 				27D83F4E27F3EC2100062476 /* CreateLiveBodyView.xib in Resources */,
 				27F9030827E86CCB00C08A19 /* DeviceCheckView.xib in Resources */,
@@ -4306,6 +4369,8 @@
 				BCE6A08727F81B4D00C97704 /* MinePageSubmitView.xib in Resources */,
 				27A54CF927E9BD8B007309A3 /* FeedbackBodyView.xib in Resources */,
 				BCB6340527F6A2F000ACFDCF /* tock.wav in Resources */,
+				BCC03F9A2805681100461B7C /* MyLessonSearchView.xib in Resources */,
+				BCC03F9F280579A500461B7C /* MyLiveCourseCell.xib in Resources */,
 				BCB6340627F6A2F000ACFDCF /* tick.wav in Resources */,
 				2755C07127EC7F21007D9070 /* ChatComplainBodyView.xib in Resources */,
 				BC5EB5B7280402CB00B4A3B0 /* MyStyleInstrumentCell.xib in Resources */,
@@ -4440,6 +4505,7 @@
 				2779323927E30FC30010E277 /* LLCollectionViewCell.m in Sources */,
 				2779326A27E30FD80010E277 /* FSCalendarWeekdayView.m in Sources */,
 				2723B69127F1803F00E0B90B /* HomeHeadView.m in Sources */,
+				BCDB0931280583C100D0BDAD /* NSObject+KSDateFormatter.m in Sources */,
 				277931EB27E30FC20010E277 /* NSArray+zh_SafeAccess.m in Sources */,
 				BCB633F527F6A18200ACFDCF /* NewClassRoomViewController.m in Sources */,
 				277932B627E30FFE0010E277 /* UIView+SDExtension.m in Sources */,
@@ -4451,6 +4517,7 @@
 				2779320827E30FC30010E277 /* KSAudioRecordManager.m in Sources */,
 				27F9CAFB27EC1AF3003E0FE4 /* ContractListCell.m in Sources */,
 				BCC9F44227F69BD200647449 /* TurnPageMessage.m in Sources */,
+				BCDB093728058BBE00D0BDAD /* AccompanyLessonModel.m in Sources */,
 				27FC2F6627F1BBFE00FCC239 /* MyMusicViewController.m in Sources */,
 				277D432827E9A48000107DB7 /* ModifyPhoneChangeController.m in Sources */,
 				275FA56227F31AE100EB6240 /* MinePageHeadView.m in Sources */,
@@ -4495,6 +4562,7 @@
 				275FA19727E723D700CFEA2E /* KSLocalWebViewController.m in Sources */,
 				277931F827E30FC20010E277 /* UIImageView+CornerRadius.m in Sources */,
 				277932E627E310070010E277 /* TZVideoPlayerController.m in Sources */,
+				BCDB093E2805C0EF00D0BDAD /* NewClassPopCell.m in Sources */,
 				BCC9F41B27F69BD200647449 /* RecentSharedWhiteboardCell.m in Sources */,
 				BCB635B627F6FB0A00ACFDCF /* SeatTipsView.m in Sources */,
 				277935EB27E32A930010E277 /* KSBaseWKWebViewController.m in Sources */,
@@ -4514,7 +4582,9 @@
 				27F9CAF727EC1A16003E0FE4 /* UITableView+SCIndexView.m in Sources */,
 				275E3DC827F460720010EC30 /* KSLiveChatroomKickOut.m in Sources */,
 				2779361B27E32C3A0010E277 /* MineViewController.m in Sources */,
+				BCC03F95280562F700461B7C /* MyLessonBodyView.m in Sources */,
 				BCE6A09027F823BE00C97704 /* LiveCourseCell.m in Sources */,
+				BCC03F98280567CC00461B7C /* MyLessonSearchView.m in Sources */,
 				27A54D0127E9CD38007309A3 /* AddressViewController.m in Sources */,
 				BCE6A07F27F7FACA00C97704 /* UIView+SubViewExtension.m in Sources */,
 				BCA9CE5027FD954800D558C6 /* AccompanyRemarkCell.m in Sources */,
@@ -4569,6 +4639,7 @@
 				2779362627E339D20010E277 /* KSTouchCapturingWindow.m in Sources */,
 				277931F727E30FC20010E277 /* UIScreen+Extend.m in Sources */,
 				2779322627E30FC30010E277 /* KSMessageInputView.m in Sources */,
+				BCDB09402805C0EF00D0BDAD /* NewClassPopView.m in Sources */,
 				27F9CAF627EC1A16003E0FE4 /* SCIndexView.m in Sources */,
 				2779320E27E30FC30010E277 /* UIColor+Hex.m in Sources */,
 				2779331727E310AA0010E277 /* UIView+Animation.m in Sources */,
@@ -4738,6 +4809,7 @@
 				BCB635B927F722E800ACFDCF /* KSDocumentViewController.m in Sources */,
 				275E3DE727F4677F0010EC30 /* LiveRoomHeadView.m in Sources */,
 				2779320427E30FC30010E277 /* KSHoldButton.m in Sources */,
+				BCC03FA228057D6700461B7C /* MyLiveLessionBodyView.m in Sources */,
 				2779320627E30FC30010E277 /* UIView+ValueAdd.m in Sources */,
 				BCA9CE1527FD339400D558C6 /* AuthDisplayView.m in Sources */,
 				2779329B27E30FEB0010E277 /* UIView+MSSLayout.m in Sources */,
@@ -4763,6 +4835,7 @@
 				27D5D5D127EDBA9400B4720C /* NoticeEditBodyView.m in Sources */,
 				BCC9F42D27F69BD200647449 /* UIView+MBProgressHUD.m in Sources */,
 				2779322927E30FC30010E277 /* sortButton.m in Sources */,
+				BCDB093428058A8700D0BDAD /* LiveLessonModel.m in Sources */,
 				275E8A7A27E18F2800DD3F6E /* main.m in Sources */,
 				2779329027E30FEB0010E277 /* MSSBrowseCollectionViewCell.m in Sources */,
 				277D432227E99EAC00107DB7 /* VeriCheckView.m in Sources */,
@@ -4886,6 +4959,7 @@
 				275E3DA327F441EC0010EC30 /* KSEnterLiveroomManager.m in Sources */,
 				2779323327E30FC30010E277 /* StateView.m in Sources */,
 				275E3DE427F467410010EC30 /* KSChatInputBarControl.m in Sources */,
+				BCC03F9E280579A500461B7C /* MyLiveCourseCell.m in Sources */,
 				27D5D5D527EDBCB900B4720C /* GroupNoticeModel.m in Sources */,
 				BCC9F41527F69BD200647449 /* MessageModel.m in Sources */,
 			);

BIN
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate


+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/Contents.json

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

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_down.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_down.imageset/sort_down@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_down.imageset/sort_down@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_up.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_up.imageset/sort_up@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_up.imageset/sort_up@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/Style/instrument_shadow.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/Style/instrument_shadow.imageset/instrument_shadow@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/Style/instrument_shadow.imageset/instrument_shadow@3x.png


+ 28 - 2
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h

@@ -422,16 +422,16 @@ NS_ASSUME_NONNULL_BEGIN
 
 #pragma mark ----- 视频课相关
 // /api-teacher/videoLessonGroup/page
-// 视频课列表查询
 
 /// 视频课列表查询
 /// @param post post
+/// @param lessonSubject 课程声部
 /// @param auditStatus 审核状态 (0:待审核;1:通过;2:未通过)
 /// @param pageNo 分页
 /// @param pageSize 条数
 /// @param success 成功
 /// @param faliure 失败
-+ (void)videoLessonListRequest:(NSString *)post auditStatus:(NSString *)auditStatus pageNo:(NSInteger)pageNo pageSize:(NSInteger)pageSize success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
++ (void)videoLessonListRequest:(NSString *)post lessonSubject:(NSString *_Nullable)lessonSubject auditStatus:(NSString *)auditStatus pageNo:(NSInteger)pageNo pageSize:(NSInteger)pageSize success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 
 #pragma mark ---- 老师曲谱列表查询
 // /api-admin/music/sheet/list
@@ -480,5 +480,31 @@ NS_ASSUME_NONNULL_BEGIN
 /// @param success 成功
 /// @param faliure 失败
 + (void)LiveCourseGroupRequest:(NSString *)post groupStatus:(NSString *)groupStatus page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
+
+#pragma mark ----- 课程查询
+// /api-teacher/courseSchedule/myCourse
+/// 我的课程-陪练课
+/// @param post post
+/// @param classDate 月份 yyyy-MM
+/// @param status 课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)
+/// @param subjectId 声部id
+/// @param page 页数
+/// @param rows 条数
+/// @param success 成功
+/// @param faliure 失败
++ (void)accompanyCourseRequest:(NSString *)post classDate:(NSString *)classDate status:(NSString *)status subjectId:(NSString *)subjectId page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
+
+
+// /api-teacher/courseSchedule/queryTeacherLiveCourse
+/// 我的课程-陪练课
+/// @param post post
+/// @param classDate 月份 yyyy-MM
+/// @param status 课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)
+/// @param subjectId 声部id
+/// @param page 页数
+/// @param rows 条数
+/// @param success 成功
+/// @param faliure 失败
++ (void)queryTeacherLiveCourse:(NSString *)post classDate:(NSString *)classDate status:(NSString *)status subjectId:(NSString *)subjectId page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 @end
 NS_ASSUME_NONNULL_END

+ 51 - 2
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m

@@ -924,19 +924,20 @@
 
 #pragma mark ----- 视频课相关
 // /api-teacher/videoLessonGroup/page
-// 视频课列表查询
 
 /// 视频课列表查询
 /// @param post post
+/// @param lessonSubject 课程声部
 /// @param auditStatus 审核状态 (0:待审核;1:通过;2:未通过)
 /// @param pageNo 分页
 /// @param pageSize 条数
 /// @param success 成功
 /// @param faliure 失败
-+ (void)videoLessonListRequest:(NSString *)post auditStatus:(NSString *)auditStatus pageNo:(NSInteger)pageNo pageSize:(NSInteger)pageSize success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
++ (void)videoLessonListRequest:(NSString *)post lessonSubject:(NSString *)lessonSubject auditStatus:(NSString *)auditStatus pageNo:(NSInteger)pageNo pageSize:(NSInteger)pageSize success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
     [self configRequestMethodJSON];
     NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-teacher/videoLessonGroup/page"];
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
+    [parm setValue:lessonSubject forKey:@"lessonSubject"];
     [parm setValue:auditStatus forKey:@"auditStatus"];
     [parm setValue:@(pageNo) forKey:@"page"];
     [parm setValue:@(pageSize) forKey:@"rows"];
@@ -1031,4 +1032,52 @@
     [parm setValue:UserDefault(UIDKey) forKey:@"teacherId"];
     [self request:post andWithUrl:url and:@[parm] success:success faliure:faliure];
 }
+
+#pragma mark ----- 课程查询
+// /api-teacher/courseSchedule/myCourse
+/// 我的课程-陪练课
+/// @param post post
+/// @param classDate 月份 yyyy-MM
+/// @param status 课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)
+/// @param subjectId 声部id
+/// @param page 页数
+/// @param rows 条数
+/// @param success 成功
+/// @param faliure 失败
++ (void)accompanyCourseRequest:(NSString *)post classDate:(NSString *)classDate status:(NSString *)status subjectId:(NSString *)subjectId page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
+    [self configRequestMethodJSON];
+    NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-teacher/courseSchedule/myCourse"];
+    NSMutableDictionary *parm = [NSMutableDictionary dictionary];
+    [parm setValue:classDate forKey:@"classDate"];
+    [parm setValue:status forKey:@"status"];
+    [parm setValue:subjectId forKey:@"subjectId"];
+    [parm setValue:@(page) forKey:@"page"];
+    [parm setValue:@(rows) forKey:@"rows"];
+    [parm setValue:UserDefault(UIDKey) forKey:@"teacherId"];
+    [self request:post andWithUrl:url and:@[parm] success:success faliure:faliure];
+}
+
+
+// /api-teacher/courseSchedule/queryTeacherLiveCourse
+/// 我的课程-陪练课
+/// @param post post
+/// @param classDate 月份 yyyy-MM
+/// @param status 课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)
+/// @param subjectId 声部id
+/// @param page 页数
+/// @param rows 条数
+/// @param success 成功
+/// @param faliure 失败
++ (void)queryTeacherLiveCourse:(NSString *)post classDate:(NSString *)classDate status:(NSString *)status subjectId:(NSString *)subjectId page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
+    [self configRequestMethodJSON];
+    NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-teacher/courseSchedule/queryTeacherLiveCourse"];
+    NSMutableDictionary *parm = [NSMutableDictionary dictionary];
+    [parm setValue:classDate forKey:@"classDate"];
+    [parm setValue:status forKey:@"status"];
+    [parm setValue:subjectId forKey:@"subjectId"];
+    [parm setValue:@(page) forKey:@"page"];
+    [parm setValue:@(rows) forKey:@"rows"];
+    [parm setValue:UserDefault(UIDKey) forKey:@"teacherId"];
+    [self request:post andWithUrl:url and:@[parm] success:success faliure:faliure];
+}
 @end

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Define/Common.h

@@ -15,7 +15,7 @@
 
 #import "MJExtension.h"
 #import "NSString+Extension.h"
-#import <UIImageView+WebCache.h>
+#import <SDWebImage/UIImageView+WebCache.h>
 #import "MSSBrowseDefine.h"
 
 #define FONT_COLOR (HexRGB(0x333333))

+ 8 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch

@@ -17,7 +17,6 @@
 #import "NSDictionary+Extension.h"
 #import "NSString+MD5.h"
 #import "UIView+TZLayout.h"
-#import "UIImageView+WebCache.h"
 #import "Masonry.h"
 #import "MJRefresh.h"
 #import "KSNetworkingManager.h"
@@ -33,6 +32,7 @@
 #import "KSGifRefreshHeader.h"
 #import "KSGifRefreshFooter.h"
 #import "UIView+SubViewExtension.h"
+#import "NSObject+KSDateFormatter.h"
 
 // 加密使用 NSString+MD5
 #define DEFAULT_SALT (@"D5sIlPU2")
@@ -96,6 +96,13 @@ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)((_seconds_) * NSEC_PER
 shouldPrevent = NO; \
 }); \
 
+#define dispatch_main_sync_safe(block)\
+    if ([NSThread isMainThread]) {\
+        block();\
+    } else {\
+        dispatch_sync(dispatch_get_main_queue(), block);\
+    }
+
 // Include any system framework and library headers here that should be included in all compilation units.
 // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
 

+ 5 - 4
KulexiuForTeacher/KulexiuForTeacher/Common/ThirdPart/MSSBrowse/MSSBrowseBaseViewController.m

@@ -193,10 +193,11 @@
         }];
         [cell longPress:^(MSSBrowseCollectionViewCell *browseCell) {
             __strong __typeof(weakSelf)strongSelf = weakSelf;
-            if([[SDImageCache sharedImageCache]diskImageExistsWithKey:browseItem.bigImageUrl])
-            {
-                [strongSelf longPress:browseCell];
-            }
+            [[SDImageCache sharedImageCache] diskImageExistsWithKey:browseItem.bigImageUrl completion:^(BOOL isInCache) {
+                if (isInCache) {
+                    [strongSelf longPress:browseCell];
+                }
+            }];
         }];
     }
     return cell;

+ 14 - 13
KulexiuForTeacher/KulexiuForTeacher/Common/ThirdPart/MSSBrowse/MSSBrowseNetworkViewController.m

@@ -8,9 +8,10 @@
 
 #import "MSSBrowseNetworkViewController.h"
 #import "SDImageCache.h"
-#import "UIImageView+WebCache.h"
 #import "UIView+MSSLayout.h"
 #import "UIImage+MSSScale.h"
+#import <SDWebImage/UIImageView+WebCache.h>
+#import <SDWebImage/UIView+WebCache.h>
 
 @implementation MSSBrowseNetworkViewController
 
@@ -19,18 +20,18 @@
     // 停止加载
     [cell.loadingView stopAnimation];
     // 判断大图是否存在
-    if([[SDImageCache sharedImageCache]diskImageExistsWithKey:browseItem.bigImageUrl])
-    {
-        // 显示大图
-        [self showBigImage:cell.zoomScrollView.zoomImageView browseItem:browseItem rect:bigImageRect];
-    }
-    // 如果大图不存在
-    else
-    {
-        self.isFirstOpen = NO;
-        // 加载大图
-        [self loadBigImageWithBrowseItem:browseItem cell:cell rect:bigImageRect];
-    }
+    [[SDImageCache sharedImageCache] diskImageExistsWithKey:browseItem.bigImageUrl completion:^(BOOL isInCache) {
+        if (isInCache) {
+            // 显示大图
+            [self showBigImage:cell.zoomScrollView.zoomImageView browseItem:browseItem rect:bigImageRect];
+        }
+        // 如果大图不存在
+        else {
+            self.isFirstOpen = NO;
+            // 加载大图
+            [self loadBigImageWithBrowseItem:browseItem cell:cell rect:bigImageRect];
+        }
+    }];
 }
 
 - (void)showBigImage:(UIImageView *)imageView browseItem:(MSSBrowseModel *)browseItem rect:(CGRect)rect

+ 3 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/ThirdPart/SDCycleScrollView/SDCycleScrollView.m

@@ -504,7 +504,9 @@ NSString * const ID = @"cycleCell";
 
 + (void)clearImagesCache
 {
-    [[[SDWebImageManager sharedManager] imageCache] clearDisk];
+    [[[SDWebImageManager sharedManager] imageCache] clearWithCacheType:SDImageCacheTypeDisk completion:^{
+        
+    }];
     
 }
 

+ 20 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h

@@ -0,0 +1,20 @@
+//
+//  NSObject+KSDateFormatter.h
+//  TeacherDaya
+//
+//  Created by 王智 on 2022/4/7.
+//  Copyright © 2022 DayaMusic. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSObject (KSDateFormatter)
+
+/// 获取NSDateFormatter shanghai
++ (NSDateFormatter *)getDateformatter;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 20 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.m

@@ -0,0 +1,20 @@
+//
+//  NSObject+KSDateFormatter.m
+//  TeacherDaya
+//
+//  Created by 王智 on 2022/4/7.
+//  Copyright © 2022 DayaMusic. All rights reserved.
+//
+
+#import "NSObject+KSDateFormatter.h"
+
+@implementation NSObject (KSDateFormatter)
+
++ (NSDateFormatter *)getDateformatter {
+    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+    dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
+    [dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"zh_CN"]];
+    return dateFormatter;
+}
+
+@end

+ 130 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m

@@ -6,6 +6,13 @@
 //
 
 #import "MyCourseViewController.h"
+#import "KSBaseWKWebViewController.h"
+#import "JXCategoryView.h"
+#import "JXPagerListRefreshView.h"
+#import "MyLiveLessionBodyView.h"
+#import "MyLessonBodyView.h"
+
+#define HEADER_HEIGHT (64)
 
 @interface MyCourseViewController ()<JXPagerViewDelegate, JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate>
 
@@ -22,9 +29,132 @@
     // Do any additional setup after loading the view.
     [self allocTitle:@"我的课程"];
     self.titles = @[@"陪练课",@"直播课",@"视频课"];
+    [self configUI];
+}
+
+- (void)configUI {
+    [self.scrollView removeFromSuperview];
+    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    
+    _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, HEADER_HEIGHT)];
+    self.categoryView.titles = self.titles;
+    self.categoryView.delegate = self;
+    self.categoryView.titleFont = [UIFont systemFontOfSize:17.0f];
+    self.categoryView.titleSelectedFont = [UIFont systemFontOfSize:17.0f weight:UIFontWeightMedium];
+    self.categoryView.titleSelectedColor = HexRGB(0x333333);
+    self.categoryView.titleColor = HexRGB(0x666666);
+    self.categoryView.titleColorGradientEnabled = YES;
+    
+    JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
+    lineView.indicatorColor = THEMECOLOR;
+    lineView.indicatorWidth = 16;
+    self.categoryView.indicators = @[lineView];
     
+    _pagerView = [self preferredPagingView];
+    self.pagerView.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight - kNaviBarHeight - iPhoneXSafeBottomMargin);
+    self.pagerView.backgroundColor = [UIColor clearColor];
+    self.pagerView.mainTableView.backgroundColor = [UIColor clearColor];
+    self.pagerView.listContainerView.backgroundColor = [UIColor clearColor];
+    self.pagerView.mainTableView.gestureDelegate = self;
+    self.categoryView.listContainer = (id<JXCategoryViewListContainer>)self.pagerView.listContainerView;
+    self.pagerView.listContainerView.listCellBackgroundColor = [UIColor clearColor];
+    [self.view addSubview:self.pagerView];
+}
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    self.navigationController.interactivePopGestureRecognizer.enabled = YES;
+    if (self.listViewArray.count > self.categoryView.selectedIndex) {
+        id value = self.listViewArray[self.categoryView.selectedIndex];
+        if ([value isKindOfClass:[MyLiveLessionBodyView class]]) {
+            MyLiveLessionBodyView *listView = (MyLiveLessionBodyView *)value;
+            [listView beginFirstRefresh];
+        }
+        else if ([value isKindOfClass:[MyLessonBodyView class]]) {
+            MyLessonBodyView *listView = (MyLessonBodyView *)value;
+            [listView beginFirstRefresh];
+        }
+    }
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+    [super viewDidAppear:animated];
+    self.navigationController.interactivePopGestureRecognizer.enabled = (self.categoryView.selectedIndex == 0);
 }
 
+- (JXPagerView *)preferredPagingView {
+    return [[JXPagerListRefreshView alloc] initWithDelegate:self];
+}
+
+#pragma mark - JXPagerViewDelegate
+
+- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
+    return [UIView new];
+}
+
+- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
+    return CGFLOAT_MIN;
+}
+
+- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
+    return HEADER_HEIGHT;
+}
+
+- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
+    return self.categoryView;
+}
+
+- (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView {
+    //和categoryView的item数量一致
+    return self.titles.count;
+}
+
+- (id<JXPagerViewListViewDelegate>)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index {
+    if (index == 2) {
+        MyLiveLessionBodyView *listView = [[MyLiveLessionBodyView alloc] init];
+        listView.naviController = self.navigationController;
+        [self.listViewArray replaceObjectAtIndex:index withObject:listView];
+        self.listViewArray[index] = listView;
+        listView.selectIndex = index;
+        [listView beginFirstRefresh];
+        return listView;
+    }
+    else {
+        MyLessonBodyView *listView = [[MyLessonBodyView alloc] init];
+        listView.naviController = self.navigationController;
+        [self.listViewArray replaceObjectAtIndex:index withObject:listView];
+        self.listViewArray[index] = listView;
+        listView.selectIndex = index;
+        listView.teaherAuth = YES;
+        [listView beginFirstRefresh];
+        return listView;
+    }
+    
+}
+
+#pragma mark - JXCategoryViewDelegate
+- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
+    self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0);
+}
+
+
+#pragma mark - JXPagerMainTableViewGestureDelegate
+
+- (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
+    //禁止categoryView左右滑动的时候,上下和左右都可以滚动
+    if (otherGestureRecognizer == self.categoryView.collectionView.panGestureRecognizer) {
+        return NO;
+    }
+    return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]];
+}
+
+
+- (NSMutableArray *)listViewArray {
+    if (!_listViewArray) {
+        _listViewArray = [NSMutableArray arrayWithArray:@[@"",@"",@""]];
+    }
+    return _listViewArray;
+}
 /*
 #pragma mark - Navigation
 

+ 29 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/AccompanyLessonModel.h

@@ -0,0 +1,29 @@
+//
+//  AccompanyLessonModel.h
+//
+//  Created by Steven  on 2022/4/12
+//  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+
+@interface AccompanyLessonModel : NSObject <NSCoding, NSCopying>
+
+@property (nonatomic, strong) NSString *status;
+@property (nonatomic, assign) double userId;
+@property (nonatomic, strong) NSString *classDate;
+@property (nonatomic, strong) NSString *endTime;
+@property (nonatomic, assign) double internalBaseClassIdentifier;
+@property (nonatomic, strong) NSString *userName;
+@property (nonatomic, strong) NSString *avatar;
+@property (nonatomic, assign) double subjectId;
+@property (nonatomic, strong) NSString *subjectName;
+@property (nonatomic, strong) NSString *startTime;
+
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
+- (instancetype)initWithDictionary:(NSDictionary *)dict;
+- (NSDictionary *)dictionaryRepresentation;
+
+@end

+ 162 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/AccompanyLessonModel.m

@@ -0,0 +1,162 @@
+//
+//  AccompanyLessonModel.m
+//
+//  Created by Steven  on 2022/4/12
+//  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
+//
+
+#import "AccompanyLessonModel.h"
+
+
+NSString *const kAccompanyLessonModelStatus = @"status";
+NSString *const kAccompanyLessonModelUserId = @"userId";
+NSString *const kAccompanyLessonModelClassDate = @"classDate";
+NSString *const kAccompanyLessonModelEndTime = @"endTime";
+NSString *const kAccompanyLessonModelId = @"id";
+NSString *const kAccompanyLessonModelUserName = @"userName";
+NSString *const kAccompanyLessonModelAvatar = @"avatar";
+NSString *const kAccompanyLessonModelSubjectId = @"subjectId";
+NSString *const kAccompanyLessonModelSubjectName = @"subjectName";
+NSString *const kAccompanyLessonModelStartTime = @"startTime";
+
+
+@interface AccompanyLessonModel ()
+
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
+
+@end
+
+@implementation AccompanyLessonModel
+
+@synthesize status = _status;
+@synthesize userId = _userId;
+@synthesize classDate = _classDate;
+@synthesize endTime = _endTime;
+@synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
+@synthesize userName = _userName;
+@synthesize avatar = _avatar;
+@synthesize subjectId = _subjectId;
+@synthesize subjectName = _subjectName;
+@synthesize startTime = _startTime;
+
+
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
+{
+    return [[self alloc] initWithDictionary:dict];
+}
+
+- (instancetype)initWithDictionary:(NSDictionary *)dict
+{
+    self = [super init];
+    
+    // This check serves to make sure that a non-NSDictionary object
+    // passed into the model class doesn't break the parsing.
+    if(self && [dict isKindOfClass:[NSDictionary class]]) {
+            self.status = [self objectOrNilForKey:kAccompanyLessonModelStatus fromDictionary:dict];
+            self.userId = [[self objectOrNilForKey:kAccompanyLessonModelUserId fromDictionary:dict] doubleValue];
+            self.classDate = [self objectOrNilForKey:kAccompanyLessonModelClassDate fromDictionary:dict];
+            self.endTime = [self objectOrNilForKey:kAccompanyLessonModelEndTime fromDictionary:dict];
+            self.internalBaseClassIdentifier = [[self objectOrNilForKey:kAccompanyLessonModelId fromDictionary:dict] doubleValue];
+            self.userName = [self objectOrNilForKey:kAccompanyLessonModelUserName fromDictionary:dict];
+            self.avatar = [self objectOrNilForKey:kAccompanyLessonModelAvatar fromDictionary:dict];
+            self.subjectId = [[self objectOrNilForKey:kAccompanyLessonModelSubjectId fromDictionary:dict] doubleValue];
+            self.subjectName = [self objectOrNilForKey:kAccompanyLessonModelSubjectName fromDictionary:dict];
+            self.startTime = [self objectOrNilForKey:kAccompanyLessonModelStartTime fromDictionary:dict];
+
+    }
+    
+    return self;
+    
+}
+
+- (NSDictionary *)dictionaryRepresentation
+{
+    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
+    [mutableDict setValue:self.status forKey:kAccompanyLessonModelStatus];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.userId] forKey:kAccompanyLessonModelUserId];
+    [mutableDict setValue:self.classDate forKey:kAccompanyLessonModelClassDate];
+    [mutableDict setValue:self.endTime forKey:kAccompanyLessonModelEndTime];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.internalBaseClassIdentifier] forKey:kAccompanyLessonModelId];
+    [mutableDict setValue:self.userName forKey:kAccompanyLessonModelUserName];
+    [mutableDict setValue:self.avatar forKey:kAccompanyLessonModelAvatar];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.subjectId] forKey:kAccompanyLessonModelSubjectId];
+    [mutableDict setValue:self.subjectName forKey:kAccompanyLessonModelSubjectName];
+    [mutableDict setValue:self.startTime forKey:kAccompanyLessonModelStartTime];
+
+    return [NSDictionary dictionaryWithDictionary:mutableDict];
+}
+
+- (NSString *)description 
+{
+    return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
+}
+
+#pragma mark - Helper Method
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
+{
+    id object = [dict objectForKey:aKey];
+    if ([object isKindOfClass:[NSNumber class]]) {
+        NSNumber *number = object;
+        object = [number stringValue];
+    }
+    return [object isEqual:[NSNull null]] ? nil : object;
+}
+
+
+#pragma mark - NSCoding Methods
+
+- (id)initWithCoder:(NSCoder *)aDecoder
+{
+    self = [super init];
+
+    self.status = [aDecoder decodeObjectForKey:kAccompanyLessonModelStatus];
+    self.userId = [aDecoder decodeDoubleForKey:kAccompanyLessonModelUserId];
+    self.classDate = [aDecoder decodeObjectForKey:kAccompanyLessonModelClassDate];
+    self.endTime = [aDecoder decodeObjectForKey:kAccompanyLessonModelEndTime];
+    self.internalBaseClassIdentifier = [aDecoder decodeDoubleForKey:kAccompanyLessonModelId];
+    self.userName = [aDecoder decodeObjectForKey:kAccompanyLessonModelUserName];
+    self.avatar = [aDecoder decodeObjectForKey:kAccompanyLessonModelAvatar];
+    self.subjectId = [aDecoder decodeDoubleForKey:kAccompanyLessonModelSubjectId];
+    self.subjectName = [aDecoder decodeObjectForKey:kAccompanyLessonModelSubjectName];
+    self.startTime = [aDecoder decodeObjectForKey:kAccompanyLessonModelStartTime];
+    return self;
+}
+
+- (void)encodeWithCoder:(NSCoder *)aCoder
+{
+
+    [aCoder encodeObject:_status forKey:kAccompanyLessonModelStatus];
+    [aCoder encodeDouble:_userId forKey:kAccompanyLessonModelUserId];
+    [aCoder encodeObject:_classDate forKey:kAccompanyLessonModelClassDate];
+    [aCoder encodeObject:_endTime forKey:kAccompanyLessonModelEndTime];
+    [aCoder encodeDouble:_internalBaseClassIdentifier forKey:kAccompanyLessonModelId];
+    [aCoder encodeObject:_userName forKey:kAccompanyLessonModelUserName];
+    [aCoder encodeObject:_avatar forKey:kAccompanyLessonModelAvatar];
+    [aCoder encodeDouble:_subjectId forKey:kAccompanyLessonModelSubjectId];
+    [aCoder encodeObject:_subjectName forKey:kAccompanyLessonModelSubjectName];
+    [aCoder encodeObject:_startTime forKey:kAccompanyLessonModelStartTime];
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+    AccompanyLessonModel *copy = [[AccompanyLessonModel alloc] init];
+    
+    if (copy) {
+
+        copy.status = [self.status copyWithZone:zone];
+        copy.userId = self.userId;
+        copy.classDate = [self.classDate copyWithZone:zone];
+        copy.endTime = [self.endTime copyWithZone:zone];
+        copy.internalBaseClassIdentifier = self.internalBaseClassIdentifier;
+        copy.userName = [self.userName copyWithZone:zone];
+        copy.avatar = [self.avatar copyWithZone:zone];
+        copy.subjectId = self.subjectId;
+        copy.subjectName = [self.subjectName copyWithZone:zone];
+        copy.startTime = [self.startTime copyWithZone:zone];
+    }
+    
+    return copy;
+}
+
+
+@end

+ 27 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.h

@@ -0,0 +1,27 @@
+//
+//  LiveLessonModel.h
+//
+//  Created by Steven  on 2022/4/12
+//  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+
+@interface LiveLessonModel : NSObject <NSCoding, NSCopying>
+
+@property (nonatomic, strong) NSString *status;
+@property (nonatomic, assign) double studentCount;
+@property (nonatomic, strong) NSString *courseGroupId;
+@property (nonatomic, strong) NSString *endTime;
+@property (nonatomic, strong) NSString *backgroundPic;
+@property (nonatomic, strong) NSString *subjectName;
+@property (nonatomic, strong) NSString *startTime;
+@property (nonatomic, strong) NSString *courseGroupName;
+
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
+- (instancetype)initWithDictionary:(NSDictionary *)dict;
+- (NSDictionary *)dictionaryRepresentation;
+
+@end

+ 148 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.m

@@ -0,0 +1,148 @@
+//
+//  LiveLessonModel.m
+//
+//  Created by Steven  on 2022/4/12
+//  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
+//
+
+#import "LiveLessonModel.h"
+
+
+NSString *const kLiveLessonModelStatus = @"status";
+NSString *const kLiveLessonModelStudentCount = @"studentCount";
+NSString *const kLiveLessonModelCourseGroupId = @"courseGroupId";
+NSString *const kLiveLessonModelEndTime = @"endTime";
+NSString *const kLiveLessonModelBackgroundPic = @"backgroundPic";
+NSString *const kLiveLessonModelSubjectName = @"subjectName";
+NSString *const kLiveLessonModelStartTime = @"startTime";
+NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
+
+
+@interface LiveLessonModel ()
+
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
+
+@end
+
+@implementation LiveLessonModel
+
+@synthesize status = _status;
+@synthesize studentCount = _studentCount;
+@synthesize courseGroupId = _courseGroupId;
+@synthesize endTime = _endTime;
+@synthesize backgroundPic = _backgroundPic;
+@synthesize subjectName = _subjectName;
+@synthesize startTime = _startTime;
+@synthesize courseGroupName = _courseGroupName;
+
+
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
+{
+    return [[self alloc] initWithDictionary:dict];
+}
+
+- (instancetype)initWithDictionary:(NSDictionary *)dict
+{
+    self = [super init];
+    
+    // This check serves to make sure that a non-NSDictionary object
+    // passed into the model class doesn't break the parsing.
+    if(self && [dict isKindOfClass:[NSDictionary class]]) {
+            self.status = [self objectOrNilForKey:kLiveLessonModelStatus fromDictionary:dict];
+            self.studentCount = [[self objectOrNilForKey:kLiveLessonModelStudentCount fromDictionary:dict] doubleValue];
+            self.courseGroupId = [self objectOrNilForKey:kLiveLessonModelCourseGroupId fromDictionary:dict];
+            self.endTime = [self objectOrNilForKey:kLiveLessonModelEndTime fromDictionary:dict];
+            self.backgroundPic = [self objectOrNilForKey:kLiveLessonModelBackgroundPic fromDictionary:dict];
+            self.subjectName = [self objectOrNilForKey:kLiveLessonModelSubjectName fromDictionary:dict];
+            self.startTime = [self objectOrNilForKey:kLiveLessonModelStartTime fromDictionary:dict];
+            self.courseGroupName = [self objectOrNilForKey:kLiveLessonModelCourseGroupName fromDictionary:dict];
+
+    }
+    
+    return self;
+    
+}
+
+- (NSDictionary *)dictionaryRepresentation
+{
+    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
+    [mutableDict setValue:self.status forKey:kLiveLessonModelStatus];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.studentCount] forKey:kLiveLessonModelStudentCount];
+    [mutableDict setValue:self.courseGroupId forKey:kLiveLessonModelCourseGroupId];
+    [mutableDict setValue:self.endTime forKey:kLiveLessonModelEndTime];
+    [mutableDict setValue:self.backgroundPic forKey:kLiveLessonModelBackgroundPic];
+    [mutableDict setValue:self.subjectName forKey:kLiveLessonModelSubjectName];
+    [mutableDict setValue:self.startTime forKey:kLiveLessonModelStartTime];
+    [mutableDict setValue:self.courseGroupName forKey:kLiveLessonModelCourseGroupName];
+
+    return [NSDictionary dictionaryWithDictionary:mutableDict];
+}
+
+- (NSString *)description 
+{
+    return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
+}
+
+#pragma mark - Helper Method
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
+{
+    id object = [dict objectForKey:aKey];
+    if ([object isKindOfClass:[NSNumber class]]) {
+        NSNumber *number = object;
+        object = [number stringValue];
+    }
+    return [object isEqual:[NSNull null]] ? nil : object;
+}
+
+
+#pragma mark - NSCoding Methods
+
+- (id)initWithCoder:(NSCoder *)aDecoder
+{
+    self = [super init];
+
+    self.status = [aDecoder decodeObjectForKey:kLiveLessonModelStatus];
+    self.studentCount = [aDecoder decodeDoubleForKey:kLiveLessonModelStudentCount];
+    self.courseGroupId = [aDecoder decodeObjectForKey:kLiveLessonModelCourseGroupId];
+    self.endTime = [aDecoder decodeObjectForKey:kLiveLessonModelEndTime];
+    self.backgroundPic = [aDecoder decodeObjectForKey:kLiveLessonModelBackgroundPic];
+    self.subjectName = [aDecoder decodeObjectForKey:kLiveLessonModelSubjectName];
+    self.startTime = [aDecoder decodeObjectForKey:kLiveLessonModelStartTime];
+    self.courseGroupName = [aDecoder decodeObjectForKey:kLiveLessonModelCourseGroupName];
+    return self;
+}
+
+- (void)encodeWithCoder:(NSCoder *)aCoder
+{
+
+    [aCoder encodeObject:_status forKey:kLiveLessonModelStatus];
+    [aCoder encodeDouble:_studentCount forKey:kLiveLessonModelStudentCount];
+    [aCoder encodeObject:_courseGroupId forKey:kLiveLessonModelCourseGroupId];
+    [aCoder encodeObject:_endTime forKey:kLiveLessonModelEndTime];
+    [aCoder encodeObject:_backgroundPic forKey:kLiveLessonModelBackgroundPic];
+    [aCoder encodeObject:_subjectName forKey:kLiveLessonModelSubjectName];
+    [aCoder encodeObject:_startTime forKey:kLiveLessonModelStartTime];
+    [aCoder encodeObject:_courseGroupName forKey:kLiveLessonModelCourseGroupName];
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+    LiveLessonModel *copy = [[LiveLessonModel alloc] init];
+    
+    if (copy) {
+
+        copy.status = [self.status copyWithZone:zone];
+        copy.studentCount = self.studentCount;
+        copy.courseGroupId = [self.courseGroupId copyWithZone:zone];
+        copy.endTime = [self.endTime copyWithZone:zone];
+        copy.backgroundPic = [self.backgroundPic copyWithZone:zone];
+        copy.subjectName = [self.subjectName copyWithZone:zone];
+        copy.startTime = [self.startTime copyWithZone:zone];
+        copy.courseGroupName = [self.courseGroupName copyWithZone:zone];
+    }
+    
+    return copy;
+}
+
+
+@end

+ 21 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.h

@@ -0,0 +1,21 @@
+//
+//  MyLessonBodyView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/12.
+//
+
+#import "KSJXBodyView.h"
+#import "StateView.h"
+#import "Reachability.h"
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MyLessonBodyView : KSJXBodyView
+
+@property (nonatomic, assign) BOOL teaherAuth;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 494 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m

@@ -0,0 +1,494 @@
+//
+//  MyLessonBodyView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/12.
+//
+
+#import "MyLessonBodyView.h"
+#import "KSBaseWKWebViewController.h"
+#import "AuthDisplayView.h"
+#import "MyLiveCourseCell.h"
+#import "AccompanyCourseCell.h"
+#import "LiveLessonModel.h"
+#import "AccompanyLessonModel.h"
+#import "KSChatConversationViewController.h"
+#import "MyLessonSearchView.h"
+#import "NewClassPopView.h"
+
+@interface MyLessonBodyView ()<UITableViewDelegate,UITableViewDataSource>
+
+@property (nonatomic, copy) MyLessonSearchView *sortView;
+
+@property (nonatomic, strong) NewClassPopView *popView;
+
+@property (nonatomic, strong) NSMutableArray *dataArray;
+
+@property (nonatomic, strong) StateView *promptView;
+@property (nonatomic, strong) UIView *promptPlaceView;
+
+@property (nonatomic, assign) BOOL networkAvaiable; // 网络是否可用
+
+@property (nonatomic, assign) BOOL isLoadMore;
+@property (nonatomic, assign) NSInteger rows;
+@property (nonatomic, assign) NSInteger pages;
+
+@property (nonatomic, strong) AuthDisplayView *authView;
+
+
+@property (nonatomic, assign) NSInteger secondChooseIndex;
+
+@property (nonatomic, assign) NSInteger thirdChooseIndex;
+
+@property (nonatomic, strong) NSString *classDate;
+
+@property (nonatomic, strong) NSString *status;
+
+@property (nonatomic, strong) NSString *subjectId;
+
+@property (nonatomic, strong) NSMutableArray *subjectMessageArray;
+
+@end
+
+@implementation MyLessonBodyView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    self = [super initWithFrame:frame];
+    if (self) {
+        
+        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
+        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.showsVerticalScrollIndicator = NO;
+
+        self.tableView.dataSource = self;
+        self.tableView.delegate = self;
+        self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        [self addSubview:self.tableView];
+        
+        
+        UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
+        headView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.tableHeaderView = headView;
+        
+        UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
+        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.tableFooterView = bottomView;
+        [self.tableView registerNib:[UINib nibWithNibName:@"AccompanyCourseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyCourseCell"];
+        [self.tableView registerNib:[UINib nibWithNibName:@"MyLiveCourseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MyLiveCourseCell"];
+        NSDateFormatter *dateFormatter = [NSObject getDateformatter];
+        [dateFormatter setDateFormat:@"yyyy-MM"];
+        NSDate *currentDate = [NSDate date];
+        self.classDate = [dateFormatter stringFromDate:currentDate];
+        MJWeakSelf;
+        self.tableView.mj_header = [KSGifRefreshHeader headerWithRefreshingBlock:^{
+            [weakSelf resetParamenter];
+            [weakSelf requestData];
+        }];
+        self.tableView.mj_footer = [KSGifRefreshFooter footerWithRefreshingBlock:^{
+            if (weakSelf.isLoadMore) {
+                weakSelf.pages += 1;
+                [weakSelf requestData];
+            }
+            else {
+                [weakSelf.tableView.mj_footer endRefreshingWithNoMoreData];
+            }
+        }];
+    }
+    return self;
+}
+
+- (void)endRefresh {
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [self.tableView.mj_header endRefreshing];
+        [self.tableView.mj_footer endRefreshing];
+    });
+}
+
+- (void)refreshAndRequestData {
+    [self resetParamenter];
+    [self requestData];
+}
+
+- (void)resetParamenter {
+    self.isLoadMore = YES;
+    self.pages = 1;
+    self.rows = 10;
+    
+    self.dataArray = [NSMutableArray array];
+    [self.tableView.mj_footer resetNoMoreData];
+    [self setPromptString:@"暂无内容" imageName:@"wd_img_zwsj" inView:self.tableView];
+    [self.tableView reloadData];
+}
+
+- (void)requestData {
+    if (self.selectIndex == 0) { // 陪练课
+        [KSNetworkingManager accompanyCourseRequest:KS_POST classDate:self.classDate status:self.status subjectId:self.subjectId page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+            [self endRefresh];
+            if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+                NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+                for (NSDictionary *parm in sourceArray) {
+                    AccompanyLessonModel *model = [[AccompanyLessonModel alloc] initWithDictionary:parm];
+                    [self.dataArray addObject:model];
+                }
+                
+                if (sourceArray.count < self.rows) {
+                    self.isLoadMore = NO;
+                }
+            }
+            else {
+                [self MBPShow:MESSAGEKEY];
+            }
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        } faliure:^(NSError * _Nonnull error) {
+            [self endRefresh];
+            if (self.networkAvaiable == NO) {
+                [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+            }
+            [self.dataArray removeAllObjects];
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        }];
+    }
+    else { // 直播课
+        [KSNetworkingManager queryTeacherLiveCourse:KS_POST classDate:self.classDate status:self.status subjectId:self.subjectId page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+            [self endRefresh];
+            if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+                NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+                for (NSDictionary *parm in sourceArray) {
+                    LiveLessonModel *model = [[LiveLessonModel alloc] initWithDictionary:parm];
+                    [self.dataArray addObject:model];
+                }
+                
+                if (sourceArray.count < self.rows) {
+                    self.isLoadMore = NO;
+                }
+            }
+            else {
+                [self MBPShow:MESSAGEKEY];
+            }
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        } faliure:^(NSError * _Nonnull error) {
+            [self endRefresh];
+            if (self.networkAvaiable == NO) {
+                [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+            }
+            [self.dataArray removeAllObjects];
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        }];
+    }
+}
+
+- (void)beginRefreshImmediately {
+    [self.tableView.mj_header beginRefreshing];
+}
+
+- (void)beginFirstRefresh {
+    if (!self.isHeaderRefreshed) {
+        [self beginRefreshImmediately];
+    }
+}
+- (void)selectCellAtIndexPath:(NSIndexPath *)indexPath {
+    
+    if (self.lastSelectedIndexPath == indexPath) {
+        return;
+    }
+    if (self.lastSelectedIndexPath != nil) {
+        UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:self.lastSelectedIndexPath];
+        [cell setSelected:NO animated:NO];
+    }
+    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
+    [cell setSelected:YES animated:NO];
+    self.lastSelectedIndexPath = indexPath;
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    self.tableView.frame = self.bounds;
+    CGFloat topHeight = 55.0f;
+    self.tableView.frame = CGRectMake(0, topHeight, self.bounds.size.width, self.bounds.size.height - topHeight);
+    if (!_sortView) {
+        _sortView = [MyLessonSearchView shareInstance];
+        _sortView.frame = CGRectMake(0, 0, kScreenWidth, 55);
+        MJWeakSelf;
+        [_sortView sortAction:^(SORT_TYPE type) {
+            [weakSelf sortWithType:type];
+        }];
+        [self addSubview:self.sortView];
+    }
+    if (self.teaherAuth == NO) {
+        [self showAuthView];
+    }
+    else {
+        [self hideAuthView];
+    }
+}
+
+- (void)sortWithType:(SORT_TYPE)type {
+    
+    if (type == SORT_TYPE_TIME) { // time
+        
+    }
+    else if (type == SORT_TYPE_STATUS) { // 状态
+        [self.popView refreshWithSourceArray:@[@"全部",@"未开始",@"进行中",@"已结束"] preChooseIndex:_secondChooseIndex inView:self actionItem:1];
+    }
+    else if (type == SORT_TYPE_SUBJECT) {
+//        [self.popView refreshWithSourceArray:@[@"全部",@"请假",@"旷课",@"迟到",@"正常"] preChooseIndex:_thirdChooseIndex inView:self actionItem:2];
+    }
+    else {
+        [self hiddenPopView];
+    }
+}
+
+- (NewClassPopView *)popView {
+    if (!_popView) {
+        MJWeakSelf;
+        _popView = [[NewClassPopView alloc] initWithFrame:CGRectMake(0, 55, kScreenWidth, kScreenHeight - 55 - kNaviBarHeight - iPhoneXSafeBottomMargin) chooseCallback:^(NSString * _Nonnull sortStr, NSInteger chooseIndex, NSInteger item) {
+            if (chooseIndex != 0) {
+                // 回调
+                [weakSelf sortWithChooseIndex:chooseIndex item:item title:sortStr];
+            }
+            [weakSelf hiddenPopView];
+        }];
+    }
+    return _popView;
+}
+
+- (void)sortWithChooseIndex:(NSInteger)chooseIndex item:(NSInteger)item title:(NSString *)title {
+    [self resetSortViewWithTag:item];
+    if (item == 0) { //
+    }
+    else if (item == 1) { // 课程状态
+        self.secondChooseIndex = chooseIndex;
+        self.thirdChooseIndex = 0;
+        [self.sortView.secondButton setTitle:title forState:UIControlStateNormal];
+        switch (chooseIndex) {
+            case 1:
+            {
+                self.status = nil;
+                [self.sortView.secondButton setTitle:@"课程状态" forState:UIControlStateNormal];
+            }
+                break;
+            case 2:
+            {
+                self.status = @"NOT_START";
+            }
+                break;
+            case 3:
+            {
+                self.status = @"ING";
+            }
+                break;
+            case 4:
+            {
+                self.status = @"COMPLETE";
+            }
+                break;
+                
+            default:
+                break;
+        }
+    }
+    else if (item == 2) { // 声部筛选
+        self.thirdChooseIndex = chooseIndex;
+        [self.sortView.thirdButton setTitle:title forState:UIControlStateNormal];
+        if (chooseIndex == 1) {
+            self.subjectId = nil;
+            [self.sortView.thirdButton setTitle:@"全部声部" forState:UIControlStateNormal];
+        }
+        else {
+            NSDictionary *parm = self.subjectMessageArray[chooseIndex-1];
+            self.subjectId = [parm stringValueForKey:@"subjectId"];
+        }
+    }
+    [self resetParamenter];
+    [self requestData];
+}
+
+- (void)resetSortViewWithTag:(NSInteger)item  {
+    if (item == 0) {
+        [self.sortView.secondButton setTitle:@"上课方式" forState:UIControlStateNormal];
+        [self.sortView.thirdButton setTitle:@"到课情况" forState:UIControlStateNormal];
+    }
+    else if (item == 1) {
+        [self.sortView.firstButton setTitle:@"课程类型" forState:UIControlStateNormal];
+        [self.sortView.thirdButton setTitle:@"到课情况" forState:UIControlStateNormal];
+    }
+    else {
+        [self.sortView.firstButton setTitle:@"课程类型" forState:UIControlStateNormal];
+        [self.sortView.secondButton setTitle:@"上课方式" forState:UIControlStateNormal];
+    }
+}
+
+- (void)hiddenPopView {
+    self.sortView.firstArrowUp = NO;
+    self.sortView.secondArrowUp = NO;
+    self.sortView.thirdArrowUp = NO;
+    [self.popView hiddenView];
+}
+
+#pragma mark - UITableViewDataSource
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return self.dataArray.count;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
+    return 100.0f;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    if (self.selectIndex == 0) {
+        AccompanyCourseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyCourseCell"];
+        return cell;
+    }
+    else {
+        LiveLessonModel *model = self.dataArray[indexPath.row];
+        MyLiveCourseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyLiveCourseCell"];
+        MJWeakSelf;
+        [cell configCellWithSource:model callback:^(NSString *targetId) {
+            [weakSelf chatAction:targetId];
+        }];
+        return cell;
+    }
+}
+
+- (void)chatAction:(NSString *)targetId {
+    KSChatConversationViewController *conversationVC = [[KSChatConversationViewController alloc] init];
+    conversationVC.targetId = targetId;
+    conversationVC.conversationType = ConversationType_GROUP;
+    [self.naviController pushViewController:conversationVC animated:YES];
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+    if (indexPath.row == 0) { // 进入陪练课详情
+        
+    }
+    else { // 直播课程组详情
+        
+    }
+}
+
+/**
+ 设置没有数据时的显示
+ 
+ @param promptString 提示语
+ @param imgName 图片名称
+ @param view 显示在什么地方
+ */
+- (void)setPromptString:(NSString *)promptString imageName:(NSString *)imgName inView:(UIView *)view {
+    if (self.promptView != nil) {
+        [self.promptView removeFromSuperview];
+    }
+    else {
+        self.promptView = [[StateView alloc]init];
+        self.promptView.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight - 300);
+    }
+    _promptPlaceView = view;
+    //当请求不到数据时 ,自定义提示view 将会出现;
+    self.promptView.imageName = imgName;
+    self.promptView.alpha = 0.0f;
+    [self.promptView setText:promptString];
+    [view addSubview:self.promptView];
+}
+
+// 结束刷新后调用方法
+- (void)changePromptLabelStateWithArray:(NSMutableArray *)array {
+    NSInteger count;
+    if (array.count) {
+        count = array.count;
+    } else {
+        count = 0;
+    }
+    
+    [UIView animateWithDuration:0.1 animations:^{
+        [[self promptView] setAlpha:count ? 0.0f :1.0f ] ;
+    }] ;
+    
+}
+
+- (BOOL)networkAvaiable {
+    return [self checkNetworkAvaiable];
+}
+
+- (BOOL)checkNetworkAvaiable {
+    BOOL isExistenceNetwork = YES;
+    Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];
+    switch ([reach currentReachabilityStatus]) {
+        case NotReachable:
+            isExistenceNetwork = NO;
+            //NSLog(@"notReachable");
+            break;
+        case ReachableViaWiFi:
+            isExistenceNetwork = YES;
+            //NSLog(@"WIFI");
+            break;
+        case ReachableViaWWAN:
+            isExistenceNetwork = YES;
+            //NSLog(@"3G");
+            break;
+    }
+    return isExistenceNetwork;
+}
+#pragma mark ----- lazying
+- (void)setTeaherAuth:(BOOL)teaherAuth {
+    _teaherAuth = teaherAuth;
+    if (teaherAuth == NO) {
+        [self showAuthView];
+    }
+    else {
+        [self hideAuthView];
+    }
+}
+
+- (void)showAuthView {
+    if ([self.subviews containsObject:self.authView]) {
+        [self bringSubviewToFront:self.authView];
+    }
+    else {
+        [self addSubview:self.authView];
+        [self.authView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.top.bottom.right.mas_equalTo(self);
+        }];
+    }
+}
+
+- (void)hideAuthView {
+    if ([self.subviews containsObject:self.authView]) {
+        [self.authView removeFromSuperview];
+        self.authView = nil;
+    }
+}
+
+- (AuthDisplayView *)authView {
+    if (!_authView) {
+        _authView = [AuthDisplayView shareInstance];
+        [_authView configDisplayMessage:[self getAuthDisplayMessage]];
+        MJWeakSelf;
+        [_authView sureCallback:^{
+            [weakSelf authAction];
+        }];
+    }
+    return _authView;
+}
+
+- (NSString *)getAuthDisplayMessage {
+    return @"您还没有完成老师认证,认证后才可设置陪练课哦~";
+}
+
+- (void)authAction {
+    KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+    webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/teacherCert"];
+    [self.naviController pushViewController:webCtrl animated:YES];
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 40 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonSearchView.h

@@ -0,0 +1,40 @@
+//
+//  MyLessonSearchView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/12.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSInteger, SORT_TYPE) {
+    SORT_TYPE_TIME = 1,   // 课程时间
+    SORT_TYPE_STATUS = 2, // 课程状态
+    SORT_TYPE_SUBJECT = 3,  // 声部筛选
+    SORT_TYPE_HIDDEN = 4, // 隐藏
+};
+
+typedef void(^SortActionBlock)(SORT_TYPE type);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MyLessonSearchView : UIView
+
+@property (weak, nonatomic) IBOutlet UIButton *firstButton;
+@property (weak, nonatomic) IBOutlet UIButton *secondButton;
+@property (weak, nonatomic) IBOutlet UIButton *thirdButton;
+
+@property (nonatomic, assign) BOOL firstArrowUp;
+
+@property (nonatomic, assign) BOOL secondArrowUp;
+
+@property (nonatomic, assign) BOOL thirdArrowUp;
+
++ (instancetype)shareInstance;
+
+- (void)sortAction:(SortActionBlock)block;
+
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 98 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonSearchView.m

@@ -0,0 +1,98 @@
+//
+//  MyLessonSearchView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/12.
+//
+
+#import "MyLessonSearchView.h"
+
+@interface MyLessonSearchView ()
+
+@property (nonatomic, copy) SortActionBlock block;
+@property (weak, nonatomic) IBOutlet UIImageView *firstArrow;
+@property (weak, nonatomic) IBOutlet UIImageView *secondArrow;
+@property (weak, nonatomic) IBOutlet UIImageView *thirdArrow;
+
+@end
+
+
+@implementation MyLessonSearchView
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.firstArrowUp = NO;
+    self.secondArrowUp = NO;
+    self.thirdArrowUp = NO;
+}
+
++ (instancetype)shareInstance {
+    MyLessonSearchView *view = [[[NSBundle mainBundle] loadNibNamed:@"MyLessonSearchView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)sortAction:(SortActionBlock)block {
+    if (block) {
+        self.block = block;
+    }
+}
+
+- (IBAction)buttonClickAction:(UIButton *)sender {
+    NSInteger index = sender.tag - 1000;
+    BOOL isHidden;
+    if (index == 1) {
+        self.firstArrowUp = !self.firstArrowUp;
+        self.secondArrowUp = NO;
+        self.thirdArrowUp = NO;
+        isHidden = !self.firstArrowUp;
+    }
+    else if (index == 2) {
+        self.secondArrowUp = !self.secondArrowUp;
+        self.firstArrowUp = NO;
+        self.thirdArrowUp = NO;
+        isHidden = !self.secondArrowUp;
+    }
+    else {
+        self.thirdArrowUp = !self.thirdArrowUp;
+        self.firstArrowUp = NO;
+        self.secondArrowUp = NO;
+        isHidden = !self.thirdArrowUp;
+    }
+    
+    if (self.block) {
+        if (isHidden) {
+            index = 4;
+        }
+        self.block(index);
+    }
+}
+
+- (void)setFirstArrowUp:(BOOL)firstArrowUp {
+    _firstArrowUp = firstArrowUp;
+    NSString *imageName = firstArrowUp ? @"sort_up" : @"sort_down";
+    [_firstArrow setImage:[UIImage imageNamed:imageName]];
+}
+
+- (void)setSecondArrowUp:(BOOL)secondArrowUp {
+    _secondArrowUp = secondArrowUp;
+    NSString *imageName = secondArrowUp ? @"sort_up" : @"sort_down";
+    [_secondArrow setImage:[UIImage imageNamed:imageName]];
+
+
+}
+
+- (void)setThirdArrowUp:(BOOL)thirdArrowUp {
+    _thirdArrowUp = thirdArrowUp;
+    NSString *imageName = thirdArrowUp ? @"sort_up" : @"sort_down";
+    [_thirdArrow setImage:[UIImage imageNamed:imageName]];
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 168 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonSearchView.xib

@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MyLessonSearchView">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="88"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LpR-2y-gXZ">
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="88"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sav-8B-TD3">
+                            <rect key="frame" x="0.0" y="0.0" width="131.5" height="88"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="vSU-NS-Qou">
+                                    <rect key="frame" x="103.5" y="41" width="8" height="6"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="6" id="L0G-Nt-hlU"/>
+                                        <constraint firstAttribute="width" constant="8" id="nhm-Fv-ewC"/>
+                                    </constraints>
+                                </imageView>
+                                <button opaque="NO" tag="1001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CSP-VE-Q55">
+                                    <rect key="frame" x="0.0" y="0.0" width="131.5" height="88"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <state key="normal" title="2022年9月">
+                                        <color key="titleColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                    </state>
+                                    <connections>
+                                        <action selector="buttonClickAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="TaJ-ah-38O"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" red="0.96078431369999995" green="0.96078431369999995" blue="0.96078431369999995" alpha="1" colorSpace="calibratedRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="trailing" secondItem="CSP-VE-Q55" secondAttribute="trailing" id="0bd-hm-rCy"/>
+                                <constraint firstAttribute="bottom" secondItem="CSP-VE-Q55" secondAttribute="bottom" id="5ye-zJ-qJd"/>
+                                <constraint firstAttribute="trailing" secondItem="vSU-NS-Qou" secondAttribute="trailing" constant="20" id="g2D-zv-qIp"/>
+                                <constraint firstItem="CSP-VE-Q55" firstAttribute="top" secondItem="sav-8B-TD3" secondAttribute="top" id="lqg-EV-zPD"/>
+                                <constraint firstItem="vSU-NS-Qou" firstAttribute="centerY" secondItem="sav-8B-TD3" secondAttribute="centerY" id="vSN-3Z-GaR"/>
+                                <constraint firstItem="CSP-VE-Q55" firstAttribute="leading" secondItem="sav-8B-TD3" secondAttribute="leading" id="zIY-Ko-K7m"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EXN-FR-v0M">
+                            <rect key="frame" x="141.5" y="0.0" width="131" height="88"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="OTv-DP-LWv">
+                                    <rect key="frame" x="103" y="41" width="8" height="6"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="8" id="5Xg-pv-7Nq"/>
+                                        <constraint firstAttribute="height" constant="6" id="z2o-1V-B1s"/>
+                                    </constraints>
+                                </imageView>
+                                <button opaque="NO" tag="1002" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4ob-Ur-wiA">
+                                    <rect key="frame" x="0.0" y="0.0" width="131" height="88"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <state key="normal" title="课程状态">
+                                        <color key="titleColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
+                                    </state>
+                                    <connections>
+                                        <action selector="buttonClickAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="dy9-XT-PTc"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" red="0.96078431369999995" green="0.96078431369999995" blue="0.96078431369999995" alpha="1" colorSpace="calibratedRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="trailing" secondItem="OTv-DP-LWv" secondAttribute="trailing" constant="20" id="Agt-B1-juL"/>
+                                <constraint firstItem="4ob-Ur-wiA" firstAttribute="leading" secondItem="EXN-FR-v0M" secondAttribute="leading" id="GtX-9e-ehq"/>
+                                <constraint firstAttribute="trailing" secondItem="4ob-Ur-wiA" secondAttribute="trailing" id="YNZ-vD-gf4"/>
+                                <constraint firstItem="OTv-DP-LWv" firstAttribute="centerY" secondItem="EXN-FR-v0M" secondAttribute="centerY" id="b3Z-oq-v2w"/>
+                                <constraint firstAttribute="bottom" secondItem="4ob-Ur-wiA" secondAttribute="bottom" id="jwa-36-Cbd"/>
+                                <constraint firstItem="4ob-Ur-wiA" firstAttribute="top" secondItem="EXN-FR-v0M" secondAttribute="top" id="ljE-Zk-4Wc"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tfS-Rc-iEN">
+                            <rect key="frame" x="282.5" y="0.0" width="131.5" height="88"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="2nN-nP-Pcx">
+                                    <rect key="frame" x="103.5" y="41" width="8" height="6"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="6" id="Hqu-N6-YGq"/>
+                                        <constraint firstAttribute="width" constant="8" id="RHc-EF-HM2"/>
+                                    </constraints>
+                                </imageView>
+                                <button opaque="NO" tag="1003" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cgC-dL-lRH">
+                                    <rect key="frame" x="0.0" y="0.0" width="131.5" height="88"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <state key="normal" title="全部声部">
+                                        <color key="titleColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                    </state>
+                                    <connections>
+                                        <action selector="buttonClickAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="nuc-JZ-JJe"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" red="0.96078431369999995" green="0.96078431369999995" blue="0.96078431369999995" alpha="1" colorSpace="calibratedRGB"/>
+                            <constraints>
+                                <constraint firstItem="2nN-nP-Pcx" firstAttribute="centerY" secondItem="tfS-Rc-iEN" secondAttribute="centerY" id="5EQ-2B-7AS"/>
+                                <constraint firstAttribute="trailing" secondItem="cgC-dL-lRH" secondAttribute="trailing" id="736-JC-2Pv"/>
+                                <constraint firstItem="cgC-dL-lRH" firstAttribute="top" secondItem="tfS-Rc-iEN" secondAttribute="top" id="Jda-N3-CeP"/>
+                                <constraint firstAttribute="trailing" secondItem="2nN-nP-Pcx" secondAttribute="trailing" constant="20" id="fhr-tv-oYh"/>
+                                <constraint firstAttribute="bottom" secondItem="cgC-dL-lRH" secondAttribute="bottom" id="i38-qz-i66"/>
+                                <constraint firstItem="cgC-dL-lRH" firstAttribute="leading" secondItem="tfS-Rc-iEN" secondAttribute="leading" id="zXE-H5-6j1"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" red="0.96078431369999995" green="0.96078431369999995" blue="0.96078431369999995" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstItem="tfS-Rc-iEN" firstAttribute="leading" secondItem="EXN-FR-v0M" secondAttribute="trailing" constant="10" id="4dx-rG-JsD"/>
+                        <constraint firstItem="EXN-FR-v0M" firstAttribute="bottom" secondItem="sav-8B-TD3" secondAttribute="bottom" id="9F3-pd-MYs"/>
+                        <constraint firstItem="tfS-Rc-iEN" firstAttribute="width" secondItem="sav-8B-TD3" secondAttribute="width" id="CLF-fI-pzs"/>
+                        <constraint firstItem="EXN-FR-v0M" firstAttribute="top" secondItem="sav-8B-TD3" secondAttribute="top" id="FLx-ZH-cjQ"/>
+                        <constraint firstItem="tfS-Rc-iEN" firstAttribute="top" secondItem="sav-8B-TD3" secondAttribute="top" id="Hbw-pi-fCh"/>
+                        <constraint firstItem="sav-8B-TD3" firstAttribute="top" secondItem="LpR-2y-gXZ" secondAttribute="top" id="Ihc-cJ-1Oh"/>
+                        <constraint firstItem="tfS-Rc-iEN" firstAttribute="bottom" secondItem="sav-8B-TD3" secondAttribute="bottom" id="Xfd-4u-1IF"/>
+                        <constraint firstAttribute="bottom" secondItem="sav-8B-TD3" secondAttribute="bottom" id="bu2-X6-Yg6"/>
+                        <constraint firstItem="EXN-FR-v0M" firstAttribute="width" secondItem="sav-8B-TD3" secondAttribute="width" id="fPc-ee-c1N"/>
+                        <constraint firstAttribute="trailing" secondItem="tfS-Rc-iEN" secondAttribute="trailing" id="u1e-Ax-BTi"/>
+                        <constraint firstItem="sav-8B-TD3" firstAttribute="leading" secondItem="LpR-2y-gXZ" secondAttribute="leading" id="uCG-Vn-Bi5"/>
+                        <constraint firstItem="EXN-FR-v0M" firstAttribute="leading" secondItem="sav-8B-TD3" secondAttribute="trailing" constant="10" id="vlA-mz-du1"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="size" keyPath="shadowOffset">
+                            <size key="value" width="0.0" height="2"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="number" keyPath="shadowOpacity">
+                            <real key="value" value="1"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="number" keyPath="shadowRadius">
+                            <real key="value" value="7"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="color" keyPath="shadowUIColor">
+                            <color key="value" red="0.0" green="0.0" blue="0.0" alpha="0.070000000000000007" colorSpace="calibratedRGB"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="LpR-2y-gXZ" secondAttribute="trailing" id="TJN-ui-GfD"/>
+                <constraint firstItem="LpR-2y-gXZ" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="cRb-QE-c94"/>
+                <constraint firstItem="LpR-2y-gXZ" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="jZD-EQ-305"/>
+                <constraint firstAttribute="bottom" secondItem="LpR-2y-gXZ" secondAttribute="bottom" id="mqe-U8-IPW"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="firstArrow" destination="vSU-NS-Qou" id="Kv5-mp-IhS"/>
+                <outlet property="firstButton" destination="CSP-VE-Q55" id="Lyn-Ga-7zx"/>
+                <outlet property="secondArrow" destination="OTv-DP-LWv" id="t4Z-hT-MB6"/>
+                <outlet property="secondButton" destination="4ob-Ur-wiA" id="DiD-8c-xf0"/>
+                <outlet property="thirdArrow" destination="2nN-nP-Pcx" id="VyH-DI-YOp"/>
+                <outlet property="thirdButton" destination="cgC-dL-lRH" id="ct4-B7-EIj"/>
+            </connections>
+            <point key="canvasLocation" x="131.8840579710145" y="-33.482142857142854"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="sort_down" width="10" height="6"/>
+    </resources>
+</document>

+ 21 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.h

@@ -0,0 +1,21 @@
+//
+//  MyLiveCourseCell.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/12.
+//
+
+#import <UIKit/UIKit.h>
+#import "LiveLessonModel.h"
+
+typedef void(^LiveLessonChatAction)(NSString * _Nonnull targetId);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MyLiveCourseCell : UITableViewCell
+
+- (void)configCellWithSource:(LiveLessonModel *)model callback:(LiveLessonChatAction)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 90 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.m

@@ -0,0 +1,90 @@
+//
+//  MyLiveCourseCell.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/12.
+//
+
+#import "MyLiveCourseCell.h"
+
+@interface MyLiveCourseCell ()
+
+@property (weak, nonatomic) IBOutlet UIImageView *courseCoverImage;
+
+@property (weak, nonatomic) IBOutlet UILabel *courseNameLabel;
+
+@property (weak, nonatomic) IBOutlet UILabel *subjectName;
+
+@property (weak, nonatomic) IBOutlet UILabel *descLabel;
+
+@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
+
+@property (weak, nonatomic) IBOutlet UILabel *statusLabel;
+
+@property (nonatomic, strong) NSString *targetId;
+
+@property (nonatomic, copy) LiveLessonChatAction callback;
+@end
+
+@implementation MyLiveCourseCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+    self.selectionStyle = UITableViewCellSelectionStyleNone;
+}
+
+- (void)configCellWithSource:(LiveLessonModel *)model callback:(LiveLessonChatAction)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+    [self.courseCoverImage sd_setImageWithURL:[NSURL URLWithString:model.backgroundPic] placeholderImage:[UIImage imageNamed:@"video_placeholder"]];
+    self.courseNameLabel.text = [NSString returnNoNullStringWithString:model.courseGroupName];
+    self.subjectName.text = [NSString returnNoNullStringWithString:model.subjectName];
+    self.descLabel.text = [NSString stringWithFormat:@"%.0f人已购买",model.studentCount];
+    self.targetId = model.courseGroupId;
+    // time
+    NSDateFormatter *formatter = [NSObject getDateformatter];
+    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
+    NSDate *startDate = [formatter dateFromString:model.startTime];
+    NSDate *endDate = [formatter dateFromString:model.endTime];
+    
+    [formatter setDateFormat:@"yyyy/MM/dd HH:mm"];
+    NSString *courseBegin = [formatter stringFromDate:startDate];
+    [formatter setDateFormat:@"HH:mm"];
+    NSString *endTime = [formatter stringFromDate:endDate];
+    self.timeLabel.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:courseBegin], [NSString returnNoNullStringWithString:endTime]];
+    
+    //  课程状态
+    [self evaluateStatus:model.status];
+}
+
+- (void)evaluateStatus:(NSString *)status {
+    if ([status isEqualToString:@"ING"]) { // 进行中
+        self.statusLabel.text = @"进行中";
+        self.statusLabel.textColor = THEMECOLOR;
+    }
+    else if ([status isEqualToString:@"NOT_START"]) { // 为开始
+        self.statusLabel.text = @"未开始";
+        self.statusLabel.textColor = HexRGB(0xff802c);
+    }
+    else if ([status isEqualToString:@"COMPLETE"]) { // 已结束
+        self.statusLabel.text = @"已结束";
+        self.statusLabel.textColor = HexRGB(0x999999);
+    }
+}
+
+- (IBAction)chatAction:(id)sender {
+    if (self.callback) {
+        self.callback(self.targetId);
+    }
+}
+
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+@end

+ 198 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.xib

@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="164" id="KGk-i7-Jjw" customClass="MyLiveCourseCell">
+            <rect key="frame" x="0.0" y="0.0" width="396" height="164"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="396" height="164"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Mv-FD-03n">
+                        <rect key="frame" x="14" y="0.0" width="368" height="152"/>
+                        <subviews>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="video_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="NWN-u6-1To">
+                                <rect key="frame" x="11" y="16" width="105" height="71"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="105" id="FfC-qz-2vt"/>
+                                    <constraint firstAttribute="height" constant="71" id="I46-Vb-KPv"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="4"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </imageView>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z3n-pP-QqQ">
+                                <rect key="frame" x="10" y="102" width="348" height="1"/>
+                                <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="1" id="h6v-qm-9HE"/>
+                                </constraints>
+                            </view>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="从零开始学竖笛直播课" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9C1-zD-NKp">
+                                <rect key="frame" x="128" y="17" width="153" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="jZt-hb-zgs"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
+                                <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="进行中" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VrX-Hy-enc">
+                                <rect key="frame" x="314" y="111" width="43" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="nme-QD-dNX"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
+                                <color key="textColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Nk8-cr-bIe">
+                                <rect key="frame" x="165.5" y="68" width="190.5" height="20"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="L8Z-vN-njT">
+                                        <rect key="frame" x="0.0" y="4.5" width="1" height="11"/>
+                                        <color key="backgroundColor" red="0.82745098039999998" green="0.82745098039999998" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="11" id="kC6-Sk-pFt"/>
+                                            <constraint firstAttribute="width" constant="1" id="sHX-nY-QUC"/>
+                                        </constraints>
+                                    </view>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="6人已购买" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z2r-ta-wPC">
+                                        <rect key="frame" x="7" y="2" width="61.5" height="16"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                        <color key="textColor" red="1" green="0.50196078430000002" blue="0.17254901959999999" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="6hD-Zm-lqn"/>
+                                    <constraint firstItem="Z2r-ta-wPC" firstAttribute="leading" secondItem="L8Z-vN-njT" secondAttribute="trailing" constant="6" id="DdG-Rm-I06"/>
+                                    <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Z2r-ta-wPC" secondAttribute="trailing" constant="2" id="Jyv-hq-k4o"/>
+                                    <constraint firstItem="L8Z-vN-njT" firstAttribute="centerY" secondItem="Nk8-cr-bIe" secondAttribute="centerY" id="VPS-kd-fiV"/>
+                                    <constraint firstItem="L8Z-vN-njT" firstAttribute="leading" secondItem="Nk8-cr-bIe" secondAttribute="leading" id="l6d-g2-l32"/>
+                                    <constraint firstItem="Z2r-ta-wPC" firstAttribute="centerY" secondItem="Nk8-cr-bIe" secondAttribute="centerY" id="npN-uI-5WD"/>
+                                </constraints>
+                            </view>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_time" translatesAutoresizingMaskIntoConstraints="NO" id="zwg-bj-X8b">
+                                <rect key="frame" x="11" y="114" width="16" height="16"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="16" id="D2y-TK-hj5"/>
+                                    <constraint firstAttribute="width" constant="16" id="jJm-KX-qcy"/>
+                                </constraints>
+                            </imageView>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2021/09/17 14:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QUH-rb-n4x">
+                                <rect key="frame" x="34" y="114" width="105" height="16"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8e5-WE-PwG">
+                                <rect key="frame" x="130" y="70" width="30.5" height="16"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="长笛" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GLH-rY-bmS">
+                                        <rect key="frame" x="4" y="1" width="22.5" height="13"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="11"/>
+                                        <color key="textColor" red="1" green="0.5490196078431373" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                                <color key="backgroundColor" red="1" green="0.94509803921568625" blue="0.87058823529411766" alpha="1" colorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="16" id="2kj-oi-wkU"/>
+                                    <constraint firstAttribute="bottom" secondItem="GLH-rY-bmS" secondAttribute="bottom" constant="2" id="Qwe-R2-kYB"/>
+                                    <constraint firstItem="GLH-rY-bmS" firstAttribute="top" secondItem="8e5-WE-PwG" secondAttribute="top" constant="1" id="aJC-lf-Zrs"/>
+                                    <constraint firstAttribute="trailing" secondItem="GLH-rY-bmS" secondAttribute="trailing" constant="4" id="liw-dJ-aUw"/>
+                                    <constraint firstItem="GLH-rY-bmS" firstAttribute="leading" secondItem="8e5-WE-PwG" secondAttribute="leading" constant="4" id="vuP-BL-Lp9"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="4"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </view>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2Kh-s4-xZJ">
+                                <rect key="frame" x="286" y="7" width="40" height="40"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="40" id="G8p-eG-zeE"/>
+                                    <constraint firstAttribute="width" constant="40" id="W6r-uH-v7W"/>
+                                </constraints>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" image="chat_chat"/>
+                                <connections>
+                                    <action selector="chatAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="sIl-Bo-eWo"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="9C1-zD-NKp" firstAttribute="leading" secondItem="NWN-u6-1To" secondAttribute="trailing" constant="12" id="9xV-WZ-Jeb"/>
+                            <constraint firstAttribute="trailing" secondItem="Nk8-cr-bIe" secondAttribute="trailing" constant="12" id="CVV-yo-0Sx"/>
+                            <constraint firstItem="zwg-bj-X8b" firstAttribute="leading" secondItem="9Mv-FD-03n" secondAttribute="leading" constant="11" id="Eg4-fY-s6L"/>
+                            <constraint firstItem="VrX-Hy-enc" firstAttribute="top" secondItem="Z3n-pP-QqQ" secondAttribute="bottom" constant="8" id="HJr-KG-LRz"/>
+                            <constraint firstItem="Z3n-pP-QqQ" firstAttribute="top" secondItem="NWN-u6-1To" secondAttribute="bottom" constant="15" id="HWE-Lc-PGR"/>
+                            <constraint firstAttribute="trailing" secondItem="VrX-Hy-enc" secondAttribute="trailing" constant="11" id="IuH-hK-LDm"/>
+                            <constraint firstItem="QUH-rb-n4x" firstAttribute="leading" secondItem="zwg-bj-X8b" secondAttribute="trailing" constant="7" id="Kv8-pd-LT7"/>
+                            <constraint firstItem="Nk8-cr-bIe" firstAttribute="centerY" secondItem="8e5-WE-PwG" secondAttribute="centerY" id="WJO-du-YZM"/>
+                            <constraint firstItem="2Kh-s4-xZJ" firstAttribute="leading" secondItem="9C1-zD-NKp" secondAttribute="trailing" constant="5" id="Wf6-Mf-Upf"/>
+                            <constraint firstItem="zwg-bj-X8b" firstAttribute="top" secondItem="Z3n-pP-QqQ" secondAttribute="bottom" constant="11" id="YNp-yH-cDb"/>
+                            <constraint firstItem="NWN-u6-1To" firstAttribute="top" secondItem="9Mv-FD-03n" secondAttribute="top" constant="16" id="cGY-p8-lN7"/>
+                            <constraint firstItem="NWN-u6-1To" firstAttribute="leading" secondItem="9Mv-FD-03n" secondAttribute="leading" constant="11" id="cfe-2g-SQh"/>
+                            <constraint firstItem="8e5-WE-PwG" firstAttribute="leading" secondItem="NWN-u6-1To" secondAttribute="trailing" constant="14" id="gct-Bj-cAn"/>
+                            <constraint firstItem="Z3n-pP-QqQ" firstAttribute="leading" secondItem="9Mv-FD-03n" secondAttribute="leading" constant="10" id="hry-ZU-tVs"/>
+                            <constraint firstItem="9C1-zD-NKp" firstAttribute="top" secondItem="NWN-u6-1To" secondAttribute="top" constant="1" id="jfN-JM-ITb"/>
+                            <constraint firstItem="2Kh-s4-xZJ" firstAttribute="centerY" secondItem="9C1-zD-NKp" secondAttribute="centerY" id="mRw-yl-KmV"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="2Kh-s4-xZJ" secondAttribute="trailing" id="nNd-mX-E6C"/>
+                            <constraint firstAttribute="trailing" secondItem="Z3n-pP-QqQ" secondAttribute="trailing" constant="10" id="oVA-kc-t3T"/>
+                            <constraint firstItem="8e5-WE-PwG" firstAttribute="bottom" secondItem="NWN-u6-1To" secondAttribute="bottom" constant="-1" id="r3t-nW-e8s"/>
+                            <constraint firstItem="QUH-rb-n4x" firstAttribute="centerY" secondItem="zwg-bj-X8b" secondAttribute="centerY" id="uBT-wz-dHP"/>
+                            <constraint firstItem="Nk8-cr-bIe" firstAttribute="leading" secondItem="8e5-WE-PwG" secondAttribute="trailing" constant="5" id="zoz-sK-NnJ"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                <real key="value" value="10"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="9Mv-FD-03n" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="AO0-g2-drH"/>
+                    <constraint firstAttribute="bottom" secondItem="9Mv-FD-03n" secondAttribute="bottom" constant="12" id="VYf-HS-AeG"/>
+                    <constraint firstItem="9Mv-FD-03n" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="ZcW-pC-Pdu"/>
+                    <constraint firstAttribute="trailing" secondItem="9Mv-FD-03n" secondAttribute="trailing" constant="14" id="zxh-ku-GLf"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <connections>
+                <outlet property="courseCoverImage" destination="NWN-u6-1To" id="5H2-Pf-5WA"/>
+                <outlet property="courseNameLabel" destination="9C1-zD-NKp" id="dMl-ob-iwk"/>
+                <outlet property="descLabel" destination="Z2r-ta-wPC" id="DTT-W9-umA"/>
+                <outlet property="statusLabel" destination="VrX-Hy-enc" id="6M9-tY-aZT"/>
+                <outlet property="subjectName" destination="GLH-rY-bmS" id="CtN-f5-rMC"/>
+                <outlet property="timeLabel" destination="QUH-rb-n4x" id="RV0-zl-r5M"/>
+            </connections>
+            <point key="canvasLocation" x="186.95652173913044" y="118.52678571428571"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="chat_chat" width="19" height="18"/>
+        <image name="course_time" width="16" height="16"/>
+        <image name="video_placeholder" width="168" height="111"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveLessionBodyView.h

@@ -0,0 +1,16 @@
+//
+//  MyLiveLessionBodyView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/12.
+//
+
+#import "kSJXCollectionView.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MyLiveLessionBodyView : kSJXCollectionView
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 20 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveLessionBodyView.m

@@ -0,0 +1,20 @@
+//
+//  MyLiveLessionBodyView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/12.
+//
+
+#import "MyLiveLessionBodyView.h"
+
+@implementation MyLiveLessionBodyView
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 19 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopCell.h

@@ -0,0 +1,19 @@
+//
+//  NewClassPopCell.h
+//  StudentDaya
+//
+//  Created by Kyle on 2019/10/1.
+//  Copyright © 2019 DayaMusic. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NewClassPopCell : UITableViewCell
+
+- (void)configCellWithName:(NSString *)name isChoose:(BOOL)isChoose;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 36 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopCell.m

@@ -0,0 +1,36 @@
+//
+//  NewClassPopCell.m
+//  StudentDaya
+//
+//  Created by Kyle on 2019/10/1.
+//  Copyright © 2019 DayaMusic. All rights reserved.
+//
+
+#import "NewClassPopCell.h"
+
+@interface NewClassPopCell ()
+
+@property (weak, nonatomic) IBOutlet UILabel *rowLabel;
+
+@end
+
+@implementation NewClassPopCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+    self.selectionStyle = UITableViewCellSelectionStyleNone;
+}
+
+- (void)configCellWithName:(NSString *)name isChoose:(BOOL)isChoose {
+    self.rowLabel.text = name;
+    self.rowLabel.textColor = isChoose ? THEMECOLOR : HexRGB(0x444444);
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+@end

+ 51 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopCell.xib

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KGk-i7-Jjw" customClass="NewClassPopCell">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tI5-r3-BIA">
+                        <rect key="frame" x="0.0" y="39" width="375" height="1"/>
+                        <color key="backgroundColor" red="0.96078431372549022" green="0.96078431372549022" blue="0.96078431372549022" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="1" id="Gj5-PS-Sn5"/>
+                        </constraints>
+                    </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="乐团课" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CeC-4C-Jmf">
+                        <rect key="frame" x="166" y="11.5" width="43" height="17"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
+                        <color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                </subviews>
+                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                <constraints>
+                    <constraint firstItem="CeC-4C-Jmf" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="NKZ-u7-BIs"/>
+                    <constraint firstAttribute="trailing" secondItem="tI5-r3-BIA" secondAttribute="trailing" id="TwU-kn-8qL"/>
+                    <constraint firstItem="CeC-4C-Jmf" firstAttribute="centerX" secondItem="H2p-sc-9uM" secondAttribute="centerX" id="ZDd-Wx-iyZ"/>
+                    <constraint firstItem="tI5-r3-BIA" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="nma-Yh-5hA"/>
+                    <constraint firstAttribute="bottom" secondItem="tI5-r3-BIA" secondAttribute="bottom" id="oiI-XI-E9M"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <connections>
+                <outlet property="rowLabel" destination="CeC-4C-Jmf" id="feD-q4-dQC"/>
+            </connections>
+            <point key="canvasLocation" x="140" y="120"/>
+        </tableViewCell>
+    </objects>
+</document>

+ 26 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopView.h

@@ -0,0 +1,26 @@
+//
+//  NewClassPopView.h
+//  StudentDaya
+//
+//  Created by Kyle on 2019/10/1.
+//  Copyright © 2019 DayaMusic. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+typedef void(^ChooseReturnBlock)(NSString * _Nonnull sortStr, NSInteger chooseIndex, NSInteger item);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NewClassPopView : UIView
+
+- (instancetype)initWithFrame:(CGRect)frame chooseCallback:(ChooseReturnBlock)callback;
+
+- (void)refreshWithSourceArray:(NSArray *)sourceArray preChooseIndex:(NSInteger)preIndex inView:(UIView *)view actionItem:(NSInteger)item;
+
+- (void)showInView:(UIView *)view;
+
+- (void)hiddenView;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 127 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/PopView/NewClassPopView.m

@@ -0,0 +1,127 @@
+//
+//  NewClassPopView.m
+//  StudentDaya
+//
+//  Created by Kyle on 2019/10/1.
+//  Copyright © 2019 DayaMusic. All rights reserved.
+//
+
+#import "NewClassPopView.h"
+#import "NewClassPopCell.h"
+
+#define TABLE_CELL_HEIGHT (50)
+@interface NewClassPopView ()<UITableViewDelegate,UITableViewDataSource>
+
+@property (nonatomic, copy) ChooseReturnBlock callback;
+
+@property (nonatomic, strong) UITableView *tableView;
+
+@property (nonatomic, strong) UIView *tapView;
+
+@property (nonatomic, strong) NSArray *sourceArray;
+
+@property (nonatomic, assign) NSInteger preIndex;
+
+@property (nonatomic, assign) NSInteger actionItem;
+
+@end
+
+@implementation NewClassPopView
+
+- (instancetype)initWithFrame:(CGRect)frame chooseCallback:(ChooseReturnBlock)callback {
+    if (self = [super initWithFrame:frame]) {
+        self.backgroundColor = HexRGBAlpha(0x000000, 0.5f);
+        if (callback) {
+            self.callback = callback;
+            [self configUI];
+        }
+    }
+    return self;
+}
+
+- (void)configUI {
+    [self addSubview:self.tableView];
+    [self addSubview:self.tapView];
+    UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapHiddenView)];
+    [self.tapView addGestureRecognizer:gesture];
+}
+
+- (void)refreshWithSourceArray:(NSArray *)sourceArray preChooseIndex:(NSInteger)preIndex inView:(UIView *)view actionItem:(NSInteger)item {
+    self.sourceArray = [NSArray arrayWithArray:sourceArray];
+    self.actionItem = item;
+    self.preIndex = preIndex;
+    CGRect frame = self.tableView.frame;
+    frame.size.height = TABLE_CELL_HEIGHT * sourceArray.count;
+    self.tableView.frame = frame;
+    self.tableView.scrollEnabled = NO;
+    [self.tableView reloadData];
+    self.tapView.frame = CGRectMake(0, CGRectGetMaxY(self.tableView.frame), CGRectGetWidth(self.frame), CGRectGetHeight(self.frame) - CGRectGetHeight(self.tableView.frame));
+    [self showInView:view];
+}
+
+- (void)showInView:(UIView *)view {
+    [view addSubview:self];
+}
+
+- (void)tapHiddenView {
+    if (self.callback) {
+        self.callback(@"", 0, self.actionItem);
+    }
+}
+
+- (void)hiddenView {
+    [self removeFromSuperview];
+}
+
+
+#pragma mark --- table data source
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return self.sourceArray.count;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    NewClassPopCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NewClassPopCell"];
+    NSString *titleStr = self.sourceArray[indexPath.row];
+    BOOL isChoose = _preIndex == indexPath.row + 1 ? YES : NO;
+    [cell configCellWithName:titleStr isChoose:isChoose];
+    return cell;
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+    
+    if (self.callback) {
+        NSString *titleStr = self.sourceArray[indexPath.row];
+        self.callback(titleStr, indexPath.row+1, self.actionItem);
+        [self hiddenView];
+    }
+}
+
+- (UITableView *)tableView {
+    if (!_tableView) {
+        _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.frame), CGRectGetHeight(self.frame)) style:UITableViewStylePlain];
+        _tableView.backgroundColor = [UIColor clearColor];
+        _tableView.delegate = self;
+        _tableView.dataSource = self;
+        _tableView.rowHeight = TABLE_CELL_HEIGHT;
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        [_tableView registerNib:[UINib nibWithNibName:@"NewClassPopCell" bundle:nil] forCellReuseIdentifier:@"NewClassPopCell"];
+    }
+    return _tableView;
+}
+
+- (UIView *)tapView {
+    if (!_tapView) {
+        _tapView  = [[UIView alloc] init];
+        
+    }
+    return _tapView;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 9 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/CreateStyle/View/InstrumentChooseCell.xib

@@ -24,13 +24,16 @@
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="dbO-Xw-Sfj">
                                 <rect key="frame" x="0.0" y="0.0" width="153" height="158"/>
                             </imageView>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="instrument_shadow" translatesAutoresizingMaskIntoConstraints="NO" id="in2-KE-vrH">
+                                <rect key="frame" x="0.0" y="0.0" width="153" height="158"/>
+                            </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="单簧管" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AfO-mp-RH6">
                                 <rect key="frame" x="7" y="129" width="139" height="22"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="22" id="aR3-f9-nyE"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
-                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="unChoose_instrument" translatesAutoresizingMaskIntoConstraints="NO" id="iEB-Cn-yoM">
@@ -40,13 +43,17 @@
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
                             <constraint firstItem="iEB-Cn-yoM" firstAttribute="top" secondItem="aMj-6T-ziE" secondAttribute="top" constant="7" id="2lq-Ia-A9O"/>
+                            <constraint firstItem="in2-KE-vrH" firstAttribute="top" secondItem="dbO-Xw-Sfj" secondAttribute="top" id="4Ts-fe-DLg"/>
                             <constraint firstAttribute="trailing" secondItem="AfO-mp-RH6" secondAttribute="trailing" constant="7" id="5Wv-bk-WgY"/>
                             <constraint firstItem="dbO-Xw-Sfj" firstAttribute="top" secondItem="aMj-6T-ziE" secondAttribute="top" id="614-Cc-fFn"/>
+                            <constraint firstItem="in2-KE-vrH" firstAttribute="bottom" secondItem="dbO-Xw-Sfj" secondAttribute="bottom" id="EVD-Mk-U4h"/>
                             <constraint firstAttribute="bottom" secondItem="dbO-Xw-Sfj" secondAttribute="bottom" id="Iva-PK-3qa"/>
                             <constraint firstItem="AfO-mp-RH6" firstAttribute="leading" secondItem="aMj-6T-ziE" secondAttribute="leading" constant="7" id="QH7-im-tpe"/>
                             <constraint firstAttribute="trailing" secondItem="iEB-Cn-yoM" secondAttribute="trailing" constant="7" id="Qob-IA-Uui"/>
                             <constraint firstAttribute="trailing" secondItem="dbO-Xw-Sfj" secondAttribute="trailing" id="dvg-ST-Oxp"/>
                             <constraint firstItem="dbO-Xw-Sfj" firstAttribute="leading" secondItem="aMj-6T-ziE" secondAttribute="leading" id="jpM-gl-ap7"/>
+                            <constraint firstItem="in2-KE-vrH" firstAttribute="trailing" secondItem="dbO-Xw-Sfj" secondAttribute="trailing" id="lia-u2-jQ3"/>
+                            <constraint firstItem="in2-KE-vrH" firstAttribute="leading" secondItem="dbO-Xw-Sfj" secondAttribute="leading" id="sgk-YX-ZDj"/>
                             <constraint firstAttribute="bottom" secondItem="AfO-mp-RH6" secondAttribute="bottom" constant="7" id="yk7-Mt-ZIh"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
@@ -74,6 +81,7 @@
         </collectionViewCell>
     </objects>
     <resources>
+        <image name="instrument_shadow" width="108" height="108"/>
         <image name="unChoose_instrument" width="22" height="22"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>

+ 0 - 10
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.m

@@ -117,16 +117,6 @@
                 LiveCourseModel *model = [[LiveCourseModel alloc] initWithDictionary:parm];
                 [self.dataArray addObject:model];
             }
-//            for (NSInteger i = 0; i < 5; i++) {
-//                LiveCourseModel *model = [[LiveCourseModel alloc] init];
-//                model.courseStartTime = @"2021-09-17 14:00:00";
-//                model.courseNum = 5;
-//                model.studentCount = 10;
-//                model.teacherName = @"zahgns";
-//                model.coursePrice = 125;
-//                model.courseGroupName = @"nihao  ssss";
-//                [self.dataArray addObject:model];
-//            }
             
             if (sourceArray.count < self.rows) {
                 self.isLoadMore = NO;

+ 30 - 11
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m

@@ -106,7 +106,33 @@
         
     }
     else if (self.selectIndex == 2) { // 直播课
-        
+        [KSNetworkingManager LiveCourseGroupRequest:KS_POST groupStatus:@"APPLY" page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+            [self endRefresh];
+            if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+                NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+                for (NSDictionary *parm in sourceArray) {
+                    LiveCourseModel *model = [[LiveCourseModel alloc] initWithDictionary:parm];
+                    [self.dataArray addObject:model];
+                }
+                
+                if (sourceArray.count < self.rows) {
+                    self.isLoadMore = NO;
+                }
+            }
+            else {
+                [self MBPShow:MESSAGEKEY];
+            }
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        } faliure:^(NSError * _Nonnull error) {
+            [self endRefresh];
+            if (self.networkAvaiable == NO) {
+                [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+            }
+            [self.dataArray removeAllObjects];
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        }];
     }
     else if (self.selectIndex == 4) { // 乐谱
         [KSNetworkingManager musicListRequest:KS_POST auditStatus:@"1" pageNo:self.pages pageSize:self.rows success:^(NSDictionary * _Nonnull dic) {
@@ -117,15 +143,6 @@
                     MusicMessageModel *model = [[MusicMessageModel alloc] initWithDictionary:parm];
                     [self.dataArray addObject:model];
                 }
-    //            for (int i = 0 ; i < 10; i++) {
-    //                MusicMessageModel *model = [[MusicMessageModel alloc] init];
-    //                model.username = @"hahahha";
-    //                model.chargeType = 0;
-    //                model.musicSheetName = @"小夜曲";
-    //                model.composer = @"肖邦";
-    //                model.musicTag = @"钢琴,古典,10级";
-    //                [self.dataArray addObject:model];
-    //            }
                 if (sourceArray.count < self.rows) {
                     self.isLoadMore = NO;
                 }
@@ -183,7 +200,6 @@
             [self hideAuthView];
         }
     }
-    
 }
 
 #pragma mark - UITableViewDataSource
@@ -211,6 +227,9 @@
     }
     else if (self.selectIndex == 2) {
         LiveCourseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"LiveCourseCell"];
+        LiveCourseModel *model = self.dataArray[indexPath.row];
+        BOOL hiddenInfo = NO;
+        [cell configCellWithSource:model hideStudentInfo:hiddenInfo];
         return cell;
     }
     else {

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.m

@@ -97,7 +97,7 @@
 }
 
 - (CGFloat)getViewHeight {
-    return self.topHeight.constant + 10 +22 + 50 + 128 + 10;
+    return self.topHeight.constant + 10 +22 + 30 + 128;
 }
 
 - (void)configTagViewWithTagArray:(NSArray *)tagArray maxWidth:(CGFloat)maxWidth {

+ 11 - 11
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.xib

@@ -38,7 +38,7 @@
                     </connections>
                 </button>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gu1-Kt-jR8">
-                    <rect key="frame" x="14" y="137" width="386" height="128"/>
+                    <rect key="frame" x="14" y="117" width="386" height="128"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="PIB-VW-gBp">
                             <rect key="frame" x="11" y="14" width="58" height="58"/>
@@ -52,8 +52,8 @@
                                 </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
                         </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="li老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WL1-jV-cKh">
-                            <rect key="frame" x="79" y="18" width="46" height="25"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WL1-jV-cKh">
+                            <rect key="frame" x="79" y="18" width="0.0" height="25"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="25" id="KZP-Tk-E2j"/>
                             </constraints>
@@ -87,25 +87,25 @@
                             </constraints>
                         </view>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="粉丝" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RN4-9b-uoK">
-                            <rect key="frame" x="204" y="93" width="29" height="17"/>
+                            <rect key="frame" x="252" y="93" width="29" height="17"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="134" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Plf-H0-xrF">
-                            <rect key="frame" x="238" y="91" width="30" height="21"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Plf-H0-xrF">
+                            <rect key="frame" x="286" y="101.5" width="0.0" height="0.0"/>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
                             <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已上课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KOU-oC-lEb">
-                            <rect key="frame" x="295" y="93" width="58" height="17"/>
+                            <rect key="frame" x="313" y="93" width="58" height="17"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2OS-eZ-zCG">
-                            <rect key="frame" x="358" y="89.5" width="18" height="24"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2OS-eZ-zCG">
+                            <rect key="frame" x="376" y="89.5" width="0.0" height="24"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="24" id="b2b-gv-7z2"/>
                             </constraints>
@@ -114,7 +114,7 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Vga-wo-2yB">
-                            <rect key="frame" x="281" y="95.5" width="1" height="12"/>
+                            <rect key="frame" x="299" y="95.5" width="1" height="12"/>
                             <color key="backgroundColor" red="0.82745098039215681" green="0.82745098039215681" blue="0.82745098039215681" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="12" id="4b5-Nb-Iph"/>
@@ -157,7 +157,7 @@
                 <constraint firstAttribute="trailing" secondItem="thf-Z9-Jzc" secondAttribute="trailing" id="10A-zz-Sjc"/>
                 <constraint firstItem="7zL-CV-PVX" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="55" id="2wx-ru-blr"/>
                 <constraint firstItem="7zL-CV-PVX" firstAttribute="centerY" secondItem="LL3-u6-PTR" secondAttribute="centerY" id="4Gt-Uo-ifz"/>
-                <constraint firstItem="Gu1-Kt-jR8" firstAttribute="top" secondItem="LL3-u6-PTR" secondAttribute="bottom" constant="50" id="66h-qO-Rfa"/>
+                <constraint firstItem="Gu1-Kt-jR8" firstAttribute="top" secondItem="LL3-u6-PTR" secondAttribute="bottom" constant="30" id="66h-qO-Rfa"/>
                 <constraint firstAttribute="trailing" secondItem="Gu1-Kt-jR8" secondAttribute="trailing" constant="14" id="7bq-Iz-u49"/>
                 <constraint firstItem="thf-Z9-Jzc" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="GZK-Nn-oSU"/>
                 <constraint firstItem="thf-Z9-Jzc" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="L9Y-JA-QTd"/>

+ 5 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageVideoView.m

@@ -91,7 +91,7 @@
 }
 
 - (void)requestData {
-    [KSNetworkingManager videoLessonListRequest:KS_POST auditStatus:@"PASS" pageNo:self.pages pageSize:self.rows success:^(NSDictionary * _Nonnull dic) {
+    [KSNetworkingManager videoLessonListRequest:KS_POST lessonSubject:nil auditStatus:@"PASS" pageNo:self.pages pageSize:self.rows success:^(NSDictionary * _Nonnull dic) {
         [self endRefresh];
         if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
             NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
@@ -184,7 +184,10 @@
 }
 
 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
-    
+    VideoCourseModel *model = [self.dataArray objectAtIndex:indexPath.row];
+    KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+    ctrl.url = [NSString stringWithFormat:@"%@%@%.0f", WEBHOST, @"/#/videoDetail?groupId=",model.internalBaseClassIdentifier];
+    [self.naviController pushViewController:ctrl animated:YES];
 }
 
 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {

+ 1 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/View/VeriCheckView.m

@@ -8,6 +8,7 @@
 
 #import "VeriCheckView.h"
 #import "UIButton+EnlargeEdge.h"
+#import <SDWebImage/SDImageCache.h>
 
 @interface VeriCheckView ()<UIGestureRecognizerDelegate,UITextFieldDelegate>
 

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoListBodyView.m

@@ -94,7 +94,7 @@
 }
 
 - (void)requestData {
-    [KSNetworkingManager videoLessonListRequest:KS_POST auditStatus:self.audioStatus pageNo:self.pages pageSize:self.rows success:^(NSDictionary * _Nonnull dic) {
+    [KSNetworkingManager videoLessonListRequest:KS_POST lessonSubject:nil auditStatus:self.audioStatus pageNo:self.pages pageSize:self.rows success:^(NSDictionary * _Nonnull dic) {
         [self endRefresh];
         if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
             NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];

BIN
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/Assets.car


BIN
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/KulexiuForTeacher


BIN
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/MinePageHeadView.nib


BIN
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/MineVideoCell.nib


BIN
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/PasswordBodyView.nib


+ 47 - 14
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/_CodeSignature/CodeResources

@@ -54,7 +54,7 @@
 		</data>
 		<key>Assets.car</key>
 		<data>
-		LOC6UZd6ZqlgHd7UxrJSuq0DjaA=
+		VK7HUZDw92shLwse6NF+lUCj+d4=
 		</data>
 		<key>AuthDisplayView.nib</key>
 		<data>
@@ -318,11 +318,11 @@
 		</data>
 		<key>InstrumentChooseCell.nib/objects-12.3+.nib</key>
 		<data>
-		clkQY2gm3zMMeLSHrL0YgSDC4Qo=
+		fXk8JNo1zXyAVCEJw4KkmazgmAI=
 		</data>
 		<key>InstrumentChooseCell.nib/runtime.nib</key>
 		<data>
-		QKO3KARTTx9o+UTP24uVDqmkDv8=
+		3ZImnK9isF1rdyodmgi6VfDN/ZY=
 		</data>
 		<key>InstrumentHeaderView.nib</key>
 		<data>
@@ -542,7 +542,7 @@
 		</data>
 		<key>MinePageHeadView.nib</key>
 		<data>
-		G98MmELFYLHjaYzf6nSAHcx2B/k=
+		qjNRahJeBkZq+QPqGkQZ3kXPWzg=
 		</data>
 		<key>MinePageMusicCell.nib</key>
 		<data>
@@ -562,7 +562,7 @@
 		</data>
 		<key>MineVideoCell.nib</key>
 		<data>
-		gm8fSwuixfmw0tjntvQtatw6DNg=
+		+7O1eXuqvPu1gy3BuJA2JzYZJsE=
 		</data>
 		<key>ModifyBodyView.nib</key>
 		<data>
@@ -580,6 +580,14 @@
 		<data>
 		Pu9AaXK2hHoR6FLPQwKg+XqaMko=
 		</data>
+		<key>MyLessonSearchView.nib</key>
+		<data>
+		2wz7n5ahsPFMFHJUBf5UnoCHxF8=
+		</data>
+		<key>MyLiveCourseCell.nib</key>
+		<data>
+		FRfgYJWduUFCWx7+2NmfNpM7i3Q=
+		</data>
 		<key>MyStyleBottomView.nib</key>
 		<data>
 		eljnJnOkZLlQ0X5keIkxSQgKN6c=
@@ -598,19 +606,23 @@
 		</data>
 		<key>MyStyleVideoView.nib</key>
 		<data>
-		a51chxeeLjzJO4UsKPDLlM+0W2c=
+		ji2czP6qG4mY9M6nAC0/ULpw/ZM=
 		</data>
 		<key>NetworkBodyView.nib</key>
 		<data>
 		xSuhJ2dLBWmrrceKlyOIa0yTOlA=
 		</data>
+		<key>NewClassPopCell.nib</key>
+		<data>
+		9G6IN+Cz7hZKtnLfEUzfhDKRsCI=
+		</data>
 		<key>NoticeEditBodyView.nib</key>
 		<data>
 		5452Fcd+pxHBaePYyw5m7d1FWb8=
 		</data>
 		<key>PasswordBodyView.nib</key>
 		<data>
-		GlWDzh3vt6X4IhMedwolP4pE/Ns=
+		/mVTnW3khVQBUk8PKUtApp2tVf8=
 		</data>
 		<key>PhoneChangeBodyView.nib</key>
 		<data>
@@ -3686,7 +3698,7 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			YiQkovTbJpPH4vbVDdV+s63xa+41rwFO4uGLW3j5/nk=
+			IK6njEkD82DMQDQ5GuCTtaMmUzGhM1Omh7kwfvzhYHA=
 			</data>
 		</dict>
 		<key>AuthDisplayView.nib</key>
@@ -4141,14 +4153,14 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			YWjuiBtEyTCiPch6hayBTVyXhWV/WoQTxJljZNoFVTw=
+			IAeG0uSwotNsW06jJrZiF1v0m9uL/VgT70Sscccgy3w=
 			</data>
 		</dict>
 		<key>InstrumentChooseCell.nib/runtime.nib</key>
 		<dict>
 			<key>hash2</key>
 			<data>
-			YTc7VTbbcS+x5QAAj/oEfvuyGc1oifu0kUGn4BwQtpk=
+			MuU7lk2KpXoh8qX5YG0ATYunvXnTxhts7LbbO6D831g=
 			</data>
 		</dict>
 		<key>InstrumentHeaderView.nib</key>
@@ -4506,7 +4518,7 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			8qZHyYv+BYNMSpf6zjOhzGy24VEIigSQuMwAhyx0FL8=
+			SMUYYBZUcCG2gxkXpQD2GMS6ObMuyr2yJcODtlbyuz4=
 			</data>
 		</dict>
 		<key>MinePageMusicCell.nib</key>
@@ -4541,7 +4553,7 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			Q8KfTb9TjSUjUEPelZImjsrLAFbVBvWxN3HwLap1q1g=
+			Bit0AzjLaZFZSz2m0VKzO1So3IYi3+45QJk5fNnUvoo=
 			</data>
 		</dict>
 		<key>ModifyBodyView.nib</key>
@@ -4572,6 +4584,20 @@
 			fyDic2r5I8Hqg9kZXltkoXXyBxSmmIyfxmVQPOZ0nzY=
 			</data>
 		</dict>
+		<key>MyLessonSearchView.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			5G2rbWnIhgR5EmXL+8ecpHk5yVGzj4LMrLOvH8AWe1o=
+			</data>
+		</dict>
+		<key>MyLiveCourseCell.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			4AxeHiFyGjNpST+sLN7VcKL3rvO75YAc4CSYt+q11mk=
+			</data>
+		</dict>
 		<key>MyStyleBottomView.nib</key>
 		<dict>
 			<key>hash2</key>
@@ -4604,7 +4630,7 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			c59FdnDuaeJB5NiDs8VuuISdwzB2iSKiFGGTuOx+kRs=
+			DN8bi5S073oPf3amhMAPStLpren/snunNxd4A/oR1AQ=
 			</data>
 		</dict>
 		<key>NetworkBodyView.nib</key>
@@ -4614,6 +4640,13 @@
 			9CU/IKIS4FiLAy+s6gEluwxY/WX4nvtZHkfIgXlte9U=
 			</data>
 		</dict>
+		<key>NewClassPopCell.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			B4ZS0p0GZIBkstkCTkPHSy90/IIjmwyQKD7vzxrzNqk=
+			</data>
+		</dict>
 		<key>NoticeEditBodyView.nib</key>
 		<dict>
 			<key>hash2</key>
@@ -4625,7 +4658,7 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			q17L3R+/tu79tAhNAS33jMw6FDgd4ITvdAgR7kX8zTw=
+			SM0CFZKqOEzL2kY+PQ3rSH8c3hwwwy8AYPbkDT2NE9Y=
 			</data>
 		</dict>
 		<key>PhoneChangeBodyView.nib</key>

BIN
KulexiuForTeacher/build/Debug-iphonesimulator/SDWebImage/libSDWebImage.a


BIN
KulexiuForTeacher/build/Debug-iphonesimulator/Whiteboard/libWhiteboard.a


BIN
KulexiuForTeacher/build/Debug-iphonesimulator/libPods-KulexiuForTeacher.a


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphoneos/KulexiuForTeacher.build/KulexiuForTeacher-project-headers.hmap


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/KulexiuForTeacher-project-headers.hmap


+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarCell.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarCollectionView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarConfig.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarDate.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarHeader.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarHelper.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarManager.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarPicker.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AboutUsBodyView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AboutUsViewController.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AccompanyCourseCell.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AccompanyDownloadCallbackMessage.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AccompanyDownloadMessage.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AddressViewController.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AnimationContoller.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AppDelegate.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ApplyBottomView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ApplyMemberModel.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ApplySpeechMessage.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ApplySpeechResultMessage.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ArchiveTools.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AssistantTransferMessage.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AudioPlayManager.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AudioRecordManager.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AuthDisplayView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/BaseViewController.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CALayer+Color.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CALayer+Layout.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CREmojiCollectionCell.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatAddressBodyView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatAddressHeaderView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatAddressViewController.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatAreaView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatComplainBodyView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatNavView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ChatViewController.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ClassSongMessage.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ClassTitleView.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ClassTitleView.o


+ 1 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ClassVideoListCell.d

@@ -32,6 +32,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshHeader.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/GifRefresh/KSGifRefreshFooter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/UIView+SubViewExtension.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Category/NSObject+KSDateFormatter.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/KSSafeObject.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSArray+KSSafe.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/SafeControl/NSDictionary+KSSafe.h \

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません