Steven 3 سال پیش
والد
کامیت
919f973fe6
93فایلهای تغییر یافته به همراه1010 افزوده شده و 238 حذف شده
  1. 21 9
      KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForStudent/KulexiuForStudent.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 133 5
      KulexiuForStudent/KulexiuForStudent.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 33 11
      KulexiuForStudent/KulexiuForStudent/AppDelegate.m
  5. 1 1
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/Contents.json
  6. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/Icon.png
  7. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadApp_76pt.png
  8. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadApp_76pt@2x.png
  9. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadNotifications_20pt.png
  10. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadNotifications_20pt@2x.png
  11. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadProApp_83.5pt@2x.png
  12. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight5_29pt.png
  13. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight5_29pt@2x.png
  14. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight7_40pt.png
  15. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight7_40pt@2x.png
  16. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneApp_60pt@2x.png
  17. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneApp_60pt@3x.png
  18. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneNotification_20pt@2x.png
  19. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneNotification_20pt@3x.png
  20. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight5_29pt@2x.png
  21. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight5_29pt@3x.png
  22. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight7_40pt@2x.png
  23. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight7_40pt@3x.png
  24. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/colexiu1024.png
  25. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_course.imageset/Contents.json
  26. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_course.imageset/empty_course@2x.png
  27. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_course.imageset/empty_course@3x.png
  28. 22 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_videoCourse.imageset/Contents.json
  29. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_videoCourse.imageset/empty_videoCourse@2x.png
  30. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_videoCourse.imageset/empty_videoCourse@3x.png
  31. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/no_networking.imageset/no_networking@2x.png
  32. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/no_networking.imageset/no_networking@3x.png
  33. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/wd_img_zwsj.imageset/wd_img_zwsj@2x.png
  34. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/wd_img_zwsj.imageset/wd_img_zwsj@3x.png
  35. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Home/home_more.imageset/home_more@2x.png
  36. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Home/home_more.imageset/home_more@3x.png
  37. 16 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseAlertView.h
  38. 20 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseAlertView.m
  39. 1 1
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseViewController.m
  40. 12 2
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseWKWebViewController.m
  41. 1 1
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m
  42. 2 2
      KulexiuForStudent/KulexiuForStudent/Common/Define/PrefixHeader.pch
  43. 26 0
      KulexiuForStudent/KulexiuForStudent/Common/KSShareGroupViewController.h
  44. 178 0
      KulexiuForStudent/KulexiuForStudent/Common/KSShareGroupViewController.m
  45. 1 1
      KulexiuForStudent/KulexiuForStudent/Common/Tools/UMShare/KSUMShareManager.h
  46. 89 39
      KulexiuForStudent/KulexiuForStudent/Common/Tools/UMShare/KSUMShareManager.m
  47. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSChatConversationViewController.m
  48. 2 2
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSChatListViewController.m
  49. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.m
  50. 3 3
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.xib
  51. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Classroom/Controller/NewClassRoomViewController.m
  52. 2 2
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.xib
  53. 2 2
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.xib
  54. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.xib
  55. 7 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/Controller/CourseViewController.m
  56. 18 2
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/Controller/MusicRoomDetailViewController.m
  57. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.h
  58. 6 0
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.m
  59. 5 2
      KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.xib
  60. 11 2
      KulexiuForStudent/KulexiuForStudent/Module/Home/Controller/HomeViewController.m
  61. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Home/NoticeCenter/Controller/NotiferMessageViewController.m
  62. 24 5
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeHotAlbumView.xib
  63. 26 5
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeIntroduceView.xib
  64. 24 5
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeLiveCourseView.xib
  65. 5 2
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeLiveCouseCell.m
  66. 41 22
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeLiveCouseCell.xib
  67. 17 2
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeNavView.xib
  68. 6 3
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeVideoCourseCell.m
  69. 25 12
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeVideoCourseCell.xib
  70. 24 5
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeVideoCourseView.xib
  71. 25 6
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/HotInformationHeadView.xib
  72. 4 2
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/KSHomeButton.xib
  73. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/TeacherShowCell.m
  74. 17 28
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/TeacherShowCell.xib
  75. 8 0
      KulexiuForStudent/KulexiuForStudent/Module/Login/View/FirstSettingBodyView.xib
  76. 2 2
      KulexiuForStudent/KulexiuForStudent/Module/Login/View/LoginBodyView.m
  77. 12 15
      KulexiuForStudent/KulexiuForStudent/Module/Login/View/LoginBodyView.xib
  78. 2 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Controller/HomeworkListViewController.m
  79. 3 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkDetailModel.h
  80. 29 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkDetailModel.m
  81. 1 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkListModel.h
  82. 7 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkListModel.m
  83. 1 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkBodyView.m
  84. 16 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListCell.m
  85. 3 2
      KulexiuForStudent/KulexiuForStudent/Module/Mine/MineCourse/Controller/MyCourseViewController.m
  86. 5 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/MineCourse/View/MyLessonBodyView.m
  87. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/MineCourse/View/MyVideoCourseBodyView.m
  88. 36 19
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Networking/View/KSNetworkAlert.xib
  89. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/View/AboutUsBodyView.m
  90. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/View/FeedbackBodyView.m
  91. 2 0
      KulexiuForStudent/KulexiuForStudent/Module/SealClass/Services/Classroom/ClassroomService.m
  92. 0 1
      KulexiuForStudent/KulexiuForStudent/Module/SealClass/Services/Classroom/Model/Classroom.m
  93. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/SealClass/Services/RTC/RTCService.m

+ 21 - 9
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -429,6 +429,7 @@
 		BC27A076280FF61300F91E27 /* AccompanyDetailBottomView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC27A075280FF61300F91E27 /* AccompanyDetailBottomView.xib */; };
 		BC27A079280FFA2200F91E27 /* EvaluateDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC27A078280FFA2200F91E27 /* EvaluateDetailModel.m */; };
 		BC28582B2809036D0024697C /* StudentInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC28582A2809036D0024697C /* StudentInfoModel.m */; };
+		BC32E106286AA7A7001434DD /* KSBaseAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC32E105286AA7A7001434DD /* KSBaseAlertView.m */; };
 		BC40B9F82811767A00DEC0D1 /* HotInformationHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC40B9F72811767A00DEC0D1 /* HotInformationHeadView.m */; };
 		BC40B9FA2811768400DEC0D1 /* HotInformationHeadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC40B9F92811768400DEC0D1 /* HotInformationHeadView.xib */; };
 		BC40B9FE281177BD00DEC0D1 /* HomeInformationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC40B9FC281177BD00DEC0D1 /* HomeInformationCell.m */; };
@@ -689,6 +690,7 @@
 		BCB909142852EF0000F5FF69 /* KSDragWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB909122852EF0000F5FF69 /* KSDragWindow.m */; };
 		BCB9091728530E9C00F5FF69 /* KSShopCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB9091628530E9C00F5FF69 /* KSShopCardView.m */; };
 		BCB9091928530EA500F5FF69 /* KSShopCardView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB9091828530EA500F5FF69 /* KSShopCardView.xib */; };
+		BCB9FA16286C7F6C005D766B /* KSShareGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB9FA15286C7F6C005D766B /* KSShareGroupViewController.m */; };
 		BCBFDF3728110C660052AFE5 /* HomeNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCBFDF3628110C660052AFE5 /* HomeNavView.m */; };
 		BCBFDF3928110C6F0052AFE5 /* HomeNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCBFDF3828110C6F0052AFE5 /* HomeNavView.xib */; };
 		BCBFDF3C281156430052AFE5 /* HomeBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCBFDF3B281156430052AFE5 /* HomeBannerView.m */; };
@@ -1530,6 +1532,8 @@
 		BC27A078280FFA2200F91E27 /* EvaluateDetailModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EvaluateDetailModel.m; sourceTree = "<group>"; };
 		BC2858292809036C0024697C /* StudentInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StudentInfoModel.h; sourceTree = "<group>"; };
 		BC28582A2809036D0024697C /* StudentInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StudentInfoModel.m; sourceTree = "<group>"; };
+		BC32E104286AA7A7001434DD /* KSBaseAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSBaseAlertView.h; sourceTree = "<group>"; };
+		BC32E105286AA7A7001434DD /* KSBaseAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSBaseAlertView.m; sourceTree = "<group>"; };
 		BC40B9F62811767A00DEC0D1 /* HotInformationHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HotInformationHeadView.h; sourceTree = "<group>"; };
 		BC40B9F72811767A00DEC0D1 /* HotInformationHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HotInformationHeadView.m; sourceTree = "<group>"; };
 		BC40B9F92811768400DEC0D1 /* HotInformationHeadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HotInformationHeadView.xib; sourceTree = "<group>"; };
@@ -1988,6 +1992,8 @@
 		BCB9091528530E9C00F5FF69 /* KSShopCardView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSShopCardView.h; sourceTree = "<group>"; };
 		BCB9091628530E9C00F5FF69 /* KSShopCardView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSShopCardView.m; sourceTree = "<group>"; };
 		BCB9091828530EA500F5FF69 /* KSShopCardView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KSShopCardView.xib; sourceTree = "<group>"; };
+		BCB9FA14286C7F6C005D766B /* KSShareGroupViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSShareGroupViewController.h; sourceTree = "<group>"; };
+		BCB9FA15286C7F6C005D766B /* KSShareGroupViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSShareGroupViewController.m; sourceTree = "<group>"; };
 		BCBFDF3528110C660052AFE5 /* HomeNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeNavView.h; sourceTree = "<group>"; };
 		BCBFDF3628110C660052AFE5 /* HomeNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeNavView.m; sourceTree = "<group>"; };
 		BCBFDF3828110C6F0052AFE5 /* HomeNavView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeNavView.xib; sourceTree = "<group>"; };
@@ -2774,6 +2780,8 @@
 				2779346A27E324A10010E277 /* Define */,
 				2779346E27E324A10010E277 /* ThirdPart */,
 				2779350B27E324A40010E277 /* Base */,
+				BCB9FA14286C7F6C005D766B /* KSShareGroupViewController.h */,
+				BCB9FA15286C7F6C005D766B /* KSShareGroupViewController.m */,
 			);
 			path = Common;
 			sourceTree = "<group>";
@@ -3506,6 +3514,8 @@
 				BC8B6DC82856CFB800866917 /* KSDocument.m */,
 				BC8B6DC42856CAF500866917 /* KSDocumentViewController.h */,
 				BC8B6DC52856CAF600866917 /* KSDocumentViewController.m */,
+				BC32E104286AA7A7001434DD /* KSBaseAlertView.h */,
+				BC32E105286AA7A7001434DD /* KSBaseAlertView.m */,
 			);
 			path = Base;
 			sourceTree = "<group>";
@@ -3973,13 +3983,13 @@
 		BC8A455F283DC33400094BBB /* View */ = {
 			isa = PBXGroup;
 			children = (
-				BC8A4560283DC33400094BBB /* SettingView */,
-				BC8A456A283DC33400094BBB /* StaffView */,
 				BC8A4571283DC33400094BBB /* beat */,
 				BC8A4575283DC33400094BBB /* Channel */,
-				BC8A4579283DC33400094BBB /* SpeedSlider */,
-				BC8A457E283DC33400094BBB /* SoundCheckView */,
 				BC8A4582283DC33400094BBB /* Help */,
+				BC8A4560283DC33400094BBB /* SettingView */,
+				BC8A457E283DC33400094BBB /* SoundCheckView */,
+				BC8A4579283DC33400094BBB /* SpeedSlider */,
+				BC8A456A283DC33400094BBB /* StaffView */,
 				BC8A4589283DC33400094BBB /* TipsAlert */,
 			);
 			path = View;
@@ -4004,12 +4014,12 @@
 		BC8A456A283DC33400094BBB /* StaffView */ = {
 			isa = PBXGroup;
 			children = (
+				BC8A456D283DC33400094BBB /* CloudControlButton.h */,
+				BC8A4570283DC33400094BBB /* CloudControlButton.m */,
 				BC8A456B283DC33400094BBB /* ScoreAnimationView.h */,
+				BC8A456F283DC33400094BBB /* ScoreAnimationView.m */,
 				BC8A456C283DC33400094BBB /* StaffImageDisplayView.h */,
-				BC8A456D283DC33400094BBB /* CloudControlButton.h */,
 				BC8A456E283DC33400094BBB /* StaffImageDisplayView.m */,
-				BC8A456F283DC33400094BBB /* ScoreAnimationView.m */,
-				BC8A4570283DC33400094BBB /* CloudControlButton.m */,
 			);
 			path = StaffView;
 			sourceTree = "<group>";
@@ -5588,6 +5598,7 @@
 				BCB6357027F6D2A300ACFDCF /* ClassroomService.m in Sources */,
 				BCB6359A27F6D2AB00ACFDCF /* ClassVideoListView.m in Sources */,
 				2723B61D27F157D500E0B90B /* GroupNoticeViewController.m in Sources */,
+				BCB9FA16286C7F6C005D766B /* KSShareGroupViewController.m in Sources */,
 				BC0212F727FC4A080040569F /* SubjectImageCell.m in Sources */,
 				277935D027E324A90010E277 /* ALCalendarDate.m in Sources */,
 				BCFE540328152A8500AD6786 /* KSOrderManager.m in Sources */,
@@ -5914,6 +5925,7 @@
 				BCB6359627F6D2AB00ACFDCF /* LocalRenderManager.m in Sources */,
 				2723B66927F15CFC00E0B90B /* PhoneChangeBodyView.m in Sources */,
 				27F9033227E87C2E00C08A19 /* SettingViewController.m in Sources */,
+				BC32E106286AA7A7001434DD /* KSBaseAlertView.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -6114,7 +6126,7 @@
 				GCC_PREFIX_HEADER = "$(SRCROOT)/KulexiuForStudent/Common/Define/PrefixHeader.pch";
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = KulexiuForStudent/Info.plist;
-				INFOPLIST_KEY_CFBundleDisplayName = "酷乐秀学院";
+				INFOPLIST_KEY_CFBundleDisplayName = "酷乐秀";
 				INFOPLIST_KEY_NSAppleMusicUsageDescription = "App需要您的同意访问媒体资料库权限,用于播放媒体服务";
 				INFOPLIST_KEY_NSCameraUsageDescription = "APP需要您的同意,访问您的相机,以便您正常使用上传图片、视频课程等服务";
 				INFOPLIST_KEY_NSMicrophoneUsageDescription = "App需要您的同意访问麦克风权限,用于您的语音服务、视频教学";
@@ -6176,7 +6188,7 @@
 				GCC_PREFIX_HEADER = "$(SRCROOT)/KulexiuForStudent/Common/Define/PrefixHeader.pch";
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = KulexiuForStudent/Info.plist;
-				INFOPLIST_KEY_CFBundleDisplayName = "酷乐秀学院";
+				INFOPLIST_KEY_CFBundleDisplayName = "酷乐秀";
 				INFOPLIST_KEY_NSAppleMusicUsageDescription = "App需要您的同意访问媒体资料库权限,用于播放媒体服务";
 				INFOPLIST_KEY_NSCameraUsageDescription = "APP需要您的同意,访问您的相机,以便您正常使用上传图片、视频课程等服务";
 				INFOPLIST_KEY_NSMicrophoneUsageDescription = "App需要您的同意访问麦克风权限,用于您的语音服务、视频教学";

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


+ 133 - 5
KulexiuForStudent/KulexiuForStudent.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -39,16 +39,144 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "359CE66E-FE29-4D79-98E0-8D745D9E0DEB"
+            uuid = "9A0DD1A0-97FC-497F-A7C6-A39B590B4AF8"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "KulexiuForStudent/Module/Course/MusicRoom/Controller/MusicRoomDetailViewController.m"
+            filePath = "KulexiuForStudent/Common/Base/KSBaseWKWebViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "88"
-            endingLineNumber = "88"
-            landmarkName = "-requestHomeworkMessage"
+            startingLineNumber = "488"
+            endingLineNumber = "488"
+            landmarkName = "-handleScriptMessageSource:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "8673E762-E4A8-4C4C-BFF7-3D81DA53CE93"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Common/Base/KSNetworkingManager.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1022"
+            endingLineNumber = "1022"
+            landmarkName = "+homeworkListRequest:date:submit:page:rows:success:faliure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "90870E90-A189-49CA-87A4-9BCE458CD721"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Classroom/Controller/NewClassRoomViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "494"
+            endingLineNumber = "494"
+            landmarkName = "-memberDidJoin:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "4CDCA58C-2D9F-498A-A1AA-B98063F02A40"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Classroom/Controller/NewClassRoomViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1047"
+            endingLineNumber = "1047"
+            landmarkName = "-noneDidDisplay"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "205F75D0-6A6C-4FDD-A6BC-37F2AA05C526"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Classroom/Controller/NewClassRoomViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1131"
+            endingLineNumber = "1131"
+            landmarkName = "-didPublishStreams:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "A8141CA8-56A7-4753-AAAB-42AF775D553E"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Classroom/View/MainContainer/ClassroomMainContainer.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "66"
+            endingLineNumber = "66"
+            landmarkName = "-containerViewRenderView:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "B8EA65CF-7AFD-4843-AA39-123568A3726C"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/SealClass/Services/RTC/RTCService.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "440"
+            endingLineNumber = "440"
+            landmarkName = "-exchangeRemoteUserAVStreamToNomalSteam:callback:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "1E8DF52E-2B68-4E1B-9E6B-1E58C2390AC3"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/SealClass/Services/RTC/RTCService.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "432"
+            endingLineNumber = "432"
+            landmarkName = "-exchangeRemoteUserAVStreamToNomalSteam:callback:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "9EDC11F9-3564-49E4-AF77-27FA93A2656A"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Classroom/Controller/NewClassRoomViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1041"
+            endingLineNumber = "1041"
+            landmarkName = "-teacherDidDisplay"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>

+ 33 - 11
KulexiuForStudent/KulexiuForStudent/AppDelegate.m

@@ -186,8 +186,8 @@
     /* 设置sina */
     [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"3712190405"  appSecret:@"e77924e0125dbd751bab61063d8338fb" redirectURL:nil];
     // 自定义分享类型
-    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+1 withPlatformIcon:[UIImage imageNamed:@"share_group"] withPlatformName:@"群聊"];
-    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+2 withPlatformIcon:[UIImage imageNamed:@"share_savePic"] withPlatformName:@"保存图片"];
+//    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+1 withPlatformIcon:[UIImage imageNamed:@"share_group"] withPlatformName:@"群聊"];
+//    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+2 withPlatformIcon:[UIImage imageNamed:@"share_savePic"] withPlatformName:@"保存图片"];
 }
 
 - (void)versionCheck {
@@ -652,18 +652,40 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
         NSString *linkUrl = [[detailUrl componentsSeparatedByString:@"linkUrl="] lastObject];
         if (![NSString isEmptyString:linkUrl]) {
             linkUrl = [UrlDecode decodeStringWithString:linkUrl];
-            KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
-            webCtrl.url = linkUrl;
-            
-            UIViewController *vc = self.window.rootViewController;
-            if ([vc isKindOfClass:[KSTabBarViewController class]]) {
-                CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
-                [navCtrl pushViewController:webCtrl animated:YES];
+            // 转成 dic
+            NSData *jsonData = [linkUrl mj_JSONData];
+            NSError *error;
+            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
+            if (error) {
+                NSLog(@"jsonString解析失败:%@", error);
+                return NO;
             }
             else {
-                UserDefaultSetObjectForKey(linkUrl, WEB_URL);
+                NSString *action = [dict stringValueForKey:@"action"];
+                if ([action isEqualToString:@"app"]) {
+                    NSString *pageType = [dict stringValueForKey:@"pageTag"];
+                    if ([pageType isEqualToString:@""]) {
+                        NSDictionary *parm = [dict dictionaryValueForKey:@"params"];
+                        NSLog(@"%@",parm);
+                    }
+                }
+                else {  // 空 或者 h5
+                    NSString *webUrl = [dict stringValueForKey:@"url"];
+                    if (![NSString isEmptyString:webUrl]) {
+                        KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                        webCtrl.url = webUrl;
+                        
+                        UIViewController *vc = self.window.rootViewController;
+                        if ([vc isKindOfClass:[KSTabBarViewController class]]) {
+                            CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                            [navCtrl pushViewController:webCtrl animated:YES];
+                        }
+                        else {
+                            UserDefaultSetObjectForKey(linkUrl, WEB_URL);
+                        }
+                    }
+                }
             }
-            
         }
     }
     NSLog(@"%@", detailUrl);

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -103,7 +103,7 @@
       "size" : "83.5x83.5"
     },
     {
-      "filename" : "icon.png",
+      "filename" : "colexiu1024.png",
       "idiom" : "ios-marketing",
       "scale" : "1x",
       "size" : "1024x1024"

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/Icon.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadApp_76pt.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadApp_76pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadNotifications_20pt.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadNotifications_20pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadProApp_83.5pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight5_29pt.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight5_29pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight7_40pt.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight7_40pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneApp_60pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneApp_60pt@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneNotification_20pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneNotification_20pt@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight5_29pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight5_29pt@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight7_40pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight7_40pt@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/colexiu1024.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_course.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_course.imageset/empty_course@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_course.imageset/empty_course@3x.png


+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_videoCourse.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_videoCourse.imageset/empty_videoCourse@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/empty_videoCourse.imageset/empty_videoCourse@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/no_networking.imageset/no_networking@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/no_networking.imageset/no_networking@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/wd_img_zwsj.imageset/wd_img_zwsj@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/EmptyStatus/wd_img_zwsj.imageset/wd_img_zwsj@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Home/home_more.imageset/home_more@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Home/home_more.imageset/home_more@3x.png


+ 16 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseAlertView.h

@@ -0,0 +1,16 @@
+//
+//  KSBaseAlertView.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/6/28.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface KSBaseAlertView : UIView
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 20 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseAlertView.m

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

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseViewController.m

@@ -43,7 +43,7 @@
         make.bottom.mas_equalTo(self.view.mas_bottom);
     }];
 
-    _scrollView.backgroundColor = HexRGB(0xf5f5f5);
+    _scrollView.backgroundColor = HexRGB(0xf6f8f9);
     _scrollView.showsHorizontalScrollIndicator = NO;
     _scrollView.showsVerticalScrollIndicator = NO;
     

+ 12 - 2
KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseWKWebViewController.m

@@ -59,6 +59,8 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
 
 @property (nonatomic, assign) CHOOSETYPE fileChooseType;
 
+@property (nonatomic, strong) NSString *bucketName;
+
 @end
 
 @implementation KSBaseWKWebViewController
@@ -75,7 +77,9 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
     NSString *status = [notification object];
     NSMutableDictionary *sendParm = [NSMutableDictionary dictionary];
     [sendParm setValue:@"paymentOperation" forKey:@"api"];
-    [sendParm setValue:status forKey:@"status"];
+    NSMutableDictionary *content = [NSMutableDictionary dictionary];
+    [content setValue:status forKey:@"status"];
+    [sendParm setValue:content forKey:@"content"];
     [self postMessage:sendParm];
 }
 
@@ -450,6 +454,10 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
             
         }
         else if ([[valueDic stringValueForKey:@"type"] isEqualToString:@"multi"]) { // 群聊
+            if ([NSString isEmptyString:targetId]) {
+                [self MBPShow:@"群组id不存在"];
+                return;
+            }
             KSChatConversationViewController *ctrl = [[KSChatConversationViewController alloc] init];
             ctrl.targetId = targetId;
             ctrl.conversationType = ConversationType_GROUP;
@@ -530,6 +538,7 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
 }
 
 - (void)chooseDocumentWithType:(CHOOSETYPE)fileTyle bucket:(NSString *)bucket {
+    self.bucketName = bucket;
     self.fileChooseType = fileTyle;
     NSArray *documentTypes = @[@"public.content", @"public.text", @"public.source-code", @"public.image", @"public.audio", @"public.audiovisual-content", @"com.adobe.pdf", @"com.apple.keynote.key", @"com.microsoft.word.doc", @"com.microsoft.excel.xls", @"com.microsoft.powerpoint.ppt"];
     KSDocumentViewController *documentPickerViewController = [[KSDocumentViewController alloc] initWithDocumentTypes:documentTypes inMode:UIDocumentPickerModeImport];
@@ -606,7 +615,7 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
     NSString *videoUrl = [content stringValueForKey:@"video"];
     NSString *imgStr = [content stringValueForKey:@"image"];
     UIImage *shareImage = [self imageWithBase64String:imgStr];
-    [KSUMShareManager shareInstanceWithImage:shareImage url:videoUrl shareTitle:shareTitle descMessage:descMessage shareType:shareType callback:^(BOOL isSuccess, NSString *descMessage) {
+    [KSUMShareManager shareInstanceWithImage:shareImage url:videoUrl shareTitle:shareTitle descMessage:descMessage shareType:shareType showInView:self callback:^(BOOL isSuccess, NSString *descMessage) {
         NSMutableDictionary *responParm = [NSMutableDictionary dictionary];
         [responParm setValue:[parm stringValueForKey:@"api"] forKey:@"api"];
         NSMutableDictionary *content = [NSMutableDictionary dictionary];
@@ -1221,6 +1230,7 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
         [self showhud];
         NSString *suffix = [NSString stringWithFormat:@".%@",[[fileName componentsSeparatedByString:@"."] lastObject]];
         NSData *fileData = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:fileUrl]];
+        [[KSUploadManager shareInstance] configBucketName:self.bucketName];
         [[KSUploadManager shareInstance] uploadFile:fileData fileName:@"file" fileSuffix:suffix successCallback:^(NSMutableArray * _Nonnull fileUrlArray) {
             [self removehub];
             NSString *fileUrl = [fileUrlArray lastObject];

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m

@@ -1091,7 +1091,7 @@
     NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-student/courseSchedule/queryStudentLiveCourse"];
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:classDate forKey:@"classDate"];
-    [parm setValue:status forKey:@"status"];
+    [parm setValue:status forKey:@"courseState"];
     [parm setValue:subjectId forKey:@"subjectId"];
     [parm setValue:@(page) forKey:@"page"];
     [parm setValue:@(rows) forKey:@"rows"];

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Common/Define/PrefixHeader.pch

@@ -119,8 +119,8 @@ shouldPrevent = NO; \
 #define SEALCLASSHOST (@"https://dev.colexiu.com/api-classroom")
 #define WEBHOST (@"https://dev.colexiu.com/student")
 //#define WEBHOST (@"http://192.168.3.120:5000")
-//#define SOCKET_URL (@"wss://dev.colexiu.com/audioAnalysis")
-#define SOCKET_URL (@"ws://192.168.3.26:8090/audioAnalysis")
+#define SOCKET_URL (@"wss://dev.colexiu.com/audioAnalysis")
+//#define SOCKET_URL (@"ws://192.168.3.26:8090/audioAnalysis")
 #define JSPUSH_ENVIRONMENT (NO)
 #define RCIM_KEY (@"0vnjpoad0jbdz")
 #define SUBMIT_UUID (NO)

+ 26 - 0
KulexiuForStudent/KulexiuForStudent/Common/KSShareGroupViewController.h

@@ -0,0 +1,26 @@
+//
+//  KSShareGroupViewController.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/6/29.
+//
+
+#import "KSBaseViewController.h"
+typedef NS_ENUM(NSInteger, SHAREGROUP_TYPE) {
+    SHAREGROUP_TYPE_SUCCESS,
+    SHAREGROUP_TYPE_FAIL,
+};
+
+typedef void(^ShareGroupCallback)(BOOL isSuccess, NSString * _Nonnull descMsg);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface KSShareGroupViewController : KSBaseViewController
+
+@property (nonatomic, assign) UIImage *shareImage;
+
+- (void)shareGroupCallback:(ShareGroupCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 178 - 0
KulexiuForStudent/KulexiuForStudent/Common/KSShareGroupViewController.m

@@ -0,0 +1,178 @@
+//
+//  KSShareGroupViewController.m
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/6/29.
+//
+
+#import "KSShareGroupViewController.h"
+#import "GroupListModel.h"
+#import "GroupListViewCell.h"
+#import <RongIMKit/RongIMKit.h>
+
+@interface KSShareGroupViewController ()<UITableViewDelegate,UITableViewDataSource>
+
+@property (nonatomic, strong) UITableView *tableView;
+
+@property (nonatomic, copy) ShareGroupCallback callback;
+@end
+
+@implementation KSShareGroupViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    [self allocTitle:@"分享到群聊"];
+    [self configUI];
+    [self queryGroupList];
+}
+
+- (void)backAction {
+    if (self.callback) {
+        self.callback(NO, @"已取消");
+    }
+    [self.navigationController popViewControllerAnimated:YES];
+}
+
+- (void)configUI {
+    [self.scrollView removeFromSuperview];
+
+    [self.view addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.view);
+        make.top.mas_equalTo(self.view);
+        make.bottom.mas_equalTo(self.view.mas_bottom).offset(-iPhoneXSafeBottomMargin);
+    }];
+}
+
+- (void)searchRequest:(NSString *)searchKey {
+    [self queryGroupList];
+}
+
+- (void)queryGroupList {
+    [self showhud];
+    [KSNetworkingManager imGroupQueryPage:KS_POST search:nil success:^(NSDictionary * _Nonnull dic) {
+        [self removehub];
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            NSArray *array = [dic arrayValueForKey:@"data"];
+            for (NSDictionary *parm in array) {
+                GroupListModel *model = [[GroupListModel alloc] initWithDictionary:parm];
+                [self.dataArray addObject:model];
+            }
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+        [self.tableView reloadData];
+        [self changePromptLabelState];
+    } faliure:^(NSError * _Nonnull error) {
+        [self removehub];
+        if (self.networkAvaiable == NO) {
+            [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+        }
+        [self.dataArray removeAllObjects];
+        [self.tableView reloadData];
+        [self changePromptLabelState];
+    }];
+
+}
+
+- (void)shareGroupCallback:(ShareGroupCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+#pragma mark ----- table data source
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return self.dataArray.count;
+}
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    GroupListModel *model = self.dataArray[indexPath.row];
+    GroupListViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GroupListViewCell"];
+    [cell configWithSource:model];
+    return cell;
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+    GroupListModel *model = self.dataArray[indexPath.row];
+    if (![NSString isEmptyString:model.groupId]) {
+        [self shareImageToGroup:model.groupId];
+    }
+}
+
+
+- (void)shareImageToGroup:(NSString *)groupId {
+    
+    RCImageMessage *imgMsg = [RCImageMessage messageWithImage:self.shareImage];
+    imgMsg.full = YES;
+    [[RCIMClient sharedRCIMClient] sendMediaMessage:ConversationType_GROUP targetId:groupId content:imgMsg pushContent:nil pushData:nil progress:^(int progress, long messageId) {
+        
+    } success:^(long messageId) {
+        dispatch_main_async_safe(^{
+            if (self.callback) {
+                self.callback(YES, @"发送成功");
+//                [self MBPShow:@"发送成功"];
+            }
+            [self shareCallback];
+        });
+        
+    } error:^(RCErrorCode errorCode, long messageId) {
+        dispatch_main_async_safe(^{
+            if (self.callback) {
+                self.callback(NO, @"发送失败");
+//                [self MBPShow:@"发送失败"];
+            }
+            [self shareCallback];
+        });
+        
+    } cancel:^(long messageId) {
+        dispatch_main_async_safe(^{
+            if (self.callback) {
+                self.callback(NO, @"已取消");
+            }
+            [self shareCallback];
+        });
+    }];
+}
+
+- (void)shareCallback {
+    
+    [self.navigationController popViewControllerAnimated:YES];
+}
+
+- (UITableView *)tableView {
+    if (!_tableView) {
+        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _tableView.backgroundColor = HexRGB(0xf3f4f8);
+        _tableView.showsVerticalScrollIndicator = NO;
+
+        _tableView.dataSource = self;
+        _tableView.delegate = self;
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        _tableView.rowHeight = UITableViewAutomaticDimension;
+        _tableView.rowHeight = 70;
+        
+        UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
+        headView.backgroundColor = HexRGB(0xf3f4f8);
+        _tableView.tableHeaderView = headView;
+        
+        UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
+        bottomView.backgroundColor = HexRGB(0xf3f4f8);
+        _tableView.tableFooterView = bottomView;
+        
+        [_tableView registerNib:[UINib nibWithNibName:@"GroupListViewCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"GroupListViewCell"];
+    }
+    return _tableView;
+}
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Common/Tools/UMShare/KSUMShareManager.h

@@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 + (instancetype)shareInstance;
 
-+ (instancetype)shareInstanceWithImage:(UIImage *)image url:(NSString *)url shareTitle:(NSString *)shareTitle descMessage:(NSString *)descMessage shareType:(KSSHARETYPE)type callback:(KSShareActionCallback)callback;
++ (instancetype)shareInstanceWithImage:(UIImage *)image url:(NSString *)url shareTitle:(NSString *)shareTitle descMessage:(NSString *)descMessage shareType:(KSSHARETYPE)type showInView:(UIViewController *)ctrl callback:(KSShareActionCallback)callback;
 
 
 @end

+ 89 - 39
KulexiuForStudent/KulexiuForStudent/Common/Tools/UMShare/KSUMShareManager.m

@@ -8,6 +8,8 @@
 #import "KSUMShareManager.h"
 #import <UMShare/UMShare.h>
 #import <UShareUI/UShareUI.h>
+#import "TZImageManager.h"
+#import "KSShareGroupViewController.h"
 
 @interface KSUMShareManager ()
 
@@ -21,6 +23,8 @@
 
 @property (nonatomic, strong) UIImage *shareImage;
 
+@property (nonatomic, strong) UIViewController *displayCtrl;
+
 @property (nonatomic, assign) KSSHARETYPE shareType;
 
 @end
@@ -32,13 +36,14 @@
     return manager;
 }
 
-+ (instancetype)shareInstanceWithImage:(UIImage *)image url:(NSString *)url shareTitle:(NSString *)shareTitle descMessage:(NSString *)descMessage shareType:(KSSHARETYPE)type callback:(KSShareActionCallback)callback {
++ (instancetype)shareInstanceWithImage:(UIImage *)image url:(NSString *)url shareTitle:(NSString *)shareTitle descMessage:(NSString *)descMessage shareType:(KSSHARETYPE)type showInView:(nonnull UIViewController *)ctrl callback:(KSShareActionCallback)callback {
     KSUMShareManager *manager = [[self alloc] init];
     manager.shareType = type;
     manager.shareImage = image;
     manager.shareUrl = url;
     manager.shareTitle = shareTitle;
     manager.shareMessage = descMessage;
+    manager.displayCtrl = ctrl;
     if (callback) {
         manager.callback = callback;
     }
@@ -48,51 +53,96 @@
 
 - (void)openShareView {
     [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
-        
-        //创建分享消息对象
-        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
-        NSString *shareTitle = @"";
-        if (![NSString isEmptyString:self.shareTitle]) {
-            shareTitle = self.shareTitle;
-        }
-        NSString *descMessage = @"";
-        if (self.shareMessage) {
-            descMessage = self.shareMessage;
-        }
-        // 创建分享对象
-        if (self.shareType == KSSHARETYPE_IMAGE) {
-            UMShareImageObject *shareObj = [UMShareImageObject shareObjectWithTitle:shareTitle descr:descMessage thumImage:[UIImage imageNamed:@"shareImage"]];
-            shareObj.shareImage = self.shareImage;
-            //分享消息对象设置分享内容对象
-            messageObject.shareObject = shareObj;
-        }
-        else if (self.shareType == KSSHARETYPE_VODEO) {
-            UMShareWebpageObject *shareObj = [UMShareWebpageObject shareObjectWithTitle:shareTitle descr:descMessage thumImage:[UIImage imageNamed:@"shareImage"]];
-            //            NSString *shareUrl = [self.shareUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-            shareObj.webpageUrl = self.shareUrl;
-            //分享消息对象设置分享内容对象
-            messageObject.shareObject = shareObj;
+        if (platformType == UMSocialPlatformType_UserDefine_Begin+1) { // 分享到群组
+            if (self.shareType == KSSHARETYPE_IMAGE) {
+                KSShareGroupViewController *shareGroupCtrl = [[KSShareGroupViewController alloc] init];
+                shareGroupCtrl.shareImage = self.shareImage;
+                MJWeakSelf;
+                [shareGroupCtrl shareGroupCallback:^(BOOL isSuccess, NSString *descMsg) {
+                    __strong typeof(weakSelf) strongSelf = weakSelf;
+                    if (strongSelf.callback) {
+                        strongSelf.callback(isSuccess,descMsg);
+                    }
+                }];
+                [self.displayCtrl.navigationController pushViewController:shareGroupCtrl animated:YES];
+            }
+            else {
+                if (self.callback) {
+                    self.callback(NO,@"仅支持图片分享到群组");
+                }
+            }
+            
         }
-        //调用分享接口
-        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:nil completion:^(id data, NSError *error) {
-            if (error) {
-                NSLog(@"************分享失败 %@*********",error);
+        else if (platformType == UMSocialPlatformType_UserDefine_Begin+2) { // 图片保存到相册
+            if (self.shareType == KSSHARETYPE_IMAGE) {
+                // 判断相册权限
+                
+                [[TZImageManager manager] savePhotoWithImage:self.shareImage completion:^(PHAsset *asset, NSError *error) {
+                    if (!error) {
+                        if (self.callback) {
+                            self.callback(YES,@"保存成功");
+                        }
+                    }
+                    else {
+                        if (self.callback) {
+                            self.callback(NO,@"保存失败");
+                        }
+                    }
+                }];
+            }
+            else  {
                 if (self.callback) {
-                    self.callback(NO, @"分享失败");
+                    self.callback(NO,@"仅支持图片保存");
                 }
-            }else{
-                if ([data isKindOfClass:[UMSocialShareResponse class]]) {
-                    UMSocialShareResponse *resp = data;
-                    //分享结果消息
-                    NSLog(@"************分享成功 %@*********",resp.message);
+            }
+        }
+        else {
+            //创建分享消息对象
+            UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
+            NSString *shareTitle = @"";
+            if (![NSString isEmptyString:self.shareTitle]) {
+                shareTitle = self.shareTitle;
+            }
+            NSString *descMessage = @"";
+            if (self.shareMessage) {
+                descMessage = self.shareMessage;
+            }
+            // 创建分享对象
+            if (self.shareType == KSSHARETYPE_IMAGE) {
+                UMShareImageObject *shareObj = [UMShareImageObject shareObjectWithTitle:shareTitle descr:descMessage thumImage:[UIImage imageNamed:@"shareImage"]];
+                shareObj.shareImage = self.shareImage;
+                //分享消息对象设置分享内容对象
+                messageObject.shareObject = shareObj;
+            }
+            else if (self.shareType == KSSHARETYPE_VODEO) {
+                UMShareWebpageObject *shareObj = [UMShareWebpageObject shareObjectWithTitle:shareTitle descr:descMessage thumImage:[UIImage imageNamed:@"shareImage"]];
+                //            NSString *shareUrl = [self.shareUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
+                shareObj.webpageUrl = self.shareUrl;
+                //分享消息对象设置分享内容对象
+                messageObject.shareObject = shareObj;
+            }
+            //调用分享接口
+            [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:nil completion:^(id data, NSError *error) {
+                if (error) {
+                    NSLog(@"************分享失败 %@*********",error);
                     if (self.callback) {
-                        self.callback(YES,@"分享成功");
+                        self.callback(NO, @"分享失败");
                     }
                 }else{
-                    NSLog(@"response data is %@",data);
+                    if ([data isKindOfClass:[UMSocialShareResponse class]]) {
+                        UMSocialShareResponse *resp = data;
+                        //分享结果消息
+                        NSLog(@"************分享成功 %@*********",resp.message);
+                        if (self.callback) {
+                            self.callback(YES,@"分享成功");
+                        }
+                    }else{
+                        NSLog(@"response data is %@",data);
+                    }
                 }
-            }
-        }];
+            }];
+        }
+        
     }];
 }
 

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSChatConversationViewController.m

@@ -208,7 +208,7 @@
         KSAccompanyWebViewController *detailCtrl = [[KSAccompanyWebViewController alloc] init];
         detailCtrl.url = [NSString stringWithFormat:@"%@/accompany?id=%@",hostURL, musicShareMsg.songId];
         detailCtrl.hiddenNavBar = YES;
-        detailCtrl.parmDic = @{@"isOpenLight" : @(YES), @"orientation" : @(1),@"isHideTitle" : @(YES)};
+        detailCtrl.parmDic = @{@"isOpenLight" : @(YES), @"orientation" : @(0),@"isHideTitle" : @(YES)};
         [self.navigationController pushViewController:detailCtrl animated:YES];
     }
     else {

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSChatListViewController.m

@@ -203,10 +203,10 @@
 - (UIView *)stateView {
     if (!_stateView) {
         _stateView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 240)];
-        UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 280, 176)];
+        UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 260, 230)];
         [imgView setImage:[UIImage imageNamed:@"wd_img_zwsj"]];
         
-        UILabel *descLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 180, 280, 20)];
+        UILabel *descLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 260, 280, 20)];
         descLabel.text = @"暂无消息";
         descLabel.textColor = HexRGB(0xb7b7b7);
         descLabel.font = [UIFont systemFontOfSize:16];

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.m

@@ -20,7 +20,7 @@
 - (void)awakeFromNib {
     [super awakeFromNib];
     self.searchField.delegate = self;
-    self.searchField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入群聊/学员名称" attributes:@{NSForegroundColorAttributeName:HexRGB(0x999999)}];
+    self.searchField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"查找聊天记录" attributes:@{NSForegroundColorAttributeName:HexRGB(0x999999)}];
 }
 
 

+ 3 - 3
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="19529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<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="19519"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -23,7 +23,7 @@
                                 <constraint firstAttribute="height" constant="15" id="MAI-oj-HQ7"/>
                             </constraints>
                         </imageView>
-                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入群聊/学员名称" adjustsFontSizeToFit="NO" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="s9n-ZY-b4Y">
+                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="查找聊天记录" adjustsFontSizeToFit="NO" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="s9n-ZY-b4Y">
                             <rect key="frame" x="38" y="0.0" width="271" height="35"/>
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                             <fontDescription key="fontDescription" type="system" pointSize="13"/>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Classroom/Controller/NewClassRoomViewController.m

@@ -1037,7 +1037,7 @@ typedef NS_ENUM(NSInteger, ACCOMPANYACTION) {
 
 }
 - (void)teacherDidDisplay {
-    NSLog(@"teacherDidDisplay %@ ",[ClassroomService sharedService].currentRoom.teacher);
+    NSLog(@"teacherDidDisplay %@ ",[ClassroomService sharedService].currentRoom.teacher.userId);
     [self renderMainContainerView];
 }
 

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.xib

@@ -53,12 +53,12 @@
                                                 </constraints>
                                             </imageView>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PXm-gS-uTS">
-                                                <rect key="frame" x="120" y="50.5" width="136" height="33"/>
+                                                <rect key="frame" x="120" y="49.5" width="136" height="35.5"/>
                                                 <attributedString key="attributedText">
                                                     <fragment content="课程结束之后老师会对您的学习进行点评喔~">
                                                         <attributes>
                                                             <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
-                                                            <font key="NSFont" size="13" name=".PingFangSC-Regular"/>
+                                                            <font key="NSFont" metaFont="system"/>
                                                             <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
                                                         </attributes>
                                                     </fragment>

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.xib

@@ -51,12 +51,12 @@
                                                 </constraints>
                                             </imageView>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xV1-w2-nqO">
-                                                <rect key="frame" x="120" y="54.5" width="146" height="33"/>
+                                                <rect key="frame" x="120" y="53.5" width="146" height="35.5"/>
                                                 <attributedString key="attributedText">
                                                     <fragment content="课程结束之后可上传视频作业">
                                                         <attributes>
                                                             <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
-                                                            <font key="NSFont" size="13" name=".PingFangSC-Regular"/>
+                                                            <font key="NSFont" metaFont="system"/>
                                                             <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
                                                         </attributes>
                                                     </fragment>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.xib

@@ -36,7 +36,7 @@
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CS9-1I-B48">
                                 <rect key="frame" x="11" y="39" width="327" height="88"/>
                                 <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EsB-Oa-Z2T">
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EsB-Oa-Z2T">
                                         <rect key="frame" x="9" y="11" width="312" height="0.0"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                         <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>

+ 7 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/Controller/CourseViewController.m

@@ -386,6 +386,8 @@
         FSCalendarScope oldScope = [change[NSKeyValueChangeOldKey] unsignedIntegerValue];
         FSCalendarScope newScope = [change[NSKeyValueChangeNewKey] unsignedIntegerValue];
         NSLog(@"From %@ to %@",(oldScope==FSCalendarScopeWeek?@"week":@"month"),(newScope==FSCalendarScopeWeek?@"week":@"month"));
+        NSString *imgName = newScope == FSCalendarScopeWeek ? @"arrow_down" : @"arrow_up";
+        [self.calendarBottom.arrowImage setImage:[UIImage imageNamed:imgName]];
     } else {
         [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
     }
@@ -480,7 +482,7 @@
     switch (action) {
         case LIVECOURSEACTION_CHAT:  // 聊天
         {
-            [self chatAction:source.courseGoupId groupName:source.name isGroup:YES];
+            [self chatAction:source.imGroupId groupName:@"" isGroup:YES];
         }
             break;
         case LIVECOURSEACTION_LIVEROOM: // 直播课上课
@@ -494,6 +496,10 @@
 }
 
 - (void)chatAction:(NSString *)targetId groupName:(NSString *)targetName isGroup:(BOOL)isGroup {
+    if ([NSString isEmptyString:targetId] && isGroup) {
+        [self MBPShow:@"群组id不存在"];
+        return;
+    }
     KSChatConversationViewController *conversationVC = [[KSChatConversationViewController alloc] init];
     conversationVC.targetId = targetId;
     conversationVC.title = targetName;

+ 18 - 2
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/Controller/MusicRoomDetailViewController.m

@@ -180,8 +180,12 @@
     if (indexPath.row == 0) {
         MusicRoomCourseInfoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MusicRoomCourseInfoCell"];
         [self evaluateWithStatusLabel:cell.statusLabel];
-        [cell configWithStartTime:self.homeworkModel.startTime endTime:self.homeworkModel.endTime courseName:self.homeworkModel.courseName chatGroupId:self.homeworkModel.imGroupId courseSubject:self.homeworkModel.subjectName];
-        cell.hideChatButton = YES;
+        NSString *courseName = [NSString stringWithFormat:@"%@第%@课",[NSString returnNoNullStringWithString:self.homeworkModel.courseGroupName],self.homeworkModel.classNum];
+        [cell configWithStartTime:self.homeworkModel.startTime endTime:self.homeworkModel.endTime courseName:courseName chatGroupId:self.homeworkModel.imGroupId courseSubject:self.homeworkModel.subjectName];
+        MJWeakSelf;
+        [cell chatCalkback:^(NSString * _Nonnull targetId) {
+            [weakSelf chatAction:targetId];
+        }];
         return cell;
     }
     else if (indexPath.row == 1) {
@@ -210,6 +214,18 @@
     }
 }
 
+- (void)chatAction:(NSString *)targetId {
+    if ([NSString isEmptyString:targetId]) {
+        [self MBPShow:@"群组id不存在"];
+        return;
+    }
+    KSChatConversationViewController *ctrl = [[KSChatConversationViewController alloc] init];
+    ctrl.targetId = targetId;
+    ctrl.conversationType = ConversationType_GROUP;
+    [self.navigationController pushViewController:ctrl animated:YES];
+}
+
+
 - (void)operationActionWithType:(HOMEWORKACTION)action index:(NSInteger)viewIndex {
     switch (action) {
         case HOMEWORKACTION_PLAY:

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.h

@@ -9,7 +9,7 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-typedef void(^MusicRoomChatCallback)(void);
+typedef void(^MusicRoomChatCallback)(NSString *targetId);
 
 
 @interface MusicRoomCourseInfoCell : UITableViewCell

+ 6 - 0
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.m

@@ -51,6 +51,7 @@
     else {
         self.subjectView.hidden = YES;
     }
+    self.targetId = chatGroupId;
 }
 
 - (void)setHideChatButton:(BOOL)hideChatButton {
@@ -65,6 +66,11 @@
     }
 }
 
+- (IBAction)chatAction:(id)sender {
+    if (self.callback) {
+        self.callback(self.targetId);
+    }
+}
 
 - (void)chatCalkback:(MusicRoomChatCallback)callback {
     if (callback) {

+ 5 - 2
KulexiuForStudent/KulexiuForStudent/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.xib

@@ -101,6 +101,9 @@
                                 </constraints>
                                 <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                 <state key="normal" image="course_chat"/>
+                                <connections>
+                                    <action selector="chatAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="Szw-XH-cEf"/>
+                                </connections>
                             </button>
                             <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Nc9-wd-2bK">
                                 <rect key="frame" x="86" y="83.5" width="1" height="11"/>
@@ -110,8 +113,8 @@
                                     <constraint firstAttribute="height" constant="11" id="avf-90-4F7"/>
                                 </constraints>
                             </view>
-                            <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="6人" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jid-Tm-C6f">
-                                <rect key="frame" x="95" y="82" width="20" height="14.5"/>
+                            <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jid-Tm-C6f">
+                                <rect key="frame" x="95" y="89" width="0.0" height="0.0"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                 <color key="textColor" red="0.41568627450000001" green="0.41568627450000001" blue="0.41568627450000001" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>

+ 11 - 2
KulexiuForStudent/KulexiuForStudent/Module/Home/Controller/HomeViewController.m

@@ -881,7 +881,7 @@
         return CGSizeMake(110, 140);
     }
     else {
-        return CGSizeMake((KPortraitWidth - 28 - 11) / 2.0f, 164);
+        return CGSizeMake((KPortraitWidth - 28 - 11) / 2.0f, 132);
     }
 }
 
@@ -1004,9 +1004,18 @@
     return _noticeTitleArray;
 }
 - (void)moreNotice {
+    if (self.noticeArray.count) {
+        NoticeSourceModel *noticeModel = self.noticeArray[0];
+        KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+        webCtrl.url = [NSString stringWithFormat:@"%@/#/helpCenterDetail?id=%@",WEBHOST, noticeModel.internalBaseClassIdentifier];
+        [self.navigationController pushViewController:webCtrl animated:YES];
+    }
+    /*
     KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
     webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/helpCenter?catalogType=2"];
     [self.navigationController pushViewController:webCtrl animated:YES];
+     */
+    
 }
 
 #pragma mark ----- 最近上课
@@ -1195,7 +1204,7 @@
     if (!_infoCollectionView) {
         UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
         layout.scrollDirection = UICollectionViewScrollDirectionVertical;
-        layout.itemSize = CGSizeMake((KPortraitWidth - 28 - 11) / 2.0f, 164);
+        layout.itemSize = CGSizeMake((KPortraitWidth - 28 - 11) / 2.0f, 132);
         _infoCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
         _infoCollectionView.backgroundColor = [UIColor clearColor];
         _infoCollectionView.delegate = self;

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Home/NoticeCenter/Controller/NotiferMessageViewController.m

@@ -237,7 +237,7 @@
             [navCtrl pushViewController:webCtrl animated:YES];
         }
         else if ([headStr isEqualToString:@"homework"]) { // 作业详情
-            NSString *valueStr = [[memo componentsSeparatedByString:@"?"] lastObject];
+            NSString *valueStr = [[memo componentsSeparatedByString:@"homework?"] lastObject];
             NSArray *parmArray = [valueStr componentsSeparatedByString:@"&"];
             NSString *courseId = nil;
             for (NSString *subStr in parmArray) {

+ 24 - 5
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeHotAlbumView.xib

@@ -13,6 +13,18 @@
             <rect key="frame" x="0.0" y="0.0" width="414" height="180"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="i48-Hd-WKl">
+                    <rect key="frame" x="349" y="12" width="45" height="18"/>
+                    <color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="18" id="J1Q-HM-3AQ"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="9"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="更多" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zgK-R6-zz8">
                     <rect key="frame" x="355" y="14" width="25" height="14.5"/>
                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
@@ -29,7 +41,11 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_more" translatesAutoresizingMaskIntoConstraints="NO" id="OkW-qe-3Kq">
-                    <rect key="frame" x="384" y="16" width="10" height="10"/>
+                    <rect key="frame" x="383" y="17" width="6" height="8"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="6" id="PEX-ax-k36"/>
+                        <constraint firstAttribute="height" constant="8" id="QOU-bK-jTl"/>
+                    </constraints>
                 </imageView>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bvf-n0-Khb">
                     <rect key="frame" x="0.0" y="46" width="414" height="140"/>
@@ -39,7 +55,7 @@
                     </constraints>
                 </view>
                 <button opaque="NO" tag="1008" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kIU-g4-ctC">
-                    <rect key="frame" x="355" y="6" width="39" height="30"/>
+                    <rect key="frame" x="355" y="6" width="34" height="30"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="l3w-24-Jol"/>
                     </constraints>
@@ -55,17 +71,20 @@
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
                 <constraint firstItem="OkW-qe-3Kq" firstAttribute="centerY" secondItem="u9G-3b-Wgt" secondAttribute="centerY" id="0C2-jz-ybg"/>
-                <constraint firstAttribute="trailing" secondItem="OkW-qe-3Kq" secondAttribute="trailing" constant="20" id="406-yJ-0Qm"/>
+                <constraint firstItem="OkW-qe-3Kq" firstAttribute="trailing" secondItem="i48-Hd-WKl" secondAttribute="trailing" constant="-5" id="5eI-th-d1c"/>
+                <constraint firstAttribute="trailing" secondItem="i48-Hd-WKl" secondAttribute="trailing" constant="20" id="61L-Vw-Zhd"/>
                 <constraint firstItem="u9G-3b-Wgt" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="GyF-gJ-3Ba"/>
                 <constraint firstAttribute="trailing" secondItem="bvf-n0-Khb" secondAttribute="trailing" id="Hzs-4d-CyT"/>
                 <constraint firstItem="OkW-qe-3Kq" firstAttribute="trailing" secondItem="kIU-g4-ctC" secondAttribute="trailing" id="Jbh-O6-QXS"/>
                 <constraint firstItem="bvf-n0-Khb" firstAttribute="top" secondItem="u9G-3b-Wgt" secondAttribute="bottom" constant="14" id="M9Y-eb-zMS"/>
                 <constraint firstItem="bvf-n0-Khb" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="a0y-wq-MEu"/>
-                <constraint firstItem="OkW-qe-3Kq" firstAttribute="leading" secondItem="zgK-R6-zz8" secondAttribute="trailing" constant="4" id="aT3-GI-PH3"/>
+                <constraint firstItem="OkW-qe-3Kq" firstAttribute="leading" secondItem="zgK-R6-zz8" secondAttribute="trailing" constant="3" id="aT3-GI-PH3"/>
                 <constraint firstItem="u9G-3b-Wgt" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="eRX-8J-T9f"/>
                 <constraint firstItem="zgK-R6-zz8" firstAttribute="leading" secondItem="kIU-g4-ctC" secondAttribute="leading" id="fOa-SI-oGA"/>
+                <constraint firstItem="zgK-R6-zz8" firstAttribute="leading" secondItem="i48-Hd-WKl" secondAttribute="leading" constant="6" id="o53-pl-Ohx"/>
                 <constraint firstItem="zgK-R6-zz8" firstAttribute="centerY" secondItem="u9G-3b-Wgt" secondAttribute="centerY" id="p7u-UZ-CQL"/>
                 <constraint firstItem="kIU-g4-ctC" firstAttribute="centerY" secondItem="u9G-3b-Wgt" secondAttribute="centerY" id="sWH-G6-1lp"/>
+                <constraint firstItem="zgK-R6-zz8" firstAttribute="centerY" secondItem="i48-Hd-WKl" secondAttribute="centerY" id="v9k-ER-U36"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
@@ -77,6 +96,6 @@
         </view>
     </objects>
     <resources>
-        <image name="home_more" width="10" height="10"/>
+        <image name="home_more" width="6" height="8"/>
     </resources>
 </document>

+ 26 - 5
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeIntroduceView.xib

@@ -13,6 +13,18 @@
             <rect key="frame" x="0.0" y="0.0" width="414" height="166"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YXf-ag-UTD">
+                    <rect key="frame" x="349" y="12" width="45" height="18"/>
+                    <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="18" id="OJp-8I-Nrz"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="9"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="老师风采" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R1l-Xp-3tk">
                     <rect key="frame" x="14" y="10" width="65.5" height="22"/>
                     <constraints>
@@ -27,7 +39,13 @@
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                 </view>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_more" translatesAutoresizingMaskIntoConstraints="NO" id="nWD-gC-NuU">
-                    <rect key="frame" x="384" y="16" width="10" height="10"/>
+                    <rect key="frame" x="383" y="17" width="6" height="8"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="6" id="3E7-b0-qGV"/>
+                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="8" id="9XW-BR-SKj"/>
+                        <constraint firstAttribute="height" constant="8" id="iEg-ng-n5N"/>
+                        <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="6" id="qCC-P4-Aa0"/>
+                    </constraints>
                 </imageView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="更多" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RwY-C1-Hxk">
                     <rect key="frame" x="355" y="14" width="25" height="14.5"/>
@@ -36,7 +54,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <button opaque="NO" tag="1008" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="spZ-ec-oEg">
-                    <rect key="frame" x="355" y="6" width="39" height="30"/>
+                    <rect key="frame" x="355" y="6" width="34" height="30"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="AsG-mP-8Lu"/>
                     </constraints>
@@ -51,18 +69,21 @@
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
+                <constraint firstItem="RwY-C1-Hxk" firstAttribute="centerY" secondItem="YXf-ag-UTD" secondAttribute="centerY" id="2jl-hY-8Xv"/>
+                <constraint firstItem="RwY-C1-Hxk" firstAttribute="leading" secondItem="YXf-ag-UTD" secondAttribute="leading" constant="6" id="9pv-GX-GhN"/>
                 <constraint firstItem="nWD-gC-NuU" firstAttribute="centerY" secondItem="R1l-Xp-3tk" secondAttribute="centerY" id="Amd-ny-xOF"/>
                 <constraint firstItem="R1l-Xp-3tk" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="P9c-Qj-z6W"/>
                 <constraint firstItem="1GA-dU-S4o" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="SGl-fa-PFK"/>
                 <constraint firstItem="1GA-dU-S4o" firstAttribute="top" secondItem="R1l-Xp-3tk" secondAttribute="bottom" constant="14" id="ZF8-Pc-kri"/>
-                <constraint firstAttribute="trailing" secondItem="nWD-gC-NuU" secondAttribute="trailing" constant="20" id="Zd4-ek-IA6"/>
                 <constraint firstItem="RwY-C1-Hxk" firstAttribute="leading" secondItem="spZ-ec-oEg" secondAttribute="leading" id="dzW-2G-lz5"/>
                 <constraint firstItem="nWD-gC-NuU" firstAttribute="trailing" secondItem="spZ-ec-oEg" secondAttribute="trailing" id="gMg-zf-v74"/>
                 <constraint firstItem="RwY-C1-Hxk" firstAttribute="centerY" secondItem="R1l-Xp-3tk" secondAttribute="centerY" id="lNZ-xj-Kq8"/>
+                <constraint firstAttribute="trailing" secondItem="YXf-ag-UTD" secondAttribute="trailing" constant="20" id="mf7-hc-cUS"/>
                 <constraint firstAttribute="trailing" secondItem="1GA-dU-S4o" secondAttribute="trailing" id="nhw-1V-bTA"/>
                 <constraint firstAttribute="bottom" secondItem="1GA-dU-S4o" secondAttribute="bottom" constant="10" id="qRe-UX-fpA"/>
-                <constraint firstItem="nWD-gC-NuU" firstAttribute="leading" secondItem="RwY-C1-Hxk" secondAttribute="trailing" constant="4" id="reH-Ia-H94"/>
+                <constraint firstItem="nWD-gC-NuU" firstAttribute="leading" secondItem="RwY-C1-Hxk" secondAttribute="trailing" constant="3" id="reH-Ia-H94"/>
                 <constraint firstItem="spZ-ec-oEg" firstAttribute="centerY" secondItem="R1l-Xp-3tk" secondAttribute="centerY" id="ta1-r5-Kds"/>
+                <constraint firstItem="nWD-gC-NuU" firstAttribute="trailing" secondItem="YXf-ag-UTD" secondAttribute="trailing" constant="-5" id="uJv-E9-Jdj"/>
                 <constraint firstItem="R1l-Xp-3tk" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="z0l-BE-MdE"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
@@ -75,6 +96,6 @@
         </view>
     </objects>
     <resources>
-        <image name="home_more" width="10" height="10"/>
+        <image name="home_more" width="6" height="8"/>
     </resources>
 </document>

+ 24 - 5
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeLiveCourseView.xib

@@ -13,6 +13,18 @@
             <rect key="frame" x="0.0" y="0.0" width="414" height="214"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YjN-Fx-G8f">
+                    <rect key="frame" x="349" y="12" width="45" height="18"/>
+                    <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="18" id="QXM-Ob-gFw"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="9"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播课" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ddn-uf-BAf">
                     <rect key="frame" x="14" y="10" width="49" height="22"/>
                     <constraints>
@@ -27,7 +39,11 @@
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                 </view>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_more" translatesAutoresizingMaskIntoConstraints="NO" id="j67-iM-VaR">
-                    <rect key="frame" x="384" y="16" width="10" height="10"/>
+                    <rect key="frame" x="383" y="17" width="6" height="8"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="6" id="Hea-E6-pUR"/>
+                        <constraint firstAttribute="height" constant="8" id="UNj-Rh-6hu"/>
+                    </constraints>
                 </imageView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="更多" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3ib-v1-Htp">
                     <rect key="frame" x="355" y="14" width="25" height="14.5"/>
@@ -36,7 +52,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <button opaque="NO" tag="1008" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="14b-8n-uKT">
-                    <rect key="frame" x="355" y="6" width="39" height="30"/>
+                    <rect key="frame" x="355" y="6" width="34" height="30"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="R97-WE-q5Z"/>
                     </constraints>
@@ -51,16 +67,19 @@
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstItem="j67-iM-VaR" firstAttribute="leading" secondItem="3ib-v1-Htp" secondAttribute="trailing" constant="4" id="0wq-ze-vhJ"/>
+                <constraint firstItem="j67-iM-VaR" firstAttribute="leading" secondItem="3ib-v1-Htp" secondAttribute="trailing" constant="3" id="0wq-ze-vhJ"/>
                 <constraint firstAttribute="bottom" secondItem="Dqb-gc-Ywn" secondAttribute="bottom" constant="10" id="7oC-Bo-3wG"/>
+                <constraint firstItem="YjN-Fx-G8f" firstAttribute="centerY" secondItem="ddn-uf-BAf" secondAttribute="centerY" id="Cs6-dY-hSe"/>
                 <constraint firstItem="j67-iM-VaR" firstAttribute="trailing" secondItem="14b-8n-uKT" secondAttribute="trailing" id="IE0-qK-wUD"/>
-                <constraint firstAttribute="trailing" secondItem="j67-iM-VaR" secondAttribute="trailing" constant="20" id="VjB-fb-Fwr"/>
+                <constraint firstItem="3ib-v1-Htp" firstAttribute="leading" secondItem="YjN-Fx-G8f" secondAttribute="leading" constant="6" id="M10-7l-Klg"/>
                 <constraint firstItem="ddn-uf-BAf" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="ccX-bh-1ZN"/>
                 <constraint firstAttribute="trailing" secondItem="Dqb-gc-Ywn" secondAttribute="trailing" id="dgp-1P-cws"/>
                 <constraint firstItem="ddn-uf-BAf" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="dr5-d3-qWQ"/>
+                <constraint firstItem="j67-iM-VaR" firstAttribute="trailing" secondItem="YjN-Fx-G8f" secondAttribute="trailing" constant="-5" id="dyt-9C-Cz1"/>
                 <constraint firstItem="j67-iM-VaR" firstAttribute="centerY" secondItem="ddn-uf-BAf" secondAttribute="centerY" id="euu-y2-3RN"/>
                 <constraint firstItem="3ib-v1-Htp" firstAttribute="centerY" secondItem="ddn-uf-BAf" secondAttribute="centerY" id="fge-bo-nDW"/>
                 <constraint firstItem="Dqb-gc-Ywn" firstAttribute="top" secondItem="14b-8n-uKT" secondAttribute="bottom" constant="14" id="iVT-vU-Zbk"/>
+                <constraint firstAttribute="trailing" secondItem="YjN-Fx-G8f" secondAttribute="trailing" constant="20" id="lqa-ve-oGN"/>
                 <constraint firstItem="Dqb-gc-Ywn" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="mIk-bz-rW7"/>
                 <constraint firstItem="3ib-v1-Htp" firstAttribute="leading" secondItem="14b-8n-uKT" secondAttribute="leading" id="r91-qz-luf"/>
                 <constraint firstItem="14b-8n-uKT" firstAttribute="centerY" secondItem="ddn-uf-BAf" secondAttribute="centerY" id="rnk-RY-orJ"/>
@@ -75,6 +94,6 @@
         </view>
     </objects>
     <resources>
-        <image name="home_more" width="10" height="10"/>
+        <image name="home_more" width="6" height="8"/>
     </resources>
 </document>

+ 5 - 2
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeLiveCouseCell.m

@@ -15,6 +15,8 @@
 
 @property (weak, nonatomic) IBOutlet UILabel *teacherName;
 
+@property (weak, nonatomic) IBOutlet UIImageView *teacherAvatar;
+
 @property (weak, nonatomic) IBOutlet UILabel *courseBegin;
 
 @property (weak, nonatomic) IBOutlet UILabel *priceLabel;
@@ -40,11 +42,12 @@
     self.courseName.text = [NSString returnNoNullStringWithString:source.courseGroupName];
     
     if ([NSString isEmptyString:source.teacherName]) {
-        self.teacherName.text = [NSString stringWithFormat:@"老师:游客%@",source.teacherId];
+        self.teacherName.text = [NSString stringWithFormat:@"游客%@",source.teacherId];
     }
     else {
-        self.teacherName.text = [NSString stringWithFormat:@"老师:%@",source.teacherName];
+        self.teacherName.text = [NSString stringWithFormat:@"%@",source.teacherName];
     }
+    [self.teacherAvatar sd_setImageWithURL:[NSURL URLWithString:[source.avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
     self.priceLabel.text = [NSString stringWithFormat:@"¥%.2f",source.courseGroupPrice];
     self.courseCountLabel.text = [NSString stringWithFormat:@"%zd课时",source.courseNum];
     self.descLabel.text = [NSString stringWithFormat:@"%zd人已购买",source.buyCount];

+ 41 - 22
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeLiveCouseCell.xib

@@ -12,19 +12,19 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="225" id="KGk-i7-Jjw" customClass="HomeLiveCouseCell">
-            <rect key="frame" x="0.0" y="0.0" width="432" height="126"/>
+            <rect key="frame" x="0.0" y="0.0" width="383" height="126"/>
             <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="432" height="126"/>
+                <rect key="frame" x="0.0" y="0.0" width="383" height="126"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="d3t-M0-UQn">
-                        <rect key="frame" x="14" y="0.0" width="404" height="116"/>
+                        <rect key="frame" x="14" y="0.0" width="355" height="116"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="video_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="mto-Fi-MuN">
-                                <rect key="frame" x="10" y="10" width="130" height="96"/>
+                                <rect key="frame" x="10" y="10" width="170" height="96"/>
                                 <constraints>
-                                    <constraint firstAttribute="width" constant="130" id="Vwf-Ux-jKV"/>
+                                    <constraint firstAttribute="width" constant="170" id="Vwf-Ux-jKV"/>
                                     <constraint firstAttribute="height" constant="96" id="qMT-LJ-SB3"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
@@ -60,7 +60,7 @@
                                 </userDefinedRuntimeAttributes>
                             </view>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="单簧管基础入门单曲练习" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8ja-4v-aTz">
-                                <rect key="frame" x="148" y="14" width="246" height="20"/>
+                                <rect key="frame" x="188" y="14" width="157" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="20" id="US1-oc-Lb6"/>
                                 </constraints>
@@ -68,8 +68,8 @@
                                 <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="老师:李云磊" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H4s-4H-yh0">
-                                <rect key="frame" x="148" y="37" width="74" height="17"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="李云磊" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H4s-4H-yh0">
+                                <rect key="frame" x="210" y="37.5" width="37" height="17"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="17" id="xfD-mK-47N"/>
                                 </constraints>
@@ -78,28 +78,28 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="开课时间:2月28日 19:30" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="T3t-fA-cM4">
-                                <rect key="frame" x="148" y="57" width="132" height="16"/>
+                                <rect key="frame" x="188" y="59" width="157" height="16"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="16" id="l9V-6s-gu9"/>
                                 </constraints>
-                                <fontDescription key="fontDescription" type="system" pointSize="11"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                 <color key="textColor" red="0.41568627450000001" green="0.41568627450000001" blue="0.41568627450000001" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥299" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rZn-jF-zsG">
-                                <rect key="frame" x="148" y="81" width="37" height="20"/>
+                                <rect key="frame" x="188" y="83" width="27" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="20" id="keb-BD-W5Z"/>
                                 </constraints>
-                                <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
+                                <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="10"/>
                                 <color key="textColor" red="0.98039215686274506" green="0.39215686274509803" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="C1l-Ki-Xiv">
-                                <rect key="frame" x="196" y="82.5" width="46" height="17"/>
+                                <rect key="frame" x="219" y="84.5" width="44.5" height="17"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zJs-83-soC">
-                                        <rect key="frame" x="4" y="0.0" width="38" height="17"/>
+                                        <rect key="frame" x="4" y="0.0" width="37.5" height="17"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                         <color key="textColor" red="1" green="0.57647058823529407" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                         <nil key="highlightedColor"/>
@@ -108,7 +108,7 @@
                                 <color key="backgroundColor" red="1" green="0.94509803921568625" blue="0.87058823529411766" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="17" id="D9G-Pn-9Jv"/>
-                                    <constraint firstAttribute="trailing" secondItem="zJs-83-soC" secondAttribute="trailing" constant="4" id="TVQ-Zk-nLQ"/>
+                                    <constraint firstAttribute="trailing" secondItem="zJs-83-soC" secondAttribute="trailing" constant="3" id="TVQ-Zk-nLQ"/>
                                     <constraint firstAttribute="bottom" secondItem="zJs-83-soC" secondAttribute="bottom" id="aZw-b8-QBS"/>
                                     <constraint firstItem="zJs-83-soC" firstAttribute="leading" secondItem="C1l-Ki-Xiv" secondAttribute="leading" constant="4" id="cC5-tq-agc"/>
                                     <constraint firstItem="zJs-83-soC" firstAttribute="top" secondItem="C1l-Ki-Xiv" secondAttribute="top" id="kfg-dp-Eks"/>
@@ -120,27 +120,44 @@
                                 </userDefinedRuntimeAttributes>
                             </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="iFI-xj-FYd">
-                                <rect key="frame" x="337" y="83.5" width="57" height="15"/>
+                                <rect key="frame" x="288" y="85.5" width="57" height="15"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                 <color key="textColor" red="1" green="0.50196078431372548" blue="0.17254901960784313" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="ZKK-49-oJ1">
+                                <rect key="frame" x="188" y="37" width="18" height="18"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="18" id="21n-OT-NLE"/>
+                                    <constraint firstAttribute="height" constant="18" id="ZFu-MC-QnO"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="9"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </imageView>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
+                            <constraint firstItem="ZKK-49-oJ1" firstAttribute="top" secondItem="8ja-4v-aTz" secondAttribute="bottom" constant="3" id="0tu-kW-jzK"/>
                             <constraint firstItem="r6M-a2-FO8" firstAttribute="leading" secondItem="mto-Fi-MuN" secondAttribute="leading" constant="8" id="4ci-Yp-ZC4"/>
                             <constraint firstItem="mto-Fi-MuN" firstAttribute="leading" secondItem="d3t-M0-UQn" secondAttribute="leading" constant="10" id="6BN-tn-yyu"/>
-                            <constraint firstItem="H4s-4H-yh0" firstAttribute="leading" secondItem="8ja-4v-aTz" secondAttribute="leading" id="6xx-BQ-Org"/>
+                            <constraint firstItem="ZKK-49-oJ1" firstAttribute="leading" secondItem="8ja-4v-aTz" secondAttribute="leading" id="83q-Up-1c9"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="H4s-4H-yh0" secondAttribute="trailing" constant="10" id="8by-Kj-LSC"/>
+                            <constraint firstItem="T3t-fA-cM4" firstAttribute="top" secondItem="ZKK-49-oJ1" secondAttribute="bottom" constant="4" id="9uQ-iO-kd4"/>
                             <constraint firstItem="rZn-jF-zsG" firstAttribute="leading" secondItem="T3t-fA-cM4" secondAttribute="leading" id="CBs-2D-gkT"/>
                             <constraint firstItem="iFI-xj-FYd" firstAttribute="centerY" secondItem="C1l-Ki-Xiv" secondAttribute="centerY" id="Rxy-ge-uag"/>
-                            <constraint firstItem="T3t-fA-cM4" firstAttribute="top" secondItem="H4s-4H-yh0" secondAttribute="bottom" constant="3" id="Smu-6O-eHo"/>
                             <constraint firstItem="mto-Fi-MuN" firstAttribute="centerY" secondItem="d3t-M0-UQn" secondAttribute="centerY" id="SvE-NP-GIq"/>
                             <constraint firstItem="C1l-Ki-Xiv" firstAttribute="centerY" secondItem="rZn-jF-zsG" secondAttribute="centerY" id="VXq-RT-vnQ"/>
                             <constraint firstItem="8ja-4v-aTz" firstAttribute="top" secondItem="mto-Fi-MuN" secondAttribute="top" constant="4" id="X9a-fQ-tvn"/>
-                            <constraint firstItem="C1l-Ki-Xiv" firstAttribute="leading" secondItem="rZn-jF-zsG" secondAttribute="trailing" constant="11" id="b0g-UQ-wBc"/>
+                            <constraint firstItem="C1l-Ki-Xiv" firstAttribute="leading" secondItem="rZn-jF-zsG" secondAttribute="trailing" constant="4" id="b0g-UQ-wBc"/>
+                            <constraint firstItem="H4s-4H-yh0" firstAttribute="leading" secondItem="ZKK-49-oJ1" secondAttribute="trailing" constant="4" id="bW6-3M-YUh"/>
+                            <constraint firstItem="H4s-4H-yh0" firstAttribute="centerY" secondItem="ZKK-49-oJ1" secondAttribute="centerY" id="bqu-dF-F2d"/>
+                            <constraint firstItem="T3t-fA-cM4" firstAttribute="leading" secondItem="ZKK-49-oJ1" secondAttribute="leading" id="eTy-CE-Xyg"/>
+                            <constraint firstItem="iFI-xj-FYd" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="C1l-Ki-Xiv" secondAttribute="trailing" constant="5" id="fN5-Nf-dBt"/>
                             <constraint firstItem="rZn-jF-zsG" firstAttribute="top" secondItem="T3t-fA-cM4" secondAttribute="bottom" constant="8" id="fzb-a0-8ma"/>
-                            <constraint firstItem="H4s-4H-yh0" firstAttribute="top" secondItem="8ja-4v-aTz" secondAttribute="bottom" constant="3" id="oJi-wg-cDg"/>
-                            <constraint firstItem="T3t-fA-cM4" firstAttribute="leading" secondItem="H4s-4H-yh0" secondAttribute="leading" id="pMN-ud-rPR"/>
+                            <constraint firstAttribute="trailing" secondItem="T3t-fA-cM4" secondAttribute="trailing" constant="10" id="mI8-H6-We8"/>
                             <constraint firstItem="r6M-a2-FO8" firstAttribute="top" secondItem="mto-Fi-MuN" secondAttribute="top" constant="6" id="uVC-r9-xKR"/>
                             <constraint firstItem="8ja-4v-aTz" firstAttribute="leading" secondItem="mto-Fi-MuN" secondAttribute="trailing" constant="8" id="vFc-T8-uGy"/>
                             <constraint firstAttribute="trailing" secondItem="iFI-xj-FYd" secondAttribute="trailing" constant="10" id="w1d-7L-E1j"/>
@@ -170,12 +187,14 @@
                 <outlet property="descLabel" destination="iFI-xj-FYd" id="17h-Ba-iO1"/>
                 <outlet property="priceLabel" destination="rZn-jF-zsG" id="H15-rk-wqH"/>
                 <outlet property="subjectLabel" destination="scN-5q-NZR" id="T2E-zp-Hjd"/>
+                <outlet property="teacherAvatar" destination="ZKK-49-oJ1" id="1XK-tV-J4f"/>
                 <outlet property="teacherName" destination="H4s-4H-yh0" id="sMX-He-jR0"/>
             </connections>
-            <point key="canvasLocation" x="213.04347826086959" y="155.35714285714286"/>
+            <point key="canvasLocation" x="223.91304347826087" y="155.35714285714286"/>
         </tableViewCell>
     </objects>
     <resources>
+        <image name="user_default_avatal" width="52" height="52"/>
         <image name="video_placeholder" width="103" height="72"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>

+ 17 - 2
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeNavView.xib

@@ -25,11 +25,26 @@
                         <action selector="toMessaegCenter:" destination="iN0-l3-epB" eventType="touchUpInside" id="mav-ya-fe5"/>
                     </connections>
                 </button>
-                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="omR-9c-WQ1">
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="omR-9c-WQ1">
                     <rect key="frame" x="385" y="54" width="8" height="8"/>
-                    <color key="backgroundColor" red="0.97254901960784312" green="0.31372549019607843" blue="0.2627450980392157" alpha="1" colorSpace="calibratedRGB"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fXb-H8-rKA">
+                            <rect key="frame" x="1" y="1" width="6" height="6"/>
+                            <color key="backgroundColor" red="0.97254901959999995" green="0.31372549020000001" blue="0.26274509800000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="3"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
+                        <constraint firstItem="fXb-H8-rKA" firstAttribute="top" secondItem="omR-9c-WQ1" secondAttribute="top" constant="1" id="Rri-JH-a1r"/>
+                        <constraint firstAttribute="bottom" secondItem="fXb-H8-rKA" secondAttribute="bottom" constant="1" id="Xc3-a1-JMG"/>
+                        <constraint firstItem="fXb-H8-rKA" firstAttribute="leading" secondItem="omR-9c-WQ1" secondAttribute="leading" constant="1" id="kRN-Q5-ooR"/>
                         <constraint firstAttribute="height" constant="8" id="q21-oT-Hxm"/>
+                        <constraint firstAttribute="trailing" secondItem="fXb-H8-rKA" secondAttribute="trailing" constant="1" id="qeO-5Q-aa6"/>
                         <constraint firstAttribute="width" constant="8" id="wKI-LW-qki"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>

+ 6 - 3
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeVideoCourseCell.m

@@ -15,6 +15,8 @@
 
 @property (weak, nonatomic) IBOutlet UILabel *teacherName;
 
+@property (weak, nonatomic) IBOutlet UIImageView *teacherAvatar;
+
 @property (weak, nonatomic) IBOutlet UILabel *coursePrice;
 
 @property (weak, nonatomic) IBOutlet UILabel *courseCount;
@@ -36,12 +38,13 @@
     [self.coverImage sd_setImageWithURL:[NSURL URLWithString:[source.lessonCoverUrl getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:@"video_placeholder"]];
     self.courseName.text = [NSString returnNoNullStringWithString:source.videoGroupName];
     if ([NSString isEmptyString:source.teacherName]) {
-        self.teacherName.text = [NSString stringWithFormat:@"老师:游客%@",source.teacherId];
+        self.teacherName.text = [NSString stringWithFormat:@"游客%@",source.teacherId];
     }
     else {
-        self.teacherName.text = [NSString stringWithFormat:@"老师:%@",source.teacherName];
-
+        self.teacherName.text = [NSString stringWithFormat:@"%@",source.teacherName];
     }
+    [self.teacherAvatar sd_setImageWithURL:[NSURL URLWithString:[source.avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
+
     self.coursePrice.text = [NSString stringWithFormat:@"¥%.2f",source.lessonPrice];
     self.courseCount.text = [NSString stringWithFormat:@"%zd课时",source.lessonCount];
     self.descLabel.text = [NSString stringWithFormat:@"%zd人已购买",source.buyCount];

+ 25 - 12
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeVideoCourseCell.xib

@@ -68,15 +68,6 @@
                                 <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="老师:李云磊" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KYe-PG-V9i">
-                                <rect key="frame" x="148" y="49.5" width="74" height="17"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="17" id="EyE-QQ-cmD"/>
-                                </constraints>
-                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                <color key="textColor" red="0.41568627450000001" green="0.41568627450000001" blue="0.41568627450000001" alpha="1" colorSpace="calibratedRGB"/>
-                                <nil key="highlightedColor"/>
-                            </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥299" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JR5-GO-mSN">
                                 <rect key="frame" x="148" y="93.5" width="37" height="20"/>
                                 <constraints>
@@ -116,24 +107,44 @@
                                 <color key="textColor" red="1" green="0.50196078430000002" blue="0.17254901959999999" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="cqj-eK-gnE">
+                                <rect key="frame" x="148" y="51.5" width="18" height="18"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="18" id="0Vr-BO-kpU"/>
+                                    <constraint firstAttribute="height" constant="18" id="tmu-do-ohi"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="9"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </imageView>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="李云磊" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KYe-PG-V9i">
+                                <rect key="frame" x="170" y="53.5" width="37" height="14.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                <color key="textColor" red="0.41568627450000001" green="0.41568627450000001" blue="0.41568627450000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
                             <constraint firstItem="knq-4v-R8V" firstAttribute="leading" secondItem="Hwe-zX-Dr8" secondAttribute="leading" constant="10" id="7Cd-Mj-Tb2"/>
                             <constraint firstItem="wLP-Ow-uiD" firstAttribute="centerY" secondItem="vlX-ud-WSY" secondAttribute="centerY" id="9b0-Ps-dhd"/>
+                            <constraint firstItem="cqj-eK-gnE" firstAttribute="top" secondItem="p1L-Tc-1eC" secondAttribute="bottom" constant="5" id="9jr-1u-dU3"/>
                             <constraint firstItem="p1L-Tc-1eC" firstAttribute="leading" secondItem="knq-4v-R8V" secondAttribute="trailing" constant="8" id="Am2-UT-dVy"/>
                             <constraint firstAttribute="trailing" secondItem="wLP-Ow-uiD" secondAttribute="trailing" constant="10" id="BJd-b3-GDy"/>
                             <constraint firstItem="vlX-ud-WSY" firstAttribute="leading" secondItem="JR5-GO-mSN" secondAttribute="trailing" constant="11" id="Baq-P2-MLw"/>
-                            <constraint firstItem="KYe-PG-V9i" firstAttribute="top" secondItem="p1L-Tc-1eC" secondAttribute="bottom" constant="3" id="Hh3-6E-Cmp"/>
+                            <constraint firstItem="KYe-PG-V9i" firstAttribute="leading" secondItem="cqj-eK-gnE" secondAttribute="trailing" constant="4" id="FPy-IT-kug"/>
+                            <constraint firstItem="cqj-eK-gnE" firstAttribute="leading" secondItem="p1L-Tc-1eC" secondAttribute="leading" id="Hsv-V3-uIk"/>
                             <constraint firstItem="XBM-bX-gza" firstAttribute="top" secondItem="knq-4v-R8V" secondAttribute="top" constant="6" id="Ksh-Br-hIn"/>
                             <constraint firstItem="knq-4v-R8V" firstAttribute="centerY" secondItem="Hwe-zX-Dr8" secondAttribute="centerY" id="LHd-wh-QXf"/>
                             <constraint firstItem="JR5-GO-mSN" firstAttribute="bottom" secondItem="knq-4v-R8V" secondAttribute="bottom" constant="-5" id="Of4-Nt-ICM"/>
+                            <constraint firstItem="JR5-GO-mSN" firstAttribute="leading" secondItem="p1L-Tc-1eC" secondAttribute="leading" id="RP5-bU-zIH"/>
                             <constraint firstItem="p1L-Tc-1eC" firstAttribute="top" secondItem="knq-4v-R8V" secondAttribute="top" constant="4" id="gMW-CX-juj"/>
                             <constraint firstAttribute="trailing" secondItem="p1L-Tc-1eC" secondAttribute="trailing" constant="10" id="i4s-hj-WAH"/>
-                            <constraint firstItem="KYe-PG-V9i" firstAttribute="leading" secondItem="p1L-Tc-1eC" secondAttribute="leading" id="idA-YD-3dU"/>
                             <constraint firstItem="XBM-bX-gza" firstAttribute="leading" secondItem="knq-4v-R8V" secondAttribute="leading" constant="8" id="qYL-vE-gnZ"/>
                             <constraint firstItem="vlX-ud-WSY" firstAttribute="centerY" secondItem="JR5-GO-mSN" secondAttribute="centerY" id="tDh-91-MoS"/>
-                            <constraint firstItem="JR5-GO-mSN" firstAttribute="leading" secondItem="KYe-PG-V9i" secondAttribute="leading" id="ytX-Pm-yGb"/>
+                            <constraint firstItem="KYe-PG-V9i" firstAttribute="centerY" secondItem="cqj-eK-gnE" secondAttribute="centerY" id="tEL-aq-WXx"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -159,12 +170,14 @@
                 <outlet property="coverImage" destination="knq-4v-R8V" id="dpy-Wz-IEu"/>
                 <outlet property="descLabel" destination="wLP-Ow-uiD" id="lkg-g1-9me"/>
                 <outlet property="subjectLabel" destination="hXc-Gf-sP3" id="eRk-fl-2WL"/>
+                <outlet property="teacherAvatar" destination="cqj-eK-gnE" id="sbo-s2-S8d"/>
                 <outlet property="teacherName" destination="KYe-PG-V9i" id="ylg-Uv-HyL"/>
             </connections>
             <point key="canvasLocation" x="150" y="131.58482142857142"/>
         </tableViewCell>
     </objects>
     <resources>
+        <image name="user_default_avatal" width="52" height="52"/>
         <image name="video_placeholder" width="103" height="72"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>

+ 24 - 5
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomeVideoCourseView.xib

@@ -13,6 +13,18 @@
             <rect key="frame" x="0.0" y="0.0" width="414" height="332"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QT1-CR-Adr">
+                    <rect key="frame" x="349" y="12" width="45" height="18"/>
+                    <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="18" id="DeK-kP-SO6"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="9"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="视频课" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="udp-EO-1wE">
                     <rect key="frame" x="14" y="10" width="49" height="22"/>
                     <constraints>
@@ -27,7 +39,11 @@
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                 </view>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_more" translatesAutoresizingMaskIntoConstraints="NO" id="cKY-En-XuZ">
-                    <rect key="frame" x="384" y="16" width="10" height="10"/>
+                    <rect key="frame" x="383" y="17" width="6" height="8"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="6" id="8cG-az-jHW"/>
+                        <constraint firstAttribute="height" constant="8" id="a0j-rV-lQn"/>
+                    </constraints>
                 </imageView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="更多" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="g4k-4s-Uxm">
                     <rect key="frame" x="355" y="14" width="25" height="14.5"/>
@@ -36,7 +52,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <button opaque="NO" tag="1008" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="c3t-WL-rJD">
-                    <rect key="frame" x="355" y="6" width="39" height="30"/>
+                    <rect key="frame" x="355" y="6" width="34" height="30"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="UfY-cf-Cb4"/>
                     </constraints>
@@ -51,19 +67,22 @@
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
+                <constraint firstItem="g4k-4s-Uxm" firstAttribute="leading" secondItem="QT1-CR-Adr" secondAttribute="leading" constant="6" id="16u-n9-haE"/>
                 <constraint firstItem="udp-EO-1wE" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="6Qd-7e-pFv"/>
                 <constraint firstItem="B9C-qj-1hJ" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="FKs-9C-pzD"/>
+                <constraint firstItem="cKY-En-XuZ" firstAttribute="trailing" secondItem="QT1-CR-Adr" secondAttribute="trailing" constant="-5" id="G9U-Me-wFQ"/>
                 <constraint firstAttribute="bottom" secondItem="B9C-qj-1hJ" secondAttribute="bottom" constant="10" id="InW-5B-cLU"/>
                 <constraint firstItem="g4k-4s-Uxm" firstAttribute="centerY" secondItem="udp-EO-1wE" secondAttribute="centerY" id="PxZ-6G-isy"/>
                 <constraint firstItem="cKY-En-XuZ" firstAttribute="trailing" secondItem="c3t-WL-rJD" secondAttribute="trailing" id="TM3-m9-vIy"/>
                 <constraint firstItem="g4k-4s-Uxm" firstAttribute="leading" secondItem="c3t-WL-rJD" secondAttribute="leading" id="XDD-qA-OpZ"/>
-                <constraint firstItem="cKY-En-XuZ" firstAttribute="leading" secondItem="g4k-4s-Uxm" secondAttribute="trailing" constant="4" id="Z15-qG-1NL"/>
+                <constraint firstItem="cKY-En-XuZ" firstAttribute="leading" secondItem="g4k-4s-Uxm" secondAttribute="trailing" constant="3" id="Z15-qG-1NL"/>
                 <constraint firstAttribute="trailing" secondItem="B9C-qj-1hJ" secondAttribute="trailing" id="adP-VB-fht"/>
+                <constraint firstAttribute="trailing" secondItem="QT1-CR-Adr" secondAttribute="trailing" constant="20" id="enU-Lj-Ry5"/>
                 <constraint firstItem="udp-EO-1wE" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="fpl-x5-GBv"/>
                 <constraint firstItem="B9C-qj-1hJ" firstAttribute="top" secondItem="c3t-WL-rJD" secondAttribute="bottom" constant="14" id="gHi-Dv-69Q"/>
-                <constraint firstAttribute="trailing" secondItem="cKY-En-XuZ" secondAttribute="trailing" constant="20" id="lyC-OD-ads"/>
                 <constraint firstItem="cKY-En-XuZ" firstAttribute="centerY" secondItem="udp-EO-1wE" secondAttribute="centerY" id="oRV-aR-TYe"/>
                 <constraint firstItem="c3t-WL-rJD" firstAttribute="centerY" secondItem="udp-EO-1wE" secondAttribute="centerY" id="q48-Qq-5AX"/>
+                <constraint firstItem="g4k-4s-Uxm" firstAttribute="centerY" secondItem="QT1-CR-Adr" secondAttribute="centerY" id="sh3-mN-2vS"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
@@ -75,6 +94,6 @@
         </view>
     </objects>
     <resources>
-        <image name="home_more" width="10" height="10"/>
+        <image name="home_more" width="6" height="8"/>
     </resources>
 </document>

+ 25 - 6
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HotInformationHeadView.xib

@@ -13,6 +13,18 @@
             <rect key="frame" x="0.0" y="0.0" width="414" height="50"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BHe-NQ-zoN">
+                    <rect key="frame" x="349" y="12" width="45" height="18"/>
+                    <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="18" id="tJx-OF-zeb"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="9"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="精彩资讯" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="76G-7c-nEc">
                     <rect key="frame" x="16" y="10" width="65.5" height="22"/>
                     <constraints>
@@ -23,7 +35,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <button opaque="NO" tag="1008" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GKx-rJ-vq5">
-                    <rect key="frame" x="355" y="6" width="39" height="30"/>
+                    <rect key="frame" x="355" y="6" width="34" height="30"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="F8f-2f-Iih"/>
                     </constraints>
@@ -42,28 +54,35 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_more" translatesAutoresizingMaskIntoConstraints="NO" id="xaQ-Rd-bel">
-                    <rect key="frame" x="384" y="16" width="10" height="10"/>
+                    <rect key="frame" x="383" y="17" width="6" height="8"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="8" id="5zh-Zh-elO"/>
+                        <constraint firstAttribute="width" constant="6" id="a4V-IE-hlc"/>
+                    </constraints>
                 </imageView>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
                 <constraint firstItem="xaQ-Rd-bel" firstAttribute="centerY" secondItem="76G-7c-nEc" secondAttribute="centerY" id="3Sc-FQ-jQZ"/>
+                <constraint firstItem="uoh-6D-nay" firstAttribute="leading" secondItem="BHe-NQ-zoN" secondAttribute="leading" constant="6" id="5Pb-eU-yKc"/>
                 <constraint firstItem="GKx-rJ-vq5" firstAttribute="centerY" secondItem="76G-7c-nEc" secondAttribute="centerY" id="O2s-vi-aJA"/>
-                <constraint firstItem="xaQ-Rd-bel" firstAttribute="leading" secondItem="uoh-6D-nay" secondAttribute="trailing" constant="4" id="kku-ko-uWg"/>
+                <constraint firstItem="xaQ-Rd-bel" firstAttribute="trailing" secondItem="BHe-NQ-zoN" secondAttribute="trailing" constant="-5" id="iG7-9j-x0q"/>
+                <constraint firstAttribute="trailing" secondItem="BHe-NQ-zoN" secondAttribute="trailing" constant="20" id="ifu-qX-OU8"/>
+                <constraint firstItem="xaQ-Rd-bel" firstAttribute="leading" secondItem="uoh-6D-nay" secondAttribute="trailing" constant="3" id="kku-ko-uWg"/>
                 <constraint firstItem="76G-7c-nEc" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="mWY-Mu-pgz"/>
                 <constraint firstItem="uoh-6D-nay" firstAttribute="centerY" secondItem="76G-7c-nEc" secondAttribute="centerY" id="oXh-yg-Fba"/>
                 <constraint firstItem="xaQ-Rd-bel" firstAttribute="trailing" secondItem="GKx-rJ-vq5" secondAttribute="trailing" id="va8-tl-1zF"/>
-                <constraint firstAttribute="trailing" secondItem="xaQ-Rd-bel" secondAttribute="trailing" constant="20" id="wHB-pd-svc"/>
+                <constraint firstItem="BHe-NQ-zoN" firstAttribute="centerY" secondItem="uoh-6D-nay" secondAttribute="centerY" id="xFP-sx-nvg"/>
                 <constraint firstItem="76G-7c-nEc" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="16" id="yZf-ND-wQj"/>
                 <constraint firstItem="uoh-6D-nay" firstAttribute="leading" secondItem="GKx-rJ-vq5" secondAttribute="leading" id="zYz-3c-1r5"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
-            <point key="canvasLocation" x="131.8840579710145" y="-27.790178571428569"/>
+            <point key="canvasLocation" x="131.8840579710145" y="-28.125"/>
         </view>
     </objects>
     <resources>
-        <image name="home_more" width="10" height="10"/>
+        <image name="home_more" width="6" height="8"/>
     </resources>
 </document>

+ 4 - 2
KulexiuForStudent/KulexiuForStudent/Module/Home/View/KSHomeButton.xib

@@ -13,8 +13,8 @@
             <rect key="frame" x="0.0" y="0.0" width="80" height="80"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
-                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="专项训练" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1ld-By-usD">
-                    <rect key="frame" x="15.5" y="63" width="49.5" height="17"/>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="专项训练" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1ld-By-usD">
+                    <rect key="frame" x="2" y="63" width="76" height="17"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="17" id="HmM-NJ-9X6"/>
                     </constraints>
@@ -41,7 +41,9 @@
                 <constraint firstAttribute="bottom" secondItem="Z8s-SG-JhM" secondAttribute="bottom" id="3uz-SX-3Fy"/>
                 <constraint firstItem="fGp-yj-UZk" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="6hu-0z-K7k"/>
                 <constraint firstItem="Z8s-SG-JhM" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="QJA-gE-y6C"/>
+                <constraint firstItem="1ld-By-usD" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="2" id="U4v-B2-GYo"/>
                 <constraint firstItem="1ld-By-usD" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="Zfj-98-cxn"/>
+                <constraint firstAttribute="trailing" secondItem="1ld-By-usD" secondAttribute="trailing" constant="2" id="bfB-Zj-nct"/>
                 <constraint firstItem="Z8s-SG-JhM" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="gyu-3P-I55"/>
                 <constraint firstItem="fGp-yj-UZk" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="5" id="t2k-gD-lM1"/>
                 <constraint firstAttribute="bottom" secondItem="1ld-By-usD" secondAttribute="bottom" id="ygh-pf-cwF"/>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Home/View/TeacherShowCell.m

@@ -48,7 +48,7 @@
     self.descLabel.text = [NSString returnNoNullStringWithString:sourceModel.describe];
     [self.teacherAvatar sd_setImageWithURL:[NSURL URLWithString:[sourceModel.avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
     self.teacherNameLabel.text = [NSString returnNoNullStringWithString:sourceModel.username];
-    self.watchCount.text = [NSString stringWithFormat:@"%@人观看",sourceModel.browse];
+    self.watchCount.text = [NSString stringWithFormat:@"%@人观看",sourceModel.browse];
     
 
     [KSVideoHelper getVideoDuration:sourceModel.videoUrl displayInLabel:self.durationLabel];

+ 17 - 28
KulexiuForStudent/KulexiuForStudent/Module/Home/View/TeacherShowCell.xib

@@ -11,32 +11,24 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="TeacherShowCell">
-            <rect key="frame" x="0.0" y="0.0" width="188" height="164"/>
+            <rect key="frame" x="0.0" y="0.0" width="188" height="132"/>
             <autoresizingMask key="autoresizingMask"/>
             <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
-                <rect key="frame" x="0.0" y="0.0" width="188" height="164"/>
+                <rect key="frame" x="0.0" y="0.0" width="188" height="132"/>
                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="01s-Q8-6El">
-                        <rect key="frame" x="0.0" y="0.0" width="188" height="164"/>
+                        <rect key="frame" x="0.0" y="0.0" width="188" height="132"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="video_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="EFx-Mc-ddD">
-                                <rect key="frame" x="0.0" y="0.0" width="188" height="100"/>
+                                <rect key="frame" x="0.0" y="0.0" width="188" height="94"/>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="100" id="BLz-7G-Kb2"/>
+                                    <constraint firstAttribute="height" constant="94" id="BLz-7G-Kb2"/>
                                 </constraints>
                             </imageView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="从零开始学竖笛视频课" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bj0-bS-0xB">
-                                <rect key="frame" x="7" y="106" width="174" height="17"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="17" id="17Q-qx-6GC"/>
-                                </constraints>
-                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
-                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                                <nil key="highlightedColor"/>
-                            </label>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="9jq-kZ-bi9">
-                                <rect key="frame" x="8" y="136" width="18" height="18"/>
+                                <rect key="frame" x="8" y="104" width="18" height="18"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="18" id="hDV-Sn-4Qi"/>
                                     <constraint firstAttribute="height" constant="18" id="hoC-I2-02c"/>
@@ -48,19 +40,19 @@
                                 </userDefinedRuntimeAttributes>
                             </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mwL-ai-act">
-                                <rect key="frame" x="32" y="137.5" width="37" height="15"/>
+                                <rect key="frame" x="32" y="105.5" width="37" height="15"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                 <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="120观看" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h60-Mb-b5v">
-                                <rect key="frame" x="138.5" y="138.5" width="41.5" height="13.5"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="751" verticalCompressionResistancePriority="751" text="120观看" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h60-Mb-b5v">
+                                <rect key="frame" x="127" y="106.5" width="53" height="13.5"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                 <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hhc-kx-51J">
-                                <rect key="frame" x="119.5" y="80" width="60.5" height="20"/>
+                                <rect key="frame" x="120.5" y="66" width="60.5" height="20"/>
                                 <subviews>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ueX-N8-LMM">
                                         <rect key="frame" x="19" y="0.0" width="31.5" height="20"/>
@@ -110,16 +102,14 @@
                             <constraint firstAttribute="trailing" secondItem="EFx-Mc-ddD" secondAttribute="trailing" id="2yD-0O-HEb"/>
                             <constraint firstItem="EFx-Mc-ddD" firstAttribute="leading" secondItem="01s-Q8-6El" secondAttribute="leading" id="8VS-tt-JHf"/>
                             <constraint firstItem="h60-Mb-b5v" firstAttribute="centerY" secondItem="mwL-ai-act" secondAttribute="centerY" id="E20-QH-cws"/>
-                            <constraint firstAttribute="trailing" secondItem="Bj0-bS-0xB" secondAttribute="trailing" constant="7" id="GH1-JD-q7M"/>
                             <constraint firstAttribute="trailing" secondItem="h60-Mb-b5v" secondAttribute="trailing" constant="8" id="Jci-3j-Y9v"/>
+                            <constraint firstItem="9jq-kZ-bi9" firstAttribute="top" secondItem="EFx-Mc-ddD" secondAttribute="bottom" constant="10" id="LWc-Zn-GPa"/>
                             <constraint firstItem="EFx-Mc-ddD" firstAttribute="top" secondItem="01s-Q8-6El" secondAttribute="top" id="S2S-s2-vlQ"/>
-                            <constraint firstItem="Bj0-bS-0xB" firstAttribute="leading" secondItem="01s-Q8-6El" secondAttribute="leading" constant="7" id="SXK-uA-nnt"/>
-                            <constraint firstItem="hhc-kx-51J" firstAttribute="bottom" secondItem="EFx-Mc-ddD" secondAttribute="bottom" id="U1m-w4-ZLX"/>
+                            <constraint firstItem="hhc-kx-51J" firstAttribute="bottom" secondItem="EFx-Mc-ddD" secondAttribute="bottom" constant="-8" id="U1m-w4-ZLX"/>
                             <constraint firstItem="mwL-ai-act" firstAttribute="leading" secondItem="9jq-kZ-bi9" secondAttribute="trailing" constant="6" id="YXk-GC-bpl"/>
-                            <constraint firstAttribute="trailing" secondItem="hhc-kx-51J" secondAttribute="trailing" constant="8" id="bOx-RM-i79"/>
-                            <constraint firstItem="9jq-kZ-bi9" firstAttribute="top" secondItem="Bj0-bS-0xB" secondAttribute="bottom" constant="13" id="m3U-Eh-PJY"/>
+                            <constraint firstAttribute="trailing" secondItem="hhc-kx-51J" secondAttribute="trailing" constant="7" id="bOx-RM-i79"/>
                             <constraint firstItem="9jq-kZ-bi9" firstAttribute="leading" secondItem="01s-Q8-6El" secondAttribute="leading" constant="8" id="n8n-vj-zpF"/>
-                            <constraint firstItem="Bj0-bS-0xB" firstAttribute="top" secondItem="EFx-Mc-ddD" secondAttribute="bottom" constant="6" id="p1g-pR-hfF"/>
+                            <constraint firstItem="h60-Mb-b5v" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="mwL-ai-act" secondAttribute="trailing" constant="10" id="o3Q-vJ-HWP"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -136,9 +126,8 @@
                 <constraint firstItem="01s-Q8-6El" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="X8j-01-xHr"/>
                 <constraint firstItem="01s-Q8-6El" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="hCm-BD-nUI"/>
             </constraints>
-            <size key="customSize" width="188" height="191"/>
+            <size key="customSize" width="188" height="167"/>
             <connections>
-                <outlet property="descLabel" destination="Bj0-bS-0xB" id="owR-vx-mXa"/>
                 <outlet property="durationLabel" destination="ueX-N8-LMM" id="Xuo-oM-2BR"/>
                 <outlet property="playButton" destination="KQK-OM-u6P" id="243-5b-pYg"/>
                 <outlet property="teacherAvatar" destination="9jq-kZ-bi9" id="LVa-r3-Ogc"/>
@@ -146,7 +135,7 @@
                 <outlet property="videoCover" destination="EFx-Mc-ddD" id="Efo-f4-wif"/>
                 <outlet property="watchCount" destination="h60-Mb-b5v" id="VU2-S6-rzx"/>
             </connections>
-            <point key="canvasLocation" x="231.8840579710145" y="141.29464285714286"/>
+            <point key="canvasLocation" x="231.8840579710145" y="132.58928571428572"/>
         </collectionViewCell>
     </objects>
     <resources>

+ 8 - 0
KulexiuForStudent/KulexiuForStudent/Module/Login/View/FirstSettingBodyView.xib

@@ -115,11 +115,16 @@
                         <constraint firstAttribute="trailing" secondItem="6u4-r6-o76" secondAttribute="trailing" constant="35" id="zCt-z0-wbp"/>
                     </constraints>
                 </view>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_bottom" translatesAutoresizingMaskIntoConstraints="NO" id="rQa-ib-zWn">
+                    <rect key="frame" x="0.0" y="752.5" width="414" height="143.5"/>
+                </imageView>
             </subviews>
             <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
+                <constraint firstItem="rQa-ib-zWn" firstAttribute="width" secondItem="rQa-ib-zWn" secondAttribute="height" multiplier="375:130" id="0pQ-30-WEC"/>
                 <constraint firstItem="R3P-P9-lbP" firstAttribute="top" secondItem="aUD-4g-kem" secondAttribute="bottom" constant="30" id="BU2-mi-kup"/>
                 <constraint firstAttribute="trailing" secondItem="x8q-mK-b9v" secondAttribute="trailing" id="Cbp-vp-q5A"/>
+                <constraint firstAttribute="trailing" secondItem="rQa-ib-zWn" secondAttribute="trailing" id="HBC-zi-ArD"/>
                 <constraint firstItem="R3P-P9-lbP" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="34" id="HUl-qG-X8L"/>
                 <constraint firstItem="x8q-mK-b9v" firstAttribute="top" secondItem="yaI-R3-Saw" secondAttribute="bottom" constant="70" id="J5H-aq-JKb"/>
                 <constraint firstItem="aUD-4g-kem" firstAttribute="top" secondItem="x8q-mK-b9v" secondAttribute="bottom" constant="12" id="MNq-iM-HSS"/>
@@ -130,7 +135,9 @@
                 <constraint firstItem="R6w-CQ-8xx" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="ZhZ-Ni-2Bg"/>
                 <constraint firstItem="R6w-CQ-8xx" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="dPf-Uj-MUO"/>
                 <constraint firstItem="yaI-R3-Saw" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="25" id="nGM-O0-PLy"/>
+                <constraint firstItem="rQa-ib-zWn" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="olR-9b-dmA"/>
                 <constraint firstItem="yaI-R3-Saw" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="102" id="old-4C-G5Q"/>
+                <constraint firstAttribute="bottom" secondItem="rQa-ib-zWn" secondAttribute="bottom" id="s4f-8U-4wC"/>
                 <constraint firstAttribute="trailing" secondItem="R3P-P9-lbP" secondAttribute="trailing" constant="34" id="tSq-l1-2D6"/>
                 <constraint firstItem="R6w-CQ-8xx" firstAttribute="width" secondItem="R6w-CQ-8xx" secondAttribute="height" multiplier="375:305" id="yib-jb-w5O"/>
             </constraints>
@@ -145,6 +152,7 @@
         </view>
     </objects>
     <resources>
+        <image name="login_bottom" width="375" height="130"/>
         <image name="login_head" width="375" height="305"/>
     </resources>
 </document>

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Module/Login/View/LoginBodyView.m

@@ -33,8 +33,8 @@
     [self.sureButton setImage:[UIImage imageNamed:@"login_unseleted"] forState:UIControlStateNormal];
     [self.sureButton setImage:[UIImage imageNamed:@"login_seleted"] forState:UIControlStateSelected];
     self.isChooseProtocal = NO;
-    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"我已阅读并同意《酷乐秀用户注册协议》" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12.0f], NSForegroundColorAttributeName:HexRGB(0x999999)}];
-    [attr addAttributes:@{NSForegroundColorAttributeName:THEMECOLOR} range:NSMakeRange(7, 11)];
+    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"我已阅读并同意《用户注册协议》" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12.0f], NSForegroundColorAttributeName:HexRGB(0x999999)}];
+    [attr addAttributes:@{NSForegroundColorAttributeName:THEMECOLOR} range:NSMakeRange(7, 8)];
     [self.registerProtocalLabel setAttributedText:attr];
     
     NSMutableAttributedString *privacyAttr = [[NSMutableAttributedString alloc] initWithString:@"和《隐私政策》" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12.0f], NSForegroundColorAttributeName:HexRGB(0x999999)}];

+ 12 - 15
KulexiuForStudent/KulexiuForStudent/Module/Login/View/LoginBodyView.xib

@@ -124,7 +124,7 @@
                     </connections>
                 </button>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vXW-ev-ENf">
-                    <rect key="frame" x="66.5" y="528.5" width="30" height="30"/>
+                    <rect key="frame" x="44" y="528.5" width="30" height="30"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="30" id="QqX-xE-xSu"/>
                         <constraint firstAttribute="height" constant="30" id="U66-dZ-E2Z"/>
@@ -135,20 +135,20 @@
                         <action selector="selectButtonAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="95y-a0-Ane"/>
                     </connections>
                 </button>
-                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我已阅读并同意《酷乐秀用户注册协议》" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="enh-Ce-PS7">
-                    <rect key="frame" x="96.5" y="536" width="221" height="15"/>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我已阅读并同意《用户注册协议》" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="enh-Ce-PS7">
+                    <rect key="frame" x="74" y="536" width="184" height="15"/>
                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
                     <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" 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="Enc-9D-ZIb">
-                    <rect key="frame" x="96.5" y="556" width="86" height="15"/>
+                    <rect key="frame" x="259" y="536" width="86" height="15"/>
                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
                     <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ylm-Ib-zPa">
-                    <rect key="frame" x="193" y="528.5" width="124.5" height="30"/>
+                    <rect key="frame" x="148" y="528.5" width="110" height="30"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="u4J-po-0Tc"/>
                     </constraints>
@@ -158,10 +158,7 @@
                     </connections>
                 </button>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ko7-Ny-Rff">
-                    <rect key="frame" x="96.5" y="556" width="86" height="30"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="30" id="1nd-po-JrO"/>
-                    </constraints>
+                    <rect key="frame" x="259" y="526.5" width="86" height="34"/>
                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                     <connections>
                         <action selector="privacyAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="2PD-CJ-1dt"/>
@@ -170,11 +167,10 @@
             </subviews>
             <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstItem="ko7-Ny-Rff" firstAttribute="leading" secondItem="Enc-9D-ZIb" secondAttribute="leading" id="1yd-N9-C4n"/>
                 <constraint firstItem="vXW-ev-ENf" firstAttribute="top" secondItem="FGc-X7-gKF" secondAttribute="bottom" constant="20" id="3hl-Va-qKC"/>
                 <constraint firstAttribute="trailing" secondItem="3Vc-PU-5ec" secondAttribute="trailing" constant="34" id="5qw-B8-PuM"/>
+                <constraint firstItem="ko7-Ny-Rff" firstAttribute="centerY" secondItem="Enc-9D-ZIb" secondAttribute="centerY" id="6Ob-us-ECK"/>
                 <constraint firstItem="FGc-X7-gKF" firstAttribute="top" secondItem="3Vc-PU-5ec" secondAttribute="bottom" constant="20" id="7Hx-0J-7RR"/>
-                <constraint firstItem="ko7-Ny-Rff" firstAttribute="trailing" secondItem="Enc-9D-ZIb" secondAttribute="trailing" id="7R7-UL-yeh"/>
                 <constraint firstItem="FGc-X7-gKF" firstAttribute="leading" secondItem="3Vc-PU-5ec" secondAttribute="leading" id="92F-v1-QX7"/>
                 <constraint firstItem="WqI-Rf-kUe" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="25" id="9GS-oA-unV"/>
                 <constraint firstAttribute="trailing" secondItem="A5r-6M-UYx" secondAttribute="trailing" id="D7M-2f-1sc"/>
@@ -183,20 +179,21 @@
                 <constraint firstItem="CQJ-Py-qwY" firstAttribute="top" secondItem="WqI-Rf-kUe" secondAttribute="bottom" id="LMh-sH-8am"/>
                 <constraint firstAttribute="trailing" secondItem="0q4-1w-tla" secondAttribute="trailing" id="OgV-Kk-Nks"/>
                 <constraint firstItem="A5r-6M-UYx" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="Plu-en-nQW"/>
+                <constraint firstItem="ko7-Ny-Rff" firstAttribute="leading" secondItem="Enc-9D-ZIb" secondAttribute="leading" id="Rj4-vY-smc"/>
                 <constraint firstItem="3Vc-PU-5ec" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="34" id="Sf6-0A-GFM"/>
+                <constraint firstItem="Enc-9D-ZIb" firstAttribute="leading" secondItem="enh-Ce-PS7" secondAttribute="trailing" constant="1" id="TTJ-Qs-3IS"/>
                 <constraint firstItem="ylm-Ib-zPa" firstAttribute="leading" secondItem="enh-Ce-PS7" secondAttribute="leading" multiplier="2" id="X3a-au-JmM"/>
                 <constraint firstAttribute="bottom" secondItem="0q4-1w-tla" secondAttribute="bottom" id="an5-yy-Ltq"/>
                 <constraint firstItem="ylm-Ib-zPa" firstAttribute="centerY" secondItem="enh-Ce-PS7" secondAttribute="centerY" id="eZv-hd-Mxi"/>
                 <constraint firstItem="A5r-6M-UYx" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="epe-Tm-dNT"/>
-                <constraint firstItem="Enc-9D-ZIb" firstAttribute="leading" secondItem="enh-Ce-PS7" secondAttribute="leading" id="f66-eh-vdI"/>
+                <constraint firstItem="ko7-Ny-Rff" firstAttribute="trailing" secondItem="Enc-9D-ZIb" secondAttribute="trailing" id="f7k-sG-caE"/>
                 <constraint firstItem="CQJ-Py-qwY" firstAttribute="leading" secondItem="WqI-Rf-kUe" secondAttribute="leading" id="hAc-vT-7xN"/>
-                <constraint firstItem="ko7-Ny-Rff" firstAttribute="top" secondItem="Enc-9D-ZIb" secondAttribute="top" id="hm9-1I-NQy"/>
                 <constraint firstItem="ylm-Ib-zPa" firstAttribute="trailing" secondItem="enh-Ce-PS7" secondAttribute="trailing" id="i8W-J1-WOR"/>
-                <constraint firstItem="Enc-9D-ZIb" firstAttribute="top" secondItem="enh-Ce-PS7" secondAttribute="bottom" constant="5" id="ig7-A7-JAl"/>
                 <constraint firstItem="3Vc-PU-5ec" firstAttribute="top" secondItem="pce-OW-Xhb" secondAttribute="bottom" constant="45" id="k0L-0k-KJm"/>
                 <constraint firstAttribute="trailing" secondItem="LXC-2r-VRG" secondAttribute="trailing" id="kCk-C9-Xk8"/>
+                <constraint firstItem="vXW-ev-ENf" firstAttribute="leading" secondItem="FGc-X7-gKF" secondAttribute="leading" constant="10" id="lPS-HY-uAl"/>
                 <constraint firstItem="pce-OW-Xhb" firstAttribute="top" secondItem="LXC-2r-VRG" secondAttribute="bottom" constant="10" id="m2g-hY-JN5"/>
-                <constraint firstItem="enh-Ce-PS7" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="na9-Pf-cWr"/>
+                <constraint firstItem="Enc-9D-ZIb" firstAttribute="centerY" secondItem="enh-Ce-PS7" secondAttribute="centerY" id="pxx-eE-jU3"/>
                 <constraint firstItem="0q4-1w-tla" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="qQJ-X3-xNA"/>
                 <constraint firstAttribute="trailing" secondItem="pce-OW-Xhb" secondAttribute="trailing" constant="35" id="rMK-ya-QZu"/>
                 <constraint firstItem="LXC-2r-VRG" firstAttribute="top" secondItem="CQJ-Py-qwY" secondAttribute="bottom" constant="75" id="sbK-7n-zsM"/>

+ 2 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Controller/HomeworkListViewController.m

@@ -33,7 +33,7 @@
 }
 
 - (void)setupUI {
-    self.headHeight = 64.0f;
+    self.headHeight = 50.0f;
     [self.scrollView removeFromSuperview];
     self.view.backgroundColor = HexRGB(0xf6f8f9);
     
@@ -50,6 +50,7 @@
     JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
     lineView.indicatorColor = THEMECOLOR;
     lineView.indicatorWidth = 28;
+    lineView.indicatorHeight = 4.0f;
     self.categoryView.indicators = @[lineView];
     
     _pagerView = [self preferredPagingView];

+ 3 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkDetailModel.h

@@ -38,8 +38,10 @@
 @property (nonatomic, strong) NSString *studentId;
 @property (nonatomic, strong) NSString *teacherId;
 
-@property (nonatomic, strong) NSString *courseName;
+@property (nonatomic, strong) NSString *courseGroupName;
+@property (nonatomic, strong) NSString *classNum; // 第几节课
 @property (nonatomic, strong) NSString *imGroupId;
+@property (nonatomic, strong) NSString *studentNum;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
 - (instancetype)initWithDictionary:(NSDictionary *)dict;

+ 29 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkDetailModel.m

@@ -35,6 +35,11 @@ NSString *const kHomeworkDetailModelReviewHomework = @"reviewHomework";
 NSString *const kHomeworkDetailModelStudentId = @"studentId";
 NSString *const kHomeworkDetailModelTeacherId = @"teacherId";
 
+NSString *const kHomeworkDetailModelCourseGroupName= @"courseGroupName";
+NSString *const kHomeworkDetailModelClassNum = @"classNum";
+NSString *const kHomeworkDetailModelImGroupId = @"imGroupId";
+NSString *const kHomeworkDetailModelStudentNum = @"studentNum";
+
 @interface HomeworkDetailModel ()
 
 - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
@@ -69,6 +74,10 @@ NSString *const kHomeworkDetailModelTeacherId = @"teacherId";
 @synthesize reviewHomework = _reviewHomework;
 @synthesize studentId = _studentId;
 @synthesize teacherId = _teacherId;
+@synthesize courseGroupName = _courseGroupName;
+@synthesize classNum = _classNum;
+@synthesize imGroupId = _imGroupId;
+@synthesize studentNum = _studentNum;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
 {
@@ -108,6 +117,10 @@ NSString *const kHomeworkDetailModelTeacherId = @"teacherId";
             self.reviewHomework = [[self objectOrNilForKey:kHomeworkDetailModelReviewHomework fromDictionary:dict] doubleValue];
         self.studentId = [self objectOrNilForKey:kHomeworkDetailModelStudentId fromDictionary:dict];
         self.teacherId = [self objectOrNilForKey:kHomeworkDetailModelTeacherId fromDictionary:dict];
+        self.courseGroupName = [self objectOrNilForKey:kHomeworkDetailModelCourseGroupName fromDictionary:dict];
+        self.classNum = [self objectOrNilForKey:kHomeworkDetailModelClassNum fromDictionary:dict];
+        self.imGroupId = [self objectOrNilForKey:kHomeworkDetailModelImGroupId fromDictionary:dict];
+        self.studentNum = [self objectOrNilForKey:kHomeworkDetailModelStudentNum fromDictionary:dict];
     }
     
     return self;
@@ -143,6 +156,10 @@ NSString *const kHomeworkDetailModelTeacherId = @"teacherId";
     [mutableDict setValue:[NSNumber numberWithDouble:self.reviewHomework] forKey:kHomeworkDetailModelReviewHomework];
     [mutableDict setValue:self.studentId forKey:kHomeworkDetailModelStudentId];
     [mutableDict setValue:self.teacherId forKey:kHomeworkDetailModelTeacherId];
+    [mutableDict setValue:self.courseGroupName forKey:kHomeworkDetailModelCourseGroupName];
+    [mutableDict setValue:self.classNum forKey:kHomeworkDetailModelClassNum];
+    [mutableDict setValue:self.imGroupId forKey:kHomeworkDetailModelImGroupId];
+    [mutableDict setValue:self.studentNum forKey:kHomeworkDetailModelStudentNum];
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
 
@@ -195,6 +212,10 @@ NSString *const kHomeworkDetailModelTeacherId = @"teacherId";
     self.reviewHomework = [aDecoder decodeDoubleForKey:kHomeworkDetailModelReviewHomework];
     self.studentId = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentId];
     self.teacherId = [aDecoder decodeObjectForKey:kHomeworkDetailModelTeacherId];
+    self.courseGroupName = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseGroupName];
+    self.classNum = [aDecoder decodeObjectForKey:kHomeworkDetailModelClassNum];
+    self.imGroupId = [aDecoder decodeObjectForKey:kHomeworkDetailModelImGroupId];
+    self.studentNum = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentNum];
     return self;
 }
 
@@ -227,6 +248,10 @@ NSString *const kHomeworkDetailModelTeacherId = @"teacherId";
     [aCoder encodeDouble:_reviewHomework forKey:kHomeworkDetailModelReviewHomework];
     [aCoder encodeObject:_studentId forKey:kHomeworkDetailModelStudentId];
     [aCoder encodeObject:_teacherId forKey:kHomeworkDetailModelTeacherId];
+    [aCoder encodeObject:_courseGroupName forKey:kHomeworkDetailModelCourseGroupName];
+    [aCoder encodeObject:_classNum forKey:kHomeworkDetailModelClassNum];
+    [aCoder encodeObject:_imGroupId forKey:kHomeworkDetailModelImGroupId];
+    [aCoder encodeObject:_studentNum forKey:kHomeworkDetailModelStudentNum];
 }
 
 - (id)copyWithZone:(NSZone *)zone
@@ -261,6 +286,10 @@ NSString *const kHomeworkDetailModelTeacherId = @"teacherId";
         copy.reviewHomework = self.reviewHomework;
         copy.studentId = [self.studentId copyWithZone:zone];
         copy.teacherId = [self.teacherId copyWithZone:zone];
+        copy.teacherId = [self.teacherId copyWithZone:zone];
+        copy.teacherId = [self.teacherId copyWithZone:zone];
+        copy.teacherId = [self.teacherId copyWithZone:zone];
+        copy.teacherId = [self.teacherId copyWithZone:zone];
     }
     
     return copy;

+ 1 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkListModel.h

@@ -26,6 +26,7 @@
 @property (nonatomic, strong) NSString *submitTime;
 @property (nonatomic, strong) NSString *startTime;
 @property (nonatomic, strong) NSString *teacherId;
+@property (nonatomic, strong) NSString *homeworkStatus;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
 - (instancetype)initWithDictionary:(NSDictionary *)dict;

+ 7 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/Model/HomeworkListModel.m

@@ -23,6 +23,7 @@ NSString *const kHomeworkListModelSubmitTime = @"submitTime";
 NSString *const kHomeworkListModelStartTime = @"startTime";
 NSString *const kHomeworkListModelStudentId = @"studentId";
 NSString *const kHomeworkListModelTeacherId = @"teacherId";
+NSString *const kHomeworkListModelHomeworkStatus = @"homeworkStatus";
 
 @interface HomeworkListModel ()
 
@@ -47,6 +48,7 @@ NSString *const kHomeworkListModelTeacherId = @"teacherId";
 @synthesize startTime = _startTime;
 @synthesize studentId = _studentId;
 @synthesize teacherId = _teacherId;
+@synthesize homeworkStatus = _homeworkStatus;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
 {
@@ -75,6 +77,7 @@ NSString *const kHomeworkListModelTeacherId = @"teacherId";
             self.startTime = [self objectOrNilForKey:kHomeworkListModelStartTime fromDictionary:dict];
             self.studentId = [self objectOrNilForKey:kHomeworkListModelStudentId fromDictionary:dict];
             self.teacherId = [self objectOrNilForKey:kHomeworkListModelTeacherId fromDictionary:dict];
+            self.homeworkStatus = [self objectOrNilForKey:kHomeworkListModelHomeworkStatus fromDictionary:dict];
     }
     
     return self;
@@ -99,6 +102,7 @@ NSString *const kHomeworkListModelTeacherId = @"teacherId";
     [mutableDict setValue:self.startTime forKey:kHomeworkListModelStartTime];
     [mutableDict setValue:self.studentId forKey:kHomeworkListModelStudentId];
     [mutableDict setValue:self.teacherId forKey:kHomeworkListModelTeacherId];
+    [mutableDict setValue:self.homeworkStatus forKey:kHomeworkListModelHomeworkStatus];
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
 
@@ -140,6 +144,7 @@ NSString *const kHomeworkListModelTeacherId = @"teacherId";
     self.startTime = [aDecoder decodeObjectForKey:kHomeworkListModelStartTime];
     self.studentId = [aDecoder decodeObjectForKey:kHomeworkListModelStudentId];
     self.teacherId = [aDecoder decodeObjectForKey:kHomeworkListModelTeacherId];
+    self.homeworkStatus = [aDecoder decodeObjectForKey:kHomeworkListModelHomeworkStatus];
     return self;
 }
 
@@ -161,6 +166,7 @@ NSString *const kHomeworkListModelTeacherId = @"teacherId";
     [aCoder encodeObject:_startTime forKey:kHomeworkListModelStartTime];
     [aCoder encodeObject:_studentId forKey:kHomeworkListModelStudentId];
     [aCoder encodeObject:_teacherId forKey:kHomeworkListModelTeacherId];
+    [aCoder encodeObject:_homeworkStatus forKey:kHomeworkListModelHomeworkStatus];
 }
 
 - (id)copyWithZone:(NSZone *)zone
@@ -184,6 +190,7 @@ NSString *const kHomeworkListModelTeacherId = @"teacherId";
         copy.startTime = [self.startTime copyWithZone:zone];
         copy.studentId = [self.studentId copyWithZone:zone];
         copy.teacherId = [self.teacherId copyWithZone:zone];
+        copy.homeworkStatus = [self.homeworkStatus copyWithZone:zone];
     }
     
     return copy;

+ 1 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkBodyView.m

@@ -109,6 +109,7 @@
 - (void)requestData {
     NSInteger hasSubmit = self.selectIndex == 0 ? 0 : 1;
     [KSNetworkingManager homeworkListRequest:KS_POST date:self.chooseDate submit:hasSubmit page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+        NSLog(@"%@",[dic mj_JSONString]);
         [self endRefresh];
         if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
             NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];

+ 16 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkListCell.m

@@ -53,6 +53,22 @@
 
     self.userId = sourceModel.studentId;
     self.userName = sourceModel.studentName;
+    
+    if ([sourceModel.homeworkStatus isEqualToString:@"NOTCOMMIT"]) { // 未提交
+        self.statusLabel.text = @"未提交";
+        self.statusLabel.textColor = HexRGB(0xff802c);
+    }
+    else if ([sourceModel.homeworkStatus isEqualToString:@"NOTREVIEW"]) { // 未点评
+        self.statusLabel.text = @"未点评";
+        self.statusLabel.textColor = HexRGB(0x2DC7AA);
+    }
+    else if ([sourceModel.homeworkStatus isEqualToString:@"REVIEWED"]) { // 已点评
+        self.statusLabel.text = @"已点评";
+        self.statusLabel.textColor = HexRGB(0x999999);
+    }
+    else {
+        self.statusLabel.hidden = YES;
+    }
 }
 
 - (void)chatWithStudent:(HomeworkChatCallback)callback {

+ 3 - 2
KulexiuForStudent/KulexiuForStudent/Module/Mine/MineCourse/Controller/MyCourseViewController.m

@@ -11,7 +11,7 @@
 #import "JXCategoryView.h"
 #import "JXPagerListRefreshView.h"
 
-#define HEADER_HEIGHT (64)
+#define HEADER_HEIGHT (50)
 
 @interface MyCourseViewController ()<JXPagerViewDelegate, JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate>
 
@@ -50,7 +50,8 @@
     
     JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
     lineView.indicatorColor = THEMECOLOR;
-    lineView.indicatorWidth = 16;
+    lineView.indicatorHeight = 4.0f;
+    lineView.indicatorWidth = 28;
     self.categoryView.indicators = @[lineView];
     
     _pagerView = [self preferredPagingView];

+ 5 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/MineCourse/View/MyLessonBodyView.m

@@ -122,7 +122,7 @@
     
     self.dataArray = [NSMutableArray array];
     [self.tableView.mj_footer resetNoMoreData];
-    [self setPromptString:@"暂无内容" imageName:@"wd_img_zwsj" inView:self.tableView];
+    [self setPromptString:@"暂无课程" imageName:@"empty_course" inView:self.tableView];
     [self.tableView reloadData];
 }
 
@@ -478,6 +478,10 @@
 
 
 - (void)chatAction:(NSString *)targetId {
+    if ([NSString isEmptyString:targetId]) {
+        [self MBPShow:@"群组id不存在"];
+        return;
+    }
     KSChatConversationViewController *conversationVC = [[KSChatConversationViewController alloc] init];
     conversationVC.targetId = targetId;
     conversationVC.conversationType = ConversationType_GROUP;

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/MineCourse/View/MyVideoCourseBodyView.m

@@ -79,7 +79,7 @@
     self.rows = 10;
     self.dataArray = [NSMutableArray array];
     [self.collectionView.mj_footer resetNoMoreData];
-    [self setPromptString:@"暂无内容" imageName:@"wd_img_zwsj" inView:self.collectionView];
+    [self setPromptString:@"暂无课程" imageName:@"empty_course" inView:self.collectionView];
     [self.collectionView reloadData];
 }
 

+ 36 - 19
KulexiuForStudent/KulexiuForStudent/Module/Mine/Networking/View/KSNetworkAlert.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="19529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<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="19519"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -15,43 +15,59 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0xk-uH-Myy">
-                    <rect key="frame" x="32" y="384" width="350" height="128"/>
+                    <rect key="frame" x="32" y="364.5" width="350" height="167.5"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="检测成功" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o3C-or-ESI">
-                            <rect key="frame" x="10" y="20" width="330" height="26"/>
+                            <rect key="frame" x="10" y="20" width="330" height="30"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="26" id="hPN-da-6jc"/>
+                                <constraint firstAttribute="height" constant="30" id="hPN-da-6jc"/>
                             </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="20"/>
-                            <color key="textColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
+                            <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="恭喜你!网络十分流畅" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="N75-O4-swH">
-                            <rect key="frame" x="10" y="51" width="330" 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"/>
+                            <rect key="frame" x="10" y="58" width="330" height="19.5"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                            <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="l3M-5e-jRd">
-                            <rect key="frame" x="254" y="78" width="80" height="40"/>
+                            <rect key="frame" x="177.5" y="100.5" width="156.5" height="44"/>
+                            <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                             <state key="normal" title="重新检测">
-                                <color key="titleColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             </state>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="22"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
                             <connections>
                                 <action selector="sureAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="7tj-yI-438"/>
                             </connections>
                         </button>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mEO-8y-QQW">
-                            <rect key="frame" x="16" y="78" width="80" height="40"/>
+                            <rect key="frame" x="16" y="100.5" width="156.5" height="44"/>
                             <constraints>
-                                <constraint firstAttribute="width" constant="80" id="20O-QG-agO"/>
-                                <constraint firstAttribute="height" constant="40" id="Mdh-TC-9BF"/>
+                                <constraint firstAttribute="height" constant="44" id="Mdh-TC-9BF"/>
                             </constraints>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                             <state key="normal" title="连接网络">
                                 <color key="titleColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/>
                             </state>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="22"/>
+                                </userDefinedRuntimeAttribute>
+                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                                    <real key="value" value="1"/>
+                                </userDefinedRuntimeAttribute>
+                                <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
+                                    <color key="value" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
                             <connections>
                                 <action selector="cancleAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="mPU-7t-BWp"/>
                             </connections>
@@ -59,14 +75,15 @@
                     </subviews>
                     <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                     <constraints>
-                        <constraint firstAttribute="bottom" secondItem="mEO-8y-QQW" secondAttribute="bottom" constant="10" id="616-tE-Fvv"/>
+                        <constraint firstAttribute="bottom" secondItem="mEO-8y-QQW" secondAttribute="bottom" constant="23" id="616-tE-Fvv"/>
                         <constraint firstItem="l3M-5e-jRd" firstAttribute="height" secondItem="mEO-8y-QQW" secondAttribute="height" id="7h9-r4-wHj"/>
                         <constraint firstItem="mEO-8y-QQW" firstAttribute="leading" secondItem="0xk-uH-Myy" secondAttribute="leading" constant="16" id="BUt-2C-yFf"/>
                         <constraint firstItem="N75-O4-swH" firstAttribute="leading" secondItem="0xk-uH-Myy" secondAttribute="leading" constant="10" id="Kwn-Ms-d1C"/>
+                        <constraint firstItem="l3M-5e-jRd" firstAttribute="leading" secondItem="mEO-8y-QQW" secondAttribute="trailing" constant="5" id="NUn-fc-x9I"/>
                         <constraint firstAttribute="trailing" secondItem="N75-O4-swH" secondAttribute="trailing" constant="10" id="NXY-wV-lcg"/>
-                        <constraint firstItem="N75-O4-swH" firstAttribute="top" secondItem="o3C-or-ESI" secondAttribute="bottom" constant="5" id="QRE-4F-ldU"/>
+                        <constraint firstItem="N75-O4-swH" firstAttribute="top" secondItem="o3C-or-ESI" secondAttribute="bottom" constant="8" id="QRE-4F-ldU"/>
                         <constraint firstItem="l3M-5e-jRd" firstAttribute="bottom" secondItem="mEO-8y-QQW" secondAttribute="bottom" id="fIU-hJ-mWM"/>
-                        <constraint firstItem="l3M-5e-jRd" firstAttribute="top" secondItem="N75-O4-swH" secondAttribute="bottom" constant="10" id="lJt-w6-oEE"/>
+                        <constraint firstItem="l3M-5e-jRd" firstAttribute="top" secondItem="N75-O4-swH" secondAttribute="bottom" constant="23" id="lJt-w6-oEE"/>
                         <constraint firstItem="o3C-or-ESI" firstAttribute="top" secondItem="0xk-uH-Myy" secondAttribute="top" constant="20" id="lfb-Bv-479"/>
                         <constraint firstItem="l3M-5e-jRd" firstAttribute="width" secondItem="mEO-8y-QQW" secondAttribute="width" id="lg8-7Y-QKT"/>
                         <constraint firstAttribute="trailing" secondItem="l3M-5e-jRd" secondAttribute="trailing" constant="16" id="phH-U1-VZ2"/>
@@ -75,7 +92,7 @@
                     </constraints>
                     <userDefinedRuntimeAttributes>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="5"/>
+                            <real key="value" value="8"/>
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/View/AboutUsBodyView.m

@@ -21,7 +21,7 @@
     [super awakeFromNib];
     self.versionLabel.text = [NSString stringWithFormat:@"版本号%@",[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]];
     self.phoneLabel.text = @"4008851569";
-    self.emailLabel.text = @"753761527@qq.com";
+    self.emailLabel.text = @"klx@kulexiu999.onexmail.com";
 }
 
 + (instancetype)shareInstance {

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/View/FeedbackBodyView.m

@@ -28,7 +28,7 @@
     
     NSString *orgEmail = UserDefaultObjectForKey(OrganizationEmailKey);
     if ([NSString isEmptyString:orgEmail]) {
-        orgEmail = @"邮箱:lexiaoyaVIP@163.com";
+        orgEmail = @"邮箱:klx@kulexiu999.onexmail.com";
     }
     else {
         orgEmail = [NSString stringWithFormat:@"邮箱:%@",orgEmail];

+ 2 - 0
KulexiuForStudent/KulexiuForStudent/Module/SealClass/Services/Classroom/ClassroomService.m

@@ -457,10 +457,12 @@
 }
 
 - (void)onReceiveDisplayCommandMessage:(DisplayCommandMessage *)msg{
+    NSLog(@"%@--------",msg.display);
     dispatch_main_async_safe(^{
         [self.currentRoom updateDisplayUri:msg.display];
         DisplayType type = self.currentRoom.currentDisplayType;
         if (type == DisplayTeacher) {
+//            NSLog(@"------- DisplayTeacher");
             if ([self.classroomDelegate respondsToSelector:@selector(teacherDidDisplay)]) {
                 [self.classroomDelegate teacherDidDisplay];
             }

+ 0 - 1
KulexiuForStudent/KulexiuForStudent/Module/SealClass/Services/Classroom/Model/Classroom.m

@@ -38,7 +38,6 @@
     RoomMember *currentMember = [RoomMember memberFromJson:userDic];
     room.currentMemberId = currentMember.userId;
     room.joinTime = currentMember.joinTime;
-//    room.autoCloseFlag = [dic[@"autoCloseFlag"] boolValue];
     room.autoCloseFlag = YES;
     room.autoCloseNetworkRoomTime = [dic[@"autoCloseNetworkRoomTime"] integerValue];
     room.soundVolume = [dic[@"soundVolume"] integerValue];

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/SealClass/Services/RTC/RTCService.m

@@ -499,7 +499,7 @@
 }
 
 - (void)useSpeaker:(BOOL)useSpeaker {
-    [[RCRTCEngine sharedInstance] enableSpeaker:useSpeaker];
+    [[RCRTCEngine sharedInstance] setDefaultAudioRouteToSpeaker:useSpeaker];
 }
 
 - (void)stopCapture {