| | |
| | | |
| | | var strTitle:String{ |
| | | switch self { |
| | | case .goods:return "实物" |
| | | case .goods:return "实体" |
| | | case .coupon:return "优惠券" |
| | | case .course:return "运动营" |
| | | case .course:return "课包" |
| | | case .ticket:return "门票" |
| | | } |
| | | } |
| | |
| | | var userCouponId: String = "" |
| | | var voucher: String = "" |
| | | var typeName = "" |
| | | var storePhone:String = "" |
| | | |
| | | var appUserId: Int = 0 |
| | | var sid = [Int]() |
| | |
| | | import JQTools |
| | | |
| | | #if DEBUG |
| | | //let All_Url = "https://ds867zleb4ow.xiaomiqiu.com" |
| | | //let All_Url = "http://192.168.110.27:56666" |
| | | let All_Url = "http://8.137.22.229:56666" //正式地址 |
| | | //let All_Url = "http://8.137.22.229:56666" |
| | | //let All_Url = "http://192.168.110.27:56666" //罗易胜 |
| | | let All_Url = "http://192.168.110.22:56666" //刘杰 |
| | | //let All_Url = "http://8.137.22.229:56666" //正式地址 |
| | | //let All_Url = "http://8.137.22.229:56666" //正式地址 |
| | | let Game_Url = "https://try.daowepark.com" |
| | | //let All_Url = "https://console-mock.apipost.cn/mock/b5b2dee0-5564-40ae-f082-a352d502a153" |
| | | //let All_Url = "http://192.168.110.165:10393/mock/b5b2dee0-5564-40ae-f082-a352d502a153" |
| | | #else |
| | | let All_Url = "http://8.137.22.229:56666" //正式地址 |
| | | //let Game_Url = "https://port.daowepark.com"//正式地址 |
| | |
| | | } |
| | | |
| | | /// 获取城市code获取门店 |
| | | class func queryStoreAtCity(cityCode:Int)->Observable<BaseResponse<[CityProfileModel]>>{ |
| | | class func queryStoreAtCity(cityCode:Int?,provinceCode:Int)->Observable<BaseResponse<[CityProfileModel]>>{ |
| | | let params = ParamsAppender.build(url: All_Url) |
| | | .interface(url: "/other/base/store/queryStoreByCityCode") |
| | | .append(key: "cityCode", value: cityCode) |
| | | .append(key: "provinceCode", value: provinceCode) |
| | | return NetworkRequest.request(params: params, method: .post, progress: true) |
| | | } |
| | | |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="width" relation="lessThanOrEqual" constant="140" id="4uc-RX-08Q"/> |
| | | </constraints> |
| | | </stackView> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Dbs-38-o1O"> |
| | | <rect key="frame" x="131" y="17.666666666666629" width="248" height="40"/> |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/> |
| | | <capability name="Named colors" minToolsVersion="9.0"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="width" relation="lessThanOrEqual" constant="140" id="zoQ-0l-GPy"/> |
| | | </constraints> |
| | | </stackView> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xz5-Ol-6OL"> |
| | | <rect key="frame" x="131" y="17.666666666666629" width="248" height="40"/> |
| | |
| | | t.append(weakSelf.experienceCourseModel!.day[selectIndex]) |
| | | } |
| | | Services.payCourse(courseId: weakSelf.courseId, num: n, oldCourseId: s, time: t).subscribe(onNext: {data in |
| | | alertSuccess(msg: "购买成功") |
| | | let vc = PaymentResultVC(result: .success, objType: .courseApply, handleVC: nil, courseConfigId: nil, againClouse: nil) |
| | | weakSelf.push(vc: vc) |
| | | }) { error in |
| | | |
| | | let vc = PaymentResultVC(result: .fail("购买失败", 0), objType: .courseApply, handleVC: nil, courseConfigId: nil, againClouse: nil) |
| | | weakSelf.push(vc: vc) |
| | | }.disposed(by: weakSelf.disposeBag) |
| | | } |
| | | } |
| | |
| | | guard let weakSelf = self else { return } |
| | | weakSelf.storeId = store.id |
| | | weakSelf.label_store.text = store.name |
| | | weakSelf.storeModel = HomeStoreModel(isVip: weakSelf.storeModel?.isVip ?? 0, storeId: store.id, name: store.name, lon: 0, lat: 0, province: province.name, provinceCode: province.code, city: city.name, cityCode: city.code) |
| | | weakSelf.storeModel = HomeStoreModel(isVip: weakSelf.storeModel?.isVip ?? 0, storeId: store.id, name: store.name, lon: 0, lat: 0, province: province.name, provinceCode: province.code, city: city?.name ?? "", cityCode: city?.code ?? 0) |
| | | weakSelf.items.removeAll() |
| | | weakSelf.getStoreItemList() |
| | | |
| | |
| | | |
| | | var price = 0.01 |
| | | #if !DEBUG |
| | | price = 199 |
| | | price = 0.01 |
| | | #endif |
| | | |
| | | PaymentView.show(money: (ali:price,wx:price,coin:nil,course:nil,integral:nil)) { type in |
| | |
| | | enum PaymentObjType{ |
| | | case member //会员 |
| | | case courseApply //运动营报名 |
| | | case courseSUPApply //运动营报名[体验] |
| | | case activityApply //活动报名 |
| | | case yard //场地预约 |
| | | case games //邮箱 |
| | |
| | | } |
| | | case .none:break |
| | | } |
| | | |
| | | |
| | | case .courseSUPApply: |
| | | //课时购买 |
| | | btn_backHome.isHidden = true |
| | | switch result { |
| | | case .fail(let str,_): |
| | | btn_again.setTitle("再次支付", for: .normal) |
| | | btn_back.setTitle("返回", for: .normal) |
| | | label_content.text = str |
| | | // if code == 3{btn_again.setTitle("去充值", for: .normal)} |
| | | case .success: |
| | | btn_again.setTitle("立即预约", for: .normal) |
| | | btn_back.setTitle("返回首页", for: .normal) |
| | | label_content.text = "报名成功,请及时预约运动营上课!" |
| | | case .none:break |
| | | } |
| | | |
| | | case .activityApply: |
| | | btn_backHome.isHidden = true |
| | | collectionView.isHidden = true |
| | |
| | | private var storesModel = [CityProfileModel]() |
| | | |
| | | |
| | | private var clouse:((CityProfileModel,CityProfileModel,CityProfileModel)->Void)! |
| | | private var clouse:((CityProfileModel,CityProfileModel?,CityProfileModel)->Void)! |
| | | private let disposeBag = DisposeBag() |
| | | |
| | | private var defaultStoreModel:HomeStoreModel? |
| | |
| | | layoutIfNeeded() |
| | | } |
| | | |
| | | static func show(defaultM:HomeStoreModel? = nil, clouse:@escaping (CityProfileModel,CityProfileModel,CityProfileModel)->Void){ |
| | | static func show(defaultM:HomeStoreModel? = nil, clouse:@escaping (CityProfileModel,CityProfileModel?,CityProfileModel)->Void){ |
| | | let storesView = StoresChooseView.jq_loadNibView() |
| | | storesView.clouse = clouse |
| | | storesView.defaultStoreModel = defaultM |
| | |
| | | sceneDelegate?.window?.addSubview(storesView) |
| | | |
| | | if let m = defaultM{ |
| | | storesView.label_city.text = m.city |
| | | storesView.label_province.text = m.province |
| | | storesView.label_currently.text = m.name |
| | | storesView.label_city.text = m.city.isEmpty ? "选择城市":m.city |
| | | storesView.label_province.text = m.province.isEmpty ? "选择省份":m.province |
| | | storesView.label_currently.text = m.name.isEmpty ? "选择门店":m.name |
| | | |
| | | storesView.provinceModel = CityProfileModel(id: 0, code: m.provinceCode, name: m.province) |
| | | storesView.cityModel = CityProfileModel(id: 0, code: m.cityCode, name: m.city) |
| | | storesView.storeModel = CityProfileModel(id: m.storeId, code: 0, name: m.name) |
| | | storesView.getData(m.provinceCode) |
| | | storesView.getStore(m.cityCode) |
| | | if m.provinceCode != 0{ |
| | | storesView.provinceModel = CityProfileModel(id: 0, code: m.provinceCode, name: m.province) |
| | | storesView.getData(m.provinceCode) |
| | | storesView.getStore(m.cityCode,provinceCode: m.provinceCode) |
| | | } |
| | | |
| | | if m.cityCode != 0{ |
| | | storesView.cityModel = CityProfileModel(id: 0, code: m.cityCode, name: m.city) |
| | | } |
| | | |
| | | if m.storeId != 0{ |
| | | storesView.storeModel = CityProfileModel(id: m.storeId, code: 0, name: m.name) |
| | | } |
| | | } |
| | | |
| | | UIView.animate(withDuration: 0.4) { |
| | |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | private func getStore(_ cityCode:Int){ |
| | | Services.queryStoreAtCity(cityCode: cityCode).subscribe(onNext: { [weak self] data in |
| | | private func getStore(_ cityCode:Int?,provinceCode:Int){ |
| | | Services.queryStoreAtCity(cityCode: cityCode, provinceCode: provinceCode).subscribe(onNext: { [weak self] data in |
| | | guard let weakSelf = self else { return } |
| | | weakSelf.storesModel = data.data ?? [] |
| | | }).disposed(by: disposeBag) |
| | |
| | | let names = provincesModel.map({$0.name}) |
| | | JQ_MenuView().show(self, tapView: sender, items: names, menuWidth: sender.jq_width, tableHei: 200) { [weak self] index, str in |
| | | guard let weakSelf = self else { return } |
| | | weakSelf.provinceModel = weakSelf.provincesModel[index] |
| | | weakSelf.label_province.text = weakSelf.provinceModel?.name ?? "" |
| | | weakSelf.getData(weakSelf.provinceModel!.code) |
| | | |
| | | weakSelf.cityModel = nil |
| | | weakSelf.label_city.text = "选择城市" |
| | | |
| | | weakSelf.storeModel = nil |
| | | weakSelf.label_currently.text = "选择门店" |
| | | |
| | | weakSelf.provinceModel = weakSelf.provincesModel[index] |
| | | weakSelf.label_province.text = weakSelf.provinceModel?.name ?? "" |
| | | weakSelf.getData(weakSelf.provinceModel!.code) |
| | | weakSelf.getStore(weakSelf.cityModel?.code,provinceCode: weakSelf.provinceModel!.code) |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | guard citysModel.count != 0 else {alertError(msg: "当前城市未开通");return} |
| | | JQ_MenuView().show(self, tapView: sender, items: citysModel.map({$0.name}), menuWidth: sender.jq_width, tableHei: 200) { [weak self] index, str in |
| | | guard let weakSelf = self else { return } |
| | | weakSelf.cityModel = weakSelf.citysModel[index] |
| | | weakSelf.label_city.text = weakSelf.cityModel?.name ?? "" |
| | | weakSelf.getStore(weakSelf.cityModel!.code) |
| | | |
| | | weakSelf.storeModel = nil |
| | | weakSelf.label_currently.text = "选择门店" |
| | | |
| | | weakSelf.cityModel = weakSelf.citysModel[index] |
| | | weakSelf.label_city.text = weakSelf.cityModel?.name ?? "" |
| | | weakSelf.getStore(weakSelf.cityModel?.code,provinceCode: weakSelf.provinceModel!.code) |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | alertError(msg: "请先选择省份");return |
| | | } |
| | | |
| | | guard cityModel != nil else { |
| | | alertError(msg: "请先选城市");return |
| | | } |
| | | // guard cityModel != nil else { |
| | | // alertError(msg: "请先选城市");return |
| | | // } |
| | | |
| | | JQ_MenuView().show(self, tapView: sender, items: storesModel.map({$0.name}), menuWidth: sender.jq_width, tableHei: 200) { [weak self] index, str in |
| | | guard let weakSelf = self else { return } |
| | |
| | | alertError(msg: "请先选择省份");return |
| | | } |
| | | |
| | | guard cityModel != nil else { |
| | | alertError(msg: "请先选城市");return |
| | | } |
| | | // guard cityModel != nil else { |
| | | // alertError(msg: "请先选城市");return |
| | | // } |
| | | |
| | | |
| | | guard storeModel != nil else { |
| | |
| | | } |
| | | |
| | | close() |
| | | clouse?(provinceModel!,cityModel!,storeModel!) |
| | | clouse?(provinceModel!,cityModel,storeModel!) |
| | | } |
| | | |
| | | } |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | |
| | | <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="_WelfareCoinCCell" id="gTV-IL-0wX" customClass="WelfareCoinCCell" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="240" height="220"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="194" height="228"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> |
| | | <rect key="frame" x="0.0" y="0.0" width="240" height="220"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="194" height="228"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="test_1" translatesAutoresizingMaskIntoConstraints="NO" id="IEc-iv-4yJ"> |
| | | <rect key="frame" x="0.0" y="0.0" width="240" height="220"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="194" height="194"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="IEc-iv-4yJ" secondAttribute="height" multiplier="1:1" id="aRs-sR-kLM"/> |
| | | </constraints> |
| | | </imageView> |
| | | <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="aSG-Yz-EAC"> |
| | | <rect key="frame" x="8" y="193" width="197.66666666666666" height="12"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="10"/> |
| | | <color key="textColor" red="0.28235294117647058" green="0.28235294117647058" blue="0.28235294117647058" alpha="1" colorSpace="calibratedRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="¥0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AV2-Pp-S8J"> |
| | | <rect key="frame" x="215.66666666666666" y="193" width="13.333333333333343" height="12"/> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="¥0" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AV2-Pp-S8J"> |
| | | <rect key="frame" x="169.66666666666666" y="200" width="13.333333333333343" height="12"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="10"/> |
| | | <color key="textColor" red="0.28235294119999998" green="0.28235294119999998" blue="0.28235294119999998" alpha="1" colorSpace="calibratedRGB"/> |
| | | <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="aSG-Yz-EAC"> |
| | | <rect key="frame" x="8" y="200" width="161.66666666666666" height="12"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="10"/> |
| | | <color key="textColor" red="0.28235294117647058" green="0.28235294117647058" blue="0.28235294117647058" alpha="1" colorSpace="calibratedRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | |
| | | <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/> |
| | | <constraints> |
| | | <constraint firstItem="IEc-iv-4yJ" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="6Ei-Ns-Z1k"/> |
| | | <constraint firstAttribute="bottom" secondItem="aSG-Yz-EAC" secondAttribute="bottom" constant="15" id="AL8-IR-1nf"/> |
| | | <constraint firstAttribute="trailing" secondItem="AV2-Pp-S8J" secondAttribute="trailing" constant="11" id="Dof-lP-TRr"/> |
| | | <constraint firstItem="AV2-Pp-S8J" firstAttribute="leading" secondItem="aSG-Yz-EAC" secondAttribute="trailing" constant="10" id="L85-6L-krt"/> |
| | | <constraint firstItem="AV2-Pp-S8J" firstAttribute="leading" secondItem="aSG-Yz-EAC" secondAttribute="trailing" id="L85-6L-krt"/> |
| | | <constraint firstItem="AV2-Pp-S8J" firstAttribute="top" secondItem="IEc-iv-4yJ" secondAttribute="bottom" constant="6" id="aOY-0a-5ab"/> |
| | | <constraint firstItem="IEc-iv-4yJ" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="dDk-dp-Nti"/> |
| | | <constraint firstAttribute="trailing" secondItem="IEc-iv-4yJ" secondAttribute="trailing" id="dvA-Fk-N9W"/> |
| | | <constraint firstAttribute="bottom" secondItem="IEc-iv-4yJ" secondAttribute="bottom" id="exw-ik-hta"/> |
| | | <constraint firstAttribute="bottom" secondItem="AV2-Pp-S8J" secondAttribute="bottom" constant="15" id="lsx-GR-Mx9"/> |
| | | <constraint firstItem="aSG-Yz-EAC" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="8" id="oCP-Ne-G57"/> |
| | | <constraint firstItem="aSG-Yz-EAC" firstAttribute="top" secondItem="IEc-iv-4yJ" secondAttribute="bottom" constant="6" id="rwX-hE-jfG"/> |
| | | </constraints> |
| | | <size key="customSize" width="240" height="220"/> |
| | | <size key="customSize" width="194" height="228"/> |
| | | <connections> |
| | | <outlet property="img_cover" destination="IEc-iv-4yJ" id="vcq-b0-gub"/> |
| | | <outlet property="label_name" destination="aSG-Yz-EAC" id="8fi-lJ-iyT"/> |
| | | <outlet property="label_price" destination="AV2-Pp-S8J" id="6Cw-gZ-3Ny"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="216.79389312977099" y="79.577464788732399"/> |
| | | <point key="canvasLocation" x="181.67938931297709" y="82.394366197183103"/> |
| | | </collectionViewCell> |
| | | </objects> |
| | | <resources> |
| | |
| | | btn.isSelected = true |
| | | var items = Array<NormalSimpleModel>() |
| | | items.append(NormalSimpleModel(id: 0, name: "全部")) |
| | | items.append(NormalSimpleModel(id: 1, name: "实物")) |
| | | items.append(NormalSimpleModel(id: 1, name: "实体")) |
| | | items.append(NormalSimpleModel(id: 2, name: "课包")) |
| | | items.append(NormalSimpleModel(id: 3, name: "门票")) |
| | | items.append(NormalSimpleModel(id: 4, name: "优惠券")) |
| | |
| | | |
| | | private var timer:Timer? |
| | | private var timerOffsetX:Double = 0 |
| | | private let cellW = JQ_ScreenW * 0.3794 |
| | | private let cellW = 144.0 |
| | | private var benefitHomeModel:BenefitHomeModel? |
| | | |
| | | override func viewDidLoad() { |
| | |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { |
| | | |
| | | return CGSize(width: cellW, height: cellW) |
| | | return CGSize(width: cellW, height: 178) |
| | | } |
| | | } |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/> |
| | | <capability name="Named colors" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | |
| | | <rect key="frame" x="0.0" y="59" width="393" height="759"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1kO-ug-2Gd"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="1296"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="1284.6666666666667"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qtJ-Db-Js8"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="152"/> |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="yBw-of-rdU"> |
| | | <rect key="frame" x="0.0" y="204" width="393" height="149"/> |
| | | <rect key="frame" x="0.0" y="204" width="393" height="168"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="yBw-of-rdU" secondAttribute="height" multiplier="1:0.3794" id="hDC-rS-NDq"/> |
| | | <constraint firstAttribute="height" constant="168" id="g0P-tJ-O7H"/> |
| | | </constraints> |
| | | <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="NCi-sh-oe2"> |
| | | <size key="itemSize" width="128" height="128"/> |
| | |
| | | </collectionViewFlowLayout> |
| | | </collectionView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我的券包" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GiC-Xf-dhQ"> |
| | | <rect key="frame" x="30" y="400" width="65.333333333333329" height="22"/> |
| | | <rect key="frame" x="30" y="389" width="65.333333333333329" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="egh-AJ-1Zh"/> |
| | | </constraints> |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="-55" translatesAutoresizingMaskIntoConstraints="NO" id="3kA-cL-Ed9"> |
| | | <rect key="frame" x="0.0" y="433" width="393" height="283"/> |
| | | <rect key="frame" x="0.0" y="422" width="393" height="283"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Kte-Xd-tVd"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="283"/> |
| | |
| | | </subviews> |
| | | </stackView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="本周福利" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="01D-ex-NB6"> |
| | | <rect key="frame" x="40.999999999999993" y="763" width="65.333333333333314" height="22"/> |
| | | <rect key="frame" x="40.999999999999993" y="752" width="65.333333333333314" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="cZB-Sn-Vhw"/> |
| | | </constraints> |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hBk-90-GU4"> |
| | | <rect key="frame" x="41" y="804" width="311" height="203"/> |
| | | <rect key="frame" x="41" y="793" width="311" height="203"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="hBk-90-GU4" secondAttribute="height" multiplier="1:0.6525" id="iMt-GH-OCP"/> |
| | | </constraints> |
| | |
| | | </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="8KD-JW-do0"> |
| | | <rect key="frame" x="40.999999999999993" y="1042" width="65.333333333333314" height="22"/> |
| | | <rect key="frame" x="40.999999999999993" y="1031" width="65.333333333333314" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="pc0-0u-NIz"/> |
| | | </constraints> |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="r4f-Ay-EGJ"> |
| | | <rect key="frame" x="41" y="1083" width="311" height="203"/> |
| | | <rect key="frame" x="41" y="1072" width="311" height="202.66666666666674"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="r4f-Ay-EGJ" secondAttribute="height" multiplier="1:0.6525" id="WOq-qS-ptG"/> |
| | | </constraints> |
| | |
| | | <constraint firstAttribute="trailing" secondItem="3kA-cL-Ed9" secondAttribute="trailing" id="bts-6y-Zk6"/> |
| | | <constraint firstItem="GiC-Xf-dhQ" firstAttribute="leading" secondItem="1kO-ug-2Gd" secondAttribute="leading" constant="30" id="gY0-D8-1VM"/> |
| | | <constraint firstItem="01D-ex-NB6" firstAttribute="top" secondItem="3kA-cL-Ed9" secondAttribute="bottom" constant="47" id="nA0-zN-Mne"/> |
| | | <constraint firstItem="GiC-Xf-dhQ" firstAttribute="top" secondItem="yBw-of-rdU" secondAttribute="bottom" constant="47" id="nqA-X1-BoF"/> |
| | | <constraint firstItem="GiC-Xf-dhQ" firstAttribute="top" secondItem="yBw-of-rdU" secondAttribute="bottom" constant="17" id="nqA-X1-BoF"/> |
| | | <constraint firstItem="hBk-90-GU4" firstAttribute="top" secondItem="01D-ex-NB6" secondAttribute="bottom" constant="19" id="p7O-Nf-d3F"/> |
| | | <constraint firstItem="r4f-Ay-EGJ" firstAttribute="top" secondItem="8KD-JW-do0" secondAttribute="bottom" constant="19" id="rIa-aO-Ceb"/> |
| | | <constraint firstItem="yBw-of-rdU" firstAttribute="top" secondItem="15P-Xn-N3C" secondAttribute="bottom" constant="9" id="tn6-cH-k2u"/> |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="width" relation="lessThanOrEqual" constant="140" id="3GV-sg-NOm"/> |
| | | </constraints> |
| | | </stackView> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="QZc-Jg-wWX"/> |
| | |
| | | sender.isSelected = true |
| | | var items = Array<NormalSimpleModel>() |
| | | items.append(NormalSimpleModel(id: 0, name: "全部")) |
| | | items.append(NormalSimpleModel(id: 1, name: "实物商品")) |
| | | items.append(NormalSimpleModel(id: 1, name: "实体商品")) |
| | | items.append(NormalSimpleModel(id: 2, name: "课包商品")) |
| | | items.append(NormalSimpleModel(id: 3, name: "门票商品")) |
| | | items.append(NormalSimpleModel(id: 4, name: "优惠券")) |
| | |
| | | YYPaymentManager.shared.sendPaymentRequest(YYAlipayRequest(orderString: m.orderString)) { result in |
| | | switch result { |
| | | case .success: |
| | | NotificationCenter.default.post(name: RefreshBooking_Noti, object: weakSelf.indexPath) |
| | | let vc = PaymentResultVC(result: .success, objType: .activityApply) |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | case .cancel: |
| | |
| | | } |
| | | case .wechat,.integral:break |
| | | case .coin: |
| | | NotificationCenter.default.post(name: RefreshBooking_Noti, object: weakSelf.indexPath) |
| | | let vc = PaymentResultVC(result: .success, objType: .activityApply) |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | case .courseNum:break |
| | |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | |
| | | // @IBAction func cancelAction(_ sender: UIButton) { |
| | | // CommonAlertView.show(title: "提示", content: "确认取消本次预约吗?") { [weak self] status in |
| | | // guard let weakSelf = self else { return } |
| | | // if status{ |
| | | // Services.cancelMySite(id: weakSelf.yardBookingModel.id).subscribe(onNext: {data in |
| | | // alertSuccess(msg: "取消成功") |
| | | // NotificationCenter.default.post(name: RefreshBooking_Noti, object: weakSelf.indexPath) |
| | | // }).disposed(by: weakSelf.disposeBag) |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | @IBAction func detailAction(_ sender: UIButton) { |
| | | let vc = YardBookingDetailVC(model: yardBookingModel) |
| | |
| | | @IBOutlet weak var cons_cancelWidth: NSLayoutConstraint! |
| | | @IBOutlet weak var label_descInfo: UILabel! |
| | | @IBOutlet weak var view_yard: UIView! |
| | | |
| | | @IBOutlet weak var label_dealtime: UILabel! |
| | | |
| | | private var timer:Timer? |
| | | |
| | | private var yardBookingModel:YardBookingModel! |
| | | private var yardBookingDetailDataModel:YardBookingDetailDataModel? |
| | | |
| | |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidDisappear(_ animated: Bool) { |
| | | super.viewDidDisappear(animated) |
| | | timer?.invalidate() |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | |
| | | self?.btn_payment.isHidden = true |
| | | self?.btn_cancel.isHidden = true |
| | | self?.view_qrCode.isHidden = true |
| | | |
| | | case .inStore: |
| | | self?.btn_payment.isHidden = true |
| | | self?.btn_cancel.isHidden = true |
| | | self?.showQRCode(model) |
| | | |
| | | case .pending: |
| | | self?.btn_payment.isHidden = true |
| | | self?.btn_cancel.isHidden = false |
| | | self?.showQRCode(model) |
| | | fallthrough |
| | | self?.startTimer(timeZone: model.times) |
| | | default: |
| | | break |
| | | // self?.view_paymentTime.isHidden = true |
| | | // self?.label_usedState.text = model.status.titleRaw |
| | | // self?.view_qrCode.isHidden = false |
| | | // self?.btn_cancel.isHidden = false |
| | | // self?.btn_payment.isHidden = true |
| | | // self?.cons_cancelWidth.constant = 189 |
| | | } |
| | | } |
| | | }) { error in |
| | |
| | | let text = "您已经预约成功,请在预约时段扫码此二维码入场。您可以在“预约场地-已预约场地-详情”页面找到此二维码。" |
| | | let attribute = AttributedStringbuilder.build().add(string: text, withFont: UIFont.systemFont(ofSize: 12, weight: .medium), withColor: .black.withAlphaComponent(0.43),lineSpace: 5).mutableAttributedString |
| | | label_descInfo.attributedText = attribute |
| | | label_dealtime.isHidden = true |
| | | } |
| | | |
| | | |
| | | private func startTimer(timeZone:String){ |
| | | guard let startTime = yardBookingDetailDataModel?.startTime else {return} |
| | | let d = Date(timeIntervalSince1970: TimeInterval(startTime / 1000)) |
| | | |
| | | if Date.jq_CalBySet(startDate: Date(), endDate: d).hour < 0{return} |
| | | label_dealtime.isHidden = false |
| | | timer = Timer(timeInterval: 1.0, repeats: true, block: {[weak self] t in |
| | | let datatime = Date.jq_CalBySet(startDate: Date(), endDate:d, set: [.day,.second,.hour,.minute]) |
| | | if datatime.day > 0{ |
| | | self?.label_dealtime.text = String(format: "距离入场时间:%02ld天%02ld小时%02ld分%02ld秒", datatime.day,datatime.hour,datatime.minute,datatime.second) |
| | | } else if datatime.day == 0{ |
| | | self?.label_dealtime.text = String(format: "距离入场时间:%02ld小时%02ld分%02ld秒", datatime.hour,datatime.minute,datatime.second) |
| | | } |
| | | }) |
| | | |
| | | RunLoop.current.add(timer!, forMode: .common) |
| | | timer?.fire() |
| | | } |
| | | |
| | | private func showQRCode(_ model:YardBookingDetailDataModel){ |
| | |
| | | } |
| | | |
| | | @IBAction func callAction(_ sender: UIButton) { |
| | | guard let phone = yardBookingDetailDataModel?.phone else {return} |
| | | guard let phone = yardBookingDetailDataModel?.storePhone else {return} |
| | | UIApplication.shared.open(URL(string: "tel://\(phone)")!, options: [:], completionHandler: nil) |
| | | } |
| | | |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | |
| | | <outlet property="label_bookingTime" destination="aED-6E-ahn" id="dYf-gb-PMx"/> |
| | | <outlet property="label_bookingType" destination="Tax-DA-fLa" id="IYe-wA-27U"/> |
| | | <outlet property="label_contact" destination="UEJ-0E-4LG" id="LD3-gr-6Qf"/> |
| | | <outlet property="label_dealtime" destination="CBH-nG-pZC" id="Mwz-um-ASJ"/> |
| | | <outlet property="label_descInfo" destination="Bxh-OX-GPj" id="T8z-fS-a3a"/> |
| | | <outlet property="label_halfYardName" destination="Yc7-sN-J8Y" id="XkJ-bq-eE0"/> |
| | | <outlet property="label_paymentPrice" destination="Bhs-Kk-wqY" id="Vdc-5S-nCN"/> |
| | |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="APi-0y-Lwg"> |
| | | <rect key="frame" x="0.0" y="99" width="393" height="597"/> |
| | | <rect key="frame" x="0.0" y="99" width="393" height="601.33333333333337"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7th-09-VZ3"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="36"/> |
| | |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1hl-Kq-mul"> |
| | | <rect key="frame" x="0.0" y="324" width="393" height="273"/> |
| | | <rect key="frame" x="0.0" y="324" width="393" height="277.33333333333326"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="二维码:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Aqc-YZ-cGf"> |
| | | <rect key="frame" x="14" y="9.6666666666666856" width="365" height="69.666666666666671"/> |
| | | <rect key="frame" x="14" y="9.6666666666666856" width="365" height="49"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="wXP-uX-2IS"> |
| | | <rect key="frame" x="130.66666666666666" y="88.333333333333371" width="131.99999999999997" height="132"/> |
| | | <rect key="frame" x="130.66666666666666" y="67.666666666666629" width="131.99999999999997" height="132"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="132" id="MbL-wn-fcX"/> |
| | | <constraint firstAttribute="height" constant="132" id="gNu-15-mek"/> |
| | | </constraints> |
| | | </imageView> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_warning" translatesAutoresizingMaskIntoConstraints="NO" id="rsN-wi-9X2"> |
| | | <rect key="frame" x="9" y="227.33333333333337" width="24" height="24"/> |
| | | <rect key="frame" x="9" y="231.66666666666663" width="24" height="24"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="24" id="kv8-0l-CIL"/> |
| | | <constraint firstAttribute="width" constant="24" id="osm-5P-MFM"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" lineBreakMode="headTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bxh-OX-GPj"> |
| | | <rect key="frame" x="36" y="227.33333333333337" width="354" height="28.666666666666686"/> |
| | | <rect key="frame" x="36" y="231.66666666666663" width="354" height="28.666666666666686"/> |
| | | <string key="text">您已经预约成功,请在预约时段扫码此二维码入场。您可以在“预 |
| | | 约场地-已预约场地-详情”页面找到此二维码。</string> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.42999999999999999" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="cX9-gN-ngz"> |
| | | <rect key="frame" x="140" y="206.66666666666663" width="113" height="18"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距可入场时间:--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CBH-nG-pZC"> |
| | | <rect key="frame" x="0.0" y="0.0" width="113" height="18"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="tVg-JR-Jok"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.95686274509803915" green="0.26666666666666666" blue="0.26666666666666666" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="Bxh-OX-GPj" firstAttribute="top" secondItem="cX9-gN-ngz" secondAttribute="bottom" constant="7" id="6H8-QE-Dcc"/> |
| | | <constraint firstItem="Aqc-YZ-cGf" firstAttribute="leading" secondItem="1hl-Kq-mul" secondAttribute="leading" constant="14" id="6dU-63-TMl"/> |
| | | <constraint firstAttribute="bottom" secondItem="Bxh-OX-GPj" secondAttribute="bottom" constant="17" id="8qJ-Gb-eCX"/> |
| | | <constraint firstItem="Bxh-OX-GPj" firstAttribute="top" secondItem="rsN-wi-9X2" secondAttribute="top" id="A7Q-w9-vVr"/> |
| | | <constraint firstAttribute="trailing" secondItem="Aqc-YZ-cGf" secondAttribute="trailing" constant="14" id="Bh6-5o-zTD"/> |
| | | <constraint firstAttribute="trailing" secondItem="Bxh-OX-GPj" secondAttribute="trailing" constant="3" id="FhE-nq-eJG"/> |
| | | <constraint firstItem="cX9-gN-ngz" firstAttribute="centerX" secondItem="wXP-uX-2IS" secondAttribute="centerX" id="Gzj-NW-Jsw"/> |
| | | <constraint firstItem="Bxh-OX-GPj" firstAttribute="leading" secondItem="rsN-wi-9X2" secondAttribute="trailing" constant="3" id="MKM-rK-cRE"/> |
| | | <constraint firstItem="wXP-uX-2IS" firstAttribute="top" secondItem="Aqc-YZ-cGf" secondAttribute="bottom" constant="9" id="QV1-gw-fOw"/> |
| | | <constraint firstItem="rsN-wi-9X2" firstAttribute="leading" secondItem="1hl-Kq-mul" secondAttribute="leading" constant="9" id="cJK-LZ-Yag"/> |
| | | <constraint firstItem="cX9-gN-ngz" firstAttribute="top" secondItem="wXP-uX-2IS" secondAttribute="bottom" constant="7" id="ekU-hW-PjY"/> |
| | | <constraint firstItem="Aqc-YZ-cGf" firstAttribute="top" secondItem="1hl-Kq-mul" secondAttribute="top" constant="9.6699999999999999" id="lj0-70-nPQ"/> |
| | | <constraint firstItem="rsN-wi-9X2" firstAttribute="top" secondItem="wXP-uX-2IS" secondAttribute="bottom" constant="7" id="qy9-26-CiR"/> |
| | | <constraint firstItem="wXP-uX-2IS" firstAttribute="centerX" secondItem="1hl-Kq-mul" secondAttribute="centerX" id="thq-Ot-9uN"/> |
| | | </constraints> |
| | | </view> |
| | |
| | | </userDefinedRuntimeAttributes> |
| | | </stackView> |
| | | <stackView opaque="NO" contentMode="scaleToFill" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="w3D-k7-De5"> |
| | | <rect key="frame" x="42.666666666666657" y="734" width="308" height="40"/> |
| | | <rect key="frame" x="42.666666666666657" y="738.33333333333337" width="308" height="40"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0fI-TF-CeW"> |
| | | <rect key="frame" x="0.0" y="0.0" width="144" height="40"/> |