From d9a2bbdb9595037432c36766489110c4b9229ac0 Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期一, 19 八月 2024 16:32:04 +0800
Subject: [PATCH] fix

---
 XQMuse/Assets.xcassets/Icons/course_4.imageset/Contents.json                       |   22 
 XQMuse/Assets.xcassets/Icons/icon_local.imageset/icon_local@2x.png                 |    0 
 XQMuse/Root/Course/VC/CourseDetialVC.swift                                         |  308 ++++++
 XQMuse/Assets.xcassets/Icons/course_2.imageset/course_2@3x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_offline.imageset/icon_offline@2x.png             |    0 
 XQMuse/Assets.xcassets/Icons/icon_phone.imageset/icon_phone@3x.png                 |    0 
 XQMuse/Assets.xcassets/Icons/course_4.imageset/course_4@3x.png                     |    0 
 XQMuse/Root/Course/TCell/MenuListTCell.xib                                         |   54 +
 Pods/Pods.xcodeproj/project.pbxproj                                                |   10 
 XQMuse/Root/Course/TCell/CourseDetail_2_TCell.xib                                  |   55 +
 XQMuse/Root/Pavilion/PavilionVC.swift                                              |   77 +
 XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/Contents.json                    |   22 
 XQMuse/Assets.xcassets/Icons/course_6.imageset/course_6@3x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_offline.imageset/icon_offline@3x.png             |    0 
 XQMuse/Base/BaseNav.swift                                                          |    6 
 XQMuse/Assets.xcassets/Icons/course_8.imageset/Contents.json                       |   22 
 XQMuse/Assets.xcassets/Icons/icon_phone.imageset/Contents.json                     |   22 
 XQMuse/Root/Course/VC/CourseDetialVideoVC.xib                                      |   84 +
 XQMuse.xcodeproj/project.pbxproj                                                   |  144 ++
 XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png |    0 
 XQMuse/Assets.xcassets/Icons/icon_search.imageset/icon_search@3x.png               |    0 
 XQMuse/Assets.xcassets/Icons/course_4.imageset/course_4@2x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_phone.imageset/icon_phone@2x.png                 |    0 
 XQMuse/Assets.xcassets/Icons/icon_search.imageset/icon_search@2x.png               |    0 
 XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/Contents.json          |   22 
 XQMuse/Root/Pavilion/CCell/PavilionItemCell.xib                                    |  119 ++
 XQMuse/Assets.xcassets/Icons/course_3.imageset/Contents.json                       |   22 
 XQMuse/Assets.xcassets/Icons/course_5.imageset/course_5@2x.png                     |    0 
 XQMuse/Root/Pavilion/PavilionVC.xib                                                |  109 ++
 XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift                             |   29 
 XQMuse/Root/Course/TCell/CourseDetail_1_TCell.xib                                  |   55 +
 XQMuse/Assets.xcassets/Icons/course_8.imageset/course_8@3x.png                     |    0 
 XQMuse/Root/Course/CCell/CourseOfficialItemCCell.xib                               |   50 +
 XQMuse/Assets.xcassets/Icons/course_7.imageset/course_7@2x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/icon_time_1@2x.png               |    0 
 XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/icon_user_1@3x.png               |    0 
 XQMuse/SceneDelegate.swift                                                         |    1 
 XQMuse/Assets.xcassets/Icons/course_2.imageset/course_2@2x.png                     |    0 
 XQMuse/Root/Home/HomeVC.swift                                                      |    1 
 XQMuse/Root/Course/View/CourseSendGiftView.xib                                     |  111 ++
 XQMuse/Assets.xcassets/Icons/course_7.imageset/Contents.json                       |   22 
 XQMuse/Assets.xcassets/Icons/course_3.imageset/course_3@3x.png                     |    0 
 XQMuse/Root/Course/VC/CourseDetialVideoVC.swift                                    |   61 +
 XQMuse/Assets.xcassets/Icons/icon_local.imageset/icon_local@3x.png                 |    0 
 XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/btn_sendGift@3x.png              |    0 
 XQMuse/Assets.xcassets/Icons/icon_time.imageset/Contents.json                      |   22 
 XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/icon_time_1@3x.png               |    0 
 XQMuse/Assets.xcassets/Icons/course_1.imageset/course_1@3x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/Contents.json                    |   22 
 XQMuse/Assets.xcassets/Icons/course_2.imageset/Contents.json                       |   22 
 XQMuse/Root/Course/View/CourseDetailHeaderView.xib                                 |   90 +
 XQMuse/Base/BaseVC.swift                                                           |    1 
 XQMuse/Assets.xcassets/Icons/course_6.imageset/Contents.json                       |   22 
 XQMuse/Root/Course/VC/CourseMenuVC.swift                                           |  123 ++
 XQMuse/Assets.xcassets/Icons/icon_time.imageset/icon_time@3x.png                   |    0 
 XQMuse/Root/Course/VC/CourseVCTeacherSpecialVC.swift                               |   84 +
 XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib                                       |  226 ++++
 XQMuse/Assets.xcassets/Icons/course_5.imageset/course_5@3x.png                     |    0 
 XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/Contents.json                    |   22 
 XQMuse/Assets.xcassets/Icons/course_7.imageset/course_7@3x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_time.imageset/icon_time@2x.png                   |    0 
 XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift                        |   51 
 XQMuse/Assets.xcassets/Icons/course_3.imageset/course_3@2x.png                     |    0 
 XQMuse/Root/Course/View/CourseSendGiftView.swift                                   |   63 +
 XQMuse/Assets.xcassets/Icons/course_5.imageset/Contents.json                       |   22 
 XQMuse/Assets.xcassets/Icons/course_1.imageset/Contents.json                       |   22 
 XQMuse/Assets.xcassets/Icons/course_6.imageset/course_6@2x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_local.imageset/Contents.json                     |   22 
 XQMuse/Root/Course/TCell/CourseDetail_3_TCell.xib                                  |   64 +
 XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/btn_sendGift@2x.png              |    0 
 XQMuse/Root/Course/TCell/CourseDetail_2_Inner_TCell.xib                            |  119 ++
 XQMuse/Root/Course/TCell/MenuListTCell.swift                                       |   19 
 XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift                                  |   17 
 XQMuse/Root/Pavilion/VC/PavilionSearchVC.swift                                     |   78 +
 XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/icon_user_1@2x.png               |    0 
 XQMuse/Root/Course/TCell/CourseDetail_2_Inner_TCell.swift                          |   24 
 XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png |    0 
 XQMuse/Assets.xcassets/Icons/course_8.imageset/course_8@2x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_search.imageset/Contents.json                    |   22 
 XQMuse/Root/Pavilion/VC/PavilionSearchVC.xib                                       |  100 ++
 XQMuse/Assets.xcassets/Icons/course_1.imageset/course_1@2x.png                     |    0 
 XQMuse/Assets.xcassets/Icons/icon_offline.imageset/Contents.json                   |   22 
 XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift                                |   55 +
 XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift                               |   27 
 XQMuse/Root/Other/View/VideoView.swift                                             |   22 
 XQMuse/Root/Course/TCell/CourseDetail_2_TCell.swift                                |   56 +
 XQMuse/Root/Course/View/CourseDetailHeaderView.swift                               |   17 
 XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift                                     |   36 
 XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.xib                          |   50 
 XQMuse/Root/Course/TCell/CourseDetail_1_TCell.swift                                |   28 
 90 files changed, 2,960 insertions(+), 38 deletions(-)

diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj
index 59a93d0..79f7da0 100644
--- a/Pods/Pods.xcodeproj/project.pbxproj
+++ b/Pods/Pods.xcodeproj/project.pbxproj
@@ -3767,7 +3767,7 @@
 		B8E1D8B18DBE43F148D8D9E86FF2B00A /* JQ_PhotoTool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JQ_PhotoTool.swift; sourceTree = "<group>"; };
 		B8EA55A5A6DB4233FEF4585820E0B43C /* OSSAllRequestNeededMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSAllRequestNeededMessage.m; path = AliyunOSSSDK/OSSAllRequestNeededMessage.m; sourceTree = "<group>"; };
 		B8F2E5DB318CB0208BE8EB770F059547 /* RxCollectionViewDataSourcePrefetchingProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCollectionViewDataSourcePrefetchingProxy.swift; path = RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift; sourceTree = "<group>"; };
-		B9084FE779702931E8DF1D00A2D725FB /* ObjectMapper */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ObjectMapper; path = ObjectMapper.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		B9084FE779702931E8DF1D00A2D725FB /* ObjectMapper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ObjectMapper.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		B9154CF3AE667C5BF038006941996F24 /* OSSGetObjectTaggingResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectTaggingResult.h; path = AliyunOSSSDK/OSSGetObjectTaggingResult.h; sourceTree = "<group>"; };
 		B942A9A96463372AA05EF5387CBD484C /* PrimitiveSequence+Concurrency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PrimitiveSequence+Concurrency.swift"; path = "RxSwift/Traits/PrimitiveSequence/PrimitiveSequence+Concurrency.swift"; sourceTree = "<group>"; };
 		B959A71819DE5B506E289332C6178D9A /* DataRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataRequest.swift; path = Source/Core/DataRequest.swift; sourceTree = "<group>"; };
@@ -5411,7 +5411,7 @@
 				7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */,
 				1CAB16A12A28E8BE749202B03552307A /* ObjcExceptionBridging */,
 				EF7CAA240FEB94F29DBE3D91C8BDE565 /* ObjcExceptionBridging-ObjcExceptionBridging */,
-				B9084FE779702931E8DF1D00A2D725FB /* ObjectMapper */,
+				B9084FE779702931E8DF1D00A2D725FB /* ObjectMapper.framework */,
 				FE6B8ABE5D0AD8A55BCFA48D21915C07 /* ObjectMapper-Privacy */,
 				9BF996C0A7457E7225FF8490CAF59206 /* Pods-XQMuse */,
 				8596B7A0C5A3E188061E9EDDAB573FCE /* QMUIKit */,
@@ -9006,7 +9006,7 @@
 			);
 			name = ObjectMapper;
 			productName = ObjectMapper;
-			productReference = B9084FE779702931E8DF1D00A2D725FB /* ObjectMapper */;
+			productReference = B9084FE779702931E8DF1D00A2D725FB /* ObjectMapper.framework */;
 			productType = "com.apple.product-type.framework";
 		};
 		18BB9F72CD23264E98BCA91A99917C56 /* UserDefaultsStore */ = {
@@ -14198,7 +14198,7 @@
 				GCC_PREFIX_HEADER = "Target Support Files/ObjectMapper/ObjectMapper-prefix.pch";
 				INFOPLIST_FILE = "Target Support Files/ObjectMapper/ObjectMapper-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
@@ -14799,7 +14799,7 @@
 				GCC_PREFIX_HEADER = "Target Support Files/ObjectMapper/ObjectMapper-prefix.pch";
 				INFOPLIST_FILE = "Target Support Files/ObjectMapper/ObjectMapper-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
diff --git a/XQMuse.xcodeproj/project.pbxproj b/XQMuse.xcodeproj/project.pbxproj
index 61bf7ac..7cf6f16 100644
--- a/XQMuse.xcodeproj/project.pbxproj
+++ b/XQMuse.xcodeproj/project.pbxproj
@@ -13,6 +13,8 @@
 		130913EB2C6DE33200418201 /* PaymentOrderResultVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130913E82C6DE33200418201 /* PaymentOrderResultVC.swift */; };
 		130913EE2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130913ED2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.xib */; };
 		130913EF2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130913EC2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.swift */; };
+		130AA4A82C72F71700F20944 /* CourseDetialVideoVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130AA4A72C72F71700F20944 /* CourseDetialVideoVC.xib */; };
+		130AA4A92C72F71700F20944 /* CourseDetialVideoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130AA4A62C72F71700F20944 /* CourseDetialVideoVC.swift */; };
 		130B76592C6C4963006371AF /* HomeRelaxVoiceCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130B76572C6C4963006371AF /* HomeRelaxVoiceCCell.swift */; };
 		130B765A2C6C4963006371AF /* HomeRelaxVoiceCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130B76582C6C4963006371AF /* HomeRelaxVoiceCCell.xib */; };
 		130B765D2C6C4C33006371AF /* HomeItemListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130B765B2C6C4C33006371AF /* HomeItemListVC.swift */; };
@@ -25,15 +27,27 @@
 		131E75C52C6B87C500E2C85D /* ForgotPasswordChangeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131E75C22C6B87C400E2C85D /* ForgotPasswordChangeVC.swift */; };
 		132EB01C2C6B32B200990429 /* RegisterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132EB01A2C6B32B200990429 /* RegisterVC.swift */; };
 		132EB01D2C6B32B200990429 /* RegisterVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 132EB01B2C6B32B200990429 /* RegisterVC.xib */; };
+		13334FD52C731C1B00914086 /* VideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13334FD42C731C1B00914086 /* VideoView.swift */; };
+		13334FD72C731E0B00914086 /* PavilionVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13334FD62C731E0B00914086 /* PavilionVC.xib */; };
+		13334FDB2C7321BE00914086 /* PavilionItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13334FD92C7321BE00914086 /* PavilionItemCell.swift */; };
+		13334FDC2C7321BE00914086 /* PavilionItemCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13334FDA2C7321BE00914086 /* PavilionItemCell.xib */; };
+		1333DC792C72D8C400D8ACAE /* CourseDetail_3_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1333DC782C72D8C400D8ACAE /* CourseDetail_3_TCell.xib */; };
+		1333DC7A2C72D8C400D8ACAE /* CourseDetail_3_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1333DC772C72D8C400D8ACAE /* CourseDetail_3_TCell.swift */; };
+		1333DC7C2C72E78F00D8ACAE /* CourseSendGiftView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1333DC7B2C72E78F00D8ACAE /* CourseSendGiftView.swift */; };
+		1333DC7E2C72E7A500D8ACAE /* CourseSendGiftView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1333DC7D2C72E7A500D8ACAE /* CourseSendGiftView.xib */; };
 		1336EFA52C6DEB550075E070 /* HoverHeaderFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1336EFA42C6DEB550075E070 /* HoverHeaderFlowLayout.swift */; };
 		1336EFA72C6DEC640075E070 /* PaymentOrderResultTopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1336EFA62C6DEC640075E070 /* PaymentOrderResultTopView.swift */; };
 		1336EFA92C6DEC6B0075E070 /* PaymentOrderResultTopView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1336EFA82C6DEC6B0075E070 /* PaymentOrderResultTopView.xib */; };
+		13391E022C73334000B9513F /* PavilionDetailVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13391E012C73334000B9513F /* PavilionDetailVC.xib */; };
+		13391E032C73334000B9513F /* PavilionDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13391E002C73334000B9513F /* PavilionDetailVC.swift */; };
 		134783CF2C6C86EC0096C736 /* PlaySettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134783CE2C6C86EC0096C736 /* PlaySettingView.swift */; };
 		134783D12C6C86F40096C736 /* PlaySettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134783D02C6C86F40096C736 /* PlaySettingView.xib */; };
 		134A45322C6E0D6400538D78 /* CourseVCOfficalCommentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134A45302C6E0D6400538D78 /* CourseVCOfficalCommentVC.swift */; };
 		134A45352C6E0E0000538D78 /* CourseVCTeacherSpecialVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134A45342C6E0E0000538D78 /* CourseVCTeacherSpecialVC.swift */; };
 		134A45392C6E167D00538D78 /* CourseOfficalCommendTopCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134A45372C6E167D00538D78 /* CourseOfficalCommendTopCCell.swift */; };
 		134A453A2C6E167D00538D78 /* CourseOfficalCommendTopCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134A45382C6E167D00538D78 /* CourseOfficalCommendTopCCell.xib */; };
+		134CC7E02C73283700EAEFB7 /* PavilionSearchVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134CC7DF2C73283700EAEFB7 /* PavilionSearchVC.xib */; };
+		134CC7E12C73283700EAEFB7 /* PavilionSearchVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134CC7DE2C73283700EAEFB7 /* PavilionSearchVC.swift */; };
 		137175C62C6C3C4700B38EF1 /* SourceHanSansCN-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 137175C52C6C3C4700B38EF1 /* SourceHanSansCN-Regular.otf */; };
 		137175C82C6C3C6D00B38EF1 /* Agenda-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 137175C72C6C3C6D00B38EF1 /* Agenda-Light.otf */; };
 		137175CB2C6C412A00B38EF1 /* BackgroundVoiceVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 137175C92C6C412A00B38EF1 /* BackgroundVoiceVC.swift */; };
@@ -93,6 +107,12 @@
 		139C16602C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139C165F2C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift */; };
 		139C16632C6A108A00A924D9 /* HomeRelaxBannerCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139C16612C6A108A00A924D9 /* HomeRelaxBannerCCell.swift */; };
 		139C16642C6A108A00A924D9 /* HomeRelaxBannerCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 139C16622C6A108A00A924D9 /* HomeRelaxBannerCCell.xib */; };
+		13A659462C6F4B9E00F731FA /* CourseDetail_1_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A659452C6F4B9E00F731FA /* CourseDetail_1_TCell.xib */; };
+		13A659472C6F4B9E00F731FA /* CourseDetail_1_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A659442C6F4B9E00F731FA /* CourseDetail_1_TCell.swift */; };
+		13A6594A2C6F4F2D00F731FA /* CourseDetail_2_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A659492C6F4F2D00F731FA /* CourseDetail_2_TCell.xib */; };
+		13A6594B2C6F4F2D00F731FA /* CourseDetail_2_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A659482C6F4F2D00F731FA /* CourseDetail_2_TCell.swift */; };
+		13A6594E2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A6594D2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib */; };
+		13A6594F2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A6594C2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift */; };
 		13D256B42C6C68E7006FC2D7 /* ShareView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D256B32C6C68E7006FC2D7 /* ShareView.swift */; };
 		13D256B72C6C68F8006FC2D7 /* ShareView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13D256B62C6C68F8006FC2D7 /* ShareView.xib */; };
 		13E0FBF92C6C8BDE009997AE /* CountdownChooseListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E0FBF82C6C8BDE009997AE /* CountdownChooseListView.swift */; };
@@ -102,6 +122,14 @@
 		13EFCDBE2C6DCF5800B51AE6 /* HomeTyroGuideVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EFCDBD2C6DCF5800B51AE6 /* HomeTyroGuideVC.swift */; };
 		13EFCDC12C6DD27A00B51AE6 /* PaymentOrderVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EFCDBF2C6DD27A00B51AE6 /* PaymentOrderVC.swift */; };
 		13EFCDC22C6DD27A00B51AE6 /* PaymentOrderVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EFCDC02C6DD27A00B51AE6 /* PaymentOrderVC.xib */; };
+		13FB6D7D2C6EE27100A0685D /* CourseOfficialItemCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13FB6D7C2C6EE27100A0685D /* CourseOfficialItemCCell.xib */; };
+		13FB6D7E2C6EE27100A0685D /* CourseOfficialItemCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D7B2C6EE27100A0685D /* CourseOfficialItemCCell.swift */; };
+		13FB6D802C6EED6000A0685D /* CourseMenuVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D7F2C6EED6000A0685D /* CourseMenuVC.swift */; };
+		13FB6D842C6EEFE900A0685D /* MenuListTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13FB6D832C6EEFE900A0685D /* MenuListTCell.xib */; };
+		13FB6D852C6EEFE900A0685D /* MenuListTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D822C6EEFE900A0685D /* MenuListTCell.swift */; };
+		13FB6D872C6EF9DE00A0685D /* CourseDetialVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D862C6EF9DE00A0685D /* CourseDetialVC.swift */; };
+		13FB6D8A2C6EFB4D00A0685D /* CourseDetailHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB6D892C6EFB4D00A0685D /* CourseDetailHeaderView.swift */; };
+		13FB6D8C2C6EFB5400A0685D /* CourseDetailHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13FB6D8B2C6EFB5400A0685D /* CourseDetailHeaderView.xib */; };
 		D80DD987C5D5D23DD582763D /* Pods_XQMuse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 627C13604519744922724D64 /* Pods_XQMuse.framework */; };
 /* End PBXBuildFile section */
 
@@ -112,6 +140,8 @@
 		130913E92C6DE33200418201 /* PaymentOrderResultVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PaymentOrderResultVC.xib; sourceTree = "<group>"; };
 		130913EC2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeRelaxBanner_2_1_CCell.swift; sourceTree = "<group>"; };
 		130913ED2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeRelaxBanner_2_1_CCell.xib; sourceTree = "<group>"; };
+		130AA4A62C72F71700F20944 /* CourseDetialVideoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetialVideoVC.swift; sourceTree = "<group>"; };
+		130AA4A72C72F71700F20944 /* CourseDetialVideoVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetialVideoVC.xib; sourceTree = "<group>"; };
 		130B76572C6C4963006371AF /* HomeRelaxVoiceCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeRelaxVoiceCCell.swift; sourceTree = "<group>"; };
 		130B76582C6C4963006371AF /* HomeRelaxVoiceCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeRelaxVoiceCCell.xib; sourceTree = "<group>"; };
 		130B765B2C6C4C33006371AF /* HomeItemListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeItemListVC.swift; sourceTree = "<group>"; };
@@ -124,15 +154,27 @@
 		131E75C32C6B87C400E2C85D /* ForgotPasswordChangeVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ForgotPasswordChangeVC.xib; sourceTree = "<group>"; };
 		132EB01A2C6B32B200990429 /* RegisterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterVC.swift; sourceTree = "<group>"; };
 		132EB01B2C6B32B200990429 /* RegisterVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RegisterVC.xib; sourceTree = "<group>"; };
+		13334FD42C731C1B00914086 /* VideoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoView.swift; sourceTree = "<group>"; };
+		13334FD62C731E0B00914086 /* PavilionVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PavilionVC.xib; sourceTree = "<group>"; };
+		13334FD92C7321BE00914086 /* PavilionItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PavilionItemCell.swift; sourceTree = "<group>"; };
+		13334FDA2C7321BE00914086 /* PavilionItemCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PavilionItemCell.xib; sourceTree = "<group>"; };
+		1333DC772C72D8C400D8ACAE /* CourseDetail_3_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetail_3_TCell.swift; sourceTree = "<group>"; };
+		1333DC782C72D8C400D8ACAE /* CourseDetail_3_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetail_3_TCell.xib; sourceTree = "<group>"; };
+		1333DC7B2C72E78F00D8ACAE /* CourseSendGiftView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseSendGiftView.swift; sourceTree = "<group>"; };
+		1333DC7D2C72E7A500D8ACAE /* CourseSendGiftView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseSendGiftView.xib; sourceTree = "<group>"; };
 		1336EFA42C6DEB550075E070 /* HoverHeaderFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HoverHeaderFlowLayout.swift; sourceTree = "<group>"; };
 		1336EFA62C6DEC640075E070 /* PaymentOrderResultTopView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentOrderResultTopView.swift; sourceTree = "<group>"; };
 		1336EFA82C6DEC6B0075E070 /* PaymentOrderResultTopView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PaymentOrderResultTopView.xib; sourceTree = "<group>"; };
+		13391E002C73334000B9513F /* PavilionDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PavilionDetailVC.swift; sourceTree = "<group>"; };
+		13391E012C73334000B9513F /* PavilionDetailVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PavilionDetailVC.xib; sourceTree = "<group>"; };
 		134783CE2C6C86EC0096C736 /* PlaySettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaySettingView.swift; sourceTree = "<group>"; };
 		134783D02C6C86F40096C736 /* PlaySettingView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PlaySettingView.xib; sourceTree = "<group>"; };
 		134A45302C6E0D6400538D78 /* CourseVCOfficalCommentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseVCOfficalCommentVC.swift; sourceTree = "<group>"; };
 		134A45342C6E0E0000538D78 /* CourseVCTeacherSpecialVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseVCTeacherSpecialVC.swift; sourceTree = "<group>"; };
 		134A45372C6E167D00538D78 /* CourseOfficalCommendTopCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseOfficalCommendTopCCell.swift; sourceTree = "<group>"; };
 		134A45382C6E167D00538D78 /* CourseOfficalCommendTopCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseOfficalCommendTopCCell.xib; sourceTree = "<group>"; };
+		134CC7DE2C73283700EAEFB7 /* PavilionSearchVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PavilionSearchVC.swift; sourceTree = "<group>"; };
+		134CC7DF2C73283700EAEFB7 /* PavilionSearchVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PavilionSearchVC.xib; sourceTree = "<group>"; };
 		137175C52C6C3C4700B38EF1 /* SourceHanSansCN-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SourceHanSansCN-Regular.otf"; sourceTree = "<group>"; };
 		137175C72C6C3C6D00B38EF1 /* Agenda-Light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Agenda-Light.otf"; sourceTree = "<group>"; };
 		137175C92C6C412A00B38EF1 /* BackgroundVoiceVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundVoiceVC.swift; sourceTree = "<group>"; };
@@ -194,6 +236,12 @@
 		139C165F2C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestLeftRightCollectionViewFlowLayout.swift; sourceTree = "<group>"; };
 		139C16612C6A108A00A924D9 /* HomeRelaxBannerCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeRelaxBannerCCell.swift; sourceTree = "<group>"; };
 		139C16622C6A108A00A924D9 /* HomeRelaxBannerCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeRelaxBannerCCell.xib; sourceTree = "<group>"; };
+		13A659442C6F4B9E00F731FA /* CourseDetail_1_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetail_1_TCell.swift; sourceTree = "<group>"; };
+		13A659452C6F4B9E00F731FA /* CourseDetail_1_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetail_1_TCell.xib; sourceTree = "<group>"; };
+		13A659482C6F4F2D00F731FA /* CourseDetail_2_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetail_2_TCell.swift; sourceTree = "<group>"; };
+		13A659492C6F4F2D00F731FA /* CourseDetail_2_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetail_2_TCell.xib; sourceTree = "<group>"; };
+		13A6594C2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetail_2_Inner_TCell.swift; sourceTree = "<group>"; };
+		13A6594D2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetail_2_Inner_TCell.xib; sourceTree = "<group>"; };
 		13D256B32C6C68E7006FC2D7 /* ShareView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareView.swift; sourceTree = "<group>"; };
 		13D256B62C6C68F8006FC2D7 /* ShareView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ShareView.xib; sourceTree = "<group>"; };
 		13E0FBF82C6C8BDE009997AE /* CountdownChooseListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CountdownChooseListView.swift; sourceTree = "<group>"; };
@@ -203,6 +251,14 @@
 		13EFCDBD2C6DCF5800B51AE6 /* HomeTyroGuideVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeTyroGuideVC.swift; sourceTree = "<group>"; };
 		13EFCDBF2C6DD27A00B51AE6 /* PaymentOrderVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentOrderVC.swift; sourceTree = "<group>"; };
 		13EFCDC02C6DD27A00B51AE6 /* PaymentOrderVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PaymentOrderVC.xib; sourceTree = "<group>"; };
+		13FB6D7B2C6EE27100A0685D /* CourseOfficialItemCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseOfficialItemCCell.swift; sourceTree = "<group>"; };
+		13FB6D7C2C6EE27100A0685D /* CourseOfficialItemCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseOfficialItemCCell.xib; sourceTree = "<group>"; };
+		13FB6D7F2C6EED6000A0685D /* CourseMenuVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseMenuVC.swift; sourceTree = "<group>"; };
+		13FB6D822C6EEFE900A0685D /* MenuListTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuListTCell.swift; sourceTree = "<group>"; };
+		13FB6D832C6EEFE900A0685D /* MenuListTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MenuListTCell.xib; sourceTree = "<group>"; };
+		13FB6D862C6EF9DE00A0685D /* CourseDetialVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetialVC.swift; sourceTree = "<group>"; };
+		13FB6D892C6EFB4D00A0685D /* CourseDetailHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetailHeaderView.swift; sourceTree = "<group>"; };
+		13FB6D8B2C6EFB5400A0685D /* CourseDetailHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseDetailHeaderView.xib; sourceTree = "<group>"; };
 		257B6AA3157A71622E7EABC6 /* Pods-XQMuse.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-XQMuse.debug.xcconfig"; path = "Target Support Files/Pods-XQMuse/Pods-XQMuse.debug.xcconfig"; sourceTree = "<group>"; };
 		627C13604519744922724D64 /* Pods_XQMuse.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_XQMuse.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		B934C5A58089E8AEA47DCFE7 /* Pods-XQMuse.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-XQMuse.release.xcconfig"; path = "Target Support Files/Pods-XQMuse/Pods-XQMuse.release.xcconfig"; sourceTree = "<group>"; };
@@ -246,11 +302,24 @@
 			path = VC;
 			sourceTree = "<group>";
 		};
+		13334FD82C73219A00914086 /* CCell */ = {
+			isa = PBXGroup;
+			children = (
+				13334FD92C7321BE00914086 /* PavilionItemCell.swift */,
+				13334FDA2C7321BE00914086 /* PavilionItemCell.xib */,
+			);
+			path = CCell;
+			sourceTree = "<group>";
+		};
 		134A452F2C6E0D3800538D78 /* VC */ = {
 			isa = PBXGroup;
 			children = (
 				134A45302C6E0D6400538D78 /* CourseVCOfficalCommentVC.swift */,
 				134A45342C6E0E0000538D78 /* CourseVCTeacherSpecialVC.swift */,
+				13FB6D7F2C6EED6000A0685D /* CourseMenuVC.swift */,
+				13FB6D862C6EF9DE00A0685D /* CourseDetialVC.swift */,
+				130AA4A62C72F71700F20944 /* CourseDetialVideoVC.swift */,
+				130AA4A72C72F71700F20944 /* CourseDetialVideoVC.xib */,
 			);
 			path = VC;
 			sourceTree = "<group>";
@@ -260,8 +329,21 @@
 			children = (
 				134A45372C6E167D00538D78 /* CourseOfficalCommendTopCCell.swift */,
 				134A45382C6E167D00538D78 /* CourseOfficalCommendTopCCell.xib */,
+				13FB6D7B2C6EE27100A0685D /* CourseOfficialItemCCell.swift */,
+				13FB6D7C2C6EE27100A0685D /* CourseOfficialItemCCell.xib */,
 			);
 			path = CCell;
+			sourceTree = "<group>";
+		};
+		134CC7DD2C73282400EAEFB7 /* VC */ = {
+			isa = PBXGroup;
+			children = (
+				134CC7DE2C73283700EAEFB7 /* PavilionSearchVC.swift */,
+				134CC7DF2C73283700EAEFB7 /* PavilionSearchVC.xib */,
+				13391E002C73334000B9513F /* PavilionDetailVC.swift */,
+				13391E012C73334000B9513F /* PavilionDetailVC.xib */,
+			);
+			path = VC;
 			sourceTree = "<group>";
 		};
 		137175C42C6C3C2100B38EF1 /* Fonts */ = {
@@ -446,6 +528,8 @@
 		13985DC52C69E9260046B6DC /* Course */ = {
 			isa = PBXGroup;
 			children = (
+				13FB6D882C6EFA8400A0685D /* View */,
+				13FB6D812C6EEFD200A0685D /* TCell */,
 				134A45362C6E165F00538D78 /* CCell */,
 				134A452F2C6E0D3800538D78 /* VC */,
 				13985DC62C69E9550046B6DC /* CourseVC.swift */,
@@ -456,7 +540,10 @@
 		13985DC82C69E9940046B6DC /* Pavilion */ = {
 			isa = PBXGroup;
 			children = (
+				134CC7DD2C73282400EAEFB7 /* VC */,
+				13334FD82C73219A00914086 /* CCell */,
 				13985DCB2C69E9FA0046B6DC /* PavilionVC.swift */,
+				13334FD62C731E0B00914086 /* PavilionVC.xib */,
 			);
 			path = Pavilion;
 			sourceTree = "<group>";
@@ -513,6 +600,35 @@
 				13E0FBFA2C6C8BE3009997AE /* CountdownChooseListView.xib */,
 				1377B4102C6DAA1900CF7CA5 /* ChooseOptView.swift */,
 				1377B4122C6DAA2000CF7CA5 /* ChooseOptView.xib */,
+				13334FD42C731C1B00914086 /* VideoView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		13FB6D812C6EEFD200A0685D /* TCell */ = {
+			isa = PBXGroup;
+			children = (
+				13FB6D822C6EEFE900A0685D /* MenuListTCell.swift */,
+				13FB6D832C6EEFE900A0685D /* MenuListTCell.xib */,
+				13A659442C6F4B9E00F731FA /* CourseDetail_1_TCell.swift */,
+				13A659452C6F4B9E00F731FA /* CourseDetail_1_TCell.xib */,
+				13A659482C6F4F2D00F731FA /* CourseDetail_2_TCell.swift */,
+				13A659492C6F4F2D00F731FA /* CourseDetail_2_TCell.xib */,
+				13A6594C2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift */,
+				13A6594D2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib */,
+				1333DC772C72D8C400D8ACAE /* CourseDetail_3_TCell.swift */,
+				1333DC782C72D8C400D8ACAE /* CourseDetail_3_TCell.xib */,
+			);
+			path = TCell;
+			sourceTree = "<group>";
+		};
+		13FB6D882C6EFA8400A0685D /* View */ = {
+			isa = PBXGroup;
+			children = (
+				13FB6D892C6EFB4D00A0685D /* CourseDetailHeaderView.swift */,
+				13FB6D8B2C6EFB5400A0685D /* CourseDetailHeaderView.xib */,
+				1333DC7B2C72E78F00D8ACAE /* CourseSendGiftView.swift */,
+				1333DC7D2C72E7A500D8ACAE /* CourseSendGiftView.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -596,19 +712,29 @@
 			files = (
 				13985DD42C69FC1F0046B6DC /* Home_Style_1_TCell.xib in Resources */,
 				1377B4132C6DAA2000CF7CA5 /* ChooseOptView.xib in Resources */,
+				13A6594E2C6F641100F731FA /* CourseDetail_2_Inner_TCell.xib in Resources */,
 				130B765E2C6C4C33006371AF /* HomeItemListVC.xib in Resources */,
 				1385E0072C6C558200AADB1F /* HomeRelaxBanner_2_CCell.xib in Resources */,
 				132EB01D2C6B32B200990429 /* RegisterVC.xib in Resources */,
 				1336EFA92C6DEC6B0075E070 /* PaymentOrderResultTopView.xib in Resources */,
+				13334FDC2C7321BE00914086 /* PavilionItemCell.xib in Resources */,
+				1333DC7E2C72E7A500D8ACAE /* CourseSendGiftView.xib in Resources */,
 				137ABE352C6B3F64003A91C5 /* ForgotPasswordVC.xib in Resources */,
+				13FB6D842C6EEFE900A0685D /* MenuListTCell.xib in Resources */,
 				1377768E2C6AFD25004FF994 /* LoginVC.xib in Resources */,
+				134CC7E02C73283700EAEFB7 /* PavilionSearchVC.xib in Resources */,
 				130913EE2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.xib in Resources */,
 				130ED7E82C6AEF5900D0736E /* Home_Style_4_TCell.xib in Resources */,
+				13391E022C73334000B9513F /* PavilionDetailVC.xib in Resources */,
 				1377B4172C6DCC4300CF7CA5 /* Home_Style_4_Inner_1_CCell.xib in Resources */,
+				13FB6D8C2C6EFB5400A0685D /* CourseDetailHeaderView.xib in Resources */,
 				13985D9F2C69B2440046B6DC /* Assets.xcassets in Resources */,
 				13EFCDC22C6DD27A00B51AE6 /* PaymentOrderVC.xib in Resources */,
+				130AA4A82C72F71700F20944 /* CourseDetialVideoVC.xib in Resources */,
+				13FB6D7D2C6EE27100A0685D /* CourseOfficialItemCCell.xib in Resources */,
 				13D256B72C6C68F8006FC2D7 /* ShareView.xib in Resources */,
 				13985DC32C69E0BF0046B6DC /* HomeTopMenuCCell.xib in Resources */,
+				13A6594A2C6F4F2D00F731FA /* CourseDetail_2_TCell.xib in Resources */,
 				139C165E2C6A0AC600A924D9 /* Home_Style_3_TCell.xib in Resources */,
 				137175C82C6C3C6D00B38EF1 /* Agenda-Light.otf in Resources */,
 				13985DA22C69B2440046B6DC /* Base in Resources */,
@@ -627,6 +753,9 @@
 				130ED7ED2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib in Resources */,
 				137175C62C6C3C4700B38EF1 /* SourceHanSansCN-Regular.otf in Resources */,
 				131E75C42C6B87C500E2C85D /* ForgotPasswordChangeVC.xib in Resources */,
+				1333DC792C72D8C400D8ACAE /* CourseDetail_3_TCell.xib in Resources */,
+				13A659462C6F4B9E00F731FA /* CourseDetail_1_TCell.xib in Resources */,
+				13334FD72C731E0B00914086 /* PavilionVC.xib in Resources */,
 				139C16642C6A108A00A924D9 /* HomeRelaxBannerCCell.xib in Resources */,
 				13E0FBFB2C6C8BE3009997AE /* CountdownChooseListView.xib in Resources */,
 				130B765A2C6C4963006371AF /* HomeRelaxVoiceCCell.xib in Resources */,
@@ -684,6 +813,7 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				13FB6D872C6EF9DE00A0685D /* CourseDetialVC.swift in Sources */,
 				13D256B42C6C68E7006FC2D7 /* ShareView.swift in Sources */,
 				139466472C6B8E0200F6FB15 /* UpdatePhoneVC.swift in Sources */,
 				137175CB2C6C412A00B38EF1 /* BackgroundVoiceVC.swift in Sources */,
@@ -691,6 +821,7 @@
 				13985D962C69B2410046B6DC /* AppDelegate.swift in Sources */,
 				13985DB02C69B7B00046B6DC /* BaseTabBarVC.swift in Sources */,
 				13985DB22C69B7B00046B6DC /* TapBtn.swift in Sources */,
+				13FB6D802C6EED6000A0685D /* CourseMenuVC.swift in Sources */,
 				13985DBA2C69B8ED0046B6DC /* HomeVC.swift in Sources */,
 				13985DAF2C69B7B00046B6DC /* BaseNav.swift in Sources */,
 				134A45352C6E0E0000538D78 /* CourseVCTeacherSpecialVC.swift in Sources */,
@@ -700,14 +831,17 @@
 				1377B4112C6DAA1900CF7CA5 /* ChooseOptView.swift in Sources */,
 				1385E0062C6C558200AADB1F /* HomeRelaxBanner_2_CCell.swift in Sources */,
 				130913EB2C6DE33200418201 /* PaymentOrderResultVC.swift in Sources */,
+				13FB6D7E2C6EE27100A0685D /* CourseOfficialItemCCell.swift in Sources */,
 				137ABE342C6B3F64003A91C5 /* ForgotPasswordVC.swift in Sources */,
 				13EFCDBE2C6DCF5800B51AE6 /* HomeTyroGuideVC.swift in Sources */,
 				134A45322C6E0D6400538D78 /* CourseVCOfficalCommentVC.swift in Sources */,
 				139C16602C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift in Sources */,
 				13985DC72C69E9550046B6DC /* CourseVC.swift in Sources */,
 				1385E0022C6C4F1200AADB1F /* Services.swift in Sources */,
+				13FB6D8A2C6EFB4D00A0685D /* CourseDetailHeaderView.swift in Sources */,
 				13985DB82C69B80D0046B6DC /* Themes.swift in Sources */,
 				13985DD02C69F2A80046B6DC /* HomeHeaderVC.swift in Sources */,
+				130AA4A92C72F71700F20944 /* CourseDetialVideoVC.swift in Sources */,
 				1336EFA52C6DEB550075E070 /* HoverHeaderFlowLayout.swift in Sources */,
 				13985DB52C69B7DF0046B6DC /* Def.swift in Sources */,
 				139228AF2C6B836B006F3CB6 /* Popup_1_View.swift in Sources */,
@@ -717,6 +851,8 @@
 				13985DCC2C69E9FA0046B6DC /* PavilionVC.swift in Sources */,
 				13985DC42C69E0BF0046B6DC /* HomeTopMenuCCell.swift in Sources */,
 				1385E00A2C6C57A900AADB1F /* HomeItemDetailVC.swift in Sources */,
+				1333DC7C2C72E78F00D8ACAE /* CourseSendGiftView.swift in Sources */,
+				13391E032C73334000B9513F /* PavilionDetailVC.swift in Sources */,
 				134783CF2C6C86EC0096C736 /* PlaySettingView.swift in Sources */,
 				139C16592C6A053000A924D9 /* Home_Style_2_TCell.swift in Sources */,
 				130B76592C6C4963006371AF /* HomeRelaxVoiceCCell.swift in Sources */,
@@ -725,22 +861,30 @@
 				13985DD52C69FC1F0046B6DC /* Home_Style_1_TCell.swift in Sources */,
 				132EB01C2C6B32B200990429 /* RegisterVC.swift in Sources */,
 				13E0FBF92C6C8BDE009997AE /* CountdownChooseListView.swift in Sources */,
+				13A659472C6F4B9E00F731FA /* CourseDetail_1_TCell.swift in Sources */,
 				130ED7EE2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.swift in Sources */,
 				139C165D2C6A0AC600A924D9 /* Home_Style_3_TCell.swift in Sources */,
 				1377B40F2C6D93FA00CF7CA5 /* CommentCommentHeaderView.swift in Sources */,
 				1377B40C2C6D936A00CF7CA5 /* CommentUserInputContentTCell.swift in Sources */,
 				1385DFFA2C6C4EBC00AADB1F /* RefreshModel.swift in Sources */,
+				134CC7E12C73283700EAEFB7 /* PavilionSearchVC.swift in Sources */,
 				139C16632C6A108A00A924D9 /* HomeRelaxBannerCCell.swift in Sources */,
 				131E75C52C6B87C500E2C85D /* ForgotPasswordChangeVC.swift in Sources */,
+				13A6594F2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift in Sources */,
+				13334FD52C731C1B00914086 /* VideoView.swift in Sources */,
 				130ED7E72C6AEF5900D0736E /* Home_Style_4_TCell.swift in Sources */,
 				130913EF2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.swift in Sources */,
+				1333DC7A2C72D8C400D8ACAE /* CourseDetail_3_TCell.swift in Sources */,
 				1300BD3C2C6DFB1C000BCA5E /* VIPCenterVC.swift in Sources */,
 				1377B4162C6DCC4300CF7CA5 /* Home_Style_4_Inner_1_CCell.swift in Sources */,
 				13E160212C6CB8930027F781 /* CommentListVC.swift in Sources */,
 				137ABE3B2C6B6BDD003A91C5 /* ForgotPasswordInputCodeVC.swift in Sources */,
 				130B765D2C6C4C33006371AF /* HomeItemListVC.swift in Sources */,
 				1385E0002C6C4F1200AADB1F /* NetworkRequest.swift in Sources */,
+				13334FDB2C7321BE00914086 /* PavilionItemCell.swift in Sources */,
+				13A6594B2C6F4F2D00F731FA /* CourseDetail_2_TCell.swift in Sources */,
 				1377768D2C6AFD25004FF994 /* LoginVC.swift in Sources */,
+				13FB6D852C6EEFE900A0685D /* MenuListTCell.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/Contents.json b/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/Contents.json
new file mode 100644
index 0000000..77e393d
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "btn_sendGift@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "btn_sendGift@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/btn_sendGift@2x.png b/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/btn_sendGift@2x.png
new file mode 100644
index 0000000..ae3dc6b
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/btn_sendGift@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/btn_sendGift@3x.png b/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/btn_sendGift@3x.png
new file mode 100644
index 0000000..8ed3e91
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Btns/btn_sendGift.imageset/btn_sendGift@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_1.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/course_1.imageset/Contents.json
new file mode 100644
index 0000000..e0c6cc7
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_1.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "course_1@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "course_1@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/course_1.imageset/course_1@2x.png b/XQMuse/Assets.xcassets/Icons/course_1.imageset/course_1@2x.png
new file mode 100644
index 0000000..a667848
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_1.imageset/course_1@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_1.imageset/course_1@3x.png b/XQMuse/Assets.xcassets/Icons/course_1.imageset/course_1@3x.png
new file mode 100644
index 0000000..8924f54
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_1.imageset/course_1@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_2.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/course_2.imageset/Contents.json
new file mode 100644
index 0000000..f33603d
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_2.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "course_2@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "course_2@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/course_2.imageset/course_2@2x.png b/XQMuse/Assets.xcassets/Icons/course_2.imageset/course_2@2x.png
new file mode 100644
index 0000000..70cea98
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_2.imageset/course_2@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_2.imageset/course_2@3x.png b/XQMuse/Assets.xcassets/Icons/course_2.imageset/course_2@3x.png
new file mode 100644
index 0000000..60a2a7a
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_2.imageset/course_2@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_3.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/course_3.imageset/Contents.json
new file mode 100644
index 0000000..d97f83d
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_3.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "course_3@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "course_3@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/course_3.imageset/course_3@2x.png b/XQMuse/Assets.xcassets/Icons/course_3.imageset/course_3@2x.png
new file mode 100644
index 0000000..92c58fa
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_3.imageset/course_3@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_3.imageset/course_3@3x.png b/XQMuse/Assets.xcassets/Icons/course_3.imageset/course_3@3x.png
new file mode 100644
index 0000000..8f9b40f
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_3.imageset/course_3@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_4.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/course_4.imageset/Contents.json
new file mode 100644
index 0000000..8c145c9
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_4.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "course_4@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "course_4@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/course_4.imageset/course_4@2x.png b/XQMuse/Assets.xcassets/Icons/course_4.imageset/course_4@2x.png
new file mode 100644
index 0000000..a9ac816
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_4.imageset/course_4@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_4.imageset/course_4@3x.png b/XQMuse/Assets.xcassets/Icons/course_4.imageset/course_4@3x.png
new file mode 100644
index 0000000..0eb92cc
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_4.imageset/course_4@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_5.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/course_5.imageset/Contents.json
new file mode 100644
index 0000000..5a860c4
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_5.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "course_5@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "course_5@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/course_5.imageset/course_5@2x.png b/XQMuse/Assets.xcassets/Icons/course_5.imageset/course_5@2x.png
new file mode 100644
index 0000000..948562e
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_5.imageset/course_5@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_5.imageset/course_5@3x.png b/XQMuse/Assets.xcassets/Icons/course_5.imageset/course_5@3x.png
new file mode 100644
index 0000000..9c3c6db
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_5.imageset/course_5@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_6.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/course_6.imageset/Contents.json
new file mode 100644
index 0000000..137c239
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_6.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "course_6@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "course_6@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/course_6.imageset/course_6@2x.png b/XQMuse/Assets.xcassets/Icons/course_6.imageset/course_6@2x.png
new file mode 100644
index 0000000..56ddd73
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_6.imageset/course_6@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_6.imageset/course_6@3x.png b/XQMuse/Assets.xcassets/Icons/course_6.imageset/course_6@3x.png
new file mode 100644
index 0000000..31384f0
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_6.imageset/course_6@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_7.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/course_7.imageset/Contents.json
new file mode 100644
index 0000000..4daf7bf
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_7.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "course_7@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "course_7@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/course_7.imageset/course_7@2x.png b/XQMuse/Assets.xcassets/Icons/course_7.imageset/course_7@2x.png
new file mode 100644
index 0000000..5444001
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_7.imageset/course_7@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_7.imageset/course_7@3x.png b/XQMuse/Assets.xcassets/Icons/course_7.imageset/course_7@3x.png
new file mode 100644
index 0000000..612efc6
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_7.imageset/course_7@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_8.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/course_8.imageset/Contents.json
new file mode 100644
index 0000000..36d8485
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_8.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "course_8@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "course_8@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/course_8.imageset/course_8@2x.png b/XQMuse/Assets.xcassets/Icons/course_8.imageset/course_8@2x.png
new file mode 100644
index 0000000..b9f2b28
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_8.imageset/course_8@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/course_8.imageset/course_8@3x.png b/XQMuse/Assets.xcassets/Icons/course_8.imageset/course_8@3x.png
new file mode 100644
index 0000000..ff029f1
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/course_8.imageset/course_8@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_local.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_local.imageset/Contents.json
new file mode 100644
index 0000000..49ac673
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_local.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_local@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_local@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_local.imageset/icon_local@2x.png b/XQMuse/Assets.xcassets/Icons/icon_local.imageset/icon_local@2x.png
new file mode 100644
index 0000000..8e3da0c
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_local.imageset/icon_local@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_local.imageset/icon_local@3x.png b/XQMuse/Assets.xcassets/Icons/icon_local.imageset/icon_local@3x.png
new file mode 100644
index 0000000..f243077
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_local.imageset/icon_local@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/Contents.json
new file mode 100644
index 0000000..bbd05fc
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_offline@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_offline@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/icon_offline@2x.png b/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/icon_offline@2x.png
new file mode 100644
index 0000000..69d62ce
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/icon_offline@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/icon_offline@3x.png b/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/icon_offline@3x.png
new file mode 100644
index 0000000..c8612c5
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_offline.imageset/icon_offline@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/Contents.json
new file mode 100644
index 0000000..ea30758
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_phone@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_phone@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/icon_phone@2x.png b/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/icon_phone@2x.png
new file mode 100644
index 0000000..3ac01ba
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/icon_phone@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/icon_phone@3x.png b/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/icon_phone@3x.png
new file mode 100644
index 0000000..f692f54
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_phone.imageset/icon_phone@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_search.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_search.imageset/Contents.json
new file mode 100644
index 0000000..d584047
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_search.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_search@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_search@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_search.imageset/icon_search@2x.png b/XQMuse/Assets.xcassets/Icons/icon_search.imageset/icon_search@2x.png
new file mode 100644
index 0000000..ad05368
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_search.imageset/icon_search@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_search.imageset/icon_search@3x.png b/XQMuse/Assets.xcassets/Icons/icon_search.imageset/icon_search@3x.png
new file mode 100644
index 0000000..5bd8c09
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_search.imageset/icon_search@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_time.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_time.imageset/Contents.json
new file mode 100644
index 0000000..feb816a
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_time.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_time@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_time@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_time.imageset/icon_time@2x.png b/XQMuse/Assets.xcassets/Icons/icon_time.imageset/icon_time@2x.png
new file mode 100644
index 0000000..dfcf93b
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_time.imageset/icon_time@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_time.imageset/icon_time@3x.png b/XQMuse/Assets.xcassets/Icons/icon_time.imageset/icon_time@3x.png
new file mode 100644
index 0000000..dc89b24
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_time.imageset/icon_time@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/Contents.json
new file mode 100644
index 0000000..9b165f8
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_time_1@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_time_1@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/icon_time_1@2x.png b/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/icon_time_1@2x.png
new file mode 100644
index 0000000..1bd82d0
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/icon_time_1@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/icon_time_1@3x.png b/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/icon_time_1@3x.png
new file mode 100644
index 0000000..f56a001
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_time_1.imageset/icon_time_1@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/Contents.json
new file mode 100644
index 0000000..9b8f09a
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_user_1@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_user_1@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/icon_user_1@2x.png b/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/icon_user_1@2x.png
new file mode 100644
index 0000000..4655451
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/icon_user_1@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/icon_user_1@3x.png b/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/icon_user_1@3x.png
new file mode 100644
index 0000000..8e247a4
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_user_1.imageset/icon_user_1@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/Contents.json b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/Contents.json
new file mode 100644
index 0000000..5ec434f
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "bg_pavilion_top@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "bg_pavilion_top@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png
new file mode 100644
index 0000000..fd1e0d0
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png
new file mode 100644
index 0000000..7861b69
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png
Binary files differ
diff --git a/XQMuse/Base/BaseNav.swift b/XQMuse/Base/BaseNav.swift
index 45103fe..520fcb1 100644
--- a/XQMuse/Base/BaseNav.swift
+++ b/XQMuse/Base/BaseNav.swift
@@ -12,11 +12,11 @@
 
 				/// 需要透明Nav的VC
 				private var lucencyVCs = [LoginVC.self]
-				private var whiteStyleVCs = [HomeItemDetailVC.self]
+				private var whiteStyleVCs = [HomeItemDetailVC.self,CourseDetialVC.self,HomeItemDetailVC.self,CourseDetialVideoVC.self,PavilionDetailVC.self]
 
 				open override func viewDidLoad() {
 								super.viewDidLoad()
-								self.navigationBar.barTintColor = .white
+								self.navigationBar.barTintColor = .red
 								self.navigationBar.tintColor = UIColor.black
 								self.navigationBar.shadowImage = UIImage()
 								self.navigationBar.isTranslucent = true
@@ -55,7 +55,7 @@
 								let status = lucencyVCs.contains(where: {$0 == viewController.classForCoder})
 								if (navigationController.viewControllers.count == 1 || status){
 												if #available(iOS 15.0, *) {
-																navigationBar.standardAppearance.backgroundColor = .white
+																navigationBar.standardAppearance.backgroundColor = .clear
 																navigationBar.scrollEdgeAppearance?.backgroundColor = .clear
 												}else{
 																navigationBar.setBackgroundImage(UIImage(), for: .default)
diff --git a/XQMuse/Base/BaseVC.swift b/XQMuse/Base/BaseVC.swift
index 94c76aa..064d0a8 100644
--- a/XQMuse/Base/BaseVC.swift
+++ b/XQMuse/Base/BaseVC.swift
@@ -44,7 +44,6 @@
 																navigationItem.leftBarButtonItem = UIBarButtonItem.jq_creat(image: nav_back_img, target: self, alignment:.left, action: #selector(backItemEvent)).item
 												}
 								}
-
 				}
 
 				func setRx(){
diff --git a/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift b/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift
index 1595704..c55f467 100644
--- a/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift
+++ b/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift
@@ -6,12 +6,59 @@
 //
 
 import UIKit
+import JQTools
 
 class CourseOfficalCommendTopCCell: UICollectionViewCell {
 
-    override func awakeFromNib() {
+				@IBOutlet weak var view_bannerContentView: UIView!
+				@IBOutlet weak var collectionView: UICollectionView!
+				private var titleItems = [TitleItem]()
+				private var clouse:((Int)->Void)?
+				override func awakeFromNib() {
         super.awakeFromNib()
-        // Initialization code
+
+								collectionView.delegate = self
+								collectionView.dataSource = self
+								collectionView.isScrollEnabled = false
+								collectionView.register(UINib(nibName: "CourseOfficialItemCCell", bundle: nil), forCellWithReuseIdentifier: "_CourseOfficialItemCCell")
     }
 
+				func setTitles(_ items:[TitleItem]){
+								titleItems = items
+								collectionView.reloadData()
+				}
+
+				func clickAtClouse(_ clouse:@escaping (Int)->Void){
+								self.clouse = clouse
+				}
+}
+
+extension CourseOfficalCommendTopCCell:UICollectionViewDelegate & UICollectionViewDataSource{
+				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+								return titleItems.count
+				}
+				
+				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_CourseOfficialItemCCell", for: indexPath) as! CourseOfficialItemCCell
+								cell.setItem(titleItems[indexPath.row])
+								return cell
+				}
+
+				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+								clouse?(indexPath.row)
+				}
+}
+
+extension CourseOfficalCommendTopCCell:UICollectionViewDelegateFlowLayout{
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+								let w = JQ_ScreenW / 4
+								return CGSize(width: w, height: 101.25)
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
+								return 5
+				}
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
+								return 0
+				}
 }
diff --git a/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.xib b/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.xib
index 7da392c..ef9ac9e 100644
--- a/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.xib
+++ b/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.xib
@@ -5,21 +5,63 @@
         <deployment identifier="iOS"/>
         <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_CourseOfficalCommendTopCCell" id="gTV-IL-0wX" customClass="CourseOfficalCommendTopCCell" customModule="XQMuse" customModuleProvider="target">
-            <rect key="frame" x="0.0" y="0.0" width="328" height="269"/>
+            <rect key="frame" x="0.0" y="0.0" width="328" height="408"/>
             <autoresizingMask key="autoresizingMask"/>
             <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
-                <rect key="frame" x="0.0" y="0.0" width="328" height="269"/>
+                <rect key="frame" x="0.0" y="0.0" width="328" height="408"/>
                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LpV-bY-BWS">
+                        <rect key="frame" x="0.0" y="0.0" width="328" height="171"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstAttribute="width" secondItem="LpV-bY-BWS" secondAttribute="height" multiplier="1:0.5217" id="VfO-Ti-5ef"/>
+                        </constraints>
+                    </view>
+                    <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="IAR-Fq-op8">
+                        <rect key="frame" x="0.0" y="181" width="328" height="207"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="207" id="JM2-hK-TGn"/>
+                        </constraints>
+                        <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="KBa-lQ-RAV">
+                            <size key="itemSize" width="128" height="128"/>
+                            <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                            <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                            <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                        </collectionViewFlowLayout>
+                    </collectionView>
+                </subviews>
             </view>
             <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
-            <size key="customSize" width="328" height="269"/>
-            <point key="canvasLocation" x="293.12977099236639" y="97.535211267605632"/>
+            <color key="backgroundColor" red="0.94117647058823528" green="0.94117647058823528" blue="0.94117647058823528" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="IAR-Fq-op8" secondAttribute="bottom" priority="750" constant="25.5" id="XqK-na-fDy"/>
+                <constraint firstItem="LpV-bY-BWS" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="Yd8-Jr-VVH"/>
+                <constraint firstItem="IAR-Fq-op8" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="cfc-xx-VGM"/>
+                <constraint firstItem="IAR-Fq-op8" firstAttribute="top" secondItem="LpV-bY-BWS" secondAttribute="bottom" constant="10" id="da4-2G-4zL"/>
+                <constraint firstAttribute="trailing" secondItem="LpV-bY-BWS" secondAttribute="trailing" id="iHF-Rx-5et"/>
+                <constraint firstAttribute="trailing" secondItem="IAR-Fq-op8" secondAttribute="trailing" id="kg6-QP-VL9"/>
+                <constraint firstItem="LpV-bY-BWS" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="uom-LS-wPM"/>
+            </constraints>
+            <size key="customSize" width="328" height="408"/>
+            <connections>
+                <outlet property="collectionView" destination="IAR-Fq-op8" id="B6V-Mt-S1J"/>
+                <outlet property="view_bannerContentView" destination="LpV-bY-BWS" id="AyT-5Y-Vaq"/>
+            </connections>
+            <point key="canvasLocation" x="293.12977099236639" y="146.47887323943664"/>
         </collectionViewCell>
     </objects>
+    <resources>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
 </document>
diff --git a/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift b/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift
new file mode 100644
index 0000000..822f1de
--- /dev/null
+++ b/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift
@@ -0,0 +1,29 @@
+//
+//  CourseOfficialItemCCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/16.
+//
+
+import UIKit
+
+class CourseOfficialItemCCell: UICollectionViewCell {
+				@IBOutlet weak var img_cover: UIImageView!
+				@IBOutlet weak var label_title: UILabel!
+				
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        // Initialization code
+    }
+
+				func setItem(_ item:TitleItem){
+
+								if let localImage = item.coverImage{
+												img_cover.image = UIImage(named: localImage)
+								}
+
+								label_title.text = item.title
+
+				}
+
+}
diff --git a/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.xib b/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.xib
new file mode 100644
index 0000000..eb769a0
--- /dev/null
+++ b/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.xib
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_CourseOfficialItemCCell" id="gTV-IL-0wX" customClass="CourseOfficialItemCCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="114" height="109"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="114" height="109"/>
+                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="course_1" translatesAutoresizingMaskIntoConstraints="NO" id="D7q-iI-B0n">
+                        <rect key="frame" x="39.666666666666671" y="29" width="34.666666666666671" height="31.666666666666671"/>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eyG-jG-ONh">
+                        <rect key="frame" x="51.666666666666664" y="77" width="10.666666666666664" height="14.333333333333329"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="11"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                </subviews>
+            </view>
+            <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
+            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+            <constraints>
+                <constraint firstItem="eyG-jG-ONh" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="77" id="0WR-EQ-L1f"/>
+                <constraint firstItem="D7q-iI-B0n" firstAttribute="centerX" secondItem="ZTg-uK-7eu" secondAttribute="centerX" id="FBJ-g1-8N6"/>
+                <constraint firstItem="D7q-iI-B0n" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="29" id="IfT-we-B99"/>
+                <constraint firstItem="eyG-jG-ONh" firstAttribute="centerX" secondItem="D7q-iI-B0n" secondAttribute="centerX" id="VBt-Ee-fVM"/>
+            </constraints>
+            <size key="customSize" width="114" height="109"/>
+            <connections>
+                <outlet property="img_cover" destination="D7q-iI-B0n" id="rE5-4z-7nC"/>
+                <outlet property="label_title" destination="eyG-jG-ONh" id="MMf-hZ-xMm"/>
+            </connections>
+            <point key="canvasLocation" x="129.7709923664122" y="41.197183098591552"/>
+        </collectionViewCell>
+    </objects>
+    <resources>
+        <image name="course_1" width="34.666667938232422" height="31.666666030883789"/>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_1_TCell.swift b/XQMuse/Root/Course/TCell/CourseDetail_1_TCell.swift
new file mode 100644
index 0000000..6174889
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/CourseDetail_1_TCell.swift
@@ -0,0 +1,28 @@
+//
+//  CourseDetail_1_TCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/16.
+//
+
+import UIKit
+import WebKit
+
+class CourseDetail_1_TCell: UITableViewCell {
+
+				@IBOutlet weak var label_title: UILabel!
+				@IBOutlet weak var webView: WKWebView!
+				override func awakeFromNib() {
+        super.awakeFromNib()
+								backgroundColor = .clear
+								selectionStyle = .none
+								
+								webView.scrollView.isScrollEnabled = false
+								webView.scrollView.backgroundColor = .clear
+								webView.isOpaque = false
+    }
+
+				func setContent(title:String,content:String){
+								label_title.text = title
+				}
+}
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_1_TCell.xib b/XQMuse/Root/Course/TCell/CourseDetail_1_TCell.xib
new file mode 100644
index 0000000..1d4190a
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/CourseDetail_1_TCell.xib
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_CourseDetail_1_TCell" rowHeight="183" id="KGk-i7-Jjw" customClass="CourseDetail_1_TCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="501" height="183"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" ambiguous="YES" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="501" height="183"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="课程介绍" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lg9-70-w3n">
+                        <rect key="frame" x="21.666666666666668" y="35" width="61.333333333333329" height="14"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="14" id="WNQ-mw-uOi"/>
+                        </constraints>
+                        <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                        <color key="textColor" red="0.15686274509803921" green="0.15686274509803921" blue="0.15686274509803921" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="WYV-JQ-E3S">
+                        <rect key="frame" x="0.0" y="68.666666666666671" width="501" height="100.00000000000001"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="100" id="hfa-qQ-TpS"/>
+                        </constraints>
+                        <wkWebViewConfiguration key="configuration">
+                            <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                            <wkPreferences key="preferences"/>
+                        </wkWebViewConfiguration>
+                    </wkWebView>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="Lg9-70-w3n" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="35" id="4D5-on-wj2"/>
+                    <constraint firstItem="WYV-JQ-E3S" firstAttribute="top" secondItem="Lg9-70-w3n" secondAttribute="bottom" constant="19.5" id="Ar0-7c-kQM"/>
+                    <constraint firstAttribute="trailing" secondItem="WYV-JQ-E3S" secondAttribute="trailing" id="BSc-yJ-F5G"/>
+                    <constraint firstItem="WYV-JQ-E3S" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="Mbt-TS-KCB"/>
+                    <constraint firstItem="Lg9-70-w3n" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="21.5" id="dJv-7a-n9J"/>
+                    <constraint firstAttribute="bottom" secondItem="WYV-JQ-E3S" secondAttribute="bottom" id="ys9-aS-J2j"/>
+                </constraints>
+            </tableViewCellContentView>
+            <connections>
+                <outlet property="label_title" destination="Lg9-70-w3n" id="NPf-Sa-PgL"/>
+                <outlet property="webView" destination="WYV-JQ-E3S" id="wJi-nk-vgm"/>
+            </connections>
+            <point key="canvasLocation" x="200.76335877862596" y="68.661971830985919"/>
+        </tableViewCell>
+    </objects>
+</document>
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_2_Inner_TCell.swift b/XQMuse/Root/Course/TCell/CourseDetail_2_Inner_TCell.swift
new file mode 100644
index 0000000..ad7cb97
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/CourseDetail_2_Inner_TCell.swift
@@ -0,0 +1,24 @@
+//
+//  CourseDetail_2_Inner_TCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/16.
+//
+
+import UIKit
+import JQTools
+
+class CourseDetail_2_Inner_TCell: UITableViewCell {
+
+				@IBOutlet weak var btn_study: UIButton!
+				override func awakeFromNib() {
+        super.awakeFromNib()
+								selectionStyle = .none
+    }
+
+				@IBAction func studyAction(_ sender: Any) {
+								let vc = CourseDetialVideoVC()
+								JQ_currentViewController().jq_push(vc: vc)
+				}
+				
+}
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_2_Inner_TCell.xib b/XQMuse/Root/Course/TCell/CourseDetail_2_Inner_TCell.xib
new file mode 100644
index 0000000..4c550c1
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/CourseDetail_2_Inner_TCell.xib
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_CourseDetail_2_Inner_TCell" rowHeight="106" id="KGk-i7-Jjw" customClass="CourseDetail_2_Inner_TCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="403" height="106"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="403" height="106"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uL3-AT-OQF">
+                        <rect key="frame" x="24" y="43.333333333333336" width="7.3333333333333321" height="19.333333333333336"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                        <color key="textColor" red="0.66666666666666663" green="0.66666666666666663" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="awd-gM-ZRD">
+                        <rect key="frame" x="52.666666666666671" y="18" width="249.33333333333331" height="17"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="q5a-cH-u74">
+                        <rect key="frame" x="312" y="17" width="70.666666666666686" height="29"/>
+                        <color key="backgroundColor" red="0.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="70.5" id="NJh-Q0-nvT"/>
+                            <constraint firstAttribute="height" constant="29" id="jwy-kp-iQ4"/>
+                        </constraints>
+                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                        <state key="normal" title="去学习"/>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                            <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                <real key="value" value="14.5"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
+                        <connections>
+                            <action selector="studyAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="WCv-9q-rxx"/>
+                        </connections>
+                    </button>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_time" translatesAutoresizingMaskIntoConstraints="NO" id="wpH-E1-rC0">
+                        <rect key="frame" x="52.666666666666664" y="44" width="11.333333333333336" height="11.666666666666664"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="11.5" id="efn-rA-ldt"/>
+                            <constraint firstAttribute="height" constant="11.5" id="hd2-sF-7w1"/>
+                        </constraints>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bXU-MP-QyS">
+                        <rect key="frame" x="70.666666666666671" y="42.666666666666664" width="33" height="14"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="11"/>
+                        <color key="textColor" red="0.80392156862745101" green="0.80392156862745101" blue="0.80392156862745101" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_user_1" translatesAutoresizingMaskIntoConstraints="NO" id="oSc-rc-16x">
+                        <rect key="frame" x="117.66666666666667" y="44" width="11.333333333333329" height="11.666666666666664"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="11.5" id="eaV-6e-0Ih"/>
+                            <constraint firstAttribute="width" constant="11.5" id="n0Q-jC-eem"/>
+                        </constraints>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c0R-vF-UBG">
+                        <rect key="frame" x="135.66666666666666" y="42.666666666666664" width="33" height="14"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="11"/>
+                        <color key="textColor" red="0.80392156859999997" green="0.80392156859999997" blue="0.80392156859999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3UC-Wb-cQG">
+                        <rect key="frame" x="21.666666666666657" y="0.0" width="360" height="0.66666666666666663"/>
+                        <color key="backgroundColor" red="0.81568627450980391" green="0.81568627450980391" blue="0.81568627450980391" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="TWp-MD-4TS"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="wpH-E1-rC0" firstAttribute="top" secondItem="awd-gM-ZRD" secondAttribute="bottom" constant="9" id="0Zc-X2-H51"/>
+                    <constraint firstItem="wpH-E1-rC0" firstAttribute="leading" secondItem="awd-gM-ZRD" secondAttribute="leading" id="0wg-uJ-4Np"/>
+                    <constraint firstAttribute="trailing" secondItem="3UC-Wb-cQG" secondAttribute="trailing" constant="21.5" id="1mS-SD-ZJa"/>
+                    <constraint firstItem="oSc-rc-16x" firstAttribute="centerY" secondItem="wpH-E1-rC0" secondAttribute="centerY" id="50x-R4-xTR"/>
+                    <constraint firstItem="oSc-rc-16x" firstAttribute="leading" secondItem="bXU-MP-QyS" secondAttribute="trailing" constant="14" id="ADG-0O-Rvk"/>
+                    <constraint firstItem="3UC-Wb-cQG" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="21.5" id="H2m-u0-Pyd"/>
+                    <constraint firstItem="awd-gM-ZRD" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="52.5" id="JnA-Zo-1fO"/>
+                    <constraint firstItem="c0R-vF-UBG" firstAttribute="centerY" secondItem="wpH-E1-rC0" secondAttribute="centerY" id="JxL-JH-kCT"/>
+                    <constraint firstItem="uL3-AT-OQF" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="24" id="OPx-IH-LD6"/>
+                    <constraint firstAttribute="trailing" secondItem="q5a-cH-u74" secondAttribute="trailing" constant="20.5" id="One-yw-xva"/>
+                    <constraint firstItem="bXU-MP-QyS" firstAttribute="leading" secondItem="wpH-E1-rC0" secondAttribute="trailing" constant="6.5" id="QTP-JI-ZzO"/>
+                    <constraint firstItem="q5a-cH-u74" firstAttribute="leading" secondItem="awd-gM-ZRD" secondAttribute="trailing" constant="10" id="QgM-tO-y5H"/>
+                    <constraint firstItem="c0R-vF-UBG" firstAttribute="leading" secondItem="oSc-rc-16x" secondAttribute="trailing" constant="6.5" id="bIm-0D-Nqo"/>
+                    <constraint firstItem="3UC-Wb-cQG" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="bf7-gf-i6X"/>
+                    <constraint firstItem="bXU-MP-QyS" firstAttribute="centerY" secondItem="wpH-E1-rC0" secondAttribute="centerY" id="eBP-b0-aqj"/>
+                    <constraint firstItem="awd-gM-ZRD" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="18" id="ra5-Wa-c88"/>
+                    <constraint firstItem="q5a-cH-u74" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="17" id="scr-Mv-FTW"/>
+                    <constraint firstItem="uL3-AT-OQF" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="wiC-Us-lKn"/>
+                    <constraint firstItem="c0R-vF-UBG" firstAttribute="centerY" secondItem="oSc-rc-16x" secondAttribute="centerY" id="xdz-Vq-XrJ"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
+            <connections>
+                <outlet property="btn_study" destination="q5a-cH-u74" id="vg6-WV-mdc"/>
+            </connections>
+            <point key="canvasLocation" x="148.85496183206106" y="41.549295774647888"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="icon_time" width="11.666666984558105" height="11.666666984558105"/>
+        <image name="icon_user_1" width="10" height="10.666666984558105"/>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_2_TCell.swift b/XQMuse/Root/Course/TCell/CourseDetail_2_TCell.swift
new file mode 100644
index 0000000..9a30226
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/CourseDetail_2_TCell.swift
@@ -0,0 +1,56 @@
+//
+//  CourseDetail_2_TCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/16.
+//
+
+import UIKit
+
+class CourseDetail_2_TCell: UITableViewCell {
+
+				@IBOutlet weak var tableView: UITableView!
+				@IBOutlet weak var cons_tableHei: NSLayoutConstraint!
+
+//				private(set) var clouse:((IndexPath)->Void)?
+
+				override func awakeFromNib() {
+        super.awakeFromNib()
+								backgroundColor = .clear
+								selectionStyle = .none
+								tableView.delegate = self
+								tableView.dataSource = self
+								tableView.isScrollEnabled = false
+								tableView.backgroundColor = UIColor(hexString: "f6f6f6")
+								tableView.separatorStyle = .none
+								tableView.register(UINib(nibName: "CourseDetail_2_Inner_TCell", bundle: nil), forCellReuseIdentifier: "_CourseDetail_2_Inner_TCell")
+								cons_tableHei.constant = 70.5 * 5
+    }
+
+//				func selectAt(_ clouse:@escaping (IndexPath)->Void){
+//								if self.clouse == nil{
+//												self.clouse = clouse
+//								}
+//				}
+}
+
+extension CourseDetail_2_TCell:UITableViewDelegate & UITableViewDataSource{
+
+				func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+//								clouse?(indexPath)
+				}
+
+				func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+								return 5
+				}
+				
+				func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+								let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseDetail_2_Inner_TCell", for: indexPath) as! CourseDetail_2_Inner_TCell
+								cell.backgroundColor = .clear
+								return cell
+				}
+
+				func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+								return 70.5
+				}
+}
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_2_TCell.xib b/XQMuse/Root/Course/TCell/CourseDetail_2_TCell.xib
new file mode 100644
index 0000000..944af2c
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/CourseDetail_2_TCell.xib
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="279" id="KGk-i7-Jjw" customClass="CourseDetail_2_TCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="395" height="279"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="395" height="279"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="课程目录" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EsS-2x-ooJ">
+                        <rect key="frame" x="21.666666666666668" y="35" width="61.333333333333329" height="114"/>
+                        <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                        <color key="textColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="Rxb-3O-BKc">
+                        <rect key="frame" x="0.0" y="179" width="395" height="100"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="100" id="3OA-Kk-g6l"/>
+                        </constraints>
+                    </tableView>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="EsS-2x-ooJ" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="35" id="Hlp-1k-lzl"/>
+                    <constraint firstItem="EsS-2x-ooJ" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="21.5" id="jO0-ZH-hJ9"/>
+                    <constraint firstItem="Rxb-3O-BKc" firstAttribute="top" secondItem="EsS-2x-ooJ" secondAttribute="bottom" constant="30" id="jV2-gZ-CKK"/>
+                    <constraint firstAttribute="bottom" secondItem="Rxb-3O-BKc" secondAttribute="bottom" id="mI0-cL-zMy"/>
+                    <constraint firstAttribute="trailing" secondItem="Rxb-3O-BKc" secondAttribute="trailing" id="uzm-vX-xsu"/>
+                    <constraint firstItem="Rxb-3O-BKc" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="wS8-Bj-4Mf"/>
+                </constraints>
+            </tableViewCellContentView>
+            <connections>
+                <outlet property="cons_tableHei" destination="3OA-Kk-g6l" id="B2s-Et-Ehh"/>
+                <outlet property="tableView" destination="Rxb-3O-BKc" id="7KR-ba-eEY"/>
+            </connections>
+            <point key="canvasLocation" x="148.85496183206106" y="102.46478873239437"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift b/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift
new file mode 100644
index 0000000..4ad3240
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift
@@ -0,0 +1,55 @@
+//
+//  CourseDetail_3_TCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/19.
+//
+
+import UIKit
+import JQTools
+
+class CourseDetail_3_TCell: UITableViewCell {
+				@IBOutlet weak var collectionView: UICollectionView!
+				@IBOutlet weak var cons_hei: NSLayoutConstraint!
+				private let CellW  = (JQ_ScreenW - 21.5 * 2 - 13.5) / 2
+				private let CellH = ((JQ_ScreenW - 21.5 * 2 - 13.5) / 2) * 1.313
+
+				override func awakeFromNib() {
+								super.awakeFromNib()
+								backgroundColor = .clear
+								selectionStyle = .none
+								collectionView.backgroundColor = .clear
+								collectionView.delegate = self
+								collectionView.dataSource = self
+								collectionView.isScrollEnabled = false
+								collectionView.contentInset = UIEdgeInsets(top: 0, left: 21.5, bottom: 0, right: 21.5)
+								collectionView.register(UINib(nibName: "HomeRelaxBanner_2_CCell", bundle: nil), forCellWithReuseIdentifier: "_HomeRelaxBanner_2_CCell")
+
+								cons_hei.constant = ceil(5.0 / 2.0) * CellH + floor(5.0 / 2.0) * 13.5
+				}
+}
+
+extension CourseDetail_3_TCell:UICollectionViewDelegate & UICollectionViewDataSource{
+				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+								return 5
+				}
+				
+				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
+								cell.backgroundColor = .jq_randomColor
+								return cell
+				}
+}
+
+extension CourseDetail_3_TCell:UICollectionViewDelegateFlowLayout{
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
+								return 13.5
+				}
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
+								return 13.5
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+								return CGSize(width: CellW, height: CellH)
+				}
+}
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.xib b/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.xib
new file mode 100644
index 0000000..acc54db
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.xib
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_CourseDetail_3_TCell" rowHeight="347" id="KGk-i7-Jjw" customClass="CourseDetail_3_TCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="455" height="347"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="455" height="347"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="相关课程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0G9-B5-m4l">
+                        <rect key="frame" x="21.666666666666668" y="35" width="61.333333333333329" height="14.666666666666664"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="14.5" id="COr-dp-lCx"/>
+                        </constraints>
+                        <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                        <color key="textColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="nEq-ZY-3mu">
+                        <rect key="frame" x="0.0" y="75.666666666666686" width="455" height="200"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="200" id="YsJ-NH-WUu"/>
+                        </constraints>
+                        <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="1sc-XC-5ho">
+                            <size key="itemSize" width="128" height="128"/>
+                            <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                            <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                            <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                        </collectionViewFlowLayout>
+                    </collectionView>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="nEq-ZY-3mu" secondAttribute="trailing" id="BVg-Jh-pTP"/>
+                    <constraint firstAttribute="bottom" secondItem="nEq-ZY-3mu" secondAttribute="bottom" priority="750" id="HAE-y2-F8d"/>
+                    <constraint firstItem="nEq-ZY-3mu" firstAttribute="top" secondItem="0G9-B5-m4l" secondAttribute="bottom" constant="26" id="HoT-g7-b14"/>
+                    <constraint firstItem="0G9-B5-m4l" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="35" id="b6S-pF-HGc"/>
+                    <constraint firstItem="nEq-ZY-3mu" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="jTh-Jx-7Fk"/>
+                    <constraint firstItem="0G9-B5-m4l" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="21.5" id="ube-k6-sLV"/>
+                </constraints>
+            </tableViewCellContentView>
+            <connections>
+                <outlet property="collectionView" destination="nEq-ZY-3mu" id="mbu-ON-vFu"/>
+                <outlet property="cons_hei" destination="YsJ-NH-WUu" id="vYm-tG-6Ho"/>
+            </connections>
+            <point key="canvasLocation" x="171.75572519083968" y="96.83098591549296"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Course/TCell/MenuListTCell.swift b/XQMuse/Root/Course/TCell/MenuListTCell.swift
new file mode 100644
index 0000000..0f32930
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/MenuListTCell.swift
@@ -0,0 +1,19 @@
+//
+//  MenuListTCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/16.
+//
+
+import UIKit
+
+class MenuListTCell: UITableViewCell {
+
+				@IBOutlet weak var view_line: UIView!
+				@IBOutlet weak var label_title: UILabel!
+				
+				override func awakeFromNib() {
+        super.awakeFromNib()
+								selectionStyle = .none
+    }
+}
diff --git a/XQMuse/Root/Course/TCell/MenuListTCell.xib b/XQMuse/Root/Course/TCell/MenuListTCell.xib
new file mode 100644
index 0000000..8e2d606
--- /dev/null
+++ b/XQMuse/Root/Course/TCell/MenuListTCell.xib
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_MenuListTCell" rowHeight="63" id="KGk-i7-Jjw" customClass="MenuListTCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="294" height="63"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="294" height="63"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BTu-gK-KIz">
+                        <rect key="frame" x="0.0" y="23.666666666666671" width="2.6666666666666665" height="15.666666666666664"/>
+                        <color key="backgroundColor" red="0.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="2.5" id="bjt-4z-odo"/>
+                            <constraint firstAttribute="height" constant="15.5" id="xfz-AE-Xm3"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                            <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                <real key="value" value="1.25"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
+                    </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xYs-QB-GeD">
+                        <rect key="frame" x="21" y="23" width="39" height="17"/>
+                        <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="14"/>
+                        <color key="textColor" red="0.54117647059999996" green="0.68235294120000001" blue="0.39607843139999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="xYs-QB-GeD" firstAttribute="leading" secondItem="BTu-gK-KIz" secondAttribute="trailing" constant="18.5" id="Imt-xS-zG1"/>
+                    <constraint firstItem="xYs-QB-GeD" firstAttribute="centerY" secondItem="BTu-gK-KIz" secondAttribute="centerY" id="MQR-Mf-AHI"/>
+                    <constraint firstItem="BTu-gK-KIz" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="WTi-Pe-9vh"/>
+                    <constraint firstItem="BTu-gK-KIz" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="o4W-Nr-5Gn"/>
+                </constraints>
+            </tableViewCellContentView>
+            <connections>
+                <outlet property="label_title" destination="xYs-QB-GeD" id="gab-e7-0xP"/>
+                <outlet property="view_line" destination="BTu-gK-KIz" id="OEM-Sf-xAZ"/>
+            </connections>
+            <point key="canvasLocation" x="61.068702290076331" y="27.112676056338028"/>
+        </tableViewCell>
+    </objects>
+</document>
diff --git a/XQMuse/Root/Course/VC/CourseDetialVC.swift b/XQMuse/Root/Course/VC/CourseDetialVC.swift
new file mode 100644
index 0000000..dd0d97e
--- /dev/null
+++ b/XQMuse/Root/Course/VC/CourseDetialVC.swift
@@ -0,0 +1,308 @@
+//
+//  CourseDetialVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/16.
+//
+
+import UIKit
+import JQTools
+import SPPageMenu
+import QMUIKit
+
+enum CourseDetialStyle{
+				case style1 //有视频
+				case style2 //无视频
+}
+
+class CourseDetialVC: BaseVC {
+
+				private var tableView:UITableView?
+				private var headerView = CourseDetailHeaderView.jq_loadNibView()
+				private var barStyle:UIStatusBarStyle = .lightContent
+				private var scrollShowCell = false
+				private var currentShowIndex:IndexPath = IndexPath(row: 0, section: 0)
+				var isAnimationing = false
+				private var style:CourseDetialStyle = .style1
+
+				private(set) var pageMenu:SPPageMenu = {
+								let pageMenu = SPPageMenu(frame: .zero, trackerStyle: .line)
+								// 追踪线
+								pageMenu.trackerWidth = 27.5
+								pageMenu.setTrackerHeight(11, cornerRadius:0)
+								pageMenu.trackerFollowingMode = .always
+								pageMenu.contentInset = UIEdgeInsets(top: 0, left: 19.5, bottom: 15, right: 19.5)
+								pageMenu.setItems(["简介","章节","相关推荐"], selectedItemIndex: 0)
+								pageMenu.backgroundColor = UIColor(hexString: "#F6F6F6")
+								pageMenu.tracker.image = UIImage(named: "icon_unline")
+								pageMenu.tracker.backgroundColor = .clear
+
+								// 分割线
+								pageMenu.dividingLine.backgroundColor = .clear
+								pageMenu.dividingLineHeight = 1
+
+								// item
+								pageMenu.spacing = 27.0
+								pageMenu.permutationWay = .scrollAdaptContent
+
+								// 字体
+								pageMenu.selectedItemTitleFont = UIFont.systemFont(ofSize: 18, weight: .bold)
+								pageMenu.unSelectedItemTitleFont = UIFont.systemFont(ofSize: 15, weight: .bold)
+								// 颜色
+								pageMenu.selectedItemTitleColor = UIColor(hexStr: "#282828")
+								pageMenu.unSelectedItemTitleColor = UIColor(hexStr: "#AAAAAA")
+								return pageMenu
+				}()
+
+				override func viewWillAppear(_ animated: Bool) {
+								super.viewWillAppear(animated)
+								(navigationItem.leftBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.white), for: .normal)
+								navigationController?.navigationBar.scrollEdgeAppearance?.backgroundColor = .clear
+								navigationController?.navigationBar.standardAppearance.backgroundColor = .clear
+				}
+
+				init(courseSytle:CourseDetialStyle) {
+								super.init(nibName: nil, bundle: nil)
+								self.style = courseSytle
+				}
+				
+				required init?(coder: NSCoder) {
+								fatalError("init(coder:) has not been implemented")
+				}
+				
+    override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "课程详情"
+
+								if style == .style1{
+												pageMenu.setItems(["简介","章节","相关推荐"], selectedItemIndex: 0)
+								}else{
+												pageMenu.setItems(["简介"], selectedItemIndex: 0)
+								}
+    }
+
+				override func setUI() {
+								super.setUI()
+
+								pageMenu.delegate = self
+								tableView = UITableView(frame: .zero, style: .plain)
+								tableView!.contentInsetAdjustmentBehavior = .never
+								tableView!.separatorStyle = .none
+								tableView!.delegate = self
+								tableView!.dataSource = self
+								tableView!.showsVerticalScrollIndicator = false
+								if #available(iOS 15.0, *) {
+												tableView!.sectionHeaderTopPadding = 0
+								}
+								tableView!.backgroundColor = UIColor(hexString: "#f6f6f6")
+								tableView!.register(UINib(nibName: "CourseDetail_1_TCell", bundle: nil), forCellReuseIdentifier: "_CourseDetail_1_TCell")
+								tableView!.register(UINib(nibName: "CourseDetail_2_TCell", bundle: nil), forCellReuseIdentifier: "_CourseDetail_2_TCell")
+								tableView!.register(UINib(nibName: "CourseDetail_3_TCell", bundle: nil), forCellReuseIdentifier: "_CourseDetail_3_TCell")
+
+								view.addSubview(tableView!)
+								tableView!.snp.makeConstraints { make in
+												make.edges.equalToSuperview()
+								}
+
+								DispatchQueue.main.async {
+												self.headerView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: 413)
+												self.tableView!.tableHeaderView = self.headerView
+								}
+
+								setFootView()
+				}
+
+				private func setFootView(){
+								let footView = UIView()
+								footView.backgroundColor = .white
+								view.addSubview(footView)
+								footView.snp.makeConstraints { make in
+												make.left.right.bottom.equalToSuperview()
+												make.height.equalTo(84)
+								}
+
+								let giftBtn = QMUIButton(type: .custom)
+								giftBtn.imagePosition = .left
+								giftBtn.spacingBetweenImageAndTitle = 7.5
+								giftBtn.setTitleColor(UIColor(hexString: "#464646"), for: .normal)
+								giftBtn.setImage(UIImage(named: "btn_sendGift"), for: .normal)
+								giftBtn.setTitle("赠送好友", for: .normal)
+								giftBtn.addTarget(self, action: #selector(sendGift(_:)), for: .touchUpInside)
+								giftBtn.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .bold)
+								footView.addSubview(giftBtn)
+								giftBtn.snp.makeConstraints { make in
+												make.left.equalTo(26)
+												make.top.equalTo(26.5)
+								}
+
+								let studyBtn = QMUIButton(type: .custom)
+								studyBtn.setTitleColor(UIColor.white, for: .normal)
+								studyBtn.setTitle("    立即学习    ", for: .normal)
+								studyBtn.addTarget(self, action: #selector(handleAction(_:)), for: .touchUpInside)
+								studyBtn.cornerRadius = 17
+								studyBtn.titleLabel?.font = UIFont.systemFont(ofSize: 16.57, weight: .bold)
+								studyBtn.setBackgroundColor(color: UIColor(hexString: "#8AAE65")!, forState: .normal)
+								footView.addSubview(studyBtn)
+								studyBtn.snp.makeConstraints { make in
+												make.right.equalTo(-20)
+												make.centerY.equalTo(giftBtn)
+												make.height.equalTo(34)
+								}
+				}
+
+				@objc func handleAction(_ btn:QMUIButton){
+
+				}
+
+				@objc func sendGift(_ btn:QMUIButton){
+								CourseSendGiftView.show {
+												let vc = PaymentOrderVC()
+												self.push(vc: vc)
+								}
+				}
+
+				override var preferredStatusBarStyle: UIStatusBarStyle{
+								return barStyle
+				}
+}
+
+extension CourseDetialVC:UITableViewDataSource{
+				func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+								if style == .style1{
+												return 3
+								}else if style == .style2{
+												return 1
+								}else{
+												return 0
+								}
+				}
+
+				func numberOfSections(in tableView: UITableView) -> Int {
+								return 1
+				}
+
+				func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+								if indexPath.row == 0 || indexPath.row == 1{
+												return UITableView.automaticDimension
+								}
+								return 770.736
+				}
+
+				func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+
+								if indexPath.row == 0{
+												let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseDetail_1_TCell") as! CourseDetail_1_TCell
+												cell.backgroundColor = UIColor(hexString: "#f6f6f6")
+												return cell
+								}
+
+								if indexPath.row == 1{
+												let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseDetail_2_TCell") as! CourseDetail_2_TCell
+												cell.backgroundColor = UIColor(hexString: "#f6f6f6")
+												return cell
+								}
+
+								if indexPath.row == 2{
+												let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseDetail_3_TCell") as! CourseDetail_3_TCell
+												cell.backgroundColor = UIColor(hexString: "#f6f6f6")
+												return cell
+								}
+
+								var cell = tableView.dequeueReusableCell(withIdentifier: "cell")
+								if cell == nil{
+												cell = UITableViewCell(style: .value1, reuseIdentifier: "cell")
+								}
+								cell?.backgroundColor = .jq_randomColor
+								return cell!
+				}
+
+				func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+								var header = tableView.dequeueReusableHeaderFooterView(withIdentifier: "header")
+
+								if header == nil{
+												header = UITableViewHeaderFooterView(reuseIdentifier: "header")
+												header?.addSubview(pageMenu)
+												pageMenu.snp.makeConstraints { make in
+																make.edges.equalTo(header!)
+												}
+								}
+
+								return header
+				}
+
+				func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+								return 73.5
+				}
+}
+
+extension CourseDetialVC:UITableViewDelegate{
+
+
+}
+
+extension CourseDetialVC:UIScrollViewDelegate{
+
+				func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
+								isAnimationing = false
+				}
+
+				func scrollViewDidScroll(_ scrollView: UIScrollView) {
+
+								let v = min(scrollView.contentOffset.y / JQ_NavBarHeight, 1)
+								navigationController?.navigationBar.standardAppearance.backgroundColor = .white.withAlphaComponent(v)
+
+								if v > 0{
+												(navigationItem.leftBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.black.withAlphaComponent(v)), for: .normal)
+												self.navigationController?.navigationBar.titleTextAttributes = [.foregroundColor:Def_NavFontColor.withAlphaComponent(v),.font:Def_NavFont]
+												barStyle = .darkContent
+
+								}else{
+												(navigationItem.leftBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.white), for: .normal)
+												self.navigationController?.navigationBar.titleTextAttributes = [.foregroundColor:UIColor.white,.font:Def_NavFont]
+								}
+
+								if v == 1{
+												barStyle = .darkContent
+												setNeedsStatusBarAppearanceUpdate()
+								}else{
+												barStyle = .lightContent
+												setNeedsStatusBarAppearanceUpdate()
+								}
+
+								if let table = scrollView as? UITableView{
+												if v > 0{
+																table.contentInset = UIEdgeInsets(top: JQ_NavBarHeight + 9, left: 0, bottom: 118, right: 0)
+												}else{
+																table.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 118, right: 0)
+												}
+								}
+
+
+								let offSetY = scrollView.contentOffset.y + CGRectGetHeight(scrollView.frame) / 2;
+
+								if let currentIndex = tableView?.indexPathForRow(at: CGPoint(x: 0, y: offSetY)){
+												print(scrollView.isDragging)
+
+												if !isAnimationing{
+												if currentShowIndex != currentIndex{
+																currentShowIndex = currentIndex
+																				pageMenu.selectedItemIndex = currentIndex.row
+																}
+												}
+								}
+				}
+}
+
+extension CourseDetialVC:SPPageMenuDelegate{
+				func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
+
+								if currentShowIndex != IndexPath(row: index, section: 0){
+												currentShowIndex =  IndexPath(row: index, section: 0)
+
+												if !(tableView?.isDragging ?? true){
+																isAnimationing = true
+																tableView?.scrollToRow(at: currentShowIndex, at: .top, animated: true)
+												}
+								}
+				}
+}
diff --git a/XQMuse/Root/Course/VC/CourseDetialVideoVC.swift b/XQMuse/Root/Course/VC/CourseDetialVideoVC.swift
new file mode 100644
index 0000000..ad780b0
--- /dev/null
+++ b/XQMuse/Root/Course/VC/CourseDetialVideoVC.swift
@@ -0,0 +1,61 @@
+//
+//  CourseDetialVideoVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/19.
+//
+
+import UIKit
+
+class CourseDetialVideoVC: BaseVC {
+
+				@IBOutlet weak var tableView: UITableView!
+				
+				override func viewWillAppear(_ animated: Bool) {
+								super.viewWillAppear(animated)
+								(navigationItem.leftBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.white), for: .normal)
+				}
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "课程详情"
+
+								tableView.separatorStyle = .none
+								tableView.delegate = self
+								tableView.dataSource = self
+								tableView.showsVerticalScrollIndicator = false
+								if #available(iOS 15.0, *) {
+												tableView.sectionHeaderTopPadding = 0
+								}
+								tableView.register(UINib(nibName: "CourseDetail_2_Inner_TCell", bundle: nil), forCellReuseIdentifier: "_CourseDetail_2_Inner_TCell")
+    }
+
+				override var preferredStatusBarStyle: UIStatusBarStyle{
+								return .lightContent
+				}
+}
+
+extension CourseDetialVideoVC:UITableViewDataSource{
+				func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+							return 10
+				}
+
+				func numberOfSections(in tableView: UITableView) -> Int {
+								return 1
+				}
+
+				func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+								return 69.5
+				}
+
+				func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+
+								let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseDetail_2_Inner_TCell") as! CourseDetail_2_Inner_TCell
+								return cell
+				}
+}
+
+extension CourseDetialVideoVC:UITableViewDelegate{
+
+
+}
diff --git a/XQMuse/Root/Course/VC/CourseDetialVideoVC.xib b/XQMuse/Root/Course/VC/CourseDetialVideoVC.xib
new file mode 100644
index 0000000..42b1dc4
--- /dev/null
+++ b/XQMuse/Root/Course/VC/CourseDetialVideoVC.xib
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CourseDetialVideoVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <outlet property="tableView" destination="9tI-Cr-xM8" id="y8l-vs-uxu"/>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="a5v-5f-tro">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="314.33333333333331"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="demo_bg" translatesAutoresizingMaskIntoConstraints="NO" id="EGK-xl-ywV">
+                            <rect key="frame" x="0.0" y="0.0" width="393" height="314.33333333333331"/>
+                        </imageView>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="EGK-xl-ywV" secondAttribute="trailing" id="7EB-ci-VAK"/>
+                        <constraint firstItem="EGK-xl-ywV" firstAttribute="top" secondItem="a5v-5f-tro" secondAttribute="top" id="Btv-Ot-ZHF"/>
+                        <constraint firstAttribute="bottom" secondItem="EGK-xl-ywV" secondAttribute="bottom" id="Upc-4k-kA9"/>
+                        <constraint firstAttribute="width" secondItem="a5v-5f-tro" secondAttribute="height" multiplier="1:0.8" id="gMO-7v-G2E"/>
+                        <constraint firstItem="EGK-xl-ywV" firstAttribute="leading" secondItem="a5v-5f-tro" secondAttribute="leading" id="iVr-lI-tV7"/>
+                    </constraints>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hWZ-tE-Oeu">
+                    <rect key="frame" x="0.0" y="314.33333333333331" width="393" height="82"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="课程目录" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4ak-gq-iBH">
+                            <rect key="frame" x="20.666666666666668" y="45.666666666666686" width="61.333333333333329" height="18"/>
+                            <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                            <color key="textColor" red="0.15686274509803921" green="0.15686274509803921" blue="0.15686274509803921" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="82" id="HIS-7C-zS3"/>
+                        <constraint firstAttribute="bottom" secondItem="4ak-gq-iBH" secondAttribute="bottom" constant="18.329999999999998" id="cCa-ou-vSq"/>
+                        <constraint firstItem="4ak-gq-iBH" firstAttribute="leading" secondItem="hWZ-tE-Oeu" secondAttribute="leading" constant="20.5" id="qS4-R4-YXE"/>
+                    </constraints>
+                </view>
+                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="9tI-Cr-xM8">
+                    <rect key="frame" x="0.0" y="396.33333333333326" width="393" height="421.66666666666674"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                </tableView>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="hWZ-tE-Oeu" firstAttribute="top" secondItem="a5v-5f-tro" secondAttribute="bottom" id="0GD-ZB-m7D"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="9tI-Cr-xM8" secondAttribute="trailing" id="8Rn-S4-LPe"/>
+                <constraint firstItem="hWZ-tE-Oeu" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="B44-Pj-deb"/>
+                <constraint firstItem="9tI-Cr-xM8" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="CZK-sW-wPa"/>
+                <constraint firstItem="a5v-5f-tro" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="EgI-eU-ICh"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="9tI-Cr-xM8" secondAttribute="bottom" id="GGs-yG-CZR"/>
+                <constraint firstItem="9tI-Cr-xM8" firstAttribute="top" secondItem="hWZ-tE-Oeu" secondAttribute="bottom" id="U4d-7p-WoM"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="a5v-5f-tro" secondAttribute="trailing" id="WN7-hi-1eN"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="hWZ-tE-Oeu" secondAttribute="trailing" id="iu3-20-0gs"/>
+                <constraint firstItem="a5v-5f-tro" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="xv8-jD-2j4"/>
+            </constraints>
+            <point key="canvasLocation" x="16" y="20"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="demo_bg" width="621" height="1064"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Course/VC/CourseMenuVC.swift b/XQMuse/Root/Course/VC/CourseMenuVC.swift
new file mode 100644
index 0000000..c3ad658
--- /dev/null
+++ b/XQMuse/Root/Course/VC/CourseMenuVC.swift
@@ -0,0 +1,123 @@
+//
+//  CourseMenuVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/16.
+//
+
+import UIKit
+import JQTools
+
+class CourseMenuVC: BaseVC {
+
+				private var tableView:UITableView!
+				private var collectionView:UICollectionView!
+				private var titleItems = [TitleItem]()
+				private var selectIndex:Int = 0
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "全部课程"
+
+								titleItems.append(TitleItem(title: "会员专区"))
+								titleItems.append(TitleItem(title: "免费专区"))
+								titleItems.append(TitleItem(title: "付费专区"))
+								titleItems.append(TitleItem(title: "线下课程"))
+								titleItems.append(TitleItem(title: "水晶疗愈"))
+    }
+
+				override func setUI() {
+								super.setUI()
+								view.backgroundColor = UIColor.white
+
+								tableView = UITableView(frame: .zero, style: .plain)
+								tableView.backgroundColor = UIColor(hexString: "#f6f6f6")
+								tableView.separatorStyle = .none
+								tableView.isScrollEnabled = false
+								tableView.register(UINib(nibName: "MenuListTCell", bundle: nil), forCellReuseIdentifier: "_MenuListTCell")
+								tableView.delegate = self
+								tableView.dataSource = self
+								view.addSubview(tableView)
+								tableView.snp.makeConstraints { make in
+												make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top)
+												make.left.bottom.equalToSuperview()
+												make.width.equalTo(JQ_ScreenW * 0.2487)
+								}
+
+								let layout = UICollectionViewFlowLayout()
+								collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
+								collectionView.delegate = self
+								collectionView.dataSource = self
+								collectionView.showsVerticalScrollIndicator = false
+								collectionView.register(UINib(nibName: "HomeRelaxBanner_2_CCell", bundle: nil), forCellWithReuseIdentifier: "_HomeRelaxBanner_2_CCell")
+								collectionView.contentInset = UIEdgeInsets(top: 34, left: 21, bottom: 0, right: 21)
+								view.addSubview(collectionView)
+								collectionView.snp.makeConstraints { make in
+												make.left.equalTo(tableView.snp.right)
+												make.right.equalToSuperview()
+												make.top.bottom.equalTo(tableView)
+								}
+				}
+}
+
+extension CourseMenuVC:UITableViewDelegate & UITableViewDataSource{
+
+				func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+								selectIndex = indexPath.row
+								tableView.reloadData()
+				}
+
+				func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+								let cell = tableView.dequeueReusableCell(withIdentifier: "_MenuListTCell", for: indexPath) as! MenuListTCell
+								cell.backgroundColor = .clear
+								cell.view_line.isHidden = indexPath.row != selectIndex
+								cell.label_title.text = titleItems[indexPath.row].title
+								cell.label_title.textColor = indexPath.row == selectIndex ? UIColor(hexString: "#8AAE65") : UIColor(hexString: "#5C5C5C")
+								return cell
+				}
+
+				func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+								return titleItems.count
+				}
+
+				func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+								return 53
+				}
+}
+
+extension CourseMenuVC:UICollectionViewDelegate & UICollectionViewDataSource{
+
+				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+								if indexPath.row == 0{
+												let vc = CourseDetialVC(courseSytle: .style1)
+												push(vc: vc)
+								}else{
+												let vc = CourseDetialVC(courseSytle: .style2)
+												push(vc: vc)
+								}
+				}
+
+				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
+								cell.backgroundColor = .jq_randomColor
+								return cell
+				}
+
+				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+								return 2
+				}
+}
+
+extension CourseMenuVC:UICollectionViewDelegateFlowLayout{
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
+								return 10
+				}
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
+								return 10
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+								let w = ((JQ_ScreenW - 70) * (1 - 0.2487)) / 2
+								return CGSize(width: w, height: w * 1.313)
+				}
+}
diff --git a/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift b/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
index 7dec829..69780c5 100644
--- a/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
+++ b/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
@@ -12,12 +12,23 @@
 
 				private var collectionView:UICollectionView!
 				private var titleItems = [TitleItem]()
+				private var subTitleItems = [TitleItem]()
 
 				override func viewDidLoad() {
 								super.viewDidLoad()
 
 								titleItems.append(TitleItem(title: "新手冥想指南", subTitle: "Meditation guide"))
 								titleItems.append(TitleItem(title: "推荐课程", subTitle: "与内心的宁静与喜悦入睡"))
+
+								subTitleItems.append(TitleItem(title: "会员专区",coverImage: "course_1"))
+								subTitleItems.append(TitleItem(title: "免费专区",coverImage: "course_2"))
+								subTitleItems.append(TitleItem(title: "付费专区",coverImage: "course_3"))
+								subTitleItems.append(TitleItem(title: "线下课程",coverImage: "course_4"))
+								subTitleItems.append(TitleItem(title: "疗愈",coverImage: "course_5"))
+								subTitleItems.append(TitleItem(title: "关系",coverImage: "course_6"))
+								subTitleItems.append(TitleItem(title: "财富",coverImage: "course_7"))
+								subTitleItems.append(TitleItem(title: "分类",coverImage: "course_8"))
+
 				}
 
 				override func setUI() {
@@ -41,6 +52,11 @@
 
 extension CourseVCOfficalCommentVC:UICollectionViewDelegate & UICollectionViewDataSource{
 
+				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+								let vc = CourseDetialVC(courseSytle: .style1)
+								JQ_currentViewController().jq_push(vc: vc)
+				}
+
 
 				func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
 								if kind == UICollectionView.elementKindSectionHeader{
@@ -56,7 +72,12 @@
 
 								if indexPath.section == 0{
 												let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_CourseOfficalCommendTopCCell", for: indexPath) as! CourseOfficalCommendTopCCell
-												cell.backgroundColor = .jq_randomColor
+												cell.setTitles(subTitleItems)
+												cell.clickAtClouse { index in
+																let vc = CourseMenuVC()
+																vc.hidesBottomBarWhenPushed = true
+																JQ_currentNavigationController().pushViewController(vc, animated: true)
+												}
 												return cell
 								}
 
@@ -80,7 +101,9 @@
 extension CourseVCOfficalCommentVC:UICollectionViewDelegateFlowLayout{
 				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
 								if indexPath.section == 0{
-												return CGSize(width: JQ_ScreenW, height: 421)
+
+												let h = ceil(subTitleItems.count.double / 4.0) * 101.25 + floor(subTitleItems.count.double / 4.0) * 5 + 208.5
+												return CGSize(width: JQ_ScreenW, height: h)
 								}
 
 								let w = (JQ_ScreenW - 19 * 2 - 14) / 2
diff --git a/XQMuse/Root/Course/VC/CourseVCTeacherSpecialVC.swift b/XQMuse/Root/Course/VC/CourseVCTeacherSpecialVC.swift
index d258bb4..e0a5563 100644
--- a/XQMuse/Root/Course/VC/CourseVCTeacherSpecialVC.swift
+++ b/XQMuse/Root/Course/VC/CourseVCTeacherSpecialVC.swift
@@ -9,22 +9,86 @@
 import JQTools
 
 class CourseVCTeacherSpecialVC: BaseVC {
+				private var tableView:UITableView?
+				private var headerView:VideoView!
 
     override func viewDidLoad() {
         super.viewDidLoad()
 
-								view.backgroundColor = .jq_randomColor
     }
-    
 
-    /*
-    // MARK: - Navigation
+				override func setUI() {
+								super.setUI()
+								tableView = UITableView(frame: .zero, style: .plain)
+								tableView!.contentInsetAdjustmentBehavior = .never
+								tableView!.separatorStyle = .none
+								tableView!.delegate = self
+								tableView!.dataSource = self
+								tableView?.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 20, right: 0)
+								tableView!.showsVerticalScrollIndicator = false
+								if #available(iOS 15.0, *) {
+												tableView!.sectionHeaderTopPadding = 0
+								}
+								tableView!.backgroundColor = UIColor(hexString: "#f6f6f6")
+								tableView!.register(UINib(nibName: "CourseDetail_1_TCell", bundle: nil), forCellReuseIdentifier: "_CourseDetail_1_TCell")
+								tableView!.register(UINib(nibName: "CourseDetail_3_TCell", bundle: nil), forCellReuseIdentifier: "_CourseDetail_3_TCell")
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
-    }
-    */
+								view.addSubview(tableView!)
+								tableView!.snp.makeConstraints { make in
+												make.edges.equalToSuperview()
+								}
+
+								DispatchQueue.main.async {
+												self.headerView = VideoView()
+												self.headerView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: JQ_ScreenW * 0.56)
+												self.tableView!.tableHeaderView = self.headerView
+								}
+				}
+}
+extension CourseVCTeacherSpecialVC:UITableViewDataSource{
+				func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+							return 2
+				}
+
+				func numberOfSections(in tableView: UITableView) -> Int {
+								return 1
+				}
+
+				func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+								if indexPath.row == 0 || indexPath.row == 1{
+												return UITableView.automaticDimension
+								}
+								return 770.736
+				}
+
+				func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+
+								if indexPath.row == 0{
+												let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseDetail_1_TCell") as! CourseDetail_1_TCell
+												cell.backgroundColor = UIColor(hexString: "#f6f6f6")
+												cell.setContent(title: "导师简介", content: "")
+												return cell
+								}
+
+								if indexPath.row == 1{
+												let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseDetail_3_TCell") as! CourseDetail_3_TCell
+												cell.backgroundColor = UIColor(hexString: "#f6f6f6")
+												return cell
+								}
+
+								var cell = tableView.dequeueReusableCell(withIdentifier: "cell")
+								if cell == nil{
+												cell = UITableViewCell(style: .value1, reuseIdentifier: "cell")
+								}
+								return cell!
+				}
+
+				func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+								return 73.5
+				}
+}
+
+extension CourseVCTeacherSpecialVC:UITableViewDelegate{
+
 
 }
diff --git a/XQMuse/Root/Course/View/CourseDetailHeaderView.swift b/XQMuse/Root/Course/View/CourseDetailHeaderView.swift
new file mode 100644
index 0000000..cfc13c3
--- /dev/null
+++ b/XQMuse/Root/Course/View/CourseDetailHeaderView.swift
@@ -0,0 +1,17 @@
+//
+//  CourseDetailHeaderView.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/16.
+//
+
+import UIKit
+import JQTools
+
+class CourseDetailHeaderView: UIView,JQNibView{
+				
+				@IBOutlet weak var icon: UIImageView!
+				override func awakeFromNib() {
+								super.awakeFromNib()
+				}
+}
diff --git a/XQMuse/Root/Course/View/CourseDetailHeaderView.xib b/XQMuse/Root/Course/View/CourseDetailHeaderView.xib
new file mode 100644
index 0000000..e8b97cb
--- /dev/null
+++ b/XQMuse/Root/Course/View/CourseDetailHeaderView.xib
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="CourseDetailHeaderView" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="364" height="413"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="demo_bg" translatesAutoresizingMaskIntoConstraints="NO" id="3FR-3L-eGU">
+                    <rect key="frame" x="0.0" y="0.0" width="364" height="291.33333333333331"/>
+                    <constraints>
+                        <constraint firstAttribute="width" secondItem="3FR-3L-eGU" secondAttribute="height" multiplier="1:0.8" id="dKc-G0-qUl"/>
+                    </constraints>
+                </imageView>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AMf-zP-hoy">
+                    <rect key="frame" x="0.0" y="291.33333333333331" width="364" height="99.333333333333314"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CgZ-Jh-uGm">
+                            <rect key="frame" x="20.666666666666664" y="20" width="17.666666666666664" height="23"/>
+                            <fontDescription key="fontDescription" type="boldSystem" pointSize="19"/>
+                            <color key="textColor" red="0.15686274509803921" green="0.15686274509803921" blue="0.15686274509803921" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <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="DbG-SW-sik">
+                            <rect key="frame" x="304.33333333333331" y="24.333333333333371" width="39.333333333333314" height="14.333333333333336"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <color key="textColor" red="0.27058823529411763" green="0.27058823529411763" blue="0.27058823529411763" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_use_small" translatesAutoresizingMaskIntoConstraints="NO" id="QZb-OD-zkm">
+                            <rect key="frame" x="20.666666666666668" y="63.333333333333364" width="10" height="10.666666666666664"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="10" id="Oim-LL-682"/>
+                                <constraint firstAttribute="height" constant="10.5" id="UW0-AR-Xhg"/>
+                            </constraints>
+                        </imageView>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="101人已加入学习" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0I9-CV-ojJ">
+                            <rect key="frame" x="35.666666666666664" y="62.666666666666686" width="78.666666666666686" height="12"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="10"/>
+                            <color key="textColor" red="0.80392156862745101" green="0.80392156862745101" blue="0.80392156862745101" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="QZb-OD-zkm" firstAttribute="leading" secondItem="CgZ-Jh-uGm" secondAttribute="leading" id="9m2-IA-FFN"/>
+                        <constraint firstAttribute="height" constant="99.5" id="LcG-qp-bba"/>
+                        <constraint firstAttribute="trailing" secondItem="DbG-SW-sik" secondAttribute="trailing" constant="20.5" id="dRM-2S-Gf9"/>
+                        <constraint firstItem="0I9-CV-ojJ" firstAttribute="leading" secondItem="QZb-OD-zkm" secondAttribute="trailing" constant="5" id="e2U-HD-qip"/>
+                        <constraint firstItem="CgZ-Jh-uGm" firstAttribute="top" secondItem="AMf-zP-hoy" secondAttribute="top" constant="20" id="f9p-jH-KwJ"/>
+                        <constraint firstItem="CgZ-Jh-uGm" firstAttribute="leading" secondItem="AMf-zP-hoy" secondAttribute="leading" constant="20.5" id="fzO-TU-hyZ"/>
+                        <constraint firstItem="QZb-OD-zkm" firstAttribute="top" secondItem="CgZ-Jh-uGm" secondAttribute="bottom" constant="20.5" id="iWI-lW-jIf"/>
+                        <constraint firstItem="QZb-OD-zkm" firstAttribute="centerY" secondItem="0I9-CV-ojJ" secondAttribute="centerY" id="pCH-gF-id3"/>
+                        <constraint firstItem="DbG-SW-sik" firstAttribute="centerY" secondItem="CgZ-Jh-uGm" secondAttribute="centerY" id="rIW-tx-0kQ"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="AMf-zP-hoy" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="5hu-fm-fpJ"/>
+                <constraint firstItem="AMf-zP-hoy" firstAttribute="top" secondItem="3FR-3L-eGU" secondAttribute="bottom" id="HCP-1R-mx8"/>
+                <constraint firstAttribute="trailing" secondItem="3FR-3L-eGU" secondAttribute="trailing" id="KJx-ha-rYc"/>
+                <constraint firstItem="3FR-3L-eGU" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="KjP-Qt-mZS"/>
+                <constraint firstAttribute="trailing" secondItem="AMf-zP-hoy" secondAttribute="trailing" id="QnO-1B-SP7"/>
+                <constraint firstAttribute="bottom" secondItem="AMf-zP-hoy" secondAttribute="bottom" priority="750" id="TyS-Df-byM"/>
+                <constraint firstItem="3FR-3L-eGU" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="fEh-oE-o3e"/>
+            </constraints>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="icon" destination="QZb-OD-zkm" id="C8w-ga-BSc"/>
+            </connections>
+            <point key="canvasLocation" x="59.541984732824424" y="-98.239436619718319"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="demo_bg" width="621" height="1064"/>
+        <image name="icon_use_small" width="10" height="10.666666984558105"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Course/View/CourseSendGiftView.swift b/XQMuse/Root/Course/View/CourseSendGiftView.swift
new file mode 100644
index 0000000..c1b9fc4
--- /dev/null
+++ b/XQMuse/Root/Course/View/CourseSendGiftView.swift
@@ -0,0 +1,63 @@
+//
+//  CourseSendGiftView.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/19.
+//
+
+import UIKit
+import JQTools
+
+class CourseSendGiftView: UIView,JQNibView{
+
+				@IBOutlet weak var btn_complete: UIButton!
+				@IBOutlet weak var view_container: UIView!
+				@IBOutlet weak var label_price: UILabel!
+				@IBOutlet weak var cons_bottom: NSLayoutConstraint!
+
+				private var clouse:(()->Void)?
+
+				override func awakeFromNib() {
+								super.awakeFromNib()
+								cons_bottom.constant = -JQ_ScreenW
+								alpha = 0
+								layoutIfNeeded()
+				}
+
+				static func show(_ clouse:@escaping()->Void){
+								let view = CourseSendGiftView.jq_loadNibView()
+								sceneDelegate?.window?.addSubview(view)
+								view.clouse = clouse
+								view.cons_bottom.constant = 0
+								UIView.animate(withDuration: 0.4) {
+												view.alpha = 1
+												view.layoutIfNeeded()
+								}
+				}
+
+				override func layoutSubviews() {
+								super.layoutSubviews()
+								btn_complete.jq_gradientNibColor(colorArr: [UIColor(hexStr: "#8EA47A").cgColor,UIColor(hexStr: "#AFCA98").cgColor], cornerRadius: 18.5)
+				}
+
+				@IBAction func completeAction(_ sender: UIButton) {
+								cons_bottom.constant = -JQ_ScreenW
+								UIView.animate(withDuration: 0.4) {
+												self.alpha = 0
+												self.layoutIfNeeded()
+								}completion: { _ in
+												self.removeFromSuperview()
+												self.clouse?()
+								}
+				}
+
+				@IBAction func cancelAction(_ sender: UIButton) {
+								cons_bottom.constant = -JQ_ScreenW
+								UIView.animate(withDuration: 0.4) {
+												self.alpha = 0
+												self.layoutIfNeeded()
+								}completion: { _ in
+												self.removeFromSuperview()
+								}
+				}
+}
diff --git a/XQMuse/Root/Course/View/CourseSendGiftView.xib b/XQMuse/Root/Course/View/CourseSendGiftView.xib
new file mode 100644
index 0000000..af8c539
--- /dev/null
+++ b/XQMuse/Root/Course/View/CourseSendGiftView.xib
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="CourseSendGiftView" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LSz-KU-Ren">
+                    <rect key="frame" x="0.0" y="627" width="393" height="225"/>
+                    <subviews>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Sfd-UT-Jfh">
+                            <rect key="frame" x="46" y="143" width="301" height="40"/>
+                            <color key="backgroundColor" red="0.55686274509803924" green="0.64313725490196072" blue="0.47843137254901957" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="40" id="Ch4-AT-SzS"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="确认赠送"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                    <real key="value" value="20"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="0Cz-q8-Gw1"/>
+                            </connections>
+                        </button>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="WjL-9e-RTJ">
+                            <rect key="frame" x="0.0" y="123.66666666666663" width="393" height="0.3333333333333286"/>
+                            <color key="backgroundColor" red="0.85882352941176465" green="0.85882352941176465" blue="0.90588235294117647" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="0.5" id="OvQ-aG-Ja5"/>
+                            </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="50e-Zj-0x8">
+                            <rect key="frame" x="14" y="78.666666666666629" width="64.666666666666671" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="20" id="G5z-ZX-Ecd"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <nil key="textColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥0" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nxc-CP-MV1">
+                            <rect key="frame" x="360.66666666666669" y="80" width="18.333333333333314" height="17"/>
+                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
+                            <color key="textColor" red="0.9882352941176471" green="0.64313725490196072" blue="0.19607843137254902" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstItem="Sfd-UT-Jfh" firstAttribute="top" secondItem="WjL-9e-RTJ" secondAttribute="bottom" constant="19" id="2UU-eT-y0g"/>
+                        <constraint firstItem="Nxc-CP-MV1" firstAttribute="centerY" secondItem="50e-Zj-0x8" secondAttribute="centerY" id="3wu-c9-16a"/>
+                        <constraint firstItem="WjL-9e-RTJ" firstAttribute="leading" secondItem="LSz-KU-Ren" secondAttribute="leading" id="E7P-CV-pEk"/>
+                        <constraint firstItem="50e-Zj-0x8" firstAttribute="leading" secondItem="LSz-KU-Ren" secondAttribute="leading" constant="14" id="FWa-Fg-onc"/>
+                        <constraint firstAttribute="trailing" secondItem="WjL-9e-RTJ" secondAttribute="trailing" id="Rfg-tw-AYT"/>
+                        <constraint firstAttribute="bottomMargin" secondItem="Sfd-UT-Jfh" secondAttribute="bottom" id="RyI-07-ePU"/>
+                        <constraint firstAttribute="trailing" secondItem="Sfd-UT-Jfh" secondAttribute="trailing" constant="46" id="U4s-iM-S4p"/>
+                        <constraint firstAttribute="height" constant="225" id="hnP-qJ-dUE"/>
+                        <constraint firstAttribute="trailing" secondItem="Nxc-CP-MV1" secondAttribute="trailing" constant="14" id="yj2-7F-xFu"/>
+                        <constraint firstItem="Sfd-UT-Jfh" firstAttribute="leading" secondItem="LSz-KU-Ren" secondAttribute="leading" constant="46" id="z5v-ab-pXi"/>
+                        <constraint firstItem="WjL-9e-RTJ" firstAttribute="top" secondItem="50e-Zj-0x8" secondAttribute="bottom" constant="25" id="zqO-9k-JpZ"/>
+                    </constraints>
+                </view>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="acJ-rr-fZR">
+                    <rect key="frame" x="0.0" y="59" width="393" height="568"/>
+                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                    <connections>
+                        <action selector="cancelAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="NSN-uQ-AAg"/>
+                    </connections>
+                </button>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
+            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/>
+            <constraints>
+                <constraint firstItem="LSz-KU-Ren" firstAttribute="top" secondItem="acJ-rr-fZR" secondAttribute="bottom" id="4cT-Jd-k1O"/>
+                <constraint firstItem="LSz-KU-Ren" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="dwp-pW-dJ7"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="acJ-rr-fZR" secondAttribute="trailing" id="fWv-3E-E9t"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="LSz-KU-Ren" secondAttribute="trailing" id="hF4-yw-8v4"/>
+                <constraint firstAttribute="bottom" secondItem="LSz-KU-Ren" secondAttribute="bottom" id="pK1-DH-wy4"/>
+                <constraint firstItem="acJ-rr-fZR" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="v1B-0R-Pf3"/>
+                <constraint firstItem="acJ-rr-fZR" firstAttribute="top" secondItem="vUN-kp-3ea" secondAttribute="top" id="xKT-Pc-D7t"/>
+            </constraints>
+            <connections>
+                <outlet property="btn_complete" destination="Sfd-UT-Jfh" id="BPN-tH-M8e"/>
+                <outlet property="cons_bottom" destination="pK1-DH-wy4" id="QEE-cE-Vye"/>
+                <outlet property="label_price" destination="Nxc-CP-MV1" id="2th-Tq-1Xv"/>
+                <outlet property="view_container" destination="LSz-KU-Ren" id="Hqz-Fe-kp0"/>
+            </connections>
+            <point key="canvasLocation" x="14.503816793893129" y="19.718309859154932"/>
+        </view>
+    </objects>
+    <resources>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Home/HomeVC.swift b/XQMuse/Root/Home/HomeVC.swift
index dfe8316..7f0097f 100644
--- a/XQMuse/Root/Home/HomeVC.swift
+++ b/XQMuse/Root/Home/HomeVC.swift
@@ -12,6 +12,7 @@
 				var title = ""
 				var subTitle = ""
 				var hasMore:Bool = false
+				var coverImage:String?
 }
 
 class HomeVC: BaseVC {
diff --git a/XQMuse/Root/Other/View/VideoView.swift b/XQMuse/Root/Other/View/VideoView.swift
new file mode 100644
index 0000000..1122ef3
--- /dev/null
+++ b/XQMuse/Root/Other/View/VideoView.swift
@@ -0,0 +1,22 @@
+//
+//  VoiceView.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/19.
+//
+
+import UIKit
+import JQTools
+
+class VideoView: UIView {
+
+				override init(frame: CGRect) {
+								super.init(frame: frame)
+								backgroundColor = .jq_randomColor
+				}
+				
+				required init?(coder: NSCoder) {
+								fatalError("init(coder:) has not been implemented")
+				}
+				
+}
diff --git a/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift b/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift
new file mode 100644
index 0000000..4d36f15
--- /dev/null
+++ b/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift
@@ -0,0 +1,17 @@
+//
+//  PavilionItemCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/19.
+//
+
+import UIKit
+
+class PavilionItemCell: UICollectionViewCell {
+
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        
+    }
+
+}
diff --git a/XQMuse/Root/Pavilion/CCell/PavilionItemCell.xib b/XQMuse/Root/Pavilion/CCell/PavilionItemCell.xib
new file mode 100644
index 0000000..35ab45a
--- /dev/null
+++ b/XQMuse/Root/Pavilion/CCell/PavilionItemCell.xib
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_PavilionItemCell" id="gTV-IL-0wX" customClass="PavilionItemCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="233" height="337"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="233" height="337"/>
+                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="LoX-Q1-cyl">
+                        <rect key="frame" x="5.6666666666666714" y="5.6666666666666714" width="222" height="173.33333333333331"/>
+                        <constraints>
+                            <constraint firstAttribute="width" secondItem="LoX-Q1-cyl" secondAttribute="height" multiplier="1:0.7822" id="32J-aw-3d5"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                            <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                <real key="value" value="10"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BbC-q1-W3U">
+                        <rect key="frame" x="176.33333333333334" y="14" width="42.333333333333343" height="13"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距你0km" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XAi-il-afI">
+                                <rect key="frame" x="5.9999999999999982" y="3" width="30.333333333333329" height="7"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="7"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" red="0.039215686274509803" green="0.25882352941176467" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="trailing" secondItem="XAi-il-afI" secondAttribute="trailing" constant="6" id="p5B-Bt-kkF"/>
+                            <constraint firstItem="XAi-il-afI" firstAttribute="leading" secondItem="BbC-q1-W3U" secondAttribute="leading" constant="6" id="qWE-hu-Gof"/>
+                            <constraint firstAttribute="height" constant="13" id="qfv-yR-XjE"/>
+                            <constraint firstAttribute="bottom" secondItem="XAi-il-afI" secondAttribute="bottom" constant="3" id="rnJ-cu-ove"/>
+                            <constraint firstItem="XAi-il-afI" firstAttribute="top" secondItem="BbC-q1-W3U" secondAttribute="top" constant="3" id="yQc-e7-Hyw"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                            <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                <real key="value" value="6.5"/>
+                            </userDefinedRuntimeAttribute>
+                        </userDefinedRuntimeAttributes>
+                    </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xE9-lZ-06u">
+                        <rect key="frame" x="15" y="194" width="203" height="15.666666666666657"/>
+                        <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
+                        <color key="textColor" red="0.039215686270000001" green="0.25882352939999997" blue="0.074509803920000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_local" translatesAutoresizingMaskIntoConstraints="NO" id="Mdg-Ka-kmF">
+                        <rect key="frame" x="15" y="222.33333333333334" width="8" height="10"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="10" id="0ig-xy-gm1"/>
+                            <constraint firstAttribute="width" constant="8" id="Yc8-PA-tQC"/>
+                        </constraints>
+                    </imageView>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_phone" translatesAutoresizingMaskIntoConstraints="NO" id="YoC-3O-9D8">
+                        <rect key="frame" x="15" y="238.33333333333334" width="8.6666666666666643" height="8.3333333333333428"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="8.5" id="G3j-1r-zaW"/>
+                            <constraint firstAttribute="height" constant="8.5" id="ySL-OJ-TRU"/>
+                        </constraints>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yck-TZ-33e">
+                        <rect key="frame" x="28" y="222.33333333333334" width="200" height="9.6666666666666572"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="8"/>
+                        <color key="textColor" red="0.33725490196078434" green="0.33725490196078434" blue="0.33725490196078434" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ig6-yP-XKK">
+                        <rect key="frame" x="28.666666666666671" y="237.66666666666666" width="22" height="9.6666666666666572"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="8"/>
+                        <color key="textColor" red="0.33725490200000002" green="0.33725490200000002" blue="0.33725490200000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                </subviews>
+            </view>
+            <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
+            <constraints>
+                <constraint firstItem="Yck-TZ-33e" firstAttribute="leading" secondItem="Mdg-Ka-kmF" secondAttribute="trailing" constant="5" id="03Z-wu-01o"/>
+                <constraint firstAttribute="trailing" secondItem="xE9-lZ-06u" secondAttribute="trailing" constant="15" id="1kY-DQ-Phl"/>
+                <constraint firstItem="YoC-3O-9D8" firstAttribute="centerY" secondItem="Ig6-yP-XKK" secondAttribute="centerY" id="9kA-1M-wyQ"/>
+                <constraint firstItem="Mdg-Ka-kmF" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="15" id="9xt-cg-4MP"/>
+                <constraint firstItem="YoC-3O-9D8" firstAttribute="leading" secondItem="Mdg-Ka-kmF" secondAttribute="leading" id="Dye-2Q-pu5"/>
+                <constraint firstAttribute="trailing" secondItem="BbC-q1-W3U" secondAttribute="trailing" constant="14.5" id="RmE-Go-5pC"/>
+                <constraint firstItem="YoC-3O-9D8" firstAttribute="top" secondItem="Mdg-Ka-kmF" secondAttribute="bottom" constant="6" id="UOh-W8-U3y"/>
+                <constraint firstItem="Mdg-Ka-kmF" firstAttribute="centerY" secondItem="Yck-TZ-33e" secondAttribute="centerY" id="VYP-Jc-YgA"/>
+                <constraint firstItem="LoX-Q1-cyl" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="5.5" id="ca0-yW-lIs"/>
+                <constraint firstAttribute="trailing" secondItem="Yck-TZ-33e" secondAttribute="trailing" constant="5" id="jWj-9I-o8E"/>
+                <constraint firstItem="xE9-lZ-06u" firstAttribute="top" secondItem="LoX-Q1-cyl" secondAttribute="bottom" constant="15" id="jvA-zt-t78"/>
+                <constraint firstItem="Ig6-yP-XKK" firstAttribute="leading" secondItem="YoC-3O-9D8" secondAttribute="trailing" constant="5" id="paX-bY-tAA"/>
+                <constraint firstItem="LoX-Q1-cyl" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="5.5" id="qrh-uT-bAw"/>
+                <constraint firstItem="BbC-q1-W3U" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="14" id="rwk-JY-hvm"/>
+                <constraint firstItem="Mdg-Ka-kmF" firstAttribute="top" secondItem="xE9-lZ-06u" secondAttribute="bottom" constant="12.5" id="tys-k5-Nad"/>
+                <constraint firstAttribute="trailing" secondItem="LoX-Q1-cyl" secondAttribute="trailing" constant="5.5" id="xVq-Xx-rKg"/>
+                <constraint firstItem="xE9-lZ-06u" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="15" id="yl4-HG-eHc"/>
+            </constraints>
+            <size key="customSize" width="233" height="337"/>
+            <point key="canvasLocation" x="156.4885496183206" y="120.77464788732395"/>
+        </collectionViewCell>
+    </objects>
+    <resources>
+        <image name="icon_local" width="8" height="10"/>
+        <image name="icon_phone" width="8.6666669845581055" height="8.6666669845581055"/>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Pavilion/PavilionVC.swift b/XQMuse/Root/Pavilion/PavilionVC.swift
index bf5f423..f8b5ccf 100644
--- a/XQMuse/Root/Pavilion/PavilionVC.swift
+++ b/XQMuse/Root/Pavilion/PavilionVC.swift
@@ -6,24 +6,79 @@
 //
 
 import UIKit
+import JQTools
 
 class PavilionVC: BaseVC {
-
+				@IBOutlet weak var collectionView: UICollectionView!
+				
     override func viewDidLoad() {
         super.viewDidLoad()
 
-        // Do any additional setup after loading the view.
     }
-    
 
-    /*
-    // MARK: - Navigation
+				override func setUI() {
+								super.setUI()
+								view.backgroundColor = UIColor(hexString: "#f6f6f6")
+								collectionView.delegate = self
+								collectionView.dataSource = self
+								collectionView.backgroundColor = .clear
+								collectionView.showsVerticalScrollIndicator = false
+								collectionView.backgroundColor = .clear
+								collectionView.contentInset = UIEdgeInsets(top: 0, left: 28.5, bottom: 0, right: 28.5)
+								collectionView.register(UINib(nibName: "PavilionItemCell", bundle: nil), forCellWithReuseIdentifier: "_PavilionItemCell")
+				}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
-    }
-    */
 
+				@IBAction func searchAction(_ sender: Any) {
+								let searchVC = PavilionSearchVC()
+								push(vc: searchVC)
+				}
+				
 }
+
+extension PavilionVC:UICollectionViewDelegate{
+				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+								let detailVC = PavilionDetailVC()
+								push(vc: detailVC)
+				}
+}
+
+extension PavilionVC:UICollectionViewDataSource{
+				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+
+								 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_PavilionItemCell", for: indexPath) as! PavilionItemCell
+								cell.backgroundColor = .jq_randomColor
+								cell.jq_cornerRadius = 16
+								return cell
+
+				}
+				
+
+				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+								return 10
+				}
+}
+
+extension PavilionVC:UICollectionViewDelegateFlowLayout{
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
+								return 25.5
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
+								return 19
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+								let w = (JQ_ScreenW - 28.5 * 2 - 19) / 2.0
+								let h = w * 1.2681
+								return CGSizeMake(w, h)
+				}
+}
+
+//extension PavilionVC:UITextFieldDelegate{
+//				func textFieldShouldReturn(_ textField: UITextField) -> Bool {
+//								textField.endEditing(true)
+//
+//								return true
+//				}
+//}
diff --git a/XQMuse/Root/Pavilion/PavilionVC.xib b/XQMuse/Root/Pavilion/PavilionVC.xib
new file mode 100644
index 0000000..513fbb5
--- /dev/null
+++ b/XQMuse/Root/Pavilion/PavilionVC.xib
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PavilionVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <outlet property="collectionView" destination="cjl-Fc-U1i" id="Blo-Vw-cm2"/>
+                <outlet property="view" destination="iN0-l3-epB" id="TNR-nf-b4z"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X4g-Ky-JIp">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="353.66666666666669"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_pavilion_top" translatesAutoresizingMaskIntoConstraints="NO" id="9FL-8Y-YIj">
+                            <rect key="frame" x="0.0" y="0.0" width="393" height="353.66666666666669"/>
+                        </imageView>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LKK-7W-RbW" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
+                            <rect key="frame" x="34.666666666666657" y="197.33333333333334" width="324" height="49"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_search" translatesAutoresizingMaskIntoConstraints="NO" id="Mwd-c6-yJX">
+                                    <rect key="frame" x="34.000000000000007" y="13.333333333333314" width="22.333333333333336" height="22"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="22" id="eN4-iT-cyW"/>
+                                        <constraint firstAttribute="width" constant="22.5" id="oGb-Nq-91g"/>
+                                    </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="6ui-UR-dzc">
+                                    <rect key="frame" x="68" y="17.333333333333314" width="110.33333333333331" height="14.333333333333336"/>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                                    <color key="textColor" red="0.87058823529411766" green="0.87058823529411766" blue="0.87058823529411766" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="Mwd-c6-yJX" firstAttribute="centerY" secondItem="LKK-7W-RbW" secondAttribute="centerY" id="Uad-y4-m42"/>
+                                <constraint firstAttribute="height" constant="49" id="bjS-vd-uNd"/>
+                                <constraint firstItem="Mwd-c6-yJX" firstAttribute="leading" secondItem="LKK-7W-RbW" secondAttribute="leading" constant="34" id="ctO-99-kI6"/>
+                                <constraint firstItem="6ui-UR-dzc" firstAttribute="leading" secondItem="Mwd-c6-yJX" secondAttribute="trailing" constant="11.5" id="iV1-ou-gTm"/>
+                                <constraint firstItem="6ui-UR-dzc" firstAttribute="centerY" secondItem="Mwd-c6-yJX" secondAttribute="centerY" id="jYK-Cs-afh"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                    <real key="value" value="24.5"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="searchAction:" destination="-1" eventType="touchUpInside" id="x6w-fc-zXP"/>
+                            </connections>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="LKK-7W-RbW" secondAttribute="trailing" constant="34.5" id="5cq-Vm-olB"/>
+                        <constraint firstItem="9FL-8Y-YIj" firstAttribute="top" secondItem="X4g-Ky-JIp" secondAttribute="top" id="EDn-2y-dxo"/>
+                        <constraint firstAttribute="bottom" secondItem="9FL-8Y-YIj" secondAttribute="bottom" id="LDZ-VX-EJY"/>
+                        <constraint firstItem="9FL-8Y-YIj" firstAttribute="leading" secondItem="X4g-Ky-JIp" secondAttribute="leading" id="Qmc-bN-2Sg"/>
+                        <constraint firstAttribute="bottom" secondItem="LKK-7W-RbW" secondAttribute="bottom" constant="107.5" id="Tht-0C-0IE"/>
+                        <constraint firstAttribute="width" secondItem="X4g-Ky-JIp" secondAttribute="height" multiplier="1:0.9" id="hvu-kM-wlK"/>
+                        <constraint firstAttribute="trailing" secondItem="9FL-8Y-YIj" secondAttribute="trailing" id="u4u-po-7lT"/>
+                        <constraint firstItem="LKK-7W-RbW" firstAttribute="leading" secondItem="X4g-Ky-JIp" secondAttribute="leading" constant="34.5" id="zT6-NZ-sT4"/>
+                    </constraints>
+                </view>
+                <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="cjl-Fc-U1i">
+                    <rect key="frame" x="0.0" y="301.33333333333331" width="393" height="516.66666666666674"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="b8V-X4-f6k">
+                        <size key="itemSize" width="128" height="128"/>
+                        <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                        <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                        <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                    </collectionViewFlowLayout>
+                </collectionView>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="cjl-Fc-U1i" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="Di6-35-KpK"/>
+                <constraint firstItem="X4g-Ky-JIp" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="Dps-1n-L79"/>
+                <constraint firstItem="X4g-Ky-JIp" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="PZU-6m-kVv"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="bottom" secondItem="cjl-Fc-U1i" secondAttribute="bottom" id="TDO-TE-7xi"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="cjl-Fc-U1i" secondAttribute="trailing" id="TNn-sQ-vVu"/>
+                <constraint firstItem="cjl-Fc-U1i" firstAttribute="top" secondItem="X4g-Ky-JIp" secondAttribute="bottom" constant="-52.5" id="lcy-0i-Wi9"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="X4g-Ky-JIp" secondAttribute="trailing" id="xr8-4F-iZy"/>
+            </constraints>
+            <point key="canvasLocation" x="14.503816793893129" y="19.718309859154932"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="bg_pavilion_top" width="393.66665649414062" height="352.66665649414062"/>
+        <image name="icon_search" width="22.666666030883789" height="22"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift
new file mode 100644
index 0000000..707b0d0
--- /dev/null
+++ b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift
@@ -0,0 +1,36 @@
+//
+//  PavilionDetailVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/19.
+//
+
+import UIKit
+import JQTools
+import WebKit
+
+class PavilionDetailVC: BaseVC {
+
+				@IBOutlet weak var scrollView: UIScrollView!
+				@IBOutlet weak var webView: WKWebView!
+				@IBOutlet weak var view_bannerBg: UIView!
+
+				override func viewWillAppear(_ animated: Bool) {
+								super.viewWillAppear(animated)
+								(navigationItem.leftBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.white), for: .normal)
+				}
+
+				override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "疗愈馆详情"
+								scrollView.contentInsetAdjustmentBehavior = .never
+								view_bannerBg.backgroundColor = .jq_randomColor
+								webView.scrollView.isScrollEnabled = false
+    }
+
+
+				override var preferredStatusBarStyle: UIStatusBarStyle{
+								return .lightContent
+				}
+
+}
diff --git a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib
new file mode 100644
index 0000000..3234385
--- /dev/null
+++ b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PavilionDetailVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <outlet property="scrollView" destination="yya-lM-LKe" id="3Mj-Nj-oHg"/>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+                <outlet property="view_bannerBg" destination="bRv-iS-Gxa" id="Crd-Q4-llL"/>
+                <outlet property="webView" destination="IFs-PA-QBm" id="Xna-he-6OO"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yya-lM-LKe">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SvO-06-u0I">
+                            <rect key="frame" x="0.0" y="0.0" width="393" height="758.33333333333337"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bRv-iS-Gxa">
+                                    <rect key="frame" x="0.0" y="0.0" width="393" height="314.33333333333331"/>
+                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" secondItem="bRv-iS-Gxa" secondAttribute="height" multiplier="1:0.8" id="AkY-bQ-ulu"/>
+                                    </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="ej2-gY-nmo">
+                                    <rect key="frame" x="26.666666666666671" y="346" width="102.00000000000001" height="24"/>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
+                                    <color key="textColor" red="0.039215686274509803" green="0.25882352941176467" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Xin quan" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mof-4V-8Cf">
+                                    <rect key="frame" x="324.33333333333331" y="352" width="42.333333333333314" height="12"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="10"/>
+                                    <color key="textColor" red="0.039215686270000001" green="0.25882352939999997" blue="0.074509803920000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eFG-qF-ock">
+                                    <rect key="frame" x="27" y="380.33333333333331" width="339" height="0.66666666666668561"/>
+                                    <color key="backgroundColor" red="0.33725490196078434" green="0.33725490196078434" blue="0.33725490196078434" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="0.5" id="7i3-Et-x8a"/>
+                                    </constraints>
+                                </view>
+                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="6.5" translatesAutoresizingMaskIntoConstraints="NO" id="ied-2M-OzN">
+                                    <rect key="frame" x="28" y="393" width="240" height="47.666666666666686"/>
+                                    <subviews>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O2C-vA-cCo">
+                                            <rect key="frame" x="0.0" y="0.0" width="240" height="11.333333333333334"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_phone" translatesAutoresizingMaskIntoConstraints="NO" id="pjg-xX-xV1">
+                                                    <rect key="frame" x="0.0" y="0.66666666666668561" width="9.6666666666666661" height="10"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="9.5" id="66U-WC-bbO"/>
+                                                        <constraint firstAttribute="height" constant="10" id="TLw-b9-1bj"/>
+                                                    </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="fDf-4X-hUI">
+                                                    <rect key="frame" x="16" y="0.0" width="224" height="11"/>
+                                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="9"/>
+                                                    <color key="textColor" red="0.1803921568627451" green="0.1803921568627451" blue="0.1803921568627451" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                            <constraints>
+                                                <constraint firstItem="pjg-xX-xV1" firstAttribute="centerY" secondItem="O2C-vA-cCo" secondAttribute="centerY" id="8eR-ZL-u3N"/>
+                                                <constraint firstItem="fDf-4X-hUI" firstAttribute="centerY" secondItem="O2C-vA-cCo" secondAttribute="centerY" id="CZ0-31-1Ob"/>
+                                                <constraint firstItem="fDf-4X-hUI" firstAttribute="leading" secondItem="pjg-xX-xV1" secondAttribute="trailing" constant="6.5" id="Dco-J0-Uwy"/>
+                                                <constraint firstAttribute="height" constant="11.5" id="Vu6-QA-qoG"/>
+                                                <constraint firstItem="pjg-xX-xV1" firstAttribute="leading" secondItem="O2C-vA-cCo" secondAttribute="leading" id="taF-B9-udb"/>
+                                                <constraint firstAttribute="trailing" secondItem="fDf-4X-hUI" secondAttribute="trailing" id="u9h-ka-MTH"/>
+                                            </constraints>
+                                        </view>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zw1-xu-iJP">
+                                            <rect key="frame" x="0.0" y="18" width="240" height="11.666666666666664"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_local" translatesAutoresizingMaskIntoConstraints="NO" id="9xu-m3-4Al">
+                                                    <rect key="frame" x="0.0" y="0.66666666666668561" width="9.6666666666666661" height="10"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="9.5" id="D7S-8u-g4p"/>
+                                                    </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="28i-aJ-cBs">
+                                                    <rect key="frame" x="16" y="0.33333333333331439" width="224" height="11"/>
+                                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="9"/>
+                                                    <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                            <constraints>
+                                                <constraint firstItem="9xu-m3-4Al" firstAttribute="centerY" secondItem="Zw1-xu-iJP" secondAttribute="centerY" id="Cam-cd-Vyk"/>
+                                                <constraint firstAttribute="height" constant="11.5" id="Iwi-Qa-FDd"/>
+                                                <constraint firstItem="28i-aJ-cBs" firstAttribute="centerY" secondItem="Zw1-xu-iJP" secondAttribute="centerY" id="Kcp-sF-Jz5"/>
+                                                <constraint firstItem="9xu-m3-4Al" firstAttribute="leading" secondItem="Zw1-xu-iJP" secondAttribute="leading" id="UuL-Rl-5Bd"/>
+                                                <constraint firstItem="28i-aJ-cBs" firstAttribute="leading" secondItem="9xu-m3-4Al" secondAttribute="trailing" constant="6.5" id="phb-2w-5ig"/>
+                                                <constraint firstAttribute="trailing" secondItem="28i-aJ-cBs" secondAttribute="trailing" id="u26-L7-Pbp"/>
+                                            </constraints>
+                                        </view>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="D2P-HH-gTE">
+                                            <rect key="frame" x="0.0" y="36.333333333333314" width="240" height="11.333333333333336"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_time_1" translatesAutoresizingMaskIntoConstraints="NO" id="sSU-es-3e5">
+                                                    <rect key="frame" x="0.0" y="0.66666666666668561" width="9.6666666666666661" height="10"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="10" id="pXr-WG-eZY"/>
+                                                        <constraint firstAttribute="width" constant="9.5" id="t2o-QH-14G"/>
+                                                    </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="49g-Ie-o9H">
+                                                    <rect key="frame" x="16" y="0.0" width="224" height="11"/>
+                                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="9"/>
+                                                    <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                            <constraints>
+                                                <constraint firstItem="sSU-es-3e5" firstAttribute="centerY" secondItem="D2P-HH-gTE" secondAttribute="centerY" id="5Tk-01-k1d"/>
+                                                <constraint firstItem="49g-Ie-o9H" firstAttribute="leading" secondItem="sSU-es-3e5" secondAttribute="trailing" constant="6.5" id="96o-XW-Fot"/>
+                                                <constraint firstItem="49g-Ie-o9H" firstAttribute="centerY" secondItem="D2P-HH-gTE" secondAttribute="centerY" id="Nho-fI-tYh"/>
+                                                <constraint firstItem="sSU-es-3e5" firstAttribute="leading" secondItem="D2P-HH-gTE" secondAttribute="leading" id="nrc-Jd-Bjp"/>
+                                                <constraint firstAttribute="trailing" secondItem="49g-Ie-o9H" secondAttribute="trailing" id="rRG-7C-Nzg"/>
+                                                <constraint firstAttribute="height" constant="11.5" id="wRH-kO-e00"/>
+                                            </constraints>
+                                        </view>
+                                    </subviews>
+                                </stackView>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="简介" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dmh-Sc-k0l">
+                                    <rect key="frame" x="26.666666666666671" y="484.33333333333331" width="41" height="24"/>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
+                                    <color key="textColor" red="0.039215686270000001" green="0.25882352939999997" blue="0.074509803920000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="synopsis" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GpL-nu-QRg">
+                                    <rect key="frame" x="324.33333333333331" y="490.33333333333331" width="42.333333333333314" height="12"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="10"/>
+                                    <color key="textColor" red="0.039215686270000001" green="0.25882352939999997" blue="0.074509803920000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oEQ-kJ-4nA">
+                                    <rect key="frame" x="27" y="519.66666666666663" width="339" height="0.66666666666662877"/>
+                                    <color key="backgroundColor" red="0.33725490200000002" green="0.33725490200000002" blue="0.33725490200000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="0.5" id="DIz-JD-EMZ"/>
+                                    </constraints>
+                                </view>
+                                <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IFs-PA-QBm">
+                                    <rect key="frame" x="27" y="539.33333333333337" width="339" height="200"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="200" id="rWr-aC-9mh"/>
+                                    </constraints>
+                                    <wkWebViewConfiguration key="configuration">
+                                        <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                                        <wkPreferences key="preferences"/>
+                                    </wkWebViewConfiguration>
+                                </wkWebView>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="bRv-iS-Gxa" firstAttribute="top" secondItem="SvO-06-u0I" secondAttribute="top" id="6zr-oX-fzV"/>
+                                <constraint firstItem="ied-2M-OzN" firstAttribute="top" secondItem="eFG-qF-ock" secondAttribute="bottom" constant="12" id="Are-Tb-Qeg"/>
+                                <constraint firstItem="eFG-qF-ock" firstAttribute="leading" secondItem="SvO-06-u0I" secondAttribute="leading" constant="27" id="BC0-fp-qkG"/>
+                                <constraint firstItem="ej2-gY-nmo" firstAttribute="leading" secondItem="SvO-06-u0I" secondAttribute="leading" constant="26.5" id="Lqo-QQ-LtF"/>
+                                <constraint firstAttribute="trailing" secondItem="IFs-PA-QBm" secondAttribute="trailing" constant="27" id="MTp-cU-OI2"/>
+                                <constraint firstItem="Dmh-Sc-k0l" firstAttribute="leading" secondItem="SvO-06-u0I" secondAttribute="leading" constant="26.5" id="MeG-Nf-cTv"/>
+                                <constraint firstAttribute="trailing" secondItem="eFG-qF-ock" secondAttribute="trailing" constant="27" id="NBo-De-g2n"/>
+                                <constraint firstAttribute="trailing" secondItem="bRv-iS-Gxa" secondAttribute="trailing" id="NYn-uO-fjQ"/>
+                                <constraint firstItem="bRv-iS-Gxa" firstAttribute="leading" secondItem="SvO-06-u0I" secondAttribute="leading" id="QMU-QN-ZLA"/>
+                                <constraint firstItem="ied-2M-OzN" firstAttribute="leading" secondItem="SvO-06-u0I" secondAttribute="leading" constant="28" id="Rqi-qX-eXu"/>
+                                <constraint firstAttribute="trailing" secondItem="oEQ-kJ-4nA" secondAttribute="trailing" constant="27" id="Sd2-nj-XrL"/>
+                                <constraint firstItem="IFs-PA-QBm" firstAttribute="leading" secondItem="SvO-06-u0I" secondAttribute="leading" constant="27" id="Z2K-qe-Ktl"/>
+                                <constraint firstItem="oEQ-kJ-4nA" firstAttribute="leading" secondItem="SvO-06-u0I" secondAttribute="leading" constant="27" id="ba8-C7-Iqh"/>
+                                <constraint firstAttribute="bottom" secondItem="IFs-PA-QBm" secondAttribute="bottom" constant="19" id="dWt-F0-gfr"/>
+                                <constraint firstItem="IFs-PA-QBm" firstAttribute="top" secondItem="oEQ-kJ-4nA" secondAttribute="bottom" constant="19" id="eF2-JE-MQL"/>
+                                <constraint firstItem="mof-4V-8Cf" firstAttribute="centerY" secondItem="ej2-gY-nmo" secondAttribute="centerY" id="jZv-B2-BSI"/>
+                                <constraint firstItem="GpL-nu-QRg" firstAttribute="centerY" secondItem="Dmh-Sc-k0l" secondAttribute="centerY" id="obV-cX-28h"/>
+                                <constraint firstItem="eFG-qF-ock" firstAttribute="top" secondItem="ej2-gY-nmo" secondAttribute="bottom" constant="10.5" id="qa9-Bi-xv9"/>
+                                <constraint firstItem="ej2-gY-nmo" firstAttribute="top" secondItem="bRv-iS-Gxa" secondAttribute="bottom" constant="31.5" id="qel-uN-FWm"/>
+                                <constraint firstItem="oEQ-kJ-4nA" firstAttribute="top" secondItem="Dmh-Sc-k0l" secondAttribute="bottom" constant="11.5" id="tOQ-TD-dfZ"/>
+                                <constraint firstAttribute="trailing" secondItem="mof-4V-8Cf" secondAttribute="trailing" constant="26.5" id="v3U-ic-0Xj"/>
+                                <constraint firstItem="Dmh-Sc-k0l" firstAttribute="top" secondItem="ied-2M-OzN" secondAttribute="bottom" constant="43.5" id="vMy-Av-7Rs"/>
+                                <constraint firstAttribute="trailing" secondItem="GpL-nu-QRg" secondAttribute="trailing" constant="26.5" id="xsc-7t-LAd"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="SvO-06-u0I" firstAttribute="leading" secondItem="yya-lM-LKe" secondAttribute="leading" id="Aj3-iz-RbA"/>
+                        <constraint firstItem="SvO-06-u0I" firstAttribute="centerX" secondItem="yya-lM-LKe" secondAttribute="centerX" id="PcK-47-WUi"/>
+                        <constraint firstAttribute="trailing" secondItem="SvO-06-u0I" secondAttribute="trailing" id="WYR-TT-BBA"/>
+                        <constraint firstItem="SvO-06-u0I" firstAttribute="top" secondItem="yya-lM-LKe" secondAttribute="top" id="rt0-Dg-OJG"/>
+                        <constraint firstAttribute="bottom" secondItem="SvO-06-u0I" secondAttribute="bottom" id="vke-LX-G0X"/>
+                    </constraints>
+                </scrollView>
+            </subviews>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="yya-lM-LKe" secondAttribute="trailing" id="28E-wm-vmV"/>
+                <constraint firstItem="yya-lM-LKe" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="6e5-We-Cu0"/>
+                <constraint firstAttribute="bottom" secondItem="yya-lM-LKe" secondAttribute="bottom" id="iCP-Oe-Fqr"/>
+                <constraint firstItem="yya-lM-LKe" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="lWY-Wt-eNv"/>
+            </constraints>
+            <point key="canvasLocation" x="14.503816793893129" y="19.718309859154932"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="icon_local" width="8" height="10"/>
+        <image name="icon_phone" width="8.6666669845581055" height="8.6666669845581055"/>
+        <image name="icon_time_1" width="9" height="9"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Pavilion/VC/PavilionSearchVC.swift b/XQMuse/Root/Pavilion/VC/PavilionSearchVC.swift
new file mode 100644
index 0000000..42c9e3f
--- /dev/null
+++ b/XQMuse/Root/Pavilion/VC/PavilionSearchVC.swift
@@ -0,0 +1,78 @@
+//
+//  PavilionSearchVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/19.
+//
+
+import UIKit
+import JQTools
+
+class PavilionSearchVC: BaseVC {
+
+				@IBOutlet weak var tf_search: UITextField!
+				@IBOutlet weak var collectionView: UICollectionView!
+
+				override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "疗愈馆"
+								tf_search.delegate = self
+								tf_search.returnKeyType = .search
+    }
+
+				override func setUI() {
+								super.setUI()
+								view.backgroundColor = UIColor(hexString: "#f6f6f6")
+
+								collectionView.delegate = self
+								collectionView.dataSource = self
+								collectionView.backgroundColor = .clear
+								collectionView.showsVerticalScrollIndicator = false
+								collectionView.backgroundColor = .clear
+								collectionView.contentInset = UIEdgeInsets(top: 0, left: 28.5, bottom: 0, right: 28.5)
+								collectionView.register(UINib(nibName: "PavilionItemCell", bundle: nil), forCellWithReuseIdentifier: "_PavilionItemCell")
+				}
+}
+
+extension PavilionSearchVC:UITextFieldDelegate{
+				func textFieldShouldReturn(_ textField: UITextField) -> Bool {
+								return true
+				}
+}
+
+extension PavilionSearchVC:UICollectionViewDataSource{
+
+				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+								let detailVC = PavilionDetailVC()
+								push(vc: detailVC)
+				}
+				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+
+								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_PavilionItemCell", for: indexPath) as! PavilionItemCell
+								cell.backgroundColor = .jq_randomColor
+								cell.jq_cornerRadius = 16
+								return cell
+
+				}
+
+
+				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+								return 10
+				}
+}
+
+extension PavilionSearchVC:UICollectionViewDelegateFlowLayout{
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
+								return 25.5
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
+								return 19
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+								let w = (JQ_ScreenW - 28.5 * 2 - 19) / 2.0
+								let h = w * 1.2681
+								return CGSizeMake(w, h)
+				}
+}
diff --git a/XQMuse/Root/Pavilion/VC/PavilionSearchVC.xib b/XQMuse/Root/Pavilion/VC/PavilionSearchVC.xib
new file mode 100644
index 0000000..43ec988
--- /dev/null
+++ b/XQMuse/Root/Pavilion/VC/PavilionSearchVC.xib
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PavilionSearchVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <outlet property="collectionView" destination="GII-EZ-ldn" id="2aA-lL-quB"/>
+                <outlet property="tf_search" destination="NAr-DA-yxv" id="5eB-FY-GWu"/>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="amB-PO-kjr">
+                    <rect key="frame" x="21.666666666666657" y="80.666666666666671" width="306" height="49.000000000000014"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_search" translatesAutoresizingMaskIntoConstraints="NO" id="hNQ-kz-xpp">
+                            <rect key="frame" x="34" y="13.333333333333329" width="22.333333333333329" height="22"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="22.5" id="KpR-0C-YFT"/>
+                                <constraint firstAttribute="height" constant="22" id="LHs-vU-Px6"/>
+                            </constraints>
+                        </imageView>
+                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="搜索你附近的疗愈馆" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="NAr-DA-yxv">
+                            <rect key="frame" x="68.000000000000014" y="0.0" width="226.33333333333337" height="49"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="NAr-DA-yxv" secondAttribute="bottom" id="0Sg-DS-zeb"/>
+                        <constraint firstItem="NAr-DA-yxv" firstAttribute="leading" secondItem="hNQ-kz-xpp" secondAttribute="trailing" constant="11.5" id="Qqk-Gb-mjh"/>
+                        <constraint firstItem="NAr-DA-yxv" firstAttribute="top" secondItem="amB-PO-kjr" secondAttribute="top" id="UXp-Jq-JiI"/>
+                        <constraint firstAttribute="height" constant="49" id="bXE-9n-1MF"/>
+                        <constraint firstItem="hNQ-kz-xpp" firstAttribute="centerY" secondItem="amB-PO-kjr" secondAttribute="centerY" id="goC-db-zlE"/>
+                        <constraint firstItem="hNQ-kz-xpp" firstAttribute="leading" secondItem="amB-PO-kjr" secondAttribute="leading" constant="34" id="ix8-dD-VnV"/>
+                        <constraint firstAttribute="trailing" secondItem="NAr-DA-yxv" secondAttribute="trailing" constant="11.5" id="n1k-s3-h9Q"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                            <real key="value" value="24.5"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WvZ-LY-I3P">
+                    <rect key="frame" x="327.66666666666669" y="80.666666666666671" width="65.333333333333314" height="49.000000000000014"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                    <state key="normal" title="取消">
+                        <color key="titleColor" red="0.039215686274509803" green="0.25882352941176467" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                    </state>
+                </button>
+                <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="GII-EZ-ldn">
+                    <rect key="frame" x="0.0" y="149" width="393" height="669"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="Vo5-BY-YbS">
+                        <size key="itemSize" width="128" height="128"/>
+                        <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                        <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                        <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                    </collectionViewFlowLayout>
+                </collectionView>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="amB-PO-kjr" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="21.5" id="0gy-LC-YZa"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="GII-EZ-ldn" secondAttribute="trailing" id="75l-Cx-Qoq"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="WvZ-LY-I3P" secondAttribute="trailing" id="8Yj-48-Lmg"/>
+                <constraint firstItem="WvZ-LY-I3P" firstAttribute="leading" secondItem="amB-PO-kjr" secondAttribute="trailing" id="8ga-y0-OVr"/>
+                <constraint firstItem="amB-PO-kjr" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="21.5" id="Aeg-39-qgf"/>
+                <constraint firstItem="GII-EZ-ldn" firstAttribute="top" secondItem="amB-PO-kjr" secondAttribute="bottom" constant="19.5" id="HRU-9e-XkR"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="GII-EZ-ldn" secondAttribute="bottom" id="SUx-Iy-v23"/>
+                <constraint firstItem="WvZ-LY-I3P" firstAttribute="bottom" secondItem="amB-PO-kjr" secondAttribute="bottom" id="XlE-ab-52s"/>
+                <constraint firstAttribute="trailing" secondItem="amB-PO-kjr" secondAttribute="trailing" constant="65.5" id="dnQ-Xn-12W"/>
+                <constraint firstItem="GII-EZ-ldn" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="ofV-Jz-9c2"/>
+                <constraint firstItem="WvZ-LY-I3P" firstAttribute="top" secondItem="amB-PO-kjr" secondAttribute="top" id="sPA-hk-IRk"/>
+            </constraints>
+            <point key="canvasLocation" x="110.68702290076335" y="20.422535211267608"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="icon_search" width="22.666666030883789" height="22"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/SceneDelegate.swift b/XQMuse/SceneDelegate.swift
index 7be5b9f..78438cd 100644
--- a/XQMuse/SceneDelegate.swift
+++ b/XQMuse/SceneDelegate.swift
@@ -29,6 +29,7 @@
 					let tabbar = BaseTabBarVC()
 					window?.rootViewController = tabbar
 					window?.makeKeyAndVisible()
+					tabbar.selectedIndex = 0
 
 					SVProgressHUD.setContainerView(window)
 					SVProgressHUD.setDefaultStyle(.dark)

--
Gitblit v1.7.1