无故事王国
2024-03-08 4966eb10cbf5ce9c6ee37a13d393fb0ae2d85b60
2.0功能完成
34个文件已修改
3个文件已添加
557 ■■■■ 已修改文件
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/bg_worldCup@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/bg_worldCup@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Base/BaseNav.swift 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Common/View/AgreentView.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Common/View/QRPreview.xib 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Config/Def.swift 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Config/Enums.swift 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Network/Services.swift 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Activity/VC/ActivitySignupDetailVC.swift 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.swift 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.xib 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/Model/HomeModel.swift 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/Model/WorldCupModel.swift 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/HomeVC.swift 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/HomeVC.xib 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/WorldCupListVC.swift 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/WorldCupListVC.xib 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/View/StudentChoose2View.swift 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/TCell/JudgeTCell.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/TCell/WorldCupRankTCell.swift 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/JudgeListVC.swift 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/MatchDetailVC.swift 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/MatchDetailVC.xib 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchVC.swift 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.swift 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.xib 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyVC.swift 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyVC.xib 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentDetailVC.swift 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentDetailVC.xib 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentVC.swift 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupHeaderVC.swift 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupRankVC.swift 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupRecordVC.swift 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupVC.swift 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WorldCupIntroVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "bg_worldCup@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "bg_worldCup@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/bg_worldCup@2x.png
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/bg_worldCup@3x.png
WanPai/Base/BaseNav.swift
@@ -16,6 +16,9 @@
        /// 需要透明Nav的VC
    private var lucencyVCs = [RechargeRecordVC.self,RechargeCenterVC.self]
                /// 世界杯风格
                private var worldCupVCs = [SearchVC.self,WorldCupVC.self,WorldCupHeaderVC.self,WorldCupMenuVC.self,WorldCupContentVC.self,WorldCupRecordVC.self,WorldCupRankVC.self]
    private let img = UIImage.jq_gradient([UIColor(hexStr: "#FD8C02"),UIColor(hexStr: "#FD7202")], size: CGSize(width: JQ_ScreenW, height: JQ_NavBarHeight), radius: 0, locations: [0,1], direction: .vertical)
    
    open override func viewDidLoad() {
@@ -60,6 +63,13 @@
    }
    
    open func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
                                if worldCupVCs.contains(where: {$0 == viewController.classForCoder}){
                                                navigationBar.standardAppearance.backgroundImage = UIImage(named: "bg_worldCup")
                                                navigationBar.scrollEdgeAppearance?.backgroundImage = UIImage(named: "bg_worldCup")
                                                return
                                }
        let status = lucencyVCs.contains(where: {$0 == viewController.classForCoder})
        if (navigationController.viewControllers.count == 1 || status) && !(viewController is WelfareVC){
            if #available(iOS 15.0, *) {
WanPai/Common/View/AgreentView.swift
@@ -43,7 +43,7 @@
                                let attributed = AttributedStringbuilder.build()
                                if type != .other && type != .matchStore && type != .useStore{
                                if type != .other && type != .matchStore && type != .useStore && type != .matchPoint{
                                                Services.queryProtocol(type,progress: false).subscribe(onNext: { result in
                                                                if let text = result.data?.jq_wrapHtml(){
                                                                                attributed.add(string: text, withFont: UIFont.systemFont(ofSize: 14, weight: .semibold), withColor: UIColor(hexStr: "727272"), lineSpace: 4)
WanPai/Common/View/QRPreview.xib
@@ -1,9 +1,9 @@
<?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="32700.99.1234" 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="22129"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
@@ -33,7 +33,7 @@
                    </connections>
                </button>
            </subviews>
            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/>
            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.90000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
            <constraints>
                <constraint firstAttribute="trailing" secondItem="6HX-Cl-1DV" secondAttribute="trailing" constant="44" id="97i-gB-Zk8"/>
                <constraint firstItem="Uua-ww-qMC" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="Hsf-NB-MIA"/>
WanPai/Config/Def.swift
@@ -236,8 +236,13 @@
                                                }
                                                if page == "社区世界杯"{
                                                                if type == "详情"{
                                                                                JQ_currentViewController().jq_push(vc: WorldCupContentApplyVC(id: id!))
                                                                }
                                                                if type == "主页" || type == "列表"{
                                                                JQ_currentViewController().jq_push(vc: WorldCupListVC())
                                                }
                                                }
                                case "开始课程":
                                                if page == "主页"{
WanPai/Config/Enums.swift
@@ -125,6 +125,8 @@
                ///智慧球场
                case wisdomCourt = 8
                case worldcupDetail = 9
                case nothing = -999
                var defaultImg:UIImage{
@@ -146,7 +148,7 @@
                                                case .wisdomCourt:
                                                                return UIImage(named: "b_7")!
                                                default:
                                                                return UIImage()
                                                                return UIImage(named: "b_1")!
                                }
                }
}
WanPai/Network/Services.swift
@@ -14,7 +14,8 @@
#if DEBUG
//let All_Url = "http://192.168.110.27:56666" //罗易胜
//let All_Url = "http://192.168.110.85:56666" //正式地址
let All_Url = "http://192.168.110.80:56666" //正式地址
//let All_Url = "http://192.168.110.80:56666" //正式地址
let All_Url = "http://221.182.45.100:56666"
let Game_Url = "https://try.daowepark.com"
//let Socket_Url = "192.168.110.22"
#else
WanPai/Root/Activity/VC/ActivitySignupDetailVC.swift
WanPai/Root/Course/VC/AddStudentVC.swift
@@ -143,9 +143,10 @@
            guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return}
        }
        
        if !tf_idCard.isEmpty || activityDetailPartModel != nil{
//                                if !tf_idCard.isEmpty || activityDetailPartModel != nil{
//
//                                }
            guard tf_idCard.text!.jq_idCard() else {alertError(msg: "请输入正确的身份证号码");return}
        }
        studentModel.birthday = tf_birthday.text!
        studentModel.name = tf_name.text!
WanPai/Root/Course/VC/AddStudentVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<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"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <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"/>
@@ -357,11 +357,14 @@
                                    </constraints>
                                </view>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="身份证号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JjF-jS-GPH">
                                    <rect key="frame" x="14.000000000000004" y="16.666666666666629" width="57.333333333333343" height="17"/>
                                    <rect key="frame" x="30.000000000000004" y="16.666666666666629" width="57.333333333333343" height="17"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="Udv-bd-yGQ">
                                    <rect key="frame" x="15" y="19" width="12" height="12"/>
                                </imageView>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入运动营成员身份证号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="LD0-ej-DmH">
                                    <rect key="frame" x="120" y="0.0" width="233" height="49.666666666666664"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
@@ -374,11 +377,13 @@
                                <constraint firstItem="LD0-ej-DmH" firstAttribute="top" secondItem="eXg-lM-iFa" secondAttribute="top" id="2K7-zV-OyA"/>
                                <constraint firstAttribute="bottom" secondItem="NlW-dD-gIp" secondAttribute="bottom" id="9Mu-Gg-yex"/>
                                <constraint firstItem="LD0-ej-DmH" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="120" id="9U6-rD-Jfd"/>
                                <constraint firstItem="JjF-jS-GPH" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="14" id="IKT-yR-MXN"/>
                                <constraint firstItem="JjF-jS-GPH" firstAttribute="centerY" secondItem="Udv-bd-yGQ" secondAttribute="centerY" id="9u5-dT-w12"/>
                                <constraint firstItem="JjF-jS-GPH" firstAttribute="leading" secondItem="Udv-bd-yGQ" secondAttribute="trailing" constant="3" id="D3m-eN-BHV"/>
                                <constraint firstItem="NlW-dD-gIp" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="14" id="Qir-9y-1mQ"/>
                                <constraint firstAttribute="trailing" secondItem="NlW-dD-gIp" secondAttribute="trailing" constant="14" id="jSc-75-egP"/>
                                <constraint firstItem="NlW-dD-gIp" firstAttribute="top" secondItem="LD0-ej-DmH" secondAttribute="bottom" id="mxF-BK-Axi"/>
                                <constraint firstAttribute="height" constant="50" id="ngz-MT-wKh"/>
                                <constraint firstItem="Udv-bd-yGQ" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="15" id="vAa-A7-sCK"/>
                                <constraint firstItem="JjF-jS-GPH" firstAttribute="centerY" secondItem="eXg-lM-iFa" secondAttribute="centerY" id="xph-Ep-7kc"/>
                            </constraints>
                        </view>
WanPai/Root/Home/Model/HomeModel.swift
@@ -30,6 +30,7 @@
                var sort:Int = 0
                var backgroundImage:String = ""
                var cellHeight:Double = 270
                var id = 0
}
class HomeStoreTopBannerModel:HandyJSON{
WanPai/Root/Home/Model/WorldCupModel.swift
@@ -26,7 +26,7 @@
struct WorldCupDetailModel:HandyJSON{
                var address: String = ""
                var age: String = ""
                var cash: Int = 0
                var cash: Double = 0
                var classHour: Int = 0
                var content: String = ""
                var endTime: String = ""
@@ -50,6 +50,11 @@
}
struct WorldCupDetailBannerModel:HandyJSON{
                var name = ""
                var url = ""
}
struct WorldCupJudgeModel:HandyJSON{
                var activeTime: String = ""
                var id: Int = 0
WanPai/Root/Home/VC/HomeVC.swift
@@ -134,6 +134,13 @@
                                                                                guard SDImageCache.shared.diskImageDataExists(withKey: m.backgroundImage) else {
                                                                                                SDWebImageDownloader.shared.downloadImage(with: URL(string: m.backgroundImage), options: .useNSURLCache) { _, _,_ in
                                                                                                } completed: { image, data, error, status in
                                                                                                                guard m.backgroundImage.isEmpty else {
                                                                                                                                m.cellHeight = 100
                                                                                                                                group.leave()
                                                                                                                                return
                                                                                                                }
                                                                                                                if let img = image{
                                                                                                                                m.cellHeight = w / (img.size.width / img.size.height)
                                                                                                                }else{
@@ -158,6 +165,8 @@
                                                                                                } completed: { image, data, error, status in
                                                                                                                if let img = image{
                                                                                                                                m.cellHeight = w / (img.size.width / img.size.height)
                                                                                                                }else{
                                                                                                                                m.cellHeight = 100
                                                                                                                }
                                                                                                                group.leave()
                                                                                                }
@@ -315,6 +324,9 @@
                                                                case .worldcup:
                                                                                let vc = WorldCupIntroVC()
                                                                                push(vc: vc)
                                                                case .worldcupDetail:
                                                                                let vc = WorldCupContentApplyVC(id: m.id)
                                                                                push(vc: vc)
                                                                case .course:
                                                                                let vc = CourseListVC(selectStore: simpleModel)
                                                                                push(vc: vc)
WanPai/Root/Home/VC/HomeVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" 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="22131"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
        <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"/>
@@ -151,7 +151,7 @@
                        <constraint firstItem="pid-yy-hW2" firstAttribute="leading" secondItem="WGQ-UH-Uvg" secondAttribute="leading" id="y7p-rN-LaS"/>
                    </constraints>
                </view>
                <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="ysy-N3-BCh" customClass="BaseCollectionView" customModule="WanPai" customModuleProvider="target">
                <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="ysy-N3-BCh" customClass="BaseCollectionView" customModule="WanPai" customModuleProvider="target">
                    <rect key="frame" x="0.0" y="290.33333333333331" width="393" height="527.66666666666674"/>
                    <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="Hvc-jj-SAe">
                        <size key="itemSize" width="128" height="128"/>
WanPai/Root/Home/VC/WorldCupListVC.swift
@@ -20,7 +20,15 @@
                override func api() -> (Observable<BaseResponse<[WorldCupListModel]>>)? {
                                let deserModel = HomeStoreModel.deserialize(from: UserDefaults.standard.object(forKey: "CurrentStore") as? String)
                                return Services.worldCupList(id: deserModel!.storeId, content: search.value, gender: gender.value.id, sort: sort.value, storeId: storeId.value?.id)
                                var genderID:Int?
                                if gender.value.id == 0{
                                                genderID = nil
                                }else{
                                                genderID = gender.value.id
                                }
                                return Services.worldCupList(id: deserModel!.storeId, content: search.value, gender:genderID, sort: sort.value, storeId: storeId.value?.id)
                }
}
WanPai/Root/Home/VC/WorldCupListVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<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"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <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"/>
@@ -69,6 +69,9 @@
                            <subviews>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Z7Q-0r-hlk" customClass="QMUIButton">
                                    <rect key="frame" x="0.0" y="0.0" width="79" height="52"/>
                                    <constraints>
                                        <constraint firstAttribute="width" relation="lessThanOrEqual" constant="120" id="ycg-Nq-H9l"/>
                                    </constraints>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                    <state key="normal" title="举办城市" image="icon_down_arrow">
@@ -80,6 +83,9 @@
                                </button>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8O9-Hj-qgP" customClass="QMUIButton">
                                    <rect key="frame" x="113" y="0.0" width="79" height="52"/>
                                    <constraints>
                                        <constraint firstAttribute="width" relation="lessThanOrEqual" constant="120" id="ERe-vA-51w"/>
                                    </constraints>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                    <state key="normal" title="报名条件" image="icon_down_arrow">
WanPai/Root/Other/View/StudentChoose2View.swift
@@ -98,7 +98,10 @@
                }
                @IBAction func completeAction(_ sender: UIButton) {
                                //                                clickClouse!(selectStudents)
                                guard selectStudents != nil else {
                                                alert(msg: "请选择"    );return
                                }
                                clickClouse!(selectStudents!)
                                closeAction()
                }
}
@@ -118,8 +121,13 @@
                func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                                let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfo_2_TCell") as! StudentInfo_2_TCell
                                cell.indexPath = indexPath
                                cell.activityDetailPartModel = viewModel.dataSource.value[indexPath.row]
                                cell.img_radio.isHidden = false
                                cell.btn_delete.isHidden = true
                                cell.btn_edit.isHidden = true
                                cell.img_radio.image = UIImage(named: selectStudents?.id == viewModel.dataSource.value[indexPath.row].id ? "btn_select" : "btn_select_u")
                                return cell
                }
}
WanPai/Root/Search/TCell/JudgeTCell.swift
@@ -25,7 +25,7 @@
                                label_state.text = model.status.rawTitle
                                label_time.text = "活动时间:\(model.activeTime)"
                                label_times.text = "已比赛场次数:\(model.matchNumber)"
                                btn_begin.isHidden = model.status == .cancel || model.status == .ongoing
                                btn_begin.isHidden =  model.status != .ongoing
                }
}
WanPai/Root/Search/TCell/WorldCupRankTCell.swift
@@ -16,6 +16,28 @@
                private var userNameLabel:UILabel!
                private var numerLabel:UILabel!
                private var radioLabel:UILabel!
                var indexPath:IndexPath!
                var model:WorldCupMatchRankModel?{
                                didSet{
                                                if let m = model{
                                                                userNameLabel.text = m.name
                                                                userImg.sd_setImage(with: URL(string: m.avatar))
                                                                numerLabel.text = "\(m.totalSession)"
                                                                radioLabel.text = "\(m.winRate)%"
                                                                rankImg.image = UIImage(named: "rank_\(indexPath.row + 1)")
                                                                switch indexPath.row{
                                                                                case 0...2:
                                                                                                rankImg.isHidden = false
                                                                                                rankLabel.text = ""
                                                                                default:
                                                                                                rankImg.isHidden = true
                                                                                                rankLabel.text = "\(indexPath.row + 1)"
                                                                }
                                                }
                                }
                }
                override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
                                super.init(style: .default, reuseIdentifier: reuseIdentifier)
@@ -31,7 +53,7 @@
                                selectionStyle = .none
                                rankImg = UIImageView(image: UIImage(named: "rank_1"))
                                rankImg = UIImageView()
                                contentView.addSubview(rankImg)
                                rankImg.snp.makeConstraints { make in
                                                make.left.equalTo(15)
@@ -61,7 +83,7 @@
                                }
                                userNameLabel = UILabel()
                                userNameLabel.text = "wang"
                                userNameLabel.text = ""
                                userNameLabel.font = UIFont.systemFont(ofSize: 14, weight: .medium)
                                userNameLabel.textColor = .black
                                contentView.addSubview(userNameLabel)
WanPai/Root/Search/VC/JudgeListVC.swift
@@ -19,7 +19,6 @@
                override func api() -> (Observable<BaseResponse<[WorldCupJudgeModel]>>)? {
                                return Services.worldCupJudgeList(content: content.value, storeId: storeId.value?.id)
                }
}
class JudgeListVC: BaseVC {
WanPai/Root/Search/VC/MatchDetailVC.swift
@@ -12,12 +12,18 @@
class MatchDetailVC: BaseVC {
                @IBOutlet weak var view_red1: UIView!
                @IBOutlet weak var view_red1Img: UIImageView!
                @IBOutlet weak var view_red2: UIView!
                @IBOutlet weak var view_red2Img: UIImageView!
                @IBOutlet weak var view_red3: UIView!
                @IBOutlet weak var view_red3Img: UIImageView!
                @IBOutlet weak var view_blue1: UIView!
                @IBOutlet weak var view_blue1Img: UIImageView!
                @IBOutlet weak var view_blue2: UIView!
                @IBOutlet weak var view_blue2Img: UIImageView!
                @IBOutlet weak var view_blue3: UIView!
                @IBOutlet weak var view_blue3Img: UIImageView!
                @IBOutlet weak var view_device: UIView!
                @IBOutlet weak var label_deviceTitle: UILabel!
@@ -115,38 +121,80 @@
                @IBAction func deleRedUserAction(_ sender: UIButton) {
                                let index = sender.tag - 10
                                if index > redTeamItems.count{
                                                redTeamItems.removeLast()
                                }else{
                                redTeamItems.remove(at: index)
                                redStackView.arrangedSubviews[index].isHidden = true
                                }
                                if index == 0{
                                                view_red1.isHidden = true
                                }
                                if index == 1{
                                                view_red2.isHidden = true
                                }
                                if index == 2{
                                                view_red3.isHidden = true
                                }
                }
                @IBAction func deleBlueUserAction(_ sender: UIButton) {
                                let index = sender.tag - 10
                                let index = sender.tag - 20
                                if index > blueTeamItems.count{
                                                blueTeamItems.removeLast()
                                }else{
                                blueTeamItems.remove(at: index)
                                blueStackView.arrangedSubviews[index].isHidden = true
                                }
                                if index == 0{
                                                view_blue1.isHidden = true
                                }
                                if index == 1{
                                                view_blue2.isHidden = true
                                }
                                if index == 2{
                                                view_blue3.isHidden = true
                                }
                }
                private func updateUserView(){
                                for item in redTeamItems {
                                                for subView in redStackView.arrangedSubviews{
                                                                if subView.isHidden{
                                                                                if let img = subView.subviews.first as? UIImageView{
                                                                                                img.sd_setImage(with: URL(string: item.avatar))
                                                                                                subView.isHidden = false
                                                                                                break
                                view_red1.isHidden = true
                                view_red2.isHidden = true
                                view_red3.isHidden = true
                                view_blue1.isHidden = true
                                view_blue2.isHidden = true
                                view_blue3.isHidden = true
                                for (index,item) in redTeamItems.enumerated() {
                                                if index == 0{
                                                                view_red1.isHidden = false
                                                                view_red1Img.sd_setImage(with: URL(string: item.avatar))
                                                                                }
                                                if index == 1{
                                                                view_red2.isHidden = false
                                                                view_red2Img.sd_setImage(with: URL(string: item.avatar))
                                                                }
                                                if index == 2{
                                                                view_red3.isHidden = false
                                                                view_red3Img.sd_setImage(with: URL(string: item.avatar))
                                                }
                                }
                                for item in blueTeamItems {
                                                for subView in blueStackView.arrangedSubviews{
                                                                if subView.isHidden{
                                                                                if let img = subView.subviews.first as? UIImageView{
                                                                                                img.sd_setImage(with: URL(string: item.avatar))
                                                                                                subView.isHidden = false
                                                                                                break
                                for (index,item) in blueTeamItems.enumerated() {
                                                if index == 0{
                                                                view_blue1.isHidden = false
                                                                view_blue1Img.sd_setImage(with: URL(string: item.avatar))
                                                                                }
                                                if index == 1{
                                                                view_blue2.isHidden = false
                                                                view_blue2Img.sd_setImage(with: URL(string: item.avatar))
                                                                }
                                                if index == 2{
                                                                view_blue3.isHidden = false
                                                                view_blue3Img.sd_setImage(with: URL(string: item.avatar))
                                                }
                                }
                }
@@ -170,10 +218,8 @@
                @IBAction func handleAction(_ sender: UIButton) {
                                if sender.isSelected{
                                                #if !DEBUG
                                                guard redTeamItems.count == 3 else{alert(msg: "红队人数不足");return}
                                                guard blueTeamItems.count == 3 else{alert(msg: "蓝队人数不足");return}
                                                #endif
                                                guard let devCode = deviceQRCode else{alert(msg: "请扫描设备二维码");return}
                                                struct TempModel:HandyJSON{
WanPai/Root/Search/VC/MatchDetailVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<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"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <capability name="Named colors" minToolsVersion="9.0"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -19,12 +19,18 @@
                <outlet property="redStackView" destination="IM3-iJ-n3i" id="rMz-jS-Vq6"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_blue1" destination="NC1-mI-zKx" id="tlf-qa-Zta"/>
                <outlet property="view_blue1Img" destination="kwN-sM-5Jp" id="963-M8-A7H"/>
                <outlet property="view_blue2" destination="MAY-fE-XVW" id="zXt-hK-2nw"/>
                <outlet property="view_blue2Img" destination="4Ro-YL-VwE" id="I9u-ba-DRO"/>
                <outlet property="view_blue3" destination="Pv2-U4-eh9" id="8Aa-BL-tOr"/>
                <outlet property="view_blue3Img" destination="bcy-TN-a7B" id="uG4-ip-AIs"/>
                <outlet property="view_device" destination="t22-L5-pNm" id="pM5-Hn-UwJ"/>
                <outlet property="view_red1" destination="WaE-Ya-Qah" id="PZx-EF-S91"/>
                <outlet property="view_red1Img" destination="WBK-jh-hgX" id="LMQ-F9-sL9"/>
                <outlet property="view_red2" destination="DL1-JD-042" id="u4s-RH-wK5"/>
                <outlet property="view_red2Img" destination="pDI-vT-Fpd" id="Pf2-kf-y1O"/>
                <outlet property="view_red3" destination="yx0-w9-Zk2" id="PNW-Kh-vZM"/>
                <outlet property="view_red3Img" destination="Duc-CA-hkw" id="6Zs-qv-zxe"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
WanPai/Root/Search/VC/SearchVC.swift
@@ -76,11 +76,6 @@
                                                                                self?.items.append("裁判入口")
                                                                                self?.func_collectionView.reloadData()
                                                                }
                                                                #if DEBUG
                                                                self?.items.append("裁判入口")
                                                                self?.func_collectionView.reloadData()
                                                                #endif
                                                }
                                }) { error in
@@ -131,7 +126,7 @@
                }
                override var preferredStatusBarStyle: UIStatusBarStyle{
                                return .darkContent
                                return .lightContent
                }
}
@@ -238,3 +233,4 @@
                                return CGSize(width: JQ_ScreenW, height: JQ_ScreenW * 0.6541)
                }
}
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.swift
@@ -36,6 +36,7 @@
                @IBOutlet weak var btn_agreement: UIButton!
                @IBOutlet weak var cons_tableHei: NSLayoutConstraint!
                @IBOutlet weak var btn_addStudent: QMUIButton!
                @IBOutlet weak var btn_enroll: UIButton!
@@ -73,7 +74,14 @@
                                                }
                                                bannerView.setItems(items: items)
                                btn_moreStore.isHidden = detailModel.storeInfos.count > 1
                                let endDateTimeInterval = Date.jq_StringToTimeInterval(detailModel.registrationClosingTime, "yyyy-MM-dd HH:mm")
                                if endDateTimeInterval < Date().timeIntervalSince1970{
                                                btn_enroll.setTitle("报名已截止", for: .normal)
                                                btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                }
                                btn_moreStore.isHidden = detailModel.storeInfos.count == 1
                                                label_title.text = detailModel.name
                                                label_hot.text = "\(detailModel.heat)"
@@ -89,9 +97,10 @@
                                                label_city.text = ""
                                                label_address.text = detailModel.address
                                                label_matchPoint.text = detailModel.storeInfos.map({$0.name}).joined(separator: "、")
                                                label_pay_money.text = "¥\(detailModel.cash)/人"
                                                label_pay_coin.text = "\(detailModel.paiCoin)币/人"
                                                label_pay_course.text = "\(detailModel.classHour)课时/人"
                                label_pay_money.text = detailModel.cash == 0 ? "免费":"¥\(detailModel.cash)/人"
                                label_pay_coin.text = detailModel.paiCoin == 0 ? "免费":"\(detailModel.paiCoin)币/人"
                                label_pay_course.text  = detailModel.classHour == 0 ? "免费":"\(detailModel.classHour)课时/人"
    }
@@ -147,25 +156,29 @@
                                                                for v in weakSelf.students{
                                                                                result.append(["id":v.id,"isStudent":v.isStudent])
                                                                }
                                                                Services.worldCupPaymentCheck(id: weakSelf.detailModel.id, ids: result.jq_toJson1(), uid: nil).subscribe(onNext: {data in
                                                                                if let model = data.data{
                                                                                                var money:Double?
                                                                                                var paiCoin:Int?
                                                                                                var classHour:Int?
                                                                var money:Double = 0
                                                                var paiCoin:Int = 0
                                                                var classHour:Int = 0
                                                                                                money = weakSelf.detailModel.cash.double
                                                                                                if model.paiCoin == 1{
                                                                money = weakSelf.detailModel.cash
                                                                                                                paiCoin = weakSelf.detailModel.paiCoin
                                                                                                }
                                                                                                if model.classHour == 1{
                                                                                                                classHour = weakSelf.detailModel.classHour
                                                                                                }
                                                                if money == 0 && paiCoin == 0 && classHour == 0{
                                                                                weakSelf.payment(payType: .free, result: result)
                                                                }else{
                                                                                                PaymentView.show(enumType: .worldCup, money: (ali: money, wx: money, coin: paiCoin, course:classHour, integral: nil)) {[weak self] payType in
                                                                                                                guard let weakSelf = self else { return }
                                                                                                                Services.worldCupPayment(id: weakSelf.detailModel.id, ids: result.jq_toJson1(), payType: payType, uid: nil).subscribe(onNext: {data in
                                                                                                weakSelf.payment(payType: payType, result: result)
                                                                                }
                                                                }
                                                }
                                }
                }
                private func payment(payType:PayType,result:[Dictionary<String,Int>]){
                                Services.worldCupPayment(id: detailModel.id, ids: result.jq_toJson1(), payType: payType, uid: nil).subscribe(onNext: {[weak self]data in
                                                                                                                                if let m = data.data{
                                                                                                                                                switch payType {
                                                                                                                                                                case .aliPay:
@@ -201,15 +214,7 @@
                                                                                                                                                                                JQ_currentViewController().jq_push(vc: vc)
                                                                                                                                                }
                                                                                                                                }
                                                                                                                }).disposed(by: weakSelf.disposeBag)
                                                                                                }
                                                                                }
                                                                }).disposed(by: weakSelf.disposeBag)
                                                }
                                }
                                }).disposed(by: disposeBag)
                }
                required init?(coder: NSCoder) {
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<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"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <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"/>
@@ -14,6 +14,7 @@
            <connections>
                <outlet property="btn_addStudent" destination="J6G-ci-uFv" id="NWF-LA-tm8"/>
                <outlet property="btn_agreement" destination="q5y-in-bNV" id="dA7-bY-ILw"/>
                <outlet property="btn_enroll" destination="kdj-bD-RIR" id="FnQ-m9-e5f"/>
                <outlet property="btn_moreStore" destination="AgA-ET-N0O" id="u3j-bV-RNv"/>
                <outlet property="cons_tableHei" destination="7Nj-Ch-Bss" id="g2d-CY-NCq"/>
                <outlet property="label_address" destination="Mmh-IM-z9o" id="hJU-oa-HZD"/>
WanPai/Root/Search/VC/WorldCupContentApplyVC.swift
@@ -29,6 +29,7 @@
                @IBOutlet weak var webView: WKWebView!
                @IBOutlet weak var cons_webHei: NSLayoutConstraint!
                @IBOutlet weak var btn_moreStore: UIButton!
                @IBOutlet weak var btn_enroll: UIButton!
                
                private var detailModel:WorldCupDetailModel?
@@ -67,7 +68,7 @@
                                                                }
                                                                self?.bannerView.setItems(items: items)
                                                                self?.btn_moreStore.isHidden = model.storeInfos.count > 1
                                                                self?.btn_moreStore.isHidden = model.storeInfos.count == 1
                                                                self?.label_title.text = model.name
                                                                self?.label_hot.text = "\(model.heat)"
@@ -83,12 +84,35 @@
                                                                self?.label_city.text = ""
                                                                self?.label_address.text = model.address
                                                                self?.label_matchPoint.text = model.storeInfos.map({$0.name}).joined(separator: "、")
                                                                if model.cash == 0{
                                                                                self?.label_pay_money.text = "免费"
                                                                }else{
                                                                self?.label_pay_money.text = "¥\(model.cash)/人"
                                                                }
                                                                if model.paiCoin == 0{
                                                                                self?.label_pay_coin.text = "免费"
                                                                }else{
                                                                self?.label_pay_coin.text = "\(model.paiCoin)币/人"
                                                                }
                                                                if model.classHour == 0{
                                                                                self?.label_pay_coin.text = "免费"
                                                                }else{
                                                                self?.label_pay_course.text = "\(model.classHour)课时/人"
                                                                }
                                                                self?.label_desc.text = model.intro
                                                                self?.webView.loadHTMLString(model.content.jq_wrapHtml(), baseURL: nil)
                                                                let endDateTimeInterval = Date.jq_StringToTimeInterval(model.registrationClosingTime, "yyyy-MM-dd HH:mm")
                                                                if endDateTimeInterval < Date().timeIntervalSince1970{
                                                                                self?.btn_enroll.setTitle("报名已截止", for: .normal)
                                                                                self?.btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                }
                                                                self?.detailModel = model
                                                }
                                }).disposed(by: disposeBag)
WanPai/Root/Search/VC/WorldCupContentApplyVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<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"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <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"/>
@@ -12,6 +12,7 @@
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="WorldCupContentApplyVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="btn_enroll" destination="3aZ-G8-j6f" id="hd5-No-xwO"/>
                <outlet property="btn_moreStore" destination="8A3-ba-Lfp" id="gNd-9Y-tYk"/>
                <outlet property="cons_webHei" destination="mZW-Bo-YeJ" id="jsg-oq-zAd"/>
                <outlet property="label_address" destination="5zE-II-xtR" id="bgD-gj-Q7I"/>
WanPai/Root/Search/VC/WorldCupContentDetailVC.swift
@@ -34,6 +34,7 @@
                @IBOutlet weak var webView: WKWebView!
                @IBOutlet weak var cons_webHei: NSLayoutConstraint!
                @IBOutlet weak var cons__cancelBtnHei: NSLayoutConstraint!
                @IBOutlet weak var btn_enroll: UIButton!
                
                private var id:Int!
                private lazy var bannerView:CommonBannerView = {
@@ -84,11 +85,17 @@
                                                                self?.label_address.text = model.address
                                                                self?.label_city.text = ""
                                                                self?.label_matchStore.text = model.storeInfos.map({$0.name}).joined(separator: "、")
                                                                self?.btn_moreMatchStore.isHidden = model.storeInfos.count > 1
                                                                self?.btn_moreMatchStore.isHidden = model.storeInfos.count == 1
                                                                self?.tableView.reloadData()
                                                                self?.webView.loadHTMLString(model.content.jq_wrapHtml(), baseURL: nil)
                                                                self?.btn_cancel.isHidden = model.revocable == 0
                                                                self?.cons__cancelBtnHei.constant = model.revocable == 0 ? 0:40
                                                                let endDateTimeInterval = Date.jq_StringToTimeInterval(model.registrationClosingTime, "yyyy-MM-dd HH:mm")
                                                                if endDateTimeInterval < Date().timeIntervalSince1970{
                                                                                self?.btn_enroll.setTitle("报名已截止", for: .normal)
                                                                                self?.btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                }
                                                }
                                }).disposed(by: disposeBag)
                }
WanPai/Root/Search/VC/WorldCupContentDetailVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<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"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <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"/>
@@ -13,6 +13,7 @@
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="WorldCupContentDetailVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="btn_cancel" destination="Gkg-tn-WFH" id="u4S-QZ-qFa"/>
                <outlet property="btn_enroll" destination="Gkg-tn-WFH" id="dHR-xr-fFS"/>
                <outlet property="btn_moreMatchStore" destination="tjO-5y-Kg9" id="twv-r8-wNh"/>
                <outlet property="cons__cancelBtnHei" destination="y3u-8o-eMw" id="eWN-fY-L44"/>
                <outlet property="cons_tableHei" destination="HCn-5Z-SAr" id="JPW-ED-7vP"/>
WanPai/Root/Search/VC/WorldCupContentVC.swift
@@ -21,11 +21,11 @@
}
class WorldCupContentVC: BaseVC {
                var currentPartModel:ActivityDetailPartModel?
//                var currentPartModel:ActivityDetailPartModel?
                var partModel:BehaviorRelay<ActivityDetailPartModel?>?
                var superScrollView:UIScrollView?
                private var viewModel = WorldCupContentViewModel()
                private var tableView:UITableView!
                private(set) var tableView:UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()
                                view.backgroundColor = .clear
@@ -54,11 +54,31 @@
                                viewModel.configure(tableView)
                                if let m = currentPartModel{
                                                viewModel.studentID.accept(m.id)
                                                viewModel.isStudent.accept(m.isStudent)
                                                viewModel.beginRefresh()
//                                if let m = currentPartModel{
//                                                viewModel.studentID.accept(m.id)
//                                                viewModel.isStudent.accept(m.isStudent)
//                                                viewModel.beginRefresh()
//                                }
//                                tableView.panGestureRecognizer.delegate = self
                                }
                override func setRx() {
                                partModel?.subscribe(onNext: {[weak self] model in
                                                if let m = model{
                                                                self?.viewModel.studentID.accept(m.id)
                                                                self?.viewModel.isStudent.accept(m.isStudent)
                                                                self?.viewModel.beginRefresh()
                                                }
                                }).disposed(by: disposeBag)
                }
}
extension WorldCupContentVC:UIScrollViewDelegate{
                func scrollViewDidScroll(_ scrollView: UIScrollView) {
                                let off = superScrollView!.contentOffset.y + scrollView.contentOffset.y
                                superScrollView!.contentOffset.y = max(0,min(350,off))
                }
}
@@ -80,7 +100,7 @@
                                let cell = tableView.dequeueReusableCell(withIdentifier: "_WorldCupTCell") as! WorldCupTCell
                                cell.backgroundColor = .clear
                                cell.setWorldCupListModel(model)
                                cell.label_state.text = viewModel.state.value == 2 ? "未开始":"进行中"
                                cell.label_state.text = viewModel.state.value == 2 ? "进行中":"未开始"
                                return cell
                }
WanPai/Root/Search/VC/WorldCupHeaderVC.swift
@@ -8,6 +8,7 @@
import UIKit
import QMUIKit
import JQTools
import RxRelay
class WorldCupHeaderVC: BaseVC {
@@ -21,18 +22,21 @@
                @IBOutlet weak var label_loseNum: UILabel!
                @IBOutlet weak var label_winRate: UILabel!
                
                var currentPartModel:ActivityDetailPartModel?{
                                didSet{
                                                if let m = currentPartModel{
                                                                label_name.text = m.name
                                                                if let qrCode = WorldCupUserInfoQRCodel(id: m.id, isStudent: m.isStudent).toJSONString(){
                                                                                img_QR.image = UIImage.jq_GenerateQRCode(with: "\(qrCode)", width: 76)
                                                                }
                                                                getData(id: m.id, isStudent: m.isStudent)
                                                }
//                var currentPartModel:ActivityDetailPartModel?{
//                                didSet{
//                                                if let m = currentPartModel{
//                                                                label_name.text = m.name
//                                                                if let qrCode = WorldCupUserInfoQRCodel(id: m.id, isStudent: m.isStudent).toJSONString(){
//                                                                                img_QR.image = UIImage.jq_GenerateQRCode(with: "\(qrCode)", width: 76)
//                                                                }
//                                                                getData(id: m.id, isStudent: m.isStudent)
//                                                }
//
//                                }
//                }
                                }
                }
                var partModel:BehaviorRelay<ActivityDetailPartModel?>?
                var partModels = [ActivityDetailPartModel](){
                                didSet{
                                                btn_exchange.isHidden = partModels.count <= 1
@@ -51,6 +55,18 @@
                                setProvince(rank: 0)
                                setCity(cityName: "", rank: 0)
                }
                override func setRx() {
                                partModel?.subscribe(onNext: {[weak self]model in
                                                if let m = model{
                                                                self?.label_name.text = m.name
                                                                if let qrCode = WorldCupUserInfoQRCodel(id: m.id, isStudent: m.isStudent).toJSONString(){
                                                                                self?.img_QR.image = UIImage.jq_GenerateQRCode(with: "\(qrCode)", width: 76)
                                                                }
                                                                self?.getData(id: m.id, isStudent: m.isStudent)
                                                }
                                }).disposed(by: disposeBag)
                }
                private func getData(id:Int,isStudent:Int){
@@ -76,8 +92,8 @@
                @IBAction func exchangeAction(_ sender: Any) {
                                StudentChoose2View.show { items in
                                StudentChoose2View.show {[weak self] item in
                                                self?.partModel?.accept(item)
                                }
                }
}
WanPai/Root/Search/VC/WorldCupRankVC.swift
@@ -27,7 +27,7 @@
class WorldCupRankVC: BaseVC {
                private var viewModel = WorldCupRankViewModel()
                var currentPartModel:ActivityDetailPartModel?
                var partModel:BehaviorRelay<ActivityDetailPartModel?>?
                private var worldCupRankModel:WorldCupRankModel?
                private let cityBtn = UIButton(type: .custom)
                private let yearBtn = QMUIButton(type: .custom)
@@ -38,18 +38,18 @@
                override func viewDidLoad() {
                                super.viewDidLoad()
                                view.backgroundColor = .clear
                                if let model = currentPartModel{
                                                viewModel.id.accept(model.id)
                                                viewModel.isStudent.accept(model.isStudent)
                                                Services.getEntrantRank(id: model.id, isStudent: model.isStudent).subscribe(onNext: {[weak self] data in
                                                                if let model = data.data{
                                                                                self?.worldCupRankModel = model
                                                                                self?.cityBtn.setTitle(model.cityName, for: .normal)
                                                                                self?.cityBtn.layoutIfNeeded()
                                                                                self?.cityBtn.layoutSubviews()
                                                                }
                                                }).disposed(by: disposeBag)
                                }
//                                if let model = currentPartModel{
//                                                viewModel.id.accept(model.id)
//                                                viewModel.isStudent.accept(model.isStudent)
//                                                Services.getEntrantRank(id: model.id, isStudent: model.isStudent).subscribe(onNext: {[weak self] data in
//                                                                if let model = data.data{
//                                                                                self?.worldCupRankModel = model
//                                                                                self?.cityBtn.setTitle(model.cityName, for: .normal)
//                                                                                self?.cityBtn.layoutIfNeeded()
//                                                                                self?.cityBtn.layoutSubviews()
//                                                                }
//                                                }).disposed(by: disposeBag)
//                                }
                }
                override func setUI() {
@@ -108,8 +108,28 @@
                                stackView.addArrangedSubview(provinceBtn)
                                stackView.addArrangedSubview(cityBtn)
                                viewModel.configure(tableView)
                                viewModel.configure(tableView,needMore: false)
                                viewModel.beginRefresh()
                }
                override func setRx() {
                                partModel?.subscribe(onNext: {[weak self] model in
                                                guard let weakSelf = self else { return }
                                                if let m = model{
                                                                self?.viewModel.id.accept(m.id)
                                                                self?.viewModel.isStudent.accept(m.isStudent)
                                                                Services.getEntrantRank(id: m.id, isStudent: m.isStudent).subscribe(onNext: {[weak self] data in
                                                                                if let model = data.data{
                                                                                                self?.worldCupRankModel = model
                                                                                                self?.cityBtn.setTitle(model.cityName, for: .normal)
                                                                                                self?.cityBtn.layoutIfNeeded()
                                                                                                self?.cityBtn.layoutSubviews()
                                                                                }
                                                                }).disposed(by: weakSelf.disposeBag)
                                                }
                                }).disposed(by: disposeBag)
                }
                @objc func radiusAction(btn:UIButton){
@@ -237,6 +257,8 @@
                                                return cell!
                                }
                                                let cell = tableView.dequeueReusableCell(withIdentifier: "rankTCell") as! WorldCupRankTCell
                                cell.indexPath = indexPath
                                cell.model = viewModel.dataSource.value[indexPath.row]
                                                cell.addLine(UIColor(hexStr: "#E1E1E1"), false, true, false, true, 0.4)
                                                return cell
                }
WanPai/Root/Search/VC/WorldCupRecordVC.swift
@@ -22,8 +22,9 @@
class WorldCupRecordVC: BaseVC {
                private var tableView:UITableView!
                private(set) var tableView:UITableView!
                private var viewModel = WorldCupRecordViewModel()
                var partModel:BehaviorRelay<ActivityDetailPartModel?>?
                override func viewDidLoad() {
                                super.viewDidLoad()
                                view.backgroundColor = .clear
@@ -48,6 +49,15 @@
                                viewModel.configure(tableView)
                                viewModel.beginRefresh()
                }
                override func setRx() {
                                partModel?.subscribe(onNext: {[weak self]model in
                                                if let m = model{
                                                                self?.viewModel.studentId.accept(m.id)
                                                                self?.viewModel.isStudent.accept(m.isStudent)
                                                }
                                }).disposed(by: disposeBag)
                }
}
extension WorldCupRecordVC:UITableViewDelegate,UITableViewDataSource{
WanPai/Root/Search/VC/WorldCupVC.swift
@@ -9,25 +9,20 @@
import SPPageMenu
import FFPage
import JQTools
import RxSwift
import RxRelay
import RxCocoa
import RxDataSources
import ReplayKit
class WorldCupVC: BaseVC {
                private var partModels = [ActivityDetailPartModel](){
                                didSet{
                                                currentPartModel = partModels.first
                                }
                }
                private var currentPartModel:ActivityDetailPartModel?{
                                didSet{
                                                headerVC.currentPartModel = currentPartModel
                                                pageVC.reloadData()
                                }
                }
                private var partModels = [ActivityDetailPartModel]()
                private var partModel = BehaviorRelay<ActivityDetailPartModel?>(value:nil)
                lazy var headerVC:WorldCupHeaderVC = {
                                let vc = WorldCupHeaderVC()
                                vc.partModel = partModel
                                return vc
                }()
@@ -41,6 +36,7 @@
                                vc.headViewController = headerVC
                                vc.menuViewController = menuVC
                                vc.pageViewController = pageVC
                                vc.style = .headRefresh
                                vc.headHeight = 350
                                vc.menuHeight = 50
                                vc.style = .subRefresh
@@ -77,17 +73,27 @@
                                }
                                menuVC.pageMenu.delegate = self
                                Services.getParticipant().subscribe(onNext: {[weak self ]data in
                                                if let items = data.data{
                                                                guard let weakSelf = self else { return }
                                                                weakSelf.partModels = items
                                                                weakSelf.headerVC.partModels = items
                                                                weakSelf.partModel.accept(items.first)
                                                }
                                }).disposed(by: disposeBag)
                                headerVC.partModel = partModel
    }
                override func setUI() {
                }
                override func setRx() {
//                                partModel.subscribe(onNext: { data in
//
//
//                                }).disposed(by: disposeBag)
                }
}
@@ -98,14 +104,21 @@
                
                func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
                                if page <= 1{
                                                let contentVC = WorldCupContentVC(state:page + 1)
                                                contentVC.currentPartModel = currentPartModel
                                                var state = 1
                                                if page == 0{
                                                                state = 2
                                                }
                                                let contentVC = WorldCupContentVC(state:state)
                                                contentVC.superScrollView = adapterVC.scrollview
                                                contentVC.partModel = partModel
                                                return contentVC
                                }else if page == 2{
                                                return WorldCupRecordVC()
                                                let vc = WorldCupRecordVC()
                                                vc.partModel = partModel
                                                return vc
                                }else{
                                                let vc = WorldCupRankVC()
                                                vc.currentPartModel = currentPartModel
                                                vc.partModel = partModel
                                                return vc
                                }
                }
WanPai/Root/Welfare/VC/WorldCupIntroVC.swift
@@ -54,7 +54,7 @@
                @objc func jumpAction(){
                                if let m = model{
                                                jumpPage(model: m.model, page: m.page, type: m.type, id: m.id)
                                                jumpPage(model: m.model, page: m.page, type: m.type, id: m.turnId)
                                }
                }