From aad7ea65994d33014308fd24dadc4308b35053e6 Mon Sep 17 00:00:00 2001 From: 杨锴 <841720330@qq.com> Date: 星期三, 30 十月 2024 14:59:30 +0800 Subject: [PATCH] fix --- XQMuse/Root/Course/VC/CourseDetialVC.swift | 9 XQMuse/Root/Me/VC/InviteVC.swift | 46 +++++ XQMuse/Root/Other/View/PlaySettingView.swift | 14 + XQMuse/Root/TreeGroup/TreeTeskVC.swift | 4 XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@2x.png | 0 XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib | 5 XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/组 20@3x.png | 0 XQMuse/.DS_Store | 0 XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@2x.png | 0 XQMuse/Root/Other/View/PlaySettingView.xib | 10 XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@3x.png | 0 XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/bg_invite@2x.png | 0 XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@3x.png | 0 XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@2x.png | 0 XQMuse.xcodeproj/project.pbxproj | 8 + XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@2x.png | 0 XQMuse/Root/Network/Models.swift | 14 + XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png | 0 XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@3x.png | 0 XQMuse/Root/Me/VC/UserProfileVC.swift | 21 ++ XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@3x.png | 0 XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@2x.png | 0 XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/组 20@2x.png | 0 XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@3x.png | 0 XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@3x.png | 0 XQMuse/Root/Home/VC/HomeItemDetailVC.swift | 2 XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/Contents.json | 22 ++ XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@2x.png | 0 XQMuse/Root/Other/View/ShareView.xib | 7 XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@2x.png | 0 XQMuse/Root/PayMusicView/PayMusicVC.swift | 33 ++-- XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png | 0 XQMuse/Root/Home/HomeVC.swift | 8 + XQMuse/Root/Me/MeVC.swift | 4 XQMuse/Assets.xcassets/Placeholder/demo_bg.imageset/demo_bg@2x.jpg | 0 XQMuse/Root/Me/VC/InviteVC.xib | 143 +++++++++++++++++ XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift | 74 +++++++++ XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/bg_invite@3x.png | 0 XQMuse/Info.plist | 4 XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@3x.png | 0 XQMuse/Root/Network/Services.swift | 10 XQMuse/Root/Other/View/ShareView.swift | 27 +++ 42 files changed, 423 insertions(+), 42 deletions(-) diff --git a/XQMuse.xcodeproj/project.pbxproj b/XQMuse.xcodeproj/project.pbxproj index f1523eb..a1a4809 100644 --- a/XQMuse.xcodeproj/project.pbxproj +++ b/XQMuse.xcodeproj/project.pbxproj @@ -53,6 +53,8 @@ 1324A6492C80632500AA5098 /* SourceHanSerifCN-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 1324A6472C80632500AA5098 /* SourceHanSerifCN-Regular.otf */; }; 1324A64C2C80706700AA5098 /* PlanGuide_1_VC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1324A64A2C80706700AA5098 /* PlanGuide_1_VC.swift */; }; 1324A64D2C80706700AA5098 /* PlanGuide_1_VC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1324A64B2C80706700AA5098 /* PlanGuide_1_VC.xib */; }; + 1325F8DF2CD2021B00907C04 /* InviteVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1325F8DD2CD2021B00907C04 /* InviteVC.swift */; }; + 1325F8E02CD2021B00907C04 /* InviteVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1325F8DE2CD2021B00907C04 /* InviteVC.xib */; }; 13271D852C75EF8200DE1328 /* AddBankInfoVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13271D842C75EF8200DE1328 /* AddBankInfoVC.xib */; }; 13271D862C75EF8200DE1328 /* AddBankInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13271D832C75EF8200DE1328 /* AddBankInfoVC.swift */; }; 1327C67D2C81C288005DA44B /* PlanGuidePromptSupplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1327C67C2C81C288005DA44B /* PlanGuidePromptSupplyView.swift */; }; @@ -355,6 +357,8 @@ 1324A6472C80632500AA5098 /* SourceHanSerifCN-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SourceHanSerifCN-Regular.otf"; sourceTree = "<group>"; }; 1324A64A2C80706700AA5098 /* PlanGuide_1_VC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlanGuide_1_VC.swift; sourceTree = "<group>"; }; 1324A64B2C80706700AA5098 /* PlanGuide_1_VC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PlanGuide_1_VC.xib; sourceTree = "<group>"; }; + 1325F8DD2CD2021B00907C04 /* InviteVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteVC.swift; sourceTree = "<group>"; }; + 1325F8DE2CD2021B00907C04 /* InviteVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = InviteVC.xib; sourceTree = "<group>"; }; 13271D832C75EF8200DE1328 /* AddBankInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddBankInfoVC.swift; sourceTree = "<group>"; }; 13271D842C75EF8200DE1328 /* AddBankInfoVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AddBankInfoVC.xib; sourceTree = "<group>"; }; 1327C67C2C81C288005DA44B /* PlanGuidePromptSupplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlanGuidePromptSupplyView.swift; sourceTree = "<group>"; }; @@ -681,6 +685,8 @@ 134803DB2C7707BA00F4FDDA /* ContactCustomerVC.xib */, 13649F9C2C770C9C00F4E0EE /* ContactCustomerDetailVC.swift */, 13649F9D2C770C9C00F4E0EE /* ContactCustomerDetailVC.xib */, + 1325F8DD2CD2021B00907C04 /* InviteVC.swift */, + 1325F8DE2CD2021B00907C04 /* InviteVC.xib */, ); path = VC; sourceTree = "<group>"; @@ -1474,6 +1480,7 @@ 13EFCDC22C6DD27A00B51AE6 /* PaymentOrderVC.xib in Resources */, 13A379FC2C75B7280038D5C8 /* BindAccountVC.xib in Resources */, 13F24E412C758DF100D2BA90 /* LogoutAccountVC.xib in Resources */, + 1325F8E02CD2021B00907C04 /* InviteVC.xib in Resources */, 130AA4A82C72F71700F20944 /* CourseDetialVideoVC.xib in Resources */, 13BF65D82C80402500E20F0E /* bg_movie.mov in Resources */, 13FB6D7D2C6EE27100A0685D /* CourseOfficialItemCCell.xib in Resources */, @@ -1723,6 +1730,7 @@ 135C2A682C7F033300CC2A67 /* CLFullScreenRightController.swift in Sources */, 139C16632C6A108A00A924D9 /* HomeRelaxBannerCCell.swift in Sources */, 131E75C52C6B87C500E2C85D /* ForgotPasswordChangeVC.swift in Sources */, + 1325F8DF2CD2021B00907C04 /* InviteVC.swift in Sources */, 13A6594F2C6F641100F731FA /* CourseDetail_2_Inner_TCell.swift in Sources */, 13334FD52C731C1B00914086 /* VideoView.swift in Sources */, 13FF0B452C75C820008E26CF /* WalletVC.swift in Sources */, diff --git a/XQMuse/.DS_Store b/XQMuse/.DS_Store index 222d961..f021544 100644 --- a/XQMuse/.DS_Store +++ b/XQMuse/.DS_Store Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@2x.png index 38cf0ec..c83f705 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@2x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@3x.png index 3003be4..e12ceb9 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@3x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_guide_1.imageset/bg_guide_1@3x.png Binary files differ diff --git "a/XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/\347\273\204 20@2x.png" "b/XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/\347\273\204 20@2x.png" index eac36e3..409ea6a 100644 --- "a/XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/\347\273\204 20@2x.png" +++ "b/XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/\347\273\204 20@2x.png" Binary files differ diff --git "a/XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/\347\273\204 20@3x.png" "b/XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/\347\273\204 20@3x.png" index f2f4c2b..f19db9d 100644 --- "a/XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/\347\273\204 20@3x.png" +++ "b/XQMuse/Assets.xcassets/Placeholder/bg_guide_home.imageset/\347\273\204 20@3x.png" Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/Contents.json b/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/Contents.json new file mode 100644 index 0000000..bc39766 --- /dev/null +++ b/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "bg_invite@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "bg_invite@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/bg_invite@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/bg_invite@2x.png new file mode 100644 index 0000000..15c0c66 --- /dev/null +++ b/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/bg_invite@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/bg_invite@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/bg_invite@3x.png new file mode 100644 index 0000000..2db165a --- /dev/null +++ b/XQMuse/Assets.xcassets/Placeholder/bg_invite.imageset/bg_invite@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png index fd1e0d0..b8713f3 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png index 7861b69..4e25b65 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_pavilion_top.imageset/bg_pavilion_top@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@2x.png index 613cc5e..de25e8f 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@2x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@3x.png index 42f110e..09301f1 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@3x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_prompt.imageset/bg_prompt@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@2x.png index d6c5368..1cf8bbf 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@2x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@3x.png index 0cb99e6..dbdbd9f 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@3x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_vip.imageset/bg_vip@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@2x.png b/XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@2x.png index 2e4ad27..8904a9b 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@2x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@3x.png b/XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@3x.png index 7665a7b..84f5c9e 100644 --- a/XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@3x.png +++ b/XQMuse/Assets.xcassets/Placeholder/bg_voice_top.imageset/bg_voice_top@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/demo_bg.imageset/demo_bg@2x.jpg b/XQMuse/Assets.xcassets/Placeholder/demo_bg.imageset/demo_bg@2x.jpg index efbae71..bced679 100644 --- a/XQMuse/Assets.xcassets/Placeholder/demo_bg.imageset/demo_bg@2x.jpg +++ b/XQMuse/Assets.xcassets/Placeholder/demo_bg.imageset/demo_bg@2x.jpg Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@2x.png b/XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@2x.png index 6f5a2ef..4aea188 100644 --- a/XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@2x.png +++ b/XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@3x.png b/XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@3x.png index 814c4cb..8522056 100644 --- a/XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@3x.png +++ b/XQMuse/Assets.xcassets/Placeholder/demo_pg_1.imageset/demo_pg_1@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@2x.png b/XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@2x.png index 3c70cac..f62863b 100644 --- a/XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@2x.png +++ b/XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@3x.png b/XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@3x.png index 21a9a45..d911695 100644 --- a/XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@3x.png +++ b/XQMuse/Assets.xcassets/Placeholder/home_top_bg.imageset/home_top_bg@3x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@2x.png b/XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@2x.png index 1c50b11..259e42c 100644 --- a/XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@2x.png +++ b/XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@2x.png Binary files differ diff --git a/XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@3x.png b/XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@3x.png index 121101e..7797e69 100644 --- a/XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@3x.png +++ b/XQMuse/Assets.xcassets/Placeholder/login_top_bg.imageset/login_top_bg@3x.png Binary files differ diff --git a/XQMuse/Info.plist b/XQMuse/Info.plist index 13fbc52..c68ccb3 100644 --- a/XQMuse/Info.plist +++ b/XQMuse/Info.plist @@ -20,6 +20,10 @@ <string>weixin</string> <string>weixinULAPI</string> <string>weixinURLParamsAPI</string> + <string>baidumap</string> + <string>comgooglemaps</string> + <string>qqmap</string> + <string>iosamap</string> </array> <key>Localization native development region</key> <string>China</string> diff --git a/XQMuse/Root/Course/VC/CourseDetialVC.swift b/XQMuse/Root/Course/VC/CourseDetialVC.swift index a6241ec..acb976c 100644 --- a/XQMuse/Root/Course/VC/CourseDetialVC.swift +++ b/XQMuse/Root/Course/VC/CourseDetialVC.swift @@ -149,7 +149,10 @@ if needPayment{ let attribute = AttributedStringbuilder.build().add(string: " 疗愈币", withFont: .systemFont(ofSize: 12,weight: .bold), withColor: UIColor(hexString: "#F6F6F6")!).add(string: "\(m.generalPrice.jq_formatFloat)", withFont: .systemFont(ofSize: 21.71, weight: .bold), withColor: UIColor(hexString: "#F6F6F6")!).add(string: " 立即购买 ", withFont: .systemFont(ofSize: 16, weight: .bold), withColor: UIColor(hexString: "#F6F6F6")!).mutableAttributedString self.studyBtn.setAttributedTitle(attribute, for: .normal) - } + }else{ + let attribute = AttributedStringbuilder.build().add(string: " 立即学习 ", withFont: .systemFont(ofSize: 16, weight: .bold), withColor: UIColor(hexString: "#F6F6F6")!).mutableAttributedString + self.studyBtn.setAttributedTitle(attribute, for: .normal) + } if m.detailUrl.jq_isVideo{ self.style = .style1 @@ -239,7 +242,9 @@ } @objc func shareAction(){ - ShareView.show() + // xqzhihui.com/courseOnline 线上课程详情 +// xqzhihui.com/courseOffOnline 线下课程详情 + ShareView.show(URL(string: "xqzhihui.com/courseOffOnline")!) } @objc func handleAction(_ btn:QMUIButton){ diff --git a/XQMuse/Root/Home/HomeVC.swift b/XQMuse/Root/Home/HomeVC.swift index 602872e..97d7309 100644 --- a/XQMuse/Root/Home/HomeVC.swift +++ b/XQMuse/Root/Home/HomeVC.swift @@ -234,6 +234,14 @@ extension HomeVC:UITableViewDelegate & UITableViewDataSource{ func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + + if indexPath.section == 0{ + if let m = viewModel.todyModel{ + let vc = HomeItemDetailVC(id: m.id) + push(vc: vc) + } + } + if indexPath.section == 2{ let vc = WebVC(type: .guide) vc.title = "心泉·疗愈" diff --git a/XQMuse/Root/Home/VC/HomeItemDetailVC.swift b/XQMuse/Root/Home/VC/HomeItemDetailVC.swift index ee160b1..ca7a6ad 100644 --- a/XQMuse/Root/Home/VC/HomeItemDetailVC.swift +++ b/XQMuse/Root/Home/VC/HomeItemDetailVC.swift @@ -233,7 +233,7 @@ } @objc func shareAction(){ - ShareView.show() + ShareView.show(URL(string:"xqzhihui.com/meditation")!) } override func viewDidLayoutSubviews() { diff --git a/XQMuse/Root/Me/MeVC.swift b/XQMuse/Root/Me/MeVC.swift index e2d5589..9e4909b 100644 --- a/XQMuse/Root/Me/MeVC.swift +++ b/XQMuse/Root/Me/MeVC.swift @@ -224,7 +224,9 @@ ///分享 @IBAction func shareAction(_ sender: QMUIButton) { - + let vc = InviteVC() + push(vc: vc) +// ShareView.show(URL(string: "xqzhihui.com/commission")!) } } diff --git a/XQMuse/Root/Me/VC/InviteVC.swift b/XQMuse/Root/Me/VC/InviteVC.swift new file mode 100644 index 0000000..9adf25f --- /dev/null +++ b/XQMuse/Root/Me/VC/InviteVC.swift @@ -0,0 +1,46 @@ +// +// InviteVC.swift +// XQMuse +// +// Created by 无故事王国 on 2024/10/30. +// + +import UIKit +import JQTools + +class InviteVC: BaseVC { + + @IBOutlet weak var label_title: UILabel! + @IBOutlet weak var btn_share: UIButton! + @IBOutlet weak var view_role: UIView! + @IBOutlet weak var label_role: UILabel! + @IBOutlet weak var img_qrCode: UIImageView! + @IBOutlet weak var img_poster: UIImageView! + + override func viewDidLoad() { + super.viewDidLoad() + title = "推广活动" + + Services.getCommissionRule().subscribe(onNext: {data in + if let m = data.data{ + self.img_qrCode.sd_setImage(with: URL(string: m.qrCode)) + self.img_poster.sd_setImage(with: URL(string: m.poster)) + self.label_role.attributedText = NSAttributedString.convertHtml(m.rules) + } + + }).disposed(by: disposeBag) + } + + override func setUI() { + label_title.font = Def_SourceHanSerif_Semibold(fontSize: 40) + btn_share.jq_cornerRadius = 21.25 + + + view_role.jq_gradientColor(colorArr: [UIColor(hexString: "#eafbeb")!.cgColor,UIColor.white.cgColor], cornerRadius: 20, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: nil, locations: nil) + } + + @IBAction func shareAction(_ sender: UIButton) { + ShareView.show("测试") + + } +} diff --git a/XQMuse/Root/Me/VC/InviteVC.xib b/XQMuse/Root/Me/VC/InviteVC.xib new file mode 100644 index 0000000..49341e1 --- /dev/null +++ b/XQMuse/Root/Me/VC/InviteVC.xib @@ -0,0 +1,143 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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="23084"/> + <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="InviteVC" customModule="XQMuse" customModuleProvider="target"> + <connections> + <outlet property="btn_share" destination="XbP-tV-8pd" id="0YX-oc-VDx"/> + <outlet property="img_poster" destination="IZY-Nj-jD0" id="hnL-OL-dhs"/> + <outlet property="img_qrCode" destination="bff-wn-eyk" id="FV9-RT-3rK"/> + <outlet property="label_role" destination="PXe-Ef-0Zn" id="E0d-R5-kBO"/> + <outlet property="label_title" destination="oFE-SE-88r" id="C2L-3T-B60"/> + <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> + <outlet property="view_role" destination="nfc-1h-yql" id="FWd-fZ-91R"/> + </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="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_invite" translatesAutoresizingMaskIntoConstraints="NO" id="IZY-Nj-jD0"> + <rect key="frame" x="0.0" y="0.0" width="393" height="483.66666666666669"/> + </imageView> + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kj8-pf-QQp"> + <rect key="frame" x="0.0" y="59" width="393" height="759"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fRO-Jr-RG3"> + <rect key="frame" x="0.0" y="0.0" width="393" height="576.66666666666663"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="邀好友赚分佣抽成" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oFE-SE-88r"> + <rect key="frame" x="45.333333333333343" y="74" width="302.66666666666663" height="48"/> + <fontDescription key="fontDescription" type="system" pointSize="40"/> + <color key="textColor" red="0.54117647058823526" green="0.68235294117647061" blue="0.396078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="INVITE FRIENDS TO EARN COMMISSION" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lCK-Mw-vTJ"> + <rect key="frame" x="116.66666666666667" y="131" width="159.66666666666663" height="9.6666666666666572"/> + <fontDescription key="fontDescription" type="system" pointSize="8"/> + <color key="textColor" red="0.54117647059999996" green="0.68235294120000001" blue="0.39607843139999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="bff-wn-eyk"> + <rect key="frame" x="113.33333333333333" y="177.33333333333337" width="166.33333333333337" height="168"/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="width" constant="166.5" id="BYS-EF-Iz8"/> + <constraint firstAttribute="height" constant="168" id="QuI-vr-Li7"/> + </constraints> + </imageView> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="XbP-tV-8pd"> + <rect key="frame" x="53.666666666666657" y="375.66666666666669" width="286" height="42.666666666666686"/> + <color key="backgroundColor" red="0.54117647059999996" green="0.68235294120000001" blue="0.39607843139999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="42.5" id="jad-bO-pIf"/> + </constraints> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="15"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="分享给好友赚佣金"/> + <connections> + <action selector="shareAction:" destination="-1" eventType="touchUpInside" id="Atz-SI-etO"/> + </connections> + </button> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nfc-1h-yql"> + <rect key="frame" x="20" y="448.33333333333331" width="353" height="98.333333333333314"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="分佣规则说明" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OEa-I3-lut"> + <rect key="frame" x="132" y="20.000000000000057" width="89.333333333333314" height="18"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="15"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PXe-Ef-0Zn"> + <rect key="frame" x="20" y="58.000000000000064" width="313" height="20.333333333333336"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstAttribute="trailing" secondItem="PXe-Ef-0Zn" secondAttribute="trailing" constant="20" id="50t-3i-mW2"/> + <constraint firstAttribute="bottom" secondItem="PXe-Ef-0Zn" secondAttribute="bottom" constant="20" id="9Xa-Zo-T2i"/> + <constraint firstItem="PXe-Ef-0Zn" firstAttribute="leading" secondItem="nfc-1h-yql" secondAttribute="leading" constant="20" id="G4Y-s1-lMi"/> + <constraint firstItem="OEa-I3-lut" firstAttribute="centerX" secondItem="nfc-1h-yql" secondAttribute="centerX" id="ImF-Cc-ENZ"/> + <constraint firstItem="PXe-Ef-0Zn" firstAttribute="top" secondItem="OEa-I3-lut" secondAttribute="bottom" constant="20" id="ZTS-aZ-hAQ"/> + <constraint firstItem="OEa-I3-lut" firstAttribute="top" secondItem="nfc-1h-yql" secondAttribute="top" constant="20" id="tde-zX-zeD"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="nfc-1h-yql" firstAttribute="top" secondItem="XbP-tV-8pd" secondAttribute="bottom" constant="30" id="04U-uD-YFh"/> + <constraint firstItem="XbP-tV-8pd" firstAttribute="top" secondItem="bff-wn-eyk" secondAttribute="bottom" constant="30.5" id="0ND-qB-iY4"/> + <constraint firstItem="oFE-SE-88r" firstAttribute="top" secondItem="fRO-Jr-RG3" secondAttribute="top" constant="74" id="3f7-Q1-n5C"/> + <constraint firstItem="lCK-Mw-vTJ" firstAttribute="centerX" secondItem="oFE-SE-88r" secondAttribute="centerX" id="87n-J7-eVR"/> + <constraint firstItem="oFE-SE-88r" firstAttribute="centerX" secondItem="fRO-Jr-RG3" secondAttribute="centerX" id="Alc-26-vLT"/> + <constraint firstItem="lCK-Mw-vTJ" firstAttribute="top" secondItem="oFE-SE-88r" secondAttribute="bottom" constant="9" id="Fxq-TA-MMT"/> + <constraint firstItem="XbP-tV-8pd" firstAttribute="leading" secondItem="fRO-Jr-RG3" secondAttribute="leading" constant="53.5" id="P23-ld-LdM"/> + <constraint firstItem="bff-wn-eyk" firstAttribute="top" secondItem="lCK-Mw-vTJ" secondAttribute="bottom" constant="36.5" id="Uas-XO-jrk"/> + <constraint firstItem="bff-wn-eyk" firstAttribute="centerX" secondItem="fRO-Jr-RG3" secondAttribute="centerX" id="V0p-rN-phX"/> + <constraint firstAttribute="trailing" secondItem="nfc-1h-yql" secondAttribute="trailing" constant="20" id="WbI-U1-XLA"/> + <constraint firstAttribute="trailing" secondItem="XbP-tV-8pd" secondAttribute="trailing" constant="53.5" id="duF-f1-FPy"/> + <constraint firstAttribute="bottom" secondItem="nfc-1h-yql" secondAttribute="bottom" constant="30" id="lAH-v1-5Pu"/> + <constraint firstItem="nfc-1h-yql" firstAttribute="leading" secondItem="fRO-Jr-RG3" secondAttribute="leading" constant="20" id="wsp-DZ-Vsl"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="fRO-Jr-RG3" firstAttribute="top" secondItem="Kj8-pf-QQp" secondAttribute="top" id="5Pg-TF-Gb9"/> + <constraint firstItem="fRO-Jr-RG3" firstAttribute="centerX" secondItem="Kj8-pf-QQp" secondAttribute="centerX" id="KVN-4X-zii"/> + <constraint firstAttribute="bottom" secondItem="fRO-Jr-RG3" secondAttribute="bottom" id="Oam-1S-ImW"/> + <constraint firstAttribute="trailing" secondItem="fRO-Jr-RG3" secondAttribute="trailing" id="QJe-O5-2zk"/> + <constraint firstItem="fRO-Jr-RG3" firstAttribute="leading" secondItem="Kj8-pf-QQp" secondAttribute="leading" id="g3X-lW-OHt"/> + </constraints> + </scrollView> + </subviews> + <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="Kj8-pf-QQp" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="IMW-r4-OkS"/> + <constraint firstItem="IZY-Nj-jD0" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="PQ2-Ha-kPM"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="Kj8-pf-QQp" secondAttribute="bottom" id="TFq-oj-nHs"/> + <constraint firstItem="IZY-Nj-jD0" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="TH6-Zy-Z3J"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Kj8-pf-QQp" secondAttribute="trailing" id="YAi-5i-Bes"/> + <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="IZY-Nj-jD0" secondAttribute="trailing" id="cef-7x-EhS"/> + <constraint firstItem="Kj8-pf-QQp" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="p90-x8-H82"/> + </constraints> + <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/> + </view> + </objects> + <resources> + <image name="bg_invite" width="390" height="483.66665649414062"/> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> +</document> diff --git a/XQMuse/Root/Me/VC/UserProfileVC.swift b/XQMuse/Root/Me/VC/UserProfileVC.swift index c4d2cdf..d323209 100644 --- a/XQMuse/Root/Me/VC/UserProfileVC.swift +++ b/XQMuse/Root/Me/VC/UserProfileVC.swift @@ -49,7 +49,11 @@ title = "个人资料" image_placeholder.isHidden = !UserViewModel.getAvatarInfo().avatar.isEmpty - image_user.sd_setImage(with: URL(string: UserViewModel.getAvatarInfo().avatar)!) + + if let url = URL(string: UserViewModel.getAvatarInfo().avatar){ + image_user.sd_setImage(with: url) + } + tf_nickName.text = UserViewModel.getAvatarInfo().nickname tf_realName.text = UserViewModel.getAvatarInfo().realname tf_sign.text = UserViewModel.getAvatarInfo().signature @@ -90,10 +94,17 @@ || location != UserViewModel.getAvatarInfo().location || hometown != UserViewModel.getAvatarInfo().hometown || email != UserViewModel.getAvatarInfo().email{ - Services.updateUserInfo(birthday: birthday, company: company, education: education, email: email, gender: gender, hometown: hometown, industry: industry, location: location, nickname: nickname, realname: realname, occupation: occupation, signature: signature).subscribe(onNext: {data in - NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil) - weakSelf.navigationController?.popViewController(animated: true) - }).disposed(by: weakSelf.disposeBag) + + CommonAlertView.show(title: "提示", content: "是否保存修改?",cancelStr: "不保存",completeStr: "保存") { state in + if state{ + Services.updateUserInfo(birthday: birthday, company: company, education: education, email: email, gender: gender, hometown: hometown, industry: industry, location: location, nickname: nickname, realname: realname, occupation: occupation, signature: signature).subscribe(onNext: {data in + NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil) + weakSelf.navigationController?.popViewController(animated: true) + }).disposed(by: weakSelf.disposeBag) + }else{ + weakSelf.navigationController?.popViewController(animated: true) + } + } }else{ weakSelf.navigationController?.popViewController(animated: true) } diff --git a/XQMuse/Root/Network/Models.swift b/XQMuse/Root/Network/Models.swift index 8cb4930..f9f4768 100644 --- a/XQMuse/Root/Network/Models.swift +++ b/XQMuse/Root/Network/Models.swift @@ -12,6 +12,7 @@ static let idKey = \UserDefaultSettingModel.id var id = 0 var volume:Double = 0.5 + var masterVolume:Double = 0.5 var bgm:BGMModel? var playModel:PlayMode = .line @@ -148,9 +149,9 @@ var distance: Double = 0 var hallName: String = "" var id: Int = 0 - var latitude: Int = 0 + var latitude: Double = 0 var listingStatus: Int = 0 - var longitude: Int = 0 + var longitude: Double = 0 var sortNum: Int = 0 var updateBy: String = "" var updateTime: String = "" @@ -425,6 +426,15 @@ var updateTime: String = "" } + +struct CommonRuleModel:HandyJSON{ + var id: Int = 0 + var poster: String = "" + var proportion: Int = 0 + var qrCode: String = "" + var rules: String = "" +} + class NoticeModel:HandyJSON{ var appUserId: Int = 0 var content: String = "" diff --git a/XQMuse/Root/Network/Services.swift b/XQMuse/Root/Network/Services.swift index 8ee500f..981a497 100644 --- a/XQMuse/Root/Network/Services.swift +++ b/XQMuse/Root/Network/Services.swift @@ -661,6 +661,12 @@ return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding(), progress: false) } + class func getCommissionRule()->Observable<BaseResponse<CommonRuleModel>>{ + let params = ParamsAppender.build(url: All_Url) + .interface(url: "/system/system/common-question/getCommissionRule") + return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding(), progress: false) + } + /// 问题列表 class func commonQuestion(page:Int,pageSize:Int = 20)->Observable<BaseResponse<BaseResponseList<CommonQuestionModel>>>{ let params = ParamsAppender.build(url: All_Url) @@ -716,8 +722,4 @@ .append(key: "apipost_id", value: "37771d0cf0e312") return NetworkRequest.request(params: params, method: .post, progress: false) } - - - - } diff --git a/XQMuse/Root/Other/View/PlaySettingView.swift b/XQMuse/Root/Other/View/PlaySettingView.swift index c61abc7..e04f963 100644 --- a/XQMuse/Root/Other/View/PlaySettingView.swift +++ b/XQMuse/Root/Other/View/PlaySettingView.swift @@ -12,7 +12,8 @@ class PlaySettingView: UIView,JQNibView{ @IBOutlet weak var slider_voice: UISlider! @IBOutlet weak var cons_bottom: NSLayoutConstraint! - + private var setting = UserDefaultSettingViewModel.getSetting() + override func awakeFromNib() { super.awakeFromNib() @@ -26,8 +27,11 @@ v1.jq_borderColor = .white v1.jq_cornerRadius = 8.5 + slider_voice.value = Float(setting?.masterVolume ?? 0.5) + slider_voice.setThumbImage(v1.qmui_snapshotLayerImage(), for: .normal) slider_voice.setThumbImage(v1.qmui_snapshotLayerImage(), for: .highlighted) + slider_voice.addTarget(self, action: #selector(changeValues), for: .touchUpInside) layoutIfNeeded() } @@ -45,6 +49,14 @@ } } + @objc private func changeValues(_ slider:UISlider){ + if var setting = UserDefaultSettingViewModel.getSetting(){ + setting.masterVolume = Double(slider.value) + UserDefaultSettingViewModel.saveSetting(setting) + NotificationCenter.default.post(name: ChangeMasterVoice_Noti, object: slider.value) + } + } + @IBAction func hiddenAction(_ sender: UIButton) { self.cons_bottom.constant = -JQ_ScreenW UIView.animate(withDuration: 0.4) { diff --git a/XQMuse/Root/Other/View/PlaySettingView.xib b/XQMuse/Root/Other/View/PlaySettingView.xib index 9fc939b..4e67ee6 100644 --- a/XQMuse/Root/Other/View/PlaySettingView.xib +++ b/XQMuse/Root/Other/View/PlaySettingView.xib @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" 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"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/> <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"/> @@ -26,13 +26,13 @@ <rect key="frame" x="18" y="553.66666666666663" width="357" height="199"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="播放设置" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HMw-v5-jl2"> - <rect key="frame" x="141.66666666666666" y="34.333333333333371" width="73.666666666666657" height="21"/> + <rect key="frame" x="142.66666666666666" y="34.333333333333371" width="71.666666666666657" height="21"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> <nil key="textColor"/> <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="kfS-9J-5Vr"> - <rect key="frame" x="152" y="75.333333333333371" width="53.333333333333343" height="15.666666666666671"/> + <rect key="frame" x="152.66666666666666" y="75.333333333333371" width="51.666666666666657" height="15.666666666666671"/> <fontDescription key="fontDescription" type="system" pointSize="13"/> <color key="textColor" red="0.36078431372549019" green="0.36078431372549019" blue="0.36078431372549019" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> @@ -40,7 +40,7 @@ <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_voice" translatesAutoresizingMaskIntoConstraints="NO" id="Atb-Fs-uN7"> <rect key="frame" x="28.666666666666664" y="139.33333333333337" width="19.666666666666664" height="16"/> </imageView> - <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="100" translatesAutoresizingMaskIntoConstraints="NO" id="w39-6X-xGI"> + <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="w39-6X-xGI"> <rect key="frame" x="58.666666666666686" y="132.33333333333337" width="273" height="31"/> <color key="minimumTrackTintColor" red="0.71764705880000002" green="0.86274509799999999" blue="0.56470588239999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="maximumTrackTintColor" red="0.78431372549019607" green="0.78431372549019607" blue="0.78431372549019607" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> diff --git a/XQMuse/Root/Other/View/ShareView.swift b/XQMuse/Root/Other/View/ShareView.swift index e419f6c..c79fefb 100644 --- a/XQMuse/Root/Other/View/ShareView.swift +++ b/XQMuse/Root/Other/View/ShareView.swift @@ -15,7 +15,9 @@ @IBOutlet weak var btn_wechat: TapBtn! @IBOutlet weak var btn_wechatFri: TapBtn! @IBOutlet weak var btn_save: TapBtn! - + private var shareContent:Any! + private var scene:WXScene! + override func awakeFromNib() { super.awakeFromNib() @@ -28,8 +30,9 @@ btn_save.isHidden = true } - static func show(){ + static func show(_ content:Any){ let shareView = ShareView.jq_loadNibView() + shareView.shareContent = content sceneDelegate?.window?.addSubview(shareView) shareView.frame = sceneDelegate?.window?.frame ?? .zero shareView.cons_bottom.constant = 0 @@ -49,4 +52,24 @@ self.removeFromSuperview() } } + + @IBAction func shareWechatAction(_ sender: Any) { + scene = WXSceneSession + share() + } + + @IBAction func shareWechatFriAction(_ sender: Any) { + scene = WXSceneTimeline + share() + } + + private func share(){ + if let text = shareContent as? String{ + WeChatTools.shareText(text) + } + + if let url = shareContent as? URL{ + WeChatTools.shareUrl(url.absoluteString, title: "疗愈", desc: "测", thumb:UIImage()) + } + } } diff --git a/XQMuse/Root/Other/View/ShareView.xib b/XQMuse/Root/Other/View/ShareView.xib index 9d4252a..3cf8d6f 100644 --- a/XQMuse/Root/Other/View/ShareView.xib +++ b/XQMuse/Root/Other/View/ShareView.xib @@ -59,6 +59,9 @@ <constraint firstItem="KVQ-as-9PR" firstAttribute="top" secondItem="nQe-Qx-CrR" secondAttribute="bottom" constant="8" id="bi5-tH-n2s"/> <constraint firstAttribute="trailing" secondItem="nQe-Qx-CrR" secondAttribute="trailing" id="yYv-Hi-F8r"/> </constraints> + <connections> + <action selector="shareWechatAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="4j3-nH-SUP"/> + </connections> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="G6H-X1-86v" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target"> <rect key="frame" x="143" y="0.0" width="51" height="75"/> @@ -83,6 +86,9 @@ <constraint firstItem="IIB-Ay-50b" firstAttribute="centerX" secondItem="A7Q-8p-loL" secondAttribute="centerX" id="etj-OK-c41"/> <constraint firstAttribute="trailing" secondItem="A7Q-8p-loL" secondAttribute="trailing" id="rs6-bc-8zr"/> </constraints> + <connections> + <action selector="shareWechatFriAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="dk4-ZD-bI7"/> + </connections> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YWd-mA-5l0" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target"> <rect key="frame" x="286" y="0.0" width="51" height="75"/> @@ -109,6 +115,7 @@ </constraints> </view> </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <constraints> <constraint firstAttribute="height" constant="75" id="HHP-Ze-KYb"/> </constraints> diff --git a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift index dd92200..9732bdd 100644 --- a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift +++ b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift @@ -8,6 +8,7 @@ import UIKit import JQTools import WebKit +import MapKit class PavilionDetailVC: BaseVC { @@ -21,6 +22,7 @@ @IBOutlet weak var cons_webHei: NSLayoutConstraint! private var id:Int! + private var detailModel:PavilionDetailModel? override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) @@ -44,6 +46,7 @@ Services.getPavlilonDetail(id: id).subscribe(onNext: {data in if let m = data.data{ + self.detailModel = m self.label_title.text = m.hallName self.label_phone.text = m.contactNumber self.label_address.text = m.addressDetail @@ -64,6 +67,77 @@ }).disposed(by: disposeBag) } + + @IBAction func gotoThereAction(_ sender: Any) { + + guard let model = detailModel else {return} + + let items = JQ_MapNavigationTool.mapList() + var formatItems = items.map { type in + switch type { + case .BaiduMap:return "百度地图" //BD-09 + case .Amap:return "高德地图" //GCJ-02 + case .GoogleMap:return "谷歌地图" //GCJ-02 + case .qqMap:return "腾讯地图" //GCJ-02 + } + } + formatItems.insert("苹果地图", at: 0) + + CommonAlertSheetView.show(items: formatItems) { index in + switch index{ + case 0: + let item = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: CLLocationDegrees(model.latitude), longitude: CLLocationDegrees(model.longitude)))) + item.name = model.hallName + item.openInMaps(launchOptions: [MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving]) + case 1: + var components = URLComponents() + components.scheme = "iosamap" + components.host = "path" + components.queryItems = [URLQueryItem]() + components.queryItems?.append(URLQueryItem(name: "sourceApplication", value: "疗愈")) + components.queryItems?.append(URLQueryItem(name: "dlat", value: "\(model.latitude)")) + components.queryItems?.append(URLQueryItem(name: "dlon", value: "\(model.longitude)")) + components.queryItems?.append(URLQueryItem(name: "dname", value: model.hallName)) + UIApplication.shared.open(components.url!) + case 2: + var components = URLComponents() + components.scheme = "comgooglemaps" + components.host = "" + components.queryItems = [URLQueryItem]() + components.queryItems?.append(URLQueryItem(name: "daddr", value: "\(model.latitude),\(model.longitude)")) + components.queryItems?.append(URLQueryItem(name: "zoom", value: "14")) + components.queryItems?.append(URLQueryItem(name: "views", value: "traffic")) + components.queryItems?.append(URLQueryItem(name: "resume", value: "true")) + UIApplication.shared.open(components.url!) + case 3: + var components = URLComponents() + components.scheme = "baidumap" + components.host = "map" + components.path = "/direction" + components.queryItems = [URLQueryItem]() + components.queryItems?.append(URLQueryItem(name: "origin", value: "{{我的位置}}")) + components.queryItems?.append(URLQueryItem(name: "destination", value: "latlng:\(model.latitude),\(model.longitude)|name:\(model.hallName)")) + components.queryItems?.append(URLQueryItem(name: "coord_type", value: "gcj02")) + components.queryItems?.append(URLQueryItem(name: "mode", value: "driving")) + + UIApplication.shared.open(components.url!) + case 4: + var components = URLComponents() + components.scheme = "qqmap" + components.host = "map" + components.path = "/routeplan" + components.queryItems = [URLQueryItem]() + components.queryItems?.append(URLQueryItem(name: "fromcoord", value: "CurrentLocation")) + components.queryItems?.append(URLQueryItem(name: "type", value: "drive")) + components.queryItems?.append(URLQueryItem(name: "to", value: model.hallName)) + components.queryItems?.append(URLQueryItem(name: "tocoord", value: "\(model.latitude),\(model.longitude)")) + UIApplication.shared.open(components.url!) + default:break + } + } + } + + override func setRx() { webView.scrollView.rx.observe(CGSize.self, "contentSize").map { (size) -> CGFloat? in if let size = size{ diff --git a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib index cf9d7a5..fe037ae 100644 --- a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib +++ b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.xib @@ -88,7 +88,7 @@ <constraint firstAttribute="trailing" secondItem="fDf-4X-hUI" secondAttribute="trailing" id="u9h-ka-MTH"/> </constraints> </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zw1-xu-iJP"> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zw1-xu-iJP" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target"> <rect key="frame" x="0.0" y="18" width="240" height="11.666666666666664"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_local" translatesAutoresizingMaskIntoConstraints="NO" id="9xu-m3-4Al"> @@ -113,6 +113,9 @@ <constraint firstItem="28i-aJ-cBs" firstAttribute="leading" secondItem="9xu-m3-4Al" secondAttribute="trailing" constant="6.5" id="phb-2w-5ig"/> <constraint firstAttribute="trailing" secondItem="28i-aJ-cBs" secondAttribute="trailing" id="u26-L7-Pbp"/> </constraints> + <connections> + <action selector="gotoThereAction:" destination="-1" eventType="touchUpInside" id="CU4-xp-Gel"/> + </connections> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="D2P-HH-gTE"> <rect key="frame" x="0.0" y="36.333333333333314" width="240" height="11.333333333333336"/> diff --git a/XQMuse/Root/PayMusicView/PayMusicVC.swift b/XQMuse/Root/PayMusicView/PayMusicVC.swift index 5ee28c6..bf0d700 100644 --- a/XQMuse/Root/PayMusicView/PayMusicVC.swift +++ b/XQMuse/Root/PayMusicView/PayMusicVC.swift @@ -11,6 +11,9 @@ import MediaPlayer import RxRelay + +let ChangeMasterVoice_Noti = Notification.Name.init(rawValue: "ChangeMasterVoice_Noti") + @objc enum PlayMusicState:Int{ case playing = 1 case paurse = 2 @@ -169,6 +172,7 @@ }else{ self.audioPlayer.bgmPlayer?.play() self.audioPlayer.masterPlayer?.play() + self.audioPlayer.masterPlayer?.volume = Float(UserDefaultSettingViewModel.getSetting()?.masterVolume ?? 0.5) self.startRunloopAni() } } @@ -212,7 +216,15 @@ return instance } - private init() {} // 私有化init方法 + private init() { + + NotificationCenter.default.addObserver(forName: ChangeMasterVoice_Noti, object: nil, queue: .main) { noti in + if let value = noti.object as? Float{ + print("--->进入") + self.masterPlayer?.volume = value + } + } + } // 私有化init方法 //销毁单例对象 class func destroy() { @@ -233,14 +245,14 @@ self.meditationModel = model let urls = model.meditationMusicList.map { url in - return URL(string: url)! + return URL(string: url.jq_urlEncoded())! } if urls.count == 0{ alertError(msg: "数据获取失败");return } - let masterUrl = URL(string: model.tutorAudioUrl) + let masterUrl = URL(string: model.tutorAudioUrl.jq_urlEncoded()) autoreleasepool{[unowned self] () in for url in urls { @@ -254,6 +266,7 @@ if masterUrl != nil{ self.masterPlayer = AVPlayer(url: masterUrl!) + self.masterPlayer?.volume = Float(UserDefaultSettingViewModel.getSetting()?.masterVolume ?? 0.5) self.masterPlayer?.play() } } @@ -354,20 +367,6 @@ bgmPlayer?.replaceCurrentItem(with: AVPlayerItem(url: urls[index])) bgmPlayer?.play() } - -// @objc private func playbackEnd(){ -// if bgmPlayer?.actionAtItemEnd == AVPlayer.ActionAtItemEnd.pause && playIndex <= urls.count - 1{ -// next() -// self.delegate?.playState(.next) -// }else{ -// print("背景音乐播放完毕") -// self.delegate?.playState(.end) -// } -// -// if masterPlayer?.actionAtItemEnd == AVPlayer.ActionAtItemEnd.pause{ -// print("导师播放完毕") -// } -// } @objc private func playBGMbackEnd(){ self.scenePlayer?.seek(to: CMTimeMake(value: 0, timescale: 1)) diff --git a/XQMuse/Root/TreeGroup/TreeTeskVC.swift b/XQMuse/Root/TreeGroup/TreeTeskVC.swift index 1d71780..11c3734 100644 --- a/XQMuse/Root/TreeGroup/TreeTeskVC.swift +++ b/XQMuse/Root/TreeGroup/TreeTeskVC.swift @@ -269,7 +269,9 @@ if treeInfoModel == nil {return} guard treeInfoModel!.energyValue != 0 else{ - alert(msg: "已经没有能量值了,快去做任务吧");return + alert(msg: "已经没有能量值了,快去做任务吧"); + sender.isUserInteractionEnabled = true + return } Services.watering().subscribe(onNext: {[weak self] data in -- Gitblit v1.7.1