From 6912d657ec6bb1db9683d5b5be8f0777f001ba11 Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期六, 14 九月 2024 18:24:10 +0800
Subject: [PATCH] fix API
---
XQMuse/Root/Course/VC/CourseDetialVC.swift | 1
XQMuse/Root/Me/VC/UserProfileVC.swift | 61 ++++++++-
XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib | 2
XQMuse/Root/Me/MeVC.xib | 39 ++++--
XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift | 3
XQMuse/Root/Home/VC/HomeItemListVC.swift | 1
XQMuse/Root/Course/VC/CourseMenuVC.swift | 1
XQMuse/Root/Pavilion/PavilionVC.swift | 2
XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift | 1
XQMuse/Config/Def.swift | 1
XQMuse/Root/Plans/PlanGuideVC.swift | 11 +
XQMuse/Root/Home/HomeVC.swift | 4
XQMuse/Root/Me/MeVC.swift | 59 +++++++++
XQMuse/Config/Enums/Enums.swift | 27 +++
XQMuse/Root/Plans/PlanGuide_2_VC.swift | 19 +++
XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib | 2
XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift | 1
XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift | 1
XQMuse/Root/Me/VC/UserProfileVC.xib | 10 +
XQMuse/Root/Network/Models.swift | 27 ++++
XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift | 1
XQMuse/Root/Plans/PlanGuide_3_VC.swift | 30 +++-
XQMuse/Root/Network/Services.swift | 50 +++++++
23 files changed, 299 insertions(+), 55 deletions(-)
diff --git a/XQMuse/Config/Def.swift b/XQMuse/Config/Def.swift
index d0457be..13afa07 100644
--- a/XQMuse/Config/Def.swift
+++ b/XQMuse/Config/Def.swift
@@ -12,6 +12,7 @@
import QMUIKit
import OSLog
+//https://dummyimage.com/100x100
let app = UIApplication.shared.delegate as! AppDelegate
diff --git a/XQMuse/Config/Enums/Enums.swift b/XQMuse/Config/Enums/Enums.swift
index 3b6b37a..b5027ba 100644
--- a/XQMuse/Config/Enums/Enums.swift
+++ b/XQMuse/Config/Enums/Enums.swift
@@ -13,11 +13,6 @@
case line = 1 //顺序播放
}
-enum GenderType:Int,HandyJSONEnum{
- case none = 0
- case man = 1
- case woman = 2
-}
enum DisplayType:Int,HandyJSONEnum{
case horizontal = 1 //横
@@ -116,3 +111,25 @@
case increase = 1
case decreate = 2
}
+
+enum GenderType:Int,HandyJSONEnum,Codable{
+ case man = 1
+ case woman = 2
+ case encrypt = 3
+
+ var rawTitle:String{
+ switch self {
+ case .man:return "男"
+ case .woman:return "女"
+ case .encrypt:return "保密"
+ }
+ }
+
+ static func GenderBy(_ str:String)->GenderType{
+ switch str {
+ case "男":return .man
+ case "女":return .woman
+ default:return .encrypt
+ }
+ }
+}
diff --git a/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift b/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift
index 822f1de..11417a0 100644
--- a/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift
+++ b/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift
@@ -19,7 +19,8 @@
func setItem(_ item:TitleItem){
if let localImage = item.coverImage{
- img_cover.image = UIImage(named: localImage)
+// img_cover.image = UIImage(named: localImage)
+ img_cover.sd_setImage(with: URL(string: localImage))
}
label_title.text = item.title
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift b/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift
index 7c04393..cfcf5a8 100644
--- a/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift
+++ b/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift
@@ -45,7 +45,6 @@
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
cell.setCourseModel(items[indexPath.row])
- cell.backgroundColor = .jq_randomColor
return cell
}
diff --git a/XQMuse/Root/Course/VC/CourseDetialVC.swift b/XQMuse/Root/Course/VC/CourseDetialVC.swift
index 8417269..27558db 100644
--- a/XQMuse/Root/Course/VC/CourseDetialVC.swift
+++ b/XQMuse/Root/Course/VC/CourseDetialVC.swift
@@ -270,7 +270,6 @@
if cell == nil{
cell = UITableViewCell(style: .value1, reuseIdentifier: "cell")
}
- cell?.backgroundColor = .jq_randomColor
return cell!
}
diff --git a/XQMuse/Root/Course/VC/CourseMenuVC.swift b/XQMuse/Root/Course/VC/CourseMenuVC.swift
index 3d992ff..65b7fcc 100644
--- a/XQMuse/Root/Course/VC/CourseMenuVC.swift
+++ b/XQMuse/Root/Course/VC/CourseMenuVC.swift
@@ -102,7 +102,6 @@
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let model = viewModel.dataSource.value!.list[indexPath.row]
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_1_CCell", for: indexPath) as! HomeRelaxBanner_2_1_CCell
- cell.backgroundColor = .jq_randomColor
cell.setCourseModel(model)
return cell
}
diff --git a/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift b/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
index 0518eb6..593cece 100644
--- a/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
+++ b/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
@@ -118,7 +118,6 @@
}
let model = viewModel.dataSource.value!.list[indexPath.row]
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
- cell.backgroundColor = .jq_randomColor
cell.setCourseModel(model)
return cell
}
diff --git a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib
index 0a0c40f..7a76534 100644
--- a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib
+++ b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib
@@ -17,7 +17,7 @@
<rect key="frame" x="0.0" y="0.0" width="160" height="196"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
- <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="VwD-36-ent">
+ <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="VwD-36-ent">
<rect key="frame" x="0.0" y="0.0" width="160" height="196"/>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nyj-tV-0t4">
diff --git a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib
index de03781..4844006 100644
--- a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib
+++ b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib
@@ -16,7 +16,7 @@
<rect key="frame" x="0.0" y="0.0" width="178" height="301"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
- <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="cCC-0f-GSV">
+ <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="cCC-0f-GSV">
<rect key="frame" x="0.0" y="0.0" width="178" height="301"/>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Fb9-IV-vVk">
diff --git a/XQMuse/Root/Home/HomeVC.swift b/XQMuse/Root/Home/HomeVC.swift
index 3af08cb..ca8efef 100644
--- a/XQMuse/Root/Home/HomeVC.swift
+++ b/XQMuse/Root/Home/HomeVC.swift
@@ -132,6 +132,10 @@
NotificationCenter.default.rx.notification(SetBGMSuccess_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
self.topMenuView.resetTopImage()
}).disposed(by: disposeBag)
+
+ NotificationCenter.default.rx.notification(PlantGuideQuit_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
+ self.getData()
+ }).disposed(by: disposeBag)
}
private func getData(){
diff --git a/XQMuse/Root/Home/VC/HomeItemListVC.swift b/XQMuse/Root/Home/VC/HomeItemListVC.swift
index 1d2c234..e4007fa 100644
--- a/XQMuse/Root/Home/VC/HomeItemListVC.swift
+++ b/XQMuse/Root/Home/VC/HomeItemListVC.swift
@@ -69,7 +69,6 @@
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
let model = viewModel.dataSource.value!.list[indexPath.row]
- cell.backgroundColor = .jq_randomColor
cell.setMeditationModel(model)
return cell
}
diff --git a/XQMuse/Root/Me/MeVC.swift b/XQMuse/Root/Me/MeVC.swift
index 3f3227b..e47d95f 100644
--- a/XQMuse/Root/Me/MeVC.swift
+++ b/XQMuse/Root/Me/MeVC.swift
@@ -21,6 +21,17 @@
@IBOutlet weak var btn_setting: QMUIButton!
@IBOutlet weak var btn_share: QMUIButton!
@IBOutlet weak var view_rank: GradientView!
+ @IBOutlet weak var image_vipBg: UIImageView!
+ @IBOutlet weak var label_expirtTime: UILabel!
+ @IBOutlet weak var label_sustainDay: UILabel!
+ @IBOutlet weak var label_today: UILabel!
+ @IBOutlet weak var image_medal: UIImageView!
+
+ @IBOutlet weak var image_userAvatar: UIImageView!
+ @IBOutlet weak var label_userName: UILabel!
+ @IBOutlet weak var label_phone: UILabel!
+ @IBOutlet weak var label_vipInfo: UILabel!
+ @IBOutlet weak var label_totalDay: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
@@ -28,6 +39,8 @@
let tap = UITapGestureRecognizer(target: self, action: #selector(rankAction))
view_rank.isUserInteractionEnabled = true
view_rank.addGestureRecognizer(tap)
+
+ getData()
}
override func setUI() {
@@ -46,6 +59,52 @@
btn_share.imagePosition = .top
}
+ override func setRx() {
+ NotificationCenter.default.rx.notification(UpdateUserProfile_Noti, object: nil).take(until: self.rx.deallocated).subscribe(onNext: { _ in
+ self.getData()
+ }).disposed(by: disposeBag)
+ }
+
+
+ private func getData(){
+ Services.getUserDetail().subscribe(onNext: {data in
+ if let model = data.data{
+ UserViewModel.saveAvatarInfo(model)
+ }
+ }).disposed(by: self.disposeBag)
+
+
+ Services.getUserInfo().subscribe(onNext: {data in
+ if let model = data.data{
+ self.image_userAvatar.sd_setImage(with: URL(string: model.avatar))
+ self.label_userName.text = model.nickname
+ self.label_phone.text = model.cellPhone.jq_blotOutPhone()
+
+ self.label_totalDay.attributedText = AttributedStringbuilder.build().add(string: "\(model.cumulative)", withFont: UIFont.init(name: "PingFang-SC-Regular", size: 60)!, withColor: UIColor(hexString: "#152715")!).add(string: "天", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#152715")!).mutableAttributedString
+
+ self.label_sustainDay.attributedText = AttributedStringbuilder.build().add(string: "\(model.continuity)", withFont: .systemFont(ofSize: 23), withColor: UIColor(hexString: "#152715")!).add(string: "天", withFont: .systemFont(ofSize: 12), withColor: UIColor(hexString: "#152715")!).mutableAttributedString
+
+ self.image_medal.sd_setImage(with: URL(string: model.levelIcon))
+
+ let timeTurple = Date.jq_formateToTime_tuple(model.today * 60)
+
+ self.label_today.attributedText = AttributedStringbuilder.build().add(string: "\(timeTurple.hour)", withFont: .systemFont(ofSize: 23), withColor: UIColor(hexString: "#152715")!).add(string: "时", withFont: .systemFont(ofSize: 12), withColor: UIColor(hexString: "#152715")!).add(string: "\(timeTurple.minute)", withFont: .systemFont(ofSize: 23), withColor: UIColor(hexString: "#152715")!).add(string: "分", withFont: .systemFont(ofSize: 12), withColor: UIColor(hexString: "#152715")!).mutableAttributedString
+
+
+
+ if model.isVip == .yes{
+ self.image_vipBg.image = UIImage(named: "bg_vip")
+ self.label_vipInfo.text = "你已是高级会员"
+ self.label_expirtTime.text = model.vipExpireTime + "到期"
+ }else{
+ self.image_vipBg.image = UIImage(named: "bg_vip_u")
+ self.label_vipInfo.text = "升级为高级会员,解锁全部体验"
+ self.label_expirtTime.text = "你还未开通会员服务"
+ }
+ }
+ }).disposed(by: disposeBag)
+ }
+
@objc func rankAction(){
let vc = WebVC()
vc.title = "爱心榜单"
diff --git a/XQMuse/Root/Me/MeVC.xib b/XQMuse/Root/Me/MeVC.xib
index 6abb0c3..46d4b99 100644
--- a/XQMuse/Root/Me/MeVC.xib
+++ b/XQMuse/Root/Me/MeVC.xib
@@ -18,6 +18,16 @@
<outlet property="btn_record" destination="ohz-jh-MYr" id="I71-ch-fvw"/>
<outlet property="btn_setting" destination="gCl-Xh-n2C" id="QuC-zj-2x4"/>
<outlet property="btn_share" destination="503-ii-Lw9" id="v1J-Bx-FQ7"/>
+ <outlet property="image_medal" destination="dut-7H-aMv" id="7p1-yV-vbS"/>
+ <outlet property="image_userAvatar" destination="dFl-Si-mEi" id="j1A-z8-kad"/>
+ <outlet property="image_vipBg" destination="lQe-up-4F0" id="pBK-QF-IFs"/>
+ <outlet property="label_expirtTime" destination="IcP-op-38A" id="Hxh-C2-qn1"/>
+ <outlet property="label_phone" destination="xL7-Qf-iI2" id="R7I-kg-vh2"/>
+ <outlet property="label_sustainDay" destination="8j2-ya-Clo" id="kPr-q8-A4K"/>
+ <outlet property="label_today" destination="zZP-3q-D6G" id="SA1-hV-SxE"/>
+ <outlet property="label_totalDay" destination="YPb-vk-RCa" id="NPs-ta-7BS"/>
+ <outlet property="label_userName" destination="Xiq-PE-zPH" id="vAC-Zm-SdG"/>
+ <outlet property="label_vipInfo" destination="pJK-nH-NXm" id="cHp-Kf-9fB"/>
<outlet property="scrollView" destination="eKy-w2-ydR" id="uh0-OR-U8m"/>
<outlet property="view" destination="iN0-l3-epB" id="xwB-6q-ebc"/>
<outlet property="view_rank" destination="4fN-Be-XLG" id="3h6-0r-QKI"/>
@@ -69,8 +79,8 @@
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_vip_u" translatesAutoresizingMaskIntoConstraints="NO" id="lQe-up-4F0">
<rect key="frame" x="0.0" y="0.0" width="368" height="114.33333333333333"/>
</imageView>
- <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cy9-se-bLv">
- <rect key="frame" x="19.333333333333336" y="23.666666666666671" width="19.666666666666664" height="26.333333333333329"/>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="心泉·疗愈会员" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cy9-se-bLv">
+ <rect key="frame" x="19.333333333333329" y="23.666666666666671" width="150.66666666666669" height="26.333333333333329"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="22"/>
<color key="textColor" red="0.039215686274509803" green="0.25882352941176467" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
@@ -163,29 +173,32 @@
<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="YPb-vk-RCa">
- <rect key="frame" x="131.66666666666669" y="192" width="104.66666666666669" height="71.666666666666686"/>
- <fontDescription key="fontDescription" type="system" pointSize="60"/>
+ <rect key="frame" x="136" y="192" width="96" height="45"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="45" id="Ma8-cs-j54"/>
+ </constraints>
+ <fontDescription key="fontDescription" name="PingFangSC-Light" family="PingFang SC" pointSize="60"/>
<color key="textColor" red="0.082352941176470587" green="0.15294117647058825" blue="0.082352941176470587" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4ho-wk-mFw">
- <rect key="frame" x="21.333333333333343" y="326.66666666666663" width="325" height="71"/>
+ <rect key="frame" x="21.333333333333343" y="300" width="325" height="71"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XmC-Kd-dmq">
- <rect key="frame" x="162" y="20.666666666666742" width="1" height="30"/>
+ <rect key="frame" x="162" y="20.666666666666629" width="1" height="30"/>
<color key="backgroundColor" red="0.94509803921568625" green="0.95294117647058818" blue="0.94901960784313721" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="1" id="hXb-BI-vs2"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0小时0分" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zZP-3q-D6G">
- <rect key="frame" x="163" y="38.666666666666742" width="162" height="18"/>
+ <rect key="frame" x="163" y="38.666666666666629" width="162" height="18"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0天" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8j2-ya-Clo">
- <rect key="frame" x="0.0" y="38.666666666666742" width="162" height="18"/>
+ <rect key="frame" x="0.0" y="38.666666666666629" width="162" height="18"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
@@ -254,25 +267,25 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n62-aO-gnS" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
- <rect key="frame" x="21.333333333333343" y="413.33333333333337" width="325" height="50.333333333333314"/>
+ <rect key="frame" x="21.333333333333343" y="386.66666666666663" width="325" height="50.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="z63-U0-xCY">
- <rect key="frame" x="4.6666666666666607" y="16.666666666666629" width="57.333333333333343" height="17"/>
+ <rect key="frame" x="4.6666666666666607" y="16.666666666666742" width="57.333333333333343" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.13725490196078433" green="0.13725490196078433" blue="0.13725490196078433" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_vip_level" translatesAutoresizingMaskIntoConstraints="NO" id="dut-7H-aMv">
- <rect key="frame" x="72" y="11.333333333333259" width="95.666666666666686" height="27.666666666666671"/>
+ <rect key="frame" x="72" y="11.333333333333373" width="95.666666666666686" height="27.666666666666671"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="查看详情" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="flg-Hv-HHC">
- <rect key="frame" x="265.66666666666669" y="18.666666666666629" width="45" height="13.333333333333336"/>
+ <rect key="frame" x="265.66666666666669" y="18.666666666666742" width="45" height="13.333333333333336"/>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.40392156862745099" green="0.40392156862745099" blue="0.40392156862745099" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="IKY-cB-8Vd">
- <rect key="frame" x="316.66666666666669" y="20.333333333333258" width="5.3333333333333144" height="10"/>
+ <rect key="frame" x="316.66666666666669" y="20.333333333333371" width="5.3333333333333144" height="10"/>
<constraints>
<constraint firstAttribute="width" constant="5.5" id="UAN-uc-0l9"/>
<constraint firstAttribute="height" constant="10" id="mje-aH-Ehd"/>
diff --git a/XQMuse/Root/Me/VC/UserProfileVC.swift b/XQMuse/Root/Me/VC/UserProfileVC.swift
index 995c1e1..ad050c8 100644
--- a/XQMuse/Root/Me/VC/UserProfileVC.swift
+++ b/XQMuse/Root/Me/VC/UserProfileVC.swift
@@ -10,11 +10,24 @@
import JQTools
import TZImagePickerController
+
+let UpdateUserProfile_Noti = Notification.Name.init("UpdateUserProfile_Noti")
+
class UserProfileVC: BaseVC {
@IBOutlet weak var image_user: UIImageView!
+ @IBOutlet weak var tf_nickName: QMUITextField!
+ @IBOutlet weak var tf_realName: QMUITextField!
+ @IBOutlet weak var tf_sign: QMUITextField!
@IBOutlet weak var tf_gender: QMUITextField!
@IBOutlet weak var tf_birthday: QMUITextField!
+ @IBOutlet weak var tf_degree: QMUITextField!
+ @IBOutlet weak var tf_industry: QMUITextField!
+ @IBOutlet weak var tf_company: QMUITextField!
+ @IBOutlet weak var tf_job: QMUITextField!
+ @IBOutlet weak var tf_address: QMUITextField!
+ @IBOutlet weak var tf_birthland: QMUITextField!
+ @IBOutlet weak var tf_email: QMUITextField!
private var clipSize = CGSize(width: JQ_ScreenW, height: JQ_ScreenW) //裁剪大小
private var clipFrame:CGRect{
@@ -33,6 +46,42 @@
override func viewDidLoad() {
super.viewDidLoad()
title = "个人资料"
+
+ tf_nickName.text = UserViewModel.getAvatarInfo().nickname
+ tf_realName.text = UserViewModel.getAvatarInfo().realname
+ tf_sign.text = UserViewModel.getAvatarInfo().signature
+ tf_gender.text = UserViewModel.getAvatarInfo().gender.rawTitle
+ tf_birthday.text = UserViewModel.getAvatarInfo().birthday
+ tf_degree.text = UserViewModel.getAvatarInfo().education
+ tf_industry.text = UserViewModel.getAvatarInfo().industry
+ tf_company.text = UserViewModel.getAvatarInfo().company
+ tf_job.text = UserViewModel.getAvatarInfo().occupation
+ tf_address.text = UserViewModel.getAvatarInfo().location
+ tf_birthland.text = UserViewModel.getAvatarInfo().hometown
+ tf_email.text = UserViewModel.getAvatarInfo().email
+ }
+
+ override func viewDidDisappear(_ animated: Bool) {
+ super.viewDidDisappear(animated)
+
+ let nickname = tf_nickName.text == UserViewModel.getAvatarInfo().nickname ? nil:tf_nickName.text
+ let realname = tf_realName.text == UserViewModel.getAvatarInfo().realname ? nil:tf_realName.text
+ let signature = tf_sign.text == UserViewModel.getAvatarInfo().signature ? nil:tf_sign.text
+ let gender = tf_gender.text == UserViewModel.getAvatarInfo().gender.rawTitle ? nil:GenderType.GenderBy(tf_gender.text!)
+ let birthday = tf_birthday.text == UserViewModel.getAvatarInfo().birthday ? nil:tf_birthday.text
+ let education = tf_degree.text == UserViewModel.getAvatarInfo().education ? nil:tf_degree.text
+ let industry = tf_industry.text == UserViewModel.getAvatarInfo().industry ? nil:tf_industry.text
+ let company = tf_company.text == UserViewModel.getAvatarInfo().company ? nil:tf_company.text
+ let occupation = tf_job.text == UserViewModel.getAvatarInfo().occupation ? nil:tf_job.text
+ let location = tf_address.text == UserViewModel.getAvatarInfo().location ? nil:tf_address.text
+ let hometown = tf_birthland.text == UserViewModel.getAvatarInfo().hometown ? nil:tf_birthland.text
+ let email = tf_email.text == UserViewModel.getAvatarInfo().email ? nil:tf_email.text
+
+ if nickname != nil || realname != nil || signature != nil || gender != nil || birthday != nil || education != nil || industry != nil || company != nil || occupation != nil || location != nil || hometown != nil || email != nil{
+ 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)
+ }).disposed(by: disposeBag)
+ }
}
override func setUI() {
@@ -83,16 +132,9 @@
if textField == tf_gender{
let items = ["男","女","保密"]
- CommonAlertSheetView.show(items: items) {[weak self] index in
- guard let weakSelf = self else { return }
+ CommonAlertSheetView.show(items: items) { index in
guard textField.text != items[index] else {return}
textField.text = items[index]
- var gender:GenderType!
- if index == 0{
- gender = .man
- }else{
- gender = .woman
- }
}
}
@@ -101,9 +143,6 @@
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
}
diff --git a/XQMuse/Root/Me/VC/UserProfileVC.xib b/XQMuse/Root/Me/VC/UserProfileVC.xib
index d4f1124..85c6143 100644
--- a/XQMuse/Root/Me/VC/UserProfileVC.xib
+++ b/XQMuse/Root/Me/VC/UserProfileVC.xib
@@ -11,8 +11,18 @@
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UserProfileVC" customModule="XQMuse" customModuleProvider="target">
<connections>
<outlet property="image_user" destination="Qz0-bC-W38" id="eCy-hk-a42"/>
+ <outlet property="tf_address" destination="apd-WL-Sql" id="m57-Gx-rtg"/>
<outlet property="tf_birthday" destination="mG1-O5-m2h" id="QhO-j1-4Id"/>
+ <outlet property="tf_birthland" destination="8Mk-n3-NN5" id="84g-kg-wrt"/>
+ <outlet property="tf_company" destination="oBn-y6-tL8" id="DSm-9v-SmX"/>
+ <outlet property="tf_degree" destination="NG9-8J-4PE" id="8HI-YX-gv2"/>
+ <outlet property="tf_email" destination="S2r-9H-Zt2" id="ECV-Od-3Q8"/>
<outlet property="tf_gender" destination="eyM-56-9BV" id="dX4-by-LUg"/>
+ <outlet property="tf_industry" destination="OLk-lo-tWN" id="fMb-Kq-cQn"/>
+ <outlet property="tf_job" destination="Shq-k9-lMd" id="xBA-bw-XbQ"/>
+ <outlet property="tf_nickName" destination="xDs-61-9P0" id="dKw-c6-6r8"/>
+ <outlet property="tf_realName" destination="7Wv-tW-0JD" id="E1t-zc-26s"/>
+ <outlet property="tf_sign" destination="HRg-rk-jcD" id="O8Q-AD-caV"/>
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
</connections>
</placeholder>
diff --git a/XQMuse/Root/Network/Models.swift b/XQMuse/Root/Network/Models.swift
index 57fc391..4168d21 100644
--- a/XQMuse/Root/Network/Models.swift
+++ b/XQMuse/Root/Network/Models.swift
@@ -222,7 +222,7 @@
var email: String = ""
var freezingOperator: String = ""
var freezingReason: String = ""
- var gender: Int = 0
+ var gender: GenderType = .encrypt
var hometown: String = ""
var id: Int = 0
var income: Int = 0
@@ -233,6 +233,7 @@
var location: String = ""
var logoutTime: String = ""
var nickname: String = ""
+ var realname:String = ""
var occupation: String = ""
var registerTime: String = ""
var sanskritFlag: Int = 0
@@ -247,6 +248,13 @@
var vipExpireTime: String = ""
var isVip:ConditionType = .no
var wxOpenId: String = ""
+
+ var continuity: Int = 0
+ var cumulative: Int = 0
+ var level: Int = 0
+ var levelIcon: String?
+ var levelName: String?
+ var today: Int = 0
}
struct TutorInfoModel:HandyJSON{
@@ -328,6 +336,23 @@
var code:String = ""
}
+struct TagModel:HandyJSON,Hashable{
+ var id = 0
+ var tagName = ""
+
+ var indexPath:IndexPath?
+}
+
+struct ResponseUserAnswerModel:HandyJSON{
+ var tagsId = "" //问题二 多个tagId使用英文逗号拼接字符串
+ var userAnswerOneDTOList = [ResponseUserAnswerDTOModel]()
+}
+
+struct ResponseUserAnswerDTOModel:HandyJSON{
+ var answer = "" //问题一 答案 1:是2:否3:偶尔,其他补充说明
+ var type = 0 //问题一 问题类型 1:您是否内心纠结敏感多疑?2:您是否辗转反侧彻夜难眠?3:您是否情绪失控暴躁易怒?4:您是否沉迷情感倍受伤害?5:您是否人生迷茫踌躇彷徨?6:其它补充说明
+}
+
diff --git a/XQMuse/Root/Network/Services.swift b/XQMuse/Root/Network/Services.swift
index f2ac2f7..d5fc93e 100644
--- a/XQMuse/Root/Network/Services.swift
+++ b/XQMuse/Root/Network/Services.swift
@@ -133,7 +133,7 @@
class func getMeditationPage(_ cateId:Int,page:Int,pageSize:Int = 20)->Observable<BaseResponse<BaseResponseList<MeditationModel>>>{
let params = ParamsAppender.build(url: All_Url)
- params.interface(url: "/meditation/client/meditation/home/getMeditationAndCateList")
+ params.interface(url: "/meditation/client/meditation/home/getMeditationPageByCateId")
.append(key: "cateId", value: cateId)
.append(key: "pageCurr", value: page)
.append(key: "pageSize", value: pageSize)
@@ -285,10 +285,38 @@
}
/// 获取用户信息
+ class func getUserDetail()->Observable<BaseResponse<UserInfoModel>>{
+ let params = ParamsAppender.build(url: All_Url)
+ params.interface(url: "/user/client/app-user/getUserDetail")
+ .append(key: "apipost_id", value: "2fc350e9799588")
+ return NetworkRequest.request(params: params, method: .post, progress: false)
+ }
+
+ /// 获取用户信息
class func getUserInfo()->Observable<BaseResponse<UserInfoModel>>{
let params = ParamsAppender.build(url: All_Url)
- params.interface(url: "/user/client/app-user/getCurrentUser")
- .append(key: "apipost_id", value: "2e763463799132")
+ params.interface(url: "/user/client/app-user/getUserInfo")
+ .append(key: "apipost_id", value: "300079e039993f")
+ return NetworkRequest.request(params: params, method: .post, progress: false)
+ }
+
+ class func updateUserInfo(avatar:String? = nil,birthday:String? = nil,company:String? = nil,education:String? = nil,email:String? = nil,gender:GenderType? = nil,hometown:String? = nil,industry:String? = nil,location:String? = nil,nickname:String? = nil,realname:String? = nil,occupation:String? = nil,signature:String? = nil)->Observable<BaseResponse<SimpleModel>>{
+ let params = ParamsAppender.build(url: All_Url)
+ params.interface(url: "/user/client/app-user/updateUserDetail")
+ .append(key: "avatar", value: avatar)
+ .append(key: "birthday", value: birthday)
+ .append(key: "company", value: company)
+ .append(key: "education", value: education)
+ .append(key: "email", value: email)
+ .append(key: "gender", value: gender?.rawValue)
+ .append(key: "hometown", value: hometown)
+ .append(key: "industry", value: industry)
+ .append(key: "location", value: location)
+ .append(key: "nickname", value: nickname)
+ .append(key: "realname", value: realname)
+ .append(key: "occupation", value: occupation)
+ .append(key: "signature", value: signature)
+ .append(key: "apipost_id", value: "2fc350e9b99599")
return NetworkRequest.request(params: params, method: .post, progress: false)
}
@@ -307,6 +335,22 @@
.append(key: "apipost_id", value: "2e763463799134")
return NetworkRequest.request(params: params, method: .post, progress: false)
}
+
+ //获取个性化设置的标签
+ class func getTag()->Observable<BaseResponse<[TagModel]>>{
+ let params = ParamsAppender.build(url: All_Url)
+ params.interface(url: "/user/client/app-user/getTagList")
+ .append(key: "apipost_id", value: "25c3dab9f0e024")
+ return NetworkRequest.request(params: params, method: .post, progress: true)
+ }
+
+ class func saveUserAnswers(_ model:ResponseUserAnswerModel)->Observable<BaseResponse<SimpleModel>>{
+ let params = ParamsAppender.build(url: All_Url)
+ params.interface(url: "/user/client/app-user/saveUserAnswers")
+ .append(dic: model.toJSON()!)
+ .append(key: "apipost_id", value: "25c3dab9f0e025")
+ return NetworkRequest.request(params: params, method: .post, progress: true)
+ }
}
diff --git a/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift b/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift
index d8a0cb2..2c6414c 100644
--- a/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift
+++ b/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift
@@ -21,7 +21,6 @@
override func awakeFromNib() {
super.awakeFromNib()
-
}
func setPavilionDetailModel(_ model:PavilionDetailModel){
diff --git a/XQMuse/Root/Pavilion/PavilionVC.swift b/XQMuse/Root/Pavilion/PavilionVC.swift
index e10327f..01f1293 100644
--- a/XQMuse/Root/Pavilion/PavilionVC.swift
+++ b/XQMuse/Root/Pavilion/PavilionVC.swift
@@ -72,7 +72,7 @@
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let model = viewModel.dataSource.value!.list[indexPath.row]
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_PavilionItemCell", for: indexPath) as! PavilionItemCell
- cell.backgroundColor = .jq_randomColor
+ cell.backgroundColor = .white
cell.jq_cornerRadius = 16
cell.setPavilionDetailModel(model)
return cell
diff --git a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift
index d7ae81c..dd92200 100644
--- a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift
+++ b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift
@@ -40,7 +40,6 @@
super.viewDidLoad()
title = "疗愈馆详情"
scrollView.contentInsetAdjustmentBehavior = .never
- view_bannerBg.backgroundColor = .jq_randomColor
webView.scrollView.isScrollEnabled = false
Services.getPavlilonDetail(id: id).subscribe(onNext: {data in
diff --git a/XQMuse/Root/Plans/PlanGuideVC.swift b/XQMuse/Root/Plans/PlanGuideVC.swift
index f32a7dd..3d0d788 100644
--- a/XQMuse/Root/Plans/PlanGuideVC.swift
+++ b/XQMuse/Root/Plans/PlanGuideVC.swift
@@ -38,6 +38,16 @@
}
+ override func viewWillAppear(_ animated: Bool) {
+ super.viewWillAppear(animated)
+ player.play()
+ }
+
+ override func viewDidDisappear(_ animated: Bool) {
+ super.viewDidDisappear(animated)
+ player.pause()
+ }
+
override func setUI() {
label_title.font = Def_FlyFlowerSong(fontSize: 35)
@@ -58,7 +68,6 @@
playerLayer.player = player
view.layer.addSublayer(playerLayer)
- player.play()
playerLayer.zPosition = -999
}
diff --git a/XQMuse/Root/Plans/PlanGuide_2_VC.swift b/XQMuse/Root/Plans/PlanGuide_2_VC.swift
index 44a2441..84a14b1 100644
--- a/XQMuse/Root/Plans/PlanGuide_2_VC.swift
+++ b/XQMuse/Root/Plans/PlanGuide_2_VC.swift
@@ -21,6 +21,8 @@
private var questions = [String]()
private var questionIndex = -1
+ private var responseUserAnswerModel = ResponseUserAnswerModel()
+
override func viewDidLoad() {
super.viewDidLoad()
@@ -102,6 +104,17 @@
btn_deny.isSelected = sender.tag == btn_deny.tag
btn_OnceInAWel.isSelected = sender.tag == btn_OnceInAWel.tag
+ var answer:String = ""
+ if btn_sure.isSelected{
+ answer = "1"
+ }else if btn_deny.isSelected{
+ answer = "2"
+ }else{
+ answer = "3"
+ }
+
+ responseUserAnswerModel.userAnswerOneDTOList.append(ResponseUserAnswerDTOModel(answer: answer, type: questionIndex))
+
btn_sure.backgroundColor = btn_sure.isSelected ? UIColor(hexString: "#5E9456"):.clear
btn_deny.backgroundColor = btn_deny.isSelected ? UIColor(hexString: "#5E9456"):.clear
btn_OnceInAWel.backgroundColor = btn_OnceInAWel.isSelected ? UIColor(hexString: "#5E9456"):.clear
@@ -123,10 +136,14 @@
self.btn_OnceInAWel.alpha = 0
}
- DispatchQueue.main.asyncAfter(delay: 1.8) {
+ DispatchQueue.main.asyncAfter(delay: 1.5) {
if self.questionIndex == self.questions.count - 1{
PlanGuidePromptSupplyView.show { text in
+ if text != nil{
+ self.responseUserAnswerModel.userAnswerOneDTOList.append(ResponseUserAnswerDTOModel(answer: text!, type: 6))
+ }
let vc = PlanGuide_3_VC()
+ vc.responseUserAnswerModel = self.responseUserAnswerModel
self.push(vc: vc)
}
}else{
diff --git a/XQMuse/Root/Plans/PlanGuide_3_VC.swift b/XQMuse/Root/Plans/PlanGuide_3_VC.swift
index 5e7dac1..6ecd191 100644
--- a/XQMuse/Root/Plans/PlanGuide_3_VC.swift
+++ b/XQMuse/Root/Plans/PlanGuide_3_VC.swift
@@ -15,9 +15,10 @@
@IBOutlet weak var btn_next: UIButton!
@IBOutlet weak var view_content: UIView!
@IBOutlet weak var collectionVIew: UICollectionView!
- private var setIndex = Set<IndexPath>()
+ private var selectModels = Set<TagModel>()
- private var items = [["原生家庭","亲子关系","夫妻关系"],["情感纠结","思念亲人","优质睡眠","提升能量"],["高维智慧","清理净化","情绪稳定"]]
+ var responseUserAnswerModel:ResponseUserAnswerModel!
+ private var items = [[TagModel]?]()
override func viewWillAppear(_ animated: Bool) {
@@ -29,6 +30,11 @@
override func viewDidLoad() {
super.viewDidLoad()
+ var topIndex = 0
+ Services.getTag().subscribe(onNext: { data in
+ self.items = Array<TagModel>.splitArray((data.data ?? []), subArraySize: 3)
+ self.collectionVIew.reloadData()
+ }).disposed(by: disposeBag)
}
override func setUI() {
@@ -51,7 +57,10 @@
}
@IBAction func nextAction(_ sender: UIButton) {
- NotificationCenter.default.post(name: PlantGuideQuit_Noti, object: true)
+ responseUserAnswerModel.tagsId = selectModels.map({"\($0.id)"}).joined(separator: ",")
+ Services.saveUserAnswers(responseUserAnswerModel).subscribe(onNext: { data in
+ NotificationCenter.default.post(name: PlantGuideQuit_Noti, object: true)
+ }).disposed(by: disposeBag)
}
@IBAction func previousAction(_ sender: UIButton) {
@@ -67,16 +76,18 @@
extension PlanGuide_3_VC:UICollectionViewDelegate & UICollectionViewDataSource{
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
- if setIndex.contains(indexPath){
- setIndex.remove(indexPath)
+ let m = items[indexPath.section]![indexPath.row]
+
+ if selectModels.contains(m){
+ selectModels.remove(m)
}else{
- setIndex.insert(indexPath)
+ selectModels.insert(m)
}
collectionView.reloadData()
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
- return items[section].count
+ return items[section]?.count ?? 0
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
@@ -85,8 +96,9 @@
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! Planguide_3_CCell
- cell.label_title.text = items[indexPath.section][indexPath.row]
- cell.isSelect(setIndex.contains(indexPath))
+ let m = items[indexPath.section]![indexPath.row]
+ cell.label_title.text = m.tagName
+ cell.isSelect(selectModels.contains(m))
return cell
}
}
--
Gitblit v1.7.1