Browse Source

评价列表

Steven 2 weeks ago
parent
commit
ff6571fbea
22 changed files with 689 additions and 127 deletions
  1. 20 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. 1 1
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/xcshareddata/xcschemes/KulexiuForTeacher.xcscheme
  3. 6 2
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m
  4. 11 10
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.xib
  5. 2 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/MyGroupCourse/View/GroupCourseGroupHeadView.m
  6. 15 13
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/MyGroupCourse/View/GroupCourseGroupHeadView.xib
  7. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/MyGroupCourse/View/GroupCourseListCell.xib
  8. 32 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateDetailViewController.m
  9. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateCourseBodyView.m
  10. 24 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateDetailNavView.h
  11. 49 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateDetailNavView.m
  12. 73 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateDetailNavView.xib
  13. 33 81
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateReceiveBodyView.m
  14. 41 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateReceiveSortView.h
  15. 109 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateReceiveSortView.m
  16. 232 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateReceiveSortView.xib
  17. 9 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkBodyView.m
  18. 11 10
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkListCell.xib
  19. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/MusicRoomHomeworkCell.h
  20. 5 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/MusicRoomHomeworkCell.m
  21. 2 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/MusicRoomHomeworkCell.xib
  22. 7 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m

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

@@ -473,6 +473,10 @@
 		BC33000F2BBAB5ED003D4921 /* KnowledgePointListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC33000A2BBAB5ED003D4921 /* KnowledgePointListModel.m */; };
 		BC3300102BBAB5ED003D4921 /* MaterialList.m in Sources */ = {isa = PBXBuildFile; fileRef = BC33000C2BBAB5ED003D4921 /* MaterialList.m */; };
 		BC332DB3284866BE005AEF95 /* KSOrderManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BC332DB1284866BE005AEF95 /* KSOrderManager.m */; };
+		BC34995F2D1BD35800FEB894 /* EvaluateDetailNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC34995E2D1BD35800FEB894 /* EvaluateDetailNavView.m */; };
+		BC3499612D1BD35F00FEB894 /* EvaluateDetailNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC3499602D1BD35F00FEB894 /* EvaluateDetailNavView.xib */; };
+		BC3499642D1BD56200FEB894 /* EvaluateReceiveSortView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC3499632D1BD56200FEB894 /* EvaluateReceiveSortView.m */; };
+		BC3499662D1BD62600FEB894 /* EvaluateReceiveSortView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC3499652D1BD62600FEB894 /* EvaluateReceiveSortView.xib */; };
 		BC366FBD2CF0221000583E61 /* CourseGroupNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC366FBC2CF0221000583E61 /* CourseGroupNavView.m */; };
 		BC366FBF2CF0221800583E61 /* CourseGroupNavView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC366FBE2CF0221800583E61 /* CourseGroupNavView.xib */; };
 		BC366FC22CF0237A00583E61 /* CourseGroupPlanAddView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC366FC12CF0237A00583E61 /* CourseGroupPlanAddView.m */; };
@@ -2070,6 +2074,12 @@
 		BC33000C2BBAB5ED003D4921 /* MaterialList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MaterialList.m; 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>"; };
+		BC34995D2D1BD35800FEB894 /* EvaluateDetailNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EvaluateDetailNavView.h; sourceTree = "<group>"; };
+		BC34995E2D1BD35800FEB894 /* EvaluateDetailNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EvaluateDetailNavView.m; sourceTree = "<group>"; };
+		BC3499602D1BD35F00FEB894 /* EvaluateDetailNavView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EvaluateDetailNavView.xib; sourceTree = "<group>"; };
+		BC3499622D1BD56200FEB894 /* EvaluateReceiveSortView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EvaluateReceiveSortView.h; sourceTree = "<group>"; };
+		BC3499632D1BD56200FEB894 /* EvaluateReceiveSortView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EvaluateReceiveSortView.m; sourceTree = "<group>"; };
+		BC3499652D1BD62600FEB894 /* EvaluateReceiveSortView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EvaluateReceiveSortView.xib; sourceTree = "<group>"; };
 		BC366FBB2CF0221000583E61 /* CourseGroupNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CourseGroupNavView.h; sourceTree = "<group>"; };
 		BC366FBC2CF0221000583E61 /* CourseGroupNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CourseGroupNavView.m; sourceTree = "<group>"; };
 		BC366FBE2CF0221800583E61 /* CourseGroupNavView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseGroupNavView.xib; sourceTree = "<group>"; };
@@ -5760,9 +5770,15 @@
 				BC285831280947BA0024697C /* EvaluateSortView.h */,
 				BC285832280947BA0024697C /* EvaluateSortView.m */,
 				BC73A1F32809693F00FA8F6F /* EvaluateSortView.xib */,
+				BC3499622D1BD56200FEB894 /* EvaluateReceiveSortView.h */,
+				BC3499632D1BD56200FEB894 /* EvaluateReceiveSortView.m */,
+				BC3499652D1BD62600FEB894 /* EvaluateReceiveSortView.xib */,
 				BC28582C2809451B0024697C /* EvaluateCouseCell.h */,
 				BC28582D2809451B0024697C /* EvaluateCouseCell.m */,
 				BC28582E2809451B0024697C /* EvaluateCouseCell.xib */,
+				BC34995D2D1BD35800FEB894 /* EvaluateDetailNavView.h */,
+				BC34995E2D1BD35800FEB894 /* EvaluateDetailNavView.m */,
+				BC3499602D1BD35F00FEB894 /* EvaluateDetailNavView.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -8265,6 +8281,7 @@
 				BC8B6DBA285327EE00866917 /* MusicShareDisplayView.xib in Resources */,
 				BC58E7D5281B9637004B0893 /* PublicNoticeView.xib in Resources */,
 				BC4218022C4E43A100C70B2F /* KSUserDetailNavView.xib in Resources */,
+				BC3499612D1BD35F00FEB894 /* EvaluateDetailNavView.xib in Resources */,
 				BCEA752D2819134400886A86 /* CardBindResultBodyView.xib in Resources */,
 				BC42180C2C4E474500C70B2F /* KSUserDetailBodyView.xib in Resources */,
 				BC14A61428A0AC880086395C /* MineTeachToolView.xib in Resources */,
@@ -8606,6 +8623,7 @@
 				BCDF820D2A8A2955005F8B82 /* MemberSettingMicAlert.xib in Resources */,
 				BCB1BEEA2D13AE5E001CDA53 /* HomeworkListNavView.xib in Resources */,
 				275E3DE327F467410010EC30 /* BaseEmoji.plist in Resources */,
+				BC3499662D1BD62600FEB894 /* EvaluateReceiveSortView.xib in Resources */,
 				BC366FBF2CF0221800583E61 /* CourseGroupNavView.xib in Resources */,
 				BC71DF072A89F470003F165E /* ClassRoomTitleButton.xib in Resources */,
 				BCC5842028AA559700BAB4CF /* cloud_animation_29.png in Resources */,
@@ -8794,6 +8812,7 @@
 				BC86A2B92CD3574400A15A53 /* VideoCoverChooseView.m in Sources */,
 				BC86A2BA2CD3574400A15A53 /* MusicPublistAlert.m in Sources */,
 				BC86A2BB2CD3574400A15A53 /* MusicPublicContentView.m in Sources */,
+				BC34995F2D1BD35800FEB894 /* EvaluateDetailNavView.m in Sources */,
 				BC86A2BC2CD3574400A15A53 /* MusicCoverChooseView.m in Sources */,
 				27FC2F6627F1BBFE00FCC239 /* MyMusicViewController.m in Sources */,
 				277D432827E9A48000107DB7 /* ModifyPhoneChangeController.m in Sources */,
@@ -8849,6 +8868,7 @@
 				BC31BF962B219C5700F7D538 /* WMGaugeViewStyleFlatThin.m in Sources */,
 				BC4BCE752823A1AE00522C8B /* AddressDetailViewController.m in Sources */,
 				BCDB093E2805C0EF00D0BDAD /* NewClassPopCell.m in Sources */,
+				BC3499642D1BD56200FEB894 /* EvaluateReceiveSortView.m in Sources */,
 				BC02BCDD28B324A5005CB483 /* SeatBodyView.m in Sources */,
 				BC221FA428C72B9500F99802 /* MyStyleVideoCell.m in Sources */,
 				BCB635B627F6FB0A00ACFDCF /* SeatTipsView.m in Sources */,

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/xcshareddata/xcschemes/KulexiuForTeacher.xcscheme

@@ -94,7 +94,7 @@
       buildConfiguration = "Debug">
    </AnalyzeAction>
    <ArchiveAction
-      buildConfiguration = "Release"
+      buildConfiguration = "DEV"
       revealArchiveInOrganizer = "YES">
    </ArchiveAction>
 </Scheme>

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

@@ -1671,7 +1671,9 @@
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:classMonth forKey:@"classMonth"];
     [parm setValue:replied forKey:@"replied"];
-    [parm setValue:studentName forKey:@"studentName"];
+    if (![NSString isEmptyString:studentName]) {
+        [parm setValue:studentName forKey:@"studentName"];
+    }
     [parm setValue:@(page) forKey:@"page"];
     [parm setValue:@(rows) forKey:@"rows"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];
@@ -1733,7 +1735,9 @@
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:classMonth forKey:@"classDate"];
     [parm setValue:courseType forKey:@"courseType"];
-    [parm setValue:search forKey:@"studentName"];
+    if (![NSString isEmptyString:search]) {
+        [parm setValue:search forKey:@"studentName"];
+    }
     [parm setValue:@(page) forKey:@"page"];
     [parm setValue:@(rows) forKey:@"rows"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];

+ 11 - 10
KulexiuForTeacher/KulexiuForTeacher/Module/Course/MusicRoom/View/MusicRoomCourseInfoCell.xib

@@ -28,8 +28,8 @@
                                     <constraint firstAttribute="height" constant="16" id="OPR-bh-I32"/>
                                 </constraints>
                             </imageView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2024-10-30 15:00~15:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xGN-fD-6g8">
-                                <rect key="frame" x="34" y="14" width="145.5" height="18"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xGN-fD-6g8">
+                                <rect key="frame" x="34" y="14" width="0.0" height="18"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="18" id="mzA-XH-SXS"/>
                                 </constraints>
@@ -44,8 +44,8 @@
                                     <constraint firstAttribute="height" constant="1" id="O3Q-xP-7fL"/>
                                 </constraints>
                             </view>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张老师琴房课-第1课" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QUb-lq-pUv">
-                                <rect key="frame" x="61" y="58" width="136.5" height="21"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QUb-lq-pUv">
+                                <rect key="frame" x="61" y="58" width="0.0" height="21"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="21" id="4Be-UW-Fda"/>
                                 </constraints>
@@ -54,10 +54,10 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="ORG-gD-yMT">
-                                <rect key="frame" x="193.5" y="83.5" width="28" height="17"/>
+                                <rect key="frame" x="66" y="91.5" width="8" height="17"/>
                                 <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="长笛" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kCh-Pp-Mzx">
-                                        <rect key="frame" x="4" y="0.0" width="20" height="17"/>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kCh-Pp-Mzx">
+                                        <rect key="frame" x="4" y="0.0" width="0.0" height="17"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="10"/>
                                         <color key="textColor" red="1" green="0.5490196078431373" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
@@ -100,14 +100,14 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="cdq-YL-Hxn">
-                                <rect key="frame" x="202.5" y="59.5" width="36" height="18"/>
+                                <rect key="frame" x="66" y="59.5" width="36" height="18"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="18" id="UXN-IU-ld1"/>
                                     <constraint firstAttribute="width" constant="36" id="zAo-te-zhg"/>
                                 </constraints>
                             </imageView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张涵宇、向冰冰等5人" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UvK-T9-66w">
-                                <rect key="frame" x="61" y="84" width="127.5" height="16"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UvK-T9-66w">
+                                <rect key="frame" x="61" y="100" 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"/>
@@ -162,6 +162,7 @@
                 <outlet property="courseName" destination="QUb-lq-pUv" id="jT1-d5-C3p"/>
                 <outlet property="courseTimeLabel" destination="xGN-fD-6g8" id="Sme-fy-pag"/>
                 <outlet property="statusLabel" destination="1JB-RE-CPf" id="Dx1-ae-yhb"/>
+                <outlet property="studentName" destination="UvK-T9-66w" id="RS9-kX-toh"/>
                 <outlet property="subjectName" destination="kCh-Pp-Mzx" id="G52-oL-Ssf"/>
             </connections>
             <point key="canvasLocation" x="114.49275362318842" y="92.745535714285708"/>

+ 2 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Course/MyGroupCourse/View/GroupCourseGroupHeadView.m

@@ -40,7 +40,8 @@
 - (void)configWithSource:(GroupCourseGroupInfoModel *)model {
     [self.coverImage sd_setImageWithURL:[NSURL URLWithString:[model.backgroundPic getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:@"video_placeholder"]];
     self.courseName.text = [NSString returnNoNullStringWithString:model.courseGroupName];
-    self.orderUser.text = [NSString stringWithFormat:@"剩余%.0f个名额", model.maxStudentNum - model.studentCount];
+//    self.orderUser.text = [NSString stringWithFormat:@"剩余%.0f个名额", model.maxStudentNum - model.studentCount];
+    self.orderUser.text = [NSString stringWithFormat:@"%.0f人学习",model.studentCount];
     // time
     NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

+ 15 - 13
KulexiuForTeacher/KulexiuForTeacher/Module/Course/MyGroupCourse/View/GroupCourseGroupHeadView.xib

@@ -50,7 +50,7 @@
                                 </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
                         </view>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="著名大号大师严琦带你去走近音乐的异想世界" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xNR-qb-bSK">
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xNR-qb-bSK">
                             <rect key="frame" x="14" y="229" width="365" height="22"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="22" id="Mq4-2p-Jrc"/>
@@ -60,7 +60,7 @@
                             <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="cWt-tT-seb">
-                            <rect key="frame" x="347" y="312" width="0.0" height="24"/>
+                            <rect key="frame" x="352.33333333333331" y="312" width="0.0" height="24"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="24" id="KVO-pT-iPI"/>
                             </constraints>
@@ -68,8 +68,8 @@
                             <color key="textColor" red="0.95686274510000002" green="0.27058823529999998" blue="0.25490196079999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="/1课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="C6q-FO-iK4">
-                            <rect key="frame" x="349" y="317" width="32" height="17"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="/课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="C6q-FO-iK4">
+                            <rect key="frame" x="354.33333333333331" y="317" width="26.666666666666686" height="17"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="17" id="rlG-mJ-N7P"/>
                             </constraints>
@@ -78,7 +78,7 @@
                             <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="9s2-dK-o6k">
-                            <rect key="frame" x="338" y="318" width="7" height="16"/>
+                            <rect key="frame" x="343.33333333333331" y="318" width="7" height="16"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="16" id="hEL-qQ-c3g"/>
                             </constraints>
@@ -102,8 +102,8 @@
                             <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="749" text="2024-11-16 09:30" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tI3-dq-1Qx">
-                            <rect key="frame" x="103.66666666666669" y="261" width="117.33333333333331" height="20"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="749" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tI3-dq-1Qx">
+                            <rect key="frame" x="103.66666666666667" y="261" width="0.0" height="20"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="20" id="lT0-gl-akp"/>
                             </constraints>
@@ -119,10 +119,10 @@
                             </constraints>
                         </view>
                         <view contentMode="scaleToFill" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="HX4-58-7dZ">
-                            <rect key="frame" x="301" y="261.66666666666669" width="78" height="19"/>
+                            <rect key="frame" x="371" y="261.66666666666669" width="8" height="19"/>
                             <subviews>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="剩余2个名额" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cfo-DH-vsM">
-                                    <rect key="frame" x="4" y="2.3333333333333153" width="70" height="14.333333333333336"/>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cfo-DH-vsM">
+                                    <rect key="frame" x="4" y="0.0" width="0.0" height="19"/>
                                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                     <color key="textColor" red="1" green="0.40784313729999999" blue="0.1529411765" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
@@ -132,8 +132,10 @@
                             <constraints>
                                 <constraint firstItem="cfo-DH-vsM" firstAttribute="leading" secondItem="HX4-58-7dZ" secondAttribute="leading" constant="4" id="2Ye-FI-s79"/>
                                 <constraint firstAttribute="trailing" secondItem="cfo-DH-vsM" secondAttribute="trailing" constant="4" id="NVN-YV-cAP"/>
+                                <constraint firstItem="cfo-DH-vsM" firstAttribute="top" secondItem="HX4-58-7dZ" secondAttribute="top" id="gh9-kC-zdN"/>
                                 <constraint firstAttribute="height" constant="19" id="k5A-YY-pam"/>
                                 <constraint firstItem="cfo-DH-vsM" firstAttribute="centerY" secondItem="HX4-58-7dZ" secondAttribute="centerY" id="qgL-Jz-iko"/>
+                                <constraint firstAttribute="bottom" secondItem="cfo-DH-vsM" secondAttribute="bottom" id="zwE-5S-rUA"/>
                             </constraints>
                             <userDefinedRuntimeAttributes>
                                 <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -141,8 +143,8 @@
                                 </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
                         </view>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="严琦" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YTe-Wh-9ux">
-                            <rect key="frame" x="62" y="304" width="30" height="22"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YTe-Wh-9ux">
+                            <rect key="frame" x="62" y="304" width="0.0" height="22"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="22" id="VS0-J4-wTr"/>
                             </constraints>
@@ -241,7 +243,7 @@
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="VIP定制课是客制化的1v1线上课程。老师根据您的学习需求和希望达到的成果定制教学内容。为了提高您的上课体验,约课前请与老师充分沟通,达成一致后课根据老师的空闲时间约定上课时间。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hIr-WK-MPf">
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hIr-WK-MPf">
                             <rect key="frame" x="12" y="55" width="341" height="70"/>
                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                             <color key="textColor" red="0.46666666670000001" green="0.46666666670000001" blue="0.46666666670000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/MyGroupCourse/View/GroupCourseListCell.xib

@@ -211,6 +211,11 @@
                             <constraint firstItem="qeE-Ft-83e" firstAttribute="top" secondItem="iLa-EZ-zRx" secondAttribute="bottom" id="rM8-gQ-B7T"/>
                             <constraint firstAttribute="bottom" secondItem="qeE-Ft-83e" secondAttribute="bottom" constant="12" id="uTX-mt-T4L"/>
                         </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                <real key="value" value="10"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
                     </view>
                 </subviews>
                 <constraints>

+ 32 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateDetailViewController.m

@@ -11,6 +11,7 @@
 #import "CourseGroupPlanAlertView.h"
 #import "EvaluateDetailModel.h"
 #import "AccompanyStudentEvaCell.h"
+#import "EvaluateDetailNavView.h"
 
 @interface EvaluateDetailViewController ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -20,6 +21,8 @@
 
 @property (nonatomic, strong) EvaluateDetailModel *detailModel;
 
+@property (nonatomic, strong) EvaluateDetailNavView *navView;
+
 @end
 
 
@@ -28,7 +31,8 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-    [self allocTitle:@"课后评价"];
+    self.ks_prefersNavigationBarHidden = YES;
+    
     [self configUI];
     if (self.isReceiveReplire == NO) {
         [self requestData];
@@ -41,10 +45,24 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
-    self.view.backgroundColor = HexRGB(0xf8f9fc);
+    
+    UIImage *bgImage = [UIImage imageNamed:@"homework_detail_bg"];
+    CGFloat height = bgImage.size.height / bgImage.size.width * KPortraitWidth;
+    UIImageView *imageView = [[UIImageView alloc] initWithImage:bgImage];
+    imageView.frame = CGRectMake(0, 0, KPortraitWidth, height);
+    [self.view addSubview:imageView];
+    
+    [self.view addSubview:self.navView];
+    CGFloat navHeight = [EvaluateDetailNavView getViewHeight];
+    [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.top.mas_equalTo(self.view);
+        make.height.mas_equalTo(navHeight);
+    }];
+    
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.mas_equalTo(self.view);
+        make.top.mas_equalTo(self.navView.mas_bottom);
+        make.left.right.mas_equalTo(self.view);
         make.bottom.mas_equalTo(self.view.mas_bottom).offset(-iPhoneXSafeBottomMargin);
     }];
 }
@@ -156,6 +174,17 @@
     return _tableView;
 }
 
+- (EvaluateDetailNavView *)navView {
+    if (!_navView) {
+        _navView = [EvaluateDetailNavView sharedInstance];
+        NSString *title = self.isReceiveReplire ? @"学员评价" : @"老师评价";
+        MJWeakSelf;
+        [_navView configWithTitle:title callback:^{
+            [weakSelf backAction];
+        }];
+    }
+    return _navView;
+}
 
 /*
 #pragma mark - Navigation

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

@@ -341,7 +341,7 @@
         case EVALUATESORT_COURSETYPE:
         {
             MJWeakSelf;
-            KSSmallChoosePicker *picker = [[KSSmallChoosePicker alloc] initWithTitle:@"" sourceData:@[@"全部",@"VIP定制课",@"趣纠课"] lastChoose:self.secondChooseIndex chooseColor:THEMECOLOR chooseReturnWithBlock:^(NSString * _Nonnull returnValue, NSInteger chooseIndex) {
+            KSSmallChoosePicker *picker = [[KSSmallChoosePicker alloc] initWithTitle:@"" sourceData:@[@"全部",@"VIP定制课",@"趣纠课"] lastChoose:self.thirdChooseIndex chooseColor:THEMECOLOR chooseReturnWithBlock:^(NSString * _Nonnull returnValue, NSInteger chooseIndex) {
                 weakSelf.secondChooseIndex = chooseIndex;
                 if (chooseIndex == 1) {
                     [weakSelf.sortView.thirdLabel setText:@"全部课程"];

+ 24 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateDetailNavView.h

@@ -0,0 +1,24 @@
+//
+//  EvaluateDetailNavView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/12/25.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef void(^EvaluateDetailCallback)(void);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EvaluateDetailNavView : UIView
+
++ (instancetype)sharedInstance;
+
+- (void)configWithTitle:(NSString *)title callback:(EvaluateDetailCallback)callback;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 49 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateDetailNavView.m

@@ -0,0 +1,49 @@
+//
+//  EvaluateDetailNavView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/12/25.
+//
+
+#import "EvaluateDetailNavView.h"
+
+@interface EvaluateDetailNavView ()
+
+@property (weak, nonatomic) IBOutlet UILabel *headTitle;
+
+@property (nonatomic, copy) EvaluateDetailCallback callback;
+
+@end
+
+@implementation EvaluateDetailNavView
+
++ (instancetype)sharedInstance {
+    EvaluateDetailNavView *view = [[[NSBundle mainBundle] loadNibNamed:@"EvaluateDetailNavView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configWithTitle:(NSString *)title callback:(EvaluateDetailCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+    self.headTitle.text = [NSString returnNoNullStringWithString:title];
+}
+
+- (IBAction)backAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
++ (CGFloat)getViewHeight {
+    return kNaviBarHeight;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 73 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateDetailNavView.xib

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
+        <capability name="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="EvaluateDetailNavView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="136"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IOH-KE-bGu">
+                    <rect key="frame" x="0.0" y="92" width="393" height="44"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_black" translatesAutoresizingMaskIntoConstraints="NO" id="Z9T-L1-t4t">
+                            <rect key="frame" x="15" y="12" width="12" height="20"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GrL-qx-T7m">
+                            <rect key="frame" x="0.0" y="2" width="40" height="40"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="40" id="A3O-b9-brL"/>
+                                <constraint firstAttribute="width" constant="40" id="GHE-19-TGs"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="backAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="yRg-zu-u1E"/>
+                            </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="jPm-UD-SCn">
+                            <rect key="frame" x="160.66666666666666" y="9.6666666666666714" width="71.666666666666657" height="25"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="25" id="cVa-7r-lEe"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="GrL-qx-T7m" firstAttribute="leading" secondItem="IOH-KE-bGu" secondAttribute="leading" id="17b-7w-gA1"/>
+                        <constraint firstItem="jPm-UD-SCn" firstAttribute="centerX" secondItem="IOH-KE-bGu" secondAttribute="centerX" id="9PK-bH-equ"/>
+                        <constraint firstItem="Z9T-L1-t4t" firstAttribute="centerY" secondItem="IOH-KE-bGu" secondAttribute="centerY" id="B1z-y5-QsT"/>
+                        <constraint firstItem="Z9T-L1-t4t" firstAttribute="leading" secondItem="IOH-KE-bGu" secondAttribute="leading" constant="15" id="CuK-mU-Lk9"/>
+                        <constraint firstItem="jPm-UD-SCn" firstAttribute="centerY" secondItem="GrL-qx-T7m" secondAttribute="centerY" id="EBt-5X-7vU"/>
+                        <constraint firstItem="GrL-qx-T7m" firstAttribute="centerY" secondItem="Z9T-L1-t4t" secondAttribute="centerY" id="aIK-pY-6Eb"/>
+                        <constraint firstAttribute="height" constant="44" id="cDF-jo-HXT"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="IOH-KE-bGu" secondAttribute="bottom" id="8Xf-NE-cPR"/>
+                <constraint firstItem="IOH-KE-bGu" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="AKc-T9-vJT"/>
+                <constraint firstAttribute="trailing" secondItem="IOH-KE-bGu" secondAttribute="trailing" id="Pgb-dy-alK"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="headTitle" destination="jPm-UD-SCn" id="T7l-uv-zRv"/>
+            </connections>
+            <point key="canvasLocation" x="43.511450381679388" y="-35.211267605633807"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="back_black" width="12" height="20"/>
+    </resources>
+</document>

+ 33 - 81
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateReceiveBodyView.m

@@ -6,7 +6,7 @@
 //
 
 #import "EvaluateReceiveBodyView.h"
-#import "EvaluateSortView.h"
+#import "EvaluateReceiveSortView.h"
 #import "EvaluateCouseCell.h"
 #import <KSFullDatePicker.h>
 #import "EvaluateDetailViewController.h"
@@ -28,7 +28,7 @@
 @property (nonatomic, assign) NSInteger rows;
 @property (nonatomic, assign) NSInteger pages;
 
-@property (nonatomic, strong) EvaluateSortView *sortView;
+@property (nonatomic, strong) EvaluateReceiveSortView *sortView;
 
 @property (nonatomic, strong) NSString *chooseDate;
 
@@ -36,10 +36,6 @@
 
 @property (nonatomic, assign) NSInteger secondChooseIndex;
 
-@property (nonatomic, assign) NSInteger thirdChooseIndex;
-
-@property (nonatomic, strong) NSString *evaluateStatusString;
-
 @property (nonatomic, strong) NSString *courseType;
 
 @end
@@ -172,7 +168,7 @@
 
 - (void)layoutSubviews {
     [super layoutSubviews];
-    CGFloat topHeight = [EvaluateSortView getViewHeight];
+    CGFloat topHeight = [EvaluateReceiveSortView getViewHeight];
     self.tableView.frame = CGRectMake(0, topHeight, self.bounds.size.width, self.bounds.size.height - topHeight);
     if (!_sortView) {
         self.sortView.frame = CGRectMake(0, 0, KPortraitWidth, topHeight);
@@ -289,20 +285,20 @@
     return _dataArray;
 }
 
-- (EvaluateSortView *)sortView {
+- (EvaluateReceiveSortView *)sortView {
     if (!_sortView) {
-        _sortView = [EvaluateSortView shareInstance];
+        _sortView = [EvaluateReceiveSortView shareInstance];
         MJWeakSelf;
-        [_sortView searchCallback:^(EVALUATESORT sortType, NSString * _Nullable searchKey) {
+        [_sortView searchCallback:^(RECEVALUATESORT sortType, NSString * _Nullable searchKey) {
             [weakSelf searchSource:sortType searchKey:searchKey];
         }];
     }
     return _sortView;
 }
 
-- (void)searchSource:(EVALUATESORT)sortType searchKey:(NSString *)searchKey {
+- (void)searchSource:(RECEVALUATESORT)sortType searchKey:(NSString *)searchKey {
     switch (sortType) {
-        case EVALUATESORT_TIME:
+        case RECEVALUATESORT_TIME:
         {
             KSFullDatePicker *picker = [[KSFullDatePicker alloc] initWithTitle:@"" date:[NSDate date] pickMode:KSDATEPICKER_MODE_YEAR_MONTH sureButtonColor:THEMECOLOR selectDateBlock:^(NSString *date) {
 
@@ -318,18 +314,18 @@
             [picker show];
         }
             break;
-        case EVALUATESORT_STATUS:
+        case RECEVALUATESORT_COURSETYPE:
         {
             MJWeakSelf;
-            KSSmallChoosePicker *picker = [[KSSmallChoosePicker alloc] initWithTitle:@"" sourceData:@[@"全部",@"已评价",@"未评价"] lastChoose:self.secondChooseIndex chooseColor:THEMECOLOR chooseReturnWithBlock:^(NSString * _Nonnull returnValue, NSInteger chooseIndex) {
+            KSSmallChoosePicker *picker = [[KSSmallChoosePicker alloc] initWithTitle:@"" sourceData:@[@"全部",@"VIP定制课",@"趣纠课"] lastChoose:self.secondChooseIndex chooseColor:THEMECOLOR chooseReturnWithBlock:^(NSString * _Nonnull returnValue, NSInteger chooseIndex) {
                 weakSelf.secondChooseIndex = chooseIndex;
                 if (chooseIndex == 1) {
-                    [weakSelf.sortView.secondLabel setText:@"全部状态"];
-                    weakSelf.evaluateStatusString = nil;
+                    [weakSelf.sortView.secondLabel setText:@"全部课程"];
+                    weakSelf.courseType = nil;
                 }
                 else {
                     [weakSelf.sortView.secondLabel setText:returnValue];
-                    [weakSelf evaluateStatusWithIndex:chooseIndex-1 isCourseStatus:YES];
+                    [weakSelf evaluateStatusWithIndex:chooseIndex-1];
                 }
                 weakSelf.sortView.secondArrowUp = NO;
                 [weakSelf refreshAndRequestData];
@@ -339,28 +335,7 @@
             [picker showPicker];
         }
             break;
-        case EVALUATESORT_COURSETYPE:
-        {
-            MJWeakSelf;
-            KSSmallChoosePicker *picker = [[KSSmallChoosePicker alloc] initWithTitle:@"" sourceData:@[@"全部",@"VIP定制课",@"趣纠课"] lastChoose:self.secondChooseIndex chooseColor:THEMECOLOR chooseReturnWithBlock:^(NSString * _Nonnull returnValue, NSInteger chooseIndex) {
-                weakSelf.secondChooseIndex = chooseIndex;
-                if (chooseIndex == 1) {
-                    [weakSelf.sortView.thirdLabel setText:@"全部课程"];
-                    weakSelf.courseType = nil;
-                }
-                else {
-                    [weakSelf.sortView.thirdLabel setText:returnValue];
-                    [weakSelf evaluateStatusWithIndex:chooseIndex-1 isCourseStatus:YES];
-                }
-                weakSelf.sortView.thirdArrowUp = NO;
-                [weakSelf refreshAndRequestData];
-            } cancel:^{
-                weakSelf.sortView.thirdArrowUp = NO;
-            }];
-            [picker showPicker];
-        }
-            break;
-        case EVALUATESORT_NAME:
+        case RECEVALUATESORT_NAME:
         {
             self.searchKey = searchKey;
             [self refreshAndRequestData];
@@ -372,50 +347,27 @@
     }
 }
 
-- (void)evaluateStatusWithIndex:(NSInteger)chooseIndex isCourseStatus:(BOOL)isEvaluateStatus {
-    if (isEvaluateStatus) {
-        switch (chooseIndex) {
-            case 0:
-            {
-                self.evaluateStatusString = nil;
-                [self.sortView.secondLabel setText:@"全部状态"];
-            }
-                break;
-            case 1:
-            {
-                self.evaluateStatusString = @"1";
-            }
-                break;
-            case 2:
-            {
-                self.evaluateStatusString = @"0";
-            }
-                break;
-            default:
-                break;
+- (void)evaluateStatusWithIndex:(NSInteger)chooseIndex {
+    
+    switch (chooseIndex) {
+        case 0:
+        {
+            self.courseType = nil;
+            [self.sortView.secondLabel setText:@"全部课程"];
         }
-    }
-    else {
-        switch (chooseIndex) {
-            case 0:
-            {
-                self.courseType = nil;
-                [self.sortView.thirdLabel setText:@"全部课程"];
-            }
-                break;
-            case 1:
-            {
-                self.courseType = @"VIP";
-            }
-                break;
-            case 2:
-            {
-                self.courseType = @"PRACTICE";
-            }
-                break;
-            default:
-                break;
+            break;
+        case 1:
+        {
+            self.courseType = @"VIP";
         }
+            break;
+        case 2:
+        {
+            self.courseType = @"PRACTICE";
+        }
+            break;
+        default:
+            break;
     }
 }
 

+ 41 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateReceiveSortView.h

@@ -0,0 +1,41 @@
+//
+//  EvaluateReceiveSortView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/12/25.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSInteger, RECEVALUATESORT) {
+    RECEVALUATESORT_TIME = 1,   //  搜索月份
+    RECEVALUATESORT_COURSETYPE, // 课程类型
+    RECEVALUATESORT_NAME,       // 搜索学员姓名
+};
+
+
+typedef void(^RecEvaluateSortCallback)(RECEVALUATESORT sortType, NSString * _Nullable searchKey);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EvaluateReceiveSortView : UIView
+
+@property (weak, nonatomic) IBOutlet UILabel *firstLabel;
+
+@property (weak, nonatomic) IBOutlet UILabel *secondLabel;
+
+@property (nonatomic, assign) BOOL firstArrowUp;
+
+@property (nonatomic, assign) BOOL secondArrowUp;
+
+@property (weak, nonatomic) IBOutlet UITextField *searchField;
+
++ (instancetype)shareInstance;
+
+- (void)searchCallback:(RecEvaluateSortCallback)callback;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 109 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateReceiveSortView.m

@@ -0,0 +1,109 @@
+//
+//  EvaluateReceiveSortView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2024/12/25.
+//
+
+#import "EvaluateReceiveSortView.h"
+
+@interface EvaluateReceiveSortView ()<UITextFieldDelegate>
+
+@property (weak, nonatomic) IBOutlet UIImageView *firstArrow;
+
+@property (weak, nonatomic) IBOutlet UIImageView *secondArrow;
+
+@property (nonatomic, copy) RecEvaluateSortCallback callback;
+
+@end
+
+@implementation EvaluateReceiveSortView
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.searchField.delegate = self;
+    self.searchField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入学员昵称" attributes:@{NSForegroundColorAttributeName:HexRGBAlpha(0x000000, 0.4),NSFontAttributeName:[UIFont systemFontOfSize:14.0f]}];
+}
+
++ (instancetype)shareInstance {
+    EvaluateReceiveSortView *view = [[[NSBundle mainBundle] loadNibNamed:@"EvaluateReceiveSortView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)searchCallback:(RecEvaluateSortCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)searchName:(id)sender {
+    [self endEditing:YES];
+    if (self.callback) {
+        self.callback(RECEVALUATESORT_NAME, self.searchField.text);
+    }
+}
+
+
++ (CGFloat)getViewHeight {
+    return 78.0f;
+}
+
+- (IBAction)buttonClickAction:(UIButton *)sender {
+    [self endEditing:YES];
+    NSInteger index = sender.tag - 1000;
+    BOOL isHidden;
+    if (index == 1) {
+        self.firstArrowUp = !self.firstArrowUp;
+        self.secondArrowUp = NO;
+        isHidden = !self.firstArrowUp;
+    }
+    else {
+        self.secondArrowUp = !self.secondArrowUp;
+        self.firstArrowUp = NO;
+        isHidden = !self.secondArrowUp;
+    }
+    
+    if (self.callback) {
+        self.callback(index, self.searchField.text);
+    }
+}
+
+- (void)setFirstArrowUp:(BOOL)firstArrowUp {
+    _firstArrowUp = firstArrowUp;
+    NSString *imageName = firstArrowUp ? @"sort_up_blue" : @"sort_down_grey";
+    [_firstArrow setImage:[UIImage imageNamed:imageName]];
+    UIColor *titleColor = nil;
+    if (firstArrowUp) {
+        titleColor = THEMECOLOR;
+    }
+    else {
+        titleColor = HexRGB(0x131415);
+    }
+    _firstLabel.textColor = titleColor;
+}
+
+- (void)setSecondArrowUp:(BOOL)secondArrowUp {
+    _secondArrowUp = secondArrowUp;
+    NSString *imageName = secondArrowUp ? @"sort_up_blue" : @"sort_down_grey";
+    [_secondArrow setImage:[UIImage imageNamed:imageName]];
+
+    UIColor *titleColor = nil;
+    if (secondArrowUp) {
+        titleColor = THEMECOLOR;
+    }
+    else {
+        titleColor = HexRGB(0x131415);
+    }
+    _secondLabel.textColor = titleColor;
+}
+
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 232 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateReceiveSortView.xib

@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
+        <capability name="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="EvaluateReceiveSortView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="88"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TZn-Rc-2OA">
+                    <rect key="frame" x="14" y="44" width="365" height="34"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="search_green" translatesAutoresizingMaskIntoConstraints="NO" id="4HW-CP-OPV">
+                            <rect key="frame" x="11" y="9" width="15" height="16"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="16" id="txY-Yh-25B"/>
+                                <constraint firstAttribute="width" constant="15" id="x0t-9c-8rg"/>
+                            </constraints>
+                        </imageView>
+                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入学员姓名" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="cod-5W-NT6">
+                            <rect key="frame" x="35" y="0.0" width="265" height="34"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                        <button opaque="NO" tag="1004" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VgF-Z7-Uef">
+                            <rect key="frame" x="305" y="3" width="56" height="28"/>
+                            <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="56" id="HPx-Qa-rbB"/>
+                                <constraint firstAttribute="height" constant="28" id="t0L-ZR-bbf"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="搜索"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="14"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="searchName:" destination="iN0-l3-epB" eventType="touchUpInside" id="pqN-No-paf"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="VgF-Z7-Uef" firstAttribute="centerY" secondItem="TZn-Rc-2OA" secondAttribute="centerY" id="28X-v3-OaP"/>
+                        <constraint firstItem="4HW-CP-OPV" firstAttribute="leading" secondItem="TZn-Rc-2OA" secondAttribute="leading" constant="11" id="ESu-w8-emP"/>
+                        <constraint firstItem="VgF-Z7-Uef" firstAttribute="leading" secondItem="cod-5W-NT6" secondAttribute="trailing" constant="5" id="HZc-hM-nW8"/>
+                        <constraint firstItem="cod-5W-NT6" firstAttribute="leading" secondItem="4HW-CP-OPV" secondAttribute="trailing" constant="9" id="JZR-s3-lwf"/>
+                        <constraint firstAttribute="bottom" secondItem="cod-5W-NT6" secondAttribute="bottom" id="Of5-CZ-CnE"/>
+                        <constraint firstItem="cod-5W-NT6" firstAttribute="top" secondItem="TZn-Rc-2OA" secondAttribute="top" id="Vyd-ps-TAC"/>
+                        <constraint firstItem="4HW-CP-OPV" firstAttribute="centerY" secondItem="TZn-Rc-2OA" secondAttribute="centerY" id="WAO-mh-kUF"/>
+                        <constraint firstAttribute="height" constant="34" id="ehZ-Kj-jhl"/>
+                        <constraint firstAttribute="trailing" secondItem="VgF-Z7-Uef" secondAttribute="trailing" constant="4" id="qC9-BL-sam"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="17"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zC4-pM-E0e">
+                    <rect key="frame" x="14" y="0.0" width="365" height="44"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="U5d-8T-m8F">
+                            <rect key="frame" x="0.0" y="0.0" width="182.66666666666666" height="44"/>
+                            <subviews>
+                                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A72-pB-UB1">
+                                    <rect key="frame" x="41.666666666666664" y="11" width="127.33333333333334" height="22"/>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="22" id="r5a-tM-0D8"/>
+                                    </constraints>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="11"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                </view>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="XXXX年XX月" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M2Z-nt-W6h">
+                                    <rect key="frame" x="53.666666666666679" y="12" width="89.333333333333314" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="20" id="Vtt-Ho-Er2"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.074509803920000006" green="0.078431372550000003" blue="0.08235294118" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down_grey" translatesAutoresizingMaskIntoConstraints="NO" id="Bkx-h2-U9D">
+                                    <rect key="frame" x="148" y="19.666666666666668" width="9" height="5"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="9" id="58O-G2-KKX"/>
+                                        <constraint firstAttribute="height" constant="5" id="nCx-ig-sTy"/>
+                                    </constraints>
+                                </imageView>
+                                <button opaque="NO" tag="1001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8sl-ig-PTA">
+                                    <rect key="frame" x="0.0" y="0.0" width="182.66666666666666" height="44"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <state key="normal">
+                                        <color key="titleColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                    </state>
+                                    <connections>
+                                        <action selector="buttonClickAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="mFS-6E-euD"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="bottom" secondItem="8sl-ig-PTA" secondAttribute="bottom" id="7gQ-TS-98M"/>
+                                <constraint firstItem="M2Z-nt-W6h" firstAttribute="centerY" secondItem="U5d-8T-m8F" secondAttribute="centerY" id="GEC-Am-eZI"/>
+                                <constraint firstAttribute="trailing" secondItem="8sl-ig-PTA" secondAttribute="trailing" id="LGI-4X-a7z"/>
+                                <constraint firstItem="Bkx-h2-U9D" firstAttribute="leading" secondItem="M2Z-nt-W6h" secondAttribute="trailing" constant="5" id="UNc-zT-mZT"/>
+                                <constraint firstItem="Bkx-h2-U9D" firstAttribute="trailing" secondItem="A72-pB-UB1" secondAttribute="trailing" constant="-12" id="UrR-56-BDc"/>
+                                <constraint firstItem="8sl-ig-PTA" firstAttribute="top" secondItem="U5d-8T-m8F" secondAttribute="top" id="eWW-5c-Mu7"/>
+                                <constraint firstItem="A72-pB-UB1" firstAttribute="leading" secondItem="M2Z-nt-W6h" secondAttribute="leading" constant="-12" id="lFX-De-l9Y"/>
+                                <constraint firstItem="A72-pB-UB1" firstAttribute="centerY" secondItem="M2Z-nt-W6h" secondAttribute="centerY" id="tDp-vi-FcL"/>
+                                <constraint firstItem="Bkx-h2-U9D" firstAttribute="centerY" secondItem="U5d-8T-m8F" secondAttribute="centerY" id="wGR-2w-GhC"/>
+                                <constraint firstItem="M2Z-nt-W6h" firstAttribute="centerX" secondItem="U5d-8T-m8F" secondAttribute="centerX" constant="7" id="wuh-Gx-hLT"/>
+                                <constraint firstItem="8sl-ig-PTA" firstAttribute="leading" secondItem="U5d-8T-m8F" secondAttribute="leading" id="xwp-97-Pcv"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iMX-wb-WWG">
+                            <rect key="frame" x="182.66666666666663" y="0.0" width="182.33333333333337" height="44"/>
+                            <subviews>
+                                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ugp-XA-H0O">
+                                    <rect key="frame" x="44" y="11" width="94" height="22"/>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="22" id="GU0-dN-ku9"/>
+                                    </constraints>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="11"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                </view>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部课程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UbW-NA-ryT">
+                                    <rect key="frame" x="56" y="12" width="56" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="20" id="kW2-QK-Vaz"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.074509803920000006" green="0.078431372550000003" blue="0.08235294118" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down_grey" translatesAutoresizingMaskIntoConstraints="NO" id="EXy-JI-OEi">
+                                    <rect key="frame" x="117.00000000000003" y="19.666666666666668" width="9" height="5"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="9" id="Bek-ny-qML"/>
+                                        <constraint firstAttribute="height" constant="5" id="FCP-UY-gnx"/>
+                                    </constraints>
+                                </imageView>
+                                <button opaque="NO" tag="1002" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9tn-bB-yRe">
+                                    <rect key="frame" x="0.0" y="0.0" width="182.33333333333334" height="44"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <state key="normal">
+                                        <color key="titleColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                    </state>
+                                    <connections>
+                                        <action selector="buttonClickAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="XWs-Xq-C7T"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstItem="Ugp-XA-H0O" firstAttribute="leading" secondItem="UbW-NA-ryT" secondAttribute="leading" constant="-12" id="7ND-jH-2OY"/>
+                                <constraint firstItem="UbW-NA-ryT" firstAttribute="centerX" secondItem="iMX-wb-WWG" secondAttribute="centerX" constant="-7" id="CgZ-FN-Tcv"/>
+                                <constraint firstItem="Ugp-XA-H0O" firstAttribute="centerY" secondItem="UbW-NA-ryT" secondAttribute="centerY" id="E3y-3l-bbh"/>
+                                <constraint firstAttribute="bottom" secondItem="9tn-bB-yRe" secondAttribute="bottom" id="LX6-30-bvY"/>
+                                <constraint firstItem="UbW-NA-ryT" firstAttribute="centerY" secondItem="iMX-wb-WWG" secondAttribute="centerY" id="NiT-Wm-CwM"/>
+                                <constraint firstItem="9tn-bB-yRe" firstAttribute="leading" secondItem="iMX-wb-WWG" secondAttribute="leading" id="YgK-tu-cLy"/>
+                                <constraint firstItem="EXy-JI-OEi" firstAttribute="centerY" secondItem="iMX-wb-WWG" secondAttribute="centerY" id="cpv-Vy-k0U"/>
+                                <constraint firstAttribute="trailing" secondItem="9tn-bB-yRe" secondAttribute="trailing" id="ebh-H1-1TV"/>
+                                <constraint firstItem="EXy-JI-OEi" firstAttribute="leading" secondItem="UbW-NA-ryT" secondAttribute="trailing" constant="5" id="iBn-Fy-l5L"/>
+                                <constraint firstItem="EXy-JI-OEi" firstAttribute="trailing" secondItem="Ugp-XA-H0O" secondAttribute="trailing" constant="-12" id="nFN-bD-hzR"/>
+                                <constraint firstItem="9tn-bB-yRe" firstAttribute="top" secondItem="iMX-wb-WWG" secondAttribute="top" id="wAq-85-f91"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="U5d-8T-m8F" secondAttribute="bottom" id="09V-BM-qdk"/>
+                        <constraint firstAttribute="height" constant="44" id="OjQ-eg-yK9"/>
+                        <constraint firstItem="iMX-wb-WWG" firstAttribute="bottom" secondItem="U5d-8T-m8F" secondAttribute="bottom" id="PD5-gu-dJM"/>
+                        <constraint firstItem="U5d-8T-m8F" firstAttribute="top" secondItem="zC4-pM-E0e" secondAttribute="top" id="QmY-uT-ScU"/>
+                        <constraint firstAttribute="trailing" secondItem="iMX-wb-WWG" secondAttribute="trailing" id="Ubk-61-kGW"/>
+                        <constraint firstItem="iMX-wb-WWG" firstAttribute="leading" secondItem="U5d-8T-m8F" secondAttribute="trailing" id="Z3h-Ch-cbH"/>
+                        <constraint firstItem="U5d-8T-m8F" firstAttribute="leading" secondItem="zC4-pM-E0e" secondAttribute="leading" id="cTU-H1-UJc"/>
+                        <constraint firstItem="iMX-wb-WWG" firstAttribute="top" secondItem="U5d-8T-m8F" secondAttribute="top" id="lAg-gc-pNR"/>
+                        <constraint firstItem="iMX-wb-WWG" firstAttribute="width" secondItem="U5d-8T-m8F" secondAttribute="width" id="oGv-7o-Hju"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="size" keyPath="shadowOffset">
+                            <size key="value" width="0.0" height="2"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="zC4-pM-E0e" secondAttribute="trailing" constant="14" id="1hh-vM-bpe"/>
+                <constraint firstAttribute="trailing" secondItem="TZn-Rc-2OA" secondAttribute="trailing" constant="14" id="FKy-7E-g6D"/>
+                <constraint firstItem="TZn-Rc-2OA" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="Wln-R0-DBu"/>
+                <constraint firstItem="TZn-Rc-2OA" firstAttribute="top" secondItem="zC4-pM-E0e" secondAttribute="bottom" id="iqW-ra-pvt"/>
+                <constraint firstItem="zC4-pM-E0e" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="opp-bP-SUD"/>
+                <constraint firstItem="zC4-pM-E0e" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="rxI-nd-DrQ"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="firstArrow" destination="Bkx-h2-U9D" id="H9e-Vf-mbd"/>
+                <outlet property="firstLabel" destination="M2Z-nt-W6h" id="i8Z-d4-D5C"/>
+                <outlet property="searchField" destination="cod-5W-NT6" id="sTv-MD-IQq"/>
+                <outlet property="secondArrow" destination="EXy-JI-OEi" id="LM8-Tl-B1K"/>
+                <outlet property="secondLabel" destination="UbW-NA-ryT" id="wNU-k2-lyq"/>
+            </connections>
+            <point key="canvasLocation" x="43.511450381679388" y="101.40845070422536"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="search_green" width="16" height="16"/>
+        <image name="sort_down_grey" width="9" height="5"/>
+    </resources>
+</document>

+ 9 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkBodyView.m

@@ -194,7 +194,15 @@
     if ([model.type isEqualToString:@"PIANO_ROOM_CLASS"]) { // 琴房课作业
         MusicRoomHomeworkCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MusicRoomHomeworkCell"];
         MJWeakSelf;
-        [cell configWithSource:model chatCallback:^(NSString *targetId) {
+        [cell configWithSource:model isGroup:NO chatCallback:^(NSString *targetId) {
+            [weakSelf chatGroup:targetId];
+        }];
+        return cell;
+    }
+    else if ([model.type isEqualToString:@"GROUP"]) {
+        MusicRoomHomeworkCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MusicRoomHomeworkCell"];
+        MJWeakSelf;
+        [cell configWithSource:model isGroup:YES chatCallback:^(NSString *targetId) {
             [weakSelf chatGroup:targetId];
         }];
         return cell;

+ 11 - 10
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkListCell.xib

@@ -35,8 +35,8 @@
                                     <constraint firstAttribute="width" constant="16" id="eRH-xo-J70"/>
                                 </constraints>
                             </imageView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2021/09/17 14:00~14:25" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pXr-41-D0m">
-                                <rect key="frame" x="35" y="14" width="147" height="18"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pXr-41-D0m">
+                                <rect key="frame" x="35" y="14" width="0.0" height="18"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="18" id="FPT-CM-dfC"/>
                                 </constraints>
@@ -44,10 +44,11 @@
                                 <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已结束" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1qw-WH-Jvr">
-                                <rect key="frame" x="379" y="14.5" width="50" height="17"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1qw-WH-Jvr">
+                                <rect key="frame" x="379" y="13" width="50" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="50" id="E6U-2d-Wcf"/>
+                                    <constraint firstAttribute="height" constant="20" id="HxQ-3R-8Kh"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                 <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
@@ -65,7 +66,7 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </imageView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="VIP定制课-张涵宇" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FpP-hs-iFV">
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FpP-hs-iFV">
                                 <rect key="frame" x="62" y="58" width="366" height="21"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="21" id="EnM-36-tXQ"/>
@@ -75,10 +76,10 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" horizontalCompressionResistancePriority="752" translatesAutoresizingMaskIntoConstraints="NO" id="6lL-kM-wkw">
-                                <rect key="frame" x="106" y="83" width="38" height="17"/>
+                                <rect key="frame" x="67" y="83" width="8" height="17"/>
                                 <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="单簧管" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="N2M-qy-lji">
-                                        <rect key="frame" x="4" y="0.0" width="30" height="17"/>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="752" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="N2M-qy-lji">
+                                        <rect key="frame" x="4" y="0.0" width="0.0" height="17"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="10"/>
                                         <color key="textColor" red="1" green="0.5490196078431373" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
@@ -98,8 +99,8 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </view>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张涵宇" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="stA-F2-L3d">
-                                <rect key="frame" x="62" y="83" width="39" height="17"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="stA-F2-L3d">
+                                <rect key="frame" x="62" y="83" width="0.0" height="17"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="17" id="cMo-8a-5em"/>
                                 </constraints>

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/MusicRoomHomeworkCell.h

@@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MusicRoomHomeworkCell : UITableViewCell
 
-- (void)configWithSource:(HomeworkListModel *)sourceModel chatCallback:(ChatGroupCallback)callback;
+- (void)configWithSource:(HomeworkListModel *)sourceModel isGroup:(BOOL)isGroup chatCallback:(ChatGroupCallback)callback;
 
 @end
 

+ 5 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/MusicRoomHomeworkCell.m

@@ -8,6 +8,7 @@
 #import "MusicRoomHomeworkCell.h"
 
 @interface MusicRoomHomeworkCell ()
+@property (weak, nonatomic) IBOutlet UIImageView *courseImage;
 
 @property (weak, nonatomic) IBOutlet UILabel *courseTimeLabel;
 
@@ -33,10 +34,13 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
-- (void)configWithSource:(HomeworkListModel *)sourceModel chatCallback:(ChatGroupCallback)callback {
+- (void)configWithSource:(HomeworkListModel *)sourceModel isGroup:(BOOL)isGroup chatCallback:(ChatGroupCallback)callback {
     if (callback) {
         self.callback = callback;
     }
+    NSString *courseImgName = isGroup ? @"course_group" : @"course_musicRoom";
+    [self.courseImage setImage:[UIImage imageNamed:courseImgName]];
+    
     self.targetId = sourceModel.imGroupId;
     // time
     NSDateFormatter *formatter = [NSObject getDateformatter];

+ 2 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/MusicRoomHomeworkCell.xib

@@ -146,6 +146,7 @@
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <connections>
+                <outlet property="courseImage" destination="vbJ-lB-Z7m" id="nAY-jQ-QgM"/>
                 <outlet property="courseName" destination="INl-R7-pRX" id="06n-hn-rxq"/>
                 <outlet property="courseTimeLabel" destination="gLO-02-Vhb" id="QXE-ZO-p5s"/>
                 <outlet property="statusLabel" destination="b6m-xf-3vf" id="2wd-As-SVx"/>
@@ -156,7 +157,7 @@
         </tableViewCell>
     </objects>
     <resources>
-        <image name="course_musicRoom" width="40" height="40"/>
+        <image name="course_musicRoom" width="56" height="56"/>
         <image name="course_time" width="16" height="16"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>

+ 7 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m

@@ -47,6 +47,8 @@
 
 @property (nonatomic, strong) NSMutableArray *fansGroupArray;
 
+@property (nonatomic, assign) BOOL isFirstLoad;
+
 @end
 
 @implementation MinePageViewController
@@ -57,6 +59,7 @@
     self.ks_prefersNavigationBarHidden = YES;
     _titles = @[@"VIP定制课",@"趣纠课",@"小组课",@"直播课",@"视频课",@"乐谱"];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startSearchEdit) name:@"MinePageStartSearch" object:nil];
+    self.isFirstLoad = YES;
     [self configUI];
     [self countUMEvent];
 }
@@ -160,8 +163,11 @@
 
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
-    [self configStatusViewColorWhite:YES];
     self.navigationController.interactivePopGestureRecognizer.enabled = YES;
+    if (self.isFirstLoad) {
+        [self configStatusViewColorWhite:YES];
+    }
+    self.isFirstLoad = NO;
     [self requestTeachMessage];
     [self requestSubjectList];
     [self requestTeacherGroup];