无故事王国
2024-03-12 fd05d3dfc61ad3482cfd577279cff72f74c68cf6
fix bug 2.0
38个文件已修改
3个文件已添加
1401 ■■■■■ 已修改文件
WanPai/Assets.xcassets/Icons/icon_more_y.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_more_y.imageset/icon_more_y@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_more_y.imageset/icon_more_y@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Base/BaseNav.swift 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Common/View/CommonBannerView.swift 382 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Config/Enums.swift 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Network/Services.swift 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Activity/VC/ActivityStudentListVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Activity/View/StoresInfoView.swift 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.swift 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.xib 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/Model/WorldCupModel.swift 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/HomeVC.swift 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/WorldCupListVC.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/View/WorldCupHeadView.swift 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/View/WorldCupHeadView.xib 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Login/VC/LoginRegOrForgotVC.swift 174 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/PaymentResultVC.swift 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/ProfileVC.swift 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/ProfileVC.xib 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/View/CommonYearsPickerView.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/View/CommonYearsPickerView.xib 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/TCell/JudgeTCell.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/TCell/MyQRCodeTCell.xib 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/TCell/WorldCupTCell.swift 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/JudgeListVC.swift 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/MatchDetailVC.swift 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/MatchDetailVC.xib 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/MeQRCodeVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchVC.swift 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchVC.xib 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/StudentsManagerListVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.swift 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.xib 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyVC.swift 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyVC.xib 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentDetailVC.swift 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentDetailVC.xib 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentVC.swift 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/RechargeRecordVC.swift 231 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WorldCupIntroVC.swift 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_more_y.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_more_y@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_more_y@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Icons/icon_more_y.imageset/icon_more_y@2x.png
WanPai/Assets.xcassets/Icons/icon_more_y.imageset/icon_more_y@3x.png
WanPai/Base/BaseNav.swift
@@ -70,6 +70,17 @@
                                                return
                                }
                                if viewController is MatchDetailVC{
                                                if #available(iOS 15.0, *) {
                                                                navigationBar.standardAppearance.backgroundImage = nil
                                                                navigationBar.scrollEdgeAppearance?.backgroundImage = nil
                                                }else{
                                                                navigationBar.setBackgroundImage(UIImage(), for: .default)
                                                                navigationBar.shadowImage = UIImage()
                                                }
                                                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/CommonBannerView.swift
@@ -1,208 +1,208 @@
    //
    //  CommonBannerView.swift
    //  WanPai
    //
    //  Created by 无故事王国 on 2023/6/30.
    //
//
//  CommonBannerView.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/30.
//
import UIKit
import SDWebImage
struct CommonBannerModel {
    var index = 0 //自定义索引
    var id:Int? //ID
    var name:String? //名称
    var resource:String? //数据源:URL等
    var mediaType:CommonBannerView.MediaType?
                var index = 0 //自定义索引
                var id:Int? //ID
                var name:String? //名称
                var resource:String? //数据源:URL等
                var mediaType:CommonBannerView.MediaType?
}
class CommonBannerView: UIView, UICollectionViewDelegate, UICollectionViewDataSource,UICollectionViewDelegateFlowLayout {
    enum MediaType {
        case videoUrl,imageUrl,imageLocal,videoLocal
    }
    private lazy var collectionView:UICollectionView = {
        var layout = UICollectionViewFlowLayout()
        layout.minimumLineSpacing = 0
        layout.minimumInteritemSpacing = 0
        layout.scrollDirection = .horizontal
        layout.sectionInset = .zero
        layout.headerReferenceSize = .zero
        layout.footerReferenceSize = .zero
        layout.itemSize = CGSize(width: self.width, height: self.height)
        let collectionView = UICollectionView(frame:CGRect(x: 0, y: 0, width: self.width, height: self.height), collectionViewLayout: layout)
        collectionView.delegate = self
        collectionView.dataSource = self
        collectionView.isPagingEnabled = true
        collectionView.showsHorizontalScrollIndicator = false
        collectionView.register(CommonBannerViewCell.self, forCellWithReuseIdentifier: "BannerView")
        collectionView.decelerationRate = .normal
        collectionView.contentInsetAdjustmentBehavior = .never
        collectionView.backgroundColor = .white
        collectionView.bounces = false
        return collectionView
    }()
    private lazy var pageControl:UIPageControl = {
        let control = UIPageControl()
        control.currentPageIndicatorTintColor = .white
        control.pageIndicatorTintColor = .gray.withAlphaComponent(0.6)
        return control
    }()
    private var timer:Timer?
    private var items = [CommonBannerModel]()
    private var selectClouse:((CommonBannerModel)->Void)?
    private var autoRoll:Bool = true
    private var currentPage:Int = 0
    private var timeInterval:Int = 5
    override func awakeFromNib() {
        super.awakeFromNib()
        setUI()
    }
    public func setItems(items:[CommonBannerModel],autoRoll:Bool = true,selectClouse:((CommonBannerModel)->Void)? = nil){
        self.items = items
        if items.count > 1{
            self.items.append(items.first!)
        }
        self.autoRoll = autoRoll
        self.selectClouse = selectClouse
        if items.count <= 1{self.autoRoll = false}
        setUI()
        collectionView.reloadData()
        if self.autoRoll{
            DispatchQueue.main.asyncAfter(deadline: .now()+5) {
                self.startTimer()
            }
        }
    }
    private func setUI(){
        addSubview(collectionView)
        collectionView.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
        if items.count > 1{
            pageControl.numberOfPages = items.count - 1
            addSubview(pageControl)
            pageControl.snp.makeConstraints { make in
                make.centerX.equalToSuperview()
                make.bottom.equalToSuperview().offset(-10)
                make.height.equalTo(8)
            }
        }
    }
    private func startTimer(){
        timer = Timer(timeInterval: TimeInterval(timeInterval), repeats: true, block: {[weak self] t in
            guard let weakSelf = self else { return }
            var page = weakSelf.collectionView.contentOffset.x / weakSelf.collectionView.width
            weakSelf.currentPage = Int(page + 1)
            if weakSelf.currentPage >= weakSelf.pageControl.numberOfPages{
                weakSelf.currentPage = 0
                weakSelf.collectionView.setContentOffset(.zero, animated: false)
                weakSelf.pageControl.currentPage = 0
            }
            weakSelf.collectionView.setContentOffset(CGPoint(x: weakSelf.currentPage * Int(weakSelf.width), y: 0), animated: true)
        })
        timer?.fire()
        RunLoop.current.add(timer!, forMode: .common)
    }
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return items.count
    }
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let item = items[indexPath.row]
        selectClouse?(item)
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width:collectionView.bounds.size.width,height:ceil(collectionView.bounds.size.height))
    }
    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        print("--开始滑动")
        timer?.fireDate = Date.distantFuture
    }
    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        let page = scrollView.contentOffset.x / scrollView.width
        if page.int >= pageControl.numberOfPages{
            pageControl.currentPage = 0
        }else{
            pageControl.currentPage = page.int
        }
        print("--结束滑动")
        timer?.fireDate = Date.init(timeIntervalSinceNow: 3.0) //3秒后开启
    }
    func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
        let page = scrollView.contentOffset.x / scrollView.width
        if page.int >= pageControl.numberOfPages{
            pageControl.currentPage = 0
        }else{
            pageControl.currentPage = page.int
        }
    }
    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        let page = scrollView.contentOffset.x / scrollView.width
        if page.int >= pageControl.numberOfPages{
            pageControl.currentPage = 0
            collectionView.setContentOffset(.zero, animated: false)
        }else{
            pageControl.currentPage = page.int
        }
    }
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "BannerView", for: indexPath) as! CommonBannerViewCell
        let item = items[indexPath.row]
        switch item.mediaType {
            case .imageUrl:
                if let i = item.resource{
                    cell.imgView.sd_setImage(with: URL(string: i))
                enum MediaType {
                                case videoUrl,imageUrl,imageLocal,videoLocal
                }
            case .imageLocal:
                if let i = item.resource{
                    cell.imgView.image = UIImage(named: i)
                private lazy var collectionView:UICollectionView = {
                                var layout = UICollectionViewFlowLayout()
                                layout.minimumLineSpacing = 0
                                layout.minimumInteritemSpacing = 0
                                layout.scrollDirection = .horizontal
                                layout.sectionInset = .zero
                                layout.headerReferenceSize = .zero
                                layout.footerReferenceSize = .zero
                                layout.itemSize = CGSize(width: self.width, height: self.height)
                                let collectionView = UICollectionView(frame:CGRect(x: 0, y: 0, width: self.width, height: self.height), collectionViewLayout: layout)
                                collectionView.delegate = self
                                collectionView.dataSource = self
                                collectionView.isPagingEnabled = true
                                collectionView.showsHorizontalScrollIndicator = false
                                collectionView.register(CommonBannerViewCell.self, forCellWithReuseIdentifier: "BannerView")
                                collectionView.decelerationRate = .normal
                                collectionView.contentInsetAdjustmentBehavior = .never
                                collectionView.backgroundColor = .white
                                collectionView.bounces = false
                                return collectionView
                }()
                private lazy var pageControl:UIPageControl = {
                                let control = UIPageControl()
                                control.currentPageIndicatorTintColor = .white
                                control.pageIndicatorTintColor = .gray.withAlphaComponent(0.6)
                                return control
                }()
                private var timer:Timer?
                private var items = [CommonBannerModel]()
                private var selectClouse:((CommonBannerModel)->Void)?
                private var autoRoll:Bool = true
                private var currentPage:Int = 0
                private var timeInterval:Int = 5
                override func awakeFromNib() {
                                super.awakeFromNib()
                                setUI()
                }
            default:break
        }
        return cell
    }
                public func setItems(items:[CommonBannerModel],autoRoll:Bool = true,selectClouse:((CommonBannerModel)->Void)? = nil){
                                self.items = items
                                if items.count > 1{
                                                self.items.append(items.first!)
                                }
                                self.autoRoll = autoRoll
                                self.selectClouse = selectClouse
                                if items.count <= 1{self.autoRoll = false}
                                setUI()
                                collectionView.reloadData()
                                if self.autoRoll{
                                                DispatchQueue.main.asyncAfter(deadline: .now()+5) {
                                                                self.startTimer()
                                                }
                                }
                }
                private func setUI(){
                                addSubview(collectionView)
                                collectionView.snp.makeConstraints { make in
                                                make.edges.equalToSuperview()
                                }
                                if items.count > 1{
                                                pageControl.numberOfPages = items.count - 1
                                                addSubview(pageControl)
                                                pageControl.snp.makeConstraints { make in
                                                                make.centerX.equalToSuperview()
                                                                make.bottom.equalToSuperview().offset(-10)
                                                                make.height.equalTo(8)
                                                }
                                }
                }
                private func startTimer(){
                                timer = Timer(timeInterval: TimeInterval(timeInterval), repeats: true, block: {[weak self] t in
                                                guard let weakSelf = self else { return }
                                                var page = weakSelf.collectionView.contentOffset.x / weakSelf.collectionView.width
                                                weakSelf.currentPage = Int(page + 1)
                                                if weakSelf.currentPage >= weakSelf.pageControl.numberOfPages{
                                                                weakSelf.currentPage = 0
                                                                weakSelf.collectionView.setContentOffset(.zero, animated: false)
                                                                weakSelf.pageControl.currentPage = 0
                                                }
                                                weakSelf.collectionView.setContentOffset(CGPoint(x: weakSelf.currentPage * Int(weakSelf.width), y: 0), animated: true)
                                })
                                timer?.fire()
                                RunLoop.current.add(timer!, forMode: .common)
                }
                func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
                                return items.count
                }
                func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
                                let item = items[indexPath.row]
                                selectClouse?(item)
                }
                func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
                                return CGSize(width:collectionView.bounds.size.width,height:ceil(collectionView.bounds.size.height))
                }
                func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
                                print("--开始滑动")
                                timer?.fireDate = Date.distantFuture
                }
                func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
                                let page = scrollView.contentOffset.x / scrollView.width
                                if page.int >= pageControl.numberOfPages{
                                                pageControl.currentPage = 0
                                }else{
                                                pageControl.currentPage = page.int
                                }
                                print("--结束滑动")
                                timer?.fireDate = Date.init(timeIntervalSinceNow: 3.0) //3秒后开启
                }
                func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
                                let page = scrollView.contentOffset.x / scrollView.width
                                if page.int >= pageControl.numberOfPages{
                                                pageControl.currentPage = 0
                                }else{
                                                pageControl.currentPage = page.int
                                }
                }
                func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
                                let page = scrollView.contentOffset.x / scrollView.width
                                if page.int >= pageControl.numberOfPages{
                                                pageControl.currentPage = 0
                                                collectionView.setContentOffset(.zero, animated: false)
                                }else{
                                                pageControl.currentPage = page.int
                                }
                }
                func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
                                let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "BannerView", for: indexPath) as! CommonBannerViewCell
                                let item = items[indexPath.row]
                                switch item.mediaType {
                                                case .imageUrl:
                                                                if let i = item.resource{
                                                                                cell.imgView.sd_setImage(with: URL(string: i))
                                                                }
                                                case .imageLocal:
                                                                if let i = item.resource{
                                                                                cell.imgView.image = UIImage(named: i)
                                                                }
                                                default:break
                                }
                                return cell
                }
}
class CommonBannerViewCell: UICollectionViewCell {
    lazy var imgView:UIImageView = {
        let img = UIImageView()
        img.contentMode = .scaleToFill
        return img
    }()
                lazy var imgView:UIImageView = {
                                let img = UIImageView()
                                img.contentMode = .scaleToFill
                                return img
                }()
    override init(frame: CGRect) {
        super.init(frame: frame)
        contentView.addSubview(imgView)
        imgView.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
    }
                override init(frame: CGRect) {
                                super.init(frame: frame)
                                contentView.addSubview(imgView)
                                imgView.snp.makeConstraints { make in
                                                make.edges.equalToSuperview()
                                }
                }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
                required init?(coder aDecoder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
}
WanPai/Config/Enums.swift
@@ -178,6 +178,7 @@
}
enum GenderType:Int,HandyJSONEnum{
                case none = 0
                case  man = 1
                case  woman = 2
}
@@ -375,7 +376,9 @@
                case sport = 2
                case communtiy = 3
                case deepPlayer = 4
                case more = 5
                case winner = 5
                case counter = 6
                case more = 7
                var image:UIImage{
@@ -384,6 +387,8 @@
                                                case .sport:return UIImage(named: "icon_coupon_2")!
                                                case .communtiy:return UIImage(named: "icon_coupon_3")!
                                                case .deepPlayer:return UIImage(named: "icon_coupon_4")!
                                                case .winner:return UIImage(named: "icon_coupon_4")!
                                                case .counter:return UIImage(named: "icon_coupon_4")!
                                                case .more:return UIImage(named: "icon_coupon_6")!
                                }
                }
@@ -394,6 +399,8 @@
                                                case .sport:return "EVENTS"
                                                case .communtiy:return "ON_LINE"
                                                case .deepPlayer:return "APPOINTMENT"
                                                case .winner:return "WINNER"
                                                case .counter:return "COUNTER"
                                                case .more:return "MORE"
                                }
                }
@@ -404,6 +411,8 @@
                                                case .sport:return "运动大人"
                                                case .communtiy:return "社区之王"
                                                case .deepPlayer:return "深度玩家"
                                                case .winner:return "常胜将军"
                                                case .counter:return "越战越勇"
                                                case .more:return "更多"
                                }
                }
WanPai/Network/Services.swift
@@ -1147,10 +1147,11 @@
                }
                /// 删除参赛人员
                class func deleParticipant(id:Int)->Observable<BaseResponse<SimpleModel>>{
                class func deleParticipant(id:Int,isStudent:Int)->Observable<BaseResponse<SimpleModel>>{
                                let params = ParamsAppender.build(url: All_Url)
                                                .interface(url: "competition/api/participant/delParticipant")
                                                .append(key: "id", value: id)
                                                .append(key: "isStudent", value: isStudent)
                                return NetworkRequest.request(params: params, method: .post, progress: true)
                }
@@ -1417,6 +1418,13 @@
                                return NetworkRequest.request(params: params, method: .post, progress: false)
                }
                class func cancelMyWorldCup(id:Int)->Observable<BaseResponse<SimpleModel>>{
                                let params = ParamsAppender.build(url: All_Url)
                                                .interface(url: "/communityWorldCup/api/worldCup/cancelMyWorldCup")
                                                .append(key: "id", value: id)
                                return NetworkRequest.request(params: params, method: .post, progress: true)
                }
}
WanPai/Root/Activity/VC/ActivityStudentListVC.swift
@@ -72,7 +72,7 @@
                                                                guard let weakSelf = self else { return }
                                                                if status{
                                                                                let m = weakSelf.viewModel.dataSource.value[index.row]
                                                                                Services.deleParticipant(id: m.id).subscribe(onNext: { data in
                                                                                Services.deleParticipant(id: m.id, isStudent: m.isStudent).subscribe(onNext: { data in
                                                                                                weakSelf.viewModel.beginRefresh()
                                                                                }).disposed(by: weakSelf.disposeBag)
                                                                }
WanPai/Root/Activity/View/StoresInfoView.swift
@@ -18,7 +18,14 @@
                @IBOutlet weak var label_distance: UILabel!
                @IBOutlet weak var btn_exchange: QMUIButton!
                private var clouse:((Bool)->Void)!
                private var storeType:StoreType!
                enum StoreType{
                                case normal
                                case worldCup
                }
                override func awakeFromNib() {
                                super.awakeFromNib()
@@ -46,10 +53,19 @@
                                }
                }
                static func show(_ activityModel:ActivityDetailStoreModel,clouse:@escaping (Bool)->Void){
                static func show(_ activityModel:ActivityDetailStoreModel,type:StoresInfoView.StoreType = .normal,clouse:@escaping (Bool)->Void){
                                let storesView = StoresInfoView.jq_loadNibView()
                                storesView.frame = sceneDelegate?.window?.frame ?? .zero
                                storesView.label_topTitle.text = "请确认预约门店"
                                if type == .normal{
                                                storesView.label_topTitle.text = "请确认预约门店"
                                                storesView.btn_exchange.setTitle("更换门店", for: .normal)
                                }else{
                                                storesView.label_topTitle.text = "请确认参与赛点"
                                                storesView.btn_exchange.setTitle("更换赛点", for: .normal)
                                }
                                storesView.img_logo.sd_setImage(with: URL(string: activityModel.storeCoverDrawing))
                                storesView.label_title.text = activityModel.name
                                storesView.label_address.text = activityModel.address
WanPai/Root/Course/VC/AddStudentVC.swift
@@ -70,10 +70,10 @@
                                                                img_profile.sd_setImage(with: URL(string: studentInfo!.stuHeadImg))
                                                                studentModel.headImg = studentInfo!.stuHeadImg
                                                                studentModel.stuId = studentInfo!.stuId
                                                                tf_gender.text = studentModel.sex == .man ? "男":"女"
                                                                tf_gender.text = studentInfo!.sex == .man ? "男":"女"
                                                }
                                }else{
                                                view_profile.isHidden = true
                                                view_profile.isHidden = false
                                                title = "添加人员"
                                                tf_name.placeholder = "请输入人员姓名"
                                                tf_height.placeholder = "请输入身高"
@@ -124,8 +124,16 @@
                @IBAction func completeAction(_ sender: UIButton) {
                                if studentInfo == nil && type == .course{
                                                guard profileImg != nil else {alertError(msg: "请上传运动营成员头像");return}
                                if studentInfo == nil{
                                                guard profileImg != nil else {
                                                                if type == .course{
                                                                                alertError(msg: "请上传运动营成员头像");
                                                                }else{
                                                                                alertError(msg: "请上传人员头像");
                                                                }
                                                                return}
                                }
                                guard !tf_name.text!.isEmpty else {alertError(msg: tf_name.placeholder!);return}
@@ -143,10 +151,9 @@
                                                guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return}
                                }
//                                if !tf_idCard.isEmpty || activityDetailPartModel != nil{
//
//                                }
                                guard tf_idCard.text!.jq_idCard() else {alertError(msg: "请输入正确的身份证号码");return}
                                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!
@@ -174,17 +181,17 @@
                private func addStudent(){
                                if type == .course{
                                                if studentInfo == nil{
                                                                Services.addStudent(studentModel).subscribe(onNext: { [weak self] data in
                                                                                self?.addStudentSuccess(text: "编辑成功")
                                                                }).disposed(by: disposeBag)
                                                }else{
                                                if studentInfo != nil{
                                                                Services.editStu(studentModel).subscribe(onNext: {[weak self]data in
                                                                                self?.addStudentSuccess(text: "添加成功")
                                                                                self?.addStudentSuccess(text: "编辑成功")
                                                                                NotificationCenter.default.post(name: StudentUpdate_Nofi, object: nil)
                                                                }) { error in
                                                                }.disposed(by: disposeBag)
                                                }else{
                                                                Services.addStudent(studentModel).subscribe(onNext: { [weak self] data in
                                                                                self?.addStudentSuccess(text: "添加成功")
                                                                }).disposed(by: disposeBag)
                                                }
                                }else{
                                                if activityDetailPartModel != nil{
@@ -225,14 +232,19 @@
                                }
                                if textField == tf_gender{
                                                let alertVC = UIAlertController(title: "性别", message: nil, preferredStyle: .actionSheet)
                                                alertVC.addAction(UIAlertAction(title: "男", style: .default) { _ in
                                                                self.tf_gender.text = "男"
                                                                self.studentModel.sex = .man
                                                                self.activityDetailPartModel?.gender = .man
                                                                self.studentInfo?.sex = .man
                                                })
                                                alertVC.addAction(UIAlertAction(title: "女", style: .default) { _ in
                                                                self.tf_gender.text = "女"
                                                                self.studentModel.sex = .woman
                                                                self.activityDetailPartModel?.gender = .woman
                                                                self.studentInfo?.sex = .woman
                                                })
                                                alertVC.addAction(UIAlertAction(title: "取消", style: .cancel))
WanPai/Root/Course/VC/AddStudentVC.xib
@@ -357,14 +357,11 @@
                                    </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="30.000000000000004" y="16.666666666666629" width="57.333333333333343" height="17"/>
                                    <rect key="frame" x="14.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"/>
@@ -377,13 +374,11 @@
                                <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="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="JjF-jS-GPH" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="14" id="Im9-5F-1xr"/>
                                <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/WorldCupModel.swift
@@ -18,7 +18,7 @@
                var lon: String = ""
                var matchNumber: Int = 0
                var name: String = ""
                var registrationClosingTime: String = ""
                var registrationClosingTime:String?
                var worldCupId:Int = 0
}
@@ -37,7 +37,7 @@
                var intro: String = ""
                var name: String = ""
                var paiCoin: Int = 0
                var registrationClosingTime: String = ""
                var registrationClosingTime:String?
                var startTime: String = ""
                var storeInfos = [ActivityDetailStoreModel]()
@@ -46,6 +46,9 @@
                var revocable:Int = 0 //是否可取消 是否可取消(0=否,1=是)
                var status:SignupType = .cancel//比赛状态 比赛状态(1=未开始,2=已开始,3=已结束,4=已取消)
                var unitPrice:Double = 0
                var payType:PayType = .free
                var province:String = ""
                var city:String = ""
}
@@ -81,7 +84,7 @@
                var lon: Double = 0
                var matchNumber: Int = 0
                var name: String = ""
                var registrationClosingTime: String = ""
                var registrationClosingTime:String?
}
struct WorldCupRankModel:HandyJSON {
WanPai/Root/Home/VC/HomeVC.swift
@@ -73,7 +73,6 @@
                                collectionView.dataSource = self
                                collectionView.backgroundColor = .white
                                collectionView.register(UINib(nibName: "HomeCCell", bundle: nil), forCellWithReuseIdentifier: "_HomeCCell")
                                //        collectionView.jq_setEmptyView("无数据", image: UIImage(named: "icon_LOGO")?.jq_imageWithTintColor(color: .gray), foregroundColor: .gray, clouse: nil)
                }
                override func setRx() {
WanPai/Root/Home/VC/WorldCupListVC.swift
@@ -156,6 +156,7 @@
                func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
                                let headView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "_headerView") as! WorldCupHeadView
                                headView.tableView = tableView
                                headView.delegate = self
                                return headView
                }
@@ -173,6 +174,7 @@
                
                func atPoint(_ btn: QMUIButton) {
                                hotView?.removeFromSuperview()
                                conditionView?.removeFromSuperview()
                                pointView = CourseSubTypeView.show(inView: self.view, afterView: btn, items: pointData,selectModel: viewModel.storeId.value) {[weak self] model in
                                                if model.name == "全部"{
                                                                btn.setTitle("所在赛点", for: .normal)
WanPai/Root/Home/View/WorldCupHeadView.swift
@@ -23,6 +23,7 @@
                @IBOutlet weak var btn_condition: QMUIButton!
                @IBOutlet weak var btn_hot: QMUIButton!
                var delegate:WorldCupHeadDelegate?
                var tableView: UITableView?
                override func awakeFromNib() {
                                super.awakeFromNib()
@@ -39,6 +40,8 @@
                }
                @IBAction func atPointAction(_ sender: QMUIButton) {
                                guard !sender.isSelected else{return}
                                if tableView?.mj_header?.isRefreshing ?? false{return}
                                btn_point.isSelected = true
                                btn_condition.isSelected = false
                                btn_hot.isSelected = false
@@ -46,6 +49,8 @@
                }
                @IBAction func atCoditionAction(_ sender: QMUIButton) {
                                guard !sender.isSelected else{return}
                                if tableView?.mj_header?.isRefreshing ?? false{return}
                                btn_condition.isSelected = true
                                btn_point.isSelected = false
                                btn_hot.isSelected = false
WanPai/Root/Home/View/WorldCupHeadView.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="System colors in document resources" minToolsVersion="11.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -67,6 +67,9 @@
                            <subviews>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UqK-cy-hEv" customClass="QMUIButton">
                                    <rect key="frame" x="0.0" y="0.0" width="79" height="52"/>
                                    <constraints>
                                        <constraint firstAttribute="width" relation="lessThanOrEqual" constant="180" id="lDb-Gs-6wa"/>
                                    </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/Login/VC/LoginRegOrForgotVC.swift
@@ -12,99 +12,99 @@
class LoginRegOrForgotVC: BaseVC {
    private var type:GetSMSCodeType!
                private var type:GetSMSCodeType!
    @IBOutlet weak var tf_phone: QMUITextField!
    @IBOutlet weak var tf_code: QMUITextField!
    @IBOutlet weak var tf_pwd: QMUITextField!
    @IBOutlet weak var tf_invitePhone: QMUITextField!
    @IBOutlet weak var view_invite: UIView!
    @IBOutlet weak var view_placeholder: UIView!
                @IBOutlet weak var tf_phone: QMUITextField!
                @IBOutlet weak var tf_code: QMUITextField!
                @IBOutlet weak var tf_pwd: QMUITextField!
                @IBOutlet weak var tf_invitePhone: QMUITextField!
                @IBOutlet weak var view_invite: UIView!
                @IBOutlet weak var view_placeholder: UIView!
    private var force:String = ""
                private var force:String = ""
    required init(type:GetSMSCodeType,force:String = "") {
        super.init(nibName: nil, bundle: nil)
        self.type = type
        self.force = force
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        title = type.titleStr
        tf_pwd.maximumTextLength = 18
        tf_phone.text = force
        if !force.isEmpty{alert(msg: "请修改密码")}
        view_invite.isHidden = type != .register
        view_placeholder.isHidden = type != .register
    }
    @IBAction func eyeAction(_ sender: UIButton) {
        sender.isSelected = !sender.isSelected
        tf_pwd.isSecureTextEntry = !sender.isSelected
    }
    @IBAction func completeAction(_ sender: UIButton) {
        guard !tf_phone.text!.isEmpty else {alertError(msg: tf_phone.placeholder!);return}
        guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return}
        guard !tf_code.text!.isEmpty else {alertError(msg: tf_code.placeholder!);return}
        guard !tf_pwd.text!.isEmpty else {alertError(msg: tf_pwd.placeholder!);return}
        guard tf_pwd.text!.jq_isComplexPassword else {alertError(msg: "请输入6-18位包含数字和字母的密码");return}
        let phone = tf_phone.text!
        let pwd = tf_pwd.text!
        let code = tf_code.text!
        switch type{
            case .register:
                var invitePhone:String?
                if !tf_invitePhone.isEmpty{invitePhone = tf_invitePhone.text!}
                if invitePhone != nil{
                    guard tf_phone.text!.jq_isPhone else {
                        alert(msg: "请输入正确的推广手机号码");return
                    }
                required init(type:GetSMSCodeType,force:String = "") {
                                super.init(nibName: nil, bundle: nil)
                                self.type = type
                                self.force = force
                }
                Services.register(phone: phone, password: pwd, code: code,invitePhone: invitePhone).subscribe(onNext: { result in
                    alertSuccess(msg: "注册成功")
                    DispatchQueue.main.asyncAfter(wallDeadline: .now()+1) {
                        app.registerAndLoginSuccess()
                    }
                }).disposed(by: disposeBag)
            case .forgotPwd:
                Services.forgetPwd(phone: phone, password: pwd, code: code).subscribe(onNext: { result in
                    alertSuccess(msg: "修改成功")
                    DispatchQueue.main.asyncAfter(wallDeadline: .now()+1) {
                        self.navigationController?.popViewController()
                    }
                }).disposed(by: disposeBag)
            case .updatePwd:
                Services.updatePwd(phone: phone, password: pwd, code: code).subscribe(onNext: { result in
                    alertSuccess(msg: "修改成功")
                    DispatchQueue.main.asyncAfter(wallDeadline: .now()+1) {
                        self.navigationController?.popViewController()
                    }
                }).disposed(by: disposeBag)
            default:break
        }
    }
                required init?(coder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
    @IBAction func getCodeAction(_ sender: UIButton) {
        guard !tf_phone.text!.isEmpty else {alertError(msg: tf_phone.placeholder!);return}
        guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return}
        Services.getSMSCode(phone: tf_phone.text!, type: type).subscribe(onNext: {result in
            sender.openCountDown()
        }).disposed(by: disposeBag)
    }
                override func viewDidLoad() {
                                super.viewDidLoad()
                                title = type.titleStr
                                tf_pwd.maximumTextLength = 18
    override var preferredStatusBarStyle: UIStatusBarStyle{
        return .default
    }
                                tf_phone.text = force
                                if !force.isEmpty{alert(msg: "请修改密码")}
                                view_invite.isHidden = type != .register
                                view_placeholder.isHidden = type != .register
                }
                @IBAction func eyeAction(_ sender: UIButton) {
                                sender.isSelected = !sender.isSelected
                                tf_pwd.isSecureTextEntry = !sender.isSelected
                }
                @IBAction func completeAction(_ sender: UIButton) {
                                guard !tf_phone.text!.isEmpty else {alertError(msg: tf_phone.placeholder!);return}
                                guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return}
                                guard !tf_code.text!.isEmpty else {alertError(msg: tf_code.placeholder!);return}
                                guard !tf_pwd.text!.isEmpty else {alertError(msg: tf_pwd.placeholder!);return}
                                guard tf_pwd.text!.jq_isComplexPassword else {alertError(msg: "请输入6-18位包含数字和字母的密码");return}
                                let phone = tf_phone.text!
                                let pwd = tf_pwd.text!
                                let code = tf_code.text!
                                switch type{
                                                case .register:
                                                                var invitePhone:String?
                                                                if !tf_invitePhone.isEmpty{invitePhone = tf_invitePhone.text!}
                                                                if invitePhone != nil{
                                                                                guard tf_phone.text!.jq_isPhone else {
                                                                                                alert(msg: "请输入正确的推广手机号码");return
                                                                                }
                                                                }
                                                                Services.register(phone: phone, password: pwd, code: code,invitePhone: invitePhone).subscribe(onNext: { result in
                                                                                alertSuccess(msg: "注册成功")
                                                                                DispatchQueue.main.asyncAfter(wallDeadline: .now()+1) {
                                                                                                app.registerAndLoginSuccess()
                                                                                }
                                                                }).disposed(by: disposeBag)
                                                case .forgotPwd:
                                                                Services.forgetPwd(phone: phone, password: pwd, code: code).subscribe(onNext: { result in
                                                                                alertSuccess(msg: "修改成功")
                                                                                DispatchQueue.main.asyncAfter(wallDeadline: .now()+1) {
                                                                                                self.navigationController?.popViewController()
                                                                                }
                                                                }).disposed(by: disposeBag)
                                                case .updatePwd:
                                                                Services.updatePwd(phone: phone, password: pwd, code: code).subscribe(onNext: { result in
                                                                                alertSuccess(msg: "修改成功")
                                                                                DispatchQueue.main.asyncAfter(wallDeadline: .now()+1) {
                                                                                                self.navigationController?.popViewController()
                                                                                }
                                                                }).disposed(by: disposeBag)
                                                default:break
                                }
                }
                @IBAction func getCodeAction(_ sender: UIButton) {
                                guard !tf_phone.text!.isEmpty else {alertError(msg: tf_phone.placeholder!);return}
                                guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return}
                                Services.getSMSCode(phone: tf_phone.text!, type: type).subscribe(onNext: {result in
                                                sender.openCountDown()
                                }).disposed(by: disposeBag)
                }
                override var preferredStatusBarStyle: UIStatusBarStyle{
                                return .default
                }
}
WanPai/Root/Other/VC/PaymentResultVC.swift
@@ -78,7 +78,7 @@
                                                                                case .success:
                                                                                                label_content.text = "报名成功,请等待平台通知具体开赛时间"
                                                                                                self.btn_back.setTitle("返回首页", for: .normal)
                                                                                                self.btn_again.setTitle("查看排名", for: .normal)
                                                                                                self.btn_again.setTitle("查看报名", for: .normal)
                                                                                case .fail(let string, let code):
                                                                                                self.btn_back.setTitle("返回", for: .normal)
@@ -280,8 +280,13 @@
                                                                NotificationCenter.default.post(name: UpdateCurrentStore_Noti, object: nil)
                                                                NotificationCenter.default.post(name: StudentRefresh_Nofi, object: nil)
                                                case "查看报名":
                                                                let vc = ActivitySignupListVC()
                                                                jumpAndRemoveSelfVC(vc)
                                                                if objType == .worldCup{
                                                                                let vc  = WorldCupVC()
                                                                                jumpAndRemoveSelfVC(vc)
                                                                }else{
                                                                                let vc = ActivitySignupListVC()
                                                                                jumpAndRemoveSelfVC(vc)
                                                                }
                                                case "再次支付":
                                                                if objType == .courseApply{
                                                                                navigationController?.popViewController(animated: true, {[weak self] in
WanPai/Root/Other/VC/ProfileVC.swift
@@ -107,6 +107,20 @@
                                }, clipSize: CGSize(width: JQ_ScreenW, height: JQ_ScreenW))
                }
                @IBAction func updatePwdAction(_ sender: Any) {
                                let vc = LoginRegOrForgotVC(type: .updatePwd)
                                push(vc: vc)
                }
                @IBAction func userAgreementAction(_ sender: Any) {
                                push(vc: CommonWebVC(type: .user))
                }
                @IBAction func privacyAgreementAction(_ sender: Any) {
                                push(vc: CommonWebVC(type: .privacy))
                }
                @IBAction func dismissAccountAction(_ sender: UIButton) {
                }
WanPai/Root/Other/VC/ProfileVC.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"/>
@@ -48,7 +48,7 @@
                    </connections>
                </button>
                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="R9B-6k-bGu">
                    <rect key="frame" x="0.0" y="253" width="393" height="306"/>
                    <rect key="frame" x="0.0" y="253" width="393" height="459"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="b2k-2V-k9C">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="51"/>
@@ -260,6 +260,111 @@
                                <constraint firstAttribute="trailing" secondItem="Xkh-Hd-htf" secondAttribute="trailing" constant="17" id="feQ-Qt-XfD"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aso-eB-Jim" customClass="TapBtn" customModule="WanPai" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="306" width="393" height="51"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SLz-E6-EPU">
                                    <rect key="frame" x="14" y="50.666666666666629" width="365" height="0.3333333333333357"/>
                                    <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.5" id="CAc-BC-e3a"/>
                                    </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="pEn-a6-qmn">
                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <color key="textColor" red="0.99215686274509807" green="0.49019607843137253" blue="0.0078431372549019607" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more_y" translatesAutoresizingMaskIntoConstraints="NO" id="qUv-ob-kMX">
                                    <rect key="frame" x="368" y="19" width="8" height="13"/>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="51" id="8MJ-n9-d5E"/>
                                <constraint firstItem="pEn-a6-qmn" firstAttribute="centerY" secondItem="aso-eB-Jim" secondAttribute="centerY" id="FO6-2p-wvq"/>
                                <constraint firstAttribute="trailing" secondItem="SLz-E6-EPU" secondAttribute="trailing" constant="14" id="Jrt-m4-UqB"/>
                                <constraint firstAttribute="trailing" secondItem="qUv-ob-kMX" secondAttribute="trailing" constant="17" id="MlX-2j-Pyx"/>
                                <constraint firstItem="qUv-ob-kMX" firstAttribute="centerY" secondItem="aso-eB-Jim" secondAttribute="centerY" id="ebm-DD-4tP"/>
                                <constraint firstItem="pEn-a6-qmn" firstAttribute="leading" secondItem="aso-eB-Jim" secondAttribute="leading" constant="14" id="gth-DS-Xey"/>
                                <constraint firstAttribute="bottom" secondItem="SLz-E6-EPU" secondAttribute="bottom" id="opp-Jf-hI6"/>
                                <constraint firstItem="SLz-E6-EPU" firstAttribute="leading" secondItem="aso-eB-Jim" secondAttribute="leading" constant="14" id="t1v-7m-CO7"/>
                            </constraints>
                            <connections>
                                <action selector="updatePwdAction:" destination="-1" eventType="touchUpInside" id="Vzm-fA-XKJ"/>
                            </connections>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="a63-aL-Eid" customClass="TapBtn" customModule="WanPai" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="357" width="393" height="51"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EkC-Bl-hHR">
                                    <rect key="frame" x="14" y="50.666666666666629" width="365" height="0.3333333333333357"/>
                                    <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.5" id="Aev-y4-DHo"/>
                                    </constraints>
                                </view>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more_y" translatesAutoresizingMaskIntoConstraints="NO" id="9S4-qi-vaZ">
                                    <rect key="frame" x="368" y="19" width="8" height="13"/>
                                </imageView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="用户协议" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HaZ-hn-5rr">
                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <color key="textColor" red="0.99215686274509807" green="0.49019607843137253" blue="0.0078431372549019607" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="51" id="4EW-cg-s06"/>
                                <constraint firstItem="9S4-qi-vaZ" firstAttribute="centerY" secondItem="a63-aL-Eid" secondAttribute="centerY" id="4Vd-WS-SzJ"/>
                                <constraint firstItem="HaZ-hn-5rr" firstAttribute="centerY" secondItem="a63-aL-Eid" secondAttribute="centerY" id="8KB-sH-D4g"/>
                                <constraint firstItem="HaZ-hn-5rr" firstAttribute="leading" secondItem="a63-aL-Eid" secondAttribute="leading" constant="14" id="B9X-cp-07Q"/>
                                <constraint firstItem="EkC-Bl-hHR" firstAttribute="leading" secondItem="a63-aL-Eid" secondAttribute="leading" constant="14" id="OLO-rC-rbt"/>
                                <constraint firstAttribute="bottom" secondItem="EkC-Bl-hHR" secondAttribute="bottom" id="nEh-g5-PJM"/>
                                <constraint firstAttribute="trailing" secondItem="EkC-Bl-hHR" secondAttribute="trailing" constant="14" id="rGm-Rf-FM7"/>
                                <constraint firstAttribute="trailing" secondItem="9S4-qi-vaZ" secondAttribute="trailing" constant="17" id="uv0-5f-OxN"/>
                            </constraints>
                            <connections>
                                <action selector="userAgreementAction:" destination="-1" eventType="touchUpInside" id="io5-1K-Mso"/>
                            </connections>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tYi-Sq-9DM" customClass="TapBtn" customModule="WanPai" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="408" width="393" height="51"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9AA-Gm-jhb">
                                    <rect key="frame" x="14" y="50.666666666666629" width="365" height="0.3333333333333357"/>
                                    <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.5" id="Xkf-ds-Ako"/>
                                    </constraints>
                                </view>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_more_y" translatesAutoresizingMaskIntoConstraints="NO" id="IWJ-Hr-d0k">
                                    <rect key="frame" x="368" y="19" width="8" height="13"/>
                                </imageView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="隐私协议" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zuo-b2-tac">
                                    <rect key="frame" x="14.000000000000004" y="17" width="57.333333333333343" height="17"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <color key="textColor" red="0.99215686270000003" green="0.49019607840000001" blue="0.0078431372550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="IWJ-Hr-d0k" secondAttribute="trailing" constant="17" id="E2s-3s-LxE"/>
                                <constraint firstItem="Zuo-b2-tac" firstAttribute="leading" secondItem="tYi-Sq-9DM" secondAttribute="leading" constant="14" id="E3j-KS-wM1"/>
                                <constraint firstItem="Zuo-b2-tac" firstAttribute="centerY" secondItem="tYi-Sq-9DM" secondAttribute="centerY" id="FkA-gs-1KF"/>
                                <constraint firstAttribute="bottom" secondItem="9AA-Gm-jhb" secondAttribute="bottom" id="Olv-4Q-30b"/>
                                <constraint firstItem="9AA-Gm-jhb" firstAttribute="leading" secondItem="tYi-Sq-9DM" secondAttribute="leading" constant="14" id="hmy-7l-SRg"/>
                                <constraint firstAttribute="trailing" secondItem="9AA-Gm-jhb" secondAttribute="trailing" constant="14" id="vR5-Je-hF3"/>
                                <constraint firstItem="IWJ-Hr-d0k" firstAttribute="centerY" secondItem="tYi-Sq-9DM" secondAttribute="centerY" id="xQC-Gb-HD9"/>
                                <constraint firstAttribute="height" constant="51" id="ytx-zO-bvu"/>
                            </constraints>
                            <connections>
                                <action selector="privacyAgreementAction:" destination="-1" eventType="valueChanged" id="ise-7d-JPs"/>
                            </connections>
                        </view>
                    </subviews>
                </stackView>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5Bn-Ou-0kZ">
@@ -329,6 +434,7 @@
    </objects>
    <resources>
        <image name="btn_camera" width="22" height="20"/>
        <image name="icon_more_y" width="8" height="13"/>
        <namedColor name="FE6E0D">
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
@@ -336,7 +442,7 @@
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
        <systemColor name="systemGroupedBackgroundColor">
            <color red="0.94901960780000005" green="0.94901960780000005" blue="0.96862745100000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
            <color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Other/View/CommonYearsPickerView.swift
@@ -23,7 +23,7 @@
                override func awakeFromNib() {
                                super.awakeFromNib()
                                years = (Date().jq_nowYear()-5...Date().jq_nowYear()).map{$0}
                                years = (Date().jq_nowYear()-5...Date().jq_nowYear()).map{$0}.sorted(by: {$0 > $1})
                                years.insert(0, at: 0)
                                cons_bottom.constant = -(JQ_ScreenW * 1.1)
                                pickerView.delegate = self
WanPai/Root/Other/View/CommonYearsPickerView.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"/>
@@ -43,7 +43,7 @@
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="请选择参与年份" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F88-Cm-Utq">
                            <rect key="frame" x="139.33333333333334" y="18" width="114.33333333333334" height="19.333333333333329"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9bC-Lz-I50">
WanPai/Root/Search/TCell/JudgeTCell.swift
@@ -24,7 +24,7 @@
                                label_title.text = model.name
                                label_state.text = model.status.rawTitle
                                label_time.text = "活动时间:\(model.activeTime)"
                                label_times.text = "已比赛场次数:\(model.matchNumber)"
                                label_times.text = "已比赛次数:\(model.matchNumber)"
                                btn_begin.isHidden =  model.status != .ongoing
                }
WanPai/Root/Search/TCell/MyQRCodeTCell.xib
@@ -1,77 +1,77 @@
<?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="System colors in document resources" minToolsVersion="11.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_MyQRCodeTCell" rowHeight="207" id="KGk-i7-Jjw" customClass="MyQRCodeTCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="462" height="207"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_MyQRCodeTCell" rowHeight="82" id="KGk-i7-Jjw" customClass="MyQRCodeTCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="385" height="82"/>
            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
                <rect key="frame" x="0.0" y="0.0" width="462" height="207"/>
                <rect key="frame" x="0.0" y="0.0" width="385" height="82"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="OzX-LD-ebb">
                        <rect key="frame" x="14" y="7" width="434" height="193"/>
                        <rect key="frame" x="14" y="7" width="357" height="68"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DWx-WW-QMK">
                                <rect key="frame" x="8" y="88" width="36" height="17"/>
                                <rect key="frame" x="8" y="15" width="36" height="17"/>
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hlr-vD-idp">
                                <rect key="frame" x="44" y="88" width="13.333333333333336" 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>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KwF-AF-WE6">
                                <rect key="frame" x="105.33333333333333" y="88" width="13.333333333333329" height="17"/>
                                <rect key="frame" x="44" y="36" width="13.333333333333336" 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" translatesAutoresizingMaskIntoConstraints="NO" id="hOG-rl-POS">
                                <rect key="frame" x="357" y="66.666666666666671" width="60" height="60"/>
                                <rect key="frame" x="280" y="4" width="60" height="60"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="60" id="MdW-PM-sUS"/>
                                    <constraint firstAttribute="width" constant="60" id="PTp-ML-UZf"/>
                                </constraints>
                            </imageView>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="年龄:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZFl-29-gbc">
                                <rect key="frame" x="69.333333333333329" y="88" width="36" height="17"/>
                                <rect key="frame" x="8" y="36" width="36" height="17"/>
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="点击查看二维码" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Kr-Zx-4BQ">
                                <rect key="frame" x="251" y="88" width="100" height="17"/>
                                <rect key="frame" x="174" y="25.666666666666664" width="100" height="17"/>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                <color key="textColor" red="0.30980392156862746" green="0.30588235294117649" blue="0.30196078431372547" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hlr-vD-idp">
                                <rect key="frame" x="49" y="15" width="13.333333333333336" 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>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="Hlr-vD-idp" firstAttribute="centerY" secondItem="DWx-WW-QMK" secondAttribute="centerY" id="1dd-64-UKe"/>
                            <constraint firstItem="ZFl-29-gbc" firstAttribute="leading" secondItem="DWx-WW-QMK" secondAttribute="leading" id="2bp-jS-OMm"/>
                            <constraint firstItem="4Kr-Zx-4BQ" firstAttribute="centerY" secondItem="OzX-LD-ebb" secondAttribute="centerY" id="692-Pc-K0C"/>
                            <constraint firstItem="KwF-AF-WE6" firstAttribute="leading" secondItem="ZFl-29-gbc" secondAttribute="trailing" id="7aV-MS-9Iw"/>
                            <constraint firstItem="DWx-WW-QMK" firstAttribute="leading" secondItem="OzX-LD-ebb" secondAttribute="leading" constant="8" id="HC2-wx-Td9"/>
                            <constraint firstItem="Hlr-vD-idp" firstAttribute="leading" secondItem="DWx-WW-QMK" secondAttribute="trailing" id="Laa-j8-s7g"/>
                            <constraint firstItem="DWx-WW-QMK" firstAttribute="leading" secondItem="OzX-LD-ebb" secondAttribute="leading" constant="8" id="FPd-J4-BUg"/>
                            <constraint firstItem="hOG-rl-POS" firstAttribute="centerY" secondItem="OzX-LD-ebb" secondAttribute="centerY" id="Hg3-aH-8vx"/>
                            <constraint firstAttribute="bottom" secondItem="ZFl-29-gbc" secondAttribute="bottom" constant="15" id="OpY-il-HQo"/>
                            <constraint firstItem="hOG-rl-POS" firstAttribute="leading" secondItem="4Kr-Zx-4BQ" secondAttribute="trailing" constant="6" id="TBX-Ot-GVW"/>
                            <constraint firstItem="DWx-WW-QMK" firstAttribute="centerY" secondItem="OzX-LD-ebb" secondAttribute="centerY" id="TF3-1A-eXd"/>
                            <constraint firstItem="ZFl-29-gbc" firstAttribute="leading" secondItem="Hlr-vD-idp" secondAttribute="trailing" constant="12" id="TNA-r7-InE"/>
                            <constraint firstItem="Hlr-vD-idp" firstAttribute="centerY" secondItem="DWx-WW-QMK" secondAttribute="centerY" id="bbG-vu-r9O"/>
                            <constraint firstItem="hOG-rl-POS" firstAttribute="centerY" secondItem="DWx-WW-QMK" secondAttribute="centerY" id="jaS-7D-1N9"/>
                            <constraint firstItem="4Kr-Zx-4BQ" firstAttribute="centerY" secondItem="DWx-WW-QMK" secondAttribute="centerY" id="uGo-RE-QzM"/>
                            <constraint firstItem="ZFl-29-gbc" firstAttribute="centerY" secondItem="DWx-WW-QMK" secondAttribute="centerY" id="vH0-Ra-M3e"/>
                            <constraint firstItem="Hlr-vD-idp" firstAttribute="leading" secondItem="DWx-WW-QMK" secondAttribute="trailing" constant="5" id="bSA-ha-W1b"/>
                            <constraint firstItem="KwF-AF-WE6" firstAttribute="centerY" secondItem="ZFl-29-gbc" secondAttribute="centerY" id="vpB-YO-2zI"/>
                            <constraint firstAttribute="trailing" secondItem="hOG-rl-POS" secondAttribute="trailing" constant="17" id="wan-ln-9Vq"/>
                            <constraint firstItem="DWx-WW-QMK" firstAttribute="top" secondItem="OzX-LD-ebb" secondAttribute="top" constant="15" id="zj4-oa-CE9"/>
                        </constraints>
                    </view>
                </subviews>
@@ -88,7 +88,7 @@
                <outlet property="label_name" destination="Hlr-vD-idp" id="VDh-wm-WCH"/>
                <outlet property="view_container" destination="OzX-LD-ebb" id="7ap-FZ-Wsy"/>
            </connections>
            <point key="canvasLocation" x="247.32824427480915" y="77.816901408450704"/>
            <point key="canvasLocation" x="188.54961832061068" y="33.802816901408455"/>
        </tableViewCell>
    </objects>
    <resources>
WanPai/Root/Search/TCell/WorldCupTCell.swift
@@ -28,7 +28,12 @@
                                label_hotNum.text = "\(model.heat)"
                                label_desc.text = model.content
                                img_cover.sd_setImage(with: URL(string: model.coverImg))
                                label_dealTime.text = "截止报名:\(model.registrationClosingTime)"
                                if model.registrationClosingTime == nil{
                                                label_dealTime.text = "截止报名:无截止时间"
                                }else{
                                                label_dealTime.text = "截止报名:\(model.registrationClosingTime!)"
                                }
                                label_age.text = model.age + "岁"
                }
}
WanPai/Root/Search/VC/JudgeListVC.swift
@@ -80,9 +80,10 @@
extension JudgeListVC:UITableViewDelegate{
                func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
                                let model = viewModel.dataSource.value[indexPath.row]
                                guard model.status != .cancel else {return}
                                let vc = MatchDetailVC(model: model)
                                push(vc: vc)
                                if model.status == .ongoing{
                                                let vc = MatchDetailVC(model: model)
                                                push(vc: vc)
                                }
                }
}
WanPai/Root/Search/VC/MatchDetailVC.swift
@@ -24,7 +24,7 @@
                @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!
                @IBOutlet weak var label_matchPoint: UILabel!
@@ -33,7 +33,7 @@
                @IBOutlet weak var redStackView: UIStackView!
                @IBOutlet weak var blueStackView: UIStackView!
                @IBOutlet weak var btn_handle: UIButton!
                private var redTeamItems = [WorldCupPeopleModel]()
                private var blueTeamItems = [WorldCupPeopleModel]()
                private var model:WorldCupJudgeModel!
@@ -43,16 +43,16 @@
                                super.init(nibName: nil, bundle: nil)
                                self.model = model
                }
                required init?(coder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
                override func viewDidLoad() {
        super.viewDidLoad()
                                super.viewDidLoad()
                                title = model.name
                                view.backgroundColor = .white
    }
                }
                override func setUI() {
                                view_red1.isHidden = true
@@ -238,16 +238,16 @@
                                                                tempArray.append(TempModel(id: blue.id, participantType: blue.participantType, type: "blue").toJSON()!)
                                                }
                                                CommonAlertView.show(title: "提示", content: "确认开启当前比赛吗?") {[weak self] status in
                                                CommonAlertView.show(title: "提示", content: "确认开启当前比赛吗?",cancelStr: "关闭") {[weak self] status in
                                                                guard let weakSelf = self else { return }
                                                                if status{
                                                                                Services.startWorldCup(code: devCode, people: tempArray.jq_toJson1(), worldCupId: weakSelf.model.id).subscribe(onNext: {data in
                                                                                                if let _ = data.data{
                                                                                                                weakSelf.btn_handle.isEnabled = false
                                                                                                                alert(msg: "比赛已开始")
                                                                                                                DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
                                                                                                                                weakSelf.navigationController?.popViewController()
                                                                                                                }
                                                                                                                alert(msg: "比赛开始")
                                                                                                                weakSelf.redTeamItems.removeAll()
                                                                                                                weakSelf.blueTeamItems.removeAll()
                                                                                                                weakSelf.updateUserView()
                                                                                                }
                                                                                }).disposed(by: weakSelf.disposeBag)
                                                                }
@@ -274,5 +274,5 @@
                                                present(scan, animated: true)
                                }
                }
}
WanPai/Root/Search/VC/MatchDetailVC.xib
@@ -40,7 +40,7 @@
            <subviews>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Lx-0R-Sfa">
                    <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
                    <color key="backgroundColor" red="0.098039215686274508" green="0.18431372549019609" blue="0.44705882352941173" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
                    <color key="backgroundColor" red="0.098039215686274508" green="0.18431372549019609" blue="0.44705882352941173" alpha="0.90000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                </view>
                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_ad" translatesAutoresizingMaskIntoConstraints="NO" id="Mp4-s0-svz">
                    <rect key="frame" x="0.0" y="-100" width="453" height="918"/>
@@ -75,19 +75,19 @@
                            </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="ohX-Ys-LLn">
                            <rect key="frame" x="50.000000000000007" y="120.33333333333337" width="84.666666666666686" height="17"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
                            <color key="textColor" red="0.95686274510000002" green="0.97254901959999995" blue="0.98431372549999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="所属场地:--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="api-DT-2Ga">
                            <rect key="frame" x="258.33333333333331" y="120.33333333333337" width="84.666666666666686" height="17"/>
                            <rect key="frame" x="50.000000000000007" y="47" width="84.666666666666686" height="17"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
                            <color key="textColor" red="0.95686274510000002" green="0.97254901959999995" blue="0.98431372549999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设备信息" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YhX-W2-lV6">
                            <rect key="frame" x="50" y="93.333333333333371" width="57.333333333333343" height="17"/>
                            <rect key="frame" x="50" y="20" width="57.333333333333343" height="17"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
                            <color key="textColor" red="0.95686274510000002" green="0.97254901959999995" blue="0.98431372549999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="所属场地:--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="api-DT-2Ga">
                            <rect key="frame" x="50.000000000000007" y="74" width="84.666666666666686" height="17"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
                            <color key="textColor" red="0.95686274510000002" green="0.97254901959999995" blue="0.98431372549999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
@@ -95,13 +95,13 @@
                    </subviews>
                    <constraints>
                        <constraint firstItem="Irm-Cr-MTn" firstAttribute="leading" secondItem="t22-L5-pNm" secondAttribute="leading" constant="50" id="3rp-0Z-Qwm"/>
                        <constraint firstItem="api-DT-2Ga" firstAttribute="trailing" secondItem="Irm-Cr-MTn" secondAttribute="trailing" id="5ZY-iW-zQk"/>
                        <constraint firstAttribute="bottom" secondItem="Irm-Cr-MTn" secondAttribute="bottom" constant="18" id="6Id-bE-iUp"/>
                        <constraint firstItem="YhX-W2-lV6" firstAttribute="top" secondItem="t22-L5-pNm" secondAttribute="top" constant="20" id="Dh7-6i-5tB"/>
                        <constraint firstItem="api-DT-2Ga" firstAttribute="top" secondItem="ohX-Ys-LLn" secondAttribute="bottom" constant="10" id="PAa-ii-7dm"/>
                        <constraint firstItem="ohX-Ys-LLn" firstAttribute="leading" secondItem="Irm-Cr-MTn" secondAttribute="leading" id="b1Z-1C-bF9"/>
                        <constraint firstItem="api-DT-2Ga" firstAttribute="centerY" secondItem="ohX-Ys-LLn" secondAttribute="centerY" id="hW6-K4-aMF"/>
                        <constraint firstItem="ohX-Ys-LLn" firstAttribute="leading" secondItem="YhX-W2-lV6" secondAttribute="leading" id="hdc-Bh-kzQ"/>
                        <constraint firstItem="ohX-Ys-LLn" firstAttribute="top" secondItem="YhX-W2-lV6" secondAttribute="bottom" constant="10" id="jmI-FW-Qgm"/>
                        <constraint firstItem="Irm-Cr-MTn" firstAttribute="top" secondItem="ohX-Ys-LLn" secondAttribute="bottom" constant="15" id="tnE-mo-ybC"/>
                        <constraint firstItem="api-DT-2Ga" firstAttribute="leading" secondItem="YhX-W2-lV6" secondAttribute="leading" id="mdi-J6-um5"/>
                        <constraint firstAttribute="trailing" secondItem="Irm-Cr-MTn" secondAttribute="trailing" constant="50" id="yMS-xi-PG3"/>
                    </constraints>
                </view>
@@ -130,7 +130,7 @@
                    </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="J3j-Sw-JFA">
                    <rect key="frame" x="192.33333333333334" y="89" width="28.666666666666657" height="17"/>
                    <rect key="frame" x="182.33333333333334" y="89" width="28.666666666666657" height="17"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="28.666666666666657" id="we1-a5-5EW"/>
                    </constraints>
@@ -139,13 +139,13 @@
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RED" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ewM-XU-TUF">
                    <rect key="frame" x="146" y="89" width="36.333333333333343" height="17"/>
                    <rect key="frame" x="144.66666666666666" y="89" width="27.666666666666657" height="17"/>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                    <nil key="highlightedColor"/>
                </label>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fgq-No-gPy">
                    <rect key="frame" x="231" y="82.666666666666671" width="30" height="30"/>
                    <rect key="frame" x="221" y="82.666666666666671" width="30" height="30"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="30" id="Fd3-ah-9BK"/>
                        <constraint firstAttribute="width" constant="30" id="HTZ-8V-Hze"/>
@@ -408,6 +408,7 @@
                <constraint firstItem="PHe-Tf-02i" firstAttribute="centerX" secondItem="UgK-2f-Czf" secondAttribute="centerX" id="3Ys-OJ-Zeg"/>
                <constraint firstAttribute="bottomMargin" secondItem="Mp4-s0-svz" secondAttribute="bottom" id="4Wx-ez-kmY"/>
                <constraint firstItem="Mp4-s0-svz" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="4vc-K6-Zgw"/>
                <constraint firstItem="J3j-Sw-JFA" firstAttribute="centerX" secondItem="UgK-2f-Czf" secondAttribute="centerX" id="9BH-JN-IQb"/>
                <constraint firstItem="DWj-Io-Gyo" firstAttribute="centerY" secondItem="PHe-Tf-02i" secondAttribute="centerY" id="9ld-fM-YQ7"/>
                <constraint firstItem="7Lx-0R-Sfa" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="ANk-R7-pWs"/>
                <constraint firstItem="PHe-Tf-02i" firstAttribute="top" secondItem="0Qm-bc-Lz6" secondAttribute="bottom" constant="20" id="CmA-gL-adv"/>
@@ -428,9 +429,7 @@
                <constraint firstItem="Mp4-s0-svz" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="-100" id="jDc-pE-715"/>
                <constraint firstItem="fgq-No-gPy" firstAttribute="leading" secondItem="J3j-Sw-JFA" secondAttribute="trailing" constant="10" id="lGe-Qq-MOP"/>
                <constraint firstItem="IM3-iJ-n3i" firstAttribute="centerX" secondItem="UgK-2f-Czf" secondAttribute="centerX" id="lGl-2M-6nl"/>
                <constraint firstItem="ewM-XU-TUF" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="146" id="m92-2t-84l"/>
                <constraint firstItem="J3j-Sw-JFA" firstAttribute="leading" secondItem="ewM-XU-TUF" secondAttribute="trailing" constant="10" id="n9u-su-mxT"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="fgq-No-gPy" secondAttribute="trailing" constant="132" id="oK6-Sq-J93"/>
                <constraint firstItem="Mp4-s0-svz" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" constant="60" id="pcf-l6-NAl"/>
                <constraint firstItem="J3j-Sw-JFA" firstAttribute="centerY" secondItem="ewM-XU-TUF" secondAttribute="centerY" id="sN2-la-Oom"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="t22-L5-pNm" secondAttribute="bottom" id="t8q-DK-9CO"/>
WanPai/Root/Search/VC/MeQRCodeVC.swift
@@ -19,7 +19,7 @@
                                title = "我的二维码"
                                Services.queryProtocol(.matchStore, progress: false).subscribe(onNext: {[weak self] text in
                                Services.queryProtocol(.useStore, progress: false).subscribe(onNext: {[weak self] text in
                                                self?.label_content.text = (text.data ?? "").jq_filterFromHTML_1()
                                }).disposed(by: disposeBag)
                }
WanPai/Root/Search/VC/SearchVC.swift
@@ -21,8 +21,8 @@
                var benefitHomeModel:BenefitHomeModel?
                private var models = [StartClouseExploreModel]()
                private var items = ["我的二维码","我的预约","社区世界杯","已报名活动","我的运动营","人员管理","我的券包","兑换记录","消费记录","积分明细","我的玩湃币"]
                private var itemsImg = ["me_code","me_yard","me_wordCup","me_activity","me_camp","me_judge","me_coupons","me_withdrawRec","me_consume","me_coin","me_payCoin","me_judge"]
                private var items = ["我的二维码","我的订场","社区世界杯","已报名活动","我的运动营","人员管理","我的券包","兑换记录","消费记录","积分明细","我的玩湃币"]
                private var itemsImg = ["me_code","me_yard","me_wordCup","me_activity","me_camp","me_peoples","me_coupons","me_withdrawRec","me_consume","me_coin","me_payCoin","me_judge"]
                override func viewDidDisappear(_ animated: Bool) {
                                super.viewDidDisappear(animated)
@@ -138,7 +138,7 @@
                                                                case "我的二维码":
                                                            let vc    = MeQRCodeVC()
                                                                push(vc: vc)
                                                                case "我的预约":
                                                                case "我的订场":
                                                                let vc = YardBookingListVC()
                                                                push(vc: vc)
                                                                case "社区世界杯":
WanPai/Root/Search/VC/SearchVC.xib
@@ -1,10 +1,10 @@
<?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"/>
    <accessibilityOverrides/>
    <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="System colors in document resources" minToolsVersion="11.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -29,11 +29,11 @@
            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Jbe-CY-MmI">
                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jbe-CY-MmI">
                    <rect key="frame" x="0.0" y="59" width="393" height="759"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w1y-Zq-96N">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="1140.6666666666667"/>
                            <rect key="frame" x="0.0" y="0.0" width="393" height="1160.3333333333333"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Yu-z5-de2">
                                    <rect key="frame" x="0.0" y="0.0" width="393" height="300"/>
@@ -186,7 +186,7 @@
                                    </constraints>
                                </view>
                                <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="W2A-PE-Zq8">
                                    <rect key="frame" x="26" y="923.66666666666663" width="341" height="161.99999999999989"/>
                                    <rect key="frame" x="26" y="943.33333333333348" width="341" height="162"/>
                                    <subviews>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Lz2-Km-ydI" customClass="TapBtn" customModule="WanPai" customModuleProvider="target">
                                            <rect key="frame" x="0.0" y="0.0" width="162.66666666666666" height="162"/>
@@ -195,7 +195,7 @@
                                                    <rect key="frame" x="15" y="15" width="45" height="38"/>
                                                </imageView>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CONTACTS US" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0Md-SF-0cM">
                                                    <rect key="frame" x="13.999999999999993" y="72.000000000000114" width="109.33333333333331" height="22"/>
                                                    <rect key="frame" x="13.999999999999993" y="71.999999999999886" width="109.33333333333331" height="22"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="22" id="HM2-qC-zym"/>
                                                    </constraints>
@@ -204,7 +204,7 @@
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="客服中心" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y6t-EV-EyM">
                                                    <rect key="frame" x="15" y="99.000000000000114" width="65.333333333333329" height="22"/>
                                                    <rect key="frame" x="15" y="98.999999999999886" width="65.333333333333329" height="22"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="22" id="duk-64-lzR"/>
                                                    </constraints>
@@ -239,7 +239,7 @@
                                                    <rect key="frame" x="15" y="15" width="48" height="36"/>
                                                </imageView>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ABOUT US" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qdw-6R-Ebr">
                                                    <rect key="frame" x="14" y="70.000000000000114" width="79.666666666666671" height="22"/>
                                                    <rect key="frame" x="14" y="69.999999999999886" width="79.666666666666671" height="22"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="22" id="xax-sJ-ZYz"/>
                                                    </constraints>
@@ -248,7 +248,7 @@
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="关于玩湃" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bus-yA-9bf">
                                                    <rect key="frame" x="15" y="97.000000000000114" width="65.333333333333329" height="22"/>
                                                    <rect key="frame" x="15" y="96.999999999999886" width="65.333333333333329" height="22"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="22" id="Z4Q-9e-vKA"/>
                                                    </constraints>
@@ -285,9 +285,9 @@
                                    </constraints>
                                </stackView>
                                <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="GVG-mQ-5A4">
                                    <rect key="frame" x="0.0" y="650" width="393" height="235.66666666666663"/>
                                    <rect key="frame" x="0.0" y="650" width="393" height="255.33333333333337"/>
                                    <constraints>
                                        <constraint firstAttribute="width" secondItem="GVG-mQ-5A4" secondAttribute="height" multiplier="1:0.6" id="X5h-hG-CdI"/>
                                        <constraint firstAttribute="width" secondItem="GVG-mQ-5A4" secondAttribute="height" multiplier="1:0.65" id="X5h-hG-CdI"/>
                                    </constraints>
                                    <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="QDn-jj-8xs">
                                        <size key="itemSize" width="128" height="128"/>
WanPai/Root/Search/VC/StudentsManagerListVC.swift
@@ -60,7 +60,7 @@
                                                                guard let weakSelf = self else { return }
                                                                if status{
                                                                                let m = weakSelf.viewModel.dataSource.value[index.row]
                                                                                Services.deleParticipant(id: m.id).subscribe(onNext: { data in
                                                                                Services.deleParticipant(id: m.id,isStudent: m.isStudent).subscribe(onNext: { data in
                                                                                                weakSelf.viewModel.beginRefresh()
                                                                                }).disposed(by: weakSelf.disposeBag)
                                                                }
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.swift
@@ -74,10 +74,13 @@
                                }
                                bannerView.setItems(items: items)
                                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)
                                if let endDate = detailModel.registrationClosingTime{
                                                let endDateTimeInterval = Date.jq_StringToTimeInterval(endDate, "yyyy-MM-dd HH:mm")
                                                if endDateTimeInterval < Date().timeIntervalSince1970{
                                                                btn_enroll.setTitle("报名已截止", for: .normal)
                                                                btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                btn_enroll.isEnabled = false
                                                }
                                }
@@ -85,7 +88,14 @@
                                label_title.text = detailModel.name
                                label_hot.text = "\(detailModel.heat)"
                                label_duetime.text = detailModel.registrationClosingTime
                                if detailModel.registrationClosingTime != nil{
                                                label_duetime.text = detailModel.registrationClosingTime
                                }else{
                                                label_duetime.text = "无截止时间"
                                }
                                label_starttime.text = detailModel.startTime
                                label_endtime.text = detailModel.endTime
                                label_ageScope.text = detailModel.age + "岁"
@@ -94,14 +104,13 @@
                                                case 2:label_genderCond.text = "女"
                                                default:label_genderCond.text = "全部"
                                }
                                label_city.text = ""
                                label_city.text = [detailModel.province,detailModel.city].joined(separator: "|")
                                label_address.text = detailModel.address
                                label_matchPoint.text = detailModel.storeInfos.map({$0.name}).joined(separator: "、")
                                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)课时/人"
                }
                override func setRx() {
@@ -148,8 +157,7 @@
                                }
                                StoresInfoView.show(detailModel.storeInfos.first ?? ActivityDetailStoreModel()) {[weak self] status in
                                StoresInfoView.show(detailModel.storeInfos.first ?? ActivityDetailStoreModel(),type: .worldCup) {[weak self] status in
                                                guard let weakSelf = self else { return }
                                                if status{
                                                                var result = [Dictionary<String,Int>]()
@@ -161,9 +169,9 @@
                                                                var paiCoin:Int = 0
                                                                var classHour:Int = 0
                                                                money = weakSelf.detailModel.cash
                                                                paiCoin = weakSelf.detailModel.paiCoin
                                                                classHour = weakSelf.detailModel.classHour
                                                                money = weakSelf.detailModel.cash * Double(weakSelf.students.count)
                                                                paiCoin = weakSelf.detailModel.paiCoin * weakSelf.students.count
                                                                classHour = weakSelf.detailModel.classHour * weakSelf.students.count
                                                                if money == 0 && paiCoin == 0 && classHour == 0{
                                                                                weakSelf.payment(payType: .free, result: result)
@@ -173,6 +181,9 @@
                                                                                                weakSelf.payment(payType: payType, result: result)
                                                                                }
                                                                }
                                                }else{
                                                                weakSelf.navigationController?.popToRootViewController(animated: true)
                                                                NotificationCenter.default.post(name: ChooseHomeStore_Noti, object: nil)
                                                }
                                }
                }
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.xib
@@ -444,7 +444,7 @@
                                                        <constraint firstAttribute="height" constant="1" id="2Ww-G7-0ug"/>
                                                    </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="oPd-tE-l3b">
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="比赛费用" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oPd-tE-l3b">
                                                    <rect key="frame" x="14" y="15" width="365" height="21"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                                                    <nil key="textColor"/>
WanPai/Root/Search/VC/WorldCupContentApplyVC.swift
@@ -72,7 +72,12 @@
                                                                self?.label_title.text = model.name
                                                                self?.label_hot.text = "\(model.heat)"
                                                                self?.label_duetime.text = model.registrationClosingTime
                                                                if model.registrationClosingTime == nil{
                                                                                self?.label_duetime.text = "无截止时间"
                                                                }else{
                                                                                self?.label_duetime.text = model.registrationClosingTime
                                                                }
                                                                self?.label_starttime.text = model.startTime
                                                                self?.label_endtime.text = model.endTime
                                                                self?.label_ageScope.text = model.age + "岁"
@@ -81,7 +86,7 @@
                                                                                case 2:self?.label_genderCond.text = "女"
                                                                                default:self?.label_genderCond.text = "全部"
                                                                }
                                                                self?.label_city.text = ""
                                                                self?.label_city.text = [model.province,model.city].joined(separator: "|")
                                                                self?.label_address.text = model.address
                                                                self?.label_matchPoint.text = model.storeInfos.map({$0.name}).joined(separator: "、")
@@ -98,7 +103,7 @@
                                                                }
                                                                if model.classHour == 0{
                                                                                self?.label_pay_coin.text = "免费"
                                                                                self?.label_pay_course.text = "免费"
                                                                }else{
                                                                                self?.label_pay_course.text = "\(model.classHour)课时/人"
                                                                }
@@ -107,12 +112,17 @@
                                                                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)
                                                                if let endDate = model.registrationClosingTime{
                                                                                let endDateTimeInterval = Date.jq_StringToTimeInterval(endDate, "yyyy-MM-dd HH:mm")
                                                                                if endDateTimeInterval < Date().timeIntervalSince1970{
                                                                                                self?.btn_enroll.setTitle("报名已截止", for: .normal)
                                                                                                self?.btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                                                self?.btn_enroll.isEnabled = false
                                                                                }
                                                                }
                                                                self?.detailModel = model
                                                }
                                }).disposed(by: disposeBag)
WanPai/Root/Search/VC/WorldCupContentApplyVC.xib
@@ -443,7 +443,7 @@
                                                        <constraint firstAttribute="height" constant="1" id="pmf-vb-0Ww"/>
                                                    </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="H2m-qM-cUy">
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="比赛费用" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H2m-qM-cUy">
                                                    <rect key="frame" x="14" y="15" width="365" height="21"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                                                    <nil key="textColor"/>
WanPai/Root/Search/VC/WorldCupContentDetailVC.swift
@@ -68,7 +68,12 @@
                                                                self?.bannerView.setItems(items: items)
                                                                self?.label_title.text = model.name
                                                                self?.label_hot.text = "\(model.heat)"
                                                                self?.label_duetime.text = model.registrationClosingTime
                                                                if model.registrationClosingTime == nil{
                                                                                self?.label_duetime.text = "无截止时间"
                                                                }else{
                                                                                self?.label_duetime.text = model.registrationClosingTime
                                                                }
                                                                self?.label_starttime.text = model.startTime
                                                                self?.label_endtime.text = model.endTime
                                                                self?.label_ageScope.text = model.age + "岁"
@@ -80,10 +85,29 @@
                                                                                self?.label_joinCondition.text = "仅限女生"
                                                                }
                                                                self?.label_introducion.text = model.intro
                                                                self?.label_money.text = "¥\(model.unitPrice.jq_formatFloat)/人"
                                                                self?.label_money_total.text = String(format: "合计:¥%.2f", model.expense)
                                                                switch model.payType {
                                                                                case .aliPay,.wechat:
                                                                                                self?.label_money.text = "¥\(model.unitPrice.jq_formatFloat)/人"
                                                                                                self?.label_money_total.text = String(format: "合计:¥%.2f", model.expense)
                                                                                case .coin:
                                                                                                self?.label_money.text = "\(model.unitPrice.jq_formatFloat) 玩湃币/人"
                                                                                                self?.label_money_total.text = String(format: "合计:%.2f 玩湃币", model.expense)
                                                                                case .courseNum:
                                                                                                self?.label_money.text = "\(model.unitPrice.jq_formatFloat) 课时/人"
                                                                                                self?.label_money_total.text = String(format: "合计:%.2f 课时", model.expense)
                                                                                case .free:
                                                                                                self?.label_money.text = "免费"
                                                                                                self?.label_money_total.text = "免费"
                                                                                default:
                                                                                                self?.label_money.text = "未知"
                                                                                                self?.label_money_total.text = "未知"
                                                                }
                                                                self?.label_address.text = model.address
                                                                self?.label_city.text = ""
                                                                self?.label_city.text = [model.province,model.city].joined(separator: "|")
                                                                self?.label_matchStore.text = model.storeInfos.map({$0.name}).joined(separator: "、")
                                                                self?.btn_moreMatchStore.isHidden = model.storeInfos.count == 1
                                                                self?.tableView.reloadData()
@@ -91,11 +115,37 @@
                                                                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)
                                                                switch model.status {
                                                                                case .cancel:
                                                                                                self?.btn_enroll.setTitle("已取消", for: .normal)
                                                                                                self?.btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                                                self?.btn_enroll.isEnabled = false
                                                                                case .over:
                                                                                                self?.btn_enroll.setTitle("已结束", for: .normal)
                                                                                                self?.btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                                                self?.btn_enroll.isEnabled = false
                                                                                default:break
                                                                }
                                                                if let endDate = model.registrationClosingTime{
                                                                                let endDateTimeInterval = Date.jq_StringToTimeInterval(endDate, "yyyy-MM-dd HH:mm")
                                                                                if Date.jq_CalByDays(startDate: Date(), endDate: Date(timeIntervalSince1970: endDateTimeInterval)) <= 1{
                                                                                                self?.btn_enroll.setTitle("取消", for: .normal)
                                                                                                self?.btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                                                self?.btn_enroll.isEnabled = false
                                                                                }
                                                                                if endDateTimeInterval < Date().timeIntervalSince1970{
                                                                                                self?.btn_enroll.setTitle("报名已截止", for: .normal)
                                                                                                self?.btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                                                self?.btn_enroll.isEnabled = false
                                                                                }
                                                                }
                                                }
                                }).disposed(by: disposeBag)
                }
@@ -128,6 +178,21 @@
                                let text = detailModel.storeInfos.map({$0.name}).joined(separator: "、")
                                AgreentView.show(type: .matchPoint, content: text)
                }
                @IBAction func cancelAction(_ sender: UIButton) {
                                guard let m = detailModel else { return  }
                                CommonAlertView.show(title: "提示", content: "是否确认取消?") {[weak self] state in
                                                guard let weakSelf = self else { return }
                                                if state{
                                                                Services.cancelMyWorldCup(id: m.id).subscribe(onNext: { data in
                                                                                sender.setTitle("已取消", for: .normal)
                                                                                sender.backgroundColor = .gray.withAlphaComponent(0.5)
                                                                                sender.isEnabled = false
                                                                                NotificationCenter.default.post(name: WorldCupRefresh_Noti, object: nil)
                                                                }).disposed(by: weakSelf.disposeBag)
                                                }
                                }
                }
}
extension WorldCupContentDetailVC:UITableViewDelegate{
WanPai/Root/Search/VC/WorldCupContentDetailVC.xib
@@ -639,6 +639,9 @@
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                    <state key="normal" title="取消"/>
                    <connections>
                        <action selector="cancelAction:" destination="-1" eventType="touchUpInside" id="zIz-pF-pa2"/>
                    </connections>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
WanPai/Root/Search/VC/WorldCupContentVC.swift
@@ -9,6 +9,8 @@
import RxSwift
import RxRelay
let WorldCupRefresh_Noti = Notification.Name.init("WorldCupRefresh_Noti")
class WorldCupContentViewModel:RefreshModel<WorldCupListModel>{
                var studentID = BehaviorRelay<Int>(value:0)
@@ -71,6 +73,10 @@
                                                                self?.viewModel.beginRefresh()
                                                }
                                }).disposed(by: disposeBag)
                                NotificationCenter.default.rx.notification(WorldCupRefresh_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] _ in
                                                self?.viewModel.beginRefresh()
                                }).disposed(by: disposeBag)
                }
}
WanPai/Root/Welfare/VC/RechargeRecordVC.swift
@@ -12,120 +12,125 @@
import RxRelay
class RechargeRecordViewModel:RefreshModel<BillingModel>{
    var coin = BehaviorRelay<Int>(value: 0)
    var type = BehaviorRelay<Int?>(value: nil)
    var subType = BehaviorRelay<RechargeRecordVC.RechargeRecordType>(value: .coin)
    var yearMonth = BehaviorRelay<String>(value: "")
    override func api() -> (Observable<BaseResponse<[BillingModel]>>)? {
        return Services.voucherDetail(recordType: type.value, yearMonth: yearMonth.value,page: page,pageSize: pageSize, subType: subType.value)
    }
                var coin = BehaviorRelay<Int>(value: 0)
                var type = BehaviorRelay<Int?>(value: nil)
                var subType = BehaviorRelay<RechargeRecordVC.RechargeRecordType>(value: .coin)
                var yearMonth = BehaviorRelay<String>(value: "")
                override func api() -> (Observable<BaseResponse<[BillingModel]>>)? {
                                return Services.voucherDetail(recordType: type.value, yearMonth: yearMonth.value,page: page,pageSize: pageSize, subType: subType.value)
                }
}
class RechargeRecordVC: BaseVC {
    enum RechargeRecordType {
        case coin //玩湃币
        case integral //积分
    }
    @IBOutlet weak var view_topBg: UIView!
    @IBOutlet weak var view_cion: JQ_RollNumberLabel!
    @IBOutlet weak var btn_rechange: UIButton!
    @IBOutlet weak var view_container: UIView!
    @IBOutlet weak var tableView: BaseTableView!
    @IBOutlet weak var btn_filter: QMUIButton!
    @IBOutlet weak var btn_date: UIButton!
    private let viewModel = RechargeRecordViewModel()
    required init(coin:Int,subtype:RechargeRecordType) {
        super.init(nibName: nil, bundle: nil)
        self.viewModel.coin.accept(coin)
        self.viewModel.subType.accept(subtype)
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        view_cion.font = UIFont.init(name: "Impact", size: 36)!
        view_cion.textColor = .white
        btn_rechange.isHidden = viewModel.subType.value == .integral
        title = viewModel.subType.value == .coin ? "充值明细":"积分明细"
        viewModel.beginRefresh()
    }
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        self.view_cion.valueNumber = NSNumber(value: self.viewModel.coin.value)
    }
    override func setUI() {
        btn_filter.imagePosition = .right
        btn_filter.spacingBetweenImageAndTitle = 3
        view_container.jq_addShadows(shadowColor: UIColor(hexStr: "#D5D5D5").withAlphaComponent(0.5), corner: 10, radius: 4, offset: CGSize(width: 0, height: 2), opacity: 1)
        tableView.delegate = self
        tableView.dataSource = self
        tableView.separatorStyle = .none
        tableView.register(UINib(nibName: "BillInfoTCell", bundle: nil), forCellReuseIdentifier:"_BillInfoTCell")
//        tableView.jq_setEmptyView()
        viewModel.yearMonth.accept(Date().jq_format("yyyy-MM"))
        btn_date.setTitle("\(Date().jq_format("yyyy年MM月"))>", for: .normal)
        viewModel.configure(tableView)
    }
    override func setRx() {
        NotificationCenter.default.rx.notification(UpdateWelfare_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] noti in
            guard let weakSelf = self else { return }
            Services.benefitHome().subscribe(onNext: {[weak self] data in
                if let model = data.data{
                    self?.viewModel.coin.accept(model.wpCoin)
                    self?.viewModel.beginRefresh()
                enum RechargeRecordType {
                                case coin //玩湃币
                                case integral //积分
                }
            }) { error in
            }.disposed(by: weakSelf.disposeBag)
        }).disposed(by: disposeBag)
    }
                @IBOutlet weak var view_topBg: UIView!
                @IBOutlet weak var view_cion: JQ_RollNumberLabel!
                @IBOutlet weak var btn_rechange: UIButton!
                @IBOutlet weak var view_container: UIView!
                @IBOutlet weak var tableView: BaseTableView!
                @IBOutlet weak var btn_filter: QMUIButton!
                @IBOutlet weak var btn_date: UIButton!
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        let colors = [UIColor(hexStr: "#FD8C02").cgColor,
                      UIColor(hexStr: "#FD7202").cgColor,]
        view_topBg.jq_gradientColor(colorArr: colors,bounds: CGRect(x: 0, y: 0, width: JQ_ScreenW, height: JQ_ScreenW * 0.5923))
        btn_rechange.jq_gradientNibColor(colorArr: colors, cornerRadius: 20)
    }
    @IBAction func datetimeAction(_ sender: UIButton) {
        CommonDatePickerView.show(before: 3, after: 0, type: .YM) {[weak self] year, month, day,_,_ in
            self?.btn_date.setTitle(String(format: "%ld年%02ld月>", year!,month!), for: .normal)
            self?.viewModel.yearMonth.accept(String(format: "%ld-%02ld", year!,month!))
            self?.viewModel.beginRefresh()
        }
    }
                private let viewModel = RechargeRecordViewModel()
    @IBAction func filterAction(_ sender: QMUIButton) {
        JQ_MenuView().show(self, tapView: sender, items: ["全部记录","充值","扣除"], tableHei: 150) {[weak self] index, str in
            self?.btn_filter.setTitle(str, for: .normal)
            if index == 0{
                self?.viewModel.type.accept(nil)
            }else{
                self?.viewModel.type.accept(index)
            }
            self?.viewModel.beginRefresh()
        }
    }
                required init(coin:Int,subtype:RechargeRecordType) {
                                super.init(nibName: nil, bundle: nil)
                                self.viewModel.coin.accept(coin)
                                self.viewModel.subType.accept(subtype)
                }
    @IBAction func rechargeAction(_ sender: UIButton) {
        let vc = RechargeCenterVC()
        push(vc: vc)
    }
                required init?(coder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
                override func viewDidLoad() {
                                super.viewDidLoad()
                                view_cion.font = UIFont.init(name: "Impact", size: 36)!
                                view_cion.textColor = .white
                                btn_rechange.isHidden = viewModel.subType.value == .integral
                                title = viewModel.subType.value == .coin ? "充值明细":"积分明细"
                                viewModel.beginRefresh()
                }
                override func viewDidAppear(_ animated: Bool) {
                                super.viewDidAppear(animated)
                                self.view_cion.valueNumber = NSNumber(value: self.viewModel.coin.value)
                }
                override func setUI() {
                                btn_filter.imagePosition = .right
                                btn_filter.spacingBetweenImageAndTitle = 3
                                view_container.jq_addShadows(shadowColor: UIColor(hexStr: "#D5D5D5").withAlphaComponent(0.5), corner: 10, radius: 4, offset: CGSize(width: 0, height: 2), opacity: 1)
                                tableView.delegate = self
                                tableView.dataSource = self
                                tableView.separatorStyle = .none
                                tableView.register(UINib(nibName: "BillInfoTCell", bundle: nil), forCellReuseIdentifier:"_BillInfoTCell")
                                //        tableView.jq_setEmptyView()
                                viewModel.yearMonth.accept(Date().jq_format("yyyy-MM"))
                                btn_date.setTitle("\(Date().jq_format("yyyy年MM月"))>", for: .normal)
                                if viewModel.subType.value == .coin{
                                                viewModel.configure(tableView,needMore: true)
                                }else{
                                                viewModel.configure(tableView,needMore: false)
                                }
                }
                override func setRx() {
                                NotificationCenter.default.rx.notification(UpdateWelfare_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] noti in
                                                guard let weakSelf = self else { return }
                                                Services.benefitHome().subscribe(onNext: {[weak self] data in
                                                                if let model = data.data{
                                                                                self?.viewModel.coin.accept(model.wpCoin)
                                                                                self?.viewModel.beginRefresh()
                                                                }
                                                }) { error in
                                                }.disposed(by: weakSelf.disposeBag)
                                }).disposed(by: disposeBag)
                }
                override func viewDidLayoutSubviews() {
                                super.viewDidLayoutSubviews()
                                let colors = [UIColor(hexStr: "#FD8C02").cgColor,
                                                                                        UIColor(hexStr: "#FD7202").cgColor,]
                                view_topBg.jq_gradientColor(colorArr: colors,bounds: CGRect(x: 0, y: 0, width: JQ_ScreenW, height: JQ_ScreenW * 0.5923))
                                btn_rechange.jq_gradientNibColor(colorArr: colors, cornerRadius: 20)
                }
                @IBAction func datetimeAction(_ sender: UIButton) {
                                CommonDatePickerView.show(before: 3, after: 0, type: .YM) {[weak self] year, month, day,_,_ in
                                                self?.btn_date.setTitle(String(format: "%ld年%02ld月>", year!,month!), for: .normal)
                                                self?.viewModel.yearMonth.accept(String(format: "%ld-%02ld", year!,month!))
                                                self?.viewModel.beginRefresh()
                                }
                }
                @IBAction func filterAction(_ sender: QMUIButton) {
                                JQ_MenuView().show(self, tapView: sender, items: ["全部记录","充值","扣除"], tableHei: 150) {[weak self] index, str in
                                                self?.btn_filter.setTitle(str, for: .normal)
                                                if index == 0{
                                                                self?.viewModel.type.accept(nil)
                                                }else{
                                                                self?.viewModel.type.accept(index)
                                                }
                                                self?.viewModel.beginRefresh()
                                }
                }
                @IBAction func rechargeAction(_ sender: UIButton) {
                                let vc = RechargeCenterVC()
                                push(vc: vc)
                }
}
extension RechargeRecordVC:UITableViewDelegate{
@@ -133,14 +138,14 @@
}
extension RechargeRecordVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let model = viewModel.dataSource.value[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: "_BillInfoTCell") as! BillInfoTCell
        cell.billingModel = model
        return cell
    }
                func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                                let model = viewModel.dataSource.value[indexPath.row]
                                let cell = tableView.dequeueReusableCell(withIdentifier: "_BillInfoTCell") as! BillInfoTCell
                                cell.billingModel = model
                                return cell
                }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return viewModel.dataSource.value.count
    }
                func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
                                return viewModel.dataSource.value.count
                }
}
WanPai/Root/Welfare/VC/WorldCupIntroVC.swift
@@ -24,9 +24,12 @@
                                                                self.btn.imageView?.contentMode = .scaleAspectFit
                                                                self.btn.titleLabel?.font = UIFont.systemFont(ofSize: 15, weight: .medium)
                                                                self.webView.loadHTMLString(data.content.jq_wrapHtml(), baseURL: nil)
                                                                self.btn.isHidden =  data.turnId == 0
                                                                self.model = data
                                                }
                                }).disposed(by: disposeBag)
                                view.backgroundColor = .white
                }
@@ -34,13 +37,12 @@
                                webView = WKWebView(frame: .zero)
                                view.addSubview(webView)
                                webView.snp.makeConstraints { make in
                                                make.edges.equalToSuperview()
                                                make.edges.equalToSuperview().inset(UIEdgeInsets(top: 0, left: 0, bottom: 75, right: 0))
                                }
                                btn = UIButton(type: .custom)
                                btn.backgroundColor = Def_ThemeColor
                                btn.addTarget(self, action: #selector(jumpAction), for: .touchUpInside)
                                btn.setTitle("查看详情", for: .normal)
                                btn.setTitleColor(.white, for: .normal)
                                btn.cornerRadius = 20
                                view.addSubview(btn)