From 5ca691ec52cb4bb64841b0d85252af762e48c2ca Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期四, 22 八月 2024 14:58:07 +0800
Subject: [PATCH] fix UI

---
 XQMuse/Root/Me/VC/SpendingDetailContentVC.swift                            |   65 +
 XQMuse/Root/Me/VC/WalletVC.xib                                             |   17 
 XQMuse/Root/Me/VC/SpendingDetailVC.swift                                   |   96 ++
 XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/bg_watch@3x.png       |    0 
 XQMuse/Root/Me/VC/WalletVC.swift                                           |   19 
 XQMuse/Root/Me/TCell/ContactCustomerTCell.xib                              |   69 +
 XQMuse/Root/Me/VC/WatchHistoryVC.swift                                     |  128 +++
 XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/icon_unline_1@2x.png   |    0 
 XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/Contents.json          |   22 
 XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift                               |   66 +
 XQMuse/Root/Me/VC/SpendingDetailInfoVC.swift                               |   26 
 XQMuse.xcodeproj/project.pbxproj                                           |   80 ++
 XQMuse/Root/Me/VC/ContactCustomerVC.swift                                  |   42 +
 XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/Contents.json        |   22 
 XQMuse/Root/Me/VC/SpendingDetailMenuVC.swift                               |   53 +
 XQMuse/Root/Me/VC/UserProfileVC.swift                                      |  104 ++
 XQMuse/Root/Other/View/CommonAlertSheetView.xib                            |   17 
 XQMuse/Root/Me/TCell/SpendingDetailContentTCell.swift                      |   16 
 XQMuse/Root/Me/VC/SpendingDetailInfoVC.xib                                 |  231 ++++++
 XQMuse/Root/Me/VC/WalletRechargeVC.xib                                     |    3 
 XQMuse/Root/Me/VC/WalletRechargeVC.swift                                   |   86 ++
 XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/icon_question@2x.png |    0 
 XQMuse/Root/Me/VC/ContactCustomerDetailVC.swift                            |   27 
 XQMuse/Root/Me/TCell/SpendingDetailContentTCell.xib                        |   77 ++
 XQMuse/Root/Me/VC/ContactCustomerDetailVC.xib                              |  119 +++
 XQMuse/Root/Home/HomeVC.swift                                              |    3 
 XQMuse/Root/Me/MeVC.swift                                                  |   12 
 XQMuse/Root/Me/VC/WatchHistoryVC.xib                                       |  152 ++++
 XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/Contents.json         |   22 
 XQMuse/Root/Me/VC/SpendingDetailHeaderVC.xib                               |  110 +++
 XQMuse/Root/Home/VC/PaymentOrderVC.xib                                     |    4 
 XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/icon_question@3x.png |    0 
 XQMuse/Root/Me/VC/MyCommentListVC.swift                                    |   15 
 XQMuse/Root/Me/VC/SpendingDetailHeaderVC.swift                             |   21 
 XQMuse/Root/Other/View/CommonAlertSheetView.swift                          |   12 
 XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/icon_unline_1@3x.png   |    0 
 XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/bg_watch@2x.png       |    0 
 XQMuse/Root/Me/VC/ContactCustomerVC.xib                                    |   95 ++
 XQMuse/Root/Me/TCell/ContactCustomerTCell.swift                            |   16 
 XQMuse/Root/Other/View/BitrhdayPickerView.swift                            |  292 ++++++++
 40 files changed, 2,099 insertions(+), 40 deletions(-)

diff --git a/XQMuse.xcodeproj/project.pbxproj b/XQMuse.xcodeproj/project.pbxproj
index 6af2c23..33a787f 100644
--- a/XQMuse.xcodeproj/project.pbxproj
+++ b/XQMuse.xcodeproj/project.pbxproj
@@ -19,6 +19,13 @@
 		130B765A2C6C4963006371AF /* HomeRelaxVoiceCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130B76582C6C4963006371AF /* HomeRelaxVoiceCCell.xib */; };
 		130B765D2C6C4C33006371AF /* HomeItemListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130B765B2C6C4C33006371AF /* HomeItemListVC.swift */; };
 		130B765E2C6C4C33006371AF /* HomeItemListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130B765C2C6C4C33006371AF /* HomeItemListVC.xib */; };
+		130C07032C76D10B00ADB098 /* SpendingDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130C07022C76D10B00ADB098 /* SpendingDetailVC.swift */; };
+		130C07052C76D1A000ADB098 /* SpendingDetailHeaderVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130C07042C76D1A000ADB098 /* SpendingDetailHeaderVC.swift */; };
+		130C07072C76D1BF00ADB098 /* SpendingDetailMenuVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130C07062C76D1BF00ADB098 /* SpendingDetailMenuVC.swift */; };
+		130C07092C76D51900ADB098 /* SpendingDetailHeaderVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130C07082C76D51900ADB098 /* SpendingDetailHeaderVC.xib */; };
+		130C070B2C76D8F200ADB098 /* SpendingDetailContentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130C070A2C76D8F200ADB098 /* SpendingDetailContentVC.swift */; };
+		130C07122C76DA0500ADB098 /* SpendingDetailContentTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130C07112C76DA0500ADB098 /* SpendingDetailContentTCell.xib */; };
+		130C07132C76DA0500ADB098 /* SpendingDetailContentTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130C07102C76DA0500ADB098 /* SpendingDetailContentTCell.swift */; };
 		130ED7E72C6AEF5900D0736E /* Home_Style_4_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130ED7E52C6AEF5900D0736E /* Home_Style_4_TCell.swift */; };
 		130ED7E82C6AEF5900D0736E /* Home_Style_4_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130ED7E62C6AEF5900D0736E /* Home_Style_4_TCell.xib */; };
 		130ED7ED2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130ED7EB2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib */; };
@@ -46,16 +53,29 @@
 		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 */; };
+		1338A6DD2C76DD5E006CDD15 /* SpendingDetailInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1338A6DB2C76DD5E006CDD15 /* SpendingDetailInfoVC.swift */; };
+		1338A6DE2C76DD5E006CDD15 /* SpendingDetailInfoVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1338A6DC2C76DD5E006CDD15 /* SpendingDetailInfoVC.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 */; };
+		134803D32C76E29E00F4FDDA /* MyCommentListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134803D22C76E29E00F4FDDA /* MyCommentListVC.swift */; };
+		134803D62C76E3E000F4FDDA /* WatchHistoryVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134803D42C76E3E000F4FDDA /* WatchHistoryVC.swift */; };
+		134803D72C76E3E000F4FDDA /* WatchHistoryVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134803D52C76E3E000F4FDDA /* WatchHistoryVC.xib */; };
+		134803D92C76ED6400F4FDDA /* WatchHistoryDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134803D82C76ED6400F4FDDA /* WatchHistoryDetailVC.swift */; };
+		134803DC2C7707BA00F4FDDA /* ContactCustomerVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134803DA2C7707BA00F4FDDA /* ContactCustomerVC.swift */; };
+		134803DD2C7707BA00F4FDDA /* ContactCustomerVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134803DB2C7707BA00F4FDDA /* ContactCustomerVC.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 */; };
+		13649F9A2C7709CD00F4E0EE /* ContactCustomerTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13649F992C7709CD00F4E0EE /* ContactCustomerTCell.xib */; };
+		13649F9B2C7709CD00F4E0EE /* ContactCustomerTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13649F982C7709CD00F4E0EE /* ContactCustomerTCell.swift */; };
+		13649F9E2C770C9C00F4E0EE /* ContactCustomerDetailVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13649F9D2C770C9C00F4E0EE /* ContactCustomerDetailVC.xib */; };
+		13649F9F2C770C9C00F4E0EE /* ContactCustomerDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13649F9C2C770C9C00F4E0EE /* ContactCustomerDetailVC.swift */; };
+		136C7C7D2C7715C9004540CD /* BitrhdayPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 136C7C7C2C7715C9004540CD /* BitrhdayPickerView.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 */; };
@@ -195,6 +215,13 @@
 		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>"; };
 		130B765C2C6C4C33006371AF /* HomeItemListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeItemListVC.xib; sourceTree = "<group>"; };
+		130C07022C76D10B00ADB098 /* SpendingDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpendingDetailVC.swift; sourceTree = "<group>"; };
+		130C07042C76D1A000ADB098 /* SpendingDetailHeaderVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpendingDetailHeaderVC.swift; sourceTree = "<group>"; };
+		130C07062C76D1BF00ADB098 /* SpendingDetailMenuVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpendingDetailMenuVC.swift; sourceTree = "<group>"; };
+		130C07082C76D51900ADB098 /* SpendingDetailHeaderVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SpendingDetailHeaderVC.xib; sourceTree = "<group>"; };
+		130C070A2C76D8F200ADB098 /* SpendingDetailContentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpendingDetailContentVC.swift; sourceTree = "<group>"; };
+		130C07102C76DA0500ADB098 /* SpendingDetailContentTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpendingDetailContentTCell.swift; sourceTree = "<group>"; };
+		130C07112C76DA0500ADB098 /* SpendingDetailContentTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SpendingDetailContentTCell.xib; sourceTree = "<group>"; };
 		130ED7E52C6AEF5900D0736E /* Home_Style_4_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Home_Style_4_TCell.swift; sourceTree = "<group>"; };
 		130ED7E62C6AEF5900D0736E /* Home_Style_4_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Home_Style_4_TCell.xib; sourceTree = "<group>"; };
 		130ED7EB2C6AF05C00D0736E /* Home_Style_4_Inner_CCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = Home_Style_4_Inner_CCell.xib; sourceTree = "<group>"; };
@@ -222,16 +249,29 @@
 		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>"; };
+		1338A6DB2C76DD5E006CDD15 /* SpendingDetailInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpendingDetailInfoVC.swift; sourceTree = "<group>"; };
+		1338A6DC2C76DD5E006CDD15 /* SpendingDetailInfoVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SpendingDetailInfoVC.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>"; };
+		134803D22C76E29E00F4FDDA /* MyCommentListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCommentListVC.swift; sourceTree = "<group>"; };
+		134803D42C76E3E000F4FDDA /* WatchHistoryVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchHistoryVC.swift; sourceTree = "<group>"; };
+		134803D52C76E3E000F4FDDA /* WatchHistoryVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WatchHistoryVC.xib; sourceTree = "<group>"; };
+		134803D82C76ED6400F4FDDA /* WatchHistoryDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchHistoryDetailVC.swift; sourceTree = "<group>"; };
+		134803DA2C7707BA00F4FDDA /* ContactCustomerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactCustomerVC.swift; sourceTree = "<group>"; };
+		134803DB2C7707BA00F4FDDA /* ContactCustomerVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ContactCustomerVC.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>"; };
+		13649F982C7709CD00F4E0EE /* ContactCustomerTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactCustomerTCell.swift; sourceTree = "<group>"; };
+		13649F992C7709CD00F4E0EE /* ContactCustomerTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ContactCustomerTCell.xib; sourceTree = "<group>"; };
+		13649F9C2C770C9C00F4E0EE /* ContactCustomerDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactCustomerDetailVC.swift; sourceTree = "<group>"; };
+		13649F9D2C770C9C00F4E0EE /* ContactCustomerDetailVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ContactCustomerDetailVC.xib; sourceTree = "<group>"; };
+		136C7C7C2C7715C9004540CD /* BitrhdayPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BitrhdayPickerView.swift; 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>"; };
@@ -413,6 +453,21 @@
 				13271D842C75EF8200DE1328 /* AddBankInfoVC.xib */,
 				13EA70022C75FA16005DF280 /* WalletRechargeVC.swift */,
 				13EA70032C75FA16005DF280 /* WalletRechargeVC.xib */,
+				130C07022C76D10B00ADB098 /* SpendingDetailVC.swift */,
+				130C07042C76D1A000ADB098 /* SpendingDetailHeaderVC.swift */,
+				130C07062C76D1BF00ADB098 /* SpendingDetailMenuVC.swift */,
+				130C07082C76D51900ADB098 /* SpendingDetailHeaderVC.xib */,
+				130C070A2C76D8F200ADB098 /* SpendingDetailContentVC.swift */,
+				1338A6DB2C76DD5E006CDD15 /* SpendingDetailInfoVC.swift */,
+				1338A6DC2C76DD5E006CDD15 /* SpendingDetailInfoVC.xib */,
+				134803D22C76E29E00F4FDDA /* MyCommentListVC.swift */,
+				134803D42C76E3E000F4FDDA /* WatchHistoryVC.swift */,
+				134803D52C76E3E000F4FDDA /* WatchHistoryVC.xib */,
+				134803D82C76ED6400F4FDDA /* WatchHistoryDetailVC.swift */,
+				134803DA2C7707BA00F4FDDA /* ContactCustomerVC.swift */,
+				134803DB2C7707BA00F4FDDA /* ContactCustomerVC.xib */,
+				13649F9C2C770C9C00F4E0EE /* ContactCustomerDetailVC.swift */,
+				13649F9D2C770C9C00F4E0EE /* ContactCustomerDetailVC.xib */,
 			);
 			path = VC;
 			sourceTree = "<group>";
@@ -740,6 +795,10 @@
 				13A0A8AD2C74757200DF08B6 /* MessageTCell.xib */,
 				13FCCE242C75E8C400AC7E02 /* BankInfoTCell.swift */,
 				13FCCE252C75E8C400AC7E02 /* BankInfoTCell.xib */,
+				130C07102C76DA0500ADB098 /* SpendingDetailContentTCell.swift */,
+				130C07112C76DA0500ADB098 /* SpendingDetailContentTCell.xib */,
+				13649F982C7709CD00F4E0EE /* ContactCustomerTCell.swift */,
+				13649F992C7709CD00F4E0EE /* ContactCustomerTCell.xib */,
 			);
 			path = TCell;
 			sourceTree = "<group>";
@@ -747,6 +806,7 @@
 		13D256B52C6C68EB006FC2D7 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				136C7C7C2C7715C9004540CD /* BitrhdayPickerView.swift */,
 				13F24E432C75901500D2BA90 /* CommonAlertView.swift */,
 				13F24E442C75901600D2BA90 /* CommonAlertView.xib */,
 				13A0A8A42C746B5600DF08B6 /* CommonDatePickerView.swift */,
@@ -898,14 +958,17 @@
 				137ABE352C6B3F64003A91C5 /* ForgotPasswordVC.xib in Resources */,
 				13A0A8A52C746B5600DF08B6 /* CommonDatePickerView.xib in Resources */,
 				13A37A012C75C1DE0038D5C8 /* LevelVC.xib in Resources */,
+				130C07092C76D51900ADB098 /* SpendingDetailHeaderVC.xib in Resources */,
 				138FE0DF2C757B2A00A964E8 /* BindPhone_1_VC.xib in Resources */,
 				13FB6D842C6EEFE900A0685D /* MenuListTCell.xib in Resources */,
 				138F0C362C7597CA0072A16C /* HelpCenterVC.xib in Resources */,
+				134803D72C76E3E000F4FDDA /* WatchHistoryVC.xib in Resources */,
 				1377768E2C6AFD25004FF994 /* LoginVC.xib in Resources */,
 				134CC7E02C73283700EAEFB7 /* PavilionSearchVC.xib in Resources */,
 				130913EE2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.xib in Resources */,
 				13CBCCE02C74793D00C67701 /* NoticeCenterSysDetailVC.xib in Resources */,
 				130ED7E82C6AEF5900D0736E /* Home_Style_4_TCell.xib in Resources */,
+				13649F9A2C7709CD00F4E0EE /* ContactCustomerTCell.xib in Resources */,
 				13391E022C73334000B9513F /* PavilionDetailVC.xib in Resources */,
 				13EC08902C74990B00E00128 /* EmptyCCell.xib in Resources */,
 				1377B4172C6DCC4300CF7CA5 /* Home_Style_4_Inner_1_CCell.xib in Resources */,
@@ -924,6 +987,7 @@
 				137175C82C6C3C6D00B38EF1 /* Agenda-Light.otf in Resources */,
 				13CBCCE42C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.xib in Resources */,
 				13985DA22C69B2440046B6DC /* Base in Resources */,
+				13649F9E2C770C9C00F4E0EE /* ContactCustomerDetailVC.xib in Resources */,
 				134783D12C6C86F40096C736 /* PlaySettingView.xib in Resources */,
 				138FE0E32C757DE900A964E8 /* BindPhone_2_VC.xib in Resources */,
 				139C165A2C6A053000A924D9 /* Home_Style_2_TCell.xib in Resources */,
@@ -938,6 +1002,7 @@
 				13985DBF2C69DDF90046B6DC /* HomeTopMenuView.xib in Resources */,
 				1385E00B2C6C57A900AADB1F /* HomeItemDetailVC.xib in Resources */,
 				13B021DB2C75DD0600414769 /* BankWithdrawVC.xib in Resources */,
+				1338A6DE2C76DD5E006CDD15 /* SpendingDetailInfoVC.xib in Resources */,
 				137ABE3C2C6B6BDD003A91C5 /* ForgotPasswordInputCodeVC.xib in Resources */,
 				13EA70052C75FA16005DF280 /* WalletRechargeVC.xib in Resources */,
 				13A0A8AE2C74757200DF08B6 /* MessageTCell.xib in Resources */,
@@ -947,12 +1012,14 @@
 				131E75C42C6B87C500E2C85D /* ForgotPasswordChangeVC.xib in Resources */,
 				1333DC792C72D8C400D8ACAE /* CourseDetail_3_TCell.xib in Resources */,
 				13A659462C6F4B9E00F731FA /* CourseDetail_1_TCell.xib in Resources */,
+				134803DD2C7707BA00F4FDDA /* ContactCustomerVC.xib in Resources */,
 				13334FD72C731E0B00914086 /* PavilionVC.xib in Resources */,
 				139C16642C6A108A00A924D9 /* HomeRelaxBannerCCell.xib in Resources */,
 				13E0FBFB2C6C8BE3009997AE /* CountdownChooseListView.xib in Resources */,
 				13A0A89F2C746A8700DF08B6 /* CommonAlertSheetView.xib in Resources */,
 				13F24E462C75901600D2BA90 /* CommonAlertView.xib in Resources */,
 				130B765A2C6C4963006371AF /* HomeRelaxVoiceCCell.xib in Resources */,
+				130C07122C76DA0500ADB098 /* SpendingDetailContentTCell.xib in Resources */,
 				13E160202C6CB8930027F781 /* CommentListVC.xib in Resources */,
 				139228B12C6B8374006F3CB6 /* Popup_1_View.xib in Resources */,
 			);
@@ -1013,6 +1080,8 @@
 				13D256B42C6C68E7006FC2D7 /* ShareView.swift in Sources */,
 				139466472C6B8E0200F6FB15 /* UpdatePhoneVC.swift in Sources */,
 				13A37A002C75C1DE0038D5C8 /* LevelVC.swift in Sources */,
+				130C07072C76D1BF00ADB098 /* SpendingDetailMenuVC.swift in Sources */,
+				130C07032C76D10B00ADB098 /* SpendingDetailVC.swift in Sources */,
 				137175CB2C6C412A00B38EF1 /* BackgroundVoiceVC.swift in Sources */,
 				137776922C6AFE69004FF994 /* SearchVC.swift in Sources */,
 				13B021DC2C75DD0600414769 /* BankWithdrawVC.swift in Sources */,
@@ -1026,6 +1095,7 @@
 				13985DAF2C69B7B00046B6DC /* BaseNav.swift in Sources */,
 				134A45352C6E0E0000538D78 /* CourseVCTeacherSpecialVC.swift in Sources */,
 				134A45392C6E167D00538D78 /* CourseOfficalCommendTopCCell.swift in Sources */,
+				1338A6DD2C76DD5E006CDD15 /* SpendingDetailInfoVC.swift in Sources */,
 				138FE0E22C757DE900A964E8 /* BindPhone_2_VC.swift in Sources */,
 				13985D982C69B2410046B6DC /* SceneDelegate.swift in Sources */,
 				13985DBD2C69DDF30046B6DC /* HomeTopMenuView.swift in Sources */,
@@ -1033,6 +1103,7 @@
 				13CBCCDF2C74793D00C67701 /* NoticeCenterSysDetailVC.swift in Sources */,
 				13F24E452C75901600D2BA90 /* CommonAlertView.swift in Sources */,
 				1385E0062C6C558200AADB1F /* HomeRelaxBanner_2_CCell.swift in Sources */,
+				13649F9B2C7709CD00F4E0EE /* ContactCustomerTCell.swift in Sources */,
 				130913EB2C6DE33200418201 /* PaymentOrderResultVC.swift in Sources */,
 				13A0A8AF2C74757200DF08B6 /* MessageTCell.swift in Sources */,
 				13FB6D7E2C6EE27100A0685D /* CourseOfficialItemCCell.swift in Sources */,
@@ -1042,6 +1113,7 @@
 				139C16602C6A0FBB00A924D9 /* TestLeftRightCollectionViewFlowLayout.swift in Sources */,
 				13985DC72C69E9550046B6DC /* CourseVC.swift in Sources */,
 				13A379FD2C75B7280038D5C8 /* BindAccountVC.swift in Sources */,
+				130C07132C76DA0500ADB098 /* SpendingDetailContentTCell.swift in Sources */,
 				1385E0022C6C4F1200AADB1F /* Services.swift in Sources */,
 				13FB6D8A2C6EFB4D00A0685D /* CourseDetailHeaderView.swift in Sources */,
 				13985DB82C69B80D0046B6DC /* Themes.swift in Sources */,
@@ -1054,6 +1126,7 @@
 				13CBCCE32C747C3D00C67701 /* NoticeCenterUserRepeaceDetailVC.swift in Sources */,
 				138FE0DE2C757B2A00A964E8 /* BindPhone_1_VC.swift in Sources */,
 				13A0A8A62C746B5600DF08B6 /* CommonDatePickerView.swift in Sources */,
+				130C07052C76D1A000ADB098 /* SpendingDetailHeaderVC.swift in Sources */,
 				13EFCDC12C6DD27A00B51AE6 /* PaymentOrderVC.swift in Sources */,
 				13985DCE2C69EA160046B6DC /* MeVC.swift in Sources */,
 				13A0A8AA2C74740800DF08B6 /* NoticeCenterVC.swift in Sources */,
@@ -1071,6 +1144,7 @@
 				13985DB12C69B7B00046B6DC /* BaseVC.swift in Sources */,
 				13985DD52C69FC1F0046B6DC /* Home_Style_1_TCell.swift in Sources */,
 				132EB01C2C6B32B200990429 /* RegisterVC.swift in Sources */,
+				134803DC2C7707BA00F4FDDA /* ContactCustomerVC.swift in Sources */,
 				1331391B2C742A0C009E179E /* UserProfileVC.swift in Sources */,
 				13E0FBF92C6C8BDE009997AE /* CountdownChooseListView.swift in Sources */,
 				13A659472C6F4B9E00F731FA /* CourseDetail_1_TCell.swift in Sources */,
@@ -1089,11 +1163,14 @@
 				13334FD52C731C1B00914086 /* VideoView.swift in Sources */,
 				13FF0B452C75C820008E26CF /* WalletVC.swift in Sources */,
 				130ED7E72C6AEF5900D0736E /* Home_Style_4_TCell.swift in Sources */,
+				130C070B2C76D8F200ADB098 /* SpendingDetailContentVC.swift in Sources */,
 				13EC08912C74990B00E00128 /* EmptyCCell.swift in Sources */,
 				13F24E422C758DF100D2BA90 /* LogoutAccountVC.swift in Sources */,
+				13649F9F2C770C9C00F4E0EE /* ContactCustomerDetailVC.swift in Sources */,
 				130913EF2C6DE67E00418201 /* HomeRelaxBanner_2_1_CCell.swift in Sources */,
 				1333DC7A2C72D8C400D8ACAE /* CourseDetail_3_TCell.swift in Sources */,
 				1300BD3C2C6DFB1C000BCA5E /* VIPCenterVC.swift in Sources */,
+				134803D62C76E3E000F4FDDA /* WatchHistoryVC.swift in Sources */,
 				1377B4162C6DCC4300CF7CA5 /* Home_Style_4_Inner_1_CCell.swift in Sources */,
 				13E160212C6CB8930027F781 /* CommentListVC.swift in Sources */,
 				13A0A89E2C746A8700DF08B6 /* CommonAlertSheetView.swift in Sources */,
@@ -1101,10 +1178,13 @@
 				137ABE3B2C6B6BDD003A91C5 /* ForgotPasswordInputCodeVC.swift in Sources */,
 				130B765D2C6C4C33006371AF /* HomeItemListVC.swift in Sources */,
 				1385E0002C6C4F1200AADB1F /* NetworkRequest.swift in Sources */,
+				136C7C7D2C7715C9004540CD /* BitrhdayPickerView.swift in Sources */,
 				13334FDB2C7321BE00914086 /* PavilionItemCell.swift in Sources */,
 				13A6594B2C6F4F2D00F731FA /* CourseDetail_2_TCell.swift in Sources */,
+				134803D32C76E29E00F4FDDA /* MyCommentListVC.swift in Sources */,
 				1377768D2C6AFD25004FF994 /* LoginVC.swift in Sources */,
 				13FB6D852C6EEFE900A0685D /* MenuListTCell.swift in Sources */,
+				134803D92C76ED6400F4FDDA /* WatchHistoryDetailVC.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/Contents.json
new file mode 100644
index 0000000..d829187
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_question@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_question@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/icon_question@2x.png b/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/icon_question@2x.png
new file mode 100644
index 0000000..149e1e1
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/icon_question@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/icon_question@3x.png b/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/icon_question@3x.png
new file mode 100644
index 0000000..1d1d72c
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_question_1.imageset/icon_question@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/Contents.json b/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/Contents.json
new file mode 100644
index 0000000..ef97581
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_unline_1@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_unline_1@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/icon_unline_1@2x.png b/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/icon_unline_1@2x.png
new file mode 100644
index 0000000..e3c992c
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/icon_unline_1@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/icon_unline_1@3x.png b/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/icon_unline_1@3x.png
new file mode 100644
index 0000000..6153de5
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Icons/icon_unline_1.imageset/icon_unline_1@3x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/Contents.json b/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/Contents.json
new file mode 100644
index 0000000..83af910
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "bg_watch@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "bg_watch@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/bg_watch@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/bg_watch@2x.png
new file mode 100644
index 0000000..f50ff70
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/bg_watch@2x.png
Binary files differ
diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/bg_watch@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/bg_watch@3x.png
new file mode 100644
index 0000000..08011de
--- /dev/null
+++ b/XQMuse/Assets.xcassets/Placeholder/bg_watch.imageset/bg_watch@3x.png
Binary files differ
diff --git a/XQMuse/Root/Home/HomeVC.swift b/XQMuse/Root/Home/HomeVC.swift
index 03cb7ed..7f0097f 100644
--- a/XQMuse/Root/Home/HomeVC.swift
+++ b/XQMuse/Root/Home/HomeVC.swift
@@ -29,9 +29,6 @@
 								titleItems.append(TitleItem(title: "放松助眠", subTitle: "与内心的宁静与喜悦入睡",hasMore:true))
 								titleItems.append(TitleItem(title: "放松助眠", subTitle: "与内心的宁静与喜悦入睡",hasMore:true))
 								titleItems.append(TitleItem(title: "放松助眠", subTitle: "与内心的宁静与喜悦入睡",hasMore:true))
-
-								let vc = WalletRechargeVC()
-								push(vc: vc)
     }
 
 				override func setUI() {
diff --git a/XQMuse/Root/Home/VC/PaymentOrderVC.xib b/XQMuse/Root/Home/VC/PaymentOrderVC.xib
index 129fdf5..73f19a8 100644
--- a/XQMuse/Root/Home/VC/PaymentOrderVC.xib
+++ b/XQMuse/Root/Home/VC/PaymentOrderVC.xib
@@ -54,7 +54,7 @@
                                                     <color key="textColor" red="0.27450980392156865" green="0.27450980392156865" blue="0.27450980392156865" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="疗愈币0" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iyN-A8-Fyo">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="愈疗币0" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iyN-A8-Fyo">
                                                     <rect key="frame" x="145" y="27.666666666666668" width="218" height="14.333333333333332"/>
                                                     <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="12"/>
                                                     <color key="textColor" red="0.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -478,7 +478,7 @@
         <image name="icon_choose_small_s" width="15.666666984558105" height="16"/>
         <image name="icon_wallet" width="21.666666030883789" height="21.666666030883789"/>
         <systemColor name="separatorColor">
-            <color red="0.23529411764705882" green="0.23529411764705882" blue="0.2627450980392157" alpha="0.28999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
+            <color red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.28999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
         </systemColor>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
diff --git a/XQMuse/Root/Me/MeVC.swift b/XQMuse/Root/Me/MeVC.swift
index a1bfe6f..3f3227b 100644
--- a/XQMuse/Root/Me/MeVC.swift
+++ b/XQMuse/Root/Me/MeVC.swift
@@ -93,22 +93,26 @@
 
 				//观看历史
 				@IBAction func watchHistoryAction(_ sender: QMUIButton) {
-
+								let vc = WatchHistoryVC(type: .history)
+								push(vc: vc)
 				}
 
 				//我的收藏
 				@IBAction func myColletAction(_ sender: QMUIButton) {
-
+								let vc = WatchHistoryVC(type: .collect)
+								push(vc: vc)
 				}
 
 				/// 我的已购
 				@IBAction func paymentCourseAction(_ sender: QMUIButton) {
-
+								let vc = WatchHistoryVC(type: .payment)
+								push(vc: vc)
 				}
 
 				/// 联系客服
 				@IBAction func customerAction(_ sender: QMUIButton) {
-
+								let vc = ContactCustomerVC()
+								push(vc: vc)
 				}
 				
 				///分享
diff --git a/XQMuse/Root/Me/TCell/ContactCustomerTCell.swift b/XQMuse/Root/Me/TCell/ContactCustomerTCell.swift
new file mode 100644
index 0000000..542c536
--- /dev/null
+++ b/XQMuse/Root/Me/TCell/ContactCustomerTCell.swift
@@ -0,0 +1,16 @@
+//
+//  ContactCustomerTCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+
+class ContactCustomerTCell: UITableViewCell {
+
+    override func awakeFromNib() {
+        super.awakeFromNib()
+								selectionStyle = .none
+    }
+}
diff --git a/XQMuse/Root/Me/TCell/ContactCustomerTCell.xib b/XQMuse/Root/Me/TCell/ContactCustomerTCell.xib
new file mode 100644
index 0000000..8dc1400
--- /dev/null
+++ b/XQMuse/Root/Me/TCell/ContactCustomerTCell.xib
@@ -0,0 +1,69 @@
+<?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="_ContactCustomerTCell" rowHeight="133" id="KGk-i7-Jjw" customClass="ContactCustomerTCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="133"/>
+            <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="320" height="133"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_question_1" translatesAutoresizingMaskIntoConstraints="NO" id="wB7-Wt-maf">
+                        <rect key="frame" x="16.666666666666671" y="20" width="17.333333333333329" height="17.666666666666671"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="17.5" id="Ft5-lm-13r"/>
+                            <constraint firstAttribute="width" constant="17.5" id="po4-f7-kGF"/>
+                        </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="aBW-dt-2rJ">
+                        <rect key="frame" x="41" y="19.666666666666668" width="272" height="18.000000000000004"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
+                        <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ufh-LH-iEl">
+                        <rect key="frame" x="41" y="48.333333333333329" width="217" height="63.333333333333329"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                        <color key="textColor" red="0.41960784313725491" green="0.41960784313725491" blue="0.41960784313725491" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fnQ-Mv-aho">
+                        <rect key="frame" x="15.666666666666657" y="132.66666666666666" width="292" height="0.33333333333334281"/>
+                        <color key="backgroundColor" red="0.93333333333333335" green="0.93333333333333335" blue="0.93333333333333335" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="7wK-Po-g7e"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="fnQ-Mv-aho" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15.5" id="8hz-X6-Uuf"/>
+                    <constraint firstItem="aBW-dt-2rJ" firstAttribute="centerY" secondItem="wB7-Wt-maf" secondAttribute="centerY" id="Duy-hw-5ld"/>
+                    <constraint firstItem="Ufh-LH-iEl" firstAttribute="top" secondItem="aBW-dt-2rJ" secondAttribute="bottom" constant="10.5" id="G1a-a9-CNL"/>
+                    <constraint firstAttribute="trailing" secondItem="Ufh-LH-iEl" secondAttribute="trailing" constant="62" id="STL-K5-iLo"/>
+                    <constraint firstItem="Ufh-LH-iEl" firstAttribute="leading" secondItem="aBW-dt-2rJ" secondAttribute="leading" id="Sdh-Sx-zyv"/>
+                    <constraint firstItem="wB7-Wt-maf" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16.5" id="W7H-QC-InG"/>
+                    <constraint firstItem="wB7-Wt-maf" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="20" id="Xtb-8g-7Be"/>
+                    <constraint firstAttribute="bottom" secondItem="fnQ-Mv-aho" secondAttribute="bottom" id="bDr-1V-kUe"/>
+                    <constraint firstAttribute="trailing" secondItem="aBW-dt-2rJ" secondAttribute="trailing" constant="7" id="fxt-uv-7mr"/>
+                    <constraint firstItem="fnQ-Mv-aho" firstAttribute="top" secondItem="Ufh-LH-iEl" secondAttribute="bottom" constant="21" id="hJS-ZR-pzQ"/>
+                    <constraint firstAttribute="trailing" secondItem="fnQ-Mv-aho" secondAttribute="trailing" constant="12.5" id="iyN-LS-7KH"/>
+                    <constraint firstItem="aBW-dt-2rJ" firstAttribute="leading" secondItem="wB7-Wt-maf" secondAttribute="trailing" constant="7" id="qX7-qO-a9b"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
+            <point key="canvasLocation" x="59.541984732824424" y="51.760563380281695"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="icon_question_1" width="17.666666030883789" height="17.666666030883789"/>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Me/TCell/SpendingDetailContentTCell.swift b/XQMuse/Root/Me/TCell/SpendingDetailContentTCell.swift
new file mode 100644
index 0000000..5584de7
--- /dev/null
+++ b/XQMuse/Root/Me/TCell/SpendingDetailContentTCell.swift
@@ -0,0 +1,16 @@
+//
+//  SpendingDetailContentTCell.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+
+class SpendingDetailContentTCell: UITableViewCell {
+
+    override func awakeFromNib() {
+        super.awakeFromNib()
+								selectionStyle = .none
+    }
+}
diff --git a/XQMuse/Root/Me/TCell/SpendingDetailContentTCell.xib b/XQMuse/Root/Me/TCell/SpendingDetailContentTCell.xib
new file mode 100644
index 0000000..55e088d
--- /dev/null
+++ b/XQMuse/Root/Me/TCell/SpendingDetailContentTCell.xib
@@ -0,0 +1,77 @@
+<?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="_SpendingDetailContentTCell" rowHeight="77" id="KGk-i7-Jjw" customClass="SpendingDetailContentTCell" customModule="XQMuse" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="350" height="77"/>
+            <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="350" height="77"/>
+                <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="fed-zq-HQC">
+                        <rect key="frame" x="14" y="16" width="13" height="20"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="20" id="hV8-he-NN8"/>
+                        </constraints>
+                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" 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="RqV-gN-LrA">
+                        <rect key="frame" x="14" y="38" width="11.333333333333336" height="14.333333333333336"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.45000000000000001" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more" translatesAutoresizingMaskIntoConstraints="NO" id="fBe-Cv-aLG">
+                        <rect key="frame" x="330" y="33.666666666666664" width="6" height="10"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="6" id="KDx-CG-SmK"/>
+                            <constraint firstAttribute="height" constant="10" id="hAY-kG-NwG"/>
+                        </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="5sc-jc-aUv">
+                        <rect key="frame" x="307" y="30" width="13" height="17"/>
+                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
+                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="H52-cH-c3X">
+                        <rect key="frame" x="14" y="76.666666666666671" width="322" height="0.3333333333333286"/>
+                        <color key="backgroundColor" red="0.83137254901960778" green="0.83137254901960778" blue="0.83137254901960778" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.40000000000000002" id="vG2-8C-hZj"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="fBe-Cv-aLG" firstAttribute="leading" secondItem="5sc-jc-aUv" secondAttribute="trailing" constant="10" id="0uf-nR-PUt"/>
+                    <constraint firstItem="RqV-gN-LrA" firstAttribute="top" secondItem="fed-zq-HQC" secondAttribute="bottom" constant="2" id="1Xq-da-LMF"/>
+                    <constraint firstAttribute="trailing" secondItem="fBe-Cv-aLG" secondAttribute="trailing" constant="14" id="2ew-iQ-IRg"/>
+                    <constraint firstItem="RqV-gN-LrA" firstAttribute="leading" secondItem="fed-zq-HQC" secondAttribute="leading" id="FrJ-7k-FbH"/>
+                    <constraint firstAttribute="trailing" secondItem="H52-cH-c3X" secondAttribute="trailing" constant="14" id="IDC-yU-lsS"/>
+                    <constraint firstItem="fBe-Cv-aLG" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Jhh-xh-1W7"/>
+                    <constraint firstItem="fBe-Cv-aLG" firstAttribute="centerY" secondItem="5sc-jc-aUv" secondAttribute="centerY" id="Sps-ml-0Te"/>
+                    <constraint firstItem="H52-cH-c3X" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="UzX-Mq-h73"/>
+                    <constraint firstItem="fed-zq-HQC" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="Xps-N1-Oc0"/>
+                    <constraint firstAttribute="bottom" secondItem="H52-cH-c3X" secondAttribute="bottom" id="a1V-vd-mAX"/>
+                    <constraint firstItem="fed-zq-HQC" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="16" id="qsR-Ek-AlO"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
+            <point key="canvasLocation" x="161.83206106870227" y="32.04225352112676"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="icon_more" width="6" height="10.666666984558105"/>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Me/VC/ContactCustomerDetailVC.swift b/XQMuse/Root/Me/VC/ContactCustomerDetailVC.swift
new file mode 100644
index 0000000..2d69f0f
--- /dev/null
+++ b/XQMuse/Root/Me/VC/ContactCustomerDetailVC.swift
@@ -0,0 +1,27 @@
+//
+//  ContactCustomerDetailVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+import WebKit
+
+class ContactCustomerDetailVC: BaseVC {
+
+				@IBOutlet weak var webView: WKWebView!
+				override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "问题详情"
+								
+    }
+
+				override func setUI() {
+								webView.scrollView.backgroundColor = .clear
+								webView.backgroundColor = UIColor(hexString: "#F5F5F5")
+								webView.scrollView.showsHorizontalScrollIndicator = false
+								webView.isOpaque = false
+								webView.jq_cornerRadius = 11
+				}
+}
diff --git a/XQMuse/Root/Me/VC/ContactCustomerDetailVC.xib b/XQMuse/Root/Me/VC/ContactCustomerDetailVC.xib
new file mode 100644
index 0000000..8473d7f
--- /dev/null
+++ b/XQMuse/Root/Me/VC/ContactCustomerDetailVC.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="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="ContactCustomerDetailVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+                <outlet property="webView" destination="RzU-MN-ulm" id="5nl-6O-ZZ8"/>
+            </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="Nd2-A4-M1T">
+                    <rect key="frame" x="14" y="76" width="364" height="53"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_question" translatesAutoresizingMaskIntoConstraints="NO" id="GhE-Ws-GtH">
+                            <rect key="frame" x="0.0" y="0.0" width="18" height="18"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="18" id="2FN-8o-LIj"/>
+                                <constraint firstAttribute="height" constant="18" id="Tee-5h-uVY"/>
+                            </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="UU5-p7-Ba1">
+                            <rect key="frame" x="29" y="-1" width="324" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="20" id="v0l-ze-jsK"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <color key="textColor" red="0.098039215686274508" green="0.098039215686274508" blue="0.098039215686274508" alpha="0.78000000000000003" 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="xb7-xl-air">
+                            <rect key="frame" x="29" y="24" width="261" height="14.333333333333336"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <color key="textColor" red="0.098039215686274508" green="0.098039215686274508" blue="0.098039215686274508" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MvE-Yv-e31">
+                            <rect key="frame" x="0.0" y="52" width="364" height="1"/>
+                            <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.080000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="1" id="noh-0o-cef"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstItem="GhE-Ws-GtH" firstAttribute="leading" secondItem="Nd2-A4-M1T" secondAttribute="leading" id="3Bz-mj-QuY"/>
+                        <constraint firstItem="xb7-xl-air" firstAttribute="leading" secondItem="UU5-p7-Ba1" secondAttribute="leading" id="4oD-0p-CVc"/>
+                        <constraint firstItem="xb7-xl-air" firstAttribute="top" secondItem="UU5-p7-Ba1" secondAttribute="bottom" constant="5" id="7U4-LB-MR4"/>
+                        <constraint firstAttribute="trailing" secondItem="UU5-p7-Ba1" secondAttribute="trailing" constant="11" id="8ZL-P7-T1D"/>
+                        <constraint firstItem="UU5-p7-Ba1" firstAttribute="leading" secondItem="GhE-Ws-GtH" secondAttribute="trailing" constant="11" id="CQ5-UU-7wH"/>
+                        <constraint firstAttribute="bottom" secondItem="MvE-Yv-e31" secondAttribute="bottom" id="DGg-m3-q8K"/>
+                        <constraint firstAttribute="height" constant="53" id="RDB-68-GVb"/>
+                        <constraint firstItem="UU5-p7-Ba1" firstAttribute="centerY" secondItem="GhE-Ws-GtH" secondAttribute="centerY" id="XSi-1J-qUs"/>
+                        <constraint firstItem="GhE-Ws-GtH" firstAttribute="top" secondItem="Nd2-A4-M1T" secondAttribute="top" id="Zcu-1Y-15d"/>
+                        <constraint firstItem="MvE-Yv-e31" firstAttribute="leading" secondItem="Nd2-A4-M1T" secondAttribute="leading" id="ev5-LN-w74"/>
+                        <constraint firstAttribute="trailing" secondItem="xb7-xl-air" secondAttribute="trailing" constant="74" id="s0Y-dG-tai"/>
+                        <constraint firstAttribute="trailing" secondItem="MvE-Yv-e31" secondAttribute="trailing" id="yYL-9o-UgQ"/>
+                    </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="WL0-dE-4xa">
+                    <rect key="frame" x="172" y="803.66666666666663" width="49.333333333333343" height="14.333333333333371"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                    <color key="textColor" red="0.098039215686274508" green="0.12941176470588234" blue="0.24313725490196078" alpha="0.67000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="2kC-yj-fW4">
+                    <rect key="frame" x="148.66666666666666" y="703.66666666666663" width="96" height="96"/>
+                    <color key="backgroundColor" red="0.098039215690000001" green="0.12941176469999999" blue="0.24313725489999999" alpha="0.67000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="96" id="Idf-Z4-2b1"/>
+                        <constraint firstAttribute="height" constant="96" id="n5B-wR-B6d"/>
+                    </constraints>
+                </imageView>
+                <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RzU-MN-ulm">
+                    <rect key="frame" x="14" y="149.00000000000003" width="365" height="476.66666666666674"/>
+                    <color key="backgroundColor" red="0.96078431372549022" green="0.96078431372549022" blue="0.96078431372549022" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                    <wkWebViewConfiguration key="configuration">
+                        <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                        <wkPreferences key="preferences"/>
+                    </wkWebViewConfiguration>
+                </wkWebView>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="Nd2-A4-M1T" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="3MP-js-noI"/>
+                <constraint firstItem="RzU-MN-ulm" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="7cQ-YK-X4f"/>
+                <constraint firstItem="WL0-dE-4xa" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="IuI-ib-PAq"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Nd2-A4-M1T" secondAttribute="trailing" constant="15" id="SQd-1e-wUq"/>
+                <constraint firstItem="WL0-dE-4xa" firstAttribute="top" secondItem="2kC-yj-fW4" secondAttribute="bottom" constant="4" id="aaA-Jd-IpY"/>
+                <constraint firstItem="2kC-yj-fW4" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="eVb-V7-9WK"/>
+                <constraint firstItem="2kC-yj-fW4" firstAttribute="top" secondItem="RzU-MN-ulm" secondAttribute="bottom" constant="78" id="fBA-g0-0qZ"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="RzU-MN-ulm" secondAttribute="trailing" constant="14" id="hw7-dO-fxR"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="WL0-dE-4xa" secondAttribute="bottom" id="iqe-ZZ-hcE"/>
+                <constraint firstItem="RzU-MN-ulm" firstAttribute="top" secondItem="Nd2-A4-M1T" secondAttribute="bottom" constant="20" id="v4r-SW-ozA"/>
+                <constraint firstItem="Nd2-A4-M1T" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" constant="17" id="ycS-IN-qI9"/>
+            </constraints>
+            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="icon_question" width="15.666666984558105" height="15.666666984558105"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Me/VC/ContactCustomerVC.swift b/XQMuse/Root/Me/VC/ContactCustomerVC.swift
new file mode 100644
index 0000000..ea559d8
--- /dev/null
+++ b/XQMuse/Root/Me/VC/ContactCustomerVC.swift
@@ -0,0 +1,42 @@
+//
+//  ContactCustomerVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+
+class ContactCustomerVC: BaseVC {
+
+				@IBOutlet weak var tableView: UITableView!
+				
+    override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "联系客服"
+
+								tableView.separatorStyle = .none
+								tableView.delegate = self
+								tableView.dataSource = self
+								tableView.showsVerticalScrollIndicator = false
+								tableView.register(UINib(nibName: "ContactCustomerTCell", bundle: nil), forCellReuseIdentifier: "_ContactCustomerTCell")
+    }
+}
+
+extension ContactCustomerVC:UITableViewDelegate & UITableViewDataSource{
+				func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+								let vc = ContactCustomerDetailVC()
+								push(vc: vc)
+				}
+
+				func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+								let cell = tableView.dequeueReusableCell(withIdentifier: "_ContactCustomerTCell", for: indexPath) as! ContactCustomerTCell
+								return cell
+				}
+
+				func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+								return 10
+				}
+
+
+}
diff --git a/XQMuse/Root/Me/VC/ContactCustomerVC.xib b/XQMuse/Root/Me/VC/ContactCustomerVC.xib
new file mode 100644
index 0000000..45b6eeb
--- /dev/null
+++ b/XQMuse/Root/Me/VC/ContactCustomerVC.xib
@@ -0,0 +1,95 @@
+<?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="ContactCustomerVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <outlet property="tableView" destination="cf6-0I-xxB" id="kE1-aF-snG"/>
+                <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>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_voice_top" translatesAutoresizingMaskIntoConstraints="NO" id="eRQ-03-F3I">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="297"/>
+                </imageView>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qdl-41-EV1">
+                    <rect key="frame" x="130.33333333333331" y="106.66666666666667" width="132.33333333333331" height="132.33333333333331"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="132.5" id="3xI-p5-QcI"/>
+                        <constraint firstAttribute="height" constant="132.5" id="ffo-MU-W1a"/>
+                    </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="fc3-8Q-v5s">
+                    <rect key="frame" x="143.33333333333334" y="251.99999999999997" width="106.33333333333334" height="12.666666666666657"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="12.5" id="GbW-jb-gwo"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
+                    <nil key="textColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kph-H0-jYO">
+                    <rect key="frame" x="0.0" y="339.66666666666674" width="393" height="478.33333333333326"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="问题类型" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aYd-s7-IT0">
+                            <rect key="frame" x="18.000000000000004" y="31.999999999999996" width="61.333333333333343" height="14.333333333333332"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="14.5" id="ZBR-Iq-kZa"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                            <nil key="textColor"/>
+                            <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="cf6-0I-xxB">
+                            <rect key="frame" x="0.0" y="50.999999999999972" width="393" height="427.33333333333326"/>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        </tableView>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstItem="aYd-s7-IT0" firstAttribute="top" secondItem="Kph-H0-jYO" secondAttribute="top" constant="32" id="1LK-Hp-TQm"/>
+                        <constraint firstAttribute="bottom" secondItem="cf6-0I-xxB" secondAttribute="bottom" id="5tn-Bo-4he"/>
+                        <constraint firstItem="aYd-s7-IT0" firstAttribute="leading" secondItem="Kph-H0-jYO" secondAttribute="leading" constant="18" id="GqS-Np-07g"/>
+                        <constraint firstItem="cf6-0I-xxB" firstAttribute="leading" secondItem="Kph-H0-jYO" secondAttribute="leading" id="Ofc-BY-Wqi"/>
+                        <constraint firstItem="cf6-0I-xxB" firstAttribute="top" secondItem="aYd-s7-IT0" secondAttribute="bottom" constant="4.5" id="gpz-TQ-avQ"/>
+                        <constraint firstAttribute="trailing" secondItem="cf6-0I-xxB" secondAttribute="trailing" id="j7I-Y3-ieq"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="fc3-8Q-v5s" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="6Ul-xw-5ay"/>
+                <constraint firstItem="eRQ-03-F3I" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="6gV-vl-oVQ"/>
+                <constraint firstItem="fc3-8Q-v5s" firstAttribute="top" secondItem="Qdl-41-EV1" secondAttribute="bottom" constant="13" id="7zz-7V-nFb"/>
+                <constraint firstItem="Qdl-41-EV1" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="47.5" id="9lB-L9-Qr2"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="Kph-H0-jYO" secondAttribute="bottom" id="AyY-VT-MA6"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Kph-H0-jYO" secondAttribute="trailing" id="RCa-FS-6eC"/>
+                <constraint firstItem="eRQ-03-F3I" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="S88-LS-Gq1"/>
+                <constraint firstItem="Qdl-41-EV1" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="UgY-bA-Bs9"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="eRQ-03-F3I" secondAttribute="trailing" id="b9W-Du-LpC"/>
+                <constraint firstItem="Kph-H0-jYO" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="bse-U0-2rA"/>
+                <constraint firstItem="Kph-H0-jYO" firstAttribute="top" secondItem="eRQ-03-F3I" secondAttribute="bottom" constant="42.5" id="hlP-SK-cY2"/>
+            </constraints>
+            <point key="canvasLocation" x="59" y="21"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="bg_voice_top" width="390" height="297"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Me/VC/MyCommentListVC.swift b/XQMuse/Root/Me/VC/MyCommentListVC.swift
new file mode 100644
index 0000000..8fbec2d
--- /dev/null
+++ b/XQMuse/Root/Me/VC/MyCommentListVC.swift
@@ -0,0 +1,15 @@
+//
+//  MyCommentListVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+
+class MyCommentListVC: BaseVC {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+    }
+}
diff --git a/XQMuse/Root/Me/VC/SpendingDetailContentVC.swift b/XQMuse/Root/Me/VC/SpendingDetailContentVC.swift
new file mode 100644
index 0000000..bfa4d0c
--- /dev/null
+++ b/XQMuse/Root/Me/VC/SpendingDetailContentVC.swift
@@ -0,0 +1,65 @@
+//
+//  SpendingDetailContentVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+import JQTools
+
+class SpendingDetailContentVC: BaseVC {
+
+				private var page:Int!
+				private var tableView:UITableView!
+
+				init(page:Int) {
+								super.init(nibName: nil, bundle: nil)
+								self.page = page
+				}
+				
+				required init?(coder: NSCoder) {
+								fatalError("init(coder:) has not been implemented")
+				}
+				
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+        // Do any additional setup after loading the view.
+    }
+
+				override func setUI() {
+								tableView = UITableView(frame: .zero, style: .plain)
+								tableView.delegate = self
+								tableView.dataSource = self
+								tableView.register(UINib(nibName: "SpendingDetailContentTCell", bundle: nil), forCellReuseIdentifier: "_SpendingDetailContentTCell")
+								tableView.separatorStyle = .none
+
+								view.addSubview(tableView)
+								tableView.snp.makeConstraints { make in
+												make.edges.equalToSuperview()
+								}
+				}
+}
+
+extension SpendingDetailContentVC:UITableViewDelegate & UITableViewDataSource{
+
+				func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+								let vc = SpendingDetailInfoVC()
+								JQ_currentViewController().jq_push(vc: vc, animated: true)
+				}
+
+				func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+								let cell = tableView.dequeueReusableCell(withIdentifier: "_SpendingDetailContentTCell", for: indexPath) as! SpendingDetailContentTCell
+
+								return cell
+				}
+
+				func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+								return 10
+				}
+
+				func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+								return 70
+				}
+}
diff --git a/XQMuse/Root/Me/VC/SpendingDetailHeaderVC.swift b/XQMuse/Root/Me/VC/SpendingDetailHeaderVC.swift
new file mode 100644
index 0000000..2ef81f8
--- /dev/null
+++ b/XQMuse/Root/Me/VC/SpendingDetailHeaderVC.swift
@@ -0,0 +1,21 @@
+//
+//  SpendingDetailHeaderVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+import JQTools
+
+class SpendingDetailHeaderVC: BaseVC {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+    }
+
+				@IBAction func withdrawAction(_ sender: UIButton) {
+								let vc = BankWithdrawVC()
+								JQ_currentViewController().jq_push(vc: vc)
+				}
+}
diff --git a/XQMuse/Root/Me/VC/SpendingDetailHeaderVC.xib b/XQMuse/Root/Me/VC/SpendingDetailHeaderVC.xib
new file mode 100644
index 0000000..4aafcbf
--- /dev/null
+++ b/XQMuse/Root/Me/VC/SpendingDetailHeaderVC.xib
@@ -0,0 +1,110 @@
+<?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="SpendingDetailHeaderVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <outlet property="view" destination="iN0-l3-epB" id="dt1-eq-STC"/>
+            </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>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_voice_top" translatesAutoresizingMaskIntoConstraints="NO" id="q7z-fp-0F3">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="297"/>
+                </imageView>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FLL-3F-OgN">
+                    <rect key="frame" x="14" y="100" width="365" height="259"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="QxB-tg-ivp">
+                            <rect key="frame" x="0.0" y="0.0" width="365" height="259"/>
+                            <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        </imageView>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="可用余额(元)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5wO-F5-AbK">
+                            <rect key="frame" x="135" y="53" width="95.333333333333314" height="21"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="21" id="grS-X9-lbC"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iKf-J7-77x">
+                            <rect key="frame" x="169.66666666666666" y="82" width="26" height="56"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="56" id="qLX-Sj-MDm"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="40"/>
+                            <nil key="textColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vxb-Vy-vKw">
+                            <rect key="frame" x="102" y="187" width="161" height="50"/>
+                            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="50" id="H6Y-Fx-GxG"/>
+                                <constraint firstAttribute="width" constant="161" id="z2M-lz-0Rf"/>
+                            </constraints>
+                            <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.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            </state>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                    <real key="value" value="25"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="withdrawAction:" destination="-1" eventType="touchUpInside" id="UVK-gF-NR1"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="iKf-J7-77x" firstAttribute="centerX" secondItem="5wO-F5-AbK" secondAttribute="centerX" id="3Je-gn-r5V"/>
+                        <constraint firstAttribute="trailing" secondItem="QxB-tg-ivp" secondAttribute="trailing" id="9M9-80-ebx"/>
+                        <constraint firstItem="vxb-Vy-vKw" firstAttribute="top" secondItem="iKf-J7-77x" secondAttribute="bottom" constant="49" id="J0E-gu-oYn"/>
+                        <constraint firstItem="iKf-J7-77x" firstAttribute="top" secondItem="5wO-F5-AbK" secondAttribute="bottom" constant="8" id="KMi-Sw-3ua"/>
+                        <constraint firstAttribute="bottom" secondItem="QxB-tg-ivp" secondAttribute="bottom" id="QRR-Fg-rbR"/>
+                        <constraint firstItem="5wO-F5-AbK" firstAttribute="top" secondItem="FLL-3F-OgN" secondAttribute="top" constant="53" id="b3P-Pa-qve"/>
+                        <constraint firstItem="QxB-tg-ivp" firstAttribute="top" secondItem="FLL-3F-OgN" secondAttribute="top" id="bmI-Xd-qfh"/>
+                        <constraint firstAttribute="width" secondItem="FLL-3F-OgN" secondAttribute="height" multiplier="1:0.71" id="dV9-Gx-NFy"/>
+                        <constraint firstItem="vxb-Vy-vKw" firstAttribute="centerX" secondItem="5wO-F5-AbK" secondAttribute="centerX" id="vXx-NP-ctg"/>
+                        <constraint firstItem="5wO-F5-AbK" firstAttribute="centerX" secondItem="QxB-tg-ivp" secondAttribute="centerX" id="w8j-Au-AKg"/>
+                        <constraint firstItem="QxB-tg-ivp" firstAttribute="leading" secondItem="FLL-3F-OgN" secondAttribute="leading" id="xV2-ey-Wgc"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                            <real key="value" value="8"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="FLL-3F-OgN" secondAttribute="trailing" constant="14" id="BEo-XJ-wPX"/>
+                <constraint firstItem="q7z-fp-0F3" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="Dz2-yG-fkF"/>
+                <constraint firstItem="q7z-fp-0F3" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="SIa-M2-4aC"/>
+                <constraint firstAttribute="trailing" secondItem="q7z-fp-0F3" secondAttribute="trailing" id="gXb-c6-jDM"/>
+                <constraint firstItem="FLL-3F-OgN" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="topMargin" constant="41" id="n7n-Ik-siT"/>
+                <constraint firstItem="FLL-3F-OgN" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="pPa-s0-zkG"/>
+            </constraints>
+            <point key="canvasLocation" x="59" y="21"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="bg_voice_top" width="390" height="297"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Me/VC/SpendingDetailInfoVC.swift b/XQMuse/Root/Me/VC/SpendingDetailInfoVC.swift
new file mode 100644
index 0000000..2bf8519
--- /dev/null
+++ b/XQMuse/Root/Me/VC/SpendingDetailInfoVC.swift
@@ -0,0 +1,26 @@
+//
+//  SpendingDetailInfoVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+
+class SpendingDetailInfoVC: BaseVC {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "收入详情"
+								navigationController?.navigationBar.scrollEdgeAppearance?.backgroundColor = .white
+    }
+				override func viewWillDisappear(_ animated: Bool) {
+								super.viewDidDisappear(animated)
+								navigationController?.navigationBar.scrollEdgeAppearance?.backgroundColor = .white.withAlphaComponent(0)
+				}
+
+				override func setUI() {
+								view.backgroundColor = UIColor(hexString: "f6f6f6")
+				}
+
+}
diff --git a/XQMuse/Root/Me/VC/SpendingDetailInfoVC.xib b/XQMuse/Root/Me/VC/SpendingDetailInfoVC.xib
new file mode 100644
index 0000000..9614a2d
--- /dev/null
+++ b/XQMuse/Root/Me/VC/SpendingDetailInfoVC.xib
@@ -0,0 +1,231 @@
+<?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="SpendingDetailInfoVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <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="Ahx-Il-0W6">
+                    <rect key="frame" x="14" y="68" width="365" height="234"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="余额" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Czb-wC-0GY">
+                            <rect key="frame" x="10" y="17" width="32.666666666666664" height="14"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="14" id="7Tc-45-Re5"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KTv-tt-un5">
+                            <rect key="frame" x="9" y="48" width="347" height="1"/>
+                            <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.14999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="1" id="zfJ-wB-lMj"/>
+                            </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="5gW-lj-8Uk">
+                            <rect key="frame" x="340.33333333333331" y="14.333333333333327" width="14.666666666666686" height="19.333333333333329"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                            <color key="textColor" red="0.99607843137254903" green="0.19607843137254902" blue="0.066666666666666666" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="14" translatesAutoresizingMaskIntoConstraints="NO" id="BTp-hQ-kGg">
+                            <rect key="frame" x="10" y="62" width="345" height="152"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="paU-qi-7Zk">
+                                    <rect key="frame" x="0.0" y="0.0" width="345" height="17"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="收入类型" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c50-FX-5d4">
+                                            <rect key="frame" x="0.0" y="1.3333333333333437" width="49.333333333333336" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="Vch-45-s0U">
+                                            <rect key="frame" x="333.66666666666669" y="1.3333333333333437" width="11.333333333333314" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="3ZX-fU-2dj"/>
+                                        <constraint firstItem="c50-FX-5d4" firstAttribute="leading" secondItem="paU-qi-7Zk" secondAttribute="leading" id="7uP-D7-edz"/>
+                                        <constraint firstItem="Vch-45-s0U" firstAttribute="centerY" secondItem="paU-qi-7Zk" secondAttribute="centerY" id="I4x-ZN-Z75"/>
+                                        <constraint firstItem="c50-FX-5d4" firstAttribute="centerY" secondItem="paU-qi-7Zk" secondAttribute="centerY" id="Ndp-fV-zVd"/>
+                                        <constraint firstAttribute="trailing" secondItem="Vch-45-s0U" secondAttribute="trailing" id="bKg-f2-MsG"/>
+                                    </constraints>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Ym-dd-vx2">
+                                    <rect key="frame" x="0.0" y="31" width="345" height="17"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="时间" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2ep-Yl-gTQ">
+                                            <rect key="frame" x="0.0" y="1.3333333333333437" width="24.666666666666668" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="Cv1-Z7-VpI">
+                                            <rect key="frame" x="333.66666666666669" y="1.3333333333333437" width="11.333333333333314" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                    <constraints>
+                                        <constraint firstItem="Cv1-Z7-VpI" firstAttribute="centerY" secondItem="7Ym-dd-vx2" secondAttribute="centerY" id="8ad-2d-chb"/>
+                                        <constraint firstAttribute="height" constant="17" id="GHV-YE-TKJ"/>
+                                        <constraint firstAttribute="trailing" secondItem="Cv1-Z7-VpI" secondAttribute="trailing" id="MkC-yw-hxs"/>
+                                        <constraint firstItem="2ep-Yl-gTQ" firstAttribute="centerY" secondItem="7Ym-dd-vx2" secondAttribute="centerY" id="RJf-Za-wBw"/>
+                                        <constraint firstItem="2ep-Yl-gTQ" firstAttribute="leading" secondItem="7Ym-dd-vx2" secondAttribute="leading" id="wAH-Vm-wCc"/>
+                                    </constraints>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nvZ-aC-LZK">
+                                    <rect key="frame" x="0.0" y="62" width="345" height="17"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="流水单号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Zm-gu-UT7">
+                                            <rect key="frame" x="0.0" y="1.3333333333333437" width="49.333333333333336" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="fQy-0x-TJ9">
+                                            <rect key="frame" x="333.66666666666669" y="1.3333333333333437" width="11.333333333333314" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                    <constraints>
+                                        <constraint firstItem="4Zm-gu-UT7" firstAttribute="leading" secondItem="nvZ-aC-LZK" secondAttribute="leading" id="LgK-iY-18G"/>
+                                        <constraint firstAttribute="height" constant="17" id="RfG-Dv-Zcn"/>
+                                        <constraint firstItem="4Zm-gu-UT7" firstAttribute="centerY" secondItem="nvZ-aC-LZK" secondAttribute="centerY" id="Xst-PZ-voj"/>
+                                        <constraint firstAttribute="trailing" secondItem="fQy-0x-TJ9" secondAttribute="trailing" id="klv-YR-BCo"/>
+                                        <constraint firstItem="fQy-0x-TJ9" firstAttribute="centerY" secondItem="nvZ-aC-LZK" secondAttribute="centerY" id="kxx-mQ-uDa"/>
+                                    </constraints>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AKh-er-j4M">
+                                    <rect key="frame" x="0.0" y="93" width="345" height="28"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="下级用户" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BoT-97-SXQ">
+                                            <rect key="frame" x="0.0" y="7.0000000000000009" width="49.333333333333336" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="lLV-Rs-74K">
+                                            <rect key="frame" x="295.66666666666669" y="7.0000000000000009" width="11.333333333333314" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Xrs-Ns-uus">
+                                            <rect key="frame" x="317" y="0.0" width="28" height="28"/>
+                                            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="28" id="XrL-GU-WQa"/>
+                                                <constraint firstAttribute="width" constant="28" id="rTH-MJ-XUY"/>
+                                            </constraints>
+                                            <userDefinedRuntimeAttributes>
+                                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                                    <real key="value" value="14"/>
+                                                </userDefinedRuntimeAttribute>
+                                            </userDefinedRuntimeAttributes>
+                                        </imageView>
+                                    </subviews>
+                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                    <constraints>
+                                        <constraint firstItem="lLV-Rs-74K" firstAttribute="centerY" secondItem="AKh-er-j4M" secondAttribute="centerY" id="8Vc-Vc-DyN"/>
+                                        <constraint firstItem="Xrs-Ns-uus" firstAttribute="leading" secondItem="lLV-Rs-74K" secondAttribute="trailing" constant="10" id="BwW-IX-EUX"/>
+                                        <constraint firstItem="BoT-97-SXQ" firstAttribute="leading" secondItem="AKh-er-j4M" secondAttribute="leading" id="MmF-eQ-NGT"/>
+                                        <constraint firstAttribute="trailing" secondItem="Xrs-Ns-uus" secondAttribute="trailing" id="PbP-lJ-udM"/>
+                                        <constraint firstAttribute="height" constant="28" id="SO3-mK-NLK"/>
+                                        <constraint firstItem="BoT-97-SXQ" firstAttribute="centerY" secondItem="AKh-er-j4M" secondAttribute="centerY" id="rft-PO-AUs"/>
+                                        <constraint firstItem="Xrs-Ns-uus" firstAttribute="centerY" secondItem="AKh-er-j4M" secondAttribute="centerY" id="zdF-SC-3SQ"/>
+                                    </constraints>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Yhm-fa-EN3">
+                                    <rect key="frame" x="0.0" y="135" width="345" height="17"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="备注" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S3M-IX-Tpo">
+                                            <rect key="frame" x="0.0" y="1.3333333333333153" width="24.666666666666668" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="3JX-nJ-8Mi">
+                                            <rect key="frame" x="333.66666666666669" y="1.3333333333333153" width="11.333333333333314" height="14.333333333333336"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                    <constraints>
+                                        <constraint firstItem="S3M-IX-Tpo" firstAttribute="centerY" secondItem="Yhm-fa-EN3" secondAttribute="centerY" id="1eW-L6-lqe"/>
+                                        <constraint firstAttribute="height" constant="17" id="aDg-D9-ll5"/>
+                                        <constraint firstAttribute="trailing" secondItem="3JX-nJ-8Mi" secondAttribute="trailing" id="hE2-ti-SSH"/>
+                                        <constraint firstItem="S3M-IX-Tpo" firstAttribute="leading" secondItem="Yhm-fa-EN3" secondAttribute="leading" id="pof-v6-In3"/>
+                                        <constraint firstItem="3JX-nJ-8Mi" firstAttribute="centerY" secondItem="Yhm-fa-EN3" secondAttribute="centerY" id="vF2-ma-aXt"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                        </stackView>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="BTp-hQ-kGg" secondAttribute="trailing" constant="10" id="9Fr-pg-23X"/>
+                        <constraint firstItem="KTv-tt-un5" firstAttribute="top" secondItem="Czb-wC-0GY" secondAttribute="bottom" constant="17" id="EfL-Hh-fUb"/>
+                        <constraint firstAttribute="trailing" secondItem="5gW-lj-8Uk" secondAttribute="trailing" constant="10" id="Km7-BZ-B7P"/>
+                        <constraint firstItem="BTp-hQ-kGg" firstAttribute="top" secondItem="KTv-tt-un5" secondAttribute="bottom" constant="13" id="Y1O-QS-MpG"/>
+                        <constraint firstItem="KTv-tt-un5" firstAttribute="leading" secondItem="Ahx-Il-0W6" secondAttribute="leading" constant="9" id="Y3E-xK-JzD"/>
+                        <constraint firstItem="BTp-hQ-kGg" firstAttribute="leading" secondItem="Ahx-Il-0W6" secondAttribute="leading" constant="10" id="bHC-O3-2lp"/>
+                        <constraint firstItem="Czb-wC-0GY" firstAttribute="top" secondItem="Ahx-Il-0W6" secondAttribute="top" constant="17" id="bty-8k-Jha"/>
+                        <constraint firstItem="Czb-wC-0GY" firstAttribute="leading" secondItem="Ahx-Il-0W6" secondAttribute="leading" constant="10" id="dXj-3Z-dFY"/>
+                        <constraint firstAttribute="bottom" secondItem="BTp-hQ-kGg" secondAttribute="bottom" constant="20" id="fbO-Ml-bMd"/>
+                        <constraint firstItem="5gW-lj-8Uk" firstAttribute="centerY" secondItem="Czb-wC-0GY" secondAttribute="centerY" id="kw4-oR-cVC"/>
+                        <constraint firstAttribute="trailing" secondItem="KTv-tt-un5" secondAttribute="trailing" constant="9" id="q4Q-yB-wzh"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Ahx-Il-0W6" secondAttribute="trailing" constant="14" id="BcG-dY-uIN"/>
+                <constraint firstItem="Ahx-Il-0W6" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="P5Q-wQ-bbf"/>
+                <constraint firstItem="Ahx-Il-0W6" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="9" id="pNk-kh-1Aq"/>
+            </constraints>
+            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
+        </view>
+    </objects>
+    <resources>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Me/VC/SpendingDetailMenuVC.swift b/XQMuse/Root/Me/VC/SpendingDetailMenuVC.swift
new file mode 100644
index 0000000..1d5b431
--- /dev/null
+++ b/XQMuse/Root/Me/VC/SpendingDetailMenuVC.swift
@@ -0,0 +1,53 @@
+//
+//  SpendingDetailMenuVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+import SPPageMenu
+
+class SpendingDetailMenuVC: BaseVC {
+
+				private(set) var pageMenu:SPPageMenu = {
+								let pageMenu = SPPageMenu(frame: .zero, trackerStyle: .line)
+								// 追踪线
+								pageMenu.trackerWidth = 12
+								pageMenu.setTrackerHeight(2, cornerRadius:1)
+								pageMenu.trackerFollowingMode = .always
+								pageMenu.contentInset = UIEdgeInsets(top: 0, left: 19.5, bottom: 5, right: 19.5)
+								pageMenu.setItems(["全部","收入","支出"], selectedItemIndex: 0)
+								pageMenu.backgroundColor = UIColor(hexString: "#F0F0F0")
+								pageMenu.tracker.backgroundColor = UIColor(hexString: "#8AAE65")
+								pageMenu.backgroundColor = .white
+
+								// 分割线
+								pageMenu.dividingLine.backgroundColor = UIColor(hexString: "#D4D4D4")
+								pageMenu.dividingLineHeight = 0.4
+
+								// item
+								pageMenu.spacing = 27.0
+								pageMenu.permutationWay = .notScrollAdaptContent
+
+								// 字体
+								pageMenu.selectedItemTitleFont = Def_SourceHanSansCN_Regular(fontSize: 14)
+								pageMenu.unSelectedItemTitleFont = Def_SourceHanSansCN_Regular(fontSize: 14)
+								// 颜色
+								pageMenu.selectedItemTitleColor = UIColor(hexStr: "#8AAE65")
+								pageMenu.unSelectedItemTitleColor = .black.withAlphaComponent(0.6)
+								return pageMenu
+				}()
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+								view.backgroundColor = .gray
+    }
+
+				override func setUI() {
+								view.addSubview(pageMenu)
+								pageMenu.snp.makeConstraints { make in
+												make.edges.equalToSuperview()
+								}
+				}
+}
diff --git a/XQMuse/Root/Me/VC/SpendingDetailVC.swift b/XQMuse/Root/Me/VC/SpendingDetailVC.swift
new file mode 100644
index 0000000..5ac6d50
--- /dev/null
+++ b/XQMuse/Root/Me/VC/SpendingDetailVC.swift
@@ -0,0 +1,96 @@
+//
+//  SpendingDetailVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+import FFPage
+import JQTools
+import SPPageMenu
+
+class SpendingDetailVC: BaseVC {
+
+				lazy var adapterVC:FFAdapterViewController = {
+								let adapterVC = FFAdapterViewController()
+								adapterVC.style = .subRefresh
+								adapterVC.ignoreTopSpeace = JQ_NavBarHeight
+								return adapterVC
+				}()
+
+				lazy var headerVC:SpendingDetailHeaderVC = {
+								let headerVC  = SpendingDetailHeaderVC()
+								return headerVC
+				}()
+
+
+				lazy var menuVC:SpendingDetailMenuVC = {
+								let menuVC  = SpendingDetailMenuVC()
+								return menuVC
+				}()
+
+				lazy var pageVC:FFPageViewController = {
+								let pageViewController = FFPageViewController()
+								pageViewController.view.backgroundColor = .clear
+								pageViewController.delegate = self
+								pageViewController.scrollview.backgroundColor = .clear
+								return pageViewController
+				}()
+
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+								title = "余额明细"
+    }
+
+				override func setUI() {
+								adapterVC.headHeight = 410
+								adapterVC.headViewController = headerVC
+								adapterVC.menuHeight = 44
+								adapterVC.menuViewController = menuVC
+								adapterVC.pageViewController = pageVC
+								adapterVC.ignoreTopSpeace = JQ_NavBarHeight + 20
+
+								addChild(adapterVC)
+								view.addSubview(adapterVC.view)
+								adapterVC.didMove(toParent: self)
+
+								// 分类委托
+								menuVC.pageMenu.delegate = self
+								menuVC.pageMenu.bridgeScrollView = pageVC.scrollview
+
+								adapterVC.scrollview.delegate = self
+				}
+}
+
+extension SpendingDetailVC : FFPageViewControllerDelegate{
+
+				func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
+								return  3
+				}
+
+				func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
+								let v = SpendingDetailContentVC(page: page)
+								return v
+				}
+
+				func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
+
+				}
+
+}
+
+extension SpendingDetailVC : SPPageMenuDelegate {
+				func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
+								pageVC.scroll(toPage: index, animation: true)
+				}
+}
+
+extension SpendingDetailVC:UIScrollViewDelegate{
+				func scrollViewDidScroll(_ scrollView: UIScrollView) {
+								let v = min(scrollView.contentOffset.y / JQ_NavBarHeight, 1)
+								navigationController?.navigationBar.standardAppearance.backgroundColor = .white.withAlphaComponent(v)
+				}
+}
+
diff --git a/XQMuse/Root/Me/VC/UserProfileVC.swift b/XQMuse/Root/Me/VC/UserProfileVC.swift
index 226ef82..995c1e1 100644
--- a/XQMuse/Root/Me/VC/UserProfileVC.swift
+++ b/XQMuse/Root/Me/VC/UserProfileVC.swift
@@ -8,18 +8,33 @@
 import UIKit
 import QMUIKit
 import JQTools
+import TZImagePickerController
 
 class UserProfileVC: BaseVC {
 
 				@IBOutlet weak var image_user: UIImageView!
 				@IBOutlet weak var tf_gender: QMUITextField!
 				@IBOutlet weak var tf_birthday: QMUITextField!
-				
-    override func viewDidLoad() {
-        super.viewDidLoad()
+
+				private var clipSize = CGSize(width: JQ_ScreenW, height: JQ_ScreenW) //裁剪大小
+				private var clipFrame:CGRect{
+								get{
+												if clipSize.width == 0 || clipSize.height == 0 {
+																assert(false,"未设置裁剪框大小")
+												}
+
+												var clipFrame = CGRect.zero
+												clipFrame.size = clipSize
+												clipFrame.origin = CGPoint(x: (JQ_ScreenW - clipSize.width)/2.0, y: (JQ_ScreenH - clipSize.width)/2.0)
+												return clipFrame
+								}
+				}
+
+				override func viewDidLoad() {
+								super.viewDidLoad()
 								title = "个人资料"
-    }
-				
+				}
+
 				override func setUI() {
 								super.setUI()
 								view.backgroundColor = UIColor(hexString:"#fafafa")
@@ -32,9 +47,34 @@
 				}
 
 				@objc func selectUserProfile(){
-								JQ_ImagePickerTool.getSharedInstance().singleImage({ [unowned self] image in
-												self.image_user.image = image
-								}, clipSize: CGSize(width: JQ_ScreenW, height: JQ_ScreenW))
+								CommonAlertSheetView.show(items: ["拍照","从相册选择"]) {[unowned self] index in
+												if index == 0{
+
+																guard UIImagePickerController.isSourceTypeAvailable(.camera) else{
+																				alertError(msg: "当前设备相机不可用");return
+																}
+
+																let p = UIImagePickerController()
+																p.delegate = self
+																p.modalPresentationStyle = .fullScreen
+																p.allowsEditing = true
+																p.sourceType = .camera
+																p.cameraDevice = .front
+																self.present(p, animated: true)
+												}else{
+																let p = TZImagePickerController(maxImagesCount: 1, columnNumber: 3, delegate: self)
+																p!.modalPresentationStyle = .fullScreen
+																p!.allowTakeVideo = false
+																p!.allowTakePicture = false
+																p!.sortAscendingByModificationDate = true
+																p!.scaleAspectFillCrop = true
+																p!.allowPickingVideo = false
+																p!.maxImagesCount = 1
+																p!.allowCrop = true
+																p!.cropRect = self.clipFrame
+																self.present(p!, animated: true, completion: nil)
+												}
+								}
 				}
 }
 
@@ -42,13 +82,12 @@
 				func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
 
 								if textField == tf_gender{
-												let items = ["男","女"]
+												let items = ["男","女","保密"]
 												CommonAlertSheetView.show(items: items) {[weak self] index in
 																guard let weakSelf = self else { return }
 																guard textField.text != items[index] else {return}
 																textField.text = items[index]
 																var gender:GenderType!
-
 																if index == 0{
 																				gender = .man
 																}else{
@@ -59,12 +98,53 @@
 
 								if textField == tf_birthday{
 												view.endEditing(true)
-												CommonDatePickerView.show(before: 60, after: 0, type: .YMD) { year, month, day,_,_ in
-																textField.text = String(format: "%ld-%02ld-%02ld", year!,month!,day!)
+												BitrhdayPickerView.show(title: "", type: .YMD) { date in
+																
 												}
+//												CommonDatePickerView.show(before: 60, after: 0, type: .YMD) { year, month, day,_,_ in
+//																textField.text = String(format: "%ld-%02ld-%02ld", year!,month!,day!)
+//												}
 												return false
 								}
 
 								return false
 				}
 }
+
+extension UserProfileVC:TZImagePickerControllerDelegate{
+				public func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingPhotos photos: [UIImage]!, sourceAssets assets: [Any]!, isSelectOriginalPhoto: Bool) {
+								picker.selectedAssets = NSMutableArray(array: assets)
+				}
+
+				public func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingAndEditingVideo coverImage: UIImage!, outputPath: String!, error errorMsg: String!) {
+
+				}
+}
+
+extension UserProfileVC:UIImagePickerControllerDelegate & UINavigationControllerDelegate{
+				//成功选取
+				public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
+
+								var image:UIImage?
+								image = (info[UIImagePickerController.InfoKey.originalImage] as! UIImage)
+								let corpperVC = VPImageCropperViewController(image: image!, cropFrame: clipFrame, limitScaleRatio: Int(image!.scale))
+								corpperVC.modalPresentationStyle = .fullScreen
+								DispatchQueue.main.asyncAfter(deadline: .now()+1.0) {
+												JQ_currentViewController().present(corpperVC, animated: true, completion: nil)
+								}
+
+								unowned let weakSelf = self
+								corpperVC.imageCropperHandler { (vc, image) in
+
+								} cancelClouse: {
+												corpperVC.dismiss(animated: true) {
+
+												}
+								}
+
+
+								picker.dismiss(animated: true) {
+
+								}
+				}
+}
diff --git a/XQMuse/Root/Me/VC/WalletRechargeVC.swift b/XQMuse/Root/Me/VC/WalletRechargeVC.swift
index 838b141..da89b83 100644
--- a/XQMuse/Root/Me/VC/WalletRechargeVC.swift
+++ b/XQMuse/Root/Me/VC/WalletRechargeVC.swift
@@ -6,19 +6,101 @@
 //
 
 import UIKit
+import JQTools
 
 class WalletRechargeVC: BaseVC {
 
 				@IBOutlet weak var btn_handle: UIButton!
+				@IBOutlet weak var collectionView: UICollectionView!
+				@IBOutlet weak var cons_collectionHei: NSLayoutConstraint!
+
+				private var selectIndexPath = IndexPath(row: 0, section: 0)
+				private 	let cellW = (JQ_ScreenW - (24 * 2) - 3 * 27) / 4
+				private let cellH:Double = 35
+
 				override func viewDidLoad() {
         super.viewDidLoad()
-								title = "冥愈币充值"
+								title = "疗愈币充值"
+								collectionView.delegate = self
+								collectionView.dataSource = self
+								collectionView.contentInset = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10)
+								collectionView.register(WalletCCell.self, forCellWithReuseIdentifier: "_WalletCCell")
 
+								let h = ceil(4.0 / 4.0) * cellH + floor((4.0 - 1) / 4.0) * 27.0
+								cons_collectionHei.constant = h
+								view.layoutIfNeeded()
     }
 
 
 				override func setUI() {
 								view.backgroundColor = UIColor(hexString: "f6f6f6")
-								btn_handle.localGradientColor(cornerRadius: 20)
+								btn_handle.jq_gradientNibColor(colorArr:  [UIColor(hexStr: "#8EA47A").cgColor,UIColor(hexStr: "#AFCA98").cgColor], cornerRadius: 20)
+				}
+}
+
+extension WalletRechargeVC:UICollectionViewDelegate & UICollectionViewDataSource{
+
+				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+								selectIndexPath = indexPath
+								collectionView.reloadData()
+				}
+
+				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+								return 4
+				}
+				
+				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_WalletCCell", for: indexPath) as! WalletCCell
+								cell.selectAt(indexPath == selectIndexPath)
+								return cell
+				}
+}
+
+extension WalletRechargeVC:UICollectionViewDelegateFlowLayout{
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+								return CGSize(width: cellW, height:cellH)
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
+								return 27
+				}
+
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
+								return 27
+				}
+
+}
+
+class WalletCCell:UICollectionViewCell{
+
+				private lazy var lable_title:UILabel = {
+								let label = UILabel()
+								label.text = "疗愈币0"
+								label.textAlignment = .center
+								label.textColor = UIColor(hexString: "#A9C393")
+								label.font = UIFont.systemFont(ofSize: 16, weight: .medium)
+								return label
+				}()
+
+				override init(frame: CGRect) {
+								super.init(frame: frame)
+							jq_borderWidth = 1
+							jq_borderColor = UIColor(hexString: "#ABC695")
+							jq_cornerRadius = 8
+
+								contentView.addSubview(lable_title)
+								lable_title.snp.makeConstraints { make in
+												make.center.equalToSuperview()
+								}
+				}
+
+				func selectAt(_ state:Bool){
+								backgroundColor = state ? UIColor(hexString: "#8EA47A") : .white
+								lable_title.textColor = state ? .white:UIColor(hexString: "#8EA47A")
+								jq_borderWidth = state ? 0:1
+				}
+
+				required init?(coder: NSCoder) {
+								fatalError("init(coder:) has not been implemented")
 				}
 }
diff --git a/XQMuse/Root/Me/VC/WalletRechargeVC.xib b/XQMuse/Root/Me/VC/WalletRechargeVC.xib
index 16ccdbd..88bd960 100644
--- a/XQMuse/Root/Me/VC/WalletRechargeVC.xib
+++ b/XQMuse/Root/Me/VC/WalletRechargeVC.xib
@@ -12,6 +12,8 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="WalletRechargeVC" customModule="XQMuse" customModuleProvider="target">
             <connections>
                 <outlet property="btn_handle" destination="dho-ek-UFQ" id="iQC-VU-0Zr"/>
+                <outlet property="collectionView" destination="dtD-pA-jk2" id="DeN-fT-Su7"/>
+                <outlet property="cons_collectionHei" destination="bd9-0q-BAP" id="w77-cG-RlO"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
         </placeholder>
@@ -37,6 +39,7 @@
                             </constraints>
                             <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="Cco-HP-q4Y">
                                 <size key="itemSize" width="128" height="128"/>
+                                <size key="estimatedItemSize" 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"/>
diff --git a/XQMuse/Root/Me/VC/WalletVC.swift b/XQMuse/Root/Me/VC/WalletVC.swift
index 031707b..77d84cf 100644
--- a/XQMuse/Root/Me/VC/WalletVC.swift
+++ b/XQMuse/Root/Me/VC/WalletVC.swift
@@ -22,8 +22,27 @@
 								let vc = BankWithdrawVC()
 								push(vc: vc)
 				}
+
 				@IBAction func recharegeAction(_ sender: UIButton) {
 								let vc = WalletRechargeVC()
 								push(vc: vc)
 				}
+
+				@IBAction func spendingDetailAction(_ sender: TapBtn) {
+								let vc = SpendingDetailVC()
+								push(vc: vc)
+				}
+				
+				@IBAction func commentAction(_ sender: TapBtn) {
+								let vc = MyCommentListVC()
+								vc.title = "我的推荐"
+								push(vc: vc)
+				}
+
+				@IBAction func popularizeAction(_ sender: TapBtn) {
+								let vc = MyCommentListVC()
+								vc.title = "推广活动"
+								push(vc: vc)
+				}
+				
 }
diff --git a/XQMuse/Root/Me/VC/WalletVC.xib b/XQMuse/Root/Me/VC/WalletVC.xib
index 5bfa300..78a23b4 100644
--- a/XQMuse/Root/Me/VC/WalletVC.xib
+++ b/XQMuse/Root/Me/VC/WalletVC.xib
@@ -46,7 +46,7 @@
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="充值(冥愈币)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bTT-6A-oeC">
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="充值(疗愈币)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bTT-6A-oeC">
                             <rect key="frame" x="44.999999999999993" y="123.00000000000001" width="76.333333333333314" height="11.666666666666671"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="11.5" id="yb2-0Y-fpK"/>
@@ -146,7 +146,7 @@
                 <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="d4r-tq-ZJ0">
                     <rect key="frame" x="16" y="382" width="361" height="102"/>
                     <subviews>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n8v-Zl-Su5">
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n8v-Zl-Su5" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                             <rect key="frame" x="0.0" y="0.0" width="361" height="51"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CTT-vC-tUN">
@@ -181,8 +181,11 @@
                                 <constraint firstItem="ENG-Pn-f6h" firstAttribute="centerY" secondItem="n8v-Zl-Su5" secondAttribute="centerY" id="xls-qW-7T6"/>
                                 <constraint firstItem="Irv-xl-Q2e" firstAttribute="leading" secondItem="vao-0m-YYq" secondAttribute="trailing" constant="10" id="yDc-Lz-o7V"/>
                             </constraints>
+                            <connections>
+                                <action selector="spendingDetailAction:" destination="-1" eventType="touchUpInside" id="yBs-99-1bf"/>
+                            </connections>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qMJ-nq-nHL">
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qMJ-nq-nHL" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                             <rect key="frame" x="0.0" y="51" width="361" height="51"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="phv-ve-Q3R">
@@ -217,10 +220,13 @@
                                 <constraint firstAttribute="trailing" secondItem="phv-ve-Q3R" secondAttribute="trailing" id="eTh-bT-tcn"/>
                                 <constraint firstItem="J7r-og-biD" firstAttribute="centerY" secondItem="qMJ-nq-nHL" secondAttribute="centerY" id="l80-3F-Xjw"/>
                             </constraints>
+                            <connections>
+                                <action selector="commentAction:" destination="-1" eventType="touchUpInside" id="aV0-eL-keT"/>
+                            </connections>
                         </view>
                     </subviews>
                 </stackView>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rlo-Ro-eiy">
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rlo-Ro-eiy" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
                     <rect key="frame" x="14.666666666666657" y="519.66666666666663" width="364" height="66.333333333333371"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="推荐心泉疗愈给好友" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XgZ-h6-scF">
@@ -252,6 +258,9 @@
                             <real key="value" value="15"/>
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
+                    <connections>
+                        <action selector="popularizeAction:" destination="-1" eventType="touchUpInside" id="nEo-xe-0gc"/>
+                    </connections>
                 </view>
             </subviews>
             <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
diff --git a/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift b/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift
new file mode 100644
index 0000000..f2320ff
--- /dev/null
+++ b/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift
@@ -0,0 +1,66 @@
+//
+//  WatchHistoryDetailVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+import JQTools
+class WatchHistoryDetailVC: BaseVC {
+
+				private var page:Int!
+
+				private var collectionView:UICollectionView!
+
+				init(page:Int) {
+								super.init(nibName: nil, bundle: nil)
+								self.page = page
+				}
+				
+				required init?(coder: NSCoder) {
+								fatalError("init(coder:) has not been implemented")
+				}
+				
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+								let layout = UICollectionViewFlowLayout()
+								collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
+								collectionView.delegate = self
+								collectionView.dataSource = self
+								collectionView.showsVerticalScrollIndicator = false
+								collectionView.register(UINib(nibName: "HomeRelaxBannerCCell", bundle: nil), forCellWithReuseIdentifier: "_HomeRelaxBannerCCell")
+								collectionView.contentInset = UIEdgeInsets(top: 29, left: 29.5 , bottom: 0, right: 29.5)
+
+								view.addSubview(collectionView)
+								collectionView.snp.makeConstraints { make in
+												make.edges.equalToSuperview()
+								}
+    }
+}
+
+extension WatchHistoryDetailVC: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: "_HomeRelaxBannerCCell", for: indexPath) as! HomeRelaxBannerCCell
+								cell.contentView.backgroundColor = .jq_randomColor
+								return cell
+				}
+
+				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+												let vc = HomeItemDetailVC()
+												JQ_currentViewController().jq_push(vc: vc)
+				}
+}
+
+extension WatchHistoryDetailVC:UICollectionViewDelegateFlowLayout{
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+
+								let w = (JQ_ScreenW - (29.5 * 2) - 18.5) / 2
+								return CGSize(width: w, height: w * 1.3124)
+				}
+}
diff --git a/XQMuse/Root/Me/VC/WatchHistoryVC.swift b/XQMuse/Root/Me/VC/WatchHistoryVC.swift
new file mode 100644
index 0000000..0852de8
--- /dev/null
+++ b/XQMuse/Root/Me/VC/WatchHistoryVC.swift
@@ -0,0 +1,128 @@
+//
+//  WatchHistoryVC.swift
+//  XQMuse
+//
+//  Created by 无故事王国 on 2024/8/22.
+//
+
+import UIKit
+import FFPage
+
+//收藏、观看历史、我的已购 共用
+
+enum WatchType{
+				case collect
+				case history
+				case payment
+}
+
+class WatchHistoryVC: BaseVC {
+				@IBOutlet weak var btn_tap1: TapBtn!
+				@IBOutlet weak var label_title: UILabel!
+				@IBOutlet weak var label_subTitle: UILabel!
+				@IBOutlet weak var btn_tap2: TapBtn!
+				@IBOutlet weak var label2_title: UILabel!
+				@IBOutlet weak var label2_subTitle: UILabel!
+				@IBOutlet weak var view_menu: UIView!
+				private var currentPage:Int = 0
+				private var watchType:WatchType!
+
+				lazy var pageViewController:FFPageViewController = {
+								let pageVC = FFPageViewController()
+								pageVC.view.backgroundColor = .clear
+								pageVC.scrollview.backgroundColor = .clear
+
+								pageVC.scrollview.bounces = false
+								return pageVC
+				}()
+
+				private var lineImage:UIImageView = {
+								let img = UIImageView(image: UIImage(named: "icon_unline_1"))
+								return img
+				}()
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+								switch watchType {
+												case .collect:
+																title = "我的收藏"
+																label_title.text = "疗 愈"
+																label_subTitle.text = "Meditate"
+																label2_title.text = "课 程"
+																label2_subTitle.text = "course"
+												case .history:
+																title = "观看历史"
+																label_title.text = "疗 愈"
+																label_subTitle.text = "Meditate"
+																label2_title.text = "课 程"
+																label2_subTitle.text = "course"
+												case .payment:
+																title = "我的已购"
+																label_title.text = "已购课程"
+																label_subTitle.text = "Purchased course"
+																label2_title.text = "已购音频"
+																label2_subTitle.text = "Purchased audio"
+												case .none:
+																title = ""
+								}
+    }
+
+				init(type:WatchType) {
+								super.init(nibName: nil, bundle: nil)
+								self.watchType = type
+				}
+				
+				required init?(coder: NSCoder) {
+								fatalError("init(coder:) has not been implemented")
+				}
+				
+				override func setUI() {
+								view_menu.addSubview(lineImage)
+
+								lineImage.snp.makeConstraints { make in
+												make.centerX.equalTo(btn_tap1)
+												make.bottom.equalTo(btn_tap1.snp.bottom).offset(-10)
+								}
+
+								view.addSubview(pageViewController.view)
+								pageViewController.view.backgroundColor = .clear
+								pageViewController.delegate = self
+								pageViewController.view.snp.makeConstraints { make in
+												make.top.equalTo(view_menu.snp.bottom)
+												make.left.right.bottom.equalToSuperview()
+								}
+				}
+
+				@IBAction func tapAction(_ sender: TapBtn) {
+
+							let page	= sender == btn_tap1 ? 0:1
+
+								pageViewController.scroll(toPage: page, animation: true)
+				}
+}
+
+extension WatchHistoryVC:FFPageViewControllerDelegate{
+
+				func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
+								if self.currentPage != currentPage{
+												self.currentPage = currentPage
+												let tapBtn = currentPage == 0 ? btn_tap1:btn_tap2
+												UIView.animate(withDuration: 0.2) {
+																self.lineImage.snp.remakeConstraints { make in
+																				make.centerX.equalTo(tapBtn!)
+																				make.bottom.equalTo(tapBtn!.snp.bottom).offset(-10)
+																}
+																self.view.layoutIfNeeded()
+												}
+								}
+				}
+
+				func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
+								return 2
+				}
+
+				func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
+								return WatchHistoryDetailVC(page: page)
+				}
+}
diff --git a/XQMuse/Root/Me/VC/WatchHistoryVC.xib b/XQMuse/Root/Me/VC/WatchHistoryVC.xib
new file mode 100644
index 0000000..3b480b5
--- /dev/null
+++ b/XQMuse/Root/Me/VC/WatchHistoryVC.xib
@@ -0,0 +1,152 @@
+<?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="WatchHistoryVC" customModule="XQMuse" customModuleProvider="target">
+            <connections>
+                <outlet property="btn_tap1" destination="N3r-qV-jvT" id="oWD-sw-wme"/>
+                <outlet property="btn_tap2" destination="mVV-m5-BSs" id="G99-Mh-MuH"/>
+                <outlet property="label2_subTitle" destination="8Eu-M8-JYF" id="hp6-Tg-fAN"/>
+                <outlet property="label2_title" destination="nAp-Sq-gu0" id="Frq-1O-zgu"/>
+                <outlet property="label_subTitle" destination="hyo-uT-Ae1" id="aYl-Cy-9LD"/>
+                <outlet property="label_title" destination="XWw-mG-mV5" id="BPD-RX-0ZG"/>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+                <outlet property="view_menu" destination="zId-Ju-XAg" id="ud9-83-QGK"/>
+            </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>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="top" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_voice_top" translatesAutoresizingMaskIntoConstraints="NO" id="Ftr-21-raE">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="297"/>
+                </imageView>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="krq-u0-CTV">
+                    <rect key="frame" x="0.0" y="59" width="393" height="5"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="5" id="McQ-3H-a8M"/>
+                    </constraints>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zId-Ju-XAg">
+                    <rect key="frame" x="0.0" y="64" width="393" height="81"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_watch" translatesAutoresizingMaskIntoConstraints="NO" id="RgY-jg-oLt">
+                            <rect key="frame" x="0.0" y="0.0" width="393" height="81"/>
+                        </imageView>
+                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="9Gk-LV-9V4">
+                            <rect key="frame" x="25" y="0.0" width="343" height="81"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="N3r-qV-jvT" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
+                                    <rect key="frame" x="0.0" y="0.0" width="171.66666666666666" height="81"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="疗 愈" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XWw-mG-mV5">
+                                            <rect key="frame" x="65" y="22" width="41.333333333333343" height="17"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="17" id="cfA-1T-aTt"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                                            <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="Meditate" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hyo-uT-Ae1">
+                                            <rect key="frame" x="72.333333333333329" y="47.666666666666671" width="27" height="5"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="5" id="c3U-Za-4xX"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" pointSize="6"/>
+                                            <color key="textColor" red="0.039215686270000001" green="0.25882352939999997" blue="0.074509803920000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstItem="XWw-mG-mV5" firstAttribute="top" secondItem="N3r-qV-jvT" secondAttribute="top" constant="22" id="Btc-Wn-xy0"/>
+                                        <constraint firstItem="hyo-uT-Ae1" firstAttribute="centerX" secondItem="XWw-mG-mV5" secondAttribute="centerX" id="Cuv-YX-AiP"/>
+                                        <constraint firstItem="XWw-mG-mV5" firstAttribute="centerX" secondItem="N3r-qV-jvT" secondAttribute="centerX" id="RvO-hP-jzZ"/>
+                                        <constraint firstItem="hyo-uT-Ae1" firstAttribute="top" secondItem="XWw-mG-mV5" secondAttribute="bottom" constant="8.5" id="gr1-DB-2fz"/>
+                                    </constraints>
+                                    <connections>
+                                        <action selector="tapAction:" destination="-1" eventType="touchUpInside" id="nJx-kT-Yle"/>
+                                    </connections>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mVV-m5-BSs" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
+                                    <rect key="frame" x="171.66666666666663" y="0.0" width="171.33333333333337" height="81"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="课 程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nAp-Sq-gu0">
+                                            <rect key="frame" x="65.000000000000028" y="22" width="41.333333333333343" height="17"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="17" id="gqk-lU-Pbs"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                                            <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="course" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Eu-M8-JYF">
+                                            <rect key="frame" x="75.333333333333343" y="47.666666666666671" width="20.666666666666671" height="5"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="5" id="FJw-5a-vtX"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" pointSize="6"/>
+                                            <color key="textColor" red="0.039215686270000001" green="0.25882352939999997" blue="0.074509803920000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstItem="8Eu-M8-JYF" firstAttribute="top" secondItem="nAp-Sq-gu0" secondAttribute="bottom" constant="8.5" id="8h6-bc-b0I"/>
+                                        <constraint firstItem="nAp-Sq-gu0" firstAttribute="top" secondItem="mVV-m5-BSs" secondAttribute="top" constant="22" id="Pgl-Av-7Ka"/>
+                                        <constraint firstItem="nAp-Sq-gu0" firstAttribute="centerX" secondItem="mVV-m5-BSs" secondAttribute="centerX" id="TqA-Yd-lA6"/>
+                                        <constraint firstItem="8Eu-M8-JYF" firstAttribute="centerX" secondItem="nAp-Sq-gu0" secondAttribute="centerX" id="sG8-kp-DCj"/>
+                                    </constraints>
+                                    <connections>
+                                        <action selector="tapAction:" destination="-1" eventType="touchUpInside" id="cmv-tT-7ND"/>
+                                    </connections>
+                                </view>
+                            </subviews>
+                        </stackView>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="9Gk-LV-9V4" secondAttribute="trailing" constant="25" id="C4w-IL-9vF"/>
+                        <constraint firstItem="RgY-jg-oLt" firstAttribute="top" secondItem="zId-Ju-XAg" secondAttribute="top" id="DFf-ON-gYP"/>
+                        <constraint firstAttribute="bottom" secondItem="RgY-jg-oLt" secondAttribute="bottom" id="Db1-tn-ror"/>
+                        <constraint firstAttribute="bottom" secondItem="9Gk-LV-9V4" secondAttribute="bottom" id="M5i-e6-fxR"/>
+                        <constraint firstItem="9Gk-LV-9V4" firstAttribute="top" secondItem="zId-Ju-XAg" secondAttribute="top" id="Ppa-PZ-JO7"/>
+                        <constraint firstAttribute="width" secondItem="zId-Ju-XAg" secondAttribute="height" multiplier="1:0.2064" id="SkF-7k-UeZ"/>
+                        <constraint firstItem="9Gk-LV-9V4" firstAttribute="leading" secondItem="zId-Ju-XAg" secondAttribute="leading" constant="25" id="o92-12-fHA"/>
+                        <constraint firstAttribute="trailing" secondItem="RgY-jg-oLt" secondAttribute="trailing" id="oVk-br-x7f"/>
+                        <constraint firstItem="RgY-jg-oLt" firstAttribute="leading" secondItem="zId-Ju-XAg" secondAttribute="leading" id="phi-Pn-8aZ"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="zId-Ju-XAg" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="59l-W0-yWN"/>
+                <constraint firstItem="krq-u0-CTV" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="67n-rS-jQ1"/>
+                <constraint firstItem="zId-Ju-XAg" firstAttribute="top" secondItem="krq-u0-CTV" secondAttribute="bottom" id="Ehp-8m-Ag3"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Ftr-21-raE" secondAttribute="trailing" id="SlS-JK-9S6"/>
+                <constraint firstItem="krq-u0-CTV" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="Tkh-Oy-nNu"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="krq-u0-CTV" secondAttribute="trailing" id="ZBF-Ed-mgR"/>
+                <constraint firstItem="zId-Ju-XAg" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" id="dIN-I8-SMl"/>
+                <constraint firstItem="Ftr-21-raE" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="sDG-Mw-g3L"/>
+                <constraint firstItem="Ftr-21-raE" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="suc-1n-FFx"/>
+            </constraints>
+            <point key="canvasLocation" x="58.778625954198468" y="20.422535211267608"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="bg_voice_top" width="390" height="297"/>
+        <image name="bg_watch" width="390" height="80.666664123535156"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/XQMuse/Root/Other/View/BitrhdayPickerView.swift b/XQMuse/Root/Other/View/BitrhdayPickerView.swift
new file mode 100644
index 0000000..2c96537
--- /dev/null
+++ b/XQMuse/Root/Other/View/BitrhdayPickerView.swift
@@ -0,0 +1,292 @@
+//
+//  BitrhdayPickerView.swift
+//  JKFitness
+//
+//  Created by 无故事王国 on 2024/2/20.
+//
+
+import UIKit
+import JQTools
+
+class BitrhdayPickerView: UIView {
+
+				enum DateType {
+								case YMD
+								case YM
+				}
+
+				private var view_content:UIView = {
+								let v = UIView()
+								v.backgroundColor = .white
+								return v
+				}()
+
+				private var label_title:UILabel = {
+								let label = UILabel()
+								label.font = .systemFont(ofSize: 18, weight: .medium)
+								label.textColor = .black.withAlphaComponent(0.8)
+								return label
+				}()
+
+				private var btn_close:UIButton = {
+								let btn = UIButton(type: .custom)
+								btn.setTitle("取消", for: .normal)
+								btn.titleLabel?.font = UIFont.systemFont(ofSize: 16)
+								btn.setTitleColor(.black.withAlphaComponent(0.59), for: .normal)
+								return btn
+				}()
+
+				private var btn_complete:UIButton = {
+								let btn = UIButton(type: .custom)
+								btn.setTitle("确认", for: .normal)
+								btn.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium)
+								btn.setTitleColor(Def_ThemeColor, for: .normal)
+								return btn
+				}()
+
+
+				private var picker:UIPickerView = {
+								let pickerView = UIPickerView()
+								return pickerView
+				}()
+
+
+				private var minYear:Int = 1960
+				private var maxYear:Int = Date().jq_nowYear() + 1
+				private var defaultYear:Int?
+				private var defaultMonth:Int?
+				private var defaultDay:Int?
+				private var resultValue:Double = 0
+				private var type:DateType!
+				private var clouse:((Date)->Void)!
+
+				override init(frame: CGRect) {
+								super.init(frame: frame)
+								backgroundColor = UIColor.black.withAlphaComponent(0)
+								addSubview(view_content)
+								view_content.snp.makeConstraints { make in
+												make.left.right.equalToSuperview()
+												make.bottom.equalToSuperview().offset(JQ_ScreenW * 0.6769)
+												make.height.equalTo(JQ_ScreenW * 0.6769)
+								}
+
+								view_content.addSubview(btn_complete)
+								btn_complete.snp.makeConstraints { make in
+												make.top.equalTo(18)
+												make.right.equalTo(-14)
+												make.height.equalTo(18)
+								}
+
+								view_content.addSubview(btn_close)
+								btn_close.addTarget(self, action: #selector(closeAction), for: .touchUpInside)
+								btn_close.snp.makeConstraints { make in
+												make.top.equalTo(18)
+												make.left.equalTo(14)
+												make.height.equalTo(18)
+								}
+
+								view_content.addSubview(label_title)
+								label_title.snp.makeConstraints { make in
+												make.top.equalTo(30)
+												make.centerX.equalToSuperview()
+												make.height.equalTo(18)
+								}
+								
+
+								layoutIfNeeded()
+				}
+
+				private func setUI(){
+								var items = Array<String>()
+								if type == .YMD{
+												items = ["年","月","日"]
+								}else{
+												items = ["年","月"]
+								}
+
+								let stackView =  UIStackView()
+								stackView.axis = .horizontal
+								stackView.distribution = .fillEqually
+								view_content.addSubview(stackView)
+								stackView.snp.makeConstraints { make in
+												make.top.equalTo(label_title.snp.bottom).offset(27)
+												make.height.equalTo(25)
+												make.centerX.equalToSuperview()
+												make.left.equalToSuperview().offset(30)
+												make.right.equalToSuperview().offset(-30)
+								}
+
+								for (_,v) in items.enumerated(){
+												let label	 = UILabel()
+												label.text = v
+												label.font = UIFont.systemFont(ofSize: 18, weight: .medium)
+												label.textColor = .black.withAlphaComponent(0.8)
+												label.textAlignment = .center
+												stackView.addArrangedSubview(label)
+								}
+
+								view_content.addSubview(picker)
+								picker.delegate = self
+								picker.dataSource = self
+								picker.snp.makeConstraints { make in
+												make.top.equalTo(label_title.snp.bottom).offset(50)
+												make.bottom.equalToSuperview().offset(-13)
+												make.left.equalToSuperview().offset(30)
+												make.right.equalToSuperview().offset(-30)
+								}
+
+								btn_complete.addTarget(self, action: #selector(completeAction), for: .touchUpInside)
+				}
+
+				override func layoutIfNeeded() {
+								super.layoutIfNeeded()
+								view_content.jq_addCorners(corner: [.topLeft,.topRight], radius: 22)
+				}
+
+				required init?(coder: NSCoder) {
+								fatalError("init(coder:) has not been implemented")
+				}
+
+				static func show(title:String,type:DateType,defaultYear:Int? = nil,defaultMonth:Int? = nil,defaultDay:Int? = nil,minYear:Int = 1960,clouse:@escaping (Date)->Void){
+								let pickerView = BitrhdayPickerView(frame: sceneDelegate?.window?.frame ?? .zero)
+								pickerView.minYear = minYear
+								pickerView.clouse = clouse
+								pickerView.label_title.text = title
+								pickerView.defaultYear = defaultYear
+								pickerView.defaultMonth = defaultMonth
+								pickerView.defaultDay = defaultDay
+								pickerView.type = type
+								sceneDelegate?.window?.addSubview(pickerView)
+								pickerView.setUI()
+
+								UIView.animate(withDuration: 0.35) {
+												pickerView.backgroundColor = UIColor.black.withAlphaComponent(0.7)
+												pickerView.view_content.snp.updateConstraints { make in
+																make.bottom.equalToSuperview()
+												}
+												pickerView.layoutIfNeeded()
+								}completion: { _ in
+												pickerView.picker.reloadAllComponents()
+
+												switch type {
+																case .YMD:
+																				if defaultDay != nil{
+																								pickerView.picker.selectRow(defaultDay! - 1, inComponent: 2, animated: true)
+																				}
+																				fallthrough
+																case .YM:
+																				if defaultYear != nil{
+																								pickerView.picker.selectRow(defaultYear! - pickerView.minYear, inComponent: 0, animated: true)
+																				}
+																				if defaultMonth != nil{
+																								pickerView.picker.selectRow(defaultMonth! - 1, inComponent: 1, animated: true)
+																				}
+												}
+												pickerView.picker.reloadAllComponents()
+								}
+				}
+
+				@objc func closeAction(){
+								UIView.animate(withDuration: 0.35) {
+												self.backgroundColor = UIColor.black.withAlphaComponent(0)
+												self.view_content.snp.updateConstraints { make in
+																make.bottom.equalToSuperview().offset(JQ_ScreenW * 0.7846)
+												}
+												self.layoutIfNeeded()
+								}completion: { _ in
+												self.removeFromSuperview()
+								}
+				}
+
+				@objc func completeAction(){
+								let year = picker.selectedRow(inComponent: 0) + minYear
+								let month = picker.selectedRow(inComponent: 1) + 1
+
+								var day = 1
+								if type == .YMD{
+												day = picker.selectedRow(inComponent: 2) + 1
+								}
+
+								clouse(Date.jq_format(year: year, month: month, day: day,hour: 0,minute: 0,second: 0)!)
+								closeAction()
+				}
+}
+
+extension BitrhdayPickerView:UIPickerViewDelegate & UIPickerViewDataSource{
+				func numberOfComponents(in pickerView: UIPickerView) -> Int {
+								if type == .YMD{
+												return 3
+								}
+								if type == .YM{
+												return 2
+								}
+								return 0
+				}
+
+				func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
+								return 40
+				}
+
+				func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
+
+								var resultLabel:UILabel?
+								if let label = view as? UILabel{
+												resultLabel = label
+								}else{
+												resultLabel = UILabel()
+												resultLabel!.font = UIFont.systemFont(ofSize: 18,weight: .semibold)
+												resultLabel!.textColor = UIColor(hexString: "#3C3C3C")
+												resultLabel!.textAlignment = .center
+								}
+
+								if component == 0{
+												resultLabel!.text = "\(minYear + row)"
+								}
+
+								if component == 1{
+												resultLabel!.text = String(format: "%02ld", row + 1)
+								}
+
+								if component == 2{
+
+												resultLabel!.text = String(format: "%02ld", row + 1)
+								}
+
+								return resultLabel!
+				}
+
+				func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
+								if component == 0{
+												return maxYear - minYear
+								}
+
+								if component == 1{
+												if pickerView.selectedRow(inComponent: 0) + minYear == Date().jq_nowYear(){
+																return Date().jq_nowMonth()
+												}
+												return 12
+								}
+
+								if component == 2{
+												if pickerView.selectedRow(inComponent: 0) + minYear == Date().jq_nowYear() && pickerView.selectedRow(inComponent: 1) + 1 == Date().jq_nowMonth(){
+																return Date().jq_nowDay()
+												}
+												return Date.jq_getDays(pickerView.selectedRow(inComponent: 0) + minYear, pickerView.selectedRow(inComponent: 1) + 1)
+								}
+
+								return 0
+				}
+
+				func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
+								if component == 0{
+												pickerView.reloadComponent(1)
+												if type == .YMD{
+																pickerView.reloadComponent(2)
+												}
+								}
+
+								if component == 1 && type == .YMD{
+												pickerView.reloadComponent(2)
+								}
+				}
+}
diff --git a/XQMuse/Root/Other/View/CommonAlertSheetView.swift b/XQMuse/Root/Other/View/CommonAlertSheetView.swift
index f00f3be..4ac98fa 100644
--- a/XQMuse/Root/Other/View/CommonAlertSheetView.swift
+++ b/XQMuse/Root/Other/View/CommonAlertSheetView.swift
@@ -32,7 +32,7 @@
 				static func show(items:[String],clouse:@escaping (Int)->Void){
 								let alertView = CommonAlertSheetView.jq_loadNibView()
 								alertView.frame = sceneDelegate?.window?.frame ?? .zero
-								alertView.cons_tableHei.constant = CGFloat(items.count * 50)
+								alertView.cons_tableHei.constant = CGFloat(items.count * 56)
 								sceneDelegate?.window?.addSubview(alertView)
 								alertView.cons_viewBottom.constant = 0
 								alertView.items = items
@@ -48,7 +48,7 @@
 
 				override func layoutSubviews() {
 								super.layoutSubviews()
-								let totalH = Double(items.count * 50) + UIDevice.jq_safeEdges.bottom + 50
+								let totalH = Double(items.count * 56) + UIDevice.jq_safeEdges.bottom + 56
 								view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20,height: totalH)
 				}
 
@@ -86,7 +86,7 @@
 				}
 
 				func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
-								return 50
+								return 56
 				}
 }
 
@@ -100,8 +100,8 @@
 								selectionStyle = .none
 								label_content = UILabel()
 								label_content.text = "123"
-								label_content.font = UIFont.systemFont(ofSize: 16, weight: .medium)
-								label_content.textColor = .black.withAlphaComponent(0.8)
+								label_content.font = UIFont.systemFont(ofSize: 15, weight: .medium)
+								label_content.textColor = UIColor(hexString: "#6B6B6B")
 
 								contentView.addSubview(label_content)
 								label_content.snp.makeConstraints { make in
@@ -109,7 +109,7 @@
 								}
 
 								let lineView = UIView()
-								lineView.backgroundColor = UIColor(hexStr: "#DBDBE7")
+								lineView.backgroundColor = UIColor(hexStr: "#979797").withAlphaComponent(0.05)
 								contentView.addSubview(lineView)
 								lineView.snp.makeConstraints { make in
 												make.left.equalTo(15)
diff --git a/XQMuse/Root/Other/View/CommonAlertSheetView.xib b/XQMuse/Root/Other/View/CommonAlertSheetView.xib
index da07b0c..67069e5 100644
--- a/XQMuse/Root/Other/View/CommonAlertSheetView.xib
+++ b/XQMuse/Root/Other/View/CommonAlertSheetView.xib
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<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="22130"/>
+        <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"/>
@@ -11,19 +11,22 @@
     <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="CommonAlertSheetView" customModule="WanPai" customModuleProvider="target">
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="CommonAlertSheetView" 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="ZCi-js-xyb">
-                    <rect key="frame" x="0.0" y="678" width="393" height="174"/>
+                    <rect key="frame" x="0.0" y="654" width="393" height="198"/>
                     <subviews>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5zv-r1-Tbh">
-                            <rect key="frame" x="0.0" y="100" width="393" height="32"/>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                            <rect key="frame" x="0.0" y="100" width="393" height="56"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="56" id="UcK-me-kEd"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" pointSize="15"/>
                             <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.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
+                                <color key="titleColor" red="0.19607843137254902" green="0.19607843137254902" blue="0.19607843137254902" alpha="0.90000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                             </state>
                             <connections>
                                 <action selector="hiddenAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="ngJ-yG-9b2"/>

--
Gitblit v1.7.1