Browse Source

1。收入改造:冻结收入和待入账收入
2.收入入参改造
3.我购买的曲谱

Steven 3 years ago
parent
commit
a504975898
72 changed files with 2099 additions and 827 deletions
  1. 22 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 72 104
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 38 8
      KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m
  5. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_down.imageset/sort_down@2x.png
  6. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_down.imageset/sort_down@3x.png
  7. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_up.imageset/sort_up@2x.png
  8. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Course/sort_up.imageset/sort_up@3x.png
  9. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_amount.imageset/Contents.json
  10. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_amount.imageset/freeze_amount@2x.png
  11. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_amount.imageset/freeze_amount@3x.png
  12. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_bg.imageset/Contents.json
  13. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_bg.imageset/freeze_bg@2x.png
  14. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_bg.imageset/freeze_bg@3x.png
  15. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_logo.imageset/Contents.json
  16. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_logo.imageset/freeze_logo@2x.png
  17. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_logo.imageset/freeze_logo@3x.png
  18. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_bg.imageset/Contents.json
  19. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_bg.imageset/waitIncome_bg@2x.png
  20. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_bg.imageset/waitIncome_bg@3x.png
  21. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_logo.imageset/Contents.json
  22. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_logo.imageset/waitIncome_logo@2x.png
  23. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_logo.imageset/waitIncome_logo@3x.png
  24. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_promotion.imageset/Contents.json
  25. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_promotion.imageset/mine_promotion@2x.png
  26. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_promotion.imageset/mine_promotion@3x.png
  27. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_record.imageset/Contents.json
  28. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_record.imageset/mine_record@2x.png
  29. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_record.imageset/mine_record@3x.png
  30. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/ShareMusic/share_group.imageset/Contents.json
  31. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/ShareMusic/share_group.imageset/share_group@2x.png
  32. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/ShareMusic/share_group.imageset/share_group@3x.png
  33. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSBaseWKWebViewController.m
  34. 16 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h
  35. 25 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m
  36. 3 7
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/View/CourseNavView.xib
  37. 56 61
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m
  38. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/FreezeListViewController.h
  39. 308 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/FreezeListViewController.m
  40. 19 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m
  41. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/NoRecordViewController.h
  42. 309 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/NoRecordViewController.m
  43. 18 9
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Model/IncomeListModel.h
  44. 120 57
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Model/IncomeListModel.m
  45. 4 8
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeCountTopView.xib
  46. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeHeaderView.h
  47. 12 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeHeaderView.m
  48. 143 30
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeHeaderView.xib
  49. 42 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeRecordHeadView.h
  50. 96 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeRecordHeadView.m
  51. 169 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeRecordHeadView.xib
  52. 7 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/MyIncomeListCell.m
  53. 6 10
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/WithDraw/View/CashRecordHeadView.xib
  54. 4 10
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/Controller/MyMusicViewController.m
  55. 61 31
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/View/MyMusicBodyView.m
  56. 4 16
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonSearchView.xib
  57. 30 49
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeHeadView.m
  58. 81 109
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeHeadView.xib
  59. 0 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.h
  60. 1 71
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.m
  61. 5 131
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.xib
  62. 1 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/KSHomeButton.xib
  63. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/PublicNoticeView.xib
  64. 24 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/LoginBodyView.m
  65. 32 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/LoginBodyView.xib
  66. 40 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Controller/MineViewController.m
  67. 3 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m
  68. 3 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.m
  69. 4 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.xib
  70. 3 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.h
  71. 12 30
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.m
  72. 90 62
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.xib

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

@@ -499,6 +499,10 @@
 		BC32E10C286AB31C001434DD /* KSPublicAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC32E10B286AB31C001434DD /* KSPublicAlertView.m */; };
 		BC32E10E286AB326001434DD /* KSPublicAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC32E10D286AB326001434DD /* KSPublicAlertView.xib */; };
 		BC332DB3284866BE005AEF95 /* KSOrderManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BC332DB1284866BE005AEF95 /* KSOrderManager.m */; };
+		BC3ACD942890D60800060E97 /* FreezeListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC3ACD932890D60800060E97 /* FreezeListViewController.m */; };
+		BC3ACD972890D61400060E97 /* NoRecordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC3ACD962890D61400060E97 /* NoRecordViewController.m */; };
+		BC3ACD9A2890D88600060E97 /* IncomeRecordHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC3ACD992890D88600060E97 /* IncomeRecordHeadView.m */; };
+		BC3ACD9C2890D88E00060E97 /* IncomeRecordHeadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC3ACD9B2890D88E00060E97 /* IncomeRecordHeadView.xib */; };
 		BC3DE082280D88670027DC0E /* EvaluateListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC3DE081280D88670027DC0E /* EvaluateListModel.m */; };
 		BC3DE088280D89E90027DC0E /* EvaluateDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC3DE087280D89E90027DC0E /* EvaluateDetailViewController.m */; };
 		BC4058922863028200111BC5 /* NotiferNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4058912863028200111BC5 /* NotiferNavView.m */; };
@@ -1833,6 +1837,13 @@
 		BC32E10D286AB326001434DD /* KSPublicAlertView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KSPublicAlertView.xib; sourceTree = "<group>"; };
 		BC332DB1284866BE005AEF95 /* KSOrderManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSOrderManager.m; sourceTree = "<group>"; };
 		BC332DB2284866BE005AEF95 /* KSOrderManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSOrderManager.h; sourceTree = "<group>"; };
+		BC3ACD922890D60800060E97 /* FreezeListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FreezeListViewController.h; sourceTree = "<group>"; };
+		BC3ACD932890D60800060E97 /* FreezeListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FreezeListViewController.m; sourceTree = "<group>"; };
+		BC3ACD952890D61400060E97 /* NoRecordViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NoRecordViewController.h; sourceTree = "<group>"; };
+		BC3ACD962890D61400060E97 /* NoRecordViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NoRecordViewController.m; sourceTree = "<group>"; };
+		BC3ACD982890D88600060E97 /* IncomeRecordHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IncomeRecordHeadView.h; sourceTree = "<group>"; };
+		BC3ACD992890D88600060E97 /* IncomeRecordHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IncomeRecordHeadView.m; sourceTree = "<group>"; };
+		BC3ACD9B2890D88E00060E97 /* IncomeRecordHeadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = IncomeRecordHeadView.xib; sourceTree = "<group>"; };
 		BC3DE080280D88660027DC0E /* EvaluateListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EvaluateListModel.h; sourceTree = "<group>"; };
 		BC3DE081280D88670027DC0E /* EvaluateListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EvaluateListModel.m; sourceTree = "<group>"; };
 		BC3DE086280D89E90027DC0E /* EvaluateDetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EvaluateDetailViewController.h; sourceTree = "<group>"; };
@@ -6227,6 +6238,10 @@
 			children = (
 				BCFE540E28178FF600AD6786 /* MyIncomeViewController.h */,
 				BCFE540F28178FF600AD6786 /* MyIncomeViewController.m */,
+				BC3ACD922890D60800060E97 /* FreezeListViewController.h */,
+				BC3ACD932890D60800060E97 /* FreezeListViewController.m */,
+				BC3ACD952890D61400060E97 /* NoRecordViewController.h */,
+				BC3ACD962890D61400060E97 /* NoRecordViewController.m */,
 				BC7CFFA32817E37300CAEB21 /* IncomeCountViewController.h */,
 				BC7CFFA42817E37300CAEB21 /* IncomeCountViewController.m */,
 			);
@@ -6264,6 +6279,9 @@
 				BC7CFFAD2817E6C900CAEB21 /* IncomeCountBottomView.h */,
 				BC7CFFAC2817E6C900CAEB21 /* IncomeCountBottomView.m */,
 				BC7CFFAB2817E6C800CAEB21 /* IncomeCountBottomView.xib */,
+				BC3ACD982890D88600060E97 /* IncomeRecordHeadView.h */,
+				BC3ACD992890D88600060E97 /* IncomeRecordHeadView.m */,
+				BC3ACD9B2890D88E00060E97 /* IncomeRecordHeadView.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -6551,6 +6569,7 @@
 				BC71D1F82887FDD40010F14B /* img_4.png in Resources */,
 				BC71D1FE2887FDD40010F14B /* img_19.png in Resources */,
 				277D431F27E999A000107DB7 /* ModifyBodyView.xib in Resources */,
+				BC3ACD9C2890D88E00060E97 /* IncomeRecordHeadView.xib in Resources */,
 				BC8B6E5D2856ED0600866917 /* README.txt in Resources */,
 				BC7CFFBB2817E9FC00CAEB21 /* stacked_line_chart.html in Resources */,
 				27A54CFE27E9BDC5007309A3 /* AboutUsBodyView.xib in Resources */,
@@ -7024,12 +7043,14 @@
 				BCC9F43427F69BD200647449 /* ApplySpeechMessage.m in Sources */,
 				2779331627E310AA0010E277 /* UIView+ShowProgress.m in Sources */,
 				BC7663092827C95200C91A1D /* KSUploadManager.m in Sources */,
+				BC3ACD972890D61400060E97 /* NoRecordViewController.m in Sources */,
 				BC4BCE7A2823AB6500522C8B /* KSAddressPickerView.m in Sources */,
 				BCC9F42727F69BD200647449 /* KSWhiteboardControl.m in Sources */,
 				277935E527E328C00010E277 /* CustomNavViewController.m in Sources */,
 				BC5EB5C42804087000B4A3B0 /* MyStyleBottomView.m in Sources */,
 				275E3DE027F467410010EC30 /* KSChatEmojiBoardView.m in Sources */,
 				BC542E4628407B3D00633781 /* UseBodyView.m in Sources */,
+				BC3ACD942890D60800060E97 /* FreezeListViewController.m in Sources */,
 				BCC9F44927F69BD200647449 /* ClassroomService.m in Sources */,
 				BC71D1A62887FDAC0010F14B /* LaunchAnimationViewController.m in Sources */,
 				277931CC27E30FC20010E277 /* KSGifRefreshFooter.m in Sources */,
@@ -7287,6 +7308,7 @@
 				277931C127E30FC20010E277 /* NSDictionary+KSSafe.m in Sources */,
 				277931FF27E30FC30010E277 /* GRCreateManager.m in Sources */,
 				2779326627E30FD80010E277 /* FSCalendarCell.m in Sources */,
+				BC3ACD9A2890D88600060E97 /* IncomeRecordHeadView.m in Sources */,
 				BC0A22B92847523E0065C1AB /* ClassMemberListView.m in Sources */,
 				2779329427E30FEB0010E277 /* UIImage+MSSScale.m in Sources */,
 				277931EF27E30FC20010E277 /* NSObject+Parse.m in Sources */,

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


+ 72 - 104
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -163,22 +163,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "46F327E8-372B-4494-B693-F95593F0689E"
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "128"
-            endingLineNumber = "128"
-            landmarkName = "-requestAccountDetail"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "71FA8FBF-57FD-4D5B-94AE-AB18D5ACCB52"
             shouldBeEnabled = "No"
             ignoreCount = "0"
@@ -195,22 +179,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "4E18CE7A-8F95-406E-B5E2-29C90A45F6E6"
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Mine/View/MineBodyView.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "78"
-            endingLineNumber = "78"
-            landmarkName = "-configMessage:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "4F949878-940E-44FC-92B7-3B9EF1FBAB66"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
@@ -626,22 +594,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "DA157C6E-1086-4E8C-A158-8DE61D47470C"
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Home/Music/View/MyMusicBodyView.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "114"
-            endingLineNumber = "114"
-            landmarkName = "-requestData"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "4462B807-FAFE-4E5A-9F0D-450B5EE4A345"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
@@ -697,8 +649,8 @@
             filePath = "KulexiuForTeacher/AppDelegate.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "639"
-            endingLineNumber = "639"
+            startingLineNumber = "659"
+            endingLineNumber = "659"
             landmarkName = "-getVCUserInfoDict:"
             landmarkType = "7">
          </BreakpointContent>
@@ -722,38 +674,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "B583B51E-D0FF-41C3-B3F9-016C955F7C5D"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/AppDelegate.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "622"
-            endingLineNumber = "622"
-            landmarkName = "-getVCUserInfoDict:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "B9E58B24-0565-4124-90AB-823797190B04"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/AppDelegate.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "579"
-            endingLineNumber = "579"
-            landmarkName = "-jpushNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "5F4760AC-7CFC-4AD6-9427-E86F62DA35FF"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
@@ -914,22 +834,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "276A2758-356E-4520-8B01-40EAB4848862"
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Home/View/HomeHeadView.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "83"
-            endingLineNumber = "83"
-            landmarkName = "-configMessage:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "451323DA-57B6-4068-B93A-B2EF3FD80E77"
             shouldBeEnabled = "No"
             ignoreCount = "0"
@@ -1033,8 +937,8 @@
             filePath = "KulexiuForTeacher/Module/Home/Controller/HomeViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "216"
-            endingLineNumber = "216"
+            startingLineNumber = "202"
+            endingLineNumber = "202"
             landmarkName = "-requestHomeButton"
             landmarkType = "7">
          </BreakpointContent>
@@ -1081,8 +985,8 @@
             filePath = "KulexiuForTeacher/Module/Mine/Controller/MineViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "72"
-            endingLineNumber = "72"
+            startingLineNumber = "95"
+            endingLineNumber = "95"
             landmarkName = "-requsetUserMessage"
             landmarkType = "7">
          </BreakpointContent>
@@ -1097,11 +1001,75 @@
             filePath = "KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "697"
-            endingLineNumber = "697"
+            startingLineNumber = "699"
+            endingLineNumber = "699"
             landmarkName = "-getAuthDisplayMessage"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "F53EA902-A58F-40F0-946C-E46164F7BDF9"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "159"
+            endingLineNumber = "159"
+            landmarkName = "-requestData"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "E327D65C-B4E3-47F6-AD66-979B5D08CC11"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/Music/View/MyMusicBodyView.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "115"
+            endingLineNumber = "115"
+            landmarkName = "-requestData"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "E24848CD-B197-43F2-AB07-87FA21999D23"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "152"
+            endingLineNumber = "152"
+            landmarkName = "-requestData"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "143F919F-54B6-4A0E-823C-C299A7EC9C48"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Common/Base/KSNetworkingManager.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1741"
+            endingLineNumber = "1741"
+            landmarkName = "+userAccountPageRequest:searchDate:bizType:postStatus:page:rows:success:faliure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 38 - 8
KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m

@@ -65,6 +65,11 @@
 
 @property (nonatomic, assign) BOOL hasCheckTrackAuth;
 
+/// 推送的数据
+@property (nonatomic, strong) NSMutableDictionary *notiferParm;
+
+@property (nonatomic, strong) NSURL *outlinkUrl;
+
 @end
 
 @implementation AppDelegate
@@ -163,7 +168,6 @@
     }
     else {
         NSString *token = UserDefault(TokenKey);
-        NSLog(@"------token  %@",token);
         if ([NSString isEmptyString:token]) { // 未登录
             LoginViewController *logonVC = [[LoginViewController alloc] init];
             CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:logonVC];
@@ -174,12 +178,20 @@
             [USER_MANAGER queryUserInfoConnectRongCloud:YES];
             [self initTableBar];
             self.window.rootViewController=_tabBarController;
+            
+            if (self.notiferParm) {
+                [self getVCUserInfoDict:self.notiferParm];
+            }
+            else if (self.outlinkUrl) {
+                [self handleOutLink:self.outlinkUrl];
+            }
         }
     }
 }
 
 - (void)registerSDK {
-    [WXApi registerApp:@"wx149a928c415c137a" universalLink:@"https://dev.colexiu.com/teacherApp/"];
+    NSString *universalLinkUrl = [NSString stringWithFormat:@"%@%@",hostURL,@"/teacherApp/"];
+    [WXApi registerApp:@"wx149a928c415c137a" universalLink:universalLinkUrl];
 }
 
 - (void)appTrackActionAuth {
@@ -213,7 +225,7 @@
     [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"755965096"  appSecret:@"8a4d2b76bbb2006e62e21ac9014435da" redirectURL:nil];
     
     // 自定义分享类型
-//    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+1 withPlatformIcon:[UIImage imageNamed:@"share_group"] withPlatformName:@"群聊"];
+    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+1 withPlatformIcon:[UIImage imageNamed:@"share_group"] withPlatformName:@"群聊"];
 //    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+2 withPlatformIcon:[UIImage imageNamed:@"share_savePic"] withPlatformName:@"保存图片"];
 }
 
@@ -575,8 +587,16 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
         // Fallback on earlier versions
     }
     completionHandler();  // 系统要求执行这个方法
-    NSMutableDictionary *parm = [NSMutableDictionary dictionaryWithDictionary:userInfo];
-    [self getVCUserInfoDict:parm];
+    
+    NSMutableDictionary *infoDict = [NSMutableDictionary dictionaryWithDictionary:userInfo];
+    UIViewController *vc = self.window.rootViewController;
+    
+    if ([vc isKindOfClass:[LaunchAnimationViewController class]]) {
+        self.notiferParm = [NSMutableDictionary dictionaryWithDictionary:infoDict];
+    }
+    else {
+        [self getVCUserInfoDict:infoDict];
+    }
 }
 
 #pragma mark 根据不同消息跳转不同界面
@@ -813,9 +833,7 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
         });
     }
 }
-
-#pragma mark ---- 处理外链
-- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
+- (BOOL)handleOutLink:(NSURL *)url {
     NSString *detailUrl = [url absoluteString];
     if ([detailUrl containsString:@"linkUrl="]) {
         NSString *linkUrl = [[detailUrl componentsSeparatedByString:@"linkUrl="] lastObject];
@@ -870,6 +888,18 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
     NSLog(@"%@", detailUrl);
     return YES;
 }
+#pragma mark ---- 处理外链
+- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
+    UIViewController *vc = self.window.rootViewController;
+    if ([vc isKindOfClass:[LaunchAnimationViewController class]]) {
+        self.outlinkUrl = url;
+        return YES;
+    }
+    else {
+        return [self handleOutLink:url];
+    }
+    
+}
 
 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
     NSString* webpageStr =  userActivity.webpageURL.absoluteString;

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


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


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


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


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

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_amount.imageset/freeze_amount@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_amount.imageset/freeze_amount@3x.png


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

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_bg.imageset/freeze_bg@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_bg.imageset/freeze_bg@3x.png


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

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_logo.imageset/freeze_logo@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/freeze_logo.imageset/freeze_logo@3x.png


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

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_bg.imageset/waitIncome_bg@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_bg.imageset/waitIncome_bg@3x.png


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

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_logo.imageset/waitIncome_logo@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/Income/waitIncome_logo.imageset/waitIncome_logo@3x.png


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

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

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


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


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

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

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


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


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/ShareMusic/share_group.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/ShareMusic/share_group.imageset/share_group@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/ShareMusic/share_group.imageset/share_group@3x.png


+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSBaseWKWebViewController.m

@@ -237,7 +237,7 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
     MJWeakSelf;
     [self.myWebView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id result, NSError *error) {
         NSString *oldUserAgent = result;
-        NSString *newUserAgent = [NSString stringWithFormat:@"%@ %@",oldUserAgent,@"COLEXIUAPPI"];
+        NSString *newUserAgent = [NSString stringWithFormat:@"%@ %@ %@",oldUserAgent,@"COLEXIUAPPI",@"COLEXIUTEACHER"];
         weakSelf.myWebView.customUserAgent = newUserAgent;
         [weakSelf loadRequest];;
     }];

+ 16 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h

@@ -547,6 +547,19 @@ NS_ASSUME_NONNULL_BEGIN
 + (void)videoLessonListRequest:(NSString *)post lessonSubject:(NSString *_Nullable)lessonSubject auditStatus:(NSString *)auditStatus pageNo:(NSInteger)pageNo pageSize:(NSInteger)pageSize success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 
 #pragma mark ---- 老师曲谱列表查询
+// /api-teacher/music/sheet/my
+
+/// 我订阅的曲谱
+/// @param get get
+/// @param page 分页
+/// @param rows 条数
+/// @param search 搜索
+/// @param subjectIds 声部
+/// @param success 成功
+/// @param faliure 失败
++ (void)myMusicListRequest:(NSString *)get page:(NSInteger)page rows:(NSInteger)rows search:(NSString *)search subjectIds:(NSString *)subjectIds success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
+
+
 // /api-teacher/music/sheet/list
 
 /// 曲谱列表查询
@@ -883,13 +896,15 @@ NS_ASSUME_NONNULL_BEGIN
 
 /// 我的收入
 /// @param post post
+/// @param paymentStatus IN、收入 OUT 支出
 /// @param searchDate 查询时间 yyyy-MM
 /// @param bizType PRACTICE LIVE MUSIC
+/// @param postStatus 入账状态 WAIT 待入账 FROZEN 冻结入账 RECORDED 已入账
 /// @param page 分页
 /// @param rows 条数
 /// @param success 成功
 /// @param faliure 失败
-+ (void)userAccountPageRequest:(NSString *)post searchDate:(NSString *)searchDate bizType:(NSString *)bizType page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
++ (void)userAccountPageRequest:(NSString *)post paymentStatus:(NSString *)paymentStatus searchDate:(NSString *)searchDate bizType:(NSString *)bizType postStatus:(NSString *)postStatus page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 
 // /api-teacher/userAccount/accountTotal
 

+ 25 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m

@@ -1149,6 +1149,26 @@
 }
 
 #pragma mark ---- 老师曲谱列表查询
+// /api-teacher/music/sheet/my
+
+/// 我订阅的曲谱
+/// @param get get
+/// @param page 分页
+/// @param rows 条数
+/// @param search 搜索
+/// @param subjectIds 声部
+/// @param success 成功
+/// @param faliure 失败
++ (void)myMusicListRequest:(NSString *)get page:(NSInteger)page rows:(NSInteger)rows search:(NSString *)search subjectIds:(NSString *)subjectIds success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
+    NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-teacher/music/sheet/my"];
+    NSMutableDictionary *parm = [NSMutableDictionary dictionary];
+    [parm setValue:@(page) forKey:@"page"];
+    [parm setValue:@(rows) forKey:@"rows"];
+    [parm setValue:search forKey:@"idAndName"];
+    [parm setValue:subjectIds forKey:@"subjectIds"];
+    [self request:get andWithUrl:url and:parm success:success faliure:faliure];
+}
+
 // /api-teacher/music/sheet/list
 
 /// 曲谱列表查询
@@ -1700,20 +1720,24 @@
 
 /// 我的收入
 /// @param post post
+/// @param paymentStatus IN、收入 OUT 支出
 /// @param searchDate 查询时间 yyyy-MM
 /// @param bizType PRACTICE LIVE MUSIC
+/// @param postStatus 入账状态 WAIT 待入账 FROZEN 冻结入账 RECORDED 已入账
 /// @param page 分页
 /// @param rows 条数
 /// @param success 成功
 /// @param faliure 失败
-+ (void)userAccountPageRequest:(NSString *)post searchDate:(NSString *)searchDate bizType:(NSString *)bizType page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
++ (void)userAccountPageRequest:(NSString *)post paymentStatus:(NSString *)paymentStatus searchDate:(NSString *)searchDate bizType:(NSString *)bizType postStatus:(NSString *)postStatus page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
     [self configRequestMethodJSON];
     NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-teacher/userAccount/page"];
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:bizType forKey:@"bizType"];
     [parm setValue:searchDate forKey:@"searchDate"];
+    [parm setValue:postStatus forKey:@"postStatus"];
     [parm setValue:@(page) forKey:@"page"];
     [parm setValue:@(rows) forKey:@"rows"];
+    [parm setValue:paymentStatus forKey:@"inOrOut"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];
 }
 

+ 3 - 7
KulexiuForTeacher/KulexiuForTeacher/Module/Course/View/CourseNavView.xib

@@ -30,14 +30,10 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="Aty-TD-8f6">
-                    <rect key="frame" x="258" y="69.5" width="8" height="6"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="6" id="FGW-RQ-sze"/>
-                        <constraint firstAttribute="width" constant="8" id="FOk-8J-bnb"/>
-                    </constraints>
+                    <rect key="frame" x="258" y="66.5" width="12" height="12"/>
                 </imageView>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cUO-Eu-mKa">
-                    <rect key="frame" x="161" y="52.5" width="105" height="40"/>
+                    <rect key="frame" x="161" y="52.5" width="109" height="40"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="40" id="rgA-0Q-cHA"/>
                     </constraints>
@@ -71,6 +67,6 @@
         </view>
     </objects>
     <resources>
-        <image name="sort_down" width="8" height="6"/>
+        <image name="sort_down" width="12" height="12"/>
     </resources>
 </document>

+ 56 - 61
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m

@@ -35,7 +35,7 @@
 #import "HomeMessageModel.h"
 #import "HomeButtonView.h"
 #import "KSHomeButton.h"
-#import "HomeNewHeadView.h"
+#import "HomeHeadView.h"
 
 #define BUTTONWIDTH (65)
 #define BUTTONHEIGHT (70)
@@ -43,7 +43,7 @@
 
 @property (nonatomic, strong) HomeNavView *navView;
 
-@property (nonatomic, strong) HomeNewHeadView *headView;
+@property (nonatomic, strong) HomeHeadView *headView;
 
 @property (nonatomic, strong) HomeBodyView *bodyView;
 
@@ -194,21 +194,7 @@
 
 
 - (void)refreshView {
-    [self.navView configMessage:self.mineInfo];
-    // 人数
-    [self displayCount:self.mineInfo.fansNum inView:self.headView.fansCountLabel];
-    [self displayCount:self.mineInfo.expTime inView:self.headView.finishCourseLabel];
-    [self displayCount:self.mineInfo.unExpTime inView:self.headView.unFinishCourseLabel];
-}
-
-- (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel {
-    if (count > 10000) {
-        double descNum = count / 10000.0;
-        descLabel.text = [NSString stringWithFormat:@"%.2f万",descNum];
-    }
-    else {
-        descLabel.text = [NSString stringWithFormat:@"%ld",count];
-    }
+    [self.headView configMessage:self.mineInfo];
 }
 
 - (void)requestHomeButton {
@@ -234,32 +220,38 @@
 }
 
 - (void)refreshButtonView {
+    CGFloat containerWidth = (KPortraitWidth - 28);
+    
     if (self.buttonArray.count) {
         CGFloat buttonViewHeight = [HomeButtonView getViewHeight];
         [self.buttonContainer mas_updateConstraints:^(MASConstraintMaker *make) {
             make.height.mas_equalTo(buttonViewHeight);
         }];
+        self.buttonContainer.hidden = NO;
+        // 添加按钮
+        if (self.buttonArray.count > 4) { // 大于4个显示底部滚动视图
+            self.buttonContainer.buttonPageCtrl.hidden = NO;
+            self.buttonContainer.buttonDotLeft.constant = 0;
+            NSInteger addPage = (self.buttonArray.count % 4) > 0 ? 1 : 0;
+            NSInteger pageCount = self.buttonArray.count / 4 + addPage;
+            self.buttonDotWidth = 36 / pageCount;
+            self.buttonContainer.buttonDotWidth.constant = self.buttonDotWidth;
+            self.buttonScrollView.contentSize = CGSizeMake(containerWidth * pageCount, BUTTONHEIGHT);
+        }
+        else {
+            self.buttonContainer.buttonPageCtrl.hidden = YES;
+            self.buttonScrollView.contentSize = CGSizeMake(containerWidth, BUTTONHEIGHT);
+        }
     }
     else {
         [self.buttonContainer mas_updateConstraints:^(MASConstraintMaker *make) {
             make.height.mas_equalTo(CGFLOAT_MIN);
         }];
-    }
-    CGFloat containerWidth = (KPortraitWidth - 28);
-    // 添加按钮
-    if (self.buttonArray.count > 4) { // 大于4个显示底部滚动视图
-        self.buttonContainer.buttonPageCtrl.hidden = NO;
-        self.buttonContainer.buttonDotLeft.constant = 0;
-        NSInteger addPage = (self.buttonArray.count % 4) > 0 ? 1 : 0;
-        NSInteger pageCount = self.buttonArray.count / 4 + addPage;
-        self.buttonDotWidth = 36 / pageCount;
-        self.buttonContainer.buttonDotWidth.constant = self.buttonDotWidth;
-        self.buttonScrollView.contentSize = CGSizeMake(containerWidth * pageCount, BUTTONHEIGHT);
-    }
-    else {
+        self.buttonContainer.hidden = YES;
         self.buttonContainer.buttonPageCtrl.hidden = YES;
-        self.buttonScrollView.contentSize = CGSizeMake(containerWidth, BUTTONHEIGHT);
+        self.buttonScrollView.contentSize = CGSizeMake(containerWidth, CGFLOAT_MIN);
     }
+    
         
     self.buttonScrollView.contentOffset = CGPointMake(0, 0);
     [self.buttonScrollView removeAllSubViews];
@@ -300,7 +292,8 @@
     }];
     [self.view addSubview:self.navView];
     [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.mas_equalTo(self.view);
+        make.width.mas_equalTo(100);
+        make.right.top.mas_equalTo(self.view);
         make.height.mas_equalTo(kNaviBarHeight);
     }];
     [self.view bringSubviewToFront:self.scrollView];
@@ -497,42 +490,44 @@
     [self.navigationController pushViewController:messageCenter animated:YES];
 }
 
-- (HomeNewHeadView *)headView {
+
+- (HomeHeadView *)headView {
     if (!_headView) {
-        _headView = [HomeNewHeadView shareInstance];
+        _headView = [HomeHeadView shareInstance];
         MJWeakSelf;
-        [_headView courseDetailAction:^(HOMEHEADTYPE type) {
-            [weakSelf headViewAction:type];
+        [_headView operationCallback:^(HOMEHEADACTION action) {
+                    
         }];
     }
     return _headView;
 }
 
-- (void)headViewAction:(HOMEHEADTYPE)type {
-    switch (type) {
-        case HOMEHEADTYPE_FANS:
-        {
-            KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
-            webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/myFans"];
-            [self.navigationController pushViewController:webCtrl animated:YES];
-        }
-            break;
-        case HOMEHEADTYPE_FINISHCOURSE:
-        {
-            MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
-            [self.navigationController pushViewController:ctrl animated:YES];
-        }
-            break;
-        case HOMEHEADTYPE_UNFINISHCOURSE:
-        {
-            MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
-            [self.navigationController pushViewController:ctrl animated:YES];
-        }
-            break;
-        default:
-            break;
-    }
-}
+
+//- (void)headViewAction:(HOMEHEADACTION)type {
+//    switch (type) {
+//        case HOMEHEADACTION:
+//        {
+//            KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+//            webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/myFans"];
+//            [self.navigationController pushViewController:webCtrl animated:YES];
+//        }
+//            break;
+//        case HOMEHEADTYPE_FINISHCOURSE:
+//        {
+//            MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
+//            [self.navigationController pushViewController:ctrl animated:YES];
+//        }
+//            break;
+//        case HOMEHEADTYPE_UNFINISHCOURSE:
+//        {
+//            MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
+//            [self.navigationController pushViewController:ctrl animated:YES];
+//        }
+//            break;
+//        default:
+//            break;
+//    }
+//}
 
 
 

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/FreezeListViewController.h

@@ -0,0 +1,16 @@
+//
+//  FreezeListViewController.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/7/27.
+//
+
+#import "KSBaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FreezeListViewController : KSBaseViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 308 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/FreezeListViewController.m

@@ -0,0 +1,308 @@
+//
+//  FreezeListViewController.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/7/27.
+//
+
+#import "FreezeListViewController.h"
+#import "MyIncomeListCell.h"
+#import "KSFullDatePicker.h"
+#import "IncomeListModel.h"
+#import "MyIncomeListCell.h"
+#import "KSChoosePicker.h"
+#import "IncomeRecordHeadView.h"
+
+@interface FreezeListViewController ()<UITableViewDelegate,UITableViewDataSource>
+
+
+@property (nonatomic, strong) IncomeRecordHeadView *headView;
+
+@property (nonatomic, strong) NSDateFormatter *dateFormatter;
+
+@property (nonatomic, strong) NSString *searchDate;
+
+@property (nonatomic, strong) UITableView *tableView;
+
+@property (nonatomic, strong) NSString *bizType;
+
+@property (nonatomic, assign) NSInteger chooseIndex;
+
+@property (nonatomic, strong) NSMutableArray *sortArray;
+
+@end
+
+@implementation FreezeListViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    [self allocTitle:@"冻结明细"];
+    [self configUI];
+    [self setDefaultConfig];
+}
+
+- (void)setDefaultConfig {
+    
+    [self.dateFormatter setDateFormat:@"yyyy-MM"];
+    NSDate *date = [NSDate date];
+    self.searchDate = [self.dateFormatter stringFromDate:date];
+    [self.dateFormatter setDateFormat:@"yyyy年M月"];
+    self.headView.timeLabel.text = [self.dateFormatter stringFromDate:date];
+    self.headView.typeLabel.text = @"全部类型";
+}
+
+- (void)configUI {
+    
+    [self.scrollView removeFromSuperview];
+    [self.view addSubview:self.headView];
+    CGFloat headHeight = [IncomeRecordHeadView getViewHeight];
+    [self.headView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(headHeight);
+    }];
+    [self.view addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.view);
+        make.top.mas_equalTo(self.headView.mas_bottom);
+        make.bottom.mas_equalTo(self.view.mas_bottom).offset(-iPhoneXSafeBottomMargin);
+    }];
+    
+    MJWeakSelf;
+    self.tableView.mj_header = [KSGifRefreshHeader headerWithRefreshingBlock:^{
+        [weakSelf resetParamenter];
+        [weakSelf requestData];
+        [weakSelf requestAccountDetail];
+    }];
+    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 refreshAndRequestData];
+}
+
+- (void)refreshAndRequestData {
+    [self requestAccountDetail];
+    [self resetParamenter];
+    [self requestData];
+}
+
+- (void)resetParamenter {
+    self.pages = 1;
+    self.isLoadMore = YES;
+    self.dataArray = [NSMutableArray array];
+    [self.tableView.mj_footer resetNoMoreData];
+    [self setPromptString:@"暂无数据" imageName:@"wd_img_zwsj" inView:self.tableView];
+    [self.tableView reloadData];
+}
+
+- (void)endRefresh {
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [self.tableView.mj_header endRefreshing];
+        [self.tableView.mj_footer endRefreshing];
+    });
+}
+
+- (void)requestAccountDetail {
+    [KSNetworkingManager teacherAccountDetail:KS_GET success:^(NSDictionary * _Nonnull dic) {
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            double freezeAmount = [[dic dictionaryValueForKey:@"data"] doubleValueForKey:@"amountFrozen"];
+            self.headView.moneyLabel.text = [NSString formatMoneyDoubleNum:freezeAmount];
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+        [self.tableView reloadData];
+    } faliure:^(NSError * _Nonnull error) {
+        
+    }];
+}
+
+
+- (void)requestData {
+    [self showhud];
+    [KSNetworkingManager userAccountPageRequest:KS_POST paymentStatus:@"OUT" searchDate:self.searchDate bizType:self.bizType postStatus:@"FROZEN" page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+        [self removehub];
+        [self endRefresh];
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+            
+            for (NSDictionary *parm in sourceArray) {
+                IncomeListModel *model = [[IncomeListModel alloc] initWithDictionary:parm];
+                [self.dataArray addObject:model];
+            }
+            if (sourceArray.count < self.rows) {
+                self.isLoadMore = NO;
+            }
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+        
+        [self.tableView reloadData];
+        [self changePromptLabelState];
+    } faliure:^(NSError * _Nonnull error) {
+        [self removehub];
+        [self endRefresh];
+        if (self.networkAvaiable == NO) {
+            [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+        }
+        [self.dataArray removeAllObjects];
+        [self.tableView reloadData];
+    }];
+}
+
+
+#pragma mark --- table data source
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return self.dataArray.count;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    IncomeListModel *model = self.dataArray[indexPath.row];
+    NSString *preDay = nil;
+    if (indexPath.row != 0) {
+        IncomeListModel *preModel = self.dataArray[indexPath.row-1];
+        preDay = preModel.timeDay;
+    }
+    MyIncomeListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIncomeListCell"];
+    [cell configSource:model preSourceDay:preDay];
+    return cell;
+}
+
+
+#pragma mark --- lazying
+- (NSDateFormatter *)dateFormatter {
+    if (!_dateFormatter) {
+        _dateFormatter = [NSObject getDateformatter];
+    }
+    return _dateFormatter;
+}
+
+- (UITableView *)tableView {
+    if (!_tableView) {
+        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _tableView.backgroundColor = [UIColor clearColor];
+        _tableView.delegate = self;
+        _tableView.dataSource = self;
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        [_tableView registerNib:[UINib nibWithNibName:@"MyIncomeListCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MyIncomeListCell"];
+        _tableView.estimatedRowHeight = 125.0f;
+        _tableView.rowHeight = UITableViewAutomaticDimension;
+        UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
+        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        _tableView.tableFooterView = bottomView;
+    }
+    return _tableView;
+}
+
+- (IncomeRecordHeadView *)headView {
+    if (!_headView) {
+        _headView = [IncomeRecordHeadView shareInstance];
+        [_headView configWithLogo:@"freeze_logo" descTitle:@"冻结金额(元)" bgImageName:@"freeze_bg" titleColor:HexRGB(0x225791) fromColor:HexRGB(0xBDE6FF) toColor:HexRGB(0xA1D6FF)];
+        MJWeakSelf;
+        [_headView headerActionCallback:^(INCOMERECORD_ACTION action) {
+            [weakSelf sortAction:action];
+        }];
+    }
+    return _headView;
+}
+
+- (void)sortAction:(INCOMERECORD_ACTION)action {
+    switch (action) {
+        case INCOMERECORD_ACTION_TIME:
+        {
+            [self showPickerView];
+        }
+            break;
+        case INCOMERECORD_ACTION_TYPE:
+        {
+            NSMutableArray *nameArray = [NSMutableArray array];
+            for (NSDictionary *parm in self.sortArray) {
+                [nameArray addObject:[parm stringValueForKey:@"name"]];
+            }
+            MJWeakSelf;
+            KSChoosePicker *picker = [[KSChoosePicker alloc] initWithTitle:@"" sourceData:nameArray chooseReturnWithBlock:^(NSString * _Nonnull returnValue, NSInteger chooseIndex) {
+                if (chooseIndex == 0) {
+                    weakSelf.headView.typeLabel.text = @"全部类型";
+                    weakSelf.bizType = nil;
+                }
+                else {
+                    weakSelf.headView.typeLabel.text = returnValue;
+                    NSDictionary *parm = self.sortArray[chooseIndex];
+                    weakSelf.bizType = [parm stringValueForKey:@"bizType"];
+                }
+                self.headView.secondArrowUp = NO;
+                [weakSelf refreshAndRequestData];
+            } cancel:^{
+                self.headView.secondArrowUp = NO;
+            }];
+            [picker showPicker];
+        }
+            break;
+        default:
+            break;
+    }
+}
+- (void)showPickerView {
+    KSFullDatePicker *pickerView = [[KSFullDatePicker alloc] initWithTitle:@"" date:[NSDate date] pickMode:KSDATEPICKER_MODE_YEAR_MONTH selectDateBlock:^(NSString *date) {
+        self.searchDate = date;
+        NSString *displayTime = [self getTimeDisplay:date];
+        [self.headView.timeLabel setText:displayTime];
+        [self resetPickerStatus];
+        [self refreshAndRequestData];//
+    } cancleBlock:^{
+        [self resetPickerStatus];
+    }];
+    [pickerView show];
+}
+
+- (NSString *)getTimeDisplay:(NSString *)chooseMonth {
+    [self.dateFormatter setDateFormat:@"yyyy-MM"];
+    NSDate *chooseDate = [self.dateFormatter dateFromString:chooseMonth];
+    [self.dateFormatter setDateFormat:@"yyyy年M月"];
+    NSString *displayTime = [self.dateFormatter stringFromDate:chooseDate];
+    return displayTime;
+}
+
+- (void)resetPickerStatus {
+    self.headView.firstArrowUp = NO;
+}
+
+
+- (NSMutableArray *)sortArray {
+    if (!_sortArray) {
+        _sortArray = [NSMutableArray array];
+        [_sortArray addObject:@{@"name" : @"全部类型", @"bizType": @""}];
+        [_sortArray addObject:@{@"name" : @"陪练课", @"bizType": @"PRACTICE"}];
+        [_sortArray addObject:@{@"name" : @"直播课", @"bizType": @"LIVE"}];
+        [_sortArray addObject:@{@"name" : @"视频课", @"bizType": @"VIDEO"}];
+        [_sortArray addObject:@{@"name" : @"乐谱", @"bizType": @"MUSIC"}];
+        [_sortArray addObject:@{@"name" : @"直播课推荐", @"bizType": @"LIVE_SHARE"}];
+        [_sortArray addObject:@{@"name" : @"视频课推荐", @"bizType": @"VIDEO_SHARE"}];
+        [_sortArray addObject:@{@"name" : @"乐谱推荐", @"bizType": @"MUSIC_SHARE"}];
+        [_sortArray addObject:@{@"name" : @"小酷Ai推荐", @"bizType": @"VIP_SHARE"}];
+        [_sortArray addObject:@{@"name" : @"商品推荐", @"bizType": @"MALL_SHARE"}];
+    }
+    return _sortArray;
+}
+/*
+#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

+ 19 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m

@@ -14,6 +14,8 @@
 #import "IncomeCountViewController.h"
 #import "KSBaseWKWebViewController.h"
 #import "KSChoosePicker.h"
+#import "FreezeListViewController.h"
+#import "NoRecordViewController.h"
 
 @interface MyIncomeViewController ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -127,12 +129,15 @@
     [KSNetworkingManager teacherAccountDetail:KS_GET success:^(NSDictionary * _Nonnull dic) {
         if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
             double amount = [[dic dictionaryValueForKey:@"data"] doubleValueForKey:@"amountUsable"];
+            double freezeAmount = [[dic dictionaryValueForKey:@"data"] doubleValueForKey:@"amountFrozen"];
+            double noRecordAmount = [[dic dictionaryValueForKey:@"data"] doubleValueForKey:@"amountUnrecorded"];
             self.headView.moneyLabel.text = [NSString formatMoneyDoubleNum:amount];
+            self.headView.freezeAmount.text = [NSString formatMoneyDoubleNum:freezeAmount];
+            self.headView.noRecordAmount.text = [NSString formatMoneyDoubleNum:noRecordAmount];
         }
         else {
             [self MBPShow:MESSAGEKEY];
         }
-        [self.tableView reloadData];
     } faliure:^(NSError * _Nonnull error) {
         
     }];
@@ -141,7 +146,7 @@
 
 - (void)requestData {
     [self showhud];
-    [KSNetworkingManager userAccountPageRequest:KS_POST searchDate:self.searchDate bizType:self.bizType page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+    [KSNetworkingManager userAccountPageRequest:KS_POST paymentStatus:@"IN" searchDate:self.searchDate bizType:self.bizType postStatus:@"RECORDED" page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
         [self removehub];
         [self endRefresh];
         if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
@@ -266,6 +271,18 @@
             [self.navigationController pushViewController:ctrl animated:YES];
         }
             break;
+        case INCOME_ACTION_FREEZE:
+        {
+            FreezeListViewController *ctrl = [[FreezeListViewController alloc] init];
+            [self.navigationController pushViewController:ctrl animated:YES];
+        }
+            break;
+        case INCOME_ACTION_NORECORD:
+        {
+            NoRecordViewController *ctrl = [[NoRecordViewController alloc] init];
+            [self.navigationController pushViewController:ctrl animated:YES];
+        }
+            break;
         default:
             break;
     }

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/NoRecordViewController.h

@@ -0,0 +1,16 @@
+//
+//  NoRecordViewController.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/7/27.
+//
+
+#import "KSBaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NoRecordViewController : KSBaseViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 309 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/NoRecordViewController.m

@@ -0,0 +1,309 @@
+//
+//  NoRecordViewController.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/7/27.
+//
+
+#import "NoRecordViewController.h"
+#import "MyIncomeListCell.h"
+#import "KSFullDatePicker.h"
+#import "IncomeListModel.h"
+#import "MyIncomeListCell.h"
+#import "KSChoosePicker.h"
+#import "IncomeRecordHeadView.h"
+
+@interface NoRecordViewController ()<UITableViewDelegate,UITableViewDataSource>
+
+
+@property (nonatomic, strong) IncomeRecordHeadView *headView;
+
+@property (nonatomic, strong) NSDateFormatter *dateFormatter;
+
+@property (nonatomic, strong) NSString *searchDate;
+
+@property (nonatomic, strong) UITableView *tableView;
+
+@property (nonatomic, strong) NSString *bizType;
+
+@property (nonatomic, assign) NSInteger chooseIndex;
+
+@property (nonatomic, strong) NSMutableArray *sortArray;
+
+@end
+
+@implementation NoRecordViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    [self allocTitle:@"待入账金额"];
+    [self configUI];
+    [self setDefaultConfig];
+}
+
+- (void)setDefaultConfig {
+    
+    [self.dateFormatter setDateFormat:@"yyyy-MM"];
+    NSDate *date = [NSDate date];
+    self.searchDate = [self.dateFormatter stringFromDate:date];
+    [self.dateFormatter setDateFormat:@"yyyy年M月"];
+    self.headView.timeLabel.text = [self.dateFormatter stringFromDate:date];
+    self.headView.typeLabel.text = @"全部类型";
+}
+
+- (void)configUI {
+    
+    [self.scrollView removeFromSuperview];
+    [self.view addSubview:self.headView];
+    CGFloat headHeight = [IncomeRecordHeadView getViewHeight];
+    [self.headView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(headHeight);
+    }];
+    [self.view addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.view);
+        make.top.mas_equalTo(self.headView.mas_bottom);
+        make.bottom.mas_equalTo(self.view.mas_bottom).offset(-iPhoneXSafeBottomMargin);
+    }];
+    
+    MJWeakSelf;
+    self.tableView.mj_header = [KSGifRefreshHeader headerWithRefreshingBlock:^{
+        [weakSelf resetParamenter];
+        [weakSelf requestData];
+        [weakSelf requestAccountDetail];
+    }];
+    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 refreshAndRequestData];
+}
+
+- (void)refreshAndRequestData {
+    [self requestAccountDetail];
+    [self resetParamenter];
+    [self requestData];
+}
+
+- (void)resetParamenter {
+    self.pages = 1;
+    self.isLoadMore = YES;
+    self.dataArray = [NSMutableArray array];
+    [self.tableView.mj_footer resetNoMoreData];
+    [self setPromptString:@"暂无数据" imageName:@"wd_img_zwsj" inView:self.tableView];
+    [self.tableView reloadData];
+}
+
+- (void)endRefresh {
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [self.tableView.mj_header endRefreshing];
+        [self.tableView.mj_footer endRefreshing];
+    });
+}
+
+- (void)requestAccountDetail {
+    [KSNetworkingManager teacherAccountDetail:KS_GET success:^(NSDictionary * _Nonnull dic) {
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            double noRecordAmount = [[dic dictionaryValueForKey:@"data"] doubleValueForKey:@"amountUnrecorded"];
+            self.headView.moneyLabel.text = [NSString formatMoneyDoubleNum:noRecordAmount];
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+        [self.tableView reloadData];
+    } faliure:^(NSError * _Nonnull error) {
+        
+    }];
+}
+
+
+- (void)requestData {
+    [self showhud];
+    [KSNetworkingManager userAccountPageRequest:KS_POST paymentStatus:@"IN" searchDate:self.searchDate bizType:self.bizType postStatus:@"WAIT" page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+        [self removehub];
+        [self endRefresh];
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+            
+            for (NSDictionary *parm in sourceArray) {
+                IncomeListModel *model = [[IncomeListModel alloc] initWithDictionary:parm];
+                [self.dataArray addObject:model];
+            }
+            if (sourceArray.count < self.rows) {
+                self.isLoadMore = NO;
+            }
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+        
+        [self.tableView reloadData];
+        [self changePromptLabelState];
+    } faliure:^(NSError * _Nonnull error) {
+        [self removehub];
+        [self endRefresh];
+        if (self.networkAvaiable == NO) {
+            [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+        }
+        [self.dataArray removeAllObjects];
+        [self.tableView reloadData];
+    }];
+}
+
+
+#pragma mark --- table data source
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return self.dataArray.count;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    IncomeListModel *model = self.dataArray[indexPath.row];
+    NSString *preDay = nil;
+    if (indexPath.row != 0) {
+        IncomeListModel *preModel = self.dataArray[indexPath.row-1];
+        preDay = preModel.timeDay;
+    }
+    MyIncomeListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIncomeListCell"];
+    [cell configSource:model preSourceDay:preDay];
+    return cell;
+}
+
+
+#pragma mark --- lazying
+- (NSDateFormatter *)dateFormatter {
+    if (!_dateFormatter) {
+        _dateFormatter = [NSObject getDateformatter];
+    }
+    return _dateFormatter;
+}
+
+- (UITableView *)tableView {
+    if (!_tableView) {
+        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _tableView.backgroundColor = [UIColor clearColor];
+        _tableView.delegate = self;
+        _tableView.dataSource = self;
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        [_tableView registerNib:[UINib nibWithNibName:@"MyIncomeListCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MyIncomeListCell"];
+        _tableView.estimatedRowHeight = 125.0f;
+        _tableView.rowHeight = UITableViewAutomaticDimension;
+        UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
+        bottomView.backgroundColor = HexRGB(0xf6f8f9);
+        _tableView.tableFooterView = bottomView;
+    }
+    return _tableView;
+}
+
+- (IncomeRecordHeadView *)headView {
+    if (!_headView) {
+        _headView = [IncomeRecordHeadView shareInstance];
+        [_headView configWithLogo:@"waitIncome_logo" descTitle:@"待入账金额(元)" bgImageName:@"waitIncome_bg" titleColor:HexRGB(0x00876e) fromColor:HexRGB(0xA7FCF2) toColor:HexRGB(0x69EED5)];
+        MJWeakSelf;
+        [_headView headerActionCallback:^(INCOMERECORD_ACTION action) {
+            [weakSelf sortAction:action];
+        }];
+    }
+    return _headView;
+}
+
+- (void)sortAction:(INCOMERECORD_ACTION)action {
+    switch (action) {
+        case INCOMERECORD_ACTION_TIME:
+        {
+            [self showPickerView];
+        }
+            break;
+        case INCOMERECORD_ACTION_TYPE:
+        {
+            NSMutableArray *nameArray = [NSMutableArray array];
+            for (NSDictionary *parm in self.sortArray) {
+                [nameArray addObject:[parm stringValueForKey:@"name"]];
+            }
+            MJWeakSelf;
+            KSChoosePicker *picker = [[KSChoosePicker alloc] initWithTitle:@"" sourceData:nameArray chooseReturnWithBlock:^(NSString * _Nonnull returnValue, NSInteger chooseIndex) {
+                if (chooseIndex == 0) {
+                    weakSelf.headView.typeLabel.text = @"全部类型";
+                    weakSelf.bizType = nil;
+                }
+                else {
+                    weakSelf.headView.typeLabel.text = returnValue;
+                    NSDictionary *parm = self.sortArray[chooseIndex];
+                    weakSelf.bizType = [parm stringValueForKey:@"bizType"];
+                }
+                self.headView.secondArrowUp = NO;
+                [weakSelf refreshAndRequestData];
+            } cancel:^{
+                self.headView.secondArrowUp = NO;
+            }];
+            [picker showPicker];
+        }
+            break;
+        default:
+            break;
+    }
+}
+- (void)showPickerView {
+    KSFullDatePicker *pickerView = [[KSFullDatePicker alloc] initWithTitle:@"" date:[NSDate date] pickMode:KSDATEPICKER_MODE_YEAR_MONTH selectDateBlock:^(NSString *date) {
+        self.searchDate = date;
+        NSString *displayTime = [self getTimeDisplay:date];
+        [self.headView.timeLabel setText:displayTime];
+        [self resetPickerStatus];
+        [self refreshAndRequestData];//
+    } cancleBlock:^{
+        [self resetPickerStatus];
+    }];
+    [pickerView show];
+}
+
+- (NSString *)getTimeDisplay:(NSString *)chooseMonth {
+    [self.dateFormatter setDateFormat:@"yyyy-MM"];
+    NSDate *chooseDate = [self.dateFormatter dateFromString:chooseMonth];
+    [self.dateFormatter setDateFormat:@"yyyy年M月"];
+    NSString *displayTime = [self.dateFormatter stringFromDate:chooseDate];
+    return displayTime;
+}
+
+- (void)resetPickerStatus {
+    self.headView.firstArrowUp = NO;
+}
+
+
+- (NSMutableArray *)sortArray {
+    if (!_sortArray) {
+        _sortArray = [NSMutableArray array];
+        [_sortArray addObject:@{@"name" : @"全部类型", @"bizType": @""}];
+        [_sortArray addObject:@{@"name" : @"陪练课", @"bizType": @"PRACTICE"}];
+        [_sortArray addObject:@{@"name" : @"直播课", @"bizType": @"LIVE"}];
+        [_sortArray addObject:@{@"name" : @"视频课", @"bizType": @"VIDEO"}];
+        [_sortArray addObject:@{@"name" : @"乐谱", @"bizType": @"MUSIC"}];
+        [_sortArray addObject:@{@"name" : @"直播课推荐", @"bizType": @"LIVE_SHARE"}];
+        [_sortArray addObject:@{@"name" : @"视频课推荐", @"bizType": @"VIDEO_SHARE"}];
+        [_sortArray addObject:@{@"name" : @"乐谱推荐", @"bizType": @"MUSIC_SHARE"}];
+        [_sortArray addObject:@{@"name" : @"小酷Ai推荐", @"bizType": @"VIP_SHARE"}];
+        [_sortArray addObject:@{@"name" : @"商品推荐", @"bizType": @"MALL_SHARE"}];
+    }
+    return _sortArray;
+}
+
+/*
+#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 - 9
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Model/IncomeListModel.h

@@ -1,7 +1,7 @@
 //
 //  IncomeListModel.h
 //
-//  Created by Steven  on 2022/4/26
+//  Created by Steven  on 2022/7/27
 //  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
 //
 
@@ -11,19 +11,28 @@
 
 @interface IncomeListModel : NSObject <NSCoding, NSCopying>
 
-@property (nonatomic, strong) NSString *internalBaseClassIdentifier;
-@property (nonatomic, assign) double accountBalance;
-@property (nonatomic, strong) NSString *inOrOut;
-@property (nonatomic, strong) NSString *bizId;
-@property (nonatomic, strong) NSString *orderNo;
-@property (nonatomic, assign) double accountId;
+@property (nonatomic, assign) double buyUser;
+@property (nonatomic, strong) NSString *buyUserName;
+@property (nonatomic, strong) NSString *accountName;
+@property (nonatomic, strong) NSString *updateTime;
+@property (nonatomic, strong) NSString *bizName;
 @property (nonatomic, strong) NSString *endTime;
-@property (nonatomic, strong) NSString *timeDay;
 @property (nonatomic, assign) double transAmount;
+@property (nonatomic, assign) double errFlag;
+@property (nonatomic, strong) NSString *inOrOut;
+@property (nonatomic, strong) NSString *internalBaseClassIdentifier;
+@property (nonatomic, strong) NSString *timeDay;
+@property (nonatomic, strong) NSString *orderNo;
+@property (nonatomic, strong) NSString *errMsg;
 @property (nonatomic, strong) NSString *bizType;
+@property (nonatomic, strong) NSString *postStatus;
+@property (nonatomic, assign) double bizId;
+@property (nonatomic, assign) id accountPeriodTime;
 @property (nonatomic, strong) NSString *createTime;
 @property (nonatomic, strong) NSString *startTime;
-@property (nonatomic, strong) NSString *bizName;
+@property (nonatomic, assign) double accountBalance;
+@property (nonatomic, assign) double accountId;
+@property (nonatomic, strong) NSString *buyUserAvatar;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
 - (instancetype)initWithDictionary:(NSDictionary *)dict;

+ 120 - 57
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Model/IncomeListModel.m

@@ -1,26 +1,35 @@
 //
 //  IncomeListModel.m
 //
-//  Created by Steven  on 2022/4/26
+//  Created by Steven  on 2022/7/27
 //  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
 //
 
 #import "IncomeListModel.h"
 
 
-NSString *const kIncomeListModelId = @"id";
-NSString *const kIncomeListModelAccountBalance = @"accountBalance";
-NSString *const kIncomeListModelInOrOut = @"inOrOut";
-NSString *const kIncomeListModelBizId = @"bizId";
-NSString *const kIncomeListModelOrderNo = @"orderNo";
-NSString *const kIncomeListModelAccountId = @"accountId";
+NSString *const kIncomeListModelBuyUser = @"buyUser";
+NSString *const kIncomeListModelBuyUserName = @"buyUserName";
+NSString *const kIncomeListModelAccountName = @"accountName";
+NSString *const kIncomeListModelUpdateTime = @"updateTime";
+NSString *const kIncomeListModelBizName = @"bizName";
 NSString *const kIncomeListModelEndTime = @"endTime";
-NSString *const kIncomeListModelTimeDay = @"timeDay";
 NSString *const kIncomeListModelTransAmount = @"transAmount";
+NSString *const kIncomeListModelErrFlag = @"errFlag";
+NSString *const kIncomeListModelInOrOut = @"inOrOut";
+NSString *const kIncomeListModelId = @"id";
+NSString *const kIncomeListModelTimeDay = @"timeDay";
+NSString *const kIncomeListModelOrderNo = @"orderNo";
+NSString *const kIncomeListModelErrMsg = @"errMsg";
 NSString *const kIncomeListModelBizType = @"bizType";
+NSString *const kIncomeListModelPostStatus = @"postStatus";
+NSString *const kIncomeListModelBizId = @"bizId";
+NSString *const kIncomeListModelAccountPeriodTime = @"accountPeriodTime";
 NSString *const kIncomeListModelCreateTime = @"createTime";
 NSString *const kIncomeListModelStartTime = @"startTime";
-NSString *const kIncomeListModelBizName = @"bizName";
+NSString *const kIncomeListModelAccountBalance = @"accountBalance";
+NSString *const kIncomeListModelAccountId = @"accountId";
+NSString *const kIncomeListModelBuyUserAvatar = @"buyUserAvatar";
 
 
 @interface IncomeListModel ()
@@ -31,19 +40,28 @@ NSString *const kIncomeListModelBizName = @"bizName";
 
 @implementation IncomeListModel
 
-@synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
-@synthesize accountBalance = _accountBalance;
-@synthesize inOrOut = _inOrOut;
-@synthesize bizId = _bizId;
-@synthesize orderNo = _orderNo;
-@synthesize accountId = _accountId;
+@synthesize buyUser = _buyUser;
+@synthesize buyUserName = _buyUserName;
+@synthesize accountName = _accountName;
+@synthesize updateTime = _updateTime;
+@synthesize bizName = _bizName;
 @synthesize endTime = _endTime;
-@synthesize timeDay = _timeDay;
 @synthesize transAmount = _transAmount;
+@synthesize errFlag = _errFlag;
+@synthesize inOrOut = _inOrOut;
+@synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
+@synthesize timeDay = _timeDay;
+@synthesize orderNo = _orderNo;
+@synthesize errMsg = _errMsg;
 @synthesize bizType = _bizType;
+@synthesize postStatus = _postStatus;
+@synthesize bizId = _bizId;
+@synthesize accountPeriodTime = _accountPeriodTime;
 @synthesize createTime = _createTime;
 @synthesize startTime = _startTime;
-@synthesize bizName = _bizName;
+@synthesize accountBalance = _accountBalance;
+@synthesize accountId = _accountId;
+@synthesize buyUserAvatar = _buyUserAvatar;
 
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
@@ -58,19 +76,28 @@ NSString *const kIncomeListModelBizName = @"bizName";
     // This check serves to make sure that a non-NSDictionary object
     // passed into the model class doesn't break the parsing.
     if(self && [dict isKindOfClass:[NSDictionary class]]) {
-            self.internalBaseClassIdentifier = [self objectOrNilForKey:kIncomeListModelId fromDictionary:dict];
-            self.accountBalance = [[self objectOrNilForKey:kIncomeListModelAccountBalance fromDictionary:dict] doubleValue];
-            self.inOrOut = [self objectOrNilForKey:kIncomeListModelInOrOut fromDictionary:dict];
-            self.bizId = [self objectOrNilForKey:kIncomeListModelBizId fromDictionary:dict];
-            self.orderNo = [self objectOrNilForKey:kIncomeListModelOrderNo fromDictionary:dict];
-            self.accountId = [[self objectOrNilForKey:kIncomeListModelAccountId fromDictionary:dict] doubleValue];
+            self.buyUser = [[self objectOrNilForKey:kIncomeListModelBuyUser fromDictionary:dict] doubleValue];
+            self.buyUserName = [self objectOrNilForKey:kIncomeListModelBuyUserName fromDictionary:dict];
+            self.accountName = [self objectOrNilForKey:kIncomeListModelAccountName fromDictionary:dict];
+            self.updateTime = [self objectOrNilForKey:kIncomeListModelUpdateTime fromDictionary:dict];
+            self.bizName = [self objectOrNilForKey:kIncomeListModelBizName fromDictionary:dict];
             self.endTime = [self objectOrNilForKey:kIncomeListModelEndTime fromDictionary:dict];
-            self.timeDay = [self objectOrNilForKey:kIncomeListModelTimeDay fromDictionary:dict];
             self.transAmount = [[self objectOrNilForKey:kIncomeListModelTransAmount fromDictionary:dict] doubleValue];
+            self.errFlag = [[self objectOrNilForKey:kIncomeListModelErrFlag fromDictionary:dict] doubleValue];
+            self.inOrOut = [self objectOrNilForKey:kIncomeListModelInOrOut fromDictionary:dict];
+            self.internalBaseClassIdentifier = [self objectOrNilForKey:kIncomeListModelId fromDictionary:dict];
+            self.timeDay = [self objectOrNilForKey:kIncomeListModelTimeDay fromDictionary:dict];
+            self.orderNo = [self objectOrNilForKey:kIncomeListModelOrderNo fromDictionary:dict];
+            self.errMsg = [self objectOrNilForKey:kIncomeListModelErrMsg fromDictionary:dict];
             self.bizType = [self objectOrNilForKey:kIncomeListModelBizType fromDictionary:dict];
+            self.postStatus = [self objectOrNilForKey:kIncomeListModelPostStatus fromDictionary:dict];
+            self.bizId = [[self objectOrNilForKey:kIncomeListModelBizId fromDictionary:dict] doubleValue];
+            self.accountPeriodTime = [self objectOrNilForKey:kIncomeListModelAccountPeriodTime fromDictionary:dict];
             self.createTime = [self objectOrNilForKey:kIncomeListModelCreateTime fromDictionary:dict];
             self.startTime = [self objectOrNilForKey:kIncomeListModelStartTime fromDictionary:dict];
-            self.bizName = [self objectOrNilForKey:kIncomeListModelBizName fromDictionary:dict];
+            self.accountBalance = [[self objectOrNilForKey:kIncomeListModelAccountBalance fromDictionary:dict] doubleValue];
+            self.accountId = [[self objectOrNilForKey:kIncomeListModelAccountId fromDictionary:dict] doubleValue];
+            self.buyUserAvatar = [self objectOrNilForKey:kIncomeListModelBuyUserAvatar fromDictionary:dict];
 
     }
     
@@ -81,19 +108,28 @@ NSString *const kIncomeListModelBizName = @"bizName";
 - (NSDictionary *)dictionaryRepresentation
 {
     NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    [mutableDict setValue:self.internalBaseClassIdentifier forKey:kIncomeListModelId];
-    [mutableDict setValue:[NSNumber numberWithDouble:self.accountBalance] forKey:kIncomeListModelAccountBalance];
-    [mutableDict setValue:self.inOrOut forKey:kIncomeListModelInOrOut];
-    [mutableDict setValue:self.bizId forKey:kIncomeListModelBizId];
-    [mutableDict setValue:self.orderNo forKey:kIncomeListModelOrderNo];
-    [mutableDict setValue:[NSNumber numberWithDouble:self.accountId] forKey:kIncomeListModelAccountId];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.buyUser] forKey:kIncomeListModelBuyUser];
+    [mutableDict setValue:self.buyUserName forKey:kIncomeListModelBuyUserName];
+    [mutableDict setValue:self.accountName forKey:kIncomeListModelAccountName];
+    [mutableDict setValue:self.updateTime forKey:kIncomeListModelUpdateTime];
+    [mutableDict setValue:self.bizName forKey:kIncomeListModelBizName];
     [mutableDict setValue:self.endTime forKey:kIncomeListModelEndTime];
-    [mutableDict setValue:self.timeDay forKey:kIncomeListModelTimeDay];
     [mutableDict setValue:[NSNumber numberWithDouble:self.transAmount] forKey:kIncomeListModelTransAmount];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.errFlag] forKey:kIncomeListModelErrFlag];
+    [mutableDict setValue:self.inOrOut forKey:kIncomeListModelInOrOut];
+    [mutableDict setValue:self.internalBaseClassIdentifier forKey:kIncomeListModelId];
+    [mutableDict setValue:self.timeDay forKey:kIncomeListModelTimeDay];
+    [mutableDict setValue:self.orderNo forKey:kIncomeListModelOrderNo];
+    [mutableDict setValue:self.errMsg forKey:kIncomeListModelErrMsg];
     [mutableDict setValue:self.bizType forKey:kIncomeListModelBizType];
+    [mutableDict setValue:self.postStatus forKey:kIncomeListModelPostStatus];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.bizId] forKey:kIncomeListModelBizId];
+    [mutableDict setValue:self.accountPeriodTime forKey:kIncomeListModelAccountPeriodTime];
     [mutableDict setValue:self.createTime forKey:kIncomeListModelCreateTime];
     [mutableDict setValue:self.startTime forKey:kIncomeListModelStartTime];
-    [mutableDict setValue:self.bizName forKey:kIncomeListModelBizName];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.accountBalance] forKey:kIncomeListModelAccountBalance];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.accountId] forKey:kIncomeListModelAccountId];
+    [mutableDict setValue:self.buyUserAvatar forKey:kIncomeListModelBuyUserAvatar];
 
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
@@ -121,38 +157,56 @@ NSString *const kIncomeListModelBizName = @"bizName";
 {
     self = [super init];
 
-    self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kIncomeListModelId];
-    self.accountBalance = [aDecoder decodeDoubleForKey:kIncomeListModelAccountBalance];
-    self.inOrOut = [aDecoder decodeObjectForKey:kIncomeListModelInOrOut];
-    self.bizId = [aDecoder decodeObjectForKey:kIncomeListModelBizId];
-    self.orderNo = [aDecoder decodeObjectForKey:kIncomeListModelOrderNo];
-    self.accountId = [aDecoder decodeDoubleForKey:kIncomeListModelAccountId];
+    self.buyUser = [aDecoder decodeDoubleForKey:kIncomeListModelBuyUser];
+    self.buyUserName = [aDecoder decodeObjectForKey:kIncomeListModelBuyUserName];
+    self.accountName = [aDecoder decodeObjectForKey:kIncomeListModelAccountName];
+    self.updateTime = [aDecoder decodeObjectForKey:kIncomeListModelUpdateTime];
+    self.bizName = [aDecoder decodeObjectForKey:kIncomeListModelBizName];
     self.endTime = [aDecoder decodeObjectForKey:kIncomeListModelEndTime];
-    self.timeDay = [aDecoder decodeObjectForKey:kIncomeListModelTimeDay];
     self.transAmount = [aDecoder decodeDoubleForKey:kIncomeListModelTransAmount];
+    self.errFlag = [aDecoder decodeDoubleForKey:kIncomeListModelErrFlag];
+    self.inOrOut = [aDecoder decodeObjectForKey:kIncomeListModelInOrOut];
+    self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kIncomeListModelId];
+    self.timeDay = [aDecoder decodeObjectForKey:kIncomeListModelTimeDay];
+    self.orderNo = [aDecoder decodeObjectForKey:kIncomeListModelOrderNo];
+    self.errMsg = [aDecoder decodeObjectForKey:kIncomeListModelErrMsg];
     self.bizType = [aDecoder decodeObjectForKey:kIncomeListModelBizType];
+    self.postStatus = [aDecoder decodeObjectForKey:kIncomeListModelPostStatus];
+    self.bizId = [aDecoder decodeDoubleForKey:kIncomeListModelBizId];
+    self.accountPeriodTime = [aDecoder decodeObjectForKey:kIncomeListModelAccountPeriodTime];
     self.createTime = [aDecoder decodeObjectForKey:kIncomeListModelCreateTime];
     self.startTime = [aDecoder decodeObjectForKey:kIncomeListModelStartTime];
-    self.bizName = [aDecoder decodeObjectForKey:kIncomeListModelBizName];
+    self.accountBalance = [aDecoder decodeDoubleForKey:kIncomeListModelAccountBalance];
+    self.accountId = [aDecoder decodeDoubleForKey:kIncomeListModelAccountId];
+    self.buyUserAvatar = [aDecoder decodeObjectForKey:kIncomeListModelBuyUserAvatar];
     return self;
 }
 
 - (void)encodeWithCoder:(NSCoder *)aCoder
 {
 
-    [aCoder encodeObject:_internalBaseClassIdentifier forKey:kIncomeListModelId];
-    [aCoder encodeDouble:_accountBalance forKey:kIncomeListModelAccountBalance];
-    [aCoder encodeObject:_inOrOut forKey:kIncomeListModelInOrOut];
-    [aCoder encodeObject:_bizId forKey:kIncomeListModelBizId];
-    [aCoder encodeObject:_orderNo forKey:kIncomeListModelOrderNo];
-    [aCoder encodeDouble:_accountId forKey:kIncomeListModelAccountId];
+    [aCoder encodeDouble:_buyUser forKey:kIncomeListModelBuyUser];
+    [aCoder encodeObject:_buyUserName forKey:kIncomeListModelBuyUserName];
+    [aCoder encodeObject:_accountName forKey:kIncomeListModelAccountName];
+    [aCoder encodeObject:_updateTime forKey:kIncomeListModelUpdateTime];
+    [aCoder encodeObject:_bizName forKey:kIncomeListModelBizName];
     [aCoder encodeObject:_endTime forKey:kIncomeListModelEndTime];
-    [aCoder encodeObject:_timeDay forKey:kIncomeListModelTimeDay];
     [aCoder encodeDouble:_transAmount forKey:kIncomeListModelTransAmount];
+    [aCoder encodeDouble:_errFlag forKey:kIncomeListModelErrFlag];
+    [aCoder encodeObject:_inOrOut forKey:kIncomeListModelInOrOut];
+    [aCoder encodeObject:_internalBaseClassIdentifier forKey:kIncomeListModelId];
+    [aCoder encodeObject:_timeDay forKey:kIncomeListModelTimeDay];
+    [aCoder encodeObject:_orderNo forKey:kIncomeListModelOrderNo];
+    [aCoder encodeObject:_errMsg forKey:kIncomeListModelErrMsg];
     [aCoder encodeObject:_bizType forKey:kIncomeListModelBizType];
+    [aCoder encodeObject:_postStatus forKey:kIncomeListModelPostStatus];
+    [aCoder encodeDouble:_bizId forKey:kIncomeListModelBizId];
+    [aCoder encodeObject:_accountPeriodTime forKey:kIncomeListModelAccountPeriodTime];
     [aCoder encodeObject:_createTime forKey:kIncomeListModelCreateTime];
     [aCoder encodeObject:_startTime forKey:kIncomeListModelStartTime];
-    [aCoder encodeObject:_bizName forKey:kIncomeListModelBizName];
+    [aCoder encodeDouble:_accountBalance forKey:kIncomeListModelAccountBalance];
+    [aCoder encodeDouble:_accountId forKey:kIncomeListModelAccountId];
+    [aCoder encodeObject:_buyUserAvatar forKey:kIncomeListModelBuyUserAvatar];
 }
 
 - (id)copyWithZone:(NSZone *)zone
@@ -161,19 +215,28 @@ NSString *const kIncomeListModelBizName = @"bizName";
     
     if (copy) {
 
-        copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone];
-        copy.accountBalance = self.accountBalance;
-        copy.inOrOut = [self.inOrOut copyWithZone:zone];
-        copy.bizId = [self.bizId copyWithZone:zone];
-        copy.orderNo = [self.orderNo copyWithZone:zone];
-        copy.accountId = self.accountId;
+        copy.buyUser = self.buyUser;
+        copy.buyUserName = [self.buyUserName copyWithZone:zone];
+        copy.accountName = [self.accountName copyWithZone:zone];
+        copy.updateTime = [self.updateTime copyWithZone:zone];
+        copy.bizName = [self.bizName copyWithZone:zone];
         copy.endTime = [self.endTime copyWithZone:zone];
-        copy.timeDay = [self.timeDay copyWithZone:zone];
         copy.transAmount = self.transAmount;
+        copy.errFlag = self.errFlag;
+        copy.inOrOut = [self.inOrOut copyWithZone:zone];
+        copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone];
+        copy.timeDay = [self.timeDay copyWithZone:zone];
+        copy.orderNo = [self.orderNo copyWithZone:zone];
+        copy.errMsg = [self.errMsg copyWithZone:zone];
         copy.bizType = [self.bizType copyWithZone:zone];
+        copy.postStatus = [self.postStatus copyWithZone:zone];
+        copy.bizId = self.bizId;
+        copy.accountPeriodTime = [self.accountPeriodTime copyWithZone:zone];
         copy.createTime = [self.createTime copyWithZone:zone];
         copy.startTime = [self.startTime copyWithZone:zone];
-        copy.bizName = [self.bizName copyWithZone:zone];
+        copy.accountBalance = self.accountBalance;
+        copy.accountId = self.accountId;
+        copy.buyUserAvatar = [self.buyUserAvatar copyWithZone:zone];
     }
     
     return copy;

+ 4 - 8
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeCountTopView.xib

@@ -190,7 +190,7 @@
                             </constraints>
                         </view>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2021年" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3ll-L4-iNd">
-                            <rect key="frame" x="318" y="22" width="46" height="20"/>
+                            <rect key="frame" x="316" y="22" width="46" height="20"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="20" id="r8M-oS-Wh8"/>
                             </constraints>
@@ -199,14 +199,10 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="PDC-MZ-2mJ">
-                            <rect key="frame" x="370" y="29" width="10" height="6"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="10" id="PxH-Fs-QmJ"/>
-                                <constraint firstAttribute="height" constant="6" id="hPe-xb-Nvy"/>
-                            </constraints>
+                            <rect key="frame" x="368" y="26" width="12" height="12"/>
                         </imageView>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cEz-D3-A6K">
-                            <rect key="frame" x="318" y="15" width="62" height="34"/>
+                            <rect key="frame" x="316" y="15" width="64" height="34"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="34" id="zUY-e0-43B"/>
                             </constraints>
@@ -322,7 +318,7 @@
         </view>
     </objects>
     <resources>
-        <image name="sort_down" width="8" height="6"/>
+        <image name="sort_down" width="12" height="12"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeHeaderView.h

@@ -11,6 +11,8 @@ typedef NS_ENUM(NSInteger, INCOME_ACTION) {
     INCOME_ACTION_TIME,
     INCOME_ACTION_TYPE,
     INCOME_ACTION_WITHDRAW,
+    INCOME_ACTION_FREEZE,    // 冻结
+    INCOME_ACTION_NORECORD, // 待入账
 };
 
 typedef void(^IncomeHeadAction)(INCOME_ACTION action);
@@ -21,6 +23,10 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (weak, nonatomic) IBOutlet UILabel *moneyLabel;
 
+@property (weak, nonatomic) IBOutlet UILabel *freezeAmount;
+
+@property (weak, nonatomic) IBOutlet UILabel *noRecordAmount;
+
 @property (weak, nonatomic) IBOutlet UILabel *timeLabel;
 
 @property (weak, nonatomic) IBOutlet UILabel *typeLabel;

+ 12 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeHeaderView.m

@@ -51,6 +51,18 @@
     }
 }
 
+- (IBAction)freezeDetail:(id)sender {
+    if (self.callback) {
+        self.callback(INCOME_ACTION_FREEZE);
+    }
+}
+
+- (IBAction)noRecordDetail:(id)sender {
+    if (self.callback) {
+        self.callback(INCOME_ACTION_NORECORD);
+    }
+}
+
 - (void)setFirstArrowUp:(BOOL)firstArrowUp {
     _firstArrowUp = firstArrowUp;
     NSString *imageName = firstArrowUp ? @"sort_up" : @"sort_down";

+ 143 - 30
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeHeaderView.xib

@@ -4,6 +4,7 @@
     <dependencies>
         <deployment identifier="iOS"/>
         <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -24,26 +25,17 @@
                                 </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
                         </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="钱包余额(元)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="A9z-Gf-azl">
-                            <rect key="frame" x="21" y="40" width="88" height="21"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="21" id="IlA-x2-HSq"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="15"/>
-                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <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="c3Y-4p-OW4">
-                            <rect key="frame" x="21" y="64" width="0.0" height="36"/>
+                            <rect key="frame" x="18" y="14" width="0.0" height="37"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="36" id="ZfL-MK-P9G"/>
+                                <constraint firstAttribute="height" constant="37" id="Rme-Qy-DMP"/>
                             </constraints>
-                            <fontDescription key="fontDescription" type="boldSystem" pointSize="30"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="26"/>
                             <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="309-Rv-ahg">
-                            <rect key="frame" x="284" y="54" width="80" height="32"/>
+                            <rect key="frame" x="284" y="26" width="80" height="32"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="80" id="V4Z-4m-hxw"/>
                                 <constraint firstAttribute="height" constant="32" id="kVn-il-Msg"/>
@@ -66,33 +58,149 @@
                                 <action selector="withdraw:" destination="iN0-l3-epB" eventType="touchUpInside" id="i15-DS-Yxj"/>
                             </connections>
                         </button>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lr1-Uu-w4Y">
+                            <rect key="frame" x="0.0" y="96" width="386" height="44"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wMc-Lj-oyh">
+                                    <rect key="frame" x="0.0" y="0.0" width="193" height="44"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="冻结金额" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="85w-Ri-Dyl">
+                                            <rect key="frame" x="63.5" y="13.5" width="60" height="17"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="60" id="9SI-a0-kbe"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="b7E-mw-AUj">
+                                            <rect key="frame" x="192" y="14" width="1" height="16"/>
+                                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="1" id="BR6-G4-Fs8"/>
+                                                <constraint firstAttribute="height" constant="16" id="wvE-Kr-I58"/>
+                                            </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="z6G-I6-tR5">
+                                            <rect key="frame" x="129.5" y="22" width="0.0" height="0.0"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                            <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="vw9-9d-p9e">
+                                            <rect key="frame" x="0.0" y="0.0" width="192" height="44"/>
+                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                            <connections>
+                                                <action selector="freezeDetail:" destination="iN0-l3-epB" eventType="touchUpInside" id="aBf-xA-v6s"/>
+                                            </connections>
+                                        </button>
+                                    </subviews>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <constraints>
+                                        <constraint firstAttribute="bottom" secondItem="vw9-9d-p9e" secondAttribute="bottom" id="1LX-Iv-b94"/>
+                                        <constraint firstItem="vw9-9d-p9e" firstAttribute="top" secondItem="wMc-Lj-oyh" secondAttribute="top" id="1QW-q4-tuO"/>
+                                        <constraint firstItem="z6G-I6-tR5" firstAttribute="centerX" secondItem="wMc-Lj-oyh" secondAttribute="centerX" constant="33" id="98d-Qk-lCo"/>
+                                        <constraint firstItem="b7E-mw-AUj" firstAttribute="leading" secondItem="vw9-9d-p9e" secondAttribute="trailing" id="CKS-cQ-S0N"/>
+                                        <constraint firstItem="85w-Ri-Dyl" firstAttribute="centerY" secondItem="wMc-Lj-oyh" secondAttribute="centerY" id="K9k-U5-e9y"/>
+                                        <constraint firstItem="z6G-I6-tR5" firstAttribute="centerY" secondItem="wMc-Lj-oyh" secondAttribute="centerY" id="OqM-en-1cc"/>
+                                        <constraint firstAttribute="trailing" secondItem="b7E-mw-AUj" secondAttribute="trailing" id="Pvo-Ky-eq3"/>
+                                        <constraint firstItem="b7E-mw-AUj" firstAttribute="centerY" secondItem="wMc-Lj-oyh" secondAttribute="centerY" id="R6n-Ni-fhM"/>
+                                        <constraint firstItem="z6G-I6-tR5" firstAttribute="leading" secondItem="85w-Ri-Dyl" secondAttribute="trailing" constant="6" id="hAg-sf-cgf"/>
+                                        <constraint firstItem="85w-Ri-Dyl" firstAttribute="centerY" secondItem="wMc-Lj-oyh" secondAttribute="centerY" id="jrx-3m-ZaI"/>
+                                        <constraint firstItem="vw9-9d-p9e" firstAttribute="leading" secondItem="wMc-Lj-oyh" secondAttribute="leading" id="pBr-sq-Etn"/>
+                                        <constraint firstItem="b7E-mw-AUj" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="z6G-I6-tR5" secondAttribute="trailing" constant="5" id="qYo-gI-MwL"/>
+                                    </constraints>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="N4d-qZ-7rk">
+                                    <rect key="frame" x="193" y="0.0" width="193" height="44"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="待入账金额" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="02c-eO-EoQ">
+                                            <rect key="frame" x="56.5" y="13.5" width="76" height="17"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="76" id="NfE-kF-gwb"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <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="oeL-9M-VLw">
+                                            <rect key="frame" x="136.5" y="22" width="0.0" height="0.0"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                            <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="BzI-qg-vCT">
+                                            <rect key="frame" x="0.0" y="0.0" width="193" height="44"/>
+                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                            <connections>
+                                                <action selector="noRecordDetail:" destination="iN0-l3-epB" eventType="touchUpInside" id="zdI-7R-FIj"/>
+                                            </connections>
+                                        </button>
+                                    </subviews>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <constraints>
+                                        <constraint firstItem="BzI-qg-vCT" firstAttribute="top" secondItem="N4d-qZ-7rk" secondAttribute="top" id="Llr-c8-p1O"/>
+                                        <constraint firstAttribute="bottom" secondItem="BzI-qg-vCT" secondAttribute="bottom" id="VxX-aG-kZK"/>
+                                        <constraint firstItem="oeL-9M-VLw" firstAttribute="centerY" secondItem="02c-eO-EoQ" secondAttribute="centerY" id="dS6-HQ-BrS"/>
+                                        <constraint firstItem="oeL-9M-VLw" firstAttribute="leading" secondItem="02c-eO-EoQ" secondAttribute="trailing" constant="4" id="hoX-of-UUS"/>
+                                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="oeL-9M-VLw" secondAttribute="trailing" constant="5" id="jKS-7Z-LUD"/>
+                                        <constraint firstItem="BzI-qg-vCT" firstAttribute="leading" secondItem="N4d-qZ-7rk" secondAttribute="leading" id="m6v-L1-G2M"/>
+                                        <constraint firstAttribute="trailing" secondItem="BzI-qg-vCT" secondAttribute="trailing" id="pUI-yq-ZtE"/>
+                                        <constraint firstItem="02c-eO-EoQ" firstAttribute="centerY" secondItem="N4d-qZ-7rk" secondAttribute="centerY" id="wgn-gQ-jt6"/>
+                                        <constraint firstItem="oeL-9M-VLw" firstAttribute="centerX" secondItem="N4d-qZ-7rk" secondAttribute="centerX" constant="40" id="z6v-qh-HvN"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.059999999999999998" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                            <constraints>
+                                <constraint firstItem="N4d-qZ-7rk" firstAttribute="top" secondItem="lr1-Uu-w4Y" secondAttribute="top" id="04i-Vy-vjn"/>
+                                <constraint firstAttribute="bottom" secondItem="wMc-Lj-oyh" secondAttribute="bottom" id="2Fu-U5-tfO"/>
+                                <constraint firstAttribute="bottom" secondItem="N4d-qZ-7rk" secondAttribute="bottom" id="AS6-eK-MT5"/>
+                                <constraint firstItem="N4d-qZ-7rk" firstAttribute="leading" secondItem="wMc-Lj-oyh" secondAttribute="trailing" id="DGL-Mu-Vei"/>
+                                <constraint firstItem="wMc-Lj-oyh" firstAttribute="leading" secondItem="lr1-Uu-w4Y" secondAttribute="leading" id="G8K-vZ-MfF"/>
+                                <constraint firstItem="wMc-Lj-oyh" firstAttribute="top" secondItem="lr1-Uu-w4Y" secondAttribute="top" id="Nml-K6-wto"/>
+                                <constraint firstItem="N4d-qZ-7rk" firstAttribute="width" secondItem="wMc-Lj-oyh" secondAttribute="width" id="R32-Zl-Mgo"/>
+                                <constraint firstAttribute="trailing" secondItem="N4d-qZ-7rk" secondAttribute="trailing" id="UCx-Gc-3kw"/>
+                                <constraint firstAttribute="height" constant="44" id="hhN-2z-oEt"/>
+                            </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="A9z-Gf-azl">
+                            <rect key="frame" x="18" y="54" width="88" height="18"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <nil key="highlightedColor"/>
+                        </label>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
                         <constraint firstItem="mHG-fq-Wy5" firstAttribute="leading" secondItem="yOX-e0-V5V" secondAttribute="leading" id="4F4-0D-3a2"/>
+                        <constraint firstItem="309-Rv-ahg" firstAttribute="top" secondItem="yOX-e0-V5V" secondAttribute="top" constant="26" id="7Jw-4R-DuO"/>
+                        <constraint firstItem="A9z-Gf-azl" firstAttribute="top" secondItem="c3Y-4p-OW4" secondAttribute="bottom" constant="3" id="80m-FZ-CbJ"/>
+                        <constraint firstAttribute="bottom" secondItem="lr1-Uu-w4Y" secondAttribute="bottom" id="ChW-Iv-diN"/>
                         <constraint firstAttribute="trailing" secondItem="mHG-fq-Wy5" secondAttribute="trailing" id="Elj-5R-UiH"/>
-                        <constraint firstItem="c3Y-4p-OW4" firstAttribute="top" secondItem="A9z-Gf-azl" secondAttribute="bottom" constant="3" id="Kpg-Wb-MYb"/>
-                        <constraint firstItem="A9z-Gf-azl" firstAttribute="top" secondItem="yOX-e0-V5V" secondAttribute="top" constant="40" id="TKN-7V-I7M"/>
+                        <constraint firstItem="c3Y-4p-OW4" firstAttribute="top" secondItem="yOX-e0-V5V" secondAttribute="top" constant="14" id="Fip-bW-ZMb"/>
+                        <constraint firstItem="A9z-Gf-azl" firstAttribute="leading" secondItem="c3Y-4p-OW4" secondAttribute="leading" id="Saz-5U-vNu"/>
                         <constraint firstAttribute="bottom" secondItem="mHG-fq-Wy5" secondAttribute="bottom" id="Vox-L9-4Kr"/>
                         <constraint firstAttribute="trailing" secondItem="309-Rv-ahg" secondAttribute="trailing" constant="22" id="WcX-9L-usi"/>
-                        <constraint firstItem="c3Y-4p-OW4" firstAttribute="leading" secondItem="A9z-Gf-azl" secondAttribute="leading" id="gPg-eD-6fz"/>
-                        <constraint firstItem="309-Rv-ahg" firstAttribute="centerY" secondItem="yOX-e0-V5V" secondAttribute="centerY" id="kPa-VT-d37"/>
-                        <constraint firstItem="A9z-Gf-azl" firstAttribute="leading" secondItem="yOX-e0-V5V" secondAttribute="leading" constant="21" id="l8I-Vs-jfQ"/>
+                        <constraint firstItem="c3Y-4p-OW4" firstAttribute="leading" secondItem="yOX-e0-V5V" secondAttribute="leading" constant="18" id="jjW-OM-i5s"/>
+                        <constraint firstItem="lr1-Uu-w4Y" firstAttribute="leading" secondItem="yOX-e0-V5V" secondAttribute="leading" id="mza-gD-D4t"/>
+                        <constraint firstAttribute="trailing" secondItem="lr1-Uu-w4Y" secondAttribute="trailing" id="pnQ-ls-PGg"/>
                         <constraint firstItem="mHG-fq-Wy5" firstAttribute="top" secondItem="yOX-e0-V5V" secondAttribute="top" id="qoF-GT-HhJ"/>
                     </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cmW-nR-OLL">
                     <rect key="frame" x="14" y="160" width="386" height="50"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="avr-eL-IPb">
-                            <rect key="frame" x="90" y="22" width="8" height="6"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="8" id="9do-1Q-l6F"/>
-                                <constraint firstAttribute="height" constant="6" id="JKI-e6-4ay"/>
-                            </constraints>
+                            <rect key="frame" x="76" y="19" width="12" height="12"/>
                         </imageView>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2022年9月" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="psQ-m0-LNj">
-                            <rect key="frame" x="14" y="12.5" width="71" height="25"/>
+                            <rect key="frame" x="0.0" y="12.5" width="71" height="25"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="25" id="3Yg-Q4-Gth"/>
                             </constraints>
@@ -101,7 +209,7 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GgG-JD-Cch">
-                            <rect key="frame" x="14" y="5" width="84" height="40"/>
+                            <rect key="frame" x="0.0" y="5" width="88" height="40"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="40" id="fDX-7l-BZL"/>
                             </constraints>
@@ -111,7 +219,7 @@
                             </connections>
                         </button>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部收入" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VcX-wU-9TK">
-                            <rect key="frame" x="144" y="15" width="57.5" height="20"/>
+                            <rect key="frame" x="134" y="15" width="57.5" height="20"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="20" id="S2h-R2-GoP"/>
                             </constraints>
@@ -120,10 +228,10 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="9AQ-BX-bsj">
-                            <rect key="frame" x="207.5" y="22" width="8" height="6"/>
+                            <rect key="frame" x="197.5" y="19" width="12" height="12"/>
                         </imageView>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aBX-lM-I1a">
-                            <rect key="frame" x="144" y="8" width="71.5" height="34"/>
+                            <rect key="frame" x="134" y="8" width="75.5" height="34"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <connections>
                                 <action selector="sortType:" destination="iN0-l3-epB" eventType="touchUpInside" id="v5J-Vt-mI6"/>
@@ -132,7 +240,7 @@
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstItem="psQ-m0-LNj" firstAttribute="leading" secondItem="cmW-nR-OLL" secondAttribute="leading" constant="14" id="2a2-W4-lmG"/>
+                        <constraint firstItem="psQ-m0-LNj" firstAttribute="leading" secondItem="cmW-nR-OLL" secondAttribute="leading" id="2a2-W4-lmG"/>
                         <constraint firstItem="VcX-wU-9TK" firstAttribute="leading" secondItem="avr-eL-IPb" secondAttribute="trailing" constant="46" id="3fA-dC-xVq"/>
                         <constraint firstItem="VcX-wU-9TK" firstAttribute="leading" secondItem="aBX-lM-I1a" secondAttribute="leading" id="DT1-xF-QPo"/>
                         <constraint firstItem="VcX-wU-9TK" firstAttribute="centerY" secondItem="psQ-m0-LNj" secondAttribute="centerY" id="WCG-9h-Qlo"/>
@@ -165,7 +273,9 @@
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
                 <outlet property="firstArrow" destination="avr-eL-IPb" id="zZQ-0F-8Dr"/>
+                <outlet property="freezeAmount" destination="z6G-I6-tR5" id="mly-2c-cty"/>
                 <outlet property="moneyLabel" destination="c3Y-4p-OW4" id="CNg-r1-gFv"/>
+                <outlet property="noRecordAmount" destination="oeL-9M-VLw" id="hbY-ry-Mml"/>
                 <outlet property="secondArrow" destination="9AQ-BX-bsj" id="Saj-ih-TLb"/>
                 <outlet property="timeLabel" destination="psQ-m0-LNj" id="k3K-yr-8Rp"/>
                 <outlet property="typeLabel" destination="VcX-wU-9TK" id="kl6-td-b9p"/>
@@ -175,6 +285,9 @@
     </objects>
     <resources>
         <image name="income_headImage" width="349" height="140"/>
-        <image name="sort_down" width="8" height="6"/>
+        <image name="sort_down" width="12" height="12"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
     </resources>
 </document>

+ 42 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeRecordHeadView.h

@@ -0,0 +1,42 @@
+//
+//  IncomeRecordHeadView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/7/27.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSInteger, INCOMERECORD_ACTION) {
+    INCOMERECORD_ACTION_TIME,
+    INCOMERECORD_ACTION_TYPE,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void(^IncomeRecordAction)(INCOMERECORD_ACTION action);
+
+
+@interface IncomeRecordHeadView : UIView
+
+@property (weak, nonatomic) IBOutlet UILabel *moneyLabel;
+
+@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
+
+@property (weak, nonatomic) IBOutlet UILabel *typeLabel;
+
+@property (nonatomic, assign) BOOL firstArrowUp;
+
+@property (nonatomic, assign) BOOL secondArrowUp;
+
++ (instancetype)shareInstance;
+
+- (void)configWithLogo:(NSString *)logoName descTitle:(NSString *)title bgImageName:(NSString *)bgImageName titleColor:(UIColor *)titleColor fromColor:(UIColor *)fromColor toColor:(UIColor *)toColor;
+
+- (void)headerActionCallback:(IncomeRecordAction)callback;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 96 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeRecordHeadView.m

@@ -0,0 +1,96 @@
+//
+//  IncomeRecordHeadView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/7/27.
+//
+
+#import "IncomeRecordHeadView.h"
+
+@interface IncomeRecordHeadView ()
+
+@property (weak, nonatomic) IBOutlet UIView *bgView;
+
+@property (weak, nonatomic) IBOutlet UIImageView *logoImage;
+@property (weak, nonatomic) IBOutlet UIImageView *bgImage;
+@property (weak, nonatomic) IBOutlet UILabel *amountDesc;
+
+@property (nonatomic, copy) IncomeRecordAction callback;
+
+@property (weak, nonatomic) IBOutlet UIImageView *firstArrow;
+
+@property (weak, nonatomic) IBOutlet UIImageView *secondArrow;
+
+@end
+
+@implementation IncomeRecordHeadView
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+}
+
++ (instancetype)shareInstance {
+    IncomeRecordHeadView *view = [[[NSBundle mainBundle] loadNibNamed:@"IncomeRecordHeadView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configWithLogo:(NSString *)logoName descTitle:(NSString *)title bgImageName:(NSString *)bgImageName titleColor:(UIColor *)titleColor fromColor:(UIColor *)fromColor toColor:(UIColor *)toColor {
+    self.amountDesc.textColor = titleColor;
+    self.moneyLabel.textColor = titleColor;
+    [self.logoImage setImage:[UIImage imageNamed:logoName]];
+    [self.bgImage setImage:[UIImage imageNamed:bgImageName]];
+    self.amountDesc.text = title;
+    CAGradientLayer * gradientLayer = [CAGradientLayer layer];
+    gradientLayer.colors = @[(__bridge id)fromColor.CGColor,(__bridge id)toColor.CGColor];
+    gradientLayer.startPoint = CGPointMake(0.5, 0);
+    gradientLayer.endPoint = CGPointMake(0.5, 1);
+    gradientLayer.frame = CGRectMake(0, 0, (KPortraitWidth - 28), 92);
+    [self.bgView.layer addSublayer:gradientLayer];
+}
+
+
+- (void)headerActionCallback:(IncomeRecordAction)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+
+- (IBAction)sortTime:(id)sender {
+    self.firstArrowUp = YES;
+    if (self.callback) {
+        self.callback(INCOMERECORD_ACTION_TIME);
+    }
+}
+
+- (IBAction)sortType:(id)sender {
+    self.secondArrowUp = YES;
+    if (self.callback) {
+        self.callback(INCOMERECORD_ACTION_TYPE);
+    }
+}
+
+- (void)setFirstArrowUp:(BOOL)firstArrowUp {
+    _firstArrowUp = firstArrowUp;
+    NSString *imageName = firstArrowUp ? @"sort_up" : @"sort_down";
+    [_firstArrow setImage:[UIImage imageNamed:imageName]];
+}
+
+- (void)setSecondArrowUp:(BOOL)secondArrowUp {
+    _secondArrowUp = secondArrowUp;
+    NSString *imageName = secondArrowUp ? @"sort_up" : @"sort_down";
+    [_secondArrow setImage:[UIImage imageNamed:imageName]];
+}
+
++ (CGFloat)getViewHeight {
+    return 210;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 169 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/IncomeRecordHeadView.xib

@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="IncomeRecordHeadView">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="159"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zUh-gn-ND1">
+                    <rect key="frame" x="14" y="10" width="386" height="92"/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="p8u-Tm-z4r">
+                    <rect key="frame" x="14" y="10" width="386" height="92"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="280.00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="et3-t3-Bdu">
+                            <rect key="frame" x="22" y="20" width="94" height="34"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="28"/>
+                            <color key="textColor" red="0.13333333333333333" green="0.3411764705882353" blue="0.56862745098039214" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="freeze_logo" translatesAutoresizingMaskIntoConstraints="NO" id="Wt6-en-vfS">
+                            <rect key="frame" x="22" y="61" width="16" height="16"/>
+                        </imageView>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="冻结金额(元)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="raL-Gn-Lyf">
+                            <rect key="frame" x="42" y="61" width="77" height="16"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                            <color key="textColor" red="0.13333333333333333" green="0.3411764705882353" blue="0.56862745098039214" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="freeze_bg" translatesAutoresizingMaskIntoConstraints="NO" id="FVw-gf-LQ6">
+                            <rect key="frame" x="265" y="8" width="111" height="76"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="111" id="VDK-cL-guM"/>
+                                <constraint firstAttribute="height" constant="76" id="t5b-Q1-nqF"/>
+                            </constraints>
+                        </imageView>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="Wt6-en-vfS" firstAttribute="top" secondItem="et3-t3-Bdu" secondAttribute="bottom" constant="7" id="1mk-O1-ugh"/>
+                        <constraint firstItem="et3-t3-Bdu" firstAttribute="top" secondItem="p8u-Tm-z4r" secondAttribute="top" constant="20" id="43H-Qt-zoA"/>
+                        <constraint firstItem="raL-Gn-Lyf" firstAttribute="leading" secondItem="Wt6-en-vfS" secondAttribute="trailing" constant="4" id="8my-ip-Pal"/>
+                        <constraint firstAttribute="height" constant="92" id="XHh-hS-MLk"/>
+                        <constraint firstItem="et3-t3-Bdu" firstAttribute="leading" secondItem="p8u-Tm-z4r" secondAttribute="leading" constant="22" id="ern-eU-blo"/>
+                        <constraint firstItem="Wt6-en-vfS" firstAttribute="leading" secondItem="et3-t3-Bdu" secondAttribute="leading" id="hpV-OG-GUJ"/>
+                        <constraint firstAttribute="trailing" secondItem="FVw-gf-LQ6" secondAttribute="trailing" constant="10" id="ou4-tz-28B"/>
+                        <constraint firstItem="raL-Gn-Lyf" firstAttribute="centerY" secondItem="Wt6-en-vfS" secondAttribute="centerY" id="rrm-hW-y0l"/>
+                        <constraint firstItem="FVw-gf-LQ6" firstAttribute="centerY" secondItem="p8u-Tm-z4r" secondAttribute="centerY" id="zDl-A1-El0"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fvs-Ds-8h1">
+                    <rect key="frame" x="14" y="112" width="386" height="40"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="QU0-IL-W4J">
+                            <rect key="frame" x="76" y="14" width="12" height="12"/>
+                        </imageView>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2022年9月" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zcf-Dd-oZl">
+                            <rect key="frame" x="0.0" y="7.5" width="71" height="25"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="25" id="vjC-sk-Fmr"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TPS-TK-tUq">
+                            <rect key="frame" x="0.0" y="0.0" width="88" height="40"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="40" id="B8h-tu-VzK"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="sortTime:" destination="iN0-l3-epB" eventType="touchUpInside" id="sOM-BI-Thw"/>
+                            </connections>
+                        </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部类型" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xwz-Ng-Stf">
+                            <rect key="frame" x="134" y="10" width="57.5" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="20" id="7MJ-Mg-a5B"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="Upn-9d-IWI">
+                            <rect key="frame" x="197.5" y="14" width="12" height="12"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QZU-TS-r4e">
+                            <rect key="frame" x="134" y="3" width="75.5" height="34"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="sortType:" destination="iN0-l3-epB" eventType="touchUpInside" id="xhn-D0-lKM"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="Xwz-Ng-Stf" firstAttribute="leading" secondItem="QZU-TS-r4e" secondAttribute="leading" id="7RF-md-EzD"/>
+                        <constraint firstItem="QU0-IL-W4J" firstAttribute="leading" secondItem="zcf-Dd-oZl" secondAttribute="trailing" constant="5" id="8al-NU-QPZ"/>
+                        <constraint firstItem="zcf-Dd-oZl" firstAttribute="centerY" secondItem="fvs-Ds-8h1" secondAttribute="centerY" id="Cdu-dx-IeT"/>
+                        <constraint firstItem="QU0-IL-W4J" firstAttribute="centerY" secondItem="zcf-Dd-oZl" secondAttribute="centerY" id="Dw6-Ia-WWb"/>
+                        <constraint firstItem="zcf-Dd-oZl" firstAttribute="leading" secondItem="TPS-TK-tUq" secondAttribute="leading" id="GIE-Tw-OXX"/>
+                        <constraint firstItem="Upn-9d-IWI" firstAttribute="trailing" secondItem="QZU-TS-r4e" secondAttribute="trailing" id="JrX-ZU-PEI"/>
+                        <constraint firstItem="zcf-Dd-oZl" firstAttribute="leading" secondItem="fvs-Ds-8h1" secondAttribute="leading" id="PEL-gi-TSz"/>
+                        <constraint firstItem="Xwz-Ng-Stf" firstAttribute="leading" secondItem="QU0-IL-W4J" secondAttribute="trailing" constant="46" id="UC9-4X-Uqo"/>
+                        <constraint firstItem="zcf-Dd-oZl" firstAttribute="centerY" secondItem="TPS-TK-tUq" secondAttribute="centerY" id="hQv-eM-btf"/>
+                        <constraint firstItem="Upn-9d-IWI" firstAttribute="leading" secondItem="Xwz-Ng-Stf" secondAttribute="trailing" constant="6" id="i0w-8a-FnG"/>
+                        <constraint firstItem="QU0-IL-W4J" firstAttribute="trailing" secondItem="TPS-TK-tUq" secondAttribute="trailing" id="oiP-qp-MSN"/>
+                        <constraint firstItem="Upn-9d-IWI" firstAttribute="centerY" secondItem="Xwz-Ng-Stf" secondAttribute="centerY" id="rEQ-nf-ruG"/>
+                        <constraint firstAttribute="height" constant="40" id="rzo-ya-csT"/>
+                        <constraint firstItem="Xwz-Ng-Stf" firstAttribute="centerY" secondItem="zcf-Dd-oZl" secondAttribute="centerY" id="sNv-y9-qgW"/>
+                        <constraint firstItem="Upn-9d-IWI" firstAttribute="centerY" secondItem="QZU-TS-r4e" secondAttribute="centerY" id="y3S-ia-MHd"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="p8u-Tm-z4r" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="2aA-el-ZlG"/>
+                <constraint firstItem="p8u-Tm-z4r" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="3YN-G1-ajA"/>
+                <constraint firstAttribute="trailing" secondItem="p8u-Tm-z4r" secondAttribute="trailing" constant="14" id="PQI-Rp-KsK"/>
+                <constraint firstItem="zUh-gn-ND1" firstAttribute="bottom" secondItem="p8u-Tm-z4r" secondAttribute="bottom" id="PW7-pl-FaD"/>
+                <constraint firstItem="zUh-gn-ND1" firstAttribute="leading" secondItem="p8u-Tm-z4r" secondAttribute="leading" id="WML-4O-qpw"/>
+                <constraint firstItem="zUh-gn-ND1" firstAttribute="top" secondItem="p8u-Tm-z4r" secondAttribute="top" id="ZPF-Ge-NtV"/>
+                <constraint firstItem="zUh-gn-ND1" firstAttribute="trailing" secondItem="p8u-Tm-z4r" secondAttribute="trailing" id="cYj-yE-1fW"/>
+                <constraint firstItem="fvs-Ds-8h1" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="kjd-tj-tfa"/>
+                <constraint firstItem="fvs-Ds-8h1" firstAttribute="top" secondItem="p8u-Tm-z4r" secondAttribute="bottom" constant="10" id="zjx-yO-Rxh"/>
+                <constraint firstAttribute="trailing" secondItem="fvs-Ds-8h1" secondAttribute="trailing" constant="14" id="zs1-7K-dK4"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="amountDesc" destination="raL-Gn-Lyf" id="GqK-tY-w4n"/>
+                <outlet property="bgImage" destination="FVw-gf-LQ6" id="y1e-qw-VZ5"/>
+                <outlet property="bgView" destination="zUh-gn-ND1" id="i4l-AE-5Wm"/>
+                <outlet property="firstArrow" destination="QU0-IL-W4J" id="s6U-7Z-eb4"/>
+                <outlet property="logoImage" destination="Wt6-en-vfS" id="Fqu-FG-x5L"/>
+                <outlet property="moneyLabel" destination="et3-t3-Bdu" id="vYw-S2-e9k"/>
+                <outlet property="secondArrow" destination="Upn-9d-IWI" id="Kbf-Jc-VeQ"/>
+                <outlet property="timeLabel" destination="zcf-Dd-oZl" id="u6m-lM-Kcc"/>
+                <outlet property="typeLabel" destination="Xwz-Ng-Stf" id="ok9-Jw-Oga"/>
+            </connections>
+            <point key="canvasLocation" x="131.8840579710145" y="-55.245535714285715"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="freeze_bg" width="111" height="76"/>
+        <image name="freeze_logo" width="16" height="16"/>
+        <image name="sort_down" width="12" height="12"/>
+    </resources>
+</document>

+ 7 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/View/MyIncomeListCell.m

@@ -62,7 +62,13 @@
     NSString *endStr = [NSString returnNoNullStringWithString:[dateFormatter stringFromDate:endDate]];
     self.courseTime.text = [NSString stringWithFormat:@"%@~%@", beginStr, endStr];
     self.incomeFromLabel.text = [NSString returnNoNullStringWithString:sourceModel.bizName];
-    if ([sourceModel.bizType isEqualToString:@"PRACTICE"]) {
+    if ([sourceModel.postStatus isEqualToString:@"FROZEN"]) { // 冻结类型
+        [self.courseTypeImage setImage:[UIImage imageNamed:@"freeze_amount"]];
+        [dateFormatter setDateFormat:@"yyyy/MM/dd HH:mm"];
+        NSString *createTime = [NSString returnNoNullStringWithString:[dateFormatter stringFromDate:createDate]];
+        self.courseTime.text = createTime;
+    }
+    else if ([sourceModel.bizType isEqualToString:@"PRACTICE"]) { // 其他
         [self.courseTypeImage setImage:[UIImage imageNamed:@"income_accompany"]];
     }
     else if ([sourceModel.bizType isEqualToString:@"LIVE"]) {

+ 6 - 10
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/WithDraw/View/CashRecordHeadView.xib

@@ -17,11 +17,7 @@
                     <rect key="frame" x="0.0" y="0.0" width="414" height="112"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="UsY-Z5-hKA">
-                            <rect key="frame" x="48" y="53" width="8" height="6"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="6" id="CLb-Fi-FhI"/>
-                                <constraint firstAttribute="width" constant="8" id="Lde-qX-YOy"/>
-                            </constraints>
+                            <rect key="frame" x="48" y="50" width="12" height="12"/>
                         </imageView>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8ff-zg-qGP">
                             <rect key="frame" x="14" y="43.5" width="29" height="25"/>
@@ -33,7 +29,7 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ady-1X-WHs">
-                            <rect key="frame" x="14" y="36" width="42" height="40"/>
+                            <rect key="frame" x="14" y="36" width="46" height="40"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="40" id="Xtc-gQ-fMh"/>
                             </constraints>
@@ -43,7 +39,7 @@
                             </connections>
                         </button>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2022年9月" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v5X-UI-tb0">
-                            <rect key="frame" x="102" y="46" width="71" height="20"/>
+                            <rect key="frame" x="106" y="46" width="71" height="20"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="20" id="Yba-xQ-XI1"/>
                             </constraints>
@@ -52,10 +48,10 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="jgr-8B-mhL">
-                            <rect key="frame" x="179" y="53" width="8" height="6"/>
+                            <rect key="frame" x="183" y="50" width="12" height="12"/>
                         </imageView>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Yb2-rC-0aD">
-                            <rect key="frame" x="102" y="39" width="85" height="34"/>
+                            <rect key="frame" x="106" y="39" width="89" height="34"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <connections>
                                 <action selector="sortTime:" destination="iN0-l3-epB" eventType="touchUpInside" id="p3p-L9-ljE"/>
@@ -101,6 +97,6 @@
         </view>
     </objects>
     <resources>
-        <image name="sort_down" width="8" height="6"/>
+        <image name="sort_down" width="12" height="12"/>
     </resources>
 </document>

+ 4 - 10
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/Controller/MyMusicViewController.m

@@ -52,7 +52,7 @@
     [super viewDidLoad];
     // Do any additional setup after loading the view.
     [self allocTitle:@"我的曲谱"];
-    _titles = @[@"已上架",@"审核中",@"审核失败"];
+    _titles = @[@"已购买",@"已上架",@"审核中",@"审核失败"];
     [self configUI];
 }
 
@@ -289,14 +289,8 @@
     listView.naviController = self.navigationController;
     [self.listViewArray replaceObjectAtIndex:index withObject:listView];
     self.listViewArray[index] = listView;
-    if (index == 0) {
-        listView.selectIndex = 0;
-    }else if (index == 1) {
-        listView.selectIndex = 1;
-    }
-    else {
-        listView.selectIndex = 2;
-    }
+    listView.selectIndex = index;
+    
     if (self.teacherInfo) {
         listView.teaherStatus = self.teacherInfo.entryStatus;
     }
@@ -335,7 +329,7 @@
 
 - (NSMutableArray *)listViewArray {
     if (!_listViewArray) {
-        _listViewArray = [NSMutableArray arrayWithArray:@[@"",@"",@""]];
+        _listViewArray = [NSMutableArray arrayWithArray:@[@"",@"",@"",@""]];
     }
     return _listViewArray;
 }

+ 61 - 31
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/View/MyMusicBodyView.m

@@ -92,13 +92,13 @@
     self.isLoadMore = YES;
     self.pages = 1;
     self.rows = 10;
-    if (self.selectIndex == 0) { // 已上架
+    if (self.selectIndex == 1) { // 已上架
         self.audioStatus = @"PASS";
     }
-    else if (self.selectIndex == 1) { // 审核中
+    else if (self.selectIndex == 2) { // 审核中
         self.audioStatus = @"DOING";
     }
-    else if (self.selectIndex == 2) { // 审核失败
+    else if (self.selectIndex == 3) { // 审核失败
         self.audioStatus = @"UNPASS";
     }
     self.dataArray = [NSMutableArray array];
@@ -109,32 +109,62 @@
 
 
 - (void)requestData {
-    [KSNetworkingManager musicListRequest:KS_POST auditStatus:self.audioStatus page:self.pages rows:self.rows search:self.searchKey subjectIds:self.subjectIds success:^(NSDictionary * _Nonnull dic) {
-        [self endRefresh];
-        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
-            NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
-            for (NSDictionary *parm in sourceArray) {
-                MusicMessageModel *model = [[MusicMessageModel alloc] initWithDictionary:parm];
-                [self.dataArray addObject:model];
+    if (self.selectIndex == 0) {
+        [KSNetworkingManager myMusicListRequest:KS_GET page:self.pages rows:self.rows search:self.searchKey subjectIds:self.subjectIds success:^(NSDictionary * _Nonnull dic) {
+            [self endRefresh];
+            if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+                NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+                for (NSDictionary *parm in sourceArray) {
+                    MusicMessageModel *model = [[MusicMessageModel alloc] initWithDictionary:parm];
+                    [self.dataArray addObject:model];
+                }
+                if (sourceArray.count < self.rows) {
+                    self.isLoadMore = NO;
+                }
             }
-            if (sourceArray.count < self.rows) {
-                self.isLoadMore = NO;
+            else {
+                [self MBPShow:MESSAGEKEY];
             }
-        }
-        else {
-            [self MBPShow:MESSAGEKEY];
-        }
-        [self.tableView reloadData];
-        [self changePromptLabelStateWithArray:self.dataArray];
-    } faliure:^(NSError * _Nonnull error) {
-        [self endRefresh];
-        if (self.networkAvaiable == NO) {
-            [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
-        }
-        [self.dataArray removeAllObjects];
-        [self.tableView reloadData];
-        [self changePromptLabelStateWithArray:self.dataArray];
-    }];
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        } faliure:^(NSError * _Nonnull error) {
+            [self endRefresh];
+            if (self.networkAvaiable == NO) {
+                [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+            }
+            [self.dataArray removeAllObjects];
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        }];
+    }
+    else {
+        [KSNetworkingManager musicListRequest:KS_POST auditStatus:self.audioStatus page:self.pages rows:self.rows search:self.searchKey subjectIds:self.subjectIds success:^(NSDictionary * _Nonnull dic) {
+            [self endRefresh];
+            if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+                NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+                for (NSDictionary *parm in sourceArray) {
+                    MusicMessageModel *model = [[MusicMessageModel alloc] initWithDictionary:parm];
+                    [self.dataArray addObject:model];
+                }
+                if (sourceArray.count < self.rows) {
+                    self.isLoadMore = NO;
+                }
+            }
+            else {
+                [self MBPShow:MESSAGEKEY];
+            }
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        } faliure:^(NSError * _Nonnull error) {
+            [self endRefresh];
+            if (self.networkAvaiable == NO) {
+                [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+            }
+            [self.dataArray removeAllObjects];
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
+        }];
+    }
 }
 
 
@@ -158,9 +188,9 @@
 
 - (void)layoutSubviews {
     [super layoutSubviews];
-    CGFloat topHeight = 60.0f;
+    CGFloat topHeight = self.selectIndex == 0 ? 0 : 60.0f;
     self.tableView.frame = CGRectMake(0, topHeight, self.bounds.size.width, self.bounds.size.height - topHeight);
-    if (!_uploadView) {
+    if (!_uploadView && self.selectIndex != 0) {
         self.uploadView = [MusicUploadView shareInstance];
         self.uploadView.frame = CGRectMake(0, 0, kScreenWidth, topHeight);
         [self addSubview:self.uploadView];
@@ -203,7 +233,7 @@
 }
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    if (self.selectIndex == 2) {
+    if (self.selectIndex == 3) {
         MusicMessageModel *model = self.dataArray[indexPath.row];
         KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
         webCtrl.url = [NSString stringWithFormat:@"%@/#/music-upload/%.0f/edit", WEBHOST, model.internalBaseClassIdentifier];
@@ -299,7 +329,7 @@
         self.authStatus = NO;
     }
     
-    if (self.authStatus == NO) {
+    if (self.authStatus == NO && self.selectIndex != 0) {
         [self showAuthView];
     }
     else {

+ 4 - 16
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonSearchView.xib

@@ -20,11 +20,7 @@
                             <rect key="frame" x="0.0" y="0.0" width="131.5" height="88"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="vSU-NS-Qou">
-                                    <rect key="frame" x="113.5" y="41" width="8" height="6"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="6" id="L0G-Nt-hlU"/>
-                                        <constraint firstAttribute="width" constant="8" id="nhm-Fv-ewC"/>
-                                    </constraints>
+                                    <rect key="frame" x="109.5" y="38" width="12" height="12"/>
                                 </imageView>
                                 <button opaque="NO" tag="1001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CSP-VE-Q55">
                                     <rect key="frame" x="0.0" y="0.0" width="131.5" height="88"/>
@@ -51,11 +47,7 @@
                             <rect key="frame" x="141.5" y="0.0" width="131" height="88"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="OTv-DP-LWv">
-                                    <rect key="frame" x="103" y="41" width="8" height="6"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="8" id="5Xg-pv-7Nq"/>
-                                        <constraint firstAttribute="height" constant="6" id="z2o-1V-B1s"/>
-                                    </constraints>
+                                    <rect key="frame" x="99" y="38" width="12" height="12"/>
                                 </imageView>
                                 <button opaque="NO" tag="1002" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4ob-Ur-wiA">
                                     <rect key="frame" x="0.0" y="0.0" width="131" height="88"/>
@@ -82,11 +74,7 @@
                             <rect key="frame" x="282.5" y="0.0" width="131.5" height="88"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="2nN-nP-Pcx">
-                                    <rect key="frame" x="103.5" y="41" width="8" height="6"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="6" id="Hqu-N6-YGq"/>
-                                        <constraint firstAttribute="width" constant="8" id="RHc-EF-HM2"/>
-                                    </constraints>
+                                    <rect key="frame" x="99.5" y="38" width="12" height="12"/>
                                 </imageView>
                                 <button opaque="NO" tag="1003" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cgC-dL-lRH">
                                     <rect key="frame" x="0.0" y="0.0" width="131.5" height="88"/>
@@ -163,6 +151,6 @@
         </view>
     </objects>
     <resources>
-        <image name="sort_down" width="8" height="6"/>
+        <image name="sort_down" width="12" height="12"/>
     </resources>
 </document>

+ 30 - 49
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeHeadView.m

@@ -12,11 +12,9 @@
 @interface HomeHeadView ()
 
 @property (weak, nonatomic) IBOutlet UIView *authView;
-@property (weak, nonatomic) IBOutlet UILabel *authLabel;
 
 @property (weak, nonatomic) IBOutlet UIView *descView;
 
-@property (weak, nonatomic) IBOutlet UIButton *tipsButton;
 @property (weak, nonatomic) IBOutlet UIView *starbgView;
 @property (weak, nonatomic) IBOutlet KSStarView *starView;
 
@@ -26,13 +24,6 @@
 @property (weak, nonatomic) IBOutlet UIImageView *userAvatal;
 @property (weak, nonatomic) IBOutlet UILabel *userName;
 
-@property (weak, nonatomic) IBOutlet UIImageView *firstLogo;
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *firstLogoWidth;
-
-@property (weak, nonatomic) IBOutlet UIImageView *secondLogo;
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *secondLogoWidth;
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *logoSpace;
-
 @property (weak, nonatomic) IBOutlet UIView *emptyView;
 
 @property (nonatomic, copy) HomeHeadCallback callback;
@@ -41,6 +32,12 @@
 
 @property (nonatomic, assign) BOOL hasAuthMusic;
 
+@property (weak, nonatomic) IBOutlet UIImageView *viperImage;
+@property (weak, nonatomic) IBOutlet UIImageView *styleImage;
+@property (weak, nonatomic) IBOutlet UIImageView *videoImage;
+@property (weak, nonatomic) IBOutlet UIImageView *liveImage;
+@property (weak, nonatomic) IBOutlet UIImageView *musicImage;
+
 @end
 
 @implementation HomeHeadView
@@ -59,25 +56,12 @@
         [self displayCount:infoMessage.fansNum inView:self.fansCount];
         [self displayCount:infoMessage.expTime inView:self.finishCourse];
         [self displayCount:infoMessage.unExpTime inView:self.unfinishCourse];
-        self.tipsButton.hidden = YES;
     }
     else {
         self.hasAuthTeacher = NO;
         self.authView.hidden = NO;
         self.descView.hidden = YES;
-        self.tipsButton.hidden = NO;
-        if (USER_MANAGER.hiddenTipsButton) {
-            self.tipsButton.hidden = YES;
-        }
-        else {
-            self.tipsButton.hidden = NO;
-        }
-        if ([infoMessage.entryStatus isEqualToString:@"DOING"]) {
-            self.authLabel.text = @"认证审核中";
-        }
-        else {
-            self.authLabel.text = @"认证达人";
-        }
+       
     }
     if (infoMessage.starGrade > 0) {
         self.starbgView.hidden = NO;
@@ -89,6 +73,29 @@
         self.emptyView.hidden = NO;
     }
     
+    NSArray *tagArray = [infoMessage.tag componentsSeparatedByString:@","];
+    NSString *viperImage = infoMessage.isVip ? @"mine_vip" : @"mine_nomal";
+    [self.viperImage setImage:[UIImage imageNamed:viperImage]];
+    [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_nomal"]];
+    [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_nomal"]];
+    [self.liveImage setImage:[UIImage imageNamed:@"mineLive_nomal"]];
+    [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
+
+    for (NSString *tagString in tagArray) {
+        if ([tagString isEqualToString:@"STYLE"]) {
+            [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];
+        }
+        else if ([tagString isEqualToString:@"VIDEO"]) {
+            [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_active"]];
+        }
+        else if ([tagString isEqualToString:@"LIVE"]) {
+            [self.liveImage setImage:[UIImage imageNamed:@"mineLive_active"]];
+        }
+        else if ([tagString isEqualToString:@"MUSIC"]) {
+            [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_active"]];
+        }
+    }
+    
     if ([infoMessage.musicianAuthStatus isEqualToString:@"PASS"]) {
         self.hasAuthMusic = YES;
     }else {
@@ -107,29 +114,8 @@
     else {
         self.userName.text = [NSString returnNoNullStringWithString:infoMessage.username];
     }
-    [self evaluateAuthLogo];
 }
 
-- (void)evaluateAuthLogo {
-    if (self.hasAuthTeacher) {
-        self.firstLogo.hidden = NO;
-        self.firstLogoWidth.constant = 53.0f;
-    }
-    else {
-        self.firstLogo.hidden = YES;
-        self.firstLogoWidth.constant = 0.0f;
-        self.logoSpace.constant = 0.0f;
-    }
-    
-    if (self.hasAuthMusic) {
-        self.secondLogo.hidden = NO;
-        self.secondLogoWidth.constant = 61.0f;
-    }
-    else {
-        self.secondLogo.hidden = YES ;
-        self.secondLogoWidth.constant = 0.0f;
-    }
-}
 
 - (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel {
     if (count > 10000) {
@@ -162,11 +148,6 @@
     }
 }
 
-- (IBAction)hideTipsButton:(id)sender {
-    self.tipsButton.hidden = YES;
-    USER_MANAGER.hiddenTipsButton = YES;
-}
-
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 81 - 109
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeHeadView.xib

@@ -14,7 +14,7 @@
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_ikon" translatesAutoresizingMaskIntoConstraints="NO" id="Keh-u1-LE5">
-                    <rect key="frame" x="186" y="12" width="228" height="162"/>
+                    <rect key="frame" x="186" y="0.0" width="228" height="162"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="162" id="FOy-ad-3p4"/>
                         <constraint firstAttribute="width" constant="228" id="mGD-5s-cGh"/>
@@ -186,107 +186,38 @@
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ixV-E1-X1x">
                     <rect key="frame" x="0.0" y="70" width="207" height="80"/>
                     <subviews>
-                        <view tag="1001" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HsO-mZ-asE">
-                            <rect key="frame" x="14" y="5" width="112.5" height="42"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5Yr-A2-BRU">
+                            <rect key="frame" x="22" y="10" width="116" height="36"/>
                             <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="auth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="g96-LV-suH">
-                                    <rect key="frame" x="11" y="11.5" width="16" height="19"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="16" id="1RJ-a4-bzO"/>
-                                        <constraint firstAttribute="height" constant="19" id="keJ-7t-glX"/>
-                                    </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="FCe-w1-PSG">
-                                    <rect key="frame" x="32" y="12.5" width="57.5" height="17"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="17" id="pL0-Bg-rgN"/>
-                                    </constraints>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                    <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="auth_detail" translatesAutoresizingMaskIntoConstraints="NO" id="Ajd-Uj-8Uw">
-                                    <rect key="frame" x="94.5" y="16.5" width="6" height="9"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="9" id="1Qj-hG-j7i"/>
-                                        <constraint firstAttribute="width" constant="6" id="RLc-Ys-qb1"/>
-                                    </constraints>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="status_unAuth" translatesAutoresizingMaskIntoConstraints="NO" id="0rl-00-MDQ">
+                                    <rect key="frame" x="0.0" y="0.0" width="116" height="36"/>
                                 </imageView>
+                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="139-Q3-P80">
+                                    <rect key="frame" x="0.0" y="0.0" width="116" height="36"/>
+                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                </button>
                             </subviews>
-                            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
-                            <gestureRecognizers/>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <constraints>
-                                <constraint firstItem="FCe-w1-PSG" firstAttribute="centerY" secondItem="g96-LV-suH" secondAttribute="centerY" id="7AU-oe-Jga"/>
-                                <constraint firstAttribute="trailing" secondItem="Ajd-Uj-8Uw" secondAttribute="trailing" constant="12" id="BLS-ng-X8d"/>
-                                <constraint firstItem="FCe-w1-PSG" firstAttribute="leading" secondItem="g96-LV-suH" secondAttribute="trailing" constant="5" id="REl-f5-FmE"/>
-                                <constraint firstItem="Ajd-Uj-8Uw" firstAttribute="leading" secondItem="FCe-w1-PSG" secondAttribute="trailing" constant="5" id="bkT-gC-bjp"/>
-                                <constraint firstItem="g96-LV-suH" firstAttribute="leading" secondItem="HsO-mZ-asE" secondAttribute="leading" constant="11" id="haj-R7-pbI"/>
-                                <constraint firstItem="g96-LV-suH" firstAttribute="centerY" secondItem="HsO-mZ-asE" secondAttribute="centerY" id="lY6-zd-m2g"/>
-                                <constraint firstItem="Ajd-Uj-8Uw" firstAttribute="centerY" secondItem="FCe-w1-PSG" secondAttribute="centerY" id="tZ1-Yq-zbx"/>
-                                <constraint firstAttribute="height" constant="42" id="v97-d4-qka"/>
+                                <constraint firstAttribute="trailing" secondItem="0rl-00-MDQ" secondAttribute="trailing" id="4tM-td-Wtn"/>
+                                <constraint firstItem="0rl-00-MDQ" firstAttribute="leading" secondItem="5Yr-A2-BRU" secondAttribute="leading" id="C2W-0N-evn"/>
+                                <constraint firstItem="139-Q3-P80" firstAttribute="leading" secondItem="5Yr-A2-BRU" secondAttribute="leading" id="GKs-ur-ec6"/>
+                                <constraint firstItem="0rl-00-MDQ" firstAttribute="top" secondItem="5Yr-A2-BRU" secondAttribute="top" id="Hwa-Gg-zKd"/>
+                                <constraint firstItem="139-Q3-P80" firstAttribute="top" secondItem="5Yr-A2-BRU" secondAttribute="top" id="M4V-aU-TJp"/>
+                                <constraint firstAttribute="bottom" secondItem="0rl-00-MDQ" secondAttribute="bottom" id="Nd6-gq-Myo"/>
+                                <constraint firstAttribute="bottom" secondItem="139-Q3-P80" secondAttribute="bottom" id="VU4-MM-WE3"/>
+                                <constraint firstAttribute="trailing" secondItem="139-Q3-P80" secondAttribute="trailing" id="ZGb-ha-QVS"/>
+                                <constraint firstAttribute="height" constant="36" id="dfT-5r-6qB"/>
+                                <constraint firstAttribute="width" constant="116" id="uz1-fW-faD"/>
                             </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="21"/>
-                                </userDefinedRuntimeAttribute>
-                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
-                                    <real key="value" value="1"/>
-                                </userDefinedRuntimeAttribute>
-                                <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
-                                    <color key="value" red="0.81960784310000001" green="0.96078431369999995" blue="0.90196078430000004" alpha="1" colorSpace="calibratedRGB"/>
-                                </userDefinedRuntimeAttribute>
-                                <userDefinedRuntimeAttribute type="size" keyPath="shadowOffset">
-                                    <size key="value" width="0.0" height="2"/>
-                                </userDefinedRuntimeAttribute>
-                                <userDefinedRuntimeAttribute type="color" keyPath="shadowUIColor">
-                                    <color key="value" red="0.61568627450000002" green="0.61568627450000002" blue="0.61568627450000002" alpha="0.11" colorSpace="custom" customColorSpace="calibratedRGB"/>
-                                </userDefinedRuntimeAttribute>
-                                <userDefinedRuntimeAttribute type="number" keyPath="shadowOpacity">
-                                    <real key="value" value="1"/>
-                                </userDefinedRuntimeAttribute>
-                                <userDefinedRuntimeAttribute type="number" keyPath="shadowRadius">
-                                    <real key="value" value="14"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
-                            <connections>
-                                <outletCollection property="gestureRecognizers" destination="OCQ-jL-ZXB" appends="YES" id="htW-B6-BvV"/>
-                            </connections>
                         </view>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cWQ-Xi-HcJ">
-                            <rect key="frame" x="6" y="48" width="185" height="26"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="185" id="lLT-ip-f2l"/>
-                                <constraint firstAttribute="height" constant="26" id="zmh-iR-TVA"/>
-                            </constraints>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" image="auth_tips"/>
-                            <connections>
-                                <action selector="hideTipsButton:" destination="iN0-l3-epB" eventType="touchUpInside" id="HRv-Lr-JZC"/>
-                            </connections>
-                        </button>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstItem="HsO-mZ-asE" firstAttribute="top" secondItem="ixV-E1-X1x" secondAttribute="top" constant="5" id="3rH-v0-uZu"/>
-                        <constraint firstItem="cWQ-Xi-HcJ" firstAttribute="top" secondItem="HsO-mZ-asE" secondAttribute="bottom" constant="1" id="OSQ-mq-9M2"/>
-                        <constraint firstItem="HsO-mZ-asE" firstAttribute="leading" secondItem="ixV-E1-X1x" secondAttribute="leading" constant="14" id="aQy-Vm-8SB"/>
-                        <constraint firstItem="cWQ-Xi-HcJ" firstAttribute="leading" secondItem="ixV-E1-X1x" secondAttribute="leading" constant="6" id="qYM-39-uFA"/>
+                        <constraint firstItem="5Yr-A2-BRU" firstAttribute="top" secondItem="ixV-E1-X1x" secondAttribute="top" constant="10" id="VtQ-4p-G34"/>
+                        <constraint firstItem="5Yr-A2-BRU" firstAttribute="leading" secondItem="ixV-E1-X1x" secondAttribute="leading" constant="22" id="oT0-DM-lrV"/>
                     </constraints>
                 </view>
-                <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="teacherAuth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="BgO-43-Wsb">
-                    <rect key="frame" x="123" y="10" width="53" height="22"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="53" id="9GO-UE-0ar"/>
-                        <constraint firstAttribute="height" constant="22" id="Yi8-08-7BF"/>
-                    </constraints>
-                </imageView>
-                <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="musicianAuth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="3fi-Mc-0oP">
-                    <rect key="frame" x="180" y="10" width="61" height="22"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="61" id="3Nz-yk-dD3"/>
-                        <constraint firstAttribute="height" constant="22" id="84M-Rs-Qki"/>
-                    </constraints>
-                </imageView>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6p5-cJ-ewl">
                     <rect key="frame" x="14" y="4" width="52" height="52"/>
                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
@@ -294,22 +225,63 @@
                         <action selector="userCenter:" destination="iN0-l3-epB" eventType="touchUpInside" id="2AR-n9-ABc"/>
                     </connections>
                 </button>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cUe-bz-fnj">
+                    <rect key="frame" x="119" y="9" width="126" height="24"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="0Xo-pg-STA">
+                            <rect key="frame" x="0.0" y="4.5" width="34" height="15"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="15" id="IFa-Xa-9xc"/>
+                                <constraint firstAttribute="width" constant="34" id="pS5-d7-HGs"/>
+                            </constraints>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineStyle_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="5j7-Yg-UN7">
+                            <rect key="frame" x="38" y="3" width="18" height="18"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="18" id="8U2-6V-fmN"/>
+                                <constraint firstAttribute="width" constant="18" id="PTw-gD-7fE"/>
+                            </constraints>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineVideo_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="tLe-yi-47U">
+                            <rect key="frame" x="60" y="3" width="18" height="18"/>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineLive_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="oX1-hp-Dyb">
+                            <rect key="frame" x="82" y="3" width="18" height="18"/>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineMusic_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="ezs-lZ-Xnl">
+                            <rect key="frame" x="104" y="3" width="18" height="18"/>
+                        </imageView>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="ezs-lZ-Xnl" firstAttribute="leading" secondItem="oX1-hp-Dyb" secondAttribute="trailing" constant="4" id="1nd-EQ-xMD"/>
+                        <constraint firstAttribute="width" constant="126" id="1uP-Pu-bDM"/>
+                        <constraint firstItem="tLe-yi-47U" firstAttribute="centerY" secondItem="0Xo-pg-STA" secondAttribute="centerY" id="Faa-xP-lA8"/>
+                        <constraint firstItem="oX1-hp-Dyb" firstAttribute="leading" secondItem="tLe-yi-47U" secondAttribute="trailing" constant="4" id="KQD-8u-KrQ"/>
+                        <constraint firstItem="ezs-lZ-Xnl" firstAttribute="centerY" secondItem="0Xo-pg-STA" secondAttribute="centerY" id="LrG-Yr-kEC"/>
+                        <constraint firstItem="5j7-Yg-UN7" firstAttribute="centerY" secondItem="0Xo-pg-STA" secondAttribute="centerY" id="NB0-SX-zC4"/>
+                        <constraint firstItem="tLe-yi-47U" firstAttribute="leading" secondItem="5j7-Yg-UN7" secondAttribute="trailing" constant="4" id="ORk-rg-5lf"/>
+                        <constraint firstItem="0Xo-pg-STA" firstAttribute="leading" secondItem="cUe-bz-fnj" secondAttribute="leading" id="YU5-SY-ZGW"/>
+                        <constraint firstItem="5j7-Yg-UN7" firstAttribute="leading" secondItem="0Xo-pg-STA" secondAttribute="trailing" constant="4" id="cRy-jf-t4h"/>
+                        <constraint firstAttribute="trailing" secondItem="ezs-lZ-Xnl" secondAttribute="trailing" constant="4" id="jZo-ST-fJY"/>
+                        <constraint firstItem="oX1-hp-Dyb" firstAttribute="centerY" secondItem="0Xo-pg-STA" secondAttribute="centerY" id="o5I-2K-73a"/>
+                        <constraint firstItem="0Xo-pg-STA" firstAttribute="centerY" secondItem="cUe-bz-fnj" secondAttribute="centerY" id="rvE-tJ-fqV"/>
+                        <constraint firstAttribute="height" constant="24" id="zOJ-Bx-EzM"/>
+                    </constraints>
+                </view>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
                 <constraint firstItem="Bxq-wl-TlW" firstAttribute="leading" secondItem="xs8-aA-tdP" secondAttribute="leading" id="7RR-w2-2XX"/>
                 <constraint firstItem="QKO-WL-PjF" firstAttribute="top" secondItem="ixV-E1-X1x" secondAttribute="top" id="9ca-DC-xzk"/>
-                <constraint firstItem="BgO-43-Wsb" firstAttribute="leading" secondItem="xs8-aA-tdP" secondAttribute="trailing" constant="10" id="9d8-9B-eG1"/>
                 <constraint firstAttribute="bottom" secondItem="QKO-WL-PjF" secondAttribute="bottom" constant="12" id="BP0-cm-2XI"/>
                 <constraint firstItem="Bxq-wl-TlW" firstAttribute="top" secondItem="xs8-aA-tdP" secondAttribute="bottom" constant="5" id="DCH-Eo-fVc"/>
-                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="3fi-Mc-0oP" secondAttribute="trailing" constant="10" id="DeN-Bs-2kD"/>
-                <constraint firstItem="3fi-Mc-0oP" firstAttribute="leading" secondItem="BgO-43-Wsb" secondAttribute="trailing" constant="4" id="EfU-XF-s6S"/>
                 <constraint firstItem="xs8-aA-tdP" firstAttribute="leading" secondItem="Vp5-5Y-h2u" secondAttribute="trailing" constant="10" id="Hb2-ur-ijs"/>
-                <constraint firstItem="3fi-Mc-0oP" firstAttribute="centerY" secondItem="xs8-aA-tdP" secondAttribute="centerY" id="J3j-Ua-dvb"/>
-                <constraint firstAttribute="bottom" secondItem="Keh-u1-LE5" secondAttribute="bottom" constant="-12" id="Lww-yr-BS1"/>
+                <constraint firstAttribute="bottom" secondItem="Keh-u1-LE5" secondAttribute="bottom" id="Lww-yr-BS1"/>
+                <constraint firstItem="cUe-bz-fnj" firstAttribute="centerY" secondItem="xs8-aA-tdP" secondAttribute="centerY" id="M3Y-L7-YU7"/>
                 <constraint firstItem="X9B-Hy-SDf" firstAttribute="bottom" secondItem="Bxq-wl-TlW" secondAttribute="bottom" id="MBt-8Q-OOg"/>
-                <constraint firstItem="BgO-43-Wsb" firstAttribute="centerY" secondItem="xs8-aA-tdP" secondAttribute="centerY" id="OpO-ZU-93H"/>
                 <constraint firstItem="6p5-cJ-ewl" firstAttribute="top" secondItem="Vp5-5Y-h2u" secondAttribute="top" id="Vz7-SU-dzV"/>
+                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="cUe-bz-fnj" secondAttribute="trailing" constant="10" id="Wwn-s8-yjb"/>
                 <constraint firstItem="6p5-cJ-ewl" firstAttribute="leading" secondItem="Vp5-5Y-h2u" secondAttribute="leading" id="dKO-xa-zDy"/>
                 <constraint firstItem="xs8-aA-tdP" firstAttribute="top" secondItem="Vp5-5Y-h2u" secondAttribute="top" constant="6" id="fYJ-um-Z1x"/>
                 <constraint firstItem="QKO-WL-PjF" firstAttribute="leading" secondItem="ixV-E1-X1x" secondAttribute="leading" id="fga-xU-rvq"/>
@@ -321,6 +293,7 @@
                 <constraint firstItem="6p5-cJ-ewl" firstAttribute="trailing" secondItem="Vp5-5Y-h2u" secondAttribute="trailing" id="ls2-RN-ZcX"/>
                 <constraint firstItem="X9B-Hy-SDf" firstAttribute="trailing" secondItem="Bxq-wl-TlW" secondAttribute="trailing" id="npl-9r-30v"/>
                 <constraint firstAttribute="trailing" secondItem="Keh-u1-LE5" secondAttribute="trailing" id="nwL-YU-oQl"/>
+                <constraint firstItem="cUe-bz-fnj" firstAttribute="leading" secondItem="xs8-aA-tdP" secondAttribute="trailing" constant="6" id="pP0-mG-1US"/>
                 <constraint firstItem="X9B-Hy-SDf" firstAttribute="top" secondItem="Bxq-wl-TlW" secondAttribute="top" id="rFi-g4-TNx"/>
                 <constraint firstItem="QKO-WL-PjF" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="te7-6x-KAT"/>
                 <constraint firstItem="6p5-cJ-ewl" firstAttribute="bottom" secondItem="Vp5-5Y-h2u" secondAttribute="bottom" id="uXW-Xl-ZD0"/>
@@ -330,23 +303,21 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="authLabel" destination="FCe-w1-PSG" id="Fv0-jI-5fQ"/>
                 <outlet property="authView" destination="ixV-E1-X1x" id="oX1-jX-LfE"/>
                 <outlet property="descView" destination="QKO-WL-PjF" id="Rty-dp-jnV"/>
                 <outlet property="emptyView" destination="X9B-Hy-SDf" id="o0W-GL-evc"/>
                 <outlet property="fansCount" destination="Xs4-YK-GXn" id="fzy-e9-IbW"/>
                 <outlet property="finishCourse" destination="1Vc-45-NJH" id="u9R-oV-Vev"/>
-                <outlet property="firstLogo" destination="BgO-43-Wsb" id="xzt-hN-NXr"/>
-                <outlet property="firstLogoWidth" destination="9GO-UE-0ar" id="ie4-lR-H1S"/>
-                <outlet property="logoSpace" destination="EfU-XF-s6S" id="Adp-jg-MYi"/>
-                <outlet property="secondLogo" destination="3fi-Mc-0oP" id="HC0-cA-u3g"/>
-                <outlet property="secondLogoWidth" destination="3Nz-yk-dD3" id="q4V-JN-uJO"/>
+                <outlet property="liveImage" destination="oX1-hp-Dyb" id="VZ5-ne-LlN"/>
+                <outlet property="musicImage" destination="ezs-lZ-Xnl" id="qct-yZ-s19"/>
                 <outlet property="starView" destination="lpX-9C-A9n" id="s6I-b7-5ZA"/>
                 <outlet property="starbgView" destination="Bxq-wl-TlW" id="Asa-p4-aUD"/>
-                <outlet property="tipsButton" destination="cWQ-Xi-HcJ" id="A0B-Xc-aya"/>
+                <outlet property="styleImage" destination="5j7-Yg-UN7" id="sVx-If-w6U"/>
                 <outlet property="unfinishCourse" destination="uKK-Rv-ltl" id="GSE-93-QSw"/>
                 <outlet property="userAvatal" destination="Vp5-5Y-h2u" id="jx9-7L-Qnb"/>
                 <outlet property="userName" destination="xs8-aA-tdP" id="wzP-DE-tzE"/>
+                <outlet property="videoImage" destination="tLe-yi-47U" id="rrB-t2-vmY"/>
+                <outlet property="viperImage" destination="0Xo-pg-STA" id="2XK-Kk-nOb"/>
             </connections>
             <point key="canvasLocation" x="85.507246376811594" y="-32.142857142857139"/>
         </view>
@@ -357,12 +328,13 @@
         </tapGestureRecognizer>
     </objects>
     <resources>
-        <image name="auth_detail" width="6" height="9"/>
-        <image name="auth_logo" width="16" height="19"/>
-        <image name="auth_tips" width="185" height="26"/>
         <image name="home_ikon" width="228" height="162"/>
-        <image name="musicianAuth_logo" width="61" height="22"/>
-        <image name="teacherAuth_logo" width="54" height="22"/>
+        <image name="mineLive_nomal" width="18" height="18"/>
+        <image name="mineMusic_nomal" width="18" height="18"/>
+        <image name="mineStyle_nomal" width="18" height="18"/>
+        <image name="mineVideo_nomal" width="18" height="18"/>
+        <image name="mine_nomal" width="34" height="15"/>
+        <image name="status_unAuth" width="80" height="24"/>
         <image name="user_default_avatal" width="52" height="52"/>
     </resources>
 </document>

+ 0 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.h

@@ -24,7 +24,6 @@ typedef void(^HomeNavCallback)(HOMENAV_ACTION action);
 
 + (instancetype)shareInstance;
 
-- (void)configMessage:(TeacherInfo *)infoMessage;
 
 - (void)displayMessageCenter:(HomeNavCallback)callback;
 

+ 1 - 71
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.m

@@ -8,24 +8,9 @@
 #import "HomeNavView.h"
 
 @interface HomeNavView ()
-@property (weak, nonatomic) IBOutlet UIImageView *viperImage;
-@property (weak, nonatomic) IBOutlet UIImageView *styleImage;
-@property (weak, nonatomic) IBOutlet UIImageView *videoImage;
-@property (weak, nonatomic) IBOutlet UIImageView *musicImage;
-@property (weak, nonatomic) IBOutlet UIImageView *liveImage;
-
-@property (weak, nonatomic) IBOutlet UIView *badgeView;
-
-@property (weak, nonatomic) IBOutlet UIView *authView;
-
-@property (weak, nonatomic) IBOutlet UIImageView *authStatusImage;
 
 @property (nonatomic, copy) HomeNavCallback callback;
 
-@property (weak, nonatomic) IBOutlet UIImageView *userLogo;
-@property (weak, nonatomic) IBOutlet UILabel *userName;
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *authViewWidth;
-
 @end
 
 @implementation HomeNavView
@@ -35,62 +20,7 @@
     return view;
 }
 
-- (void)configMessage:(TeacherInfo *)infoMessage {
-    if (![NSString isEmptyString:infoMessage.heardUrl]) {
-        [self.userLogo sd_setImageWithURL:[NSURL URLWithString:[infoMessage.heardUrl getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-    }
-    else {
-        [self.userLogo setImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-    }
-    
-    if ([NSString isEmptyString:infoMessage.username]) {
-        self.userName.text = [NSString stringWithFormat:@"游客%@",infoMessage.userId];
-    }
-    else {
-        self.userName.text = [NSString returnNoNullStringWithString:infoMessage.username];
-    }
-    
-    if ([infoMessage.entryStatus isEqualToString:@"PASS"]) {
-        self.authView.hidden = YES;
-        self.badgeView.hidden = NO;
-        NSArray *tagArray = [infoMessage.tag componentsSeparatedByString:@","];
-        NSString *viperImage = infoMessage.isVip ? @"mine_vip" : @"mine_nomal";
-        [self.viperImage setImage:[UIImage imageNamed:viperImage]];
-        [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_nomal"]];
-        [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_nomal"]];
-        [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
-        [self.liveImage setImage:[UIImage imageNamed:@"mineLive_nomal"]];
-        for (NSString *tagString in tagArray) {
-            if ([tagString isEqualToString:@"STYLE"]) {
-                [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];
-            }
-            else if ([tagString isEqualToString:@"VIDEO"]) {
-                [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_active"]];
-            }
-            else if ([tagString isEqualToString:@"LIVE"]) {
-                [self.liveImage setImage:[UIImage imageNamed:@"mineLive_active"]];
-            }
-            else if ([tagString isEqualToString:@"MUSIC"]) {
-                [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_active"]];
-            }
-        }
-        
-    }
-    else {
-        self.authView.hidden = NO;
-        self.badgeView.hidden = YES;
-        if ([infoMessage.entryStatus isEqualToString:@"DOING"]) {
-            [self.authStatusImage setImage:[UIImage imageNamed:@"status_authing"]];
-            self.authViewWidth.constant = 90.0f;
-        }
-        else {
-            [self.authStatusImage setImage:[UIImage imageNamed:@"status_unAuth"]];
-            self.authViewWidth.constant = 80.0f;
-        }
-    }
-   
-    
-}
+
 
 - (void)displayMessageCenter:(HomeNavCallback)callback {
     if (callback) {

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

@@ -10,14 +10,14 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="HomeNavView">
-            <rect key="frame" x="0.0" y="0.0" width="433" height="96"/>
+            <rect key="frame" x="0.0" y="0.0" width="110" height="96"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vOh-9c-b3r">
-                    <rect key="frame" x="0.0" y="52" width="433" height="44"/>
+                    <rect key="frame" x="0.0" y="52" width="110" height="44"/>
                     <subviews>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qSz-FE-UVP">
-                            <rect key="frame" x="379" y="0.0" width="44" height="44"/>
+                            <rect key="frame" x="56" y="0.0" width="44" height="44"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="44" id="bCd-Ui-00e"/>
                             </constraints>
@@ -28,7 +28,7 @@
                             </connections>
                         </button>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="t1J-uq-ROg">
-                            <rect key="frame" x="409" y="10" width="8" height="8"/>
+                            <rect key="frame" x="86" y="10" width="8" height="8"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="g4A-fh-p63">
                                     <rect key="frame" x="1" y="1" width="6" height="6"/>
@@ -56,7 +56,7 @@
                             </userDefinedRuntimeAttributes>
                         </view>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="q6l-Iv-Tbq">
-                            <rect key="frame" x="330" y="0.0" width="44" height="44"/>
+                            <rect key="frame" x="7" y="0.0" width="44" height="44"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="44" id="5RK-8c-0uc"/>
                                 <constraint firstAttribute="width" constant="44" id="UNi-JF-ydf"/>
@@ -67,126 +67,18 @@
                                 <action selector="scanAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="Gqi-Yj-iGI"/>
                             </connections>
                         </button>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="oCM-E2-WDs">
-                            <rect key="frame" x="19" y="6" width="32" height="32"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="32" id="NSG-fD-xdv"/>
-                                <constraint firstAttribute="width" constant="32" id="w7c-lg-j2X"/>
-                            </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="16"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
-                        </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="李老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TwZ-Lg-9Mu">
-                            <rect key="frame" x="59" y="11" width="55.5" height="22"/>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
-                            <color key="textColor" red="0.10196078431372549" green="0.10196078431372549" blue="0.10196078431372549" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aEK-Ov-3cI">
-                            <rect key="frame" x="120.5" y="10" width="126" height="24"/>
-                            <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="2pr-Kd-QQQ">
-                                    <rect key="frame" x="0.0" y="4.5" width="34" height="15"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="34" id="4ca-6e-QDo"/>
-                                        <constraint firstAttribute="height" constant="15" id="vDD-xE-BEp"/>
-                                    </constraints>
-                                </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineStyle_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="3ky-3l-WXt">
-                                    <rect key="frame" x="38" y="3" width="18" height="18"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="18" id="GoJ-hM-6eq"/>
-                                        <constraint firstAttribute="width" constant="18" id="gES-cd-acd"/>
-                                    </constraints>
-                                </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineVideo_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="MNS-f1-2x6">
-                                    <rect key="frame" x="60" y="3" width="18" height="18"/>
-                                </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineMusic_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="tzN-zp-Ngy">
-                                    <rect key="frame" x="82" y="3" width="18" height="18"/>
-                                </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineLive_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="dfQ-4o-Nnf">
-                                    <rect key="frame" x="104" y="3" width="18" height="18"/>
-                                </imageView>
-                            </subviews>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstItem="2pr-Kd-QQQ" firstAttribute="centerY" secondItem="aEK-Ov-3cI" secondAttribute="centerY" id="0lE-b1-BF0"/>
-                                <constraint firstItem="tzN-zp-Ngy" firstAttribute="leading" secondItem="MNS-f1-2x6" secondAttribute="trailing" constant="4" id="7Jj-Wh-DXB"/>
-                                <constraint firstItem="tzN-zp-Ngy" firstAttribute="centerY" secondItem="2pr-Kd-QQQ" secondAttribute="centerY" id="DM7-am-Inn"/>
-                                <constraint firstItem="dfQ-4o-Nnf" firstAttribute="leading" secondItem="tzN-zp-Ngy" secondAttribute="trailing" constant="4" id="HuR-as-XSm"/>
-                                <constraint firstItem="3ky-3l-WXt" firstAttribute="centerY" secondItem="2pr-Kd-QQQ" secondAttribute="centerY" id="OUs-Ls-HlG"/>
-                                <constraint firstItem="MNS-f1-2x6" firstAttribute="leading" secondItem="3ky-3l-WXt" secondAttribute="trailing" constant="4" id="Qcg-SA-8KE"/>
-                                <constraint firstAttribute="height" constant="24" id="WBL-j6-LCK"/>
-                                <constraint firstAttribute="trailing" secondItem="dfQ-4o-Nnf" secondAttribute="trailing" constant="4" id="X8y-Gi-19J"/>
-                                <constraint firstItem="dfQ-4o-Nnf" firstAttribute="centerY" secondItem="2pr-Kd-QQQ" secondAttribute="centerY" id="b1U-oe-bXV"/>
-                                <constraint firstItem="2pr-Kd-QQQ" firstAttribute="leading" secondItem="aEK-Ov-3cI" secondAttribute="leading" id="faJ-qo-XOl"/>
-                                <constraint firstItem="3ky-3l-WXt" firstAttribute="leading" secondItem="2pr-Kd-QQQ" secondAttribute="trailing" constant="4" id="p3g-2g-cPn"/>
-                                <constraint firstItem="MNS-f1-2x6" firstAttribute="centerY" secondItem="2pr-Kd-QQQ" secondAttribute="centerY" id="xhS-r4-LlH"/>
-                            </constraints>
-                        </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Wyg-PY-JG1">
-                            <rect key="frame" x="120.5" y="10" width="80" height="24"/>
-                            <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="status_unAuth" translatesAutoresizingMaskIntoConstraints="NO" id="cn8-bw-7Oy">
-                                    <rect key="frame" x="0.0" y="0.0" width="80" height="24"/>
-                                </imageView>
-                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Wks-wd-YSu">
-                                    <rect key="frame" x="0.0" y="0.0" width="80" height="24"/>
-                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                                    <connections>
-                                        <action selector="authAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="2b6-9A-UAj"/>
-                                    </connections>
-                                </button>
-                            </subviews>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="trailing" secondItem="cn8-bw-7Oy" secondAttribute="trailing" id="8aV-hE-rcT"/>
-                                <constraint firstItem="cn8-bw-7Oy" firstAttribute="leading" secondItem="Wyg-PY-JG1" secondAttribute="leading" id="95c-nO-T75"/>
-                                <constraint firstAttribute="trailing" secondItem="Wks-wd-YSu" secondAttribute="trailing" id="9Kh-su-HfG"/>
-                                <constraint firstItem="Wks-wd-YSu" firstAttribute="top" secondItem="Wyg-PY-JG1" secondAttribute="top" id="A8B-px-yXD"/>
-                                <constraint firstAttribute="height" constant="24" id="BWi-0L-jjj"/>
-                                <constraint firstAttribute="bottom" secondItem="cn8-bw-7Oy" secondAttribute="bottom" id="G4n-H4-IQc"/>
-                                <constraint firstItem="cn8-bw-7Oy" firstAttribute="top" secondItem="Wyg-PY-JG1" secondAttribute="top" id="IaP-mU-CJ4"/>
-                                <constraint firstAttribute="bottom" secondItem="Wks-wd-YSu" secondAttribute="bottom" id="Nah-g8-Eyf"/>
-                                <constraint firstAttribute="width" constant="80" id="aMc-kb-NFb"/>
-                                <constraint firstItem="Wks-wd-YSu" firstAttribute="leading" secondItem="Wyg-PY-JG1" secondAttribute="leading" id="dEQ-Yx-L6C"/>
-                            </constraints>
-                        </view>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BtN-ww-slV">
-                            <rect key="frame" x="19" y="6" width="32" height="32"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <connections>
-                                <action selector="userDetail:" destination="iN0-l3-epB" eventType="touchUpInside" id="gYf-g3-Oav"/>
-                            </connections>
-                        </button>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
                         <constraint firstItem="qSz-FE-UVP" firstAttribute="leading" secondItem="q6l-Iv-Tbq" secondAttribute="trailing" constant="5" id="38X-Iz-sbM"/>
                         <constraint firstAttribute="trailing" secondItem="t1J-uq-ROg" secondAttribute="trailing" constant="16" id="81p-OQ-M7S"/>
-                        <constraint firstItem="aEK-Ov-3cI" firstAttribute="centerY" secondItem="TwZ-Lg-9Mu" secondAttribute="centerY" id="84p-DM-7AY"/>
-                        <constraint firstItem="oCM-E2-WDs" firstAttribute="trailing" secondItem="BtN-ww-slV" secondAttribute="trailing" id="B2Q-M1-Zhz"/>
-                        <constraint firstItem="oCM-E2-WDs" firstAttribute="leading" secondItem="BtN-ww-slV" secondAttribute="leading" id="B6Q-ke-77m"/>
                         <constraint firstItem="t1J-uq-ROg" firstAttribute="top" secondItem="vOh-9c-b3r" secondAttribute="top" constant="10" id="FcH-GF-jbv"/>
-                        <constraint firstItem="oCM-E2-WDs" firstAttribute="bottom" secondItem="BtN-ww-slV" secondAttribute="bottom" id="Glu-3G-snx"/>
                         <constraint firstAttribute="trailing" secondItem="qSz-FE-UVP" secondAttribute="trailing" constant="10" id="Hpm-xn-doL"/>
-                        <constraint firstItem="oCM-E2-WDs" firstAttribute="top" secondItem="BtN-ww-slV" secondAttribute="top" id="IB5-L5-gWF"/>
-                        <constraint firstItem="TwZ-Lg-9Mu" firstAttribute="centerY" secondItem="oCM-E2-WDs" secondAttribute="centerY" id="INU-uD-3jb"/>
                         <constraint firstAttribute="bottom" secondItem="qSz-FE-UVP" secondAttribute="bottom" id="N2N-9O-f5N"/>
-                        <constraint firstItem="oCM-E2-WDs" firstAttribute="leading" secondItem="vOh-9c-b3r" secondAttribute="leading" constant="19" id="NWu-0G-4ga"/>
-                        <constraint firstItem="Wyg-PY-JG1" firstAttribute="leading" secondItem="TwZ-Lg-9Mu" secondAttribute="trailing" constant="6" id="Ool-Zu-PXT"/>
                         <constraint firstItem="qSz-FE-UVP" firstAttribute="centerY" secondItem="q6l-Iv-Tbq" secondAttribute="centerY" id="Tpt-zB-iEz"/>
-                        <constraint firstItem="aEK-Ov-3cI" firstAttribute="leading" secondItem="TwZ-Lg-9Mu" secondAttribute="trailing" constant="6" id="Yp0-Zv-sNZ"/>
                         <constraint firstAttribute="height" constant="44" id="cj7-26-Plu"/>
-                        <constraint firstItem="oCM-E2-WDs" firstAttribute="centerY" secondItem="vOh-9c-b3r" secondAttribute="centerY" id="dAF-LS-7Kg"/>
                         <constraint firstItem="qSz-FE-UVP" firstAttribute="top" secondItem="vOh-9c-b3r" secondAttribute="top" id="dgb-Bb-S6e"/>
                         <constraint firstItem="q6l-Iv-Tbq" firstAttribute="centerY" secondItem="vOh-9c-b3r" secondAttribute="centerY" id="e5f-Md-Um3"/>
-                        <constraint firstItem="Wyg-PY-JG1" firstAttribute="centerY" secondItem="TwZ-Lg-9Mu" secondAttribute="centerY" id="obL-Zj-DiA"/>
-                        <constraint firstItem="TwZ-Lg-9Mu" firstAttribute="leading" secondItem="oCM-E2-WDs" secondAttribute="trailing" constant="8" id="r5S-Kz-0WG"/>
                     </constraints>
                 </view>
             </subviews>
@@ -200,18 +92,7 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="authStatusImage" destination="cn8-bw-7Oy" id="SIG-E0-Uxg"/>
-                <outlet property="authView" destination="Wyg-PY-JG1" id="Lvb-zX-Tvl"/>
-                <outlet property="authViewWidth" destination="aMc-kb-NFb" id="N9K-Rk-oNR"/>
-                <outlet property="badgeView" destination="aEK-Ov-3cI" id="iha-lR-mWS"/>
                 <outlet property="dotView" destination="t1J-uq-ROg" id="p7q-S3-Sqq"/>
-                <outlet property="liveImage" destination="dfQ-4o-Nnf" id="a1c-Gb-1xZ"/>
-                <outlet property="musicImage" destination="tzN-zp-Ngy" id="cfn-kK-G1h"/>
-                <outlet property="styleImage" destination="3ky-3l-WXt" id="UJe-AG-P6w"/>
-                <outlet property="userLogo" destination="oCM-E2-WDs" id="Sma-60-5Wb"/>
-                <outlet property="userName" destination="TwZ-Lg-9Mu" id="rv0-6N-MyY"/>
-                <outlet property="videoImage" destination="MNS-f1-2x6" id="J4w-IP-8u2"/>
-                <outlet property="viperImage" destination="2pr-Kd-QQQ" id="Rhd-WH-Lqv"/>
             </connections>
             <point key="canvasLocation" x="351.44927536231887" y="-130.58035714285714"/>
         </view>
@@ -219,12 +100,5 @@
     <resources>
         <image name="home_message" width="24" height="24"/>
         <image name="home_scan" width="26" height="26"/>
-        <image name="mineLive_nomal" width="18" height="18"/>
-        <image name="mineMusic_nomal" width="18" height="18"/>
-        <image name="mineStyle_nomal" width="18" height="18"/>
-        <image name="mineVideo_nomal" width="18" height="18"/>
-        <image name="mine_nomal" width="34" height="15"/>
-        <image name="status_unAuth" width="80" height="24"/>
-        <image name="user_default_avatal" width="52" height="52"/>
     </resources>
 </document>

+ 1 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/KSHomeButton.xib

@@ -28,7 +28,7 @@
                         <constraint firstAttribute="width" constant="63.5" id="JSo-aS-lFI"/>
                     </constraints>
                 </button>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_accompany" translatesAutoresizingMaskIntoConstraints="NO" id="fGp-yj-UZk">
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="fGp-yj-UZk">
                     <rect key="frame" x="17.5" y="5" width="45" height="45"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="45" id="a4B-wg-004"/>
@@ -59,7 +59,4 @@
             <point key="canvasLocation" x="46.376811594202906" y="4.3526785714285712"/>
         </view>
     </objects>
-    <resources>
-        <image name="home_accompany" width="51" height="51"/>
-    </resources>
 </document>

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/PublicNoticeView.xib

@@ -63,7 +63,7 @@
                             <real key="value" value="2"/>
                         </userDefinedRuntimeAttribute>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="22"/>
+                            <real key="value" value="14"/>
                         </userDefinedRuntimeAttribute>
                         <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounces" value="NO"/>
                     </userDefinedRuntimeAttributes>

+ 24 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/LoginBodyView.m

@@ -6,6 +6,7 @@
 //
 
 #import "LoginBodyView.h"
+#import "KeyChainTools.h"
 
 @interface LoginBodyView ()<UITextFieldDelegate>
 
@@ -20,12 +21,20 @@
 
 @property (nonatomic, copy) LoginAction callback;
 
+@property (weak, nonatomic) IBOutlet UILabel *deviceLabel;
+
+@property (nonatomic, assign) NSInteger clickCount;
+
 @end
 
 @implementation LoginBodyView
 - (void)awakeFromNib {
     [super awakeFromNib];
     [self configSource];
+    
+    self.deviceLabel.text = [NSString stringWithFormat:@"本机设备号:%@",[KeyChainTools getUUID]];
+    self.deviceLabel.hidden = YES;
+    _clickCount = 0;
 }
 
 - (void)configSource {
@@ -112,6 +121,21 @@
     }
     return YES;
 }
+
+- (IBAction)tapAction:(id)sender {
+    _clickCount++;
+    if (_clickCount == 5) {
+        self.deviceLabel.text = [NSString stringWithFormat:@"本机设备号:%@",[KeyChainTools getUUID]];
+        self.deviceLabel.hidden = NO;
+    }
+}
+
+- (IBAction)copyAction:(id)sender {
+    // 复制
+    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
+    pasteboard.string = [KeyChainTools getUUID];
+    [self MBPShow:@"复制成功"];
+}
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 32 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/LoginBodyView.xib

@@ -28,11 +28,15 @@
                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_bottom" translatesAutoresizingMaskIntoConstraints="NO" id="0q4-1w-tla">
+                <imageView clipsSubviews="YES" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_bottom" translatesAutoresizingMaskIntoConstraints="NO" id="0q4-1w-tla">
                     <rect key="frame" x="0.0" y="752.5" width="414" height="143.5"/>
+                    <gestureRecognizers/>
                     <constraints>
                         <constraint firstAttribute="width" secondItem="0q4-1w-tla" secondAttribute="height" multiplier="375:130" id="KFQ-N6-rV7"/>
                     </constraints>
+                    <connections>
+                        <outletCollection property="gestureRecognizers" destination="hbY-57-oOq" appends="YES" id="xsM-90-FAN"/>
+                    </connections>
                 </imageView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="您好," textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WqI-Rf-kUe">
                     <rect key="frame" x="25" y="100" width="80" height="37"/>
@@ -167,6 +171,19 @@
                         <action selector="privacyAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="2PD-CJ-1dt"/>
                     </connections>
                 </button>
+                <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zK8-8r-GjY">
+                    <rect key="frame" x="12" y="722.5" width="390" height="20"/>
+                    <gestureRecognizers/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="GIW-Fp-zE3"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                    <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                    <connections>
+                        <outletCollection property="gestureRecognizers" destination="PFX-Mf-Vhy" appends="YES" id="tUF-XA-hVw"/>
+                    </connections>
+                </label>
             </subviews>
             <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
@@ -177,6 +194,7 @@
                 <constraint firstItem="ko7-Ny-Rff" firstAttribute="trailing" secondItem="Enc-9D-ZIb" secondAttribute="trailing" id="7R7-UL-yeh"/>
                 <constraint firstItem="FGc-X7-gKF" firstAttribute="leading" secondItem="3Vc-PU-5ec" secondAttribute="leading" id="92F-v1-QX7"/>
                 <constraint firstItem="WqI-Rf-kUe" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="25" id="9GS-oA-unV"/>
+                <constraint firstItem="zK8-8r-GjY" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="12" id="A2j-fF-mWC"/>
                 <constraint firstAttribute="trailing" secondItem="A5r-6M-UYx" secondAttribute="trailing" id="D7M-2f-1sc"/>
                 <constraint firstItem="enh-Ce-PS7" firstAttribute="leading" secondItem="vXW-ev-ENf" secondAttribute="trailing" id="HwD-2q-1qI"/>
                 <constraint firstItem="FGc-X7-gKF" firstAttribute="trailing" secondItem="3Vc-PU-5ec" secondAttribute="trailing" id="JBf-Su-sHW"/>
@@ -191,6 +209,7 @@
                 <constraint firstAttribute="bottom" secondItem="0q4-1w-tla" secondAttribute="bottom" id="an5-yy-Ltq"/>
                 <constraint firstItem="ylm-Ib-zPa" firstAttribute="centerY" secondItem="enh-Ce-PS7" secondAttribute="centerY" id="eZv-hd-Mxi"/>
                 <constraint firstItem="A5r-6M-UYx" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="epe-Tm-dNT"/>
+                <constraint firstItem="0q4-1w-tla" firstAttribute="top" secondItem="zK8-8r-GjY" secondAttribute="bottom" constant="10" id="gwS-3O-d6p"/>
                 <constraint firstItem="CQJ-Py-qwY" firstAttribute="leading" secondItem="WqI-Rf-kUe" secondAttribute="leading" id="hAc-vT-7xN"/>
                 <constraint firstItem="ylm-Ib-zPa" firstAttribute="trailing" secondItem="enh-Ce-PS7" secondAttribute="trailing" id="i8W-J1-WOR"/>
                 <constraint firstItem="3Vc-PU-5ec" firstAttribute="top" secondItem="pce-OW-Xhb" secondAttribute="bottom" constant="45" id="k0L-0k-KJm"/>
@@ -203,12 +222,14 @@
                 <constraint firstItem="LXC-2r-VRG" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="upG-Lb-cOm"/>
                 <constraint firstItem="enh-Ce-PS7" firstAttribute="centerY" secondItem="vXW-ev-ENf" secondAttribute="centerY" id="uvi-u8-v1j"/>
                 <constraint firstItem="WqI-Rf-kUe" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="100" id="wb7-8O-rqx"/>
+                <constraint firstAttribute="trailing" secondItem="zK8-8r-GjY" secondAttribute="trailing" constant="12" id="wm6-fd-qO4"/>
                 <constraint firstItem="pce-OW-Xhb" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="35" id="zdH-mQ-OWD"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
+                <outlet property="deviceLabel" destination="zK8-8r-GjY" id="JaF-Ir-xAO"/>
                 <outlet property="phoneField" destination="LuK-f4-NAr" id="uaX-Cs-m5V"/>
                 <outlet property="privacyLabel" destination="Enc-9D-ZIb" id="32W-zA-OtE"/>
                 <outlet property="registerProtocalLabel" destination="enh-Ce-PS7" id="dMA-8Y-Kxm"/>
@@ -216,6 +237,16 @@
             </connections>
             <point key="canvasLocation" x="131.8840579710145" y="95.758928571428569"/>
         </view>
+        <tapGestureRecognizer id="hbY-57-oOq">
+            <connections>
+                <action selector="tapAction:" destination="iN0-l3-epB" id="aGo-Vm-gXc"/>
+            </connections>
+        </tapGestureRecognizer>
+        <tapGestureRecognizer id="PFX-Mf-Vhy">
+            <connections>
+                <action selector="copyAction:" destination="iN0-l3-epB" id="Ohi-Fv-hmL"/>
+            </connections>
+        </tapGestureRecognizer>
     </objects>
     <resources>
         <image name="login_bottom" width="375" height="130"/>

+ 40 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Controller/MineViewController.m

@@ -50,9 +50,32 @@
     if ([self checkIsLoginToLoginView:YES]) {
         [self requsetUserMessage];
         [self requestUserMemo];
+        [self queryAmountDetail];
     }
 }
 
+- (void)queryAmountDetail {
+    [KSNetworkingManager teacherAccountDetail:KS_GET success:^(NSDictionary * _Nonnull dic) {
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            double amount = [[dic dictionaryValueForKey:@"data"] doubleValueForKey:@"amountShare"];
+            [self evaluateAmount:amount];
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+    } faliure:^(NSError * _Nonnull error) {
+        
+    }];
+}
+
+- (void)evaluateAmount:(double)amount {
+    NSString *valueString = [NSString formatMoneyDoubleNum:amount];
+    NSString *amountString = [NSString stringWithFormat:@"累计收益%@元",valueString];
+    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:amountString attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13],NSForegroundColorAttributeName:HexRGB(0x999999)}];
+    [attr addAttributes:@{NSFontAttributeName : [UIFont systemFontOfSize:12.0f weight:UIFontWeightMedium], NSForegroundColorAttributeName:HexRGB(0xff4e19)} range:[amountString rangeOfString:valueString]];
+    self.bodyView.shareAmountLabel.attributedText = attr;
+}
+
 - (void)requestUserMemo {
     [[UserInfoManager shareInstance] requsetconfigCallback:^(BOOL success) {
         [self refreshBodyView:success];
@@ -150,8 +173,16 @@
             break;
         case MINEVIEWTYPE_HOMEPAGE: // 我的主页
         {
-            MinePageViewController *pageCtrl = [[MinePageViewController alloc] init];
-            [self.navigationController pushViewController:pageCtrl animated:YES];
+            if (![self.mineInfo.entryStatus isEqualToString:@"PASS"]) { // 跳转达人认证
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/teacherCert"];
+                [self.navigationController pushViewController:webCtrl animated:YES];
+            }
+            else { 
+                MinePageViewController *pageCtrl = [[MinePageViewController alloc] init];
+                [self.navigationController pushViewController:pageCtrl animated:YES];
+            }
+            
         }
             break;
         case MINEVIEWTYPE_MIEN: // 个人风采
@@ -283,6 +314,13 @@
             [self.navigationController pushViewController:webCtrl animated:YES];
         }
             break;
+        case MINEVIEWTYPE_TRADERECORD:
+        {
+            KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+            webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/rechargeRecord"];
+            [self.navigationController pushViewController:webCtrl animated:YES];
+        }
+            break;
         default:
             break;
     }

+ 3 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m

@@ -530,7 +530,9 @@
     else if (self.selectIndex == 2) {
         self.uploadView.type = MINEPAGETYPE_LIVE;
     }
-    
+    else if (self.selectIndex == 4) {
+        self.uploadView.type = MINEPAGETYPE_MUSIC;
+    }
     if (self.selectIndex == 1 || self.selectIndex == 2 || self.selectIndex == 4) {
         if (self.teacherAuthPass == NO) {
             [self showAuthView];

+ 3 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.m

@@ -28,8 +28,8 @@
 @property (weak, nonatomic) IBOutlet UIImageView *viperImage;
 @property (weak, nonatomic) IBOutlet UIImageView *styleImage;
 @property (weak, nonatomic) IBOutlet UIImageView *videoImage;
-@property (weak, nonatomic) IBOutlet UIImageView *musicImage;
 @property (weak, nonatomic) IBOutlet UIImageView *liveImage;
+@property (weak, nonatomic) IBOutlet UIImageView *musicImage;
 
 
 @property (weak, nonatomic) IBOutlet UIView *emptyView;
@@ -84,8 +84,9 @@
         [self.viperImage setImage:[UIImage imageNamed:viperImage]];
         [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_nomal"]];
         [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_nomal"]];
-        [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
         [self.liveImage setImage:[UIImage imageNamed:@"mineLive_nomal"]];
+        [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
+
         for (NSString *tagString in tagArray) {
             if ([tagString isEqualToString:@"STYLE"]) {
                 [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];

+ 4 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.xib

@@ -136,10 +136,10 @@
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineVideo_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="YEy-rl-QiY">
                                     <rect key="frame" x="60" y="3" width="18" height="18"/>
                                 </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineMusic_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="msK-hu-IGj">
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineLive_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="msK-hu-IGj">
                                     <rect key="frame" x="82" y="3" width="18" height="18"/>
                                 </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineLive_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="Gtu-Mm-ocB">
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineMusic_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="Gtu-Mm-ocB">
                                     <rect key="frame" x="104" y="3" width="18" height="18"/>
                                 </imageView>
                             </subviews>
@@ -212,8 +212,8 @@
                 <outlet property="courseCount" destination="mKL-9h-RCS" id="geb-Y7-zeu"/>
                 <outlet property="emptyView" destination="suu-Tg-DRh" id="16s-fr-9E4"/>
                 <outlet property="fansCount" destination="DMU-LC-BHE" id="KTr-PK-SlC"/>
-                <outlet property="liveImage" destination="Gtu-Mm-ocB" id="nx6-vm-svk"/>
-                <outlet property="musicImage" destination="msK-hu-IGj" id="5Fk-Va-kXy"/>
+                <outlet property="liveImage" destination="msK-hu-IGj" id="2dx-Is-foA"/>
+                <outlet property="musicImage" destination="Gtu-Mm-ocB" id="Zj7-ji-aky"/>
                 <outlet property="starBgView" destination="j04-k1-RIV" id="76r-zk-VWm"/>
                 <outlet property="starView" destination="7YI-eG-JcD" id="P33-L0-TAr"/>
                 <outlet property="styleImage" destination="lc6-oJ-H90" id="MMV-VQ-XYM"/>

+ 3 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.h

@@ -27,7 +27,8 @@ typedef NS_ENUM(NSInteger, MINEVIEWTYPE) {
     MINEVIEWTYPE_UNFINISHCOURSE, // 未上课程
     MINEVIEWTYPE_USERSETTING,   // 用户设置
     MINEVIEWTYPE_FEEDBACK,      // 意见反馈
-    MINEVIEWTYPE_MEMERCENTER,  
+    MINEVIEWTYPE_MEMERCENTER,
+    MINEVIEWTYPE_TRADERECORD = 1020,
 };
 
 typedef void(^MineViewCallback)(MINEVIEWTYPE type);
@@ -40,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (nonatomic, assign) BOOL isShowTips;
 
-@property (weak, nonatomic) IBOutlet UILabel *authLabel;
+@property (weak, nonatomic) IBOutlet UILabel *shareAmountLabel;
 
 + (instancetype)shareInstance;
 

+ 12 - 30
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.m

@@ -10,17 +10,15 @@
 #import "UserInfoManager.h"
 
 @interface MineBodyView ()
+
 @property (weak, nonatomic) IBOutlet UIImageView *userAvatal;
 @property (weak, nonatomic) IBOutlet UILabel *userName;
 
 @property (weak, nonatomic) IBOutlet UIView *descView;
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *descViewHeight;
 
-@property (weak, nonatomic) IBOutlet UIView *authView;
-@property (weak, nonatomic) IBOutlet UIImageView *authStatusImage;
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *authViewWidth;
-
-@property (weak, nonatomic) IBOutlet UILabel *musicianStatusLabel;
+@property (weak, nonatomic) IBOutlet UIView *tradeView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *tradeHeight;
 
 @property (weak, nonatomic) IBOutlet UILabel *cardStatusLabel;
 @property (weak, nonatomic) IBOutlet UILabel *fansCount;
@@ -48,8 +46,8 @@
 @property (weak, nonatomic) IBOutlet UIImageView *viperImage;
 @property (weak, nonatomic) IBOutlet UIImageView *styleImage;
 @property (weak, nonatomic) IBOutlet UIImageView *videoImage;
-@property (weak, nonatomic) IBOutlet UIImageView *musicImage;
 @property (weak, nonatomic) IBOutlet UIImageView *liveImage;
+@property (weak, nonatomic) IBOutlet UIImageView *musicImage;
 
 @property (weak, nonatomic) IBOutlet UIView *badgeView;
 
@@ -77,20 +75,19 @@
 - (void)configMessage:(TeacherInfo *)infoMessage {
     if ([infoMessage.entryStatus isEqualToString:@"PASS"]) {
         self.hasAuthTeacher = YES;
-        self.authView.hidden = YES;
         self.descView.hidden = NO;
         self.descViewHeight.constant = 40.0f;
         [self displayCount:infoMessage.fansNum inView:self.fansCount descTitle:@"粉丝  "];
         [self displayCount:infoMessage.expTime inView:self.finishCourse descTitle:@"已上课时  "];
         [self displayCount:infoMessage.unExpTime inView:self.unfinishCourse descTitle:@"未上课时  "];
-        self.badgeView.hidden = NO;
+        
         NSArray *tagArray = [infoMessage.tag componentsSeparatedByString:@","];
         NSString *viperImage = infoMessage.isVip ? @"mine_vip" : @"mine_nomal";
         [self.viperImage setImage:[UIImage imageNamed:viperImage]];
         [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_nomal"]];
         [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_nomal"]];
-        [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
         [self.liveImage setImage:[UIImage imageNamed:@"mineLive_nomal"]];
+        [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
         for (NSString *tagString in tagArray) {
             if ([tagString isEqualToString:@"STYLE"]) {
                 [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];
@@ -108,19 +105,8 @@
     }
     else {
         self.hasAuthTeacher = NO;
-        self.authView.hidden = NO;
         self.descView.hidden = YES;
-        self.badgeView.hidden = YES;
         self.descViewHeight.constant = 0.0f;
-        
-        if ([infoMessage.entryStatus isEqualToString:@"DOING"]) {
-            [self.authStatusImage setImage:[UIImage imageNamed:@"status_authing"]];
-            self.authViewWidth.constant = 90.0f;
-        }
-        else {
-            [self.authStatusImage setImage:[UIImage imageNamed:@"status_unAuth"]];
-            self.authViewWidth.constant = 80.0f;
-        }
     }
     
     if (infoMessage.starGrade > 0) {
@@ -161,12 +147,8 @@
     }else {
         self.hasAuthMusic = NO;
     }
-    [self evaluateAuthLogo];
 }
 
-- (void)evaluateAuthLogo {
-    
-}
 
 - (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel descTitle:(NSString *)descTitle {
     NSString *numString = @"";
@@ -196,11 +178,6 @@
     }
 }
 
-- (IBAction)authAction:(id)sender {
-    if (self.callback) {
-        self.callback(MINEVIEWTYPE_AUTH);
-    }
-}
 - (IBAction)memberCenter:(id)sender {
     if (self.callback) {
         self.callback(MINEVIEWTYPE_MEMERCENTER);
@@ -221,7 +198,8 @@
 }
 
 - (CGFloat)getViewHeight {
-    return 90 + 15 + (self.memberViewHeight.constant) / 2 + 180 + 15 + 300 + self.descViewHeight.constant+10;
+    CGFloat containHeight = self.isMember ? 350 : 300;
+    return 70 + 15 + (self.memberViewHeight.constant) / 2 + 180 + 15 + containHeight + self.descViewHeight.constant+10;
 }
 
 
@@ -237,10 +215,14 @@
     if (_isMember) {
         self.memberViewHeight.constant = 82.0f;
         self.memberView.hidden = NO;
+        self.tradeHeight.constant = 50.0f;
+        self.tradeView.hidden = NO;
     }
     else {
         self.memberViewHeight.constant = 0.0f;
         self.memberView.hidden = YES;
+        self.tradeHeight.constant = 0.0f;
+        self.tradeView.hidden = YES;
     }
 }
 

+ 90 - 62
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.xib

@@ -15,10 +15,10 @@
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="K43-Hf-e2b">
-                    <rect key="frame" x="0.0" y="0.0" width="414" height="90"/>
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="70"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="L8h-ZO-2iV">
-                            <rect key="frame" x="15" y="19" width="52" height="52"/>
+                            <rect key="frame" x="15" y="5" width="52" height="52"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="52" id="LYs-1R-oMq"/>
                                 <constraint firstAttribute="height" constant="52" id="PzD-ey-Zuz"/>
@@ -30,7 +30,7 @@
                             </userDefinedRuntimeAttributes>
                         </imageView>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dbv-tC-djl">
-                            <rect key="frame" x="77" y="25" width="37" height="25"/>
+                            <rect key="frame" x="77" y="11" width="37" height="25"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="25" id="CVg-fp-xdB"/>
                             </constraints>
@@ -39,7 +39,7 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kb3-97-shC">
-                            <rect key="frame" x="77" y="55" width="95" height="19"/>
+                            <rect key="frame" x="77" y="41" width="95" height="19"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="U6R-K3-xDh" customClass="KSStarView">
                                     <rect key="frame" x="0.0" y="0.0" width="95" height="19"/>
@@ -57,7 +57,7 @@
                             </constraints>
                         </view>
                         <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BwF-Qu-G62">
-                            <rect key="frame" x="77" y="55" width="95" height="19"/>
+                            <rect key="frame" x="77" y="41" width="95" height="19"/>
                             <subviews>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="暂无评分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dQ1-iR-AQP">
                                     <rect key="frame" x="0.0" y="0.0" width="95" height="19"/>
@@ -75,14 +75,14 @@
                             </constraints>
                         </view>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="L9t-OP-Fyp">
-                            <rect key="frame" x="15" y="19" width="52" height="52"/>
+                            <rect key="frame" x="15" y="5" width="52" height="52"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <connections>
                                 <action selector="toUseSetting:" destination="iN0-l3-epB" eventType="touchUpInside" id="vnk-D7-hKQ"/>
                             </connections>
                         </button>
-                        <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pU5-7g-Bzb">
-                            <rect key="frame" x="120" y="25.5" width="126" height="24"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pU5-7g-Bzb">
+                            <rect key="frame" x="120" y="11.5" width="126" height="24"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="ugg-1M-i9r">
                                     <rect key="frame" x="0.0" y="4.5" width="34" height="15"/>
@@ -101,10 +101,10 @@
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineVideo_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="vaM-LY-Rqy">
                                     <rect key="frame" x="60" y="3" width="18" height="18"/>
                                 </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineMusic_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="o0F-R0-j1W">
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineLive_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="o0F-R0-j1W">
                                     <rect key="frame" x="82" y="3" width="18" height="18"/>
                                 </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineLive_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="KtO-Tm-2f3">
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineMusic_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="KtO-Tm-2f3">
                                     <rect key="frame" x="104" y="3" width="18" height="18"/>
                                 </imageView>
                             </subviews>
@@ -125,34 +125,6 @@
                                 <constraint firstItem="J1I-kl-bpI" firstAttribute="centerY" secondItem="ugg-1M-i9r" secondAttribute="centerY" id="r17-Y8-gO7"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6Ye-sQ-nUm">
-                            <rect key="frame" x="120" y="25.5" width="80" height="24"/>
-                            <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="status_unAuth" translatesAutoresizingMaskIntoConstraints="NO" id="Rzr-Zq-SiR">
-                                    <rect key="frame" x="0.0" y="0.0" width="80" height="24"/>
-                                </imageView>
-                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="g7y-g8-jBf">
-                                    <rect key="frame" x="0.0" y="0.0" width="80" height="24"/>
-                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                                    <connections>
-                                        <action selector="authAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="uEC-XX-Mni"/>
-                                    </connections>
-                                </button>
-                            </subviews>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstItem="g7y-g8-jBf" firstAttribute="leading" secondItem="6Ye-sQ-nUm" secondAttribute="leading" id="3Jc-2U-FBd"/>
-                                <constraint firstItem="g7y-g8-jBf" firstAttribute="top" secondItem="6Ye-sQ-nUm" secondAttribute="top" id="NMZ-YE-EyB"/>
-                                <constraint firstAttribute="bottom" secondItem="Rzr-Zq-SiR" secondAttribute="bottom" id="T5X-kI-m0d"/>
-                                <constraint firstAttribute="width" constant="80" id="TLa-zF-yhJ"/>
-                                <constraint firstAttribute="trailing" secondItem="Rzr-Zq-SiR" secondAttribute="trailing" id="Vb1-11-o9B"/>
-                                <constraint firstItem="Rzr-Zq-SiR" firstAttribute="top" secondItem="6Ye-sQ-nUm" secondAttribute="top" id="hNX-iO-cSh"/>
-                                <constraint firstAttribute="trailing" secondItem="g7y-g8-jBf" secondAttribute="trailing" id="pTE-9e-7cT"/>
-                                <constraint firstAttribute="height" constant="24" id="qJG-KL-hPL"/>
-                                <constraint firstItem="Rzr-Zq-SiR" firstAttribute="leading" secondItem="6Ye-sQ-nUm" secondAttribute="leading" id="sWy-b3-7eY"/>
-                                <constraint firstAttribute="bottom" secondItem="g7y-g8-jBf" secondAttribute="bottom" id="woB-aq-mOx"/>
-                            </constraints>
-                        </view>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <gestureRecognizers/>
@@ -160,11 +132,9 @@
                         <constraint firstItem="kb3-97-shC" firstAttribute="top" secondItem="dbv-tC-djl" secondAttribute="bottom" constant="5" id="0YH-xY-vAV"/>
                         <constraint firstItem="pU5-7g-Bzb" firstAttribute="leading" secondItem="dbv-tC-djl" secondAttribute="trailing" constant="6" id="6Hz-j4-Kc4"/>
                         <constraint firstItem="L9t-OP-Fyp" firstAttribute="trailing" secondItem="L8h-ZO-2iV" secondAttribute="trailing" id="8hd-RJ-JzL"/>
-                        <constraint firstAttribute="height" constant="90" id="Cmo-h9-fJh"/>
+                        <constraint firstAttribute="height" constant="70" id="Cmo-h9-fJh"/>
                         <constraint firstItem="BwF-Qu-G62" firstAttribute="top" secondItem="kb3-97-shC" secondAttribute="top" id="F4E-Lb-BFJ"/>
                         <constraint firstItem="dbv-tC-djl" firstAttribute="top" secondItem="L8h-ZO-2iV" secondAttribute="top" constant="6" id="GFk-U2-Fr8"/>
-                        <constraint firstItem="L8h-ZO-2iV" firstAttribute="centerY" secondItem="K43-Hf-e2b" secondAttribute="centerY" id="Gma-Ix-zQk"/>
-                        <constraint firstItem="6Ye-sQ-nUm" firstAttribute="leading" secondItem="dbv-tC-djl" secondAttribute="trailing" constant="6" id="H7I-XC-AmT"/>
                         <constraint firstItem="L9t-OP-Fyp" firstAttribute="leading" secondItem="L8h-ZO-2iV" secondAttribute="leading" id="HwY-Ff-s31"/>
                         <constraint firstItem="BwF-Qu-G62" firstAttribute="trailing" secondItem="kb3-97-shC" secondAttribute="trailing" id="Ytg-BF-ZIT"/>
                         <constraint firstItem="kb3-97-shC" firstAttribute="leading" secondItem="dbv-tC-djl" secondAttribute="leading" id="dLD-MG-DWU"/>
@@ -174,13 +144,13 @@
                         <constraint firstItem="L9t-OP-Fyp" firstAttribute="bottom" secondItem="L8h-ZO-2iV" secondAttribute="bottom" id="kk1-4C-1Oz"/>
                         <constraint firstItem="L9t-OP-Fyp" firstAttribute="top" secondItem="L8h-ZO-2iV" secondAttribute="top" id="lA5-Xj-jmk"/>
                         <constraint firstItem="L8h-ZO-2iV" firstAttribute="leading" secondItem="K43-Hf-e2b" secondAttribute="leading" constant="15" id="pVF-2j-tMt"/>
-                        <constraint firstItem="6Ye-sQ-nUm" firstAttribute="centerY" secondItem="dbv-tC-djl" secondAttribute="centerY" id="tpT-JD-yTR"/>
+                        <constraint firstItem="L8h-ZO-2iV" firstAttribute="top" secondItem="K43-Hf-e2b" secondAttribute="top" constant="5" id="vWG-jx-iyJ"/>
                         <constraint firstItem="BwF-Qu-G62" firstAttribute="leading" secondItem="kb3-97-shC" secondAttribute="leading" id="wRm-0Y-rO3"/>
                         <constraint firstItem="dbv-tC-djl" firstAttribute="leading" secondItem="L8h-ZO-2iV" secondAttribute="trailing" constant="10" id="yjc-rf-wXx"/>
                     </constraints>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ezF-W3-9Gd">
-                    <rect key="frame" x="14" y="90" width="386" height="40"/>
+                    <rect key="frame" x="14" y="70" width="386" height="40"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0pQ-gg-IHk">
                             <rect key="frame" x="0.0" y="0.0" width="128.5" height="40"/>
@@ -287,7 +257,7 @@
                     </constraints>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bzX-0A-SrW">
-                    <rect key="frame" x="21" y="140" width="372" height="82"/>
+                    <rect key="frame" x="21" y="120" width="372" height="82"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="member_bg" translatesAutoresizingMaskIntoConstraints="NO" id="aV2-2h-aaA">
                             <rect key="frame" x="0.0" y="0.0" width="372" height="82"/>
@@ -332,7 +302,7 @@
                     </constraints>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mlC-jr-q9m">
-                    <rect key="frame" x="14" y="191" width="386" height="180"/>
+                    <rect key="frame" x="14" y="171" width="386" height="180"/>
                     <subviews>
                         <view tag="1002" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="y4k-33-a3V">
                             <rect key="frame" x="0.0" y="0.0" width="96.5" height="90"/>
@@ -631,12 +601,12 @@
                     </userDefinedRuntimeAttributes>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="f2F-rL-Oml">
-                    <rect key="frame" x="14" y="386" width="386" height="300"/>
+                    <rect key="frame" x="14" y="366" width="386" height="350"/>
                     <subviews>
                         <view tag="1009" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="587-LV-G4K">
                             <rect key="frame" x="0.0" y="0.0" width="386" height="50"/>
                             <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="musician_auth" translatesAutoresizingMaskIntoConstraints="NO" id="FcT-pj-i3J">
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_promotion" translatesAutoresizingMaskIntoConstraints="NO" id="FcT-pj-i3J">
                                     <rect key="frame" x="10" y="11" width="28" height="28"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="28" id="FXC-yi-w0z"/>
@@ -644,7 +614,10 @@
                                     </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="0by-wZ-PWs">
-                                    <rect key="frame" x="42" y="16" width="107.5" height="18"/>
+                                    <rect key="frame" x="42" y="16" width="110" height="18"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="110" id="Tq3-Qc-A1d"/>
+                                    </constraints>
                                     <fontDescription key="fontDescription" type="system" pointSize="15"/>
                                     <color key="textColor" red="0.10196078431372549" green="0.10196078431372549" blue="0.10196078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
@@ -668,6 +641,7 @@
                             <constraints>
                                 <constraint firstItem="0by-wZ-PWs" firstAttribute="centerY" secondItem="FcT-pj-i3J" secondAttribute="centerY" id="1Ta-23-79W"/>
                                 <constraint firstItem="OVn-sM-ADk" firstAttribute="centerY" secondItem="2lR-LA-fG9" secondAttribute="centerY" id="9kT-gR-gto"/>
+                                <constraint firstItem="2lR-LA-fG9" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="0by-wZ-PWs" secondAttribute="trailing" constant="10" id="K1L-WA-Ae9"/>
                                 <constraint firstAttribute="height" constant="50" id="RgV-DJ-G2w"/>
                                 <constraint firstItem="OVn-sM-ADk" firstAttribute="leading" secondItem="2lR-LA-fG9" secondAttribute="trailing" constant="10" id="SDc-XK-oQg"/>
                                 <constraint firstItem="FcT-pj-i3J" firstAttribute="leading" secondItem="587-LV-G4K" secondAttribute="leading" constant="10" id="SQk-ld-fgY"/>
@@ -728,7 +702,7 @@
                             </connections>
                         </view>
                         <view tag="1011" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bLM-S7-kvB">
-                            <rect key="frame" x="0.0" y="100" width="386" height="50"/>
+                            <rect key="frame" x="0.0" y="150" width="386" height="50"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_network" translatesAutoresizingMaskIntoConstraints="NO" id="hj7-pL-PYP">
                                     <rect key="frame" x="10" y="11" width="28" height="28"/>
@@ -775,7 +749,7 @@
                             </connections>
                         </view>
                         <view tag="1012" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Pj0-Ce-zhw">
-                            <rect key="frame" x="0.0" y="150" width="386" height="50"/>
+                            <rect key="frame" x="0.0" y="200" width="386" height="50"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_device" translatesAutoresizingMaskIntoConstraints="NO" id="kNZ-rH-ieu">
                                     <rect key="frame" x="10" y="11" width="28" height="28"/>
@@ -822,7 +796,7 @@
                             </connections>
                         </view>
                         <view tag="1013" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4LP-I2-ILK">
-                            <rect key="frame" x="0.0" y="200" width="386" height="50"/>
+                            <rect key="frame" x="0.0" y="250" width="386" height="50"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_help" translatesAutoresizingMaskIntoConstraints="NO" id="QBH-0K-zc7">
                                     <rect key="frame" x="10" y="11" width="28" height="28"/>
@@ -869,7 +843,7 @@
                             </connections>
                         </view>
                         <view tag="1018" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IAv-KK-u9M">
-                            <rect key="frame" x="0.0" y="250" width="386" height="50"/>
+                            <rect key="frame" x="0.0" y="300" width="386" height="50"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_feedback" translatesAutoresizingMaskIntoConstraints="NO" id="4kV-at-PJ6">
                                     <rect key="frame" x="10" y="11" width="28" height="28"/>
@@ -915,6 +889,53 @@
                                 <outletCollection property="gestureRecognizers" destination="u3X-92-Ynd" appends="YES" id="uSG-iD-8UE"/>
                             </connections>
                         </view>
+                        <view tag="1020" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yJV-VL-XsD">
+                            <rect key="frame" x="0.0" y="100" width="386" height="50"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_record" translatesAutoresizingMaskIntoConstraints="NO" id="x5Y-gb-nxT">
+                                    <rect key="frame" x="10" y="11" width="28" height="28"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="28" id="HC4-O4-pAL"/>
+                                        <constraint firstAttribute="height" constant="28" id="mSA-Q9-Dzp"/>
+                                    </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="OIJ-RC-zzl">
+                                    <rect key="frame" x="42" y="16" width="61.5" height="18"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                    <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" image="mine_next" translatesAutoresizingMaskIntoConstraints="NO" id="vGN-76-6gr">
+                                    <rect key="frame" x="362" y="19.5" width="6" height="11"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="11" id="92Q-wY-JYU"/>
+                                        <constraint firstAttribute="width" constant="6" id="k51-CP-nS6"/>
+                                    </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="qkD-VN-IB0">
+                                    <rect key="frame" x="352" y="25" width="0.0" height="0.0"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                    <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <gestureRecognizers/>
+                            <constraints>
+                                <constraint firstItem="vGN-76-6gr" firstAttribute="centerY" secondItem="yJV-VL-XsD" secondAttribute="centerY" id="1t7-Md-Q3M"/>
+                                <constraint firstItem="OIJ-RC-zzl" firstAttribute="centerY" secondItem="x5Y-gb-nxT" secondAttribute="centerY" id="IWo-Li-EEq"/>
+                                <constraint firstAttribute="trailing" secondItem="vGN-76-6gr" secondAttribute="trailing" constant="18" id="Ixe-BL-5OX"/>
+                                <constraint firstAttribute="height" constant="50" id="JpZ-Vm-V7O"/>
+                                <constraint firstItem="x5Y-gb-nxT" firstAttribute="leading" secondItem="yJV-VL-XsD" secondAttribute="leading" constant="10" id="Th4-Vy-C3z"/>
+                                <constraint firstItem="vGN-76-6gr" firstAttribute="leading" secondItem="qkD-VN-IB0" secondAttribute="trailing" constant="10" id="fBP-Rh-7Yo"/>
+                                <constraint firstItem="vGN-76-6gr" firstAttribute="centerY" secondItem="qkD-VN-IB0" secondAttribute="centerY" id="hgR-S9-cDk"/>
+                                <constraint firstItem="OIJ-RC-zzl" firstAttribute="leading" secondItem="x5Y-gb-nxT" secondAttribute="trailing" constant="4" id="poZ-GT-1NE"/>
+                                <constraint firstItem="x5Y-gb-nxT" firstAttribute="centerY" secondItem="yJV-VL-XsD" secondAttribute="centerY" id="rWu-p9-Oa0"/>
+                            </constraints>
+                            <connections>
+                                <outletCollection property="gestureRecognizers" destination="Amm-i3-t8I" appends="YES" id="rvQ-YC-fYA"/>
+                            </connections>
+                        </view>
                     </subviews>
                     <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                     <constraints>
@@ -926,16 +947,19 @@
                         <constraint firstItem="587-LV-G4K" firstAttribute="leading" secondItem="f2F-rL-Oml" secondAttribute="leading" id="7U9-Rv-Hoe"/>
                         <constraint firstItem="587-LV-G4K" firstAttribute="top" secondItem="f2F-rL-Oml" secondAttribute="top" id="7Vn-w3-FvM"/>
                         <constraint firstItem="Pj0-Ce-zhw" firstAttribute="top" secondItem="bLM-S7-kvB" secondAttribute="bottom" id="BIL-21-Bhu"/>
+                        <constraint firstAttribute="trailing" secondItem="yJV-VL-XsD" secondAttribute="trailing" id="Ca5-kk-TOo"/>
                         <constraint firstAttribute="trailing" secondItem="Pj0-Ce-zhw" secondAttribute="trailing" id="JYo-IJ-TK0"/>
                         <constraint firstItem="4LP-I2-ILK" firstAttribute="top" secondItem="Pj0-Ce-zhw" secondAttribute="bottom" id="JzB-PI-TGr"/>
                         <constraint firstAttribute="trailing" secondItem="4LP-I2-ILK" secondAttribute="trailing" id="Mo1-up-C8f"/>
                         <constraint firstAttribute="trailing" secondItem="IAv-KK-u9M" secondAttribute="trailing" id="NWY-O3-O5I"/>
-                        <constraint firstAttribute="height" constant="300" id="Oax-s9-suf"/>
                         <constraint firstItem="4LP-I2-ILK" firstAttribute="leading" secondItem="f2F-rL-Oml" secondAttribute="leading" id="V8s-sf-E8f"/>
                         <constraint firstItem="IAv-KK-u9M" firstAttribute="leading" secondItem="f2F-rL-Oml" secondAttribute="leading" id="aFe-zS-l4W"/>
-                        <constraint firstItem="bLM-S7-kvB" firstAttribute="top" secondItem="BEZ-ci-TDO" secondAttribute="bottom" id="aYh-dH-lna"/>
                         <constraint firstItem="Pj0-Ce-zhw" firstAttribute="leading" secondItem="f2F-rL-Oml" secondAttribute="leading" id="fz9-0a-2Fc"/>
+                        <constraint firstItem="bLM-S7-kvB" firstAttribute="top" secondItem="yJV-VL-XsD" secondAttribute="bottom" id="io3-RN-NmU"/>
+                        <constraint firstItem="yJV-VL-XsD" firstAttribute="top" secondItem="BEZ-ci-TDO" secondAttribute="bottom" id="opq-2y-R4r"/>
+                        <constraint firstItem="yJV-VL-XsD" firstAttribute="leading" secondItem="f2F-rL-Oml" secondAttribute="leading" id="prN-b4-KWo"/>
                         <constraint firstAttribute="trailing" secondItem="587-LV-G4K" secondAttribute="trailing" id="t6f-Rd-2hW"/>
+                        <constraint firstAttribute="bottom" secondItem="IAv-KK-u9M" secondAttribute="bottom" id="xBH-1r-3xe"/>
                         <constraint firstItem="bLM-S7-kvB" firstAttribute="leading" secondItem="f2F-rL-Oml" secondAttribute="leading" id="zfy-Tv-0KA"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>
@@ -967,9 +991,6 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="authStatusImage" destination="Rzr-Zq-SiR" id="WlA-OH-16Y"/>
-                <outlet property="authView" destination="6Ye-sQ-nUm" id="zub-Wh-r16"/>
-                <outlet property="authViewWidth" destination="TLa-zF-yhJ" id="49J-qF-xus"/>
                 <outlet property="badgeView" destination="pU5-7g-Bzb" id="8tD-7W-zkT"/>
                 <outlet property="cardStatusLabel" destination="EQt-Ei-IA1" id="HBE-Oz-GFC"/>
                 <outlet property="descView" destination="ezF-W3-9Gd" id="3gr-2t-1j7"/>
@@ -977,15 +998,17 @@
                 <outlet property="emptyView" destination="BwF-Qu-G62" id="ox4-76-9iH"/>
                 <outlet property="fansCount" destination="Txs-cy-0uI" id="lrg-ZG-wRk"/>
                 <outlet property="finishCourse" destination="43g-pi-zyr" id="iqW-8i-NP1"/>
-                <outlet property="liveImage" destination="KtO-Tm-2f3" id="mjr-MW-AzH"/>
+                <outlet property="liveImage" destination="o0F-R0-j1W" id="vg1-xm-ueN"/>
                 <outlet property="memberCountLabel" destination="0yV-BK-sbe" id="vN3-7g-fAm"/>
                 <outlet property="memberView" destination="bzX-0A-SrW" id="hHW-bh-E4G"/>
                 <outlet property="memberViewHeight" destination="8OJ-NA-cto" id="VmF-fp-iHV"/>
-                <outlet property="musicImage" destination="o0F-R0-j1W" id="6RJ-6I-nmv"/>
-                <outlet property="musicianStatusLabel" destination="2lR-LA-fG9" id="wrq-5A-Auq"/>
+                <outlet property="musicImage" destination="KtO-Tm-2f3" id="pBf-YZ-BqD"/>
+                <outlet property="shareAmountLabel" destination="2lR-LA-fG9" id="OJI-xw-bTa"/>
                 <outlet property="starBgView" destination="kb3-97-shC" id="PuF-MY-igO"/>
                 <outlet property="starView" destination="U6R-K3-xDh" id="9Sg-aI-0Vf"/>
                 <outlet property="styleImage" destination="J1I-kl-bpI" id="ctf-2G-mvB"/>
+                <outlet property="tradeHeight" destination="JpZ-Vm-V7O" id="UCF-bq-M4w"/>
+                <outlet property="tradeView" destination="yJV-VL-XsD" id="8cs-50-fPk"/>
                 <outlet property="unfinishCourse" destination="1mV-1f-bkA" id="1Zw-EG-WAH"/>
                 <outlet property="userAvatal" destination="L8h-ZO-2iV" id="nc8-ng-TZt"/>
                 <outlet property="userName" destination="dbv-tC-djl" id="ehT-78-jMF"/>
@@ -1079,6 +1102,11 @@
                 <action selector="clickAction:" destination="iN0-l3-epB" id="F43-5x-hKl"/>
             </connections>
         </tapGestureRecognizer>
+        <tapGestureRecognizer id="Amm-i3-t8I">
+            <connections>
+                <action selector="clickAction:" destination="iN0-l3-epB" id="4lL-rd-JCH"/>
+            </connections>
+        </tapGestureRecognizer>
     </objects>
     <resources>
         <image name="member_bg" width="333" height="82"/>
@@ -1100,10 +1128,10 @@
         <image name="mine_next" width="6" height="11"/>
         <image name="mine_nomal" width="34" height="15"/>
         <image name="mine_order" width="34" height="34"/>
+        <image name="mine_promotion" width="28" height="28"/>
+        <image name="mine_record" width="28" height="28"/>
         <image name="mine_startBoardcast" width="34" height="34"/>
         <image name="mine_videoCourse" width="34" height="34"/>
-        <image name="musician_auth" width="28" height="28"/>
-        <image name="status_unAuth" width="80" height="24"/>
         <image name="user_default_avatal" width="52" height="52"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>