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