浏览代码

1.老师主页交互
2.VIP定制课设置部分交互
3.背景色修改为f8f9fc

Steven 9 月之前
父节点
当前提交
dbf3748291
共有 100 个文件被更改,包括 1972 次插入163 次删除
  1. 78 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. 1 1
      KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m
  3. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_vefi/mine_svip.imageset/mine_svip@2x.png
  4. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_vefi/mine_svip.imageset/mine_svip@3x.png
  5. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_vefi/mine_vip.imageset/mine_vip@2x.png
  6. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_vefi/mine_vip.imageset/mine_vip@3x.png
  7. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/mine_auth_img.imageset/Contents.json
  8. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/mine_auth_img.imageset/mine_auth_img@2x.png
  9. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/mine_auth_img.imageset/mine_auth_img@3x.png
  10. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_duration_icon.imageset/Contents.json
  11. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_duration_icon.imageset/course_duration_icon@2x.png
  12. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_duration_icon.imageset/course_duration_icon@3x.png
  13. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_price_icon.imageset/Contents.json
  14. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_price_icon.imageset/course_price_icon@2x.png
  15. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_price_icon.imageset/course_price_icon@3x.png
  16. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_subject_icon.imageset/Contents.json
  17. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_subject_icon.imageset/course_subject_icon@2x.png
  18. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_subject_icon.imageset/course_subject_icon@3x.png
  19. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_course_introduce.imageset/Contents.json
  20. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_course_introduce.imageset/minePage_course_introduce@2x.png
  21. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_course_introduce.imageset/minePage_course_introduce@3x.png
  22. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_black.imageset/Contents.json
  23. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_black.imageset/minePage_nav_edit_black@2x.png
  24. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_black.imageset/minePage_nav_edit_black@3x.png
  25. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_white.imageset/Contents.json
  26. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_white.imageset/minePage_nav_edit_white@2x.png
  27. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_white.imageset/minePage_nav_edit_white@3x.png
  28. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_accompany.imageset/Contents.json
  29. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_accompany.imageset/mine_info_setting_accompany@2x.png
  30. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_accompany.imageset/mine_info_setting_accompany@3x.png
  31. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_vip.imageset/Contents.json
  32. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_vip.imageset/mine_info_setting_vip@2x.png
  33. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_vip.imageset/mine_info_setting_vip@3x.png
  34. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_add.imageset/Contents.json
  35. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_add.imageset/program_add@2x.png
  36. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_add.imageset/program_add@3x.png
  37. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_tips.imageset/Contents.json
  38. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_tips.imageset/program_tips@2x.png
  39. 二进制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_tips.imageset/program_tips@3x.png
  40. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewContolller/BaseViewController.m
  41. 1 2
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewContolller/KSBaseViewController.m
  42. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/NavigationController/CustomNavViewController.m
  43. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/BanList/Controller/GroupBanListViewController.m
  44. 4 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/BanList/View/GroupBanBodyView.m
  45. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/ChatAddressViewController.m
  46. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/ChatViewController.m
  47. 10 10
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/UserDetail/View/KSUserDetailBodyView.xib
  48. 3 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/ShareMusic/Controller/ShareMusicViewController.m
  49. 5 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ChatAddressBodyView.m
  50. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateCourseListViewController.m
  51. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateDetailViewController.m
  52. 3 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateCourseBodyView.m
  53. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkDetailViewController.m
  54. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkListViewController.m
  55. 3 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkBodyView.m
  56. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/FreezeListViewController.m
  57. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m
  58. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/NoRecordViewController.m
  59. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/Controller/MyMusicViewController.m
  60. 3 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/View/MyMusicBodyView.m
  61. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m
  62. 5 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m
  63. 5 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyMusicRoomBodyView.m
  64. 2 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoCourseBodyView.m
  65. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m
  66. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/ReceiveEvaluate/Controller/ReceiveEvaluateListController.m
  67. 5 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.xib
  68. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/Controller/GuideViewController.m
  69. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/AddressList/Controller/AddressListViewController.m
  70. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/Controller/MyLiveCourseViewController.m
  71. 4 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.m
  72. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/Controller/LiveListViewController.m
  73. 3 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/View/LiveListBodyView.m
  74. 21 8
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m
  75. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MineVipProgramViewController.h
  76. 164 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MineVipProgramViewController.m
  77. 18 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/AccompanyCourse/MinePageAccompanyCourseView.h
  78. 333 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/AccompanyCourse/MinePageAccompanyCourseView.m
  79. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MineEmptyIntroduceView.h
  80. 44 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MineEmptyIntroduceView.m
  81. 110 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MineEmptyIntroduceView.xib
  82. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageHeadView.h
  83. 8 18
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageHeadView.xib
  84. 1 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageTopView.h
  85. 55 11
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageTopView.m
  86. 34 25
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageTopView.xib
  87. 4 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m
  88. 3 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageMienBodyView.m
  89. 7 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTipsView/MineCourseSettingView.m
  90. 1 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTipsView/MineCourseSettingView.xib
  91. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTipsView/MinePageCourseTipsView.m
  92. 10 8
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTipsView/MinePageCourseTipsView.xib
  93. 2 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageVideoView.m
  94. 23 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramHeadView.h
  95. 47 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramHeadView.m
  96. 84 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramHeadView.xib
  97. 29 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramMainView.h
  98. 102 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramMainView.m
  99. 410 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramMainView.xib
  100. 24 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramNavView.h

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

@@ -422,6 +422,10 @@
 		BC28886D2A8101310064B773 /* KSSearchResultListController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC2888682A8101300064B773 /* KSSearchResultListController.m */; };
 		BC28886E2A8101310064B773 /* KSSearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC28886A2A8101310064B773 /* KSSearchViewController.m */; };
 		BC29AD2C2BFAFAFA00D44848 /* KSLogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BC29AD2A2BFAFAFA00D44848 /* KSLogManager.m */; };
+		BC319C582CE7318800E1AF50 /* MineVipProgramHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC319C572CE7318800E1AF50 /* MineVipProgramHeadView.m */; };
+		BC319C5A2CE7318E00E1AF50 /* MineVipProgramHeadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC319C592CE7318E00E1AF50 /* MineVipProgramHeadView.xib */; };
+		BC319C5D2CE7412500E1AF50 /* MineVipProgramMainView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC319C5C2CE7412500E1AF50 /* MineVipProgramMainView.m */; };
+		BC319C5F2CE7412D00E1AF50 /* MineVipProgramMainView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC319C5E2CE7412D00E1AF50 /* MineVipProgramMainView.xib */; };
 		BC31BF7F2B219C5700F7D538 /* WidgetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC31BF382B219C5700F7D538 /* WidgetViewController.m */; };
 		BC31BF802B219C5700F7D538 /* ToneTuningViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC31BF392B219C5700F7D538 /* ToneTuningViewController.m */; };
 		BC31BF822B219C5700F7D538 /* MetronomeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BC31BF3D2B219C5700F7D538 /* MetronomeManager.m */; };
@@ -545,6 +549,12 @@
 		BC433E5C2CE6F339002870EC /* MinePageVIPCourseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC433E5B2CE6F339002870EC /* MinePageVIPCourseView.m */; };
 		BC433E612CE6F80E002870EC /* MinePageVipProgramCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC433E602CE6F80E002870EC /* MinePageVipProgramCell.xib */; };
 		BC433E622CE6F80E002870EC /* MinePageVipProgramCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC433E5F2CE6F80E002870EC /* MinePageVipProgramCell.m */; };
+		BC47661C2CE7216E002574E5 /* MinePageAccompanyCourseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC47661B2CE7216E002574E5 /* MinePageAccompanyCourseView.m */; };
+		BC47661F2CE727FC002574E5 /* MineEmptyIntroduceView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC47661E2CE727FC002574E5 /* MineEmptyIntroduceView.m */; };
+		BC4766212CE72806002574E5 /* MineEmptyIntroduceView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC4766202CE72806002574E5 /* MineEmptyIntroduceView.xib */; };
+		BC4766242CE72EBA002574E5 /* MineVipProgramViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4766232CE72EBA002574E5 /* MineVipProgramViewController.m */; };
+		BC4766282CE72EE6002574E5 /* MineVipProgramNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4766272CE72EE6002574E5 /* MineVipProgramNavView.m */; };
+		BC47662A2CE72EEE002574E5 /* MineVipProgramNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC4766292CE72EEE002574E5 /* MineVipProgramNavView.xib */; };
 		BC4823D12C4F5F30000E5401 /* UserDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4823D02C4F5F30000E5401 /* UserDetailModel.m */; };
 		BC4823D42C4F8FC0000E5401 /* KSAccompanyDraftViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4823D22C4F8FBF000E5401 /* KSAccompanyDraftViewController.m */; };
 		BC483231282A646A005F534C /* HomeRecentCourseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC483230282A646A005F534C /* HomeRecentCourseView.m */; };
@@ -609,6 +619,8 @@
 		BC6BEAA4288A4C2A00022109 /* KSHomeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6BEAA2288A4C2A00022109 /* KSHomeButton.m */; };
 		BC6BEAAA288E3D7400022109 /* HomeNewHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6BEAA9288E3D7300022109 /* HomeNewHeadView.m */; };
 		BC6BEAAC288E3D7B00022109 /* HomeNewHeadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC6BEAAB288E3D7B00022109 /* HomeNewHeadView.xib */; };
+		BC7003232CE74F52008D041E /* ProgramAddButton.m in Sources */ = {isa = PBXBuildFile; fileRef = BC7003222CE74F52008D041E /* ProgramAddButton.m */; };
+		BC7003252CE74F5D008D041E /* ProgramAddButton.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC7003242CE74F5D008D041E /* ProgramAddButton.xib */; };
 		BC71D1332887ADDA0010F14B /* teacher_refresh.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1322887ADDA0010F14B /* teacher_refresh.json */; };
 		BC71D1A62887FDAC0010F14B /* LaunchAnimationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC71D1802887FDAB0010F14B /* LaunchAnimationViewController.m */; };
 		BC71D1EA2887FDD40010F14B /* img_10.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1C92887FDD40010F14B /* img_10.png */; };
@@ -1883,6 +1895,12 @@
 		BC28886B2A8101310064B773 /* KSSearchViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSSearchViewController.h; sourceTree = "<group>"; };
 		BC29AD292BFAFAFA00D44848 /* KSLogManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLogManager.h; sourceTree = "<group>"; };
 		BC29AD2A2BFAFAFA00D44848 /* KSLogManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLogManager.m; sourceTree = "<group>"; };
+		BC319C562CE7318800E1AF50 /* MineVipProgramHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineVipProgramHeadView.h; sourceTree = "<group>"; };
+		BC319C572CE7318800E1AF50 /* MineVipProgramHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineVipProgramHeadView.m; sourceTree = "<group>"; };
+		BC319C592CE7318E00E1AF50 /* MineVipProgramHeadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MineVipProgramHeadView.xib; sourceTree = "<group>"; };
+		BC319C5B2CE7412500E1AF50 /* MineVipProgramMainView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineVipProgramMainView.h; sourceTree = "<group>"; };
+		BC319C5C2CE7412500E1AF50 /* MineVipProgramMainView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineVipProgramMainView.m; sourceTree = "<group>"; };
+		BC319C5E2CE7412D00E1AF50 /* MineVipProgramMainView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MineVipProgramMainView.xib; sourceTree = "<group>"; };
 		BC31BF362B219C5700F7D538 /* ToneTuningViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ToneTuningViewController.h; sourceTree = "<group>"; };
 		BC31BF382B219C5700F7D538 /* WidgetViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WidgetViewController.m; sourceTree = "<group>"; };
 		BC31BF392B219C5700F7D538 /* ToneTuningViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ToneTuningViewController.m; sourceTree = "<group>"; };
@@ -2084,6 +2102,16 @@
 		BC433E5E2CE6F80E002870EC /* MinePageVipProgramCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MinePageVipProgramCell.h; sourceTree = "<group>"; };
 		BC433E5F2CE6F80E002870EC /* MinePageVipProgramCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MinePageVipProgramCell.m; sourceTree = "<group>"; };
 		BC433E602CE6F80E002870EC /* MinePageVipProgramCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MinePageVipProgramCell.xib; sourceTree = "<group>"; };
+		BC47661A2CE7216E002574E5 /* MinePageAccompanyCourseView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MinePageAccompanyCourseView.h; sourceTree = "<group>"; };
+		BC47661B2CE7216E002574E5 /* MinePageAccompanyCourseView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MinePageAccompanyCourseView.m; sourceTree = "<group>"; };
+		BC47661D2CE727FC002574E5 /* MineEmptyIntroduceView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineEmptyIntroduceView.h; sourceTree = "<group>"; };
+		BC47661E2CE727FC002574E5 /* MineEmptyIntroduceView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineEmptyIntroduceView.m; sourceTree = "<group>"; };
+		BC4766202CE72806002574E5 /* MineEmptyIntroduceView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MineEmptyIntroduceView.xib; sourceTree = "<group>"; };
+		BC4766222CE72EBA002574E5 /* MineVipProgramViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineVipProgramViewController.h; sourceTree = "<group>"; };
+		BC4766232CE72EBA002574E5 /* MineVipProgramViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineVipProgramViewController.m; sourceTree = "<group>"; };
+		BC4766262CE72EE6002574E5 /* MineVipProgramNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineVipProgramNavView.h; sourceTree = "<group>"; };
+		BC4766272CE72EE6002574E5 /* MineVipProgramNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineVipProgramNavView.m; sourceTree = "<group>"; };
+		BC4766292CE72EEE002574E5 /* MineVipProgramNavView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MineVipProgramNavView.xib; sourceTree = "<group>"; };
 		BC4823CF2C4F5F30000E5401 /* UserDetailModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserDetailModel.h; sourceTree = "<group>"; };
 		BC4823D02C4F5F30000E5401 /* UserDetailModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserDetailModel.m; sourceTree = "<group>"; };
 		BC4823D22C4F8FBF000E5401 /* KSAccompanyDraftViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSAccompanyDraftViewController.m; sourceTree = "<group>"; };
@@ -2186,6 +2214,9 @@
 		BC6BEAA8288E3D7300022109 /* HomeNewHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeNewHeadView.h; sourceTree = "<group>"; };
 		BC6BEAA9288E3D7300022109 /* HomeNewHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeNewHeadView.m; sourceTree = "<group>"; };
 		BC6BEAAB288E3D7B00022109 /* HomeNewHeadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeNewHeadView.xib; sourceTree = "<group>"; };
+		BC7003212CE74F52008D041E /* ProgramAddButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProgramAddButton.h; sourceTree = "<group>"; };
+		BC7003222CE74F52008D041E /* ProgramAddButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ProgramAddButton.m; sourceTree = "<group>"; };
+		BC7003242CE74F5D008D041E /* ProgramAddButton.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ProgramAddButton.xib; sourceTree = "<group>"; };
 		BC71D1322887ADDA0010F14B /* teacher_refresh.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = teacher_refresh.json; sourceTree = "<group>"; };
 		BC71D1802887FDAB0010F14B /* LaunchAnimationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchAnimationViewController.m; sourceTree = "<group>"; };
 		BC71D1812887FDAB0010F14B /* LaunchAnimationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchAnimationViewController.h; sourceTree = "<group>"; };
@@ -3245,6 +3276,8 @@
 			children = (
 				275FA55D27F31AAF00EB6240 /* MinePageViewController.h */,
 				275FA55E27F31AAF00EB6240 /* MinePageViewController.m */,
+				BC4766222CE72EBA002574E5 /* MineVipProgramViewController.h */,
+				BC4766232CE72EBA002574E5 /* MineVipProgramViewController.m */,
 			);
 			path = Controller;
 			sourceTree = "<group>";
@@ -3261,6 +3294,8 @@
 		275FA55C27F31A7400EB6240 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				BC4766252CE72ED8002574E5 /* VIPProgramCreate */,
+				BC4766192CE72150002574E5 /* AccompanyCourse */,
 				BC433E5D2CE6F7D8002870EC /* VipCourse */,
 				BC433E512CE6E4E1002870EC /* GradientLine */,
 				BCFB9BA82CE58E6D00B66BC0 /* MinePageTipsView */,
@@ -4915,6 +4950,9 @@
 				BC58E7DB281B969B004B0893 /* MinePageTopView.h */,
 				BC58E7DC281B969B004B0893 /* MinePageTopView.m */,
 				BC58E7DE281B96A4004B0893 /* MinePageTopView.xib */,
+				BC47661D2CE727FC002574E5 /* MineEmptyIntroduceView.h */,
+				BC47661E2CE727FC002574E5 /* MineEmptyIntroduceView.m */,
+				BC4766202CE72806002574E5 /* MineEmptyIntroduceView.xib */,
 			);
 			path = HeadView;
 			sourceTree = "<group>";
@@ -5498,6 +5536,34 @@
 			path = VipCourse;
 			sourceTree = "<group>";
 		};
+		BC4766192CE72150002574E5 /* AccompanyCourse */ = {
+			isa = PBXGroup;
+			children = (
+				BC47661A2CE7216E002574E5 /* MinePageAccompanyCourseView.h */,
+				BC47661B2CE7216E002574E5 /* MinePageAccompanyCourseView.m */,
+			);
+			path = AccompanyCourse;
+			sourceTree = "<group>";
+		};
+		BC4766252CE72ED8002574E5 /* VIPProgramCreate */ = {
+			isa = PBXGroup;
+			children = (
+				BC4766262CE72EE6002574E5 /* MineVipProgramNavView.h */,
+				BC4766272CE72EE6002574E5 /* MineVipProgramNavView.m */,
+				BC4766292CE72EEE002574E5 /* MineVipProgramNavView.xib */,
+				BC319C562CE7318800E1AF50 /* MineVipProgramHeadView.h */,
+				BC319C572CE7318800E1AF50 /* MineVipProgramHeadView.m */,
+				BC319C592CE7318E00E1AF50 /* MineVipProgramHeadView.xib */,
+				BC319C5B2CE7412500E1AF50 /* MineVipProgramMainView.h */,
+				BC319C5C2CE7412500E1AF50 /* MineVipProgramMainView.m */,
+				BC319C5E2CE7412D00E1AF50 /* MineVipProgramMainView.xib */,
+				BC7003212CE74F52008D041E /* ProgramAddButton.h */,
+				BC7003222CE74F52008D041E /* ProgramAddButton.m */,
+				BC7003242CE74F5D008D041E /* ProgramAddButton.xib */,
+			);
+			path = VIPProgramCreate;
+			sourceTree = "<group>";
+		};
 		BC4BCE622823990100522C8B /* AddressList */ = {
 			isa = PBXGroup;
 			children = (
@@ -7589,6 +7655,7 @@
 				BCB908FD2850C9CB00F5FF69 /* MusicChooseSearchView.xib in Resources */,
 				BC221FA228C72B9500F99802 /* MyStyleVideoCell.xib in Resources */,
 				275E8A7227E18F2300DD3F6E /* Main.storyboard in Resources */,
+				BC7003252CE74F5D008D041E /* ProgramAddButton.xib in Resources */,
 				BC71DEFE2A89F470003F165E /* TXTimeView.xib in Resources */,
 				BC4217FD2C4E3DFC00C70B2F /* KSUserDetailBottomView.xib in Resources */,
 				BC3673DE28A606A500059721 /* musicRoom_animation_1.png in Resources */,
@@ -7607,6 +7674,7 @@
 				BCC583F928A9FA8100BAB4CF /* cloud_animation_22.png in Resources */,
 				BC71D1EC2887FDD40010F14B /* img_0.png in Resources */,
 				BC71D1EA2887FDD40010F14B /* img_10.png in Resources */,
+				BC47662A2CE72EEE002574E5 /* MineVipProgramNavView.xib in Resources */,
 				BC31BF9B2B219C5700F7D538 /* WidgetSpeedView.xib in Resources */,
 				BC14E4972AB3105F000C4983 /* TenantCreateGroupBodyView.xib in Resources */,
 				BC38C47F2AFA1F4B00ABFCC2 /* MineWorksDraftsCell.xib in Resources */,
@@ -7636,6 +7704,7 @@
 				2708565327ED8B8C00EC8E72 /* GroupApplyChooseAllCell.xib in Resources */,
 				275E3DEE27F467BF0010EC30 /* LiveRoomBottomView.xib in Resources */,
 				BC3673D428A606A500059721 /* musicRoom_animation_3.png in Resources */,
+				BC4766212CE72806002574E5 /* MineEmptyIntroduceView.xib in Resources */,
 				BC14A61E28A0B5CE0086395C /* MineActionView.xib in Resources */,
 				BC71D1FF2887FDD40010F14B /* img_8.png in Resources */,
 				BC023802286594EA005560CA /* KSTipsAlert.xib in Resources */,
@@ -7653,6 +7722,7 @@
 				BCE06F2D2818147000234817 /* KSConfirmAlertView.xib in Resources */,
 				BC12638328FEB5B900509E90 /* UserDetailBottomView.xib in Resources */,
 				BC71D295288811BF0010F14B /* tabbar4.json in Resources */,
+				BC319C5F2CE7412D00E1AF50 /* MineVipProgramMainView.xib in Resources */,
 				BCA7C34428476533009D20EC /* KSBoardAddStaffView.xib in Resources */,
 				BCF425EA2AB96BE400BCD942 /* HomeTenantView.xib in Resources */,
 				BCA353E52859797500377661 /* MusicRoomStudentCell.xib in Resources */,
@@ -7867,6 +7937,7 @@
 				BC81F0EA29232D01004106AF /* CoursewareListCell.xib in Resources */,
 				BC71D1F92887FDD40010F14B /* img_5.png in Resources */,
 				BCA724002806AEA000DA0D0D /* AccompanyHomeworkCell.xib in Resources */,
+				BC319C5A2CE7318E00E1AF50 /* MineVipProgramHeadView.xib in Resources */,
 				BC7CFFD22817FF6D00CAEB21 /* CardDisplayView.xib in Resources */,
 				BC2456E5286BE86600D1F7C0 /* MineStyleEmptyView.xib in Resources */,
 				27F9CB0127EC3D42003E0FE4 /* GroupListViewCell.xib in Resources */,
@@ -7997,9 +8068,11 @@
 				BCD6D15C281950E9009A773E /* WithdrawModel.m in Sources */,
 				BCE6A08527F81B4200C97704 /* MinePageSubmitView.m in Sources */,
 				BC106B822A8F4586000759A9 /* TXLiveMessageUserQuit.m in Sources */,
+				BC4766242CE72EBA002574E5 /* MineVipProgramViewController.m in Sources */,
 				BC0A22A6284751F80065C1AB /* DownloadStatusCell.m in Sources */,
 				2779326F27E30FD80010E277 /* FSCalendarHeaderView.m in Sources */,
 				275E3DF727F467ED0010EC30 /* LiveRoomLikeLayer.m in Sources */,
+				BC7003232CE74F52008D041E /* ProgramAddButton.m in Sources */,
 				BC3A557F2BAA8F26002E1616 /* KSCloudWebManager.m in Sources */,
 				BC38C42D2AF900E100ABFCC2 /* KSPlayerSliderView.m in Sources */,
 				BC71DE922A89C937003F165E /* TXClassroomTextMsg.m in Sources */,
@@ -8027,6 +8100,7 @@
 				BCB9FA562872BA85005D766B /* LiveListViewController.m in Sources */,
 				BCC0F6F32A8CF11700C4EFA4 /* TXClassRoomAlertView.m in Sources */,
 				BC56C97329238CBA00AF301F /* CoursewareAlertView.m in Sources */,
+				BC319C5D2CE7412500E1AF50 /* MineVipProgramMainView.m in Sources */,
 				BC106BAB2A8F45AA000759A9 /* TXSeatContainerView.m in Sources */,
 				277931CD27E30FC20010E277 /* KSPremissionAlert.m in Sources */,
 				BC106B872A8F4586000759A9 /* TXConstMessage.m in Sources */,
@@ -8042,6 +8116,7 @@
 				BC8831042873D67C00C702A0 /* LiveVideoCollectionViewCell.m in Sources */,
 				BC12638428FEB5B900509E90 /* RecentMusicView.m in Sources */,
 				BCC0F7082A8CF13D00C4EFA4 /* KSDanInputView.m in Sources */,
+				BC47661C2CE7216E002574E5 /* MinePageAccompanyCourseView.m in Sources */,
 				BC31BF922B219C5700F7D538 /* TuningForkSettingView.m in Sources */,
 				BC56C95529233D0500AF301F /* CoursewareTableDelegate.m in Sources */,
 				BC4BCE6C28239EEB00522C8B /* MyAddressListCell.m in Sources */,
@@ -8231,6 +8306,7 @@
 				BC31BF9C2B219C5700F7D538 /* WidgetBottomButtonView.m in Sources */,
 				BC1263A428FF98BB00509E90 /* HomeNewMusicView.m in Sources */,
 				BCDE359E289BC03E00A9A560 /* HomeAlbumModel.m in Sources */,
+				BC319C582CE7318800E1AF50 /* MineVipProgramHeadView.m in Sources */,
 				BC48C3B4282931C000EE65C5 /* ReceiveEvaluateCell.m in Sources */,
 				BC3BF6362B9ED1F600831494 /* StateView.m in Sources */,
 				BC0A22C528475E060065C1AB /* SongListViewController.m in Sources */,
@@ -8326,6 +8402,7 @@
 				BCFB9B972CE4903800B66BC0 /* MusicRoomGroupViewController.m in Sources */,
 				27F9CAED27EC17AE003E0FE4 /* ChatAddressBodyView.m in Sources */,
 				BC4110492806706800800BD9 /* HomeworkListCell.m in Sources */,
+				BC4766282CE72EE6002574E5 /* MineVipProgramNavView.m in Sources */,
 				BCA9CE2427FD792600D558C6 /* LiveCourseModel.m in Sources */,
 				BC1191F0280E8A2800A716F7 /* TableCourseModel.m in Sources */,
 				BCB6340927F6A35700ACFDCF /* LiveroomTimeManager.m in Sources */,
@@ -8592,6 +8669,7 @@
 				BC71DF2B2A8A0432003F165E /* KSWhiteboardRefreshView.m in Sources */,
 				BC9EFEB22C0480A500CFA7B1 /* GroupBanBodyView.m in Sources */,
 				BCD457B2286564DB0010B493 /* LiveRoomAlertView.m in Sources */,
+				BC47661F2CE727FC002574E5 /* MineEmptyIntroduceView.m in Sources */,
 				BCFB9B892CE4883100B66BC0 /* VipCouseDetailViewController.m in Sources */,
 				BCB399AC27F946A200AFF376 /* CourseNavView.m in Sources */,
 				BCE06F2B2818146700234817 /* KSConfirmAlertView.m in Sources */,

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m

@@ -302,7 +302,7 @@
     config.enableToast = NO;
     
     TUIChatConfig *chatConfig = [TUIChatConfig defaultConfig];
-    chatConfig.backgroudColor = HexRGB(0xF8F8F8);
+    chatConfig.backgroudColor = HexRGB(0xf8f9fc);
     chatConfig.enableWelcomeCustomMessage = NO;
     chatConfig.enableTypingStatus = YES;
 

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_vefi/mine_svip.imageset/mine_svip@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_vefi/mine_svip.imageset/mine_svip@3x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_vefi/mine_vip.imageset/mine_vip@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/home_vefi/mine_vip.imageset/mine_vip@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/mine_auth_img.imageset/mine_auth_img@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/mine_auth_img.imageset/mine_auth_img@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_duration_icon.imageset/course_duration_icon@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_duration_icon.imageset/course_duration_icon@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_price_icon.imageset/course_price_icon@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_price_icon.imageset/course_price_icon@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_subject_icon.imageset/course_subject_icon@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/course_subject_icon.imageset/course_subject_icon@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_course_introduce.imageset/minePage_course_introduce@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_course_introduce.imageset/minePage_course_introduce@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_black.imageset/minePage_nav_edit_black@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_black.imageset/minePage_nav_edit_black@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_white.imageset/minePage_nav_edit_white@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/minePage_nav_edit_white.imageset/minePage_nav_edit_white@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_accompany.imageset/mine_info_setting_accompany@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_accompany.imageset/mine_info_setting_accompany@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_vip.imageset/mine_info_setting_vip@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_info_setting_vip.imageset/mine_info_setting_vip@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_add.imageset/program_add@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_add.imageset/program_add@3x.png


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

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

二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_tips.imageset/program_tips@2x.png


二进制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/program_tips.imageset/program_tips@3x.png


+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewContolller/BaseViewController.m

@@ -17,7 +17,7 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
 }
 
 /*

+ 1 - 2
KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewContolller/KSBaseViewController.m

@@ -29,8 +29,7 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
-//    [self modifyNavigationBarColor:HexRGB(0xf6f8f9)];
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     [[self.navigationController navigationBar] setTranslucent:NO];
     [self defaultMessage]; // 设置默认刷新数据
     _scrollView = [[UIScrollView alloc] init];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/NavigationController/CustomNavViewController.m

@@ -40,7 +40,7 @@
             [navBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor],NSFontAttributeName : [UIFont boldSystemFontOfSize:18]}];
             [navBar setBarTintColor:[UIColor whiteColor]];
         }
-        self.view.backgroundColor = HexRGB(0xf6f8f9);
+        self.view.backgroundColor = HexRGB(0xf8f9fc);
     }
 }
 

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/BanList/Controller/GroupBanListViewController.m

@@ -33,7 +33,7 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xF8F8F8);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     self.ks_prefersNavigationBarHidden = YES;
     [self.view addSubview:self.navView];
     CGFloat navHeight = [GroupBanNavView getViewHeight];

+ 4 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/BanList/View/GroupBanBodyView.m

@@ -47,9 +47,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xF8F8F8);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xF8F8F8);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
         self.tableView.rowHeight = UITableViewAutomaticDimension;
         self.tableView.rowHeight = 70.0f;
@@ -67,7 +67,7 @@
             make.left.right.top.bottom.mas_equalTo(self);
         }];
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xF8F8F8);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"BanStudentListCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"BanStudentListCell"];
@@ -334,7 +334,7 @@
 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
     
     UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 42.0f)];
-    view.backgroundColor = HexRGB(0xF8F8F8);
+    view.backgroundColor = HexRGB(0xf8f9fc);
     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(24, 11, kScreenWidth - 48, 20)];
     label.textColor = HexRGB(0x999999);
     label.font = [UIFont systemFontOfSize:16.0f weight:UIFontWeightMedium];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/ChatAddressViewController.m

@@ -39,7 +39,7 @@
     self.view.backgroundColor = [UIColor clearColor];
     
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-    _categoryView.backgroundColor = HexRGB(0xf6f8f9);
+    _categoryView.backgroundColor = HexRGB(0xf8f9fc);
     self.categoryView.titles = self.titles;
     self.categoryView.delegate = self;
     self.categoryView.titleFont = [UIFont systemFontOfSize:16.0f];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/ChatViewController.m

@@ -74,7 +74,7 @@
     
     CGFloat topSpace = kNaviBarHeight;
     self.myCategoryView.frame = CGRectMake(0, topSpace, KPortraitWidth, 10);
-    self.myCategoryView.backgroundColor = HexRGB(0xf6f8f9);
+    self.myCategoryView.backgroundColor = HexRGB(0xf8f9fc);
     self.myCategoryView.titles = self.titles;
     self.myCategoryView.titleFont = [UIFont systemFontOfSize:16.0f];
     self.myCategoryView.titleSelectedFont = [UIFont systemFontOfSize:16.0f weight:UIFontWeightMedium];

+ 10 - 10
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/UserDetail/View/KSUserDetailBodyView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -150,7 +150,7 @@
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s0T-K5-0WL">
-                                    <rect key="frame" x="50" y="18" width="257.33333333333331" height="22"/>
+                                    <rect key="frame" x="50" y="18" width="258" height="22"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="22" id="Mff-yR-PhF"/>
                                     </constraints>
@@ -159,7 +159,7 @@
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="复制" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Vr-QF-h65">
-                                    <rect key="frame" x="319.33333333333331" y="18" width="32.666666666666686" height="22"/>
+                                    <rect key="frame" x="320" y="18" width="32" height="22"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="22" id="sOP-R7-FIm"/>
                                     </constraints>
@@ -168,7 +168,7 @@
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zoU-lE-nxn">
-                                    <rect key="frame" x="312.33333333333331" y="0.0" width="54.666666666666686" height="58"/>
+                                    <rect key="frame" x="313" y="0.0" width="54" height="58"/>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                     <connections>
                                         <action selector="copyAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="mAl-hb-2fg"/>
@@ -205,7 +205,7 @@
                                     </constraints>
                                 </view>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="性别" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Rcc-Ne-E8c">
-                                    <rect key="frame" x="15" y="18" width="32.666666666666664" height="22"/>
+                                    <rect key="frame" x="15" y="18" width="32" height="22"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="22" id="ls0-fE-pc1"/>
                                     </constraints>
@@ -246,7 +246,7 @@
                                     </constraints>
                                 </view>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="出生日期" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8a-ac-bBy">
-                                    <rect key="frame" x="15" y="18" width="65.333333333333329" height="22"/>
+                                    <rect key="frame" x="14.999999999999996" y="18" width="63.666666666666657" height="22"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="22" id="Tjl-q6-bHL"/>
                                     </constraints>
@@ -280,7 +280,7 @@
                             <rect key="frame" x="0.0" y="398" width="367" height="62"/>
                             <subviews>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="声部" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PQF-T1-zXg">
-                                    <rect key="frame" x="15" y="18" width="32.666666666666664" height="22"/>
+                                    <rect key="frame" x="15" y="18" width="32" height="22"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="22" id="GZT-i1-3wN"/>
                                     </constraints>
@@ -369,10 +369,10 @@
                     </userDefinedRuntimeAttributes>
                 </imageView>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ODi-J5-4mp">
-                    <rect key="frame" x="172.66666666666666" y="94" width="48" height="22"/>
+                    <rect key="frame" x="172.66666666666666" y="94" width="47.666666666666657" height="22"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="22" id="34x-jp-8gJ"/>
-                        <constraint firstAttribute="width" secondItem="ODi-J5-4mp" secondAttribute="height" multiplier="48:22" id="TTY-YI-Fiy"/>
+                        <constraint firstAttribute="width" secondItem="ODi-J5-4mp" secondAttribute="height" multiplier="39:18" id="TTY-YI-Fiy"/>
                     </constraints>
                 </imageView>
             </subviews>

+ 3 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/ShareMusic/Controller/ShareMusicViewController.m

@@ -204,17 +204,17 @@
         _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
         _tableView.delegate = self;
         _tableView.dataSource = self;
-        _tableView.backgroundColor = HexRGB(0xf6f8f9);
+        _tableView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.showsVerticalScrollIndicator = NO;
         _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
         _tableView.rowHeight = 110;
         [_tableView registerNib:[UINib nibWithNibName:@"MusicChooseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MusicChooseCell"];
         UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        headView.backgroundColor = HexRGB(0xf6f8f9);
+        headView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.tableHeaderView = headView;
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.tableFooterView = bottomView;
     }
     return _tableView;

+ 5 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ChatAddressBodyView.m

@@ -53,9 +53,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
 
         self.tableView.dataSource = self;
@@ -68,11 +68,11 @@
             make.left.right.top.bottom.mas_equalTo(self);
         }];
         UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        headView.backgroundColor = HexRGB(0xf6f8f9);
+        headView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableHeaderView = headView;
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"ContractListCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"ContractListCell"];
@@ -486,7 +486,7 @@
 //        return [UIView new];
 //    }
     UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 30)];
-    view.backgroundColor = HexRGB(0xf6f8f9);
+    view.backgroundColor = HexRGB(0xf8f9fc);
     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(24, 0, kScreenWidth - 48, 30)];
     label.textColor = HexRGB(0x999999);
     label.font = [UIFont systemFontOfSize:16.0f weight:UIFontWeightMedium];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateCourseListViewController.m

@@ -46,7 +46,7 @@
 - (void)setupUI {
     self.headHeight = 50.0f;
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, self.headHeight)];
     self.categoryView.titles = self.titles;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateDetailViewController.m

@@ -34,7 +34,7 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.top.mas_equalTo(self.view);

+ 3 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateCourseBodyView.m

@@ -40,9 +40,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
         self.tableView.showsHorizontalScrollIndicator = NO;
         self.tableView.dataSource = self;
@@ -52,7 +52,7 @@
         [self addSubview:self.tableView];
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"EvaluateCouseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"EvaluateCouseCell"];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkDetailViewController.m

@@ -47,7 +47,7 @@
 
 - (void)setupUI {
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.top.mas_equalTo(self.view);

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkListViewController.m

@@ -40,7 +40,7 @@
 - (void)setupUI {
     self.headHeight = 50.0f;
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, self.headHeight)];
     self.categoryView.titles = self.titles;

+ 3 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkBodyView.m

@@ -44,9 +44,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
         self.tableView.showsHorizontalScrollIndicator = NO;
         self.tableView.dataSource = self;
@@ -56,7 +56,7 @@
         [self addSubview:self.tableView];
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"HomeworkListCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"HomeworkListCell"];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/FreezeListViewController.m

@@ -200,7 +200,7 @@
         _tableView.estimatedRowHeight = 125.0f;
         _tableView.rowHeight = UITableViewAutomaticDimension;
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.tableFooterView = bottomView;
     }
     return _tableView;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m

@@ -223,7 +223,7 @@
         _tableView.estimatedRowHeight = 125.0f;
         _tableView.rowHeight = UITableViewAutomaticDimension;
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.tableFooterView = bottomView;
     }
     return _tableView;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/NoRecordViewController.m

@@ -201,7 +201,7 @@
         _tableView.estimatedRowHeight = 125.0f;
         _tableView.rowHeight = UITableViewAutomaticDimension;
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.tableFooterView = bottomView;
     }
     return _tableView;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/Controller/MyMusicViewController.m

@@ -68,7 +68,7 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     [self.view addSubview:self.navView];
     [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.top.mas_equalTo(self.view);

+ 3 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/View/MyMusicBodyView.m

@@ -39,9 +39,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
 
         self.tableView.dataSource = self;
@@ -51,7 +51,7 @@
         [self addSubview:self.tableView];
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"MusicMessageCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MusicMessageCell"];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m

@@ -81,7 +81,7 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, HEADER_HEIGHT)];
     self.categoryView.titles = self.titles;

+ 5 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m

@@ -64,9 +64,9 @@
     self = [super initWithFrame:frame];
     if (self) {
         
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
 
         self.tableView.dataSource = self;
@@ -76,11 +76,11 @@
         
         
         UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        headView.backgroundColor = HexRGB(0xf6f8f9);
+        headView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableHeaderView = headView;
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         [self.tableView registerNib:[UINib nibWithNibName:@"AccompanyCourseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyCourseCell"];
         [self.tableView registerNib:[UINib nibWithNibName:@"MyLiveCourseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MyLiveCourseCell"];
@@ -314,7 +314,7 @@
 - (NewClassPopView *)popView {
     if (!_popView) {
         MJWeakSelf;
-        _popView = [[NewClassPopView alloc] initWithFrame:CGRectMake(0, 55, kScreenWidth, kScreenHeight - 55 - kNaviBarHeight - iPhoneXSafeBottomMargin) tableColor:HexRGB(0xf6f8f9) chooseCallback:^(NSString * _Nonnull sortStr, NSInteger chooseIndex, NSInteger item) {
+        _popView = [[NewClassPopView alloc] initWithFrame:CGRectMake(0, 55, kScreenWidth, kScreenHeight - 55 - kNaviBarHeight - iPhoneXSafeBottomMargin) tableColor:HexRGB(0xf8f9fc) chooseCallback:^(NSString * _Nonnull sortStr, NSInteger chooseIndex, NSInteger item) {
             if (chooseIndex != 0) {
                 // 回调
                 [weakSelf sortWithChooseIndex:chooseIndex item:item title:sortStr];

+ 5 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyMusicRoomBodyView.m

@@ -58,9 +58,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
 
         self.tableView.dataSource = self;
@@ -70,11 +70,11 @@
         
         
         UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        headView.backgroundColor = HexRGB(0xf6f8f9);
+        headView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableHeaderView = headView;
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"MusicRoomCourseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MusicRoomCourseCell"];
@@ -278,7 +278,7 @@
 - (NewClassPopView *)popView {
     if (!_popView) {
         MJWeakSelf;
-        _popView = [[NewClassPopView alloc] initWithFrame:CGRectMake(0, 55, kScreenWidth, kScreenHeight - 55 - kNaviBarHeight - iPhoneXSafeBottomMargin) tableColor:HexRGB(0xf6f8f9) chooseCallback:^(NSString * _Nonnull sortStr, NSInteger chooseIndex, NSInteger item) {
+        _popView = [[NewClassPopView alloc] initWithFrame:CGRectMake(0, 55, kScreenWidth, kScreenHeight - 55 - kNaviBarHeight - iPhoneXSafeBottomMargin) tableColor:HexRGB(0xf8f9fc) chooseCallback:^(NSString * _Nonnull sortStr, NSInteger chooseIndex, NSInteger item) {
             if (chooseIndex != 0) {
                 // 回调
                 [weakSelf sortWithChooseIndex:chooseIndex item:item title:sortStr];

+ 2 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoCourseBodyView.m

@@ -43,12 +43,12 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
         layout.sectionInset = UIEdgeInsetsMake(0, 14, 12, 14);
         
         self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) collectionViewLayout:layout];
-        self.collectionView.backgroundColor = HexRGB(0xf6f8f9);
+        self.collectionView.backgroundColor = HexRGB(0xf8f9fc);
         self.collectionView.delegate = self;
         self.collectionView.dataSource = self;
         self.collectionView.showsVerticalScrollIndicator = NO;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m

@@ -362,7 +362,7 @@
         [_tableView registerNib:[UINib nibWithNibName:@"NotiferMessageCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"NotiferMessageCell"];
         _tableView.rowHeight = 85.0f;
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.tableFooterView = bottomView;
     }
     return _tableView;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/ReceiveEvaluate/Controller/ReceiveEvaluateListController.m

@@ -172,7 +172,7 @@
         _tableView.rowHeight = UITableViewAutomaticDimension;
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.tableFooterView = bottomView;
     }
     return _tableView;

+ 5 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" 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="22684"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -74,16 +74,16 @@
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         </view>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xSC-vm-098">
-                            <rect key="frame" x="25" y="10" width="41" height="24"/>
+                            <rect key="frame" x="25" y="10" width="38.5" height="24"/>
                             <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="20"/>
                             <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="030-NP-gEA">
-                            <rect key="frame" x="72" y="13" width="43" height="18"/>
+                            <rect key="frame" x="69.5" y="13" width="39" height="18"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="18" id="8P2-Ec-bnf"/>
-                                <constraint firstAttribute="width" secondItem="030-NP-gEA" secondAttribute="height" multiplier="48:20" id="fcB-wh-8ad"/>
+                                <constraint firstAttribute="width" secondItem="030-NP-gEA" secondAttribute="height" multiplier="39:18" id="fcB-wh-8ad"/>
                             </constraints>
                         </imageView>
                     </subviews>

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Guide/Controller/GuideViewController.m

@@ -131,7 +131,7 @@
         _scrollView.delegate = self;
         _scrollView.pagingEnabled = YES;
         _scrollView.bounces = NO;
-        _scrollView.backgroundColor = HexRGB(0xf6f8f9);
+        _scrollView.backgroundColor = HexRGB(0xf8f9fc);
         _scrollView.showsHorizontalScrollIndicator = NO;
         _scrollView.showsVerticalScrollIndicator = NO;
     }

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/AddressList/Controller/AddressListViewController.m

@@ -193,7 +193,7 @@
         _tableView.estimatedRowHeight = 80.0f;
         [_tableView registerNib:[UINib nibWithNibName:@"MyAddressListCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MyAddressListCell"];
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         _tableView.tableFooterView = bottomView;
     }
     return _tableView;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/Controller/MyLiveCourseViewController.m

@@ -42,7 +42,7 @@
 - (void)configUI {
     [self rightButtonTitle:@"创建课程" color:HexRGB(0x000000)];
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, HEADER_HEIGHT)];
     self.categoryView.titles = self.titles;

+ 4 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.m

@@ -37,9 +37,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
         self.tableView.rowHeight = 182.0f;
         self.tableView.dataSource = self;
@@ -51,11 +51,11 @@
         }];
         
         UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        headView.backgroundColor = HexRGB(0xf6f8f9);
+        headView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableHeaderView = headView;
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         [self.tableView registerNib:[UINib nibWithNibName:@"LiveCourseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"LiveCourseCell"];
 

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/Controller/LiveListViewController.m

@@ -54,7 +54,7 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf6f8f9);
+    self.view.backgroundColor = HexRGB(0xf8f9fc);
     
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, HEADER_HEIGHT)];
     self.categoryView.titles = self.titles;

+ 3 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/View/LiveListBodyView.m

@@ -44,9 +44,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
         self.tableView.showsHorizontalScrollIndicator = NO;
         self.tableView.dataSource = self;
@@ -57,7 +57,7 @@
         [self addSubview:self.tableView];
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"UnderwayLiveCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"UnderwayLiveCell"];

+ 21 - 8
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m

@@ -18,6 +18,7 @@
 #import "BadgeIntroduceView.h"
 #import "MyStyleViewController.h"
 #import "JXCategoryIndicatorGradientLineView.h"
+#import "MinePageAccompanyCourseView.h"
 
 #define HEADER_HEIGHT (50)
 
@@ -65,7 +66,7 @@
     CGFloat topHeight = kNaviBarHeight;
     
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, topHeight, kScreenWidth, HEADER_HEIGHT)];
-    _categoryView.backgroundColor = HexRGB(0xf6f8f9);
+    _categoryView.backgroundColor = HexRGB(0xf8f9fc);
     self.categoryView.titles = self.titles;
     self.categoryView.delegate = self;
     self.categoryView.titleFont = [UIFont systemFontOfSize:16.0f];
@@ -140,6 +141,10 @@
             MinePageCourseView *listView = (MinePageCourseView *)value;
             [listView beginFirstRefresh];
         }
+        else if ([value isKindOfClass:[MinePageAccompanyCourseView class]]) {
+            MinePageAccompanyCourseView *listView = (MinePageAccompanyCourseView *)value;
+            [listView beginFirstRefresh];
+        }
         else if ([value isKindOfClass:[MinePageVIPCourseView class]]) {
             MinePageVIPCourseView *listView = (MinePageVIPCourseView *)value;
             [listView beginFirstRefresh];
@@ -233,17 +238,17 @@
         return listView;
     }
     else if (index == 1) { // 趣纠课
-        MinePageCourseView *listView = [[MinePageCourseView alloc] init];
+        MinePageAccompanyCourseView *listView = [[MinePageAccompanyCourseView alloc] init];
         listView.naviController = self.navigationController;
         [self.listViewArray replaceObjectAtIndex:index withObject:listView];
         self.listViewArray[index] = listView;
         listView.selectIndex = index;
-        if (self.teacherInfo) {
-            listView.teaherStatus = self.teacherInfo.entryStatus;
-        }
-        else {
-            listView.teaherStatus = @"PASS";
-        }
+//        if (self.teacherInfo) {
+//            listView.teaherStatus = self.teacherInfo.entryStatus;
+//        }
+//        else {
+//            listView.teaherStatus = @"PASS";
+//        }
         [listView beginFirstRefresh];
         return listView;
     }
@@ -337,14 +342,17 @@
         self.headView.topView.backgroundColor = HexRGBAlpha(0xffffff, rate);
         if (rate == 1) {
             [self.headView.backImage setImage:[UIImage imageNamed:@"back_black"]];
+            [self.headView.editImage setImage:[UIImage imageNamed:@"minePage_nav_edit_black"]];
         }
         else {
             [self.headView.backImage setImage:[UIImage imageNamed:@"back_white"]];
+            [self.headView.editImage setImage:[UIImage imageNamed:@"minePage_nav_edit_black"]];
         }
     }
     else {
         self.headView.topView.backgroundColor = [UIColor clearColor];
         [self.headView.backImage setImage:[UIImage imageNamed:@"back_white"]];
+        [self.headView.editImage setImage:[UIImage imageNamed:@"minePage_nav_edit_white"]];
     }
 }
 
@@ -397,6 +405,11 @@
             [self showFansGroup];
         }
             break;
+        case MINEPAGE_TOP_EDIT:
+        {
+            [self editAction];
+        }
+            break;
         default:
             break;
     }

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MineVipProgramViewController.h

@@ -0,0 +1,16 @@
+//
+//  MineVipProgramViewController.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import "KSBaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MineVipProgramViewController : KSBaseViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 164 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MineVipProgramViewController.m

@@ -0,0 +1,164 @@
+//
+//  MineVipProgramViewController.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import "MineVipProgramViewController.h"
+#import "MineVipProgramNavView.h"
+#import "MineVipProgramHeadView.h"
+#import "MinePageVipProgramCell.h"
+
+@interface MineVipProgramViewController ()<UITableViewDelegate, UITableViewDataSource>
+
+@property (nonatomic, strong) MineVipProgramNavView *navView;
+
+@property (nonatomic, strong) MineVipProgramHeadView *addView;
+
+@property (nonatomic, strong) UITableView *tableView;
+
+@end
+
+@implementation MineVipProgramViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    self.ks_prefersNavigationBarHidden = YES;
+    [self configUI];
+}
+
+- (void)configUI {
+    
+    CGFloat navHeight = [MineVipProgramNavView getViewHeight];
+    [self.view addSubview:self.navView];
+    [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(navHeight);
+    }];
+    CGFloat addHeight = [MineVipProgramHeadView getViewHeight];
+    [self.view addSubview:self.addView];
+    [self.addView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.view);
+        make.top.mas_equalTo(self.navView.mas_bottom);
+        make.height.mas_equalTo(addHeight);
+    }];
+    [self.view addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.bottom.mas_equalTo(self.view);
+        make.top.mas_equalTo(self.addView.mas_bottom);
+    }];
+    
+    MJWeakSelf;
+    self.tableView.mj_header = [KSGifRefreshHeader headerWithRefreshingBlock:^{
+        [weakSelf resetParamenter];
+        [weakSelf requestData];
+    }];
+    self.tableView.mj_footer = [KSGifRefreshFooter footerWithRefreshingBlock:^{
+        if (weakSelf.isLoadMore) {
+            weakSelf.pages += 1;
+            [weakSelf requestData];
+        }
+        else {
+            [weakSelf.tableView.mj_footer endRefreshingWithNoMoreData];
+        }
+    }];
+}
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self requestData];
+}
+
+- (void)resetParamenter {
+    self.pages = 1;
+    self.isLoadMore = YES;
+    self.dataArray = [NSMutableArray array];
+    [self.tableView.mj_footer resetNoMoreData];
+    [self setPromptString:@"暂无内容" imageName:@"empty_course" inView:self.tableView];
+    [self.tableView reloadData];
+}
+
+- (void)requestData {
+    
+}
+
+
+#pragma mark ----- table data source
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return self.dataArray.count;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    MinePageVipProgramCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MinePageVipProgramCell"];
+    return cell;
+}
+
+#pragma mark ---- lazying
+
+- (UITableView *)tableView {
+    if (!_tableView) {
+        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _tableView.backgroundColor = [UIColor clearColor];
+        _tableView.showsVerticalScrollIndicator = NO;
+        _tableView.dataSource = self;
+        _tableView.delegate = self;
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+        [_tableView registerNib:[UINib nibWithNibName:@"MinePageVipProgramCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MinePageVipProgramCell"];
+        _tableView.rowHeight = 88.0f;
+    }
+    return _tableView;
+}
+
+- (MineVipProgramNavView *)navView {
+    if (!_navView) {
+        _navView = [MineVipProgramNavView sharedInstance];
+        MJWeakSelf;
+        [_navView navActionCallback:^(BOOL isBack) {
+            [weakSelf navAction:isBack];
+        }];
+    }
+    return _navView;
+}
+
+- (void)navAction:(BOOL)isBack {
+    if (isBack) {
+        [self backAction];
+    }
+    else {
+        [self showTipsAlert];
+    }
+}
+
+- (void)showTipsAlert {
+    
+}
+
+- (MineVipProgramHeadView *)addView {
+    if (!_addView) {
+        _addView = [MineVipProgramHeadView sharedIntance];
+        MJWeakSelf;
+        [_addView addActionCallback:^{
+            [weakSelf addProgramAction];
+        }];
+    }
+    return _addView;
+}
+
+- (void)addProgramAction {
+    
+}
+
+/*
+#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

+ 18 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/AccompanyCourse/MinePageAccompanyCourseView.h

@@ -0,0 +1,18 @@
+//
+//  MinePageAccompanyCourseView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import "KSJXBodyView.h"
+#import "StateView.h"
+#import "Reachability.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MinePageAccompanyCourseView : KSJXBodyView
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 333 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/AccompanyCourse/MinePageAccompanyCourseView.m

@@ -0,0 +1,333 @@
+//
+//  MinePageAccompanyCourseView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import "MinePageAccompanyCourseView.h"
+#import "MinePageVipProgramCell.h"
+#import "MinePageCourseTipsView.h"
+#import "MineCourseSettingView.h"
+#import "KSBaseWKWebViewController.h"
+
+@interface MinePageAccompanyCourseView ()<UITableViewDelegate,UITableViewDataSource>
+
+@property (nonatomic, assign) BOOL isLoadMore;
+@property (nonatomic, assign) NSInteger rows;
+@property (nonatomic, assign) NSInteger pages;
+
+@property (nonatomic, strong) NSMutableArray *dataArray;
+
+@property (nonatomic, strong) StateView *promptView;
+@property (nonatomic, strong) UIView *promptPlaceView;
+
+@property (nonatomic, assign) BOOL networkAvaiable; // 网络是否可用
+
+@property (nonatomic, strong) UIView *headView;
+
+@property (nonatomic, strong) MinePageCourseTipsView *tipsView;
+
+@property (nonatomic, strong) MineCourseSettingView *settingView;
+
+@property (nonatomic, assign) BOOL hideTips; // 是否隐藏提示
+
+
+
+@end
+
+@implementation MinePageAccompanyCourseView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    self = [super initWithFrame:frame];
+    if (self) {
+        self.backgroundColor = HexRGB(0xf8f9fc);
+        self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
+        self.tableView.showsVerticalScrollIndicator = NO;
+        
+        self.tableView.dataSource = self;
+        self.tableView.delegate = self;
+        self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        [self addSubview:self.tableView];
+        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+        
+        UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
+        self.tableView.tableFooterView = bottomView;
+        
+        MJWeakSelf;
+        self.tableView.mj_header = [KSGifRefreshHeader headerWithRefreshingBlock:^{
+            [weakSelf resetParamenter];
+            [weakSelf requestData];
+        }];
+        self.tableView.mj_footer = [KSGifRefreshFooter footerWithRefreshingBlock:^{
+            if (weakSelf.isLoadMore) {
+                weakSelf.pages += 1;
+                [weakSelf requestData];
+            }
+            else {
+                [weakSelf.tableView.mj_footer endRefreshingWithNoMoreData];
+            }
+        }];
+    }
+    return self;
+}
+
+- (void)refreshAndRequestData {
+    [self resetParamenter];
+    [self requestData];
+}
+
+- (void)resetParamenter {
+    self.isLoadMore = YES;
+    self.pages = 1;
+    self.rows = 10;
+    
+    self.dataArray = [NSMutableArray array];
+    [self.tableView.mj_footer resetNoMoreData];
+    [self setPromptString:@"暂无内容" imageName:@"empty_course" inView:self.tableView];
+    [self.tableView reloadData];
+}
+
+- (void)endRefresh {
+    @weakObj(self);
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        @strongObj(self);
+        [self.tableView.mj_header endRefreshing];
+        [self.tableView.mj_footer endRefreshing];
+    });
+}
+
+- (void)requestData {
+    [self endRefresh];
+    [self changePromptLabelStateWithArray:self.dataArray];
+}
+
+- (void)beginRefreshImmediately {
+    [self.tableView.mj_header beginRefreshing];
+}
+
+- (void)beginFirstRefresh {
+    if (!self.isHeaderRefreshed) {
+        [self beginRefreshImmediately];
+    }
+}
+- (void)selectCellAtIndexPath:(NSIndexPath *)indexPath {
+    
+    if (self.lastSelectedIndexPath == indexPath) {
+        return;
+    }
+    if (self.lastSelectedIndexPath != nil) {
+        UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:self.lastSelectedIndexPath];
+        [cell setSelected:NO animated:NO];
+    }
+    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
+    [cell setSelected:YES animated:NO];
+    self.lastSelectedIndexPath = indexPath;
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    CGFloat tipsHeight = [self.tipsView getViewHeight];
+    CGFloat settingHeight = [MineCourseSettingView getViewHeight];
+    CGFloat headHeight = 0.0f;
+    if (self.hideTips) {
+        headHeight = settingHeight + 12;
+    }
+    else {
+        headHeight = tipsHeight + settingHeight + 12;
+    }
+    
+    if (![self.subviews containsObject:self.headView]) {
+        [self addSubview:self.headView];
+        [self evaluateHeadView];
+        [self.headView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.right.top.mas_equalTo(self);
+            make.height.mas_equalTo(headHeight);
+        }];
+    }
+    else {
+        [self.headView mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.height.mas_equalTo(headHeight);
+        }];
+        if (self.hideTips) {
+            self.tipsView.hidden = YES;
+            [self.tipsView mas_updateConstraints:^(MASConstraintMaker *make) {
+                make.height.mas_equalTo(0);
+            }];
+        }
+        else {
+            self.tipsView.hidden = NO;
+            [self.tipsView mas_updateConstraints:^(MASConstraintMaker *make) {
+                make.height.mas_equalTo(tipsHeight);
+            }];
+        }
+    }
+    
+    [self.tableView mas_remakeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.bottom.mas_equalTo(self);
+        make.top.mas_equalTo(self.headView.mas_bottom);
+    }];
+}
+
+- (void)evaluateHeadView {
+    
+    CGFloat tipsHeight = 0.0f;
+    if (self.hideTips == NO) {
+        tipsHeight = [self.tipsView getViewHeight];
+    }
+    CGFloat settingHeight = [MineCourseSettingView getViewHeight];
+    [self.headView addSubview:self.tipsView];
+    [self.tipsView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.headView);
+        make.height.mas_equalTo(tipsHeight);
+    }];
+    [self.headView addSubview:self.settingView];
+    [self.settingView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.headView);
+        make.bottom.mas_equalTo(self.headView.mas_bottom).offset(-12);
+        make.height.mas_equalTo(settingHeight);
+    }];
+}
+
+#pragma mark - UITableViewDataSource
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return self.dataArray.count;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
+    return 88.0f;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    MinePageVipProgramCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MinePageVipProgramCell"];
+    return cell;
+}
+
+#pragma mark ----- lazying
+- (UIView *)headView {
+    if (!_headView) {
+        _headView = [[UIView alloc] initWithFrame:CGRectZero];
+        _headView.backgroundColor = [UIColor clearColor];
+    }
+    return _headView;
+}
+- (MinePageCourseTipsView *)tipsView {
+    if (!_tipsView) {
+        _tipsView = [MinePageCourseTipsView shareIntance];
+        MJWeakSelf;
+        [_tipsView configWithTypeImage:@"minePage_course_introduce" headTitle:@"什么是趣纠课?" descMsg:@"趣纠课是老师在您的练习过程中提供的个性化指导服务,旨在纠正错误并帮助您更好地理解和掌握所学内容。上课形式为1v1线上课程。" callback:^(COURSE_TIPS_ACTION action) {
+            [weakSelf courseTipsAction:action];
+        }];
+    }
+    return _tipsView;
+}
+
+- (MineCourseSettingView *)settingView {
+    if (!_settingView) {
+        _settingView = [MineCourseSettingView shareInstance];
+        MJWeakSelf;
+        [_settingView configWithCourseType:COURSE_TYPE_ACCOMPANY callback:^{
+            [weakSelf settingCourseAction];
+        }];
+    }
+    return _settingView;
+}
+
+- (void)settingCourseAction {
+    // 设置趣纠课-课程方案
+    KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+    webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/practiceSetting"];
+    [self.naviController pushViewController:webCtrl animated:YES];
+}
+
+- (void)courseTipsAction:(COURSE_TIPS_ACTION)action {
+    switch (action) {
+        case COURSE_TIPS_ACTION_REMOVE:
+        {
+            self.hideTips = YES;
+            [self setNeedsLayout];
+        }
+            break;
+        case COURSE_TIPS_ACTION_STOPREMIND:
+        {
+            self.hideTips = YES;
+            [self setNeedsLayout];
+        }
+            break;
+        default:
+            break;
+    }
+}
+
+/**
+ 设置没有数据时的显示
+ 
+ @param promptString 提示语
+ @param imgName 图片名称
+ @param view 显示在什么地方
+ */
+- (void)setPromptString:(NSString *)promptString imageName:(NSString *)imgName inView:(UIView *)view {
+    if (self.promptView != nil) {
+        [self.promptView removeFromSuperview];
+    }
+    else {
+        self.promptView = [[StateView alloc]init];
+        self.promptView.frame = CGRectMake(0, 0, KPortraitWidth, KPortraitHeight - 300);
+    }
+    _promptPlaceView = view;
+    //当请求不到数据时 ,自定义提示view 将会出现;
+    self.promptView.imageName = imgName;
+    self.promptView.alpha = 0.0f;
+    [self.promptView setText:promptString];
+    [view addSubview:self.promptView];
+}
+
+// 结束刷新后调用方法
+- (void)changePromptLabelStateWithArray:(NSMutableArray *)array {
+    NSInteger count;
+    if (array.count) {
+        count = array.count;
+    } else {
+        count = 0;
+    }
+    
+    [UIView animateWithDuration:0.1 animations:^{
+        [[self promptView] setAlpha:count ? 0.0f :1.0f ] ;
+    }] ;
+    
+}
+
+- (BOOL)networkAvaiable {
+    return [self checkNetworkAvaiable];
+}
+
+- (BOOL)checkNetworkAvaiable {
+    BOOL isExistenceNetwork = YES;
+    Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];
+    switch ([reach currentReachabilityStatus]) {
+        case NotReachable:
+            isExistenceNetwork = NO;
+            //NSLog(@"notReachable");
+            break;
+        case ReachableViaWiFi:
+            isExistenceNetwork = YES;
+            //NSLog(@"WIFI");
+            break;
+        case ReachableViaWWAN:
+            isExistenceNetwork = YES;
+            //NSLog(@"3G");
+            break;
+    }
+    return isExistenceNetwork;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MineEmptyIntroduceView.h

@@ -0,0 +1,22 @@
+//
+//  MineEmptyIntroduceView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef void(^EmptyIntroduceCallback)(void);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MineEmptyIntroduceView : UIView
+
++ (instancetype)sharedInstance;
+
+- (void)editButtonCallback:(EmptyIntroduceCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 44 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MineEmptyIntroduceView.m

@@ -0,0 +1,44 @@
+//
+//  MineEmptyIntroduceView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import "MineEmptyIntroduceView.h"
+
+@interface MineEmptyIntroduceView ()
+
+@property (nonatomic, copy) EmptyIntroduceCallback callback;
+
+@end
+
+@implementation MineEmptyIntroduceView
+
++ (instancetype)sharedInstance {
+    MineEmptyIntroduceView *view = [[[NSBundle mainBundle] loadNibNamed:@"MineEmptyIntroduceView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+
+- (void)editButtonCallback:(EmptyIntroduceCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)editAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 110 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MineEmptyIntroduceView.xib

@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MineEmptyIntroduceView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="212"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="S9m-LU-Hw3">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="212"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Hbm-ua-DgQ">
+                            <rect key="frame" x="0.0" y="0.0" width="393" height="210"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_noneIntroduce" translatesAutoresizingMaskIntoConstraints="NO" id="nFI-zR-e0J">
+                                    <rect key="frame" x="116.66666666666669" y="18" width="160" height="116"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="116" id="Nq0-gg-f1C"/>
+                                        <constraint firstAttribute="width" constant="160" id="zLA-kg-572"/>
+                                    </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="Gsf-9X-2pq">
+                                    <rect key="frame" x="151.33333333333334" y="135" width="90.333333333333343" height="18"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="18" id="q8j-OW-I2s"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                    <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="2gQ-13-qz5">
+                                    <rect key="frame" x="158" y="165" width="77" height="30"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="77" id="P0L-dJ-O0K"/>
+                                        <constraint firstAttribute="height" constant="30" id="teN-mU-WxS"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                    <state key="normal" title="去填写">
+                                        <color key="titleColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                                    </state>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
+                                            <color key="value" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                                        </userDefinedRuntimeAttribute>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                                            <real key="value" value="1"/>
+                                        </userDefinedRuntimeAttribute>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="15"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                    <connections>
+                                        <action selector="editAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="hVK-fC-bgf"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="2gQ-13-qz5" firstAttribute="top" secondItem="Gsf-9X-2pq" secondAttribute="bottom" constant="12" id="7XR-75-qgf"/>
+                                <constraint firstItem="2gQ-13-qz5" firstAttribute="centerX" secondItem="Hbm-ua-DgQ" secondAttribute="centerX" id="BJl-OE-0pB"/>
+                                <constraint firstItem="Gsf-9X-2pq" firstAttribute="centerX" secondItem="nFI-zR-e0J" secondAttribute="centerX" id="Cf7-bv-2mH"/>
+                                <constraint firstItem="nFI-zR-e0J" firstAttribute="centerX" secondItem="Hbm-ua-DgQ" secondAttribute="centerX" id="Wh0-ma-t54"/>
+                                <constraint firstItem="Gsf-9X-2pq" firstAttribute="top" secondItem="nFI-zR-e0J" secondAttribute="bottom" constant="1" id="X43-JS-kas"/>
+                                <constraint firstItem="nFI-zR-e0J" firstAttribute="top" secondItem="Hbm-ua-DgQ" secondAttribute="top" constant="18" id="uUV-mO-bNa"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="Hbm-ua-DgQ" secondAttribute="trailing" id="Cs6-Cg-Ets"/>
+                        <constraint firstItem="Hbm-ua-DgQ" firstAttribute="top" secondItem="S9m-LU-Hw3" secondAttribute="top" id="XZ6-0B-WUe"/>
+                        <constraint firstAttribute="bottom" secondItem="Hbm-ua-DgQ" secondAttribute="bottom" constant="2" id="i2X-eM-Lhr"/>
+                        <constraint firstItem="Hbm-ua-DgQ" firstAttribute="leading" secondItem="S9m-LU-Hw3" secondAttribute="leading" id="tZM-zt-De5"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="S9m-LU-Hw3" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="CAc-FT-I7s"/>
+                <constraint firstAttribute="bottom" secondItem="S9m-LU-Hw3" secondAttribute="bottom" id="K57-SQ-PaN"/>
+                <constraint firstItem="S9m-LU-Hw3" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="hwm-eb-ZSA"/>
+                <constraint firstAttribute="trailing" secondItem="S9m-LU-Hw3" secondAttribute="trailing" id="qhR-oR-W1x"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="46.564885496183201" y="47.535211267605639"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="mine_noneIntroduce" width="160" height="116"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageHeadView.h

@@ -13,6 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MinePageHeadView : UIView
 
+@property (weak, nonatomic) IBOutlet UIImageView *editImage;
+
 @property (weak, nonatomic) IBOutlet UIImageView *backImage;
 
 @property (weak, nonatomic) IBOutlet UIView *topView;

+ 8 - 18
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageHeadView.xib

@@ -49,19 +49,9 @@
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0dw-OD-PbF">
                             <rect key="frame" x="338" y="53" width="62" height="26"/>
                             <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_style_edit" translatesAutoresizingMaskIntoConstraints="NO" id="4Zd-Dr-riY">
-                                    <rect key="frame" x="6" y="6" width="14" height="14"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="14" id="Cgk-Xr-mGc"/>
-                                        <constraint firstAttribute="height" constant="14" id="P2k-Mn-ouY"/>
-                                    </constraints>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="minePage_nav_edit_white" translatesAutoresizingMaskIntoConstraints="NO" id="7HZ-cT-HAA">
+                                    <rect key="frame" x="0.0" y="0.0" width="62" height="26"/>
                                 </imageView>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="编辑" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1Kd-Rc-d8C">
-                                    <rect key="frame" x="26" y="5" width="26" height="16"/>
-                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
-                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jZ4-hZ-vd0">
                                     <rect key="frame" x="0.0" y="0.0" width="62" height="26"/>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
@@ -74,14 +64,13 @@
                             <constraints>
                                 <constraint firstItem="jZ4-hZ-vd0" firstAttribute="top" secondItem="0dw-OD-PbF" secondAttribute="top" id="1j3-ch-PFu"/>
                                 <constraint firstAttribute="trailing" secondItem="jZ4-hZ-vd0" secondAttribute="trailing" id="2Cv-b1-2vL"/>
-                                <constraint firstItem="4Zd-Dr-riY" firstAttribute="leading" secondItem="0dw-OD-PbF" secondAttribute="leading" constant="6" id="8HM-Mq-Ex4"/>
-                                <constraint firstItem="4Zd-Dr-riY" firstAttribute="centerY" secondItem="0dw-OD-PbF" secondAttribute="centerY" id="J3v-cq-ljO"/>
-                                <constraint firstItem="1Kd-Rc-d8C" firstAttribute="leading" secondItem="4Zd-Dr-riY" secondAttribute="trailing" constant="6" id="JZf-W5-ZJT"/>
+                                <constraint firstItem="7HZ-cT-HAA" firstAttribute="leading" secondItem="0dw-OD-PbF" secondAttribute="leading" id="Bur-R5-Bkl"/>
+                                <constraint firstItem="7HZ-cT-HAA" firstAttribute="top" secondItem="0dw-OD-PbF" secondAttribute="top" id="I22-ES-zxf"/>
                                 <constraint firstItem="jZ4-hZ-vd0" firstAttribute="leading" secondItem="0dw-OD-PbF" secondAttribute="leading" id="KUw-W0-WX7"/>
                                 <constraint firstAttribute="bottom" secondItem="jZ4-hZ-vd0" secondAttribute="bottom" id="LlO-0H-Mna"/>
                                 <constraint firstAttribute="height" constant="26" id="Nn3-yC-Trg"/>
-                                <constraint firstItem="1Kd-Rc-d8C" firstAttribute="centerY" secondItem="0dw-OD-PbF" secondAttribute="centerY" id="Umz-C8-FJh"/>
-                                <constraint firstAttribute="trailing" secondItem="1Kd-Rc-d8C" secondAttribute="trailing" constant="10" id="fJj-S9-HSE"/>
+                                <constraint firstAttribute="trailing" secondItem="7HZ-cT-HAA" secondAttribute="trailing" id="bpl-vO-fvM"/>
+                                <constraint firstAttribute="bottom" secondItem="7HZ-cT-HAA" secondAttribute="bottom" id="cIc-7z-1qK"/>
                             </constraints>
                             <userDefinedRuntimeAttributes>
                                 <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -128,6 +117,7 @@
             <connections>
                 <outlet property="backImage" destination="7zL-CV-PVX" id="Rh5-bw-0od"/>
                 <outlet property="bgView" destination="thf-Z9-Jzc" id="bcT-kn-PMh"/>
+                <outlet property="editImage" destination="7HZ-cT-HAA" id="4pF-N7-QkL"/>
                 <outlet property="topView" destination="emY-nQ-Sbn" id="Scs-7L-BfX"/>
                 <outlet property="viewHeight" destination="1wg-e6-kqA" id="79o-QW-2Js"/>
             </connections>
@@ -136,6 +126,6 @@
     </objects>
     <resources>
         <image name="back_white" width="12" height="20"/>
-        <image name="mine_style_edit" width="14" height="14"/>
+        <image name="minePage_nav_edit_white" width="62" height="26"/>
     </resources>
 </document>

+ 1 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageTopView.h

@@ -10,6 +10,7 @@
 typedef NS_ENUM(NSInteger, MINEPAGE_TOP) {
     MINEPAGE_TOP_STYLEVIDEO, // 老师风采视频
     MINEPAGE_TOP_FANSGROUP,  // 粉丝群
+    MINEPAGE_TOP_EDIT,       // 编辑
 };
 
 NS_ASSUME_NONNULL_BEGIN

+ 55 - 11
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageTopView.m

@@ -9,6 +9,10 @@
 #import "TeacherInfo.h"
 #import "KSStarView.h"
 #import "UIView+KSLayer.h"
+#import "MineEmptyIntroduceView.h"
+
+//#define MIN_DESC_HEIGHT (76)
+#define EMPTY_HEIGHT (212)
 
 @interface MinePageTopView ()
 @property (weak, nonatomic) IBOutlet UIView *cornerView;
@@ -39,6 +43,10 @@
 @property (nonatomic, strong) UIScrollView *tagScroll;
 @property (weak, nonatomic) IBOutlet UILabel *introduceLabel;
 
+@property (weak, nonatomic) IBOutlet UIView *emptyDescView;
+
+@property (nonatomic, strong) MineEmptyIntroduceView *emptyView;
+
 @end
 
 
@@ -121,12 +129,25 @@
         // 描述
         NSString *introduce = infoMessage.introduction;
         if ([NSString isEmptyString:introduce]) {
-            introduce = @"暂无简介";
+            // 空视图
+            if (![self.emptyDescView.subviews containsObject:self.emptyView]) {
+                [self.emptyDescView addSubview:self.emptyView];
+                [self.emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
+                    make.left.right.top.bottom.mas_equalTo(self.emptyDescView);
+                    make.height.mas_equalTo(EMPTY_HEIGHT);
+                }];
+            }
+        }
+        else {
+            // 移除空视图
+            if ([self.emptyDescView.subviews containsObject:self.emptyView]) {
+                [self.emptyView removeFromSuperview];
+            }
+            NSMutableParagraphStyle *paragraphStyle = [self getParagraphStyleWithFont:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
+            CGFloat baselineOffset = [self getBaseOffline:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
+            NSMutableAttributedString *attrs = [[NSMutableAttributedString alloc] initWithString:introduce attributes:@{NSParagraphStyleAttributeName:paragraphStyle, NSBaselineOffsetAttributeName:@(baselineOffset),NSFontAttributeName:[UIFont systemFontOfSize:13.0f]}];
+            self.introduceLabel.attributedText = attrs;
         }
-        NSMutableParagraphStyle *paragraphStyle = [self getParagraphStyleWithFont:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
-        CGFloat baselineOffset = [self getBaseOffline:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
-        NSMutableAttributedString *attrs = [[NSMutableAttributedString alloc] initWithString:introduce attributes:@{NSParagraphStyleAttributeName:paragraphStyle, NSBaselineOffsetAttributeName:@(baselineOffset),NSFontAttributeName:[UIFont systemFontOfSize:13.0f]}];
-        self.introduceLabel.attributedText = attrs;
     }
 }
 
@@ -150,14 +171,19 @@
         TeacherInfo *infoMessage = source;
         NSString *introduce = infoMessage.introduction;
         if ([NSString isEmptyString:introduce]) {
-            introduce = @"暂无简介";
+            return 131 + 14 + 64 + EMPTY_HEIGHT;
+        }
+        else {
+            NSMutableParagraphStyle *paragraphStyle = [self getParagraphStyleWithFont:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
+            CGFloat baselineOffset = [self getBaseOffline:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
+            CGFloat lableHeight = [introduce boundingRectWithSize:CGSizeMake(KPortraitWidth - 24 * 2, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSParagraphStyleAttributeName:paragraphStyle, NSBaselineOffsetAttributeName:@(baselineOffset),NSFontAttributeName:[UIFont systemFontOfSize:13.0f]} context:nil].size.height + 1;
+//            if (lableHeight < MIN_DESC_HEIGHT) {
+//                lableHeight = MIN_DESC_HEIGHT;
+//            }
+            return 131 + 14 + 64 + lableHeight + 18;
         }
-        NSMutableParagraphStyle *paragraphStyle = [self getParagraphStyleWithFont:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
-        CGFloat baselineOffset = [self getBaseOffline:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
-        CGFloat lableHeight = [introduce boundingRectWithSize:CGSizeMake(KPortraitWidth - 24 * 2, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSParagraphStyleAttributeName:paragraphStyle, NSBaselineOffsetAttributeName:@(baselineOffset),NSFontAttributeName:[UIFont systemFontOfSize:13.0f]} context:nil].size.height + 1;
-        return 131 + 14 + 64 + lableHeight + 18;
     }
-    return 280.0f;
+    return 131 + 14 + 64 + EMPTY_HEIGHT;
 }
 
 - (void)configTagViewWithTagArray:(NSArray *)tagArray maxWidth:(CGFloat)maxWidth {
@@ -213,6 +239,24 @@
     }
 }
 
+#pragma mark ----- lazying
+- (MineEmptyIntroduceView *)emptyView {
+    if (!_emptyView) {
+        _emptyView = [MineEmptyIntroduceView sharedInstance];
+        MJWeakSelf;
+        [_emptyView editButtonCallback:^{
+            [weakSelf editStyle];
+        }];
+    }
+    return _emptyView;
+}
+
+- (void)editStyle {
+    if (self.callback) {
+        self.callback(MINEPAGE_TOP_EDIT);
+    }
+}
+
 - (UIScrollView *)tagScroll {
     if (!_tagScroll) {
         _tagScroll = [[UIScrollView alloc] initWithFrame:CGRectZero];

+ 34 - 25
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/HeadView/MinePageTopView.xib

@@ -10,11 +10,11 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MinePageTopView">
-            <rect key="frame" x="0.0" y="0.0" width="374" height="300"/>
+            <rect key="frame" x="0.0" y="0.0" width="374" height="314"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w1f-9h-A4M">
-                    <rect key="frame" x="0.0" y="14" width="374" height="286"/>
+                    <rect key="frame" x="0.0" y="14" width="374" height="300"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_instrument_logo" translatesAutoresizingMaskIntoConstraints="NO" id="IsQ-zh-7a5">
                             <rect key="frame" x="14" y="94" width="44" height="16"/>
@@ -40,18 +40,15 @@
                             <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="hqM-qu-Ygd">
-                            <rect key="frame" x="108" y="48" width="28" height="14"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="14" id="9Qh-NH-weO"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <rect key="frame" x="165" y="48" width="26" height="16"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
                             <color key="textColor" red="1" green="1" blue="1" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="X" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nI7-Zj-cP3">
-                            <rect key="frame" x="142" y="45.5" width="9" height="19"/>
+                            <rect key="frame" x="193" y="47.5" width="9" height="17.5"/>
                             <gestureRecognizers/>
-                            <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="16"/>
+                            <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="15"/>
                             <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <nil key="highlightedColor"/>
                         </label>
@@ -74,7 +71,7 @@
                             </constraints>
                         </view>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zyK-kV-Bos">
-                            <rect key="frame" x="161" y="49" width="1" height="12"/>
+                            <rect key="frame" x="208" y="50" width="1" height="12"/>
                             <color key="backgroundColor" white="1" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="1" id="LhZ-CQ-DKT"/>
@@ -82,20 +79,20 @@
                             </constraints>
                         </view>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已上课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VX3-MA-GKi">
-                            <rect key="frame" x="172" y="46.5" width="56" height="17"/>
-                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <rect key="frame" x="215" y="48" width="52" height="16"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
                             <color key="textColor" red="1" green="1" blue="1" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="X" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WdG-ah-bQ7">
-                            <rect key="frame" x="234" y="45.5" width="9" height="19"/>
+                            <rect key="frame" x="269" y="47.5" width="9" height="17.5"/>
                             <gestureRecognizers/>
-                            <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="16"/>
+                            <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="15"/>
                             <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4Jq-VA-6uM">
-                            <rect key="frame" x="0.0" y="131" width="374" height="155"/>
+                            <rect key="frame" x="0.0" y="131" width="374" height="169"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="USe-oC-N7T">
                                     <rect key="frame" x="14" y="14" width="167.5" height="36"/>
@@ -193,7 +190,7 @@
                                     </constraints>
                                 </view>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jcb-v4-GpB">
-                                    <rect key="frame" x="12" y="64" width="350" height="91"/>
+                                    <rect key="frame" x="12" y="64" width="350" height="105"/>
                                     <subviews>
                                         <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="PZD-oz-8cA">
                                             <rect key="frame" x="12" y="9" width="326" height="0.0"/>
@@ -239,30 +236,40 @@
                                 <constraint firstItem="Mgy-O1-NXO" firstAttribute="leading" secondItem="Ywr-qF-6hh" secondAttribute="leading" id="vnn-Xc-3M2"/>
                             </constraints>
                         </view>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_auth_img" translatesAutoresizingMaskIntoConstraints="NO" id="iiM-Wg-xpb">
+                            <rect key="frame" x="108" y="47" width="49" height="18"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="49" id="Qyf-Q0-bnT"/>
+                                <constraint firstAttribute="height" constant="18" id="f5T-Lf-Mbs"/>
+                            </constraints>
+                        </imageView>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
                         <constraint firstItem="LhQ-B1-N8g" firstAttribute="leading" secondItem="w1f-9h-A4M" secondAttribute="leading" constant="108" id="03X-tx-suR"/>
+                        <constraint firstItem="hqM-qu-Ygd" firstAttribute="leading" secondItem="iiM-Wg-xpb" secondAttribute="trailing" constant="8" id="13Q-MF-Cma"/>
                         <constraint firstItem="j04-k1-RIV" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="trailing" constant="7" id="1TQ-qi-Jau"/>
                         <constraint firstAttribute="bottom" secondItem="4Jq-VA-6uM" secondAttribute="bottom" id="2Ss-ex-J0r"/>
+                        <constraint firstItem="iiM-Wg-xpb" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="leading" id="4UA-ni-PKH"/>
                         <constraint firstItem="LhQ-B1-N8g" firstAttribute="top" secondItem="w1f-9h-A4M" secondAttribute="top" constant="12" id="63f-vf-yDn"/>
                         <constraint firstItem="nI7-Zj-cP3" firstAttribute="centerY" secondItem="hqM-qu-Ygd" secondAttribute="centerY" id="8hC-Xc-fOO"/>
-                        <constraint firstItem="hqM-qu-Ygd" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="leading" id="Eiq-yY-Nq8"/>
                         <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="j04-k1-RIV" secondAttribute="trailing" constant="12" id="N7u-AQ-ipf"/>
-                        <constraint firstItem="VX3-MA-GKi" firstAttribute="leading" secondItem="zyK-kV-Bos" secondAttribute="trailing" constant="10" id="OqS-jK-KdZ"/>
+                        <constraint firstItem="VX3-MA-GKi" firstAttribute="leading" secondItem="zyK-kV-Bos" secondAttribute="trailing" constant="6" id="OqS-jK-KdZ"/>
+                        <constraint firstItem="hqM-qu-Ygd" firstAttribute="centerY" secondItem="iiM-Wg-xpb" secondAttribute="centerY" id="U3D-wn-zIQ"/>
+                        <constraint firstItem="iiM-Wg-xpb" firstAttribute="top" secondItem="LhQ-B1-N8g" secondAttribute="bottom" constant="11" id="ZLo-Fm-kc3"/>
                         <constraint firstItem="j04-k1-RIV" firstAttribute="centerY" secondItem="LhQ-B1-N8g" secondAttribute="centerY" id="avK-em-c0j"/>
                         <constraint firstItem="fZT-24-HFt" firstAttribute="leading" secondItem="IsQ-zh-7a5" secondAttribute="trailing" constant="10" id="bG8-zK-KPw"/>
                         <constraint firstItem="4Jq-VA-6uM" firstAttribute="leading" secondItem="w1f-9h-A4M" secondAttribute="leading" id="fQs-zy-Nr3"/>
-                        <constraint firstItem="zyK-kV-Bos" firstAttribute="leading" secondItem="nI7-Zj-cP3" secondAttribute="trailing" constant="10" id="i1B-Sp-MqY"/>
+                        <constraint firstItem="zyK-kV-Bos" firstAttribute="leading" secondItem="nI7-Zj-cP3" secondAttribute="trailing" constant="6" id="i1B-Sp-MqY"/>
                         <constraint firstItem="IsQ-zh-7a5" firstAttribute="leading" secondItem="w1f-9h-A4M" secondAttribute="leading" constant="14" id="iAB-7h-FYZ"/>
                         <constraint firstItem="zyK-kV-Bos" firstAttribute="centerY" secondItem="nI7-Zj-cP3" secondAttribute="centerY" id="idK-Q0-mmF"/>
                         <constraint firstItem="4Jq-VA-6uM" firstAttribute="top" secondItem="IsQ-zh-7a5" secondAttribute="bottom" constant="21" id="j5X-zB-IBS"/>
                         <constraint firstItem="VX3-MA-GKi" firstAttribute="centerY" secondItem="hqM-qu-Ygd" secondAttribute="centerY" id="jag-uE-4yX"/>
-                        <constraint firstItem="WdG-ah-bQ7" firstAttribute="leading" secondItem="VX3-MA-GKi" secondAttribute="trailing" constant="6" id="k3l-g7-lSj"/>
+                        <constraint firstItem="WdG-ah-bQ7" firstAttribute="leading" secondItem="VX3-MA-GKi" secondAttribute="trailing" constant="2" id="k3l-g7-lSj"/>
                         <constraint firstAttribute="trailing" secondItem="fZT-24-HFt" secondAttribute="trailing" constant="14" id="nrr-SS-sDs"/>
-                        <constraint firstItem="hqM-qu-Ygd" firstAttribute="top" secondItem="LhQ-B1-N8g" secondAttribute="bottom" constant="12" id="oPG-dd-RpG"/>
                         <constraint firstItem="WdG-ah-bQ7" firstAttribute="centerY" secondItem="VX3-MA-GKi" secondAttribute="centerY" id="rv9-PP-bm7"/>
-                        <constraint firstItem="nI7-Zj-cP3" firstAttribute="leading" secondItem="hqM-qu-Ygd" secondAttribute="trailing" constant="6" id="trz-Ye-BAl"/>
+                        <constraint firstItem="nI7-Zj-cP3" firstAttribute="leading" secondItem="hqM-qu-Ygd" secondAttribute="trailing" constant="2" id="trz-Ye-BAl"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="WdG-ah-bQ7" secondAttribute="trailing" constant="12" id="uU3-O4-WNG"/>
                         <constraint firstAttribute="trailing" secondItem="4Jq-VA-6uM" secondAttribute="trailing" id="ui5-tB-BOc"/>
                         <constraint firstItem="fZT-24-HFt" firstAttribute="centerY" secondItem="IsQ-zh-7a5" secondAttribute="centerY" id="xhZ-uo-LnE"/>
                         <constraint firstItem="IsQ-zh-7a5" firstAttribute="top" secondItem="LhQ-B1-N8g" secondAttribute="bottom" constant="58" id="z7B-d9-lFB"/>
@@ -287,9 +294,9 @@
                     </userDefinedRuntimeAttributes>
                 </imageView>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="O4w-5f-Puh">
-                    <rect key="frame" x="63" y="70" width="43" height="18"/>
+                    <rect key="frame" x="63" y="70" width="39" height="18"/>
                     <constraints>
-                        <constraint firstAttribute="width" secondItem="O4w-5f-Puh" secondAttribute="height" multiplier="48:20" id="joZ-TS-Pci"/>
+                        <constraint firstAttribute="width" secondItem="O4w-5f-Puh" secondAttribute="height" multiplier="39:18" id="joZ-TS-Pci"/>
                         <constraint firstAttribute="height" constant="18" id="ogj-H9-eEZ"/>
                     </constraints>
                 </imageView>
@@ -310,6 +317,7 @@
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
                 <outlet property="cornerView" destination="4Jq-VA-6uM" id="XNU-Bf-MN0"/>
+                <outlet property="emptyDescView" destination="jcb-v4-GpB" id="J2c-dv-aDo"/>
                 <outlet property="fansCount" destination="nI7-Zj-cP3" id="ph8-6G-8dN"/>
                 <outlet property="fansGroupColorLayer" destination="Mgy-O1-NXO" id="znY-oG-i7Y"/>
                 <outlet property="finishCourse" destination="WdG-ah-bQ7" id="kTh-1z-CZK"/>
@@ -322,11 +330,12 @@
                 <outlet property="userAvatar" destination="3JZ-4N-xLY" id="bQ4-YD-XNr"/>
                 <outlet property="viperImage" destination="O4w-5f-Puh" id="deL-wn-pHv"/>
             </connections>
-            <point key="canvasLocation" x="100.00000000000001" y="55.580357142857139"/>
+            <point key="canvasLocation" x="100.00000000000001" y="60.267857142857139"/>
         </view>
         <tapGestureRecognizer id="pU3-So-ynT"/>
     </objects>
     <resources>
+        <image name="mine_auth_img" width="49" height="18"/>
         <image name="mine_fansGroup_icon" width="16" height="16"/>
         <image name="mine_instrument_logo" width="44" height="16"/>
         <image name="mine_style_icon" width="16" height="16"/>

+ 4 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m

@@ -59,9 +59,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
 
         self.tableView.dataSource = self;
@@ -74,11 +74,11 @@
         self.chooseMonth = [self.dateFormatter stringFromDate:currentDate];
         
         UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        headView.backgroundColor = HexRGB(0xf6f8f9);
+        headView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableHeaderView = headView;
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"AccompanyCourseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyCourseCell"];

+ 3 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageMienBodyView.m

@@ -41,9 +41,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStyleGrouped];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.showsVerticalScrollIndicator = NO;
         self.tableView.rowHeight = UITableViewAutomaticDimension;
         self.tableView.estimatedRowHeight = 200.0f;
@@ -53,7 +53,7 @@
         [self addSubview:self.tableView];
         
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        bottomView.backgroundColor = HexRGB(0xf8f9fc);
         self.tableView.tableFooterView = bottomView;
         
         [self.tableView registerNib:[UINib nibWithNibName:@"MineIntroduceCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MineIntroduceCell"];

+ 7 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTipsView/MineCourseSettingView.m

@@ -9,6 +9,7 @@
 #import "UIView+KSLayer.h"
 
 @interface MineCourseSettingView ()
+@property (weak, nonatomic) IBOutlet UIView *colorView;
 
 @property (weak, nonatomic) IBOutlet UIImageView *imageView;
 
@@ -21,7 +22,8 @@
 @implementation MineCourseSettingView
 - (void)awakeFromNib {
     [super awakeFromNib];
-    CAGradientLayer *color = [UIView createGradientLayerFromColor:HexRGB(0x2DC7AA) startPoint:CGPointMake(0.57, 1) endColor:HexRGB(0x51E1D0) endPoint:CGPointMake(0.57, 0) bounds:CGRectMake(0, 0, KPortraitWidth - 14 * 2, 36)];
+    CAGradientLayer *colorLayer = [UIView createGradientLayerFromColor:HexRGB(0x2DC7AA) startPoint:CGPointMake(0.57, 1) endColor:HexRGB(0x51E1D0) endPoint:CGPointMake(0.57, 0) bounds:CGRectMake(0, 0, KPortraitWidth - 14 * 2, 36)];
+    [self.colorView.layer addSublayer:colorLayer];
 }
 
 + (instancetype)shareInstance {
@@ -48,14 +50,14 @@
     switch (type) {
         case COURSE_TYPE_VIP:
         {
-            imgName = @"";
-            descTitle = @"";
+            imgName = @"mine_info_setting_vip";
+            descTitle = @"设置VIP定制课";
         }
             break;
         case COURSE_TYPE_ACCOMPANY:
         {
-            imgName = @"";
-            descTitle = @"";
+            imgName = @"mine_info_setting_accompany";
+            descTitle = @"设置VIP定制课";
         }
             break;
         case COURSE_TYPE_LIVE:

+ 1 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTipsView/MineCourseSettingView.xib

@@ -74,6 +74,7 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
+                <outlet property="colorView" destination="puu-AO-T3t" id="t1P-Cd-NWR"/>
                 <outlet property="imageView" destination="8qf-NJ-Ua6" id="5ig-Sr-HjT"/>
                 <outlet property="nameLabel" destination="kXS-Ls-VGF" id="MQB-HL-9NM"/>
             </connections>

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTipsView/MinePageCourseTipsView.m

@@ -72,7 +72,7 @@
     NSMutableParagraphStyle *paragraphStyle = [self getParagraphStyleWithFont:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
     CGFloat baselineOffset = [self getBaseOffline:[UIFont systemFontOfSize:13.0f] lineHeight:22.0f];
     CGFloat labelHeight = [self.descMessage boundingRectWithSize:CGSizeMake(KPortraitWidth - 14 * 2 - 12 * 2, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSParagraphStyleAttributeName:paragraphStyle, NSBaselineOffsetAttributeName:@(baselineOffset),NSFontAttributeName:[UIFont systemFontOfSize:13.0f]} context:nil].size.height + 1;
-    return labelHeight + 40 + 49;
+    return labelHeight + 40 + 49 + 12;
 }
 /*
 // Only override drawRect: if you perform custom drawing.

+ 10 - 8
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTipsView/MinePageCourseTipsView.xib

@@ -15,17 +15,17 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ghq-sd-7Ae">
-                    <rect key="frame" x="14" y="0.0" width="365" height="206"/>
+                    <rect key="frame" x="14" y="0.0" width="365" height="194"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NeF-a8-IRP">
-                            <rect key="frame" x="10" y="167" width="345" height="1"/>
+                            <rect key="frame" x="10" y="155" width="345" height="1"/>
                             <color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="1" id="NQD-vh-1jd"/>
                             </constraints>
                         </view>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bLS-om-ATf">
-                            <rect key="frame" x="142.66666666666666" y="168" width="80" height="38"/>
+                            <rect key="frame" x="142.66666666666666" y="156" width="80" height="38"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="80" id="syR-qq-Uo7"/>
                             </constraints>
@@ -38,9 +38,8 @@
                                 <action selector="stopRemind:" destination="iN0-l3-epB" eventType="touchUpInside" id="cKc-U3-Vnu"/>
                             </connections>
                         </button>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="c9f-6q-2WA">
-                            <rect key="frame" x="10" y="14" width="18" height="16"/>
-                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="minePage_course_introduce" translatesAutoresizingMaskIntoConstraints="NO" id="c9f-6q-2WA">
+                            <rect key="frame" x="12" y="12" width="18" height="18"/>
                         </imageView>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="什么是VIP定制课程?" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Q0-yd-dNR">
                             <rect key="frame" x="36" y="12" width="139.33333333333334" height="18"/>
@@ -52,7 +51,7 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="VIP定制课程是客制化的1v1线上课程。老师根据您的学习需求和希望达到的成果定制教学内容。为了提高您的上课体验,约课前请与老师充分沟通,达成一致后课根据老师的空闲时间约定上课时间。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eFF-DY-ZFh">
-                            <rect key="frame" x="12" y="40" width="341" height="117"/>
+                            <rect key="frame" x="12" y="40" width="341" height="105"/>
                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                             <color key="textColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
@@ -82,9 +81,11 @@
                         <constraint firstItem="eFF-DY-ZFh" firstAttribute="top" secondItem="4Q0-yd-dNR" secondAttribute="bottom" constant="10" id="IE9-Bm-7uy"/>
                         <constraint firstItem="NeF-a8-IRP" firstAttribute="top" secondItem="eFF-DY-ZFh" secondAttribute="bottom" constant="10" id="NkE-jh-KXZ"/>
                         <constraint firstAttribute="trailing" secondItem="NeF-a8-IRP" secondAttribute="trailing" constant="10" id="YCy-uS-ihJ"/>
+                        <constraint firstItem="c9f-6q-2WA" firstAttribute="top" secondItem="Ghq-sd-7Ae" secondAttribute="top" constant="12" id="eTG-xS-kr8"/>
                         <constraint firstItem="eFF-DY-ZFh" firstAttribute="leading" secondItem="Ghq-sd-7Ae" secondAttribute="leading" constant="12" id="ebJ-Jd-xkY"/>
                         <constraint firstAttribute="trailing" secondItem="eFF-DY-ZFh" secondAttribute="trailing" constant="12" id="h87-4l-ehf"/>
                         <constraint firstItem="4Q0-yd-dNR" firstAttribute="top" secondItem="Ghq-sd-7Ae" secondAttribute="top" constant="12" id="iBQ-v3-CEa"/>
+                        <constraint firstItem="c9f-6q-2WA" firstAttribute="leading" secondItem="Ghq-sd-7Ae" secondAttribute="leading" constant="12" id="lSV-yF-MFQ"/>
                         <constraint firstItem="NeF-a8-IRP" firstAttribute="leading" secondItem="Ghq-sd-7Ae" secondAttribute="leading" constant="10" id="m9C-zp-pxt"/>
                         <constraint firstAttribute="trailing" secondItem="Jx4-ce-Wpo" secondAttribute="trailing" id="ml6-Aq-UZV"/>
                         <constraint firstItem="bLS-om-ATf" firstAttribute="centerX" secondItem="Ghq-sd-7Ae" secondAttribute="centerX" id="qmr-qq-Ffe"/>
@@ -103,7 +104,7 @@
                 <constraint firstAttribute="trailing" secondItem="Ghq-sd-7Ae" secondAttribute="trailing" constant="14" id="CLA-gm-zMa"/>
                 <constraint firstItem="Ghq-sd-7Ae" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="ETF-tF-GvB"/>
                 <constraint firstItem="Ghq-sd-7Ae" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="KsE-ae-S0f"/>
-                <constraint firstAttribute="bottom" secondItem="Ghq-sd-7Ae" secondAttribute="bottom" id="yyT-Co-Ngg"/>
+                <constraint firstAttribute="bottom" secondItem="Ghq-sd-7Ae" secondAttribute="bottom" constant="12" id="yyT-Co-Ngg"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
@@ -118,6 +119,7 @@
     </objects>
     <resources>
         <image name="course_tips_del" width="14" height="14"/>
+        <image name="minePage_course_introduce" width="18" height="18"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

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

@@ -41,12 +41,12 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = HexRGB(0xf8f9fc);
         UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
         layout.sectionInset = UIEdgeInsetsMake(12, 14, 12, 14);
         
         self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) collectionViewLayout:layout];
-        self.collectionView.backgroundColor = HexRGB(0xf6f8f9);
+        self.collectionView.backgroundColor = HexRGB(0xf8f9fc);
         self.collectionView.delegate = self;
         self.collectionView.dataSource = self;
         self.collectionView.showsVerticalScrollIndicator = NO;

+ 23 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramHeadView.h

@@ -0,0 +1,23 @@
+//
+//  MineVipProgramHeadView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef void(^ProgramAddCallback)(void);
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MineVipProgramHeadView : UIView
+
++ (instancetype)sharedIntance;
+
+- (void)addActionCallback:(ProgramAddCallback)callback;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 47 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramHeadView.m

@@ -0,0 +1,47 @@
+//
+//  MineVipProgramHeadView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import "MineVipProgramHeadView.h"
+
+@interface MineVipProgramHeadView ()
+
+@property (nonatomic, copy) ProgramAddCallback callback;
+
+@end
+
+@implementation MineVipProgramHeadView
+
++ (instancetype)sharedIntance {
+    MineVipProgramHeadView *view = [[[NSBundle mainBundle] loadNibNamed:@"MineVipProgramHeadView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)addActionCallback:(ProgramAddCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)buttonAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
+
++ (CGFloat)getViewHeight {
+    return 60.0f;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 84 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramHeadView.xib

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MineVipProgramHeadView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="60"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YOi-sS-XcU">
+                    <rect key="frame" x="14" y="12" width="365" height="36"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="program_add" translatesAutoresizingMaskIntoConstraints="NO" id="xFx-Hj-HNS">
+                            <rect key="frame" x="125.66666666666666" y="8" width="20" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="20" id="3Pd-s7-jrd"/>
+                                <constraint firstAttribute="width" constant="20" id="Kr8-3k-aSA"/>
+                            </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="bRa-gO-rCP">
+                            <rect key="frame" x="149.66666666666666" y="9" width="90" height="18"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GI2-Z1-rJ5">
+                            <rect key="frame" x="0.0" y="0.0" width="365" height="36"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="buttonAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="eCH-Ed-nCw"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstItem="GI2-Z1-rJ5" firstAttribute="top" secondItem="YOi-sS-XcU" secondAttribute="top" id="9PC-k7-r16"/>
+                        <constraint firstItem="bRa-gO-rCP" firstAttribute="centerY" secondItem="YOi-sS-XcU" secondAttribute="centerY" id="Mwg-CX-vgn"/>
+                        <constraint firstItem="GI2-Z1-rJ5" firstAttribute="leading" secondItem="YOi-sS-XcU" secondAttribute="leading" id="QA1-Di-Bm1"/>
+                        <constraint firstItem="bRa-gO-rCP" firstAttribute="leading" secondItem="xFx-Hj-HNS" secondAttribute="trailing" constant="4" id="Zae-hf-E61"/>
+                        <constraint firstAttribute="trailing" secondItem="GI2-Z1-rJ5" secondAttribute="trailing" id="bch-1l-OXd"/>
+                        <constraint firstItem="xFx-Hj-HNS" firstAttribute="centerY" secondItem="YOi-sS-XcU" secondAttribute="centerY" id="dj0-G5-e7Q"/>
+                        <constraint firstItem="bRa-gO-rCP" firstAttribute="centerX" secondItem="YOi-sS-XcU" secondAttribute="centerX" constant="12" id="laU-fs-rZq"/>
+                        <constraint firstAttribute="bottom" secondItem="GI2-Z1-rJ5" secondAttribute="bottom" id="nEP-Vo-kIY"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="6"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                            <real key="value" value="1"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
+                            <color key="value" red="0.8901960784313725" green="0.93725490196078431" blue="0.92941176470588238" alpha="1" colorSpace="calibratedRGB"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="YOi-sS-XcU" secondAttribute="bottom" constant="12" id="Q2Y-Rw-TBw"/>
+                <constraint firstItem="YOi-sS-XcU" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="12" id="bTp-6h-BwM"/>
+                <constraint firstAttribute="trailing" secondItem="YOi-sS-XcU" secondAttribute="trailing" constant="14" id="lPv-6M-8nh"/>
+                <constraint firstItem="YOi-sS-XcU" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="qU9-GC-DbY"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="58.778625954198468" y="70.422535211267615"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="program_add" width="21" height="20"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 29 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramMainView.h

@@ -0,0 +1,29 @@
+//
+//  MineVipProgramMainView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSInteger, PROGRAM_SETTING) {
+    PROGRAM_SETTING_CANEL, // 取消
+    PROGRAM_SETTING_SURE,  // 确认
+};
+
+typedef void(^ProgramSettingCallback)(PROGRAM_SETTING type, NSString * _Nullable subjectId, NSString * _Nullable duration, NSString * _Nullable priceNum);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MineVipProgramMainView : UIView
+
++ (instancetype)sharedInstanace;
+
+- (void)configSubjectNameArray:(NSMutableArray *)subjectNameArray subjectIds:(NSMutableArray *)subjectIdArray durationArray:(NSMutableArray *)timesArray minPrice:(NSInteger)minPrice maxPrice:(NSInteger)maxPrice;
+
+- (void)settingCallback:(ProgramSettingCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 102 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramMainView.m

@@ -0,0 +1,102 @@
+//
+//  MineVipProgramMainView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import "MineVipProgramMainView.h"
+
+@interface MineVipProgramMainView ()<UITextFieldDelegate>
+
+@property (weak, nonatomic) IBOutlet UIView *subjectContainer;
+
+@property (weak, nonatomic) IBOutlet UIView *durationContainer;
+@property (weak, nonatomic) IBOutlet UITextField *priceTextField;
+
+@property (nonatomic, copy) ProgramSettingCallback callback;
+
+@property (nonatomic, strong) NSString *subjectId;
+
+@property (nonatomic, strong) NSString *duration;
+
+@property (nonatomic, strong) NSString *price;
+
+@property (nonatomic, assign) NSInteger minPrice;
+
+@property (nonatomic, assign) NSInteger maxPrice;
+
+@property (nonatomic, strong) NSMutableArray *subjectNameArray;
+
+@property (nonatomic, strong) NSMutableArray *subjectIdArray;
+
+@property (nonatomic, strong) NSMutableArray *timesArray;
+
+@end
+
+@implementation MineVipProgramMainView
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.priceTextField.delegate = self;
+}
+
++ (instancetype)sharedInstanace {
+    MineVipProgramMainView *view = [[[NSBundle mainBundle] loadNibNamed:@"MineVipProgramMainView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configSubjectNameArray:(NSMutableArray *)subjectNameArray subjectIds:(NSMutableArray *)subjectIdArray durationArray:(NSMutableArray *)timesArray minPrice:(NSInteger)minPrice maxPrice:(NSInteger)maxPrice {
+    self.subjectNameArray = subjectNameArray;
+    self.subjectIdArray = subjectIdArray;
+    self.timesArray = timesArray;
+    self.minPrice = minPrice;
+    self.maxPrice = maxPrice;
+    
+    NSString *descString = [NSString stringWithFormat:@"%zd~%zd", minPrice, maxPrice];
+    self.priceTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:descString attributes:@{NSForegroundColorAttributeName:HexRGB(0x999999)}];
+    [self evaluateButton];
+}
+
+- (void)evaluateButton {
+    
+}
+
+- (void)settingCallback:(ProgramSettingCallback)callback {
+    if (self.callback) {
+        self.callback = callback;
+    }
+}
+
+
+- (IBAction)cancelAction:(id)sender {
+    
+    if (self.callback) {
+        self.callback(PROGRAM_SETTING_CANEL, nil, nil, nil);
+    }
+}
+
+- (IBAction)sureButtonClick:(id)sender {
+    [self endEditing:YES];
+    if ([NSString isEmptyString:self.price]) {
+        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"请设置课时单价"];
+        return;
+    }
+    if (self.callback) {
+        self.callback(PROGRAM_SETTING_SURE, self.subjectId, self.duration, self.price);
+    }
+}
+
+- (void)textFieldDidEndEditing:(UITextField *)textField {
+    
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 410 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramMainView.xib

@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MineVipProgramMainView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="956"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AOD-2f-maw">
+                    <rect key="frame" x="0.0" y="413" width="393" height="543"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="添加课程方案" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4HD-ko-BI7">
+                            <rect key="frame" x="142.66666666666666" y="18" width="108" height="22"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="22" id="Osy-fa-r0K"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_tips_del" translatesAutoresizingMaskIntoConstraints="NO" id="c4f-Ul-Gwx">
+                            <rect key="frame" x="367" y="22" width="14" height="14"/>
+                        </imageView>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z6O-VU-4de">
+                            <rect key="frame" x="14" y="58" width="365" height="105"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_subject_icon" translatesAutoresizingMaskIntoConstraints="NO" id="b7C-5p-GT4">
+                                    <rect key="frame" x="12" y="14" width="18" height="18"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="18" id="5po-dF-EoN"/>
+                                        <constraint firstAttribute="height" constant="18" id="Eu1-sA-5Yf"/>
+                                    </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="aw0-OU-3we">
+                                    <rect key="frame" x="34" y="12" width="64" height="22"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="22" id="g7E-F6-hWP"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4nG-HF-YhK">
+                                    <rect key="frame" x="0.0" y="43" width="365" height="50"/>
+                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="50" id="yJD-Eb-G9D"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="4nG-HF-YhK" firstAttribute="top" secondItem="Z6O-VU-4de" secondAttribute="top" constant="43" id="4ky-DX-JYB"/>
+                                <constraint firstItem="4nG-HF-YhK" firstAttribute="leading" secondItem="Z6O-VU-4de" secondAttribute="leading" id="7KV-0d-07a"/>
+                                <constraint firstItem="b7C-5p-GT4" firstAttribute="leading" secondItem="Z6O-VU-4de" secondAttribute="leading" constant="12" id="M5w-z5-cLm"/>
+                                <constraint firstAttribute="trailing" secondItem="4nG-HF-YhK" secondAttribute="trailing" id="PqP-XC-C0e"/>
+                                <constraint firstAttribute="bottom" secondItem="4nG-HF-YhK" secondAttribute="bottom" constant="12" id="QGY-BH-fci"/>
+                                <constraint firstItem="aw0-OU-3we" firstAttribute="leading" secondItem="b7C-5p-GT4" secondAttribute="trailing" constant="4" id="gQI-Yy-Tpm"/>
+                                <constraint firstItem="aw0-OU-3we" firstAttribute="top" secondItem="Z6O-VU-4de" secondAttribute="top" constant="12" id="opT-Ag-KTU"/>
+                                <constraint firstItem="b7C-5p-GT4" firstAttribute="top" secondItem="Z6O-VU-4de" secondAttribute="top" constant="14" id="sb7-R2-6Ko"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="10"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="t4K-Qm-dNe">
+                            <rect key="frame" x="14" y="175" width="365" height="81"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_duration_icon" translatesAutoresizingMaskIntoConstraints="NO" id="d2B-4E-Ya0">
+                                    <rect key="frame" x="12" y="14" width="18" height="18"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="18" id="BcM-yj-iXl"/>
+                                        <constraint firstAttribute="height" constant="18" id="bVd-Tc-5pB"/>
+                                    </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="xKe-mT-32D">
+                                    <rect key="frame" x="34" y="12" width="64" height="22"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="22" id="0rU-af-ldb"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rxq-ZU-nkf">
+                                    <rect key="frame" x="0.0" y="43" width="365" height="26"/>
+                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="26" id="ooA-7L-hHZ"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="rxq-ZU-nkf" firstAttribute="top" secondItem="t4K-Qm-dNe" secondAttribute="top" constant="43" id="319-HJ-K4z"/>
+                                <constraint firstAttribute="trailing" secondItem="rxq-ZU-nkf" secondAttribute="trailing" id="CWf-5t-9Z2"/>
+                                <constraint firstAttribute="bottom" secondItem="rxq-ZU-nkf" secondAttribute="bottom" constant="12" id="Hrp-jo-gE8"/>
+                                <constraint firstItem="d2B-4E-Ya0" firstAttribute="leading" secondItem="t4K-Qm-dNe" secondAttribute="leading" constant="12" id="QVz-UO-VRd"/>
+                                <constraint firstItem="d2B-4E-Ya0" firstAttribute="top" secondItem="t4K-Qm-dNe" secondAttribute="top" constant="14" id="ebA-x1-A8E"/>
+                                <constraint firstItem="rxq-ZU-nkf" firstAttribute="leading" secondItem="t4K-Qm-dNe" secondAttribute="leading" id="goN-Nf-cnk"/>
+                                <constraint firstItem="xKe-mT-32D" firstAttribute="leading" secondItem="d2B-4E-Ya0" secondAttribute="trailing" constant="4" id="t7q-sg-Wir"/>
+                                <constraint firstItem="xKe-mT-32D" firstAttribute="top" secondItem="t4K-Qm-dNe" secondAttribute="top" constant="12" id="xLe-9b-yK2"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="10"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gBS-cn-QZe">
+                            <rect key="frame" x="14" y="268" width="365" height="81"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_price_icon" translatesAutoresizingMaskIntoConstraints="NO" id="VMb-PP-5Gb">
+                                    <rect key="frame" x="12" y="14" width="18" height="18"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="18" id="LPQ-KM-zeo"/>
+                                        <constraint firstAttribute="width" constant="18" id="csR-tq-aqC"/>
+                                    </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="vK5-qa-MOt">
+                                    <rect key="frame" x="34" y="12" width="64" height="22"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="22" id="DMB-0j-IVq"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="200~500" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="79J-f2-acm">
+                                    <rect key="frame" x="12" y="43" width="75" height="26"/>
+                                    <color key="backgroundColor" red="0.97254901960784312" green="0.97254901960784312" blue="0.97254901960784312" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="26" id="Jfc-fe-aBf"/>
+                                        <constraint firstAttribute="width" constant="75" id="T3J-gf-Vcm"/>
+                                    </constraints>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="4"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                </textField>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="元" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nm5-9Z-1Nh">
+                                    <rect key="frame" x="100" y="46" width="16" height="20"/>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="VMb-PP-5Gb" firstAttribute="top" secondItem="gBS-cn-QZe" secondAttribute="top" constant="14" id="59c-F4-feV"/>
+                                <constraint firstItem="vK5-qa-MOt" firstAttribute="top" secondItem="gBS-cn-QZe" secondAttribute="top" constant="12" id="BtH-EM-rsc"/>
+                                <constraint firstItem="vK5-qa-MOt" firstAttribute="leading" secondItem="VMb-PP-5Gb" secondAttribute="trailing" constant="4" id="Bze-LU-S4C"/>
+                                <constraint firstItem="Nm5-9Z-1Nh" firstAttribute="centerY" secondItem="79J-f2-acm" secondAttribute="centerY" id="Erw-mp-9Xk"/>
+                                <constraint firstItem="79J-f2-acm" firstAttribute="top" secondItem="VMb-PP-5Gb" secondAttribute="bottom" constant="11" id="HYG-sL-AYR"/>
+                                <constraint firstItem="VMb-PP-5Gb" firstAttribute="leading" secondItem="gBS-cn-QZe" secondAttribute="leading" constant="12" id="Wuq-xr-sqJ"/>
+                                <constraint firstAttribute="height" constant="81" id="YWC-3L-07Y"/>
+                                <constraint firstItem="79J-f2-acm" firstAttribute="leading" secondItem="gBS-cn-QZe" secondAttribute="leading" constant="12" id="n8Y-YQ-6i3"/>
+                                <constraint firstItem="Nm5-9Z-1Nh" firstAttribute="leading" secondItem="79J-f2-acm" secondAttribute="trailing" constant="13" id="yVA-6l-kKP"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="10"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </view>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HZy-FP-oUi">
+                            <rect key="frame" x="28" y="469" width="337" height="44"/>
+                            <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="44" id="zXM-Gn-Lug"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="确认"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="22"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="sureButtonClick:" destination="iN0-l3-epB" eventType="touchUpInside" id="ELL-cG-ax9"/>
+                            </connections>
+                        </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VEl-dh-zDQ">
+                            <rect key="frame" x="14" y="361" width="365" height="24"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="24" id="77a-du-4fi"/>
+                            </constraints>
+                            <attributedString key="attributedText">
+                                <fragment content="扣除应缴税金和平台服务费后">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                            </attributedString>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ob3-72-Iij">
+                            <rect key="frame" x="14" y="385" width="365" height="24"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="24" id="H1o-Ny-Lwz"/>
+                            </constraints>
+                            <attributedString key="attributedText">
+                                <fragment content="您的课程预计收入为:单课时">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name=".PingFangUITextSC-Regular"/>
+                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content=" ">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content="224.00">
+                                    <attributes>
+                                        <color key="NSColor" red="1" green="0.30588235294117649" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content=" ">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content="元">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name=".PingFangUITextSC-Regular"/>
+                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content="/">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content="节">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name=".PingFangUITextSC-Regular"/>
+                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                            </attributedString>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JtV-Fm-8Zn">
+                            <rect key="frame" x="14" y="409" width="365" height="24"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="24" id="0kZ-z0-Cm5"/>
+                            </constraints>
+                            <attributedString key="attributedText">
+                                <fragment content="实际课程收入按学生实际付款金额计算">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                            </attributedString>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8cf-Hr-8hz">
+                            <rect key="frame" x="14" y="433" width="365" height="24"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="24" id="8qD-eD-KIP"/>
+                            </constraints>
+                            <attributedString key="attributedText">
+                                <fragment content="您的课程收入将在课程结束">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name="PingFangSC-Regular"/>
+                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content=" ">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name="PingFangSC-Regular"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content="2">
+                                    <attributes>
+                                        <color key="NSColor" red="1" green="0.30588235294117649" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content=" ">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name="PingFangSC-Regular"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                                <fragment content="天后结算到您的账户">
+                                    <attributes>
+                                        <color key="NSColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <font key="NSFont" size="14" name="PingFangSC-Regular"/>
+                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                    </attributes>
+                                </fragment>
+                            </attributedString>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="M6Q-RC-90f">
+                            <rect key="frame" x="349" y="0.0" width="44" height="58"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="44" id="HCO-k3-nfU"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="cancelAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="q8r-dV-O3i"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" red="0.97254901960784312" green="0.97647058823529409" blue="0.9882352941176471" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="VEl-dh-zDQ" secondAttribute="trailing" constant="14" id="0Oe-OS-Uxx"/>
+                        <constraint firstAttribute="trailing" secondItem="c4f-Ul-Gwx" secondAttribute="trailing" constant="12" id="0i4-7j-CUf"/>
+                        <constraint firstAttribute="trailing" secondItem="Z6O-VU-4de" secondAttribute="trailing" constant="14" id="27f-ig-the"/>
+                        <constraint firstItem="Ob3-72-Iij" firstAttribute="leading" secondItem="AOD-2f-maw" secondAttribute="leading" constant="14" id="2bm-nq-gaN"/>
+                        <constraint firstAttribute="trailing" secondItem="HZy-FP-oUi" secondAttribute="trailing" constant="28" id="3VL-Ip-h8E"/>
+                        <constraint firstItem="gBS-cn-QZe" firstAttribute="top" secondItem="t4K-Qm-dNe" secondAttribute="bottom" constant="12" id="89c-fY-RMD"/>
+                        <constraint firstItem="8cf-Hr-8hz" firstAttribute="top" secondItem="JtV-Fm-8Zn" secondAttribute="bottom" id="B0I-qm-xGg"/>
+                        <constraint firstAttribute="trailing" secondItem="t4K-Qm-dNe" secondAttribute="trailing" constant="14" id="C7K-GU-Xc0"/>
+                        <constraint firstAttribute="trailing" secondItem="JtV-Fm-8Zn" secondAttribute="trailing" constant="14" id="DEU-17-qda"/>
+                        <constraint firstItem="8cf-Hr-8hz" firstAttribute="leading" secondItem="AOD-2f-maw" secondAttribute="leading" constant="14" id="Fhd-hY-e57"/>
+                        <constraint firstItem="t4K-Qm-dNe" firstAttribute="top" secondItem="Z6O-VU-4de" secondAttribute="bottom" constant="12" id="GlB-qd-Izq"/>
+                        <constraint firstItem="JtV-Fm-8Zn" firstAttribute="leading" secondItem="AOD-2f-maw" secondAttribute="leading" constant="14" id="HJ9-nE-bfI"/>
+                        <constraint firstAttribute="trailing" secondItem="Ob3-72-Iij" secondAttribute="trailing" constant="14" id="LcB-LY-bdL"/>
+                        <constraint firstItem="t4K-Qm-dNe" firstAttribute="leading" secondItem="AOD-2f-maw" secondAttribute="leading" constant="14" id="Rk1-Wb-6CP"/>
+                        <constraint firstItem="M6Q-RC-90f" firstAttribute="top" secondItem="AOD-2f-maw" secondAttribute="top" id="SkD-eP-SMJ"/>
+                        <constraint firstItem="Z6O-VU-4de" firstAttribute="leading" secondItem="AOD-2f-maw" secondAttribute="leading" constant="14" id="Xnz-Vz-KKV"/>
+                        <constraint firstAttribute="trailing" secondItem="gBS-cn-QZe" secondAttribute="trailing" constant="14" id="YiI-KQ-jVg"/>
+                        <constraint firstItem="c4f-Ul-Gwx" firstAttribute="top" secondItem="AOD-2f-maw" secondAttribute="top" constant="22" id="aqt-qB-7ct"/>
+                        <constraint firstAttribute="trailing" secondItem="M6Q-RC-90f" secondAttribute="trailing" id="dGe-lZ-v59"/>
+                        <constraint firstItem="gBS-cn-QZe" firstAttribute="leading" secondItem="AOD-2f-maw" secondAttribute="leading" constant="14" id="dpj-t1-1MK"/>
+                        <constraint firstItem="JtV-Fm-8Zn" firstAttribute="top" secondItem="Ob3-72-Iij" secondAttribute="bottom" id="fJG-5y-Zk4"/>
+                        <constraint firstAttribute="trailing" secondItem="8cf-Hr-8hz" secondAttribute="trailing" constant="14" id="fnx-7y-SEd"/>
+                        <constraint firstItem="Ob3-72-Iij" firstAttribute="top" secondItem="VEl-dh-zDQ" secondAttribute="bottom" id="fzy-zS-57e"/>
+                        <constraint firstItem="HZy-FP-oUi" firstAttribute="leading" secondItem="AOD-2f-maw" secondAttribute="leading" constant="28" id="j6e-1M-GVM"/>
+                        <constraint firstAttribute="bottom" secondItem="HZy-FP-oUi" secondAttribute="bottom" constant="30" id="lya-tJ-9dX"/>
+                        <constraint firstItem="VEl-dh-zDQ" firstAttribute="top" secondItem="gBS-cn-QZe" secondAttribute="bottom" constant="12" id="oSa-6A-gfB"/>
+                        <constraint firstItem="HZy-FP-oUi" firstAttribute="top" secondItem="8cf-Hr-8hz" secondAttribute="bottom" constant="12" id="rPe-zz-IsM"/>
+                        <constraint firstItem="VEl-dh-zDQ" firstAttribute="leading" secondItem="AOD-2f-maw" secondAttribute="leading" constant="14" id="tPw-d7-5Z0"/>
+                        <constraint firstItem="Z6O-VU-4de" firstAttribute="top" secondItem="4HD-ko-BI7" secondAttribute="bottom" constant="18" id="uFb-8o-fcq"/>
+                        <constraint firstItem="4HD-ko-BI7" firstAttribute="centerX" secondItem="AOD-2f-maw" secondAttribute="centerX" id="vba-GG-X7X"/>
+                        <constraint firstItem="4HD-ko-BI7" firstAttribute="top" secondItem="AOD-2f-maw" secondAttribute="top" constant="18" id="vlx-xK-Szh"/>
+                        <constraint firstItem="Z6O-VU-4de" firstAttribute="top" secondItem="M6Q-RC-90f" secondAttribute="bottom" id="z5V-eM-i4E"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="AOD-2f-maw" secondAttribute="trailing" id="GxI-kK-atw"/>
+                <constraint firstItem="AOD-2f-maw" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="I5g-WO-kXQ"/>
+                <constraint firstAttribute="bottom" secondItem="AOD-2f-maw" secondAttribute="bottom" id="z3f-2l-9Au"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="durationContainer" destination="rxq-ZU-nkf" id="hl9-ZB-u7j"/>
+                <outlet property="priceTextField" destination="79J-f2-acm" id="PKK-S3-wXS"/>
+                <outlet property="subjectContainer" destination="4nG-HF-YhK" id="N9y-lr-HBR"/>
+            </connections>
+            <point key="canvasLocation" x="58.778625954198468" y="56.338028169014088"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="course_duration_icon" width="18" height="18"/>
+        <image name="course_price_icon" width="18" height="18"/>
+        <image name="course_subject_icon" width="18" height="18"/>
+        <image name="course_tips_del" width="14" height="14"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 24 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/VIPProgramCreate/MineVipProgramNavView.h

@@ -0,0 +1,24 @@
+//
+//  MineVipProgramNavView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/11/15.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef void(^ProgramNavCallback)(BOOL isBack);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MineVipProgramNavView : UIView
+
++ (instancetype)sharedInstance;
+
+- (void)navActionCallback:(ProgramNavCallback)callback;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

部分文件因为文件数量过多而无法显示