fix
无故事王国
2024-06-20 0c89e362069e2f97d18a01a3a82835ef37a34d18
fix
28个文件已修改
14个文件已添加
348 ■■■■ 已修改文件
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/Contents.json 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-40.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-72.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-76.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-small-50.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-small-50@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-small.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-small@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/ios-marketing.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Config/Config.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/DolphinEnglishLearnStudent.entitlements 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Login/LoginVC.swift 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Login/LoginVC.xib 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Models/CommonModel.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TCell.swift 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_process_TCell.swift 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_process_TCell.xib 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_2_VC.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_3_VC.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenMenuVC.swift 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenVC.swift 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/CCell/MarketCCell.swift 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/CCell/MarketCCell.xib 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/MarketVC.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/MarketVC.xib 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.swift 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.xib 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketExchangeVC.swift 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketExchangeVC.xib 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/TCell/GoodsItemTCell.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/TCell/GoodsItemTCell.xib 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/VC/AddressManageHandleVC.swift 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/VC/ExchangeRecordHistoryVC.swift 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Services/Services.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,8 +1,87 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "platform" : "ios",
      "filename" : "notification-icon~ipad.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "20x20"
    },
    {
      "filename" : "notification-icon~ipad@2x.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "20x20"
    },
    {
      "filename" : "icon-small.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "29x29"
    },
    {
      "filename" : "icon-small@2x.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "29x29"
    },
    {
      "filename" : "icon-40.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "40x40"
    },
    {
      "filename" : "icon-40@2x.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "40x40"
    },
    {
      "filename" : "icon-small-50.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "50x50"
    },
    {
      "filename" : "icon-small-50@2x.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "50x50"
    },
    {
      "filename" : "icon-72.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "72x72"
    },
    {
      "filename" : "icon-72@2x.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "72x72"
    },
    {
      "filename" : "icon-76.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "76x76"
    },
    {
      "filename" : "icon-76@2x.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "76x76"
    },
    {
      "filename" : "icon-83.5@2x.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "83.5x83.5"
    },
    {
      "filename" : "ios-marketing.png",
      "idiom" : "ios-marketing",
      "scale" : "1x",
      "size" : "1024x1024"
    }
  ],
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-40.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-72.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-76.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-small-50.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-small-50@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-small.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/icon-small@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/ios-marketing.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad.png
DolphinEnglishLearnStudent/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad@2x.png
DolphinEnglishLearnStudent/Config/Config.swift
@@ -110,7 +110,7 @@
extension UIButton{
                public func openCountDown(_ t:Int = 59,defultTitle:String = "获取验证码",textColor:UIColor,unenableColor:UIColor){
                                var time = t //倒计时时间
                                let queue = DispatchQueue.global()
                                let queue = DispatchQueue.main
                                let timer = DispatchSource.makeTimerSource(flags: [], queue: queue)
                                timer.schedule(wallDeadline: DispatchWallTime.now(), repeating: .seconds(1));
                                timer.setEventHandler(handler: {
DolphinEnglishLearnStudent/DolphinEnglishLearnStudent.entitlements
@@ -1,10 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>applinks:dollearn/app/</string>
    </array>
</dict>
<dict/>
</plist>
DolphinEnglishLearnStudent/Login/LoginVC.swift
@@ -68,6 +68,7 @@
                @IBAction func getCodeAction(_ sender: UIButton) {
                                view.endEditing(true)
                                guard authInputPhone() else {return}
                                Services.sendPhoneCode(phone: tf_phone.text!).subscribe(onNext: {_ in
                                                sender.openCountDown(60, defultTitle: "获取验证码", textColor:UIColor(hexStr: "#41A2EB"), unenableColor: .gray)
DolphinEnglishLearnStudent/Login/LoginVC.xib
@@ -24,10 +24,10 @@
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_login" translatesAutoresizingMaskIntoConstraints="NO" id="rqd-Xo-f9G">
                    <rect key="frame" x="442" y="66" width="296" height="129"/>
                    <rect key="frame" x="442" y="42" width="296" height="129"/>
                </imageView>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2PL-Tz-O9m">
                    <rect key="frame" x="432" y="259" width="316" height="47"/>
                    <rect key="frame" x="432" y="235" width="316" height="47"/>
                    <subviews>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_input_phone" translatesAutoresizingMaskIntoConstraints="NO" id="pxt-Uu-WaU">
                            <rect key="frame" x="14" y="14.5" width="16" height="18"/>
@@ -70,7 +70,7 @@
                    </userDefinedRuntimeAttributes>
                </view>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5aU-uW-fH7">
                    <rect key="frame" x="432" y="325" width="316" height="47"/>
                    <rect key="frame" x="432" y="301" width="316" height="47"/>
                    <subviews>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_input_code" translatesAutoresizingMaskIntoConstraints="NO" id="rNa-Hc-XJJ">
                            <rect key="frame" x="14" y="14.5" width="15" height="18"/>
@@ -89,11 +89,13 @@
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </textField>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nrP-lG-Vwu">
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nrP-lG-Vwu">
                            <rect key="frame" x="226" y="9" width="72" height="29"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                            <state key="normal" title="获取验证码"/>
                            <state key="normal" title="获取验证码">
                                <color key="titleColor" red="0.25490196078431371" green="0.63529411764705879" blue="0.92156862745098034" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </state>
                            <connections>
                                <action selector="getCodeAction:" destination="-1" eventType="touchUpInside" id="8dv-4Y-0hV"/>
                            </connections>
@@ -124,7 +126,7 @@
                    </userDefinedRuntimeAttributes>
                </view>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zkX-mZ-xif">
                    <rect key="frame" x="432" y="389" width="28" height="28"/>
                    <rect key="frame" x="432" y="365" width="28" height="28"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="28" id="C6n-KA-Bq1"/>
                        <constraint firstAttribute="width" constant="28" id="ZrR-qD-rgI"/>
@@ -137,13 +139,13 @@
                    </connections>
                </button>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我已阅读并同意" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Npo-Be-a3K">
                    <rect key="frame" x="462" y="396" width="86" height="14.5"/>
                    <rect key="frame" x="462" y="372" width="86" height="14.5"/>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                </label>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Knm-yq-p47">
                    <rect key="frame" x="553" y="389.5" width="62" height="27"/>
                    <rect key="frame" x="553" y="365.5" width="62" height="27"/>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                    <state key="normal" title="《隐私协议》">
@@ -154,7 +156,7 @@
                    </connections>
                </button>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="G1I-su-UhY">
                    <rect key="frame" x="625" y="389.5" width="62" height="27"/>
                    <rect key="frame" x="625" y="365.5" width="62" height="27"/>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                    <state key="normal" title="《用户协议》">
@@ -165,7 +167,7 @@
                    </connections>
                </button>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="X9q-qw-Sc1">
                    <rect key="frame" x="432" y="510.5" width="316" height="47"/>
                    <rect key="frame" x="432" y="486.5" width="316" height="47"/>
                    <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="47" id="Fae-u5-7uD"/>
@@ -189,7 +191,6 @@
            <constraints>
                <constraint firstItem="rqd-Xo-f9G" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="0XQ-el-QmK"/>
                <constraint firstItem="2PL-Tz-O9m" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="1j1-ur-o1S"/>
                <constraint firstItem="rqd-Xo-f9G" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="42" id="2IP-HE-2Nd"/>
                <constraint firstItem="Npo-Be-a3K" firstAttribute="leading" secondItem="zkX-mZ-xif" secondAttribute="trailing" constant="2" id="2SD-Cj-4aC"/>
                <constraint firstItem="X9q-qw-Sc1" firstAttribute="trailing" secondItem="2PL-Tz-O9m" secondAttribute="trailing" id="FeZ-fg-b7e"/>
                <constraint firstItem="X9q-qw-Sc1" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="Jiw-eq-Tov"/>
@@ -204,9 +205,10 @@
                <constraint firstItem="Knm-yq-p47" firstAttribute="centerY" secondItem="zkX-mZ-xif" secondAttribute="centerY" id="iba-cz-icy"/>
                <constraint firstItem="X9q-qw-Sc1" firstAttribute="top" secondItem="Knm-yq-p47" secondAttribute="bottom" constant="94" id="kEm-5T-0op"/>
                <constraint firstItem="5aU-uW-fH7" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="mMU-RV-beK"/>
                <constraint firstItem="rqd-Xo-f9G" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="42" id="mp4-y4-ZCr"/>
                <constraint firstItem="G1I-su-UhY" firstAttribute="centerY" secondItem="zkX-mZ-xif" secondAttribute="centerY" id="r29-ab-IDV"/>
            </constraints>
            <point key="canvasLocation" x="140" y="20"/>
            <point key="canvasLocation" x="139.83050847457628" y="19.756097560975608"/>
        </view>
    </objects>
    <resources>
DolphinEnglishLearnStudent/Models/CommonModel.swift
@@ -92,13 +92,13 @@
                var isDelete: Int = 0
                var name: String = ""
                var price: Int = 0
                var surplus: Int = 0
                var surplus: Int?
                var total: Int = 0
                var type: Int = 0
                var typeIds: String = ""
                var updateBy: String = ""
                var updateTime: String = ""
                var userCount: Int = 0
                var userCount: Int?
}
struct MarketTypeModel:HandyJSON,Hashable{
DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift
@@ -270,10 +270,12 @@
extension HomeListenFight_lesson_1_VC:VoicePlayerDelegate{
                func playing() {
                                isListen = false
                                self.view.isUserInteractionEnabled = false
                }
                
                func playComplete() {
                                isListen = true
                                self.view.isUserInteractionEnabled = true
                                self.menuView?.resetView()
                                if isAnsterComplete{
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TCell.swift
@@ -21,8 +21,7 @@
    }
                func setProgress(progress:Int){
                                if progress == 0{
                                if progress <= 0{
                                                view_state.backgroundColor = UIColor(hexString: "#F84D31")
                                                label_state.text = "未完成"
                                }else if progress == 100{
@@ -31,9 +30,6 @@
                                }else if progress > 0 && progress < 100{
                                                view_state.backgroundColor = UIColor(hexString: "#FF8A66")
                                                label_state.text = String(format: "%ld%%", progress)
                                }else{
                                                view_state.backgroundColor = .black.withAlphaComponent(0.33)
                                                label_state.text = "未开始"
                                }
                }
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_process_TCell.swift
@@ -17,14 +17,12 @@
                var studyScheduleModel:StudyScheduleModel?{
                                didSet{
                                                if let m = studyScheduleModel{
                                                                label_currentWeek.text = "当前周目:\(studyScheduleModel?.week.jq_cn ?? "")周目"
//                                                                label_currentWeek.text = "当前周目:\(studyScheduleModel?.week.jq_cn ?? "")周目"
                                                                label_info.attributedText     = AttributedStringbuilder.build().add(string: "学习总时长:", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                                                                                .add(string: "\(m.totalStudy)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!)
                                                                                .add(string: "|今日学习", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                                                                                .add(string: "\(m.todayStudy)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!).mutableAttributedString
                                                                cons_progress.constant = ((JQ_ScreenW - 234 * 2 - 44) / 100) * Double(m.computeSchedule)
                                                                label_completeProgress.text = "已完成:\(m.computeSchedule)%"
                                                }
@@ -35,6 +33,11 @@
        super.awakeFromNib()
                                backgroundColor = .clear
                                selectionStyle = .none
                                label_info.attributedText     = AttributedStringbuilder.build().add(string: "学习总时长:", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                                                .add(string: "\(0)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!)
                                                .add(string: "|今日学习", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                                                .add(string: "\(0)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!).mutableAttributedString
    }
}
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_process_TCell.xib
@@ -35,7 +35,7 @@
                                <color key="textColor" red="0.96078431372549022" green="0.47450980392156861" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4vp-cM-Wt2">
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学习总时长:0小时|今日学习:0小时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4vp-cM-Wt2">
                                <rect key="frame" x="23" y="58" width="495" height="22"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="22" id="Pn7-ug-yZr"/>
@@ -45,11 +45,11 @@
                                <nil key="highlightedColor"/>
                            </label>
                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5YC-oK-utb">
                                <rect key="frame" x="22" y="104" width="20" height="6"/>
                                <rect key="frame" x="22" y="104" width="0.0" height="6"/>
                                <color key="backgroundColor" red="0.25490196078431371" green="0.63529411764705879" blue="0.92156862745098034" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="6" id="Q4v-Ro-Ym2"/>
                                    <constraint firstAttribute="width" constant="20" id="Zzl-QC-ej8"/>
                                    <constraint firstAttribute="width" id="Zzl-QC-ej8"/>
                                </constraints>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_2_VC.swift
@@ -296,6 +296,7 @@
extension HomeListenFight_lesson_2_VC:VoicePlayerDelegate{
                func playing() {
                                view.isUserInteractionEnabled = false
                                print("正在播放")
                                //正在播放中,其他播放按钮先禁止
                                for sub in stackView.arrangedSubviews as! [StudyHandleView]{
@@ -306,6 +307,7 @@
                }
                
                func playComplete() {
                                view.isUserInteractionEnabled = true
                                //对已经播放过的View,进行刷新
                                for sub in stackView.arrangedSubviews as! [StudyHandleView]{
                                                sub.btn_pay.isEnabled = true
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_3_VC.swift
@@ -383,6 +383,7 @@
extension HomeListenFight_lesson_3_VC:VoicePlayerDelegate{
                func playComplete() {
                                view.isUserInteractionEnabled = true
                                isPlayingIndex =  nil
                                islisten  = true
                                var nextRow = (viewModel.selectIndex.value?.row ?? 0) + 1
@@ -409,5 +410,6 @@
                func playing() {
                                islisten = false
                                view.isUserInteractionEnabled = false
                }
}
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenMenuVC.swift
@@ -45,12 +45,14 @@
                                tableView.dataSource = self
                                tableView.separatorStyle = .none
                                tableView.showsVerticalScrollIndicator = false
                                tableView.showsHorizontalScrollIndicator = false
                                tableView.register(HomeListenMenuTCell.self, forCellReuseIdentifier: "_HomeListenMenuTCell")
                                tableView.reloadData()
                                collectionView.delegate = self
                                collectionView.dataSource = self
                                collectionView.showsVerticalScrollIndicator = false
                                collectionView.showsHorizontalScrollIndicator = false
                                collectionView.contentInset = .init(top: 20, left: 20, bottom: 20, right: 20)
                                collectionView.register(HomeListenMenuCCell.self, forCellWithReuseIdentifier: "_HomeListenMenuCCell")
                }
@@ -61,11 +63,15 @@
                func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
                                let model = dataItems[selectIndexPath.row][indexPath.row]
                                let quarter = selectIndexPath.row + 1 //季度
                                let week = model.week //周
                                let vc = HomeListenVC(quarter: quarter, week: week)
                                push(vc: vc)
                                Services.studySchedule(week: model.week).subscribe(onNext: {[weak self]data in
                                                guard let weakSelf = self else { return }
                                                if let model = data.data{
                                                                let quarter = weakSelf.selectIndexPath.row + 1 //季度
                                                                let week = model.week //周
                                                                let vc = HomeListenVC(quarter: quarter, week: week,studyScheduleModel: model)
                                                                weakSelf.push(vc: vc)
                                                }
                                }).disposed(by: disposeBag)
                }
                func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift
@@ -219,6 +219,7 @@
                                if indexPath.section == 0 && page <= 4{
                                                let cell = tableView.dequeueReusableCell(withIdentifier: "_HomeListen_process_TCell", for: indexPath) as! HomeListen_process_TCell
                                                cell.studyScheduleModel = studyScheduleModel
                                                cell.label_currentWeek.text = "当前周目:\(week.jq_cn)周目"
                                                return cell
                                }else{
                                                let cell = tableView.dequeueReusableCell(withIdentifier: "_HomeListen_item_TCell", for: indexPath) as! HomeListen_item_TCell
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenVC.swift
@@ -15,6 +15,7 @@
                private var limitDay = 1
                private var quarter:Int!
                private var week:Int!
                private var studyScheduleModel:StudyScheduleModel!
                private lazy var menu:SPPageMenu = {
                                let menu = SPPageMenu(frame: .zero, trackerStyle: .line)
@@ -37,39 +38,38 @@
                                return vc
                }()
                required init(quarter:Int,week:Int) {
                required init(quarter:Int,week:Int,studyScheduleModel:StudyScheduleModel) {
                                super.init(nibName: nil, bundle: nil)
                                self.quarter = quarter
                                self.week = week
                                self.studyScheduleModel = studyScheduleModel
                }
                
                required init?(coder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
                
    override func viewDidLoad() {
        super.viewDidLoad()
                override func viewDidLoad() {
                                super.viewDidLoad()
                                Services.studySchedule(week: week).subscribe(onNext: {data in
                                                self.limitDay = data.data?.day ?? 0
                                self.limitDay = studyScheduleModel.day
                                                #if DEBUG
                                                self.limitDay = 5
                                                #endif
#if DEBUG
                                self.limitDay = 5
#endif
                                                if self.limitDay == 5{
                                                                self.limitDay = Int.max
                                if self.limitDay == 5{
                                                self.limitDay = Int.max
                                }
                                for (index,titleL) in (self.menu.subviews.last?.subviews[1].subviews ?? []).filter({$0 is UIButton}).enumerated(){
                                                if let btn = titleL as?  UIButton{
                                                                btn.setTitleColor(index < (self.limitDay) ? .black:.black.withAlphaComponent(0.33), for: .normal)
                                                                self.menu.setEnabled(index < (self.limitDay), forItemAt: UInt(index))
                                                }
                                                for (index,titleL) in (self.menu.subviews.last?.subviews[1].subviews ?? []).filter({$0 is UIButton}).enumerated(){
                                                                if let btn = titleL as?  UIButton{
                                                                                btn.setTitleColor(index < (self.limitDay) ? .black:.black.withAlphaComponent(0.33), for: .normal)
                                                                                self.menu.setEnabled(index < (self.limitDay), forItemAt: UInt(index))
                                                                }
                                                }
                                                self.pageVC.reloadData()
                                }).disposed(by: disposeBag)
    }
                                }
                                self.pageVC.reloadData()
                }
                override func setUI() {
                                super.setUI()
DolphinEnglishLearnStudent/Moudle/Market/CCell/MarketCCell.swift
@@ -6,13 +6,15 @@
//
import UIKit
import JQTools
class MarketCCell: UICollectionViewCell {
                @IBOutlet weak var cover_imageView: UIImageView!
                @IBOutlet weak var label_title: UILabel!
                @IBOutlet weak var label_coin: UILabel!
                @IBOutlet weak var label_originPrice: UILabel!
                override func awakeFromNib() {
        super.awakeFromNib()
        
@@ -24,6 +26,12 @@
                                                                cover_imageView.sd_setImage(with: URL(string: m.coverImg))
                                                                label_title.text = m.name
                                                                label_coin.text = "\(m.integral)积分"
                                                                label_originPrice.isHidden = m.price <= 0
                                                                if !label_originPrice.isHidden{
                                                                                label_originPrice.attributedText = AttributedStringbuilder.build().add(string: "¥\(m.price)", withFont: UIFont.init(name: "Impact", size: 14) ?? .systemFont(ofSize: 14, weight: .medium), withColor: UIColor(hexString: "#9A9A9A")!).delLine(color: UIColor(hexString: "#9A9A9A")!).mutableAttributedString
                                                                }
                                                }
                                }
                }
DolphinEnglishLearnStudent/Moudle/Market/CCell/MarketCCell.xib
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <device id="ipad10_9rounded" orientation="portrait" layout="fullscreen" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
@@ -10,7 +10,7 @@
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_MarketCCell" id="gTV-IL-0wX" customClass="MarketCCell" customModule="DolphinEnglishLearnManager" customModuleProvider="target">
        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_MarketCCell" id="gTV-IL-0wX" customClass="MarketCCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="470" height="519"/>
            <autoresizingMask key="autoresizingMask"/>
            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
@@ -18,21 +18,27 @@
                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                <subviews>
                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="2cm-3W-Dip">
                        <rect key="frame" x="0.0" y="0.0" width="470" height="352.66666666666669"/>
                        <rect key="frame" x="0.0" y="0.0" width="470" height="352.5"/>
                        <constraints>
                            <constraint firstAttribute="width" secondItem="2cm-3W-Dip" secondAttribute="height" multiplier="1:0.75" id="U9h-Bg-isg"/>
                        </constraints>
                    </imageView>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cZP-Mn-OJ6">
                        <rect key="frame" x="7" y="360.66666666666669" width="456" height="17"/>
                        <rect key="frame" x="7" y="360.5" width="456" height="17"/>
                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B7C-Df-hv9">
                        <rect key="frame" x="417.66666666666669" y="492" width="39.333333333333314" height="17"/>
                        <rect key="frame" x="417.5" y="492" width="39.5" height="17"/>
                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                        <color key="textColor" red="0.96862745098039216" green="0.27450980392156865" blue="0.1764705882352941" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fj3-9w-shK">
                        <rect key="frame" x="397" y="492" width="14.5" height="17"/>
                        <fontDescription key="fontDescription" name="Impact" family="Impact" pointSize="14"/>
                        <color key="textColor" red="0.60392156862745094" green="0.60392156862745094" blue="0.60392156862745094" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <nil key="highlightedColor"/>
                    </label>
                </subviews>
@@ -44,14 +50,17 @@
                <constraint firstAttribute="trailing" secondItem="B7C-Df-hv9" secondAttribute="trailing" constant="13" id="CCg-Jf-Mwe"/>
                <constraint firstAttribute="bottom" secondItem="B7C-Df-hv9" secondAttribute="bottom" constant="10" id="MLQ-id-sQE"/>
                <constraint firstItem="2cm-3W-Dip" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="MX5-We-LCK"/>
                <constraint firstItem="B7C-Df-hv9" firstAttribute="leading" secondItem="Fj3-9w-shK" secondAttribute="trailing" constant="6" id="PMi-kh-yca"/>
                <constraint firstItem="cZP-Mn-OJ6" firstAttribute="top" secondItem="2cm-3W-Dip" secondAttribute="bottom" constant="8" id="Xrn-7e-mOW"/>
                <constraint firstItem="2cm-3W-Dip" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="lQn-8e-jEv"/>
                <constraint firstItem="cZP-Mn-OJ6" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="7" id="tDr-lk-oeH"/>
                <constraint firstItem="B7C-Df-hv9" firstAttribute="centerY" secondItem="Fj3-9w-shK" secondAttribute="centerY" id="ylk-jT-SNk"/>
            </constraints>
            <size key="customSize" width="470" height="519"/>
            <connections>
                <outlet property="cover_imageView" destination="2cm-3W-Dip" id="Rgm-EG-CCF"/>
                <outlet property="label_coin" destination="B7C-Df-hv9" id="RFw-M6-RQB"/>
                <outlet property="label_originPrice" destination="Fj3-9w-shK" id="rRq-o2-j83"/>
                <outlet property="label_title" destination="cZP-Mn-OJ6" id="7hk-XA-3Jx"/>
            </connections>
            <point key="canvasLocation" x="459.5419847328244" y="185.56338028169014"/>
DolphinEnglishLearnStudent/Moudle/Market/MarketVC.swift
@@ -68,6 +68,8 @@
                                menu_collectView.backgroundColor = .clear
                                menu_collectView.dataSource = self
                                menu_collectView.delegate = self
                                menu_collectView.showsHorizontalScrollIndicator = false
                                menu_collectView.showsVerticalScrollIndicator = false
                                menu_collectView.register(UINib(nibName: "MarketTagCCell", bundle: nil), forCellWithReuseIdentifier: "_MarketTagCCell")
                }
DolphinEnglishLearnStudent/Moudle/Market/MarketVC.xib
@@ -110,7 +110,7 @@
                    <constraints>
                        <constraint firstAttribute="height" constant="41" id="A5O-nk-89N"/>
                    </constraints>
                    <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="ozO-lT-kFv">
                    <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="ozO-lT-kFv">
                        <size key="itemSize" width="128" height="128"/>
                        <size key="headerReferenceSize" width="0.0" height="0.0"/>
                        <size key="footerReferenceSize" width="0.0" height="0.0"/>
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.swift
@@ -66,8 +66,15 @@
                                                                self?.label_categry.text = m.goodTypes.map({$0.name}).joined(separator: "|")
                                                                var info_Array = Array<String>()
                                                                info_Array.append("剩余数量:\(m.good?.surplus ?? 0)")
                                                                info_Array.append("可换数量:\(m.good?.userCount ?? 0)")
                                                                if m.good?.surplus != nil{
                                                                                info_Array.append("剩余数量:\(m.good?.surplus ?? 0)")
                                                                }
                                                                if m.good?.userCount != nil{
                                                                                info_Array.append("可换数量:\(m.good?.userCount ?? 0)")
                                                                }
                                                                info_Array.append("\(m.exchangeNumber)人兑换")
                                                                self?.label_info.text = info_Array.joined(separator: "|")
@@ -105,6 +112,7 @@
                @IBAction func exchangeAction(_ sender: UIButton) {
                                guard viewModel.detailModel.value?.good?.surplus != 0 else {
                                                CommonAlertView.show(isSinple: true, content: "兑换失败,当前剩余数量不足!") {
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.xib
@@ -92,7 +92,7 @@
                    <rect key="frame" x="234" y="20" width="556" height="1292"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3V0-GL-Fmn">
                            <rect key="frame" x="0.0" y="0.0" width="556" height="681"/>
                            <rect key="frame" x="0.0" y="0.0" width="556" height="702"/>
                            <subviews>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yrU-ab-vv9">
                                    <rect key="frame" x="14" y="329.5" width="10" height="25"/>
@@ -172,6 +172,15 @@
                                        <constraint firstAttribute="width" secondItem="lUx-IV-YIU" secondAttribute="height" multiplier="1:0.575" id="Vfi-RM-kqs"/>
                                    </constraints>
                                </view>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="商品兑换活动均与Apple Inc. 无关" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vy4-mb-8lB">
                                    <rect key="frame" x="171.5" y="676" width="213" height="18"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="18" id="YGA-fW-2xn"/>
                                    </constraints>
                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                    <color key="textColor" red="0.60392156860000001" green="0.60392156860000001" blue="0.60392156860000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
@@ -184,18 +193,20 @@
                                <constraint firstItem="LtS-Mg-aeT" firstAttribute="centerY" secondItem="yrU-ab-vv9" secondAttribute="centerY" id="Eqy-fC-VXN"/>
                                <constraint firstItem="SHM-HW-3QJ" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="IcX-sV-UsY"/>
                                <constraint firstAttribute="trailing" secondItem="PgE-zX-EIu" secondAttribute="trailing" constant="14" id="KOH-43-2e0"/>
                                <constraint firstAttribute="bottom" secondItem="vy4-mb-8lB" secondAttribute="bottom" constant="8" id="OU8-4z-ngg"/>
                                <constraint firstItem="lUx-IV-YIU" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" id="OoB-ef-zF5"/>
                                <constraint firstItem="3WZ-Jf-leh" firstAttribute="top" secondItem="SHM-HW-3QJ" secondAttribute="bottom" constant="15" id="TZb-uR-n12"/>
                                <constraint firstItem="vy4-mb-8lB" firstAttribute="top" secondItem="ZOY-ws-sjP" secondAttribute="bottom" constant="5" id="U70-oF-Bsm"/>
                                <constraint firstItem="yrU-ab-vv9" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="bvf-qv-PXf"/>
                                <constraint firstItem="LtS-Mg-aeT" firstAttribute="leading" secondItem="yrU-ab-vv9" secondAttribute="trailing" id="ce9-HT-eYR"/>
                                <constraint firstAttribute="trailing" secondItem="3WZ-Jf-leh" secondAttribute="trailing" constant="13" id="gDs-iU-l4D"/>
                                <constraint firstAttribute="trailing" secondItem="lUx-IV-YIU" secondAttribute="trailing" id="i5N-By-Pa9"/>
                                <constraint firstItem="vy4-mb-8lB" firstAttribute="centerX" secondItem="3V0-GL-Fmn" secondAttribute="centerX" id="idm-OK-nPX"/>
                                <constraint firstItem="ZOY-ws-sjP" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="k11-lO-F1N"/>
                                <constraint firstItem="SHM-HW-3QJ" firstAttribute="top" secondItem="PgE-zX-EIu" secondAttribute="bottom" constant="7" id="kjs-SE-QJz"/>
                                <constraint firstItem="3WZ-Jf-leh" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="13" id="msq-Yj-Hkl"/>
                                <constraint firstItem="PgE-zX-EIu" firstAttribute="top" secondItem="yrU-ab-vv9" secondAttribute="bottom" constant="7" id="tro-c3-NxF"/>
                                <constraint firstItem="PgE-zX-EIu" firstAttribute="leading" secondItem="3V0-GL-Fmn" secondAttribute="leading" constant="14" id="upN-6F-Xy0"/>
                                <constraint firstAttribute="bottom" secondItem="ZOY-ws-sjP" secondAttribute="bottom" constant="10" id="x2O-1I-fif"/>
                                <constraint firstAttribute="trailing" secondItem="ZOY-ws-sjP" secondAttribute="trailing" constant="14" id="zdu-6P-uIG"/>
                            </constraints>
                        </view>
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketExchangeVC.swift
@@ -68,6 +68,7 @@
                                }).disposed(by: disposeBag)
                                self.img_cover.sd_setImage(with: URL(string: viewModel.detailModel.value?.good?.coverImg))
                                self.img_cover.jq_cornerRadius = 10
                                self.label_goodsName.text = viewModel.detailModel.value?.good?.name ?? ""
                                self.label_coin.text = "\(viewModel.detailModel.value?.good?.integral ?? 0)"
                                if viewModel.detailModel.value?.good?.userCount == 1{
@@ -91,6 +92,12 @@
                                                let totalCoin = num * (self?.viewModel.detailModel.value?.good?.integral ?? 0)
                                                self?.label_needCoin.text = "\(totalCoin)"
                                                self?.label_footNeedCoin.text = "\(totalCoin)"
                                }).disposed(by: disposeBag)
                                field_number.rx.controlEvent(.editingDidEnd).subscribe(onNext: {[weak self] _ in
                                                if let count = self?.field_number.text?.int{
                                                                self?.viewModel.number.accept(count)
                                                }
                                }).disposed(by: disposeBag)
                }
@@ -116,8 +123,8 @@
                
                @IBAction func addNumAction(_ sender: UIButton) {
                                var num = viewModel.number.value + 1
                                if  num >= viewModel.detailModel.value?.good?.userCount ?? 0{
                                                num = viewModel.detailModel.value?.good?.userCount ?? 0
                                if  num >= viewModel.detailModel.value?.good?.userCount ?? 999{
                                                num = viewModel.detailModel.value?.good?.userCount ?? 999
                                                sender.isEnabled = false
                                }
                                viewModel.number.accept(num)
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketExchangeVC.xib
@@ -83,7 +83,7 @@
                        <constraint firstItem="N4Y-Qi-AD2" firstAttribute="leading" secondItem="REn-PL-iJ3" secondAttribute="trailing" constant="15" id="ydl-uL-nuJ"/>
                    </constraints>
                </view>
                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hFz-gY-osL">
                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hFz-gY-osL">
                    <rect key="frame" x="234" y="20" width="556" height="1292"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4wG-oJ-eBG">
@@ -149,8 +149,14 @@
                                                        <constraint firstAttribute="width" constant="170" id="gTg-aH-0dy"/>
                                                        <constraint firstAttribute="width" secondItem="QM5-dP-No2" secondAttribute="height" multiplier="1:1" id="xVR-OV-Dag"/>
                                                    </constraints>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                                            <real key="value" value="4"/>
                                                        </userDefinedRuntimeAttribute>
                                                    </userDefinedRuntimeAttributes>
                                                </imageView>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SZF-J0-byW">
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SZF-J0-byW">
                                                    <rect key="frame" x="197" y="15" width="346" height="19.5"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                    <nil key="textColor"/>
DolphinEnglishLearnStudent/Moudle/Me/TCell/GoodsItemTCell.swift
@@ -73,7 +73,7 @@
                                let vc = AddressManageVC(type: .choose)
                                vc.title = "修改地址"
                                vc.chooseAddress { m in
                                                CommonAlertView.show(content: "确认修改地址?") {[weak self] () in
                                                CommonAlertView.show(content: "确认修改当前收货地址吗?") {[weak self] () in
                                                                guard let weakSelf = self else { return }
                                                                if weakSelf.exchangeRecordModel?.consigneeAddress == m.address && weakSelf.exchangeRecordModel?.consigneeName == m.recipient && weakSelf.exchangeRecordModel?.consigneePhone == m.recipientPhone{
                                                                                alertError(msg: "修改地址信息与原地址信息相同");return
DolphinEnglishLearnStudent/Moudle/Me/TCell/GoodsItemTCell.xib
@@ -10,27 +10,30 @@
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_GoodsItemTCell" rowHeight="344" id="KGk-i7-Jjw" customClass="GoodsItemTCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="532" height="344"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_GoodsItemTCell" rowHeight="279" id="KGk-i7-Jjw" customClass="GoodsItemTCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="838" height="279"/>
            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
                <rect key="frame" x="0.0" y="0.0" width="532" height="344"/>
                <rect key="frame" x="0.0" y="0.0" width="838" height="279"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EWl-m5-3O9">
                        <rect key="frame" x="0.0" y="6" width="532" height="332"/>
                        <rect key="frame" x="0.0" y="6" width="838" height="267"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9oA-7x-in6">
                                <rect key="frame" x="8" y="19" width="41.5" height="20.5"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <rect key="frame" x="8" y="19" width="32.5" height="17"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="17" id="pDF-49-lcw"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="HZS-Oe-5LR">
                                <rect key="frame" x="8" y="52.5" width="148" height="148"/>
                                <rect key="frame" x="8" y="49" width="148" height="148"/>
                                <constraints>
                                    <constraint firstAttribute="width" constant="148" id="D3I-iy-k6w"/>
                                    <constraint firstAttribute="width" secondItem="HZS-Oe-5LR" secondAttribute="height" multiplier="1:1" id="YQJ-eG-71N"/>
                                    <constraint firstAttribute="height" constant="148" id="mod-K3-IVQ"/>
                                </constraints>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
@@ -40,28 +43,31 @@
                                </userDefinedRuntimeAttributes>
                            </imageView>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UdI-oe-WSO">
                                <rect key="frame" x="173" y="52.5" width="234" height="19.5"/>
                                <rect key="frame" x="173" y="49" width="575" height="19.5"/>
                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                <color key="textColor" red="0.082352941176470587" green="0.086274509803921567" blue="0.094117647058823528" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nMG-SO-H2Z">
                                <rect key="frame" x="481" y="53" width="40" height="19"/>
                                <rect key="frame" x="787" y="49.5" width="40" height="19"/>
                                <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="16"/>
                                <color key="textColor" red="0.96862745100000003" green="0.27450980390000002" blue="0.1764705882" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="viA-yT-ZWk">
                                <rect key="frame" x="173" y="72" width="359" height="17"/>
                                <rect key="frame" x="173" y="68.5" width="665" height="20"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="20" id="Q96-0G-h06"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                <nil key="textColor"/>
                                <color key="textColor" red="0.082352941176470587" green="0.086274509803921567" blue="0.094117647058823528" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="vd5-iK-Ujb">
                                <rect key="frame" x="173" y="96" width="303" height="70"/>
                                <rect key="frame" x="173" y="95.5" width="609" height="70"/>
                                <subviews>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="商品数量:-" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PlF-D7-xZD">
                                        <rect key="frame" x="0.0" y="0.0" width="303" height="20"/>
                                        <rect key="frame" x="0.0" y="0.0" width="609" height="20"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="20" id="ima-Vh-7Ak"/>
                                        </constraints>
@@ -70,7 +76,7 @@
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="收获信息:-" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qnF-SM-ngM">
                                        <rect key="frame" x="0.0" y="25" width="303" height="20"/>
                                        <rect key="frame" x="0.0" y="25" width="609" height="20"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="20" id="SzN-h8-eUd"/>
                                        </constraints>
@@ -79,7 +85,7 @@
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="发货信息:-" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cSS-lo-Yba">
                                        <rect key="frame" x="0.0" y="50" width="303" height="20"/>
                                        <rect key="frame" x="0.0" y="50" width="609" height="20"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="20" id="mDC-DF-Wc3"/>
                                        </constraints>
@@ -90,7 +96,7 @@
                                </subviews>
                            </stackView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xwt-lH-fyW">
                                <rect key="frame" x="397" y="274" width="124" height="40"/>
                                <rect key="frame" x="703" y="157" width="124" height="40"/>
                                <color key="backgroundColor" red="0.25490196079999999" green="0.63529411759999999" blue="0.92156862750000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="width" constant="124" id="3Ct-u1-c4s"/>
@@ -119,16 +125,17 @@
                            <constraint firstItem="vd5-iK-Ujb" firstAttribute="leading" secondItem="UdI-oe-WSO" secondAttribute="leading" id="CRk-D7-Sa0"/>
                            <constraint firstItem="9oA-7x-in6" firstAttribute="top" secondItem="EWl-m5-3O9" secondAttribute="top" constant="19" id="Kd6-sy-ai0"/>
                            <constraint firstAttribute="trailing" secondItem="nMG-SO-H2Z" secondAttribute="trailing" constant="11" id="NXe-Od-1mg"/>
                            <constraint firstAttribute="bottom" secondItem="xwt-lH-fyW" secondAttribute="bottom" constant="18" id="Ncc-MB-We2"/>
                            <constraint firstAttribute="bottom" secondItem="HZS-Oe-5LR" secondAttribute="bottom" priority="250" constant="18" id="OY7-J0-JEH"/>
                            <constraint firstItem="UdI-oe-WSO" firstAttribute="top" secondItem="HZS-Oe-5LR" secondAttribute="top" id="ZyM-TK-6FN"/>
                            <constraint firstAttribute="trailing" secondItem="viA-yT-ZWk" secondAttribute="trailing" id="d0F-tv-fNn"/>
                            <constraint firstItem="viA-yT-ZWk" firstAttribute="top" secondItem="UdI-oe-WSO" secondAttribute="bottom" id="fFu-Xa-Vst"/>
                            <constraint firstItem="vd5-iK-Ujb" firstAttribute="top" secondItem="viA-yT-ZWk" secondAttribute="bottom" constant="7" id="kmP-P0-Yhd"/>
                            <constraint firstItem="nMG-SO-H2Z" firstAttribute="centerY" secondItem="UdI-oe-WSO" secondAttribute="centerY" id="ne0-kd-EzF"/>
                            <constraint firstItem="HZS-Oe-5LR" firstAttribute="top" secondItem="9oA-7x-in6" secondAttribute="bottom" constant="13" id="nvs-xY-hiH"/>
                            <constraint firstItem="xwt-lH-fyW" firstAttribute="bottom" secondItem="HZS-Oe-5LR" secondAttribute="bottom" id="pao-1d-gzt"/>
                            <constraint firstItem="HZS-Oe-5LR" firstAttribute="leading" secondItem="EWl-m5-3O9" secondAttribute="leading" constant="8" id="u6c-56-glh"/>
                            <constraint firstAttribute="trailing" secondItem="vd5-iK-Ujb" secondAttribute="trailing" constant="56" id="ucU-JO-6dg"/>
                            <constraint firstAttribute="trailing" secondItem="UdI-oe-WSO" secondAttribute="trailing" constant="125" id="z0n-ib-Q7m"/>
                            <constraint firstAttribute="trailing" secondItem="UdI-oe-WSO" secondAttribute="trailing" constant="90" id="z0n-ib-Q7m"/>
                        </constraints>
                    </view>
                </subviews>
@@ -152,7 +159,7 @@
                <outlet property="label_types" destination="viA-yT-ZWk" id="3dU-h2-97f"/>
                <outlet property="view_container" destination="EWl-m5-3O9" id="vyU-l1-0CY"/>
            </connections>
            <point key="canvasLocation" x="259.5419847328244" y="126.05633802816902"/>
            <point key="canvasLocation" x="98.048780487804876" y="109.06779661016949"/>
        </tableViewCell>
    </objects>
</document>
DolphinEnglishLearnStudent/Moudle/Me/VC/AddressManageHandleVC.swift
@@ -112,6 +112,7 @@
extension AddressManageHandleVC:QMUITextFieldDelegate{
                func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
                                view.endEditing(true)
                                CityAddressPickerView.show(title: "选择省市区") {[weak self] province, city, country in
                                                self?.viewModel.provinceModel.accept(province)
                                                self?.viewModel.cityModel.accept(city)
DolphinEnglishLearnStudent/Moudle/Me/VC/ExchangeRecordHistoryVC.swift
@@ -71,9 +71,9 @@
                                return viewModel.dataSource.value.count
                }
                func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
                                return 241 * Config.RatioH
                }
//                func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
////                                return 215
//                }
}
DolphinEnglishLearnStudent/Services/Services.swift
@@ -12,8 +12,8 @@
import JQTools
#if DEBUG
//let All_Url = "http://192.168.110.237:9000"
let All_Url = "http://1.95.15.237:9000"
let All_Url = "http://192.168.110.237:9000"
//let All_Url = "http://1.95.15.237:9000"
#else
let All_Url = "http://1.95.15.237:9000"
#endif