From eb0532b0ed613459085eb803605c2bb307db7e6d Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期一, 28 十月 2024 15:18:39 +0800
Subject: [PATCH] fix bug

---
 XQMuse/Root/Course/VC/CourseDetialVC.swift                  |   11 
 XQMuse/Root/Home/VC/CommentListVC.swift                     |   12 -
 XQMuse/Root/Me/VC/UserProfileVC.swift                       |   77 +++++++----
 XQMuse/Root/Me/VC/StudyListVC.swift                         |    3 
 XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.swift        |   13 +
 XQMuse/Root/Home/VC/PaymentOrderResultVC.swift              |   14 +-
 XQMuse/Root/TreeGroup/TreeTeskVC.swift                      |    2 
 XQMuse/SceneDelegate.swift                                  |    4 
 XQMuse/Root/Other/View/ShareView.xib                        |   25 ++-
 XQMuse/Root/Login/LoginVC.swift                             |    4 
 XQMuse/Root/Me/VC/BindAccountVC.swift                       |    5 
 XQMuse/Root/Me/VC/BindAccountVC.xib                         |   13 +
 XQMuse/Root/Me/VC/BankWithdrawVC.swift                      |    6 
 XQMuse/Root/Me/MeVC.swift                                   |   29 +++
 XQMuse/Root/Me/VC/SettingVC.swift                           |   18 ++
 XQMuse/Root/Home/View/CommentCommentHeaderView.swift        |   22 ++
 XQMuse/Root/Me/VC/UserProfileVC.xib                         |   45 +++---
 XQMuse/Root/Network/Models.swift                            |    6 
 XQMuse/Root/Course/VC/CourseDetialVideoVC.swift             |    2 
 XQMuse/Root/Me/TCell/BankInfoTCell.swift                    |    2 
 XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift |    4 
 XQMuse/Root/Network/Services.swift                          |   61 ++++++--
 XQMuse/Root/Other/View/ShareView.swift                      |    9 +
 23 files changed, 263 insertions(+), 124 deletions(-)

diff --git a/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift b/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift
index 8431167..9d1340a 100644
--- a/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift
+++ b/XQMuse/Root/Course/CCell/CourseOfficalCommendTopCCell.swift
@@ -35,7 +35,9 @@
 								bannerModels = items
         view_bannerContentView.setItems(items: items) { m in
             if let id = m.courseId?.int{
-                JQ_currentNavigationController().pushViewController(CourseDetialVC(courseId: id))
+                let courseDetialVC = CourseDetialVC(courseId: id)
+                courseDetialVC.hidesBottomBarWhenPushed = true
+                JQ_currentNavigationController().pushViewController(courseDetialVC)
             }
         }
 				}
diff --git a/XQMuse/Root/Course/VC/CourseDetialVC.swift b/XQMuse/Root/Course/VC/CourseDetialVC.swift
index a487dc1..a6241ec 100644
--- a/XQMuse/Root/Course/VC/CourseDetialVC.swift
+++ b/XQMuse/Root/Course/VC/CourseDetialVC.swift
@@ -132,6 +132,8 @@
 								Services.getCourseDetail(courseId: courseId).subscribe(onNext: {data in
 												if let m = data.data{
 																self.courseDetailModel = m
+                self.collect_bitem.image = m.isCollect == .yes ? UIImage(named: "btn_collect_1_s"):UIImage(named: "btn_collect")
+                self.collect_bitem.tintColor = m.isCollect == .yes ? UIColor(hexString: "#fe5b60"):.white
 																self.headerView.setCourseModel(m)
 																self.section1TCell.setItems(m)
 																self.section2TCell.setItems(m.list2)
@@ -222,7 +224,7 @@
 				}
 
     @objc func collectionAction(){
-        Services.meditationFavorite(id: courseId).subscribe(onNext: {data in
+        Services.clouseFavorite(id: courseId).subscribe(onNext: {data in
             self.courseDetailModel?.isCollect.troggle()
             if self.courseDetailModel?.isCollect == .yes{
                 alertSuccess(msg: "收藏成功")
@@ -352,17 +354,14 @@
 												(navigationItem.leftBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.black.withAlphaComponent(v)), for: .normal)
 
             (navigationItem.rightBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.black.withAlphaComponent(v)), for: .normal)
-
-
-            collect_bitem.tintColor = .black
+            collect_bitem.tintColor = UIColor(hexString: "#fe5b60")
             share_bitem.tintColor = .black
-
 
 												self.navigationController?.navigationBar.titleTextAttributes = [.foregroundColor:Def_NavFontColor.withAlphaComponent(v),.font:Def_NavFont]
 												barStyle = .darkContent
 
 								}else{
-            collect_bitem.tintColor = .white
+            collect_bitem.tintColor =  self.courseDetailModel?.isCollect == .yes ? UIColor(hexString: "#fe5b60"):.white
             share_bitem.tintColor = .white
 
 												(navigationItem.leftBarButtonItem?.customView as? UIButton)?.setImage(UIImage(named: "btn_back")?.withTintColor(.white), for: .normal)
diff --git a/XQMuse/Root/Course/VC/CourseDetialVideoVC.swift b/XQMuse/Root/Course/VC/CourseDetialVideoVC.swift
index 7c5784e..4dffa91 100644
--- a/XQMuse/Root/Course/VC/CourseDetialVideoVC.swift
+++ b/XQMuse/Root/Course/VC/CourseDetialVideoVC.swift
@@ -39,7 +39,7 @@
 
         guard secondLook > 0 else {return}
 
-        Services.watchClouse(chapterId: item.id, isOver: isOver, minuteLook: 0, secondLook: secondLook).subscribe(onNext: { _ in
+        Services.watchClouse(chapterId: item.id, isOver: isOver, secondLook: secondLook).subscribe(onNext: { _ in
 
         }).disposed(by: disposeBag)
     }
diff --git a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.swift b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.swift
index 96714da..465c02e 100644
--- a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.swift
+++ b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.swift
@@ -47,7 +47,8 @@
 								label_title.text = model.meditationTitle
 								label_subTitle.text = model.coverDescription
 								label_num.text = "\(model.realLearnedNum)"
-								img_vip.isHidden = model.chargeType != .vipFree
+
+        setChargePrice(model.chargeType, price: model.generalPrice)
 				}
 
 				func setCourseModel(_ model:CourseModel){
@@ -57,11 +58,15 @@
 								label_num.text = "\(model.count)"
         img_vip.isHidden = model.isVip != .yes
 
-        switch model.chargeType {
+        setChargePrice(model.chargeType, price: model.generalPrice)
+				}
+
+    private func setChargePrice(_ type:ChargeType,price:Double){
+        switch type {
             case .payment:
                 image_free.isHidden = true
                 view_price.isHidden = false
-                label_price.attributedText = AttributedStringbuilder.build().add(string: "¥", withFont: UIFont(name: "DIN-Bold", size: 7.11) ?? UIFont.systemFont(ofSize: 7, weight: .bold), withColor: .white).add(string: model.generalPrice.jq_formatFloat, withFont: UIFont(name: "DIN-Bold", size: 11.44) ?? .systemFont(ofSize: 11,weight: .bold), withColor: .white).mutableAttributedString
+                label_price.attributedText = AttributedStringbuilder.build().add(string: "¥", withFont: UIFont(name: "DIN-Bold", size: 7.11) ?? UIFont.systemFont(ofSize: 7, weight: .bold), withColor: .white).add(string: price.jq_formatFloat, withFont: UIFont(name: "DIN-Bold", size: 11.44) ?? .systemFont(ofSize: 11,weight: .bold), withColor: .white).mutableAttributedString
             case .free:
                 image_free.isHidden = false
                 view_price.isHidden = true
@@ -71,5 +76,5 @@
                 view_price.isHidden = true
                 img_vip.isHidden = false
         }
-				}
+    }
 }
diff --git a/XQMuse/Root/Home/VC/CommentListVC.swift b/XQMuse/Root/Home/VC/CommentListVC.swift
index 1984a32..e071c4c 100644
--- a/XQMuse/Root/Home/VC/CommentListVC.swift
+++ b/XQMuse/Root/Home/VC/CommentListVC.swift
@@ -29,11 +29,10 @@
 				@IBOutlet weak var cons_height: NSLayoutConstraint!
 
 				private var viewModel = CommentListViewModel()
-    private var id:Int!
 
     init(id:Int) {
         super.init(nibName: nil, bundle: nil)
-        self.id = id
+        self.viewModel.id.accept(id)
     }
 
     required init?(coder: NSCoder) {
@@ -78,10 +77,9 @@
         }
         tf_input.resignFirstResponder()
 
-        Services.addQuestion(content: tf_input.text!, meditationId: id).subscribe(onNext: {_ in
-
-        }, onError: {_ in
-
+        Services.addQuestion(meditationId: viewModel.id.value, content: tf_input.text!).subscribe(onNext: {[weak self] _ in
+            self?.viewModel.beginRefresh()
+            self?.tf_input.text = ""
         }).disposed(by: disposeBag)
 				}
 
@@ -139,7 +137,7 @@
 
 				func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
 								let cell = tableView.dequeueReusableCell(withIdentifier: "_CommentReplyTCell", for: indexPath) as? CommentReplyTCell
-								let v = viewModel.dataSource.value?.list[indexPath.row]
+        let v = viewModel.dataSource.value?.list[indexPath.section]
 								cell?.setText(text: v?.replyContent ?? "")
 								return cell!
 				}
diff --git a/XQMuse/Root/Home/VC/PaymentOrderResultVC.swift b/XQMuse/Root/Home/VC/PaymentOrderResultVC.swift
index 2a8f721..c0b4616 100644
--- a/XQMuse/Root/Home/VC/PaymentOrderResultVC.swift
+++ b/XQMuse/Root/Home/VC/PaymentOrderResultVC.swift
@@ -29,13 +29,13 @@
 								super.viewDidLoad()
 								title = "支付结果"
 
-        //如果从支付过来的,移除支付
-        navigationController!.viewControllers.removeAll { vc in
-            if vc is PaymentOrderResultVC || vc is PaymentOrderVC{
-                return true
-            }
-            return false
-        }
+//        //如果从支付过来的,移除支付
+//        navigationController!.viewControllers.removeAll { vc in
+//            if vc is PaymentOrderResultVC || vc is PaymentOrderVC{
+//                return true
+//            }
+//            return false
+//        }
 
 								NotificationCenter.default.post(name: CourseRefresh_Noti, object: nil)
 
diff --git a/XQMuse/Root/Home/View/CommentCommentHeaderView.swift b/XQMuse/Root/Home/View/CommentCommentHeaderView.swift
index c854b75..4aaf5b8 100644
--- a/XQMuse/Root/Home/View/CommentCommentHeaderView.swift
+++ b/XQMuse/Root/Home/View/CommentCommentHeaderView.swift
@@ -7,6 +7,7 @@
 
 import UIKit
 import JQTools
+import RxSwift
 
 class CommentCommentHeaderView: UITableViewHeaderFooterView {
 
@@ -15,6 +16,9 @@
 				private var label_content:UILabel!
 				private var btn_belike:UIButton!
 				private var label_datetime:UILabel!
+
+    private var model:CommentModel?
+    private var disposeBag:DisposeBag?
 
 				override init(reuseIdentifier: String?) {
 								super.init(reuseIdentifier: reuseIdentifier)
@@ -47,7 +51,9 @@
 								}
 
 								btn_belike = UIButton(type: .custom)
-								btn_belike.setImage(UIImage(named: "btn_good"), for: .normal)
+        btn_belike.setImage(UIImage(named: "btn_good")?.withTintColor(UIColor(hexStr: "fe5b60")), for: .selected)
+        btn_belike.setImage(UIImage(named: "btn_good"), for: .normal)
+        btn_belike.addTarget(self, action: #selector(belike), for: .touchUpInside)
 								contentView.addSubview(btn_belike)
 								btn_belike.snp.makeConstraints { make in
 												make.width.height.equalTo(30)
@@ -56,7 +62,6 @@
 								}
 
 								label_content = UILabel()
-								label_content.text = "众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好众生皆苦,心态放好"
 								label_content.font = UIFont.systemFont(ofSize: 12.5, weight: .bold)
 								label_content.numberOfLines = 0
 								label_content.textColor = UIColor(hexString: "#383838")
@@ -69,7 +74,6 @@
 								}
 
 								label_datetime = UILabel()
-								label_datetime.text = "2024-10-25 21:23"
 								label_datetime.font = UIFont.systemFont(ofSize: 9.41, weight: .medium)
 								label_datetime.textColor = UIColor(hexString: "#B6B6B6")
 								contentView.addSubview(label_datetime)
@@ -79,16 +83,26 @@
 												make.height.equalTo(7)
 												make.bottom.equalToSuperview().offset(-10)
 								}
-
 				}
 
 				func setCommentModel(_ model:CommentModel){
+        self.model = model
+        img_userCover.sd_setImage(with: URL(string: model.nickname))
 								label_content.text = model.content
 								label_userName.text = model.nickname
 								btn_belike.isSelected = model.like == .yes
 								label_datetime.text = model.publishTime
 				}
 
+    @objc func belike(_ button:UIButton){
+        guard let m = model else {return}
+        disposeBag = DisposeBag()
+        Services.likeQuesiton(id: m.id).subscribe(onNext: {[weak self ] _ in
+            self?.model?.like.troggle()
+            self?.btn_belike.isSelected = self?.model?.like == .yes
+        }).disposed(by: disposeBag!)
+    }
+
 				required init?(coder: NSCoder) {
 								fatalError("init(coder:) has not been implemented")
 				}
diff --git a/XQMuse/Root/Login/LoginVC.swift b/XQMuse/Root/Login/LoginVC.swift
index b4a3e04..ca1104a 100644
--- a/XQMuse/Root/Login/LoginVC.swift
+++ b/XQMuse/Root/Login/LoginVC.swift
@@ -13,6 +13,7 @@
 
 
 let LoginSuccess_Noti = Notification.Name.init("LoginSuccess_Noti")
+let LoginQuit_Noti = Notification.Name.init("LoginQuit_Noti")
 
 class LoginViewModel{
 				var loginType = BehaviorRelay<LoginType>(value:.pwd)
@@ -64,7 +65,6 @@
 				private var viewModel = LoginViewModel()
 
 				private let unlineImageView = UIImageView(image: UIImage(named: "icon_unline"))
-
 
 				override func viewDidLoad() {
         super.viewDidLoad()
@@ -256,8 +256,6 @@
 								push(vc: vc)
 				}
 				
-
-
 				override func viewDidLayoutSubviews() {
 								super.viewDidLayoutSubviews()
 								view_content.jq_gradientColor(colorArr: [UIColor(hexStr: "#F3FFF8").cgColor,UIColor.white.cgColor], cornerRadius: 30, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: nil, locations: [0.01,0.5])
diff --git a/XQMuse/Root/Me/MeVC.swift b/XQMuse/Root/Me/MeVC.swift
index 0299694..e2d5589 100644
--- a/XQMuse/Root/Me/MeVC.swift
+++ b/XQMuse/Root/Me/MeVC.swift
@@ -82,22 +82,41 @@
             self.getData()
             self.queryNotice()
         }).disposed(by: disposeBag)
+
+        NotificationCenter.default.rx.notification(LoginQuit_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
+            self.label_userName.text = "请先登录"
+            self.image_userAvatar.image = nil
+            self.label_phone.text = ""
+            self.label_totalDay.attributedText = AttributedStringbuilder.build().add(string: "0", 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.image_medal.image = nil
+
+            self.label_sustainDay.attributedText = AttributedStringbuilder.build().add(string: "0", withFont: .systemFont(ofSize: 23), withColor: UIColor(hexString: "#152715")!).add(string: "天", withFont: .systemFont(ofSize: 12), withColor: UIColor(hexString: "#152715")!).mutableAttributedString
+
+            self.image_vipBg.image = UIImage(named: "bg_vip_u")
+            self.label_vipInfo.text = "升级为高级会员,解锁全部体验"
+            self.label_expirtTime.text = "你还未开通会员服务"
+
+        }).disposed(by: disposeBag)
+
+
 				}
 
 
 				private func getData(){
-								Services.getUserInfo().subscribe(onNext: {[weak self] data in
-												if let model = data.data{
+
+        Services.getUserDetail().subscribe(onNext: {[weak self]data in
+            if let model = data.data{
                 UserViewModel.saveAvatarInfo(model)
                 self?.setUserUI(model: model)
 
-												}
-        },onError: {[weak self]error in
+            }
+        }) {[weak self] error in
             let model = UserViewModel.getAvatarInfo()
             if model.id > 0{
                 self?.setUserUI(model: model)
             }
-        }).disposed(by: disposeBag)
+        }.disposed(by: disposeBag)
 				}
 
     private func setUserUI(model:UserInfoModel){
diff --git a/XQMuse/Root/Me/TCell/BankInfoTCell.swift b/XQMuse/Root/Me/TCell/BankInfoTCell.swift
index f9d484b..e342e2b 100644
--- a/XQMuse/Root/Me/TCell/BankInfoTCell.swift
+++ b/XQMuse/Root/Me/TCell/BankInfoTCell.swift
@@ -29,6 +29,8 @@
 				}
 
 				func setBankInfoModel(_ model:BankInfoModel){
+        guard !model.bankName.isEmpty else {return}
+        
 								label_title.text = model.bankName
 								let s = model.cardNo.count - 4
 								let b = model.cardNo.count
diff --git a/XQMuse/Root/Me/VC/BankWithdrawVC.swift b/XQMuse/Root/Me/VC/BankWithdrawVC.swift
index 772661a..b6baea0 100644
--- a/XQMuse/Root/Me/VC/BankWithdrawVC.swift
+++ b/XQMuse/Root/Me/VC/BankWithdrawVC.swift
@@ -70,6 +70,12 @@
 				}
 
 				@IBAction func withdrawAllAction(_ sender: UIButton) {
+        tf_withdraw.resignFirstResponder()
+
+        guard tf_withdraw.text?.toDouble ?? 0 > 0 else{
+            alertError(msg: "提现余额不足");return
+        }
+
 								tf_withdraw.resignFirstResponder()
 								tf_withdraw.text = income.jq_formatFloat
 				}
diff --git a/XQMuse/Root/Me/VC/BindAccountVC.swift b/XQMuse/Root/Me/VC/BindAccountVC.swift
index 79cecd2..416d21c 100644
--- a/XQMuse/Root/Me/VC/BindAccountVC.swift
+++ b/XQMuse/Root/Me/VC/BindAccountVC.swift
@@ -10,12 +10,13 @@
 class BindAccountVC: BaseVC {
 				@IBOutlet weak var label_phone: UILabel!
 				@IBOutlet weak var label_wchatBindState: UILabel!
-				
+    @IBOutlet weak var label_wechatBind: UILabel!
+    
     override func viewDidLoad() {
         super.viewDidLoad()
 								title = "账号绑定"
 								label_phone.text = UserViewModel.getAvatarInfo().cellPhone.jq_blotOutPhone()
-
+        label_wechatBind.text = UserViewModel.getAvatarInfo().wxOpenId.isEmpty ? "未绑定":"已绑定"
     }
 
 				@IBAction func bindPhoneAction(_ sender: Any) {
diff --git a/XQMuse/Root/Me/VC/BindAccountVC.xib b/XQMuse/Root/Me/VC/BindAccountVC.xib
index d441253..065abda 100644
--- a/XQMuse/Root/Me/VC/BindAccountVC.xib
+++ b/XQMuse/Root/Me/VC/BindAccountVC.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"/>
@@ -13,6 +13,7 @@
             <connections>
                 <outlet property="label_phone" destination="JiT-I4-fQb" id="pqq-l5-gv0"/>
                 <outlet property="label_wchatBindState" destination="hyt-qR-dWk" id="BWl-xq-gRx"/>
+                <outlet property="label_wechatBind" destination="hyt-qR-dWk" id="VIl-lD-Srd"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
         </placeholder>
@@ -35,7 +36,7 @@
                                     </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="TLZ-tC-0M2">
-                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
+                                    <rect key="frame" x="13.999999999999996" y="17" width="55.666666666666657" 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"/>
@@ -82,7 +83,7 @@
                                     </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="rnP-eo-8fV">
-                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
+                                    <rect key="frame" x="13.999999999999996" y="17" width="55.666666666666657" 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"/>
@@ -95,7 +96,7 @@
                                     </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="hyt-qR-dWk">
-                                    <rect key="frame" x="323" y="17" width="43" height="17"/>
+                                    <rect key="frame" x="324" y="17" width="42" height="17"/>
                                     <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.34000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
@@ -126,7 +127,7 @@
                                     </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="Sff-Hx-7zu">
-                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
+                                    <rect key="frame" x="13.999999999999996" y="17" width="55.666666666666657" 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"/>
diff --git a/XQMuse/Root/Me/VC/SettingVC.swift b/XQMuse/Root/Me/VC/SettingVC.swift
index 3332406..0559046 100644
--- a/XQMuse/Root/Me/VC/SettingVC.swift
+++ b/XQMuse/Root/Me/VC/SettingVC.swift
@@ -57,10 +57,24 @@
 				}
 
 				@IBAction func exchangeAccountAction(_ sender: UIButton) {
-								sceneDelegate?.needLogin()
+        CommonAlertView.show(title: "提示", content: "是否切换当前账号?") {[weak self] s in
+            if s{
+                sceneDelegate?.needLogin()
+                self?.btn_exchange.isHidden = true
+                self?.btn_logout.isHidden = true
+                self?.btn_dispel.isHidden = true
+            }
+        }
 				}
 
 				@IBAction func quitAccountAction(_ sender: UIButton) {
-								sceneDelegate?.needLogin()
+        CommonAlertView.show(title: "提示", content: "是否退出当前账号?") {[weak self] s in
+            if s{
+                sceneDelegate?.needLogin()
+                self?.btn_exchange.isHidden = true
+                self?.btn_logout.isHidden = true
+                self?.btn_dispel.isHidden = true
+            }
+        }
 				}
 }
diff --git a/XQMuse/Root/Me/VC/StudyListVC.swift b/XQMuse/Root/Me/VC/StudyListVC.swift
index 464fb98..ab887b7 100644
--- a/XQMuse/Root/Me/VC/StudyListVC.swift
+++ b/XQMuse/Root/Me/VC/StudyListVC.swift
@@ -54,12 +54,15 @@
 
 				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
 
+
 								var modelId:Int?
 								if indexPath.section == 0{
+            guard datas?.courseList.count != 0 else{return}
 												modelId = datas?.courseList[indexPath.row].id
 								}
 
 								if indexPath.section == 0{
+            guard datas?.freeCourseList.count != 0 else{return}
 												modelId = datas?.freeCourseList[indexPath.row].id
 								}
 
diff --git a/XQMuse/Root/Me/VC/UserProfileVC.swift b/XQMuse/Root/Me/VC/UserProfileVC.swift
index 9deaad3..c4d2cdf 100644
--- a/XQMuse/Root/Me/VC/UserProfileVC.swift
+++ b/XQMuse/Root/Me/VC/UserProfileVC.swift
@@ -28,7 +28,8 @@
 				@IBOutlet weak var tf_address: QMUITextField!
 				@IBOutlet weak var tf_birthland: QMUITextField!
 				@IBOutlet weak var tf_email: QMUITextField!
-
+    @IBOutlet weak var image_placeholder: UIImageView!
+    
 				private var clipSize = CGSize(width: JQ_ScreenW, height: JQ_ScreenW) //裁剪大小
 				private var clipFrame:CGRect{
 								get{
@@ -47,6 +48,8 @@
 								super.viewDidLoad()
 								title = "个人资料"
 
+        image_placeholder.isHidden = !UserViewModel.getAvatarInfo().avatar.isEmpty
+        image_user.sd_setImage(with: URL(string: UserViewModel.getAvatarInfo().avatar)!)
 								tf_nickName.text = UserViewModel.getAvatarInfo().nickname
 								tf_realName.text = UserViewModel.getAvatarInfo().realname
 								tf_sign.text = UserViewModel.getAvatarInfo().signature
@@ -59,29 +62,42 @@
 								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)
+        yy_popBlock = {[weak self] in
+            guard let weakSelf = self else { return }
+            let nickname = weakSelf.tf_nickName.text
+            let realname = weakSelf.tf_realName.text
+            let signature = weakSelf.tf_sign.text
+            let gender = GenderType.GenderBy(weakSelf.tf_gender.text!)
+            let birthday = weakSelf.tf_birthday.text
+            let education = weakSelf.tf_degree.text
+            let industry = weakSelf.tf_industry.text
+            let company = weakSelf.tf_company.text
+            let occupation = weakSelf.tf_job.text
+            let location = weakSelf.tf_address.text
+            let hometown = weakSelf.tf_birthland.text
+            let email = weakSelf.tf_email.text
 
-								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)
-								}
+            if nickname != UserViewModel.getAvatarInfo().nickname
+                || realname != UserViewModel.getAvatarInfo().realname
+                || signature != UserViewModel.getAvatarInfo().signature
+                || gender != UserViewModel.getAvatarInfo().gender
+                || birthday != UserViewModel.getAvatarInfo().birthday
+                || education != UserViewModel.getAvatarInfo().education
+                || industry != UserViewModel.getAvatarInfo().industry
+                || company != UserViewModel.getAvatarInfo().company
+                || occupation != UserViewModel.getAvatarInfo().occupation
+                || 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)
+            }else{
+                weakSelf.navigationController?.popViewController(animated: true)
+            }
+        }
 				}
 
 				override func setUI() {
@@ -140,8 +156,8 @@
 
 								if textField == tf_birthday{
 												view.endEditing(true)
-												BitrhdayPickerView.show(title: "", type: .YMD) { date in
-																
+												BitrhdayPickerView.show(title: "", type: .YMD) {[weak self] date in
+                self?.tf_birthday.text = date.jq_format("yyyy-MM-dd")
 												}
 												return false
 								}
@@ -155,10 +171,13 @@
 								picker.selectedAssets = NSMutableArray(array: assets)
 
         if let photo = photos.first{
-            photo.jq_scaled(to: CGSize(width: 250, height: 250)).uploadImg().subscribe(onNext: {imageUrl in
-                Services.updateUserInfo(avatar:imageUrl).subscribe(onNext: {data in
+            photo.jq_scaled(to: CGSize(width: 250, height: 250)).uploadImg().subscribe(onNext: {[weak self]imageUrl in
+                guard let weakSelf = self else { return }
+                Services.updateUserAvatar(imageUrl).subscribe(onNext: {data in
+                    weakSelf.image_placeholder.isHidden = true
+                    weakSelf.image_user.sd_setImage(with: URL(string: imageUrl)!)
                     NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
-                }).disposed(by: self.disposeBag)
+                }).disposed(by: weakSelf.disposeBag)
             }).disposed(by: disposeBag)
         }
 				}
@@ -183,7 +202,9 @@
 								unowned let weakSelf = self
 								corpperVC.imageCropperHandler { (vc, image) in
             image.uploadImg().subscribe(onNext: {imageUrl in
-                Services.updateUserInfo(avatar:imageUrl).subscribe(onNext: {data in
+                Services.updateUserAvatar(imageUrl).subscribe(onNext: {data in
+                    weakSelf.image_user.sd_setImage(with: URL(string: imageUrl)!)
+                    weakSelf.image_placeholder.isHidden = true
                     NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
                 }).disposed(by: weakSelf.disposeBag)
             }).disposed(by: weakSelf.disposeBag)
diff --git a/XQMuse/Root/Me/VC/UserProfileVC.xib b/XQMuse/Root/Me/VC/UserProfileVC.xib
index 85c6143..85ce5d8 100644
--- a/XQMuse/Root/Me/VC/UserProfileVC.xib
+++ b/XQMuse/Root/Me/VC/UserProfileVC.xib
@@ -1,15 +1,16 @@
 <?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="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UserProfileVC" customModule="XQMuse" customModuleProvider="target">
             <connections>
+                <outlet property="image_placeholder" destination="cF8-lO-m5L" id="IaC-7M-iF6"/>
                 <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"/>
@@ -65,13 +66,13 @@
                                     <rect key="frame" x="0.0" y="0.0" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fv9-E0-tp4">
-                                            <rect key="frame" x="16" y="17.333333333333314" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333314" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="xDs-61-9P0" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -105,13 +106,13 @@
                                     <rect key="frame" x="0.0" y="50" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zxo-Oa-ujz">
-                                            <rect key="frame" x="16" y="17.333333333333314" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333314" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="7Wv-tW-0JD" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -145,13 +146,13 @@
                                     <rect key="frame" x="0.0" y="100" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="签名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="imv-PF-klz">
-                                            <rect key="frame" x="16" y="17.333333333333314" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333314" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="HRg-rk-jcD" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -289,13 +290,13 @@
                                     <rect key="frame" x="0.0" y="250" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学历" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lr9-FF-35j">
-                                            <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333371" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="NG9-8J-4PE" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -329,13 +330,13 @@
                                     <rect key="frame" x="0.0" y="300" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="行业" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Vsd-1g-qdV">
-                                            <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333371" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="OLk-lo-tWN" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -369,13 +370,13 @@
                                     <rect key="frame" x="0.0" y="350" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="公司" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bCL-7v-fEV">
-                                            <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333371" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="oBn-y6-tL8" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -409,13 +410,13 @@
                                     <rect key="frame" x="0.0" y="400" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="职业" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F4W-m1-aF5">
-                                            <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333371" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Shq-k9-lMd" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -449,13 +450,13 @@
                                     <rect key="frame" x="0.0" y="450" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="所在地" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4yt-IS-YWS">
-                                            <rect key="frame" x="16" y="17.333333333333371" width="40" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333371" width="39" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="apd-WL-Sql" customClass="QMUITextField">
-                                            <rect key="frame" x="56" y="0.0" width="321" height="50"/>
+                                            <rect key="frame" x="55" y="0.0" width="322" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -489,13 +490,13 @@
                                     <rect key="frame" x="0.0" y="500" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="故乡" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3mI-9I-yxT">
-                                            <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333371" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="8Mk-n3-NN5" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
@@ -529,13 +530,13 @@
                                     <rect key="frame" x="0.0" y="550" width="393" height="50"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="邮箱" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qeP-Ob-ndd">
-                                            <rect key="frame" x="16" y="17.333333333333371" width="26.666666666666671" height="15.666666666666664"/>
+                                            <rect key="frame" x="16" y="17.333333333333371" width="26" height="15.666666666666664"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="点击输入" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="S2r-9H-Zt2" customClass="QMUITextField">
-                                            <rect key="frame" x="42.666666666666657" y="0.0" width="334.33333333333337" height="50"/>
+                                            <rect key="frame" x="42" y="0.0" width="335" height="50"/>
                                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/>
                                             <textInputTraits key="textInputTraits"/>
                                             <userDefinedRuntimeAttributes>
diff --git a/XQMuse/Root/Network/Models.swift b/XQMuse/Root/Network/Models.swift
index 10e35c3..8cb4930 100644
--- a/XQMuse/Root/Network/Models.swift
+++ b/XQMuse/Root/Network/Models.swift
@@ -103,7 +103,7 @@
 				var coverUrl: String = ""
 				var detailDescription: String = ""
 				var favoriteCount: Int = 0
-				var generalPrice: Int = 0
+				var generalPrice: Double = 0
 				var iconUrl: String = ""
 				var id: Int = 0
 				var questionCount:Int = 0
@@ -119,7 +119,7 @@
     var meditationMusicList = [String]()
 }
 
-struct CommentModel:HandyJSON{
+class CommentModel:HandyJSON{
 				var appUserId: Int = 0
 				var avatar: String = ""
 				var content: String = ""
@@ -130,6 +130,8 @@
 				var publishTime: String = ""
 				var replyContent: String = ""
 				var replyTime: String = ""
+
+    required init(){}
 }
 
 struct PavilionDetailModel:HandyJSON{
diff --git a/XQMuse/Root/Network/Services.swift b/XQMuse/Root/Network/Services.swift
index 7b41221..8ee500f 100644
--- a/XQMuse/Root/Network/Services.swift
+++ b/XQMuse/Root/Network/Services.swift
@@ -205,8 +205,16 @@
 												.append(key: "id", value: id)
 												.append(key: "reason", value: reason)
 												.append(key: "apipost_id", value: "25c3e3d0b0e15e")
-								return NetworkRequest.request(params: params, method: .get, progress: true)
+								return NetworkRequest.request(params: params, method: .post, progress: true)
 				}
+
+    //喜欢评论
+    class func likeQuesiton(id:Int)->Observable<BaseResponse<SimpleModel>>{
+        let params = ParamsAppender.build(url: All_Url)
+        params.interface(url: "/meditation/client/meditation/home/likeQuestion")
+            .append(key: "id", value: id)
+        return NetworkRequest.request(params: params, method: .post, progress: false)
+    }
 
 				/// 收藏/取消收藏
 				class func meditationFavorite(id:Int)->Observable<BaseResponse<SimpleModel>>{
@@ -248,14 +256,30 @@
 /// 课程
 extension Services{
 
-    class func watchClouse(chapterId:Int,isOver:Bool,minuteLook:Int,secondLook:Int)->Observable<BaseResponse<SimpleModel>>{
+    //添加评论
+    class func addQuestion(meditationId:Int,content:String)->Observable<BaseResponse<SimpleModel>>{
+        let params = ParamsAppender.build(url: All_Url)
+        params.interface(url: "/meditation/client/meditation/home/addQuestion")
+            .append(key: "meditationId", value: meditationId)
+            .append(key: "content", value: content)
+        return NetworkRequest.request(params: params, method: .post, progress: true)
+    }
+
+    /// 收藏/取消收藏
+    class func clouseFavorite(id:Int)->Observable<BaseResponse<SimpleModel>>{
+        let params = ParamsAppender.build(url: All_Url)
+        params.interface(url: "/course/client/course/course/collectCourse")
+            .append(key: "id", value: id)
+        return NetworkRequest.request(params: params, method: .post, progress: false)
+    }
+
+    class func watchClouse(chapterId:Int,isOver:Bool,secondLook:Int)->Observable<BaseResponse<SimpleModel>>{
         let params = ParamsAppender.build(url: All_Url)
         params.interface(url: "/user/user/app-user-viewing-history/saveCourseStudyHistory")
-            .append(key: "id", value: chapterId)
+            .append(key: "chapterId", value: chapterId)
             .append(key: "isOver", value: isOver)
-            .append(key: "isOver", value: isOver)
-            .append(key: "minuteLook", value: minuteLook)
             .append(key: "secondLook", value: secondLook)
+            .append(key: "minuteLook", value: 0)
         return NetworkRequest.request(params: params, method: .post, progress: false)
     }
 
@@ -364,7 +388,7 @@
 								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>>{
+				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<UserInfoModel>>{
 								let params = ParamsAppender.build(url: All_Url)
 								params.interface(url: "/user/client/app-user/updateUserDetail")
 												.append(key: "avatar", value: avatar)
@@ -381,8 +405,15 @@
 												.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)
+        return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding(), progress: true)
 				}
+
+    class func updateUserAvatar(_ imageUrl:String)->Observable<BaseResponse<SimpleModel>>{
+        let params = ParamsAppender.build(url: All_Url)
+        params.interface(url: "/user/client/app-user/updateUserAvatar")
+            .append(key: "avatar", value: imageUrl)
+        return NetworkRequest.request(params: params, method: .post, progress: true)
+    }
 
 				/// 支付成功
 				class func paymentSuccess(courseId:Int)->Observable<BaseResponse<[CourseModel]>>{
@@ -433,9 +464,9 @@
 
 				class func getMyBankList()->Observable<BaseResponse<[BankInfoModel]>>{
 								let params = ParamsAppender.build(url: All_Url)
-								params.interface(url: "/user/client/app-user/wallet")
+								params.interface(url: "/user/client/app-user-withdraw/bankList")
 												.append(key: "apipost_id", value: "361bdf11f992d2")
-								return NetworkRequest.request(params: params, method: .post, progress: false)
+        return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding(), progress: false)
 				}
 
 				class func withdraw(bankId:Int,money:Double)->Observable<BaseResponse<SimpleModel>>{
@@ -453,7 +484,7 @@
 								params.interface(url: "/user/client/app-user-withdraw/addBank")
 												.append(key: "apipost_id", value: "361bdf11f992d1")
 												.append(dic: model.toRequest())
-								return NetworkRequest.request(params: params, method: .post, progress: true)
+        return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding(), progress: true)
 				}
 
 				//添加银行卡
@@ -640,11 +671,11 @@
 								return NetworkRequest.request(params: params, method: .get, progress: false)
 				}
 
-    class func addQuestion(content:String,meditationId:Int)->Observable<BaseResponse<SimpleModel>>{
-        let params = ParamsAppender.build(url: All_Url)
-            .interface(url: "/meditation/client/meditation/home/addQuestion")
-        return NetworkRequest.request(params: params, method: .post, progress: true)
-    }
+//    class func addQuestion(content:String,meditationId:Int)->Observable<BaseResponse<SimpleModel>>{
+//        let params = ParamsAppender.build(url: All_Url)
+//            .interface(url: "/meditation/client/meditation/home/addQuestion")
+//        return NetworkRequest.request(params: params, method: .post, progress: true)
+//    }
 
 				/// 问题列表
 				class func commonQuestionDetailBy(id:Int)->Observable<BaseResponse<CommonQuestionModel>>{
diff --git a/XQMuse/Root/Other/View/ShareView.swift b/XQMuse/Root/Other/View/ShareView.swift
index 6ce5d1c..e419f6c 100644
--- a/XQMuse/Root/Other/View/ShareView.swift
+++ b/XQMuse/Root/Other/View/ShareView.swift
@@ -12,13 +12,20 @@
 
 				@IBOutlet weak var view_content: UIView!
 				@IBOutlet weak var cons_bottom: NSLayoutConstraint!
-				
+    @IBOutlet weak var btn_wechat: TapBtn!
+    @IBOutlet weak var btn_wechatFri: TapBtn!
+    @IBOutlet weak var btn_save: TapBtn!
+    
 				override func awakeFromNib() {
 								super.awakeFromNib()
 
 								alpha = 0
 								cons_bottom.constant = -JQ_ScreenW
 								layoutIfNeeded()
+
+        btn_wechat.isHidden = !WXApi.isWXAppInstalled()
+        btn_wechatFri.isHidden = !WXApi.isWXAppInstalled()
+        btn_save.isHidden = true
 				}
 
 				static func show(){
diff --git a/XQMuse/Root/Other/View/ShareView.xib b/XQMuse/Root/Other/View/ShareView.xib
index cdbd7d6..9d4252a 100644
--- a/XQMuse/Root/Other/View/ShareView.xib
+++ b/XQMuse/Root/Other/View/ShareView.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"/>
@@ -19,12 +19,18 @@
                     <rect key="frame" x="0.0" y="594" width="393" height="258"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="分享到" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ORe-Xh-Fdk">
-                            <rect key="frame" x="172" y="17" width="49" height="26"/>
+                            <rect key="frame" x="172.66666666666666" y="17" width="47.666666666666657" height="26"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="26" id="haw-CW-u0b"/>
                             </constraints>
                             <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                             <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="Vvy-Pb-wYf">
+                            <rect key="frame" x="119" y="95.666666666666629" width="155" height="15.666666666666671"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                            <color key="textColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <stackView opaque="NO" contentMode="scaleToFill" spacing="92" translatesAutoresizingMaskIntoConstraints="NO" id="0PG-Ww-jQZ">
@@ -37,7 +43,7 @@
                                             <rect key="frame" x="0.0" y="0.0" width="51" height="50"/>
                                         </imageView>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="微信分享" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KVQ-as-9PR">
-                                            <rect key="frame" x="1" y="58.000000000000007" width="49.333333333333336" height="14.333333333333336"/>
+                                            <rect key="frame" x="1.6666666666666679" y="58.000000000000007" width="48" 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.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                             <nil key="highlightedColor"/>
@@ -61,7 +67,7 @@
                                             <rect key="frame" x="0.0" y="0.0" width="51" height="51"/>
                                         </imageView>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="朋友圈" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IIB-Ay-50b">
-                                            <rect key="frame" x="7" y="59.000000000000007" width="37" height="14.333333333333336"/>
+                                            <rect key="frame" x="7.6666666666666572" y="59.000000000000007" width="36" 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.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                             <nil key="highlightedColor"/>
@@ -85,7 +91,7 @@
                                             <rect key="frame" x="0.0" y="0.0" width="51" height="51"/>
                                         </imageView>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="保存至相册" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wZG-si-wUc">
-                                            <rect key="frame" x="-5" y="59.000000000000007" width="61.333333333333336" height="14.333333333333336"/>
+                                            <rect key="frame" x="-4.3333333333333144" y="59.000000000000007" width="59.666666666666664" 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.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                             <nil key="highlightedColor"/>
@@ -157,6 +163,7 @@
                         <constraint firstItem="0PG-Ww-jQZ" firstAttribute="top" secondItem="ORe-Xh-Fdk" secondAttribute="bottom" constant="23" id="NkI-HE-6Xv"/>
                         <constraint firstItem="jqn-0N-gLE" firstAttribute="top" secondItem="lbC-Uv-Tnb" secondAttribute="bottom" id="Ocq-rC-aLx"/>
                         <constraint firstItem="ORe-Xh-Fdk" firstAttribute="top" secondItem="wZN-hq-21i" secondAttribute="top" constant="17" id="cCN-kp-cjw"/>
+                        <constraint firstItem="Vvy-Pb-wYf" firstAttribute="centerY" secondItem="0PG-Ww-jQZ" secondAttribute="centerY" id="fWt-LR-97b"/>
                         <constraint firstItem="lbC-Uv-Tnb" firstAttribute="leading" secondItem="wZN-hq-21i" secondAttribute="leading" id="fgP-yK-92y"/>
                         <constraint firstItem="lbC-Uv-Tnb" firstAttribute="top" secondItem="0PG-Ww-jQZ" secondAttribute="bottom" constant="22" id="iZo-ia-IRj"/>
                         <constraint firstItem="jqn-0N-gLE" firstAttribute="leading" secondItem="wZN-hq-21i" secondAttribute="leading" id="n6F-Eh-dER"/>
@@ -164,6 +171,7 @@
                         <constraint firstItem="U0r-0B-hJh" firstAttribute="top" secondItem="jqn-0N-gLE" secondAttribute="bottom" id="sH9-Bi-vu0"/>
                         <constraint firstItem="0PG-Ww-jQZ" firstAttribute="centerX" secondItem="wZN-hq-21i" secondAttribute="centerX" id="tUM-Bl-UGu"/>
                         <constraint firstItem="U0r-0B-hJh" firstAttribute="leading" secondItem="wZN-hq-21i" secondAttribute="leading" id="uLj-2f-fiX"/>
+                        <constraint firstItem="Vvy-Pb-wYf" firstAttribute="centerX" secondItem="0PG-Ww-jQZ" secondAttribute="centerX" id="x0F-G5-ktd"/>
                         <constraint firstAttribute="trailing" secondItem="jqn-0N-gLE" secondAttribute="trailing" id="yMv-uD-Pmv"/>
                         <constraint firstItem="n6l-h0-g55" firstAttribute="top" secondItem="wZN-hq-21i" secondAttribute="top" constant="20" id="yqG-Fn-Ggg"/>
                     </constraints>
@@ -177,6 +185,9 @@
                 <constraint firstItem="wZN-hq-21i" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="ymT-Hr-VdD"/>
             </constraints>
             <connections>
+                <outlet property="btn_save" destination="YWd-mA-5l0" id="kVe-kU-bwK"/>
+                <outlet property="btn_wechat" destination="28f-zu-dkE" id="bdK-2g-ZtC"/>
+                <outlet property="btn_wechatFri" destination="G6H-X1-86v" id="6nJ-VL-7i9"/>
                 <outlet property="cons_bottom" destination="WbY-wM-I0G" id="JLM-B4-xRY"/>
                 <outlet property="view_content" destination="wZN-hq-21i" id="ToD-3j-oTG"/>
             </connections>
@@ -184,7 +195,7 @@
         </view>
     </objects>
     <resources>
-        <image name="btn_close" width="20" height="20"/>
+        <image name="btn_close" width="21.333333969116211" height="21.333333969116211"/>
         <image name="btn_download" width="51" height="51"/>
         <image name="btn_wechat_1" width="50" height="50"/>
         <image name="btn_wechat_fri" width="51" height="51"/>
diff --git a/XQMuse/Root/TreeGroup/TreeTeskVC.swift b/XQMuse/Root/TreeGroup/TreeTeskVC.swift
index d7c5b9e..1d71780 100644
--- a/XQMuse/Root/TreeGroup/TreeTeskVC.swift
+++ b/XQMuse/Root/TreeGroup/TreeTeskVC.swift
@@ -100,6 +100,8 @@
 												DispatchQueue.main.asyncAfter(delay: 2.0) {
 																let h = (JQ_ScreenW - 90) * 0.8766
 																TreeTeskFirstRuleView.show(title: "心泉之树", content:"亲爱的家人,感谢您用心的交流。\n现在,您心灵之树的种子已经植入这片沃土,请以农夫的心态用心浇灌,不久的将来,将会长成苍天大树,结出丰硕的果实。加油哦!",textAlignment: .left,height: h,textTopOffset: 22)
+                self.voicePlayer.replaceCurrentItem(with: AVPlayerItem(url: URL(string: TreeLevel.level_1.sound)!))
+                self.voicePlayer.play()
 												}
 								}
 
diff --git a/XQMuse/SceneDelegate.swift b/XQMuse/SceneDelegate.swift
index bfc9642..f16c49f 100644
--- a/XQMuse/SceneDelegate.swift
+++ b/XQMuse/SceneDelegate.swift
@@ -61,7 +61,9 @@
 								UserViewModel.clearToken()
 								UserViewModel.clearLoginInfo()
 								UserViewModel.clearAvatarInfo()
-								
+
+        NotificationCenter.default.post(name: LoginQuit_Noti, object: nil)
+
 								let loginNav = LoginNav(rootViewController: LoginVC())
 								loginNav.modalPresentationStyle = .fullScreen
 								JQ_currentViewController().present(loginNav, animated: true)

--
Gitblit v1.7.1