无故事王国
2024-04-12 5ff885af9af801927e688163171b26336ae6bc25
fix bug
29个文件已修改
2个文件已删除
2个文件已添加
514 ■■■■■ 已修改文件
WanPai/Assets.xcassets/Bg/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/Contents.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/bg_worldCup@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/bg_worldCup@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/底图@2x@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/底图@2x@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Base/BaseNav.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Common/VC/CommonWebVC.swift 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Config/Enums.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Model/CommonModels.swift 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Network/Services.swift 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.swift 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/CourseOnlineSubListVC.swift 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/StudentMentalListVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Games/TCell/GamesTCell.swift 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/Model/WorldCupModel.swift 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/HomeVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/WorldCupListVC.swift 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/LogOffVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/CustomerContentDetailVC.swift 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchVC.swift 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchVC.xib 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.swift 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.xib 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyVC.swift 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentApplyVC.xib 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupContentVC.swift 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupHeaderVC.xib 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupRankVC.swift 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupRecordVC.swift 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/WorldCupVC.swift 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareVC.swift 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/ViewModel/RefreshModel.swift 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/.DS_Store
Binary files differ
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/Contents.json
@@ -5,12 +5,12 @@
      "scale" : "1x"
    },
    {
      "filename" : "bg_worldCup@2x.png",
      "filename" : "底图@2x@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "bg_worldCup@3x.png",
      "filename" : "底图@2x@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/bg_worldCup@2x.png
Binary files differ
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/bg_worldCup@3x.png
Binary files differ
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/底图@2x@2x.png
WanPai/Assets.xcassets/Bg/bg_worldCup.imageset/底图@2x@3x.png
WanPai/Base/BaseNav.swift
@@ -17,7 +17,7 @@
                private var lucencyVCs = [RechargeRecordVC.self,RechargeCenterVC.self]
                /// 世界杯风格
                private var worldCupVCs = [SearchVC.self,WorldCupVC.self,WorldCupHeaderVC.self,WorldCupMenuVC.self,WorldCupContentVC.self,WorldCupRecordVC.self,WorldCupRankVC.self]
                private var worldCupVCs = [SearchVC.self,WorldCupVC.self,WorldCupHeaderVC.self,WorldCupMenuVC.self,WorldCupContentVC.self,WorldCupRecordVC.self,WorldCupRankVC.self,WorldCupListVC.self,WorldCupContentApplyVC.self,WorldCupContentApplyInputVC.self,WorldCupContentDetailVC.self]
                private let img = UIImage.jq_gradient([UIColor(hexStr: "#FD8C02"),UIColor(hexStr: "#FD7202")], size: CGSize(width: JQ_ScreenW, height: JQ_NavBarHeight), radius: 0, locations: [0,1], direction: .vertical)
WanPai/Common/VC/CommonWebVC.swift
@@ -21,6 +21,7 @@
                init(type:AgreentType,customTitle:String? = nil,content:String? = nil,needBackBtn:Bool = false) {
                                super.init(nibName: nil, bundle: nil)
                                self.type = type
                                self.customTitle = customTitle
                                self.content = content
                                self.needBackBtn = needBackBtn
                }
@@ -44,12 +45,12 @@
                                                }
                                                Services.queryProtocol(type,progress: false).subscribe(onNext: {[weak self] result in
                                                                if let text = result.data?.jq_wrapHtml(){
                                                                if let text = result.data?.jq_wrapHtml(edge: .init(top: 5, left:0, bottom: 0, right: 0)){
                                                                                self?.webView.loadHTMLString(text, baseURL: nil)
                                                                }
                                                }).disposed(by: disposeBag)
                                }else{
                                                webView.loadHTMLString(content?.jq_wrapHtml() ?? "", baseURL: nil)
                                                webView.loadHTMLString(content?.jq_wrapHtml(edge: .init(top: 5, left: 0, bottom: 0, right: 0)) ?? "", baseURL: nil)
                                }
                }
@@ -97,6 +98,12 @@
                }
                func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
                                let js = """
document.createElement('meta');script.name = 'viewport';script.content=\"width=device-width, initial-scale=1.0,maximum-scale=1.0, minimum-scale=1.0, user-scalable=no\";document.getElementsByTagName('head')[0].appendChild(script);var style = document.createElement('style');style.type='text/css';style.innerHTML='body{width:100%;height:auto;margin:auto;background-color:#ffffff}img{max-width:100%}p{word-wrap: break-word;color: #222;list-style-position: inside;list-style-type: square;margin-top: 17px;font-size: 18px;line-height: 1.76;border: none;outline: none;display: block;margin-block-start: 1em;margin-block-end: 1em;margin-inline-start: 0px;margin-inline-end: 0px;} p img {margin-bottom: -9px}';document.body.appendChild(style);
"""
                                webView.evaluateJavaScript(js)
                                switch type {
                                                case .user,.safe,.privacy:
                                                                view_btns.isHidden = false
WanPai/Config/Enums.swift
@@ -398,7 +398,7 @@
                                switch self {
                                                case .club:return "COURSE"
                                                case .sport:return "EVENTS"
                                                case .communtiy:return "ON_LINE"
                                                case .communtiy:return "KING"
                                                case .deepPlayer:return "APPOINTMENT"
                                                case .winner:return "TRIUMPH"
                                                case .counter:return "FIGHTING"
@@ -424,7 +424,7 @@
                    mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_1"), t1: "COURSE", t2: "俱乐部之星"))
                    mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_2"), t1: "EVENTS", t2: "运动大人"))
                    mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_3"), t1: "ON_LINE", t2: "社区之王"))
                    mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_3"), t1: "KING", t2: "社区之王"))
                    mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_4"), t1: "APPOINTMENT", t2: "深度玩家"))
                    mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_5"), t1: "EVENTS", t2: "月度冠军"))
                    mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_6"), t1: "MORE", t2: "更多"))*/
WanPai/Model/CommonModels.swift
@@ -178,6 +178,10 @@
                var sign = ""
                var timestamp:TimeInterval = 0
                var isStaff:Bool{
                                return orderString.isEmpty && returnId == 0 && siteBooking == 0 && appid.isEmpty && noncestr.isEmpty && package.isEmpty && partnerid.isEmpty && prepayid.isEmpty && sign.isEmpty && timestamp == 0
                }
}
struct StoreWalfareModel:HandyJSON{
@@ -607,6 +611,8 @@
                var commodityName: String = ""
                var commodityPrice: Double = 0
                var goodsType:ExchangeType = .goods
                var integral:Int = 0 //支付积分
                var redemptionMethod:Int = 0 //兑换方式(1=积分,2=积分+现金)
}
struct BillingModel:HandyJSON{
@@ -937,6 +943,7 @@
                var playCoin = 0
                var video = ""
                var intro = ""
                var gameType = 1  //1:普通游戏,2:世界杯
}
struct DoorModel:HandyJSON{
WanPai/Network/Services.swift
@@ -12,16 +12,14 @@
import JQTools
#if DEBUG
//let All_Url = "http://192.168.110.27:56666" //罗易胜
//let All_Url = "http://192.168.110.85:56666" //正式地址
//let All_Url = "http://192.168.110.80:56666" //正式地址
let All_Url = "http://221.182.45.100:56666"
let All_Url = "http://8.137.22.229:56666"
let Game_Url = "https://try.daowepark.com"
//let Socket_Url = "192.168.110.22"
#else
let All_Url = "http://8.137.22.229:56666" //正式地址
let Game_Url = "https://port.daowepark.com"//正式地址
//let Game_Url = "https://try.daowepark.com" //测试地址
//let Game_Url = "https://port.daowepark.com"//正式地址
let Game_Url = "https://try.daowepark.com"
//let Socket_Url = "192.168.110.22"
#endif
@@ -58,7 +56,7 @@
                }
                //支付游戏
                class func payGame(configId:Int,gameId:Int,spaceId:Int,sutuId:Int,type:PayType)->Observable<BaseResponse<PaymentModel>>{
                class func payGame(configId:Int,gameId:Int,spaceId:Int,sutuId:Int,type:PayType,gameType:Int)->Observable<BaseResponse<PaymentModel>>{
                                let params = ParamsAppender.build(url: All_Url)
                                                .interface(url: "/other/api/game/payGame")
                                                .append(key: "configId", value: configId)
@@ -66,6 +64,7 @@
                                                .append(key: "spaceId", value: spaceId)
                                                .append(key: "sutuId", value: sutuId)
                                                .append(key: "type", value: type.rawValue)
                                                .append(key: "gameType", value: gameType)
                                return NetworkRequest.request(params: params, method: .post, progress: false)
                }
WanPai/Root/Course/VC/AddStudentVC.swift
@@ -129,6 +129,14 @@
                                tf_gender.delegate = self
                }
//                override func setRx() {
//                                tf_idCard.rx.text.orEmpty.subscribe(onNext: { text in
//                                                if text.count == 18{
//                                                                print("---->")
//                                                }
//                                }).disposed(by: disposeBag)
//                }
                @objc func userImgUploadAction(){
                                JQ_ImagePickerTool.getSharedInstance().singleImage({ [weak self] image in
                                                self?.img_profile.image = image
WanPai/Root/Course/VC/CourseOnlineSubListVC.swift
@@ -34,15 +34,12 @@
            viewModel.configure(tableView)
            viewModel.beginRefresh()
            viewModel.classificationId.accept(classificationId!)
//        tableView.jq_setEmptyView()
    }
    init(classificationId:Int) {
        super.init(nibName: nil, bundle: nil)
        self.classificationId = classificationId
                                viewModel.classificationId.accept(classificationId)
    }
WanPai/Root/Course/VC/StudentMentalListVC.swift
@@ -58,7 +58,7 @@
                                                                                                case .club:
                                                                                                                self?.items.append(MentalInfo(icon: UIImage(named: "icon_coupon_1"), l1: "COURSE", l2: model.medalName, level: model.levelNum, info: String(format: "再上课打卡%@次可升级LV%ld", model.upgradeConditions,model.nextLevel), btnName: "去预约",medalType: model.medalType,isTopLevel: model.isTopLevel))
                                                                                                case .communtiy:
                                                                                                                self?.items.append(MentalInfo(icon: UIImage(named: "icon_coupon_3"), l1: "ON_LINE", l2: model.medalName, level: model.levelNum, info: String(format: "再预约场地%@次可升级LV%ld", model.upgradeConditions,model.nextLevel), btnName: "去预约",medalType: model.medalType,isTopLevel: model.isTopLevel))
                                                                                                                self?.items.append(MentalInfo(icon: UIImage(named: "icon_coupon_3"), l1: "KING", l2: model.medalName, level: model.levelNum, info: String(format: "再预约场地%@次可升级LV%ld", model.upgradeConditions,model.nextLevel), btnName: "去预约",medalType: model.medalType,isTopLevel: model.isTopLevel))
                                                                                                case .deepPlayer:
                                                                                                                self?.items.append(MentalInfo(icon: UIImage(named: "icon_coupon_4"), l1: "APPOINTMENT", l2: model.medalName, level: model.levelNum, info: String(format: "再完成课后练习%@次可升级LV%ld", model.upgradeConditions,model.nextLevel), btnName: "去完成",medalType: model.medalType,isTopLevel: model.isTopLevel))
                                                                                                case .sport:
WanPai/Root/Games/TCell/GamesTCell.swift
@@ -41,8 +41,15 @@
                                                guard let weakSelf = self else { return }
                                                PaymentView.show(enumType:.game,money: (ali: weakSelf.gameListModel.cash, wx: weakSelf.gameListModel.cash, coin: weakSelf.gameListModel.playCoin, course: nil,integral:weakSelf.gameListModel.integral)) { [weak self] payType in
                                                                guard let weakSelf = self else { return }
                                                                Services.payGame(configId: weakSelf.gameListModel.id, gameId: weakSelf.gameListModel.gameId, spaceId: weakSelf.storeId, sutuId: weakSelf.sutuId, type: payType).subscribe(onNext: {data in
                                                                Services.payGame(configId: weakSelf.gameListModel.id, gameId: weakSelf.gameListModel.gameId, spaceId: weakSelf.storeId, sutuId: weakSelf.sutuId, type: payType,gameType: weakSelf.gameListModel.gameType).subscribe(onNext: {data in
                                                                                if let m = data.data{
                                                                                                if m.isStaff{
                                                                                                                let vc = PaymentResultVC(result: .success, objType: .games)
                                                                                                                JQ_currentViewController().jq_push(vc: vc)
                                                                                                                return
                                                                                                }
                                                                                                switch payType {
                                                                                                                case .wechat:
                                                                                                                                YYPaymentManager.shared.sendPaymentRequest(YYWeChatPayRequest(partnerId: m.partnerid, prepayId: m.prepayid, package: m.package, nonceStr: m.noncestr, timeStamp: m.timestamp, sign: m.sign)) { result in
WanPai/Root/Home/Model/WorldCupModel.swift
@@ -27,8 +27,8 @@
struct WorldCupDetailModel:HandyJSON{
                var address: String = ""
                var age: String = ""
                var cash: Double = 0
                var classHour: Int = 0
                var cash:Double?
                var classHour:Int?
                var content: String = ""
                var endTime: String = ""
                var gender: Int = 0
@@ -37,7 +37,7 @@
                var infoImg: String = ""
                var intro: String = ""
                var name: String = ""
                var paiCoin: Int = 0
                var paiCoin:Int?
                var registrationClosingTime:String?
                var startTime: String = ""
                var storeInfos = [ActivityDetailStoreModel]()
WanPai/Root/Home/VC/HomeVC.swift
@@ -134,7 +134,7 @@
                                                                                                SDWebImageDownloader.shared.downloadImage(with: URL(string: m.backgroundImage), options: .useNSURLCache) { _, _,_ in
                                                                                                } completed: { image, data, error, status in
                                                                                                                guard m.backgroundImage.isEmpty else {
                                                                                                                guard !m.backgroundImage.isEmpty else {
                                                                                                                                m.cellHeight = 100
                                                                                                                                group.leave()
                                                                                                                                return
WanPai/Root/Home/VC/WorldCupListVC.swift
@@ -10,6 +10,7 @@
import QMUIKit
import RxRelay
import RxSwift
import SDWebImage
class WorldCupListViewModel:RefreshModel<WorldCupListModel>{
@@ -114,11 +115,41 @@
                                                                for (index,img) in imgs.enumerated(){
                                                                                items.append(CommonBannerModel(index: index,resource: img,mediaType: .imageUrl))
                                                                }
                                                                self?.footerView.setItems(items: items) { m in
                                                                                let model = models[m.index]
                                                                                jumpPage(model: model.model, page: model.page, type: model.type, id: model.turnId)
                                                                if let img = imgs.first{
                                                                                guard SDImageCache.shared.diskImageDataExists(withKey: img) else {
                                                                                                SDWebImageDownloader.shared.downloadImage(with: URL(string: img), options: .useNSURLCache) { _, _,_ in
                                                                                                } completed: { image, data, error, status in
                                                                                                                guard !img.isEmpty else {
                                                                                                                                return
                                                                                                                }
                                                                                                                if let img = image{
                                                                                                                                let footH = JQ_ScreenW / (img.size.width / img.size.height)
                                                                                                                                self?.footerView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: footH)
                                                                                                                                self?.footerView.setItems(items: items) { m in
                                                                                                                                                let model = models[m.index]
                                                                                                                                                jumpPage(model: model.model, page: model.page, type: model.type, id: model.turnId)
                                                                                                                                }
                                                                                                                                self?.tableview.reloadData()
                                                                                                                }
                                                                                                }
                                                                                                return
                                                                                }
                                                                                if let data = SDImageCache.shared.diskCache.data(forKey: img),let img = UIImage(data: data){
                                                                                                let footH = JQ_ScreenW / (img.size.width / img.size.height)
                                                                                                self?.footerView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: footH)
                                                                                                self?.footerView.setItems(items: items) { m in
                                                                                                                let model = models[m.index]
                                                                                                                jumpPage(model: model.model, page: model.page, type: model.type, id: model.turnId)
                                                                                                }
                                                                                                self?.tableview.reloadData()
                                                                                }
                                                                }
                                                                self?.tableview.reloadData()
                                                }
                                }).disposed(by: disposeBag)
                }
WanPai/Root/Other/VC/LogOffVC.swift
@@ -22,7 +22,7 @@
                                btn_complete.isEnabled = false
                                btn_complete.backgroundColor = .gray.withAlphaComponent(0.5)
                                Services.queryProtocol(.other,progress: false).subscribe(onNext: {[weak self] result in
                                                if let text = result.data?.jq_wrapHtml(){
                                                if let text = result.data?.jq_wrapHtml(edge: .init(top: 5, left: 3, bottom: 0, right: 3)){
                                                                self?.webView.loadHTMLString(text, baseURL: nil)
                                                }
                                }).disposed(by: disposeBag)
WanPai/Root/Search/VC/CustomerContentDetailVC.swift
@@ -10,66 +10,66 @@
class CustomerContentDetailVC: BaseVC {
    @IBOutlet weak var label_title: UILabel!
    @IBOutlet weak var label_datetime: UILabel!
    @IBOutlet weak var webView: WKWebView!
    @IBOutlet weak var cons_webHei: NSLayoutConstraint!
    private var id:Int!
    private var type:CustomerSubListVC.CustomerSubType!
                @IBOutlet weak var label_title: UILabel!
                @IBOutlet weak var label_datetime: UILabel!
                @IBOutlet weak var webView: WKWebView!
                @IBOutlet weak var cons_webHei: NSLayoutConstraint!
                private var id:Int!
                private var type:CustomerSubListVC.CustomerSubType!
    init(id:Int,type:CustomerSubListVC.CustomerSubType) {
        super.init(nibName: nil, bundle: nil)
        self.id = id
        self.type = type
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        if type == .notice{
            title = "公告详情"
        }else{
            title = "问题详情"
        }
        Services.exploreNoticeDetail(id: id, type: type).subscribe(onNext: {[weak self] data in
            if self?.type == .notice{
                self?.label_title.text = data.data?.noticeTitle
                self?.label_datetime.text = data.data?.noticeTime
                if let str = data.data?.noticeContents.jq_wrapHtml(){
                    self?.webView.loadHTMLString(str, baseURL: nil)
                init(id:Int,type:CustomerSubListVC.CustomerSubType) {
                                super.init(nibName: nil, bundle: nil)
                                self.id = id
                                self.type = type
                }
            }else{
                self?.label_title.text = data.data?.quesTitle
                self?.label_datetime.text = data.data?.quesTime
                if let str = data.data?.quesContents.jq_wrapHtml(){
                    self?.webView.loadHTMLString(str, baseURL: nil)
                required init?(coder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
            }
        }).disposed(by: disposeBag)
    }
                override func viewDidLoad() {
                                super.viewDidLoad()
    override func setRx() {
        self.webView.scrollView.rx.observe(CGSize.self, "contentSize").map { (size) -> CGFloat? in
            if let size = size{
                return size.height
            }
            return nil
        }.subscribe(onNext: { [unowned self](height) in
            if let height = height{
                self.cons_webHei.constant = height
            }
        }).disposed(by: disposeBag)
                                if type == .notice{
                                                title = "公告详情"
                                }else{
                                                title = "问题详情"
                                }
    }
                                Services.exploreNoticeDetail(id: id, type: type).subscribe(onNext: {[weak self] data in
                                                if self?.type == .notice{
                                                                self?.label_title.text = data.data?.noticeTitle
                                                                self?.label_datetime.text = data.data?.noticeTime
                                                                if let str = data.data?.noticeContents.jq_wrapHtml(){
                                                                                self?.webView.loadHTMLString(str, baseURL: nil)
                                                                }
                                                }else{
                                                                self?.label_title.text = data.data?.quesTitle
                                                                self?.label_datetime.text = data.data?.quesTime
                                                                if let str = data.data?.quesContents.jq_wrapHtml(){
                                                                                self?.webView.loadHTMLString(str, baseURL: nil)
                                                                }
                                                }
                                }).disposed(by: disposeBag)
                }
                override func setRx() {
                                self.webView.scrollView.rx.observe(CGSize.self, "contentSize").map { (size) -> CGFloat? in
                                                if let size = size{
                                                                return size.height
                                                }
                                                return nil
                                }.subscribe(onNext: { [unowned self](height) in
                                                if let height = height{
                                                                self.cons_webHei.constant = height
                                                }
                                }).disposed(by: disposeBag)
                }
}
WanPai/Root/Search/VC/SearchVC.swift
@@ -22,8 +22,10 @@
                var benefitHomeModel:BenefitHomeModel?
                private var models = [StartClouseExploreModel]()
                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"]
//                private var items = ["我的二维码","我的订场","社区世界杯","已报名活动","我的运动营","人员管理","我的券包","兑换记录","消费记录","积分明细","我的玩湃币"]
                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"]
                private var itemsImg = ["me_code","me_yard","me_wordCup","me_activity","me_camp","me_peoples","me_coupons","me_withdrawRec","me_consume","me_coin"]
                override func viewDidDisappear(_ animated: Bool) {
                                super.viewDidDisappear(animated)
@@ -56,6 +58,14 @@
                                func_collectionView.dataSource = self
                                func_collectionView.register(UINib(nibName: "FindItemCCell", bundle: nil), forCellWithReuseIdentifier: "_FindItemCCell")
                                func_collectionView.contentInset = UIEdgeInsets(top: 25, left: 0, bottom: 25, right: 0)
                                //临时隐藏会员功能按钮
                            label_vip.text = "普通会员"
                                label_vip.isHidden = false
                            img_vipMedal.isHidden = true
                            btn_becomeVIP.isEnabled = false
                                //临时隐藏会员功能按钮
                }
@@ -66,6 +76,7 @@
                private func getData(){
                                Services.benefitHome().subscribe(onNext: {[weak self] data in
                                                if let model = data.data{
                                                                guard let weakSelf = self else { return }
                                                                self?.benefitHomeModel = model
                                                                self?.user_avarImg.sd_setImage(with: URL(string: model.userHeadImg))
                                                                self?.label_userName.text = model.userName.isEmpty ? "未命名":model.userName
@@ -80,9 +91,28 @@
                                                                self?.label_coin.text = "\(model.userIntegral)"
                                                                self?.img_vipMedal.isHidden = model.isMember != "年度会员"
                                                                self?.btn_becomeVIP.isEnabled = model.isMember != "年度会员"
                                                                //临时隐藏会员功能按钮
                                                                self?.label_vip.text = "普通会员"
                                                                self?.label_vip.isHidden = false
                                                                self?.img_vipMedal.isHidden = true
                                                                self?.btn_becomeVIP.isEnabled = false
                                                                //临时隐藏会员功能按钮
                                                                if model.referee == 1{
                                                                                self?.items.append("裁判入口")
                                                                                self?.func_collectionView.reloadData()
                                                                                if !weakSelf.items.contains(where: {$0 == "裁判入口"}){
                                                                                                self?.items.append("裁判入口")
                                                                                                self?.itemsImg.append("me_judge")
                                                                                                self?.func_collectionView.reloadData()
                                                                                }
                                                                }else {
                                                                                if weakSelf.items.contains(where: {$0 == "裁判入口"}){
                                                                                                self?.items.removeLast()
                                                                                                self?.itemsImg.removeLast()
                                                                                                self?.func_collectionView.reloadData()
                                                                                }
                                                                }
                                                }
                                }) { error in
WanPai/Root/Search/VC/SearchVC.xib
@@ -136,7 +136,7 @@
                                            <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hBG-jc-I1P">
                                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hBG-jc-I1P">
                                            <rect key="frame" x="72" y="244.33333333333331" width="58" height="29"/>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
@@ -148,10 +148,10 @@
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DTA-Zx-9lB">
                                            <rect key="frame" x="262.66666666666669" y="244.33333333333331" width="58" height="29"/>
                                            <rect key="frame" x="232" y="192" width="119" height="46.333333333333343"/>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                            <state key="normal" title="查看详情">
                                            <state key="normal">
                                                <color key="titleColor" red="1" green="1" blue="1" alpha="0.29999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
                                            </state>
                                            <connections>
@@ -173,25 +173,27 @@
                                        <constraint firstItem="Iaq-eP-lJ7" firstAttribute="top" secondItem="IFx-3f-1QD" secondAttribute="top" constant="33.5" id="8T1-8Q-gib"/>
                                        <constraint firstItem="reN-LL-PRO" firstAttribute="centerY" secondItem="qIB-bn-Xg1" secondAttribute="centerY" id="BeY-KC-laa"/>
                                        <constraint firstItem="IFx-3f-1QD" firstAttribute="top" secondItem="1Yu-z5-de2" secondAttribute="top" constant="23.5" id="E6N-4k-GPZ"/>
                                        <constraint firstItem="DTA-Zx-9lB" firstAttribute="top" secondItem="TBO-dZ-vzH" secondAttribute="bottom" constant="6" id="HhC-ff-6wp"/>
                                        <constraint firstItem="qIB-bn-Xg1" firstAttribute="leading" secondItem="Iaq-eP-lJ7" secondAttribute="leading" id="JzW-jd-ATz"/>
                                        <constraint firstAttribute="width" secondItem="1Yu-z5-de2" secondAttribute="height" multiplier="1:0.763" id="Kr8-62-LYF"/>
                                        <constraint firstItem="ywf-si-kai" firstAttribute="top" secondItem="QKu-db-8Fs" secondAttribute="bottom" constant="9" id="L5f-Wd-uEY"/>
                                        <constraint firstItem="TBO-dZ-vzH" firstAttribute="centerY" secondItem="ywf-si-kai" secondAttribute="centerY" id="LvV-6U-Pmw"/>
                                        <constraint firstItem="TBO-dZ-vzH" firstAttribute="top" secondItem="3pw-YC-Oys" secondAttribute="bottom" constant="9" id="NGT-uL-LPH"/>
                                        <constraint firstItem="DTA-Zx-9lB" firstAttribute="centerX" secondItem="TBO-dZ-vzH" secondAttribute="centerX" id="OMM-7I-mY8"/>
                                        <constraint firstItem="reN-LL-PRO" firstAttribute="leading" secondItem="qIB-bn-Xg1" secondAttribute="trailing" constant="13.5" id="RG9-2c-y1p"/>
                                        <constraint firstItem="qIB-bn-Xg1" firstAttribute="top" secondItem="Iaq-eP-lJ7" secondAttribute="bottom" constant="11" id="S1p-gw-G8F"/>
                                        <constraint firstItem="hBG-jc-I1P" firstAttribute="centerX" secondItem="ywf-si-kai" secondAttribute="centerX" id="SKj-6E-fFA"/>
                                        <constraint firstItem="ISP-Cr-8RW" firstAttribute="leading" secondItem="qIB-bn-Xg1" secondAttribute="leading" id="UMN-jk-7va"/>
                                        <constraint firstItem="ISP-Cr-8RW" firstAttribute="centerY" secondItem="qIB-bn-Xg1" secondAttribute="centerY" id="XaT-uF-Irt"/>
                                        <constraint firstItem="DTA-Zx-9lB" firstAttribute="leading" secondItem="TBO-dZ-vzH" secondAttribute="leading" id="Y4w-cg-kMC"/>
                                        <constraint firstItem="hBG-jc-I1P" firstAttribute="top" secondItem="ywf-si-kai" secondAttribute="bottom" constant="6" id="ZRW-iT-ity"/>
                                        <constraint firstItem="ywf-si-kai" firstAttribute="leading" secondItem="1Yu-z5-de2" secondAttribute="leading" constant="41.5" id="dy9-73-RcY"/>
                                        <constraint firstItem="DTA-Zx-9lB" firstAttribute="trailing" secondItem="TBO-dZ-vzH" secondAttribute="trailing" id="eiR-Ml-1h8"/>
                                        <constraint firstItem="IFx-3f-1QD" firstAttribute="leading" secondItem="1Yu-z5-de2" secondAttribute="leading" constant="26" id="hAd-UM-xF3"/>
                                        <constraint firstItem="TBO-dZ-vzH" firstAttribute="centerX" secondItem="3pw-YC-Oys" secondAttribute="centerX" id="oWb-y0-H8A"/>
                                        <constraint firstItem="DTA-Zx-9lB" firstAttribute="top" secondItem="TBO-dZ-vzH" secondAttribute="top" id="omr-1g-o8d"/>
                                        <constraint firstAttribute="trailing" secondItem="TBO-dZ-vzH" secondAttribute="trailing" constant="42" id="qQN-dr-eUO"/>
                                        <constraint firstItem="xGl-Vo-Gjm" firstAttribute="centerY" secondItem="IFx-3f-1QD" secondAttribute="centerY" id="tX3-fg-Fqb"/>
                                        <constraint firstAttribute="trailing" secondItem="xGl-Vo-Gjm" secondAttribute="trailing" constant="34" id="uEs-l3-zLr"/>
                                        <constraint firstItem="DTA-Zx-9lB" firstAttribute="bottom" secondItem="TBO-dZ-vzH" secondAttribute="bottom" id="uRS-D4-DDz"/>
                                        <constraint firstItem="Iaq-eP-lJ7" firstAttribute="leading" secondItem="IFx-3f-1QD" secondAttribute="trailing" constant="14" id="x9S-au-83K"/>
                                        <constraint firstItem="reN-LL-PRO" firstAttribute="trailing" secondItem="ISP-Cr-8RW" secondAttribute="trailing" id="zk3-fl-xGo"/>
                                    </constraints>
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.swift
@@ -38,7 +38,9 @@
                @IBOutlet weak var btn_addStudent: QMUIButton!
                @IBOutlet weak var btn_enroll: UIButton!
                @IBOutlet weak var view_cash: UIView!
                @IBOutlet weak var view_payCoin: UIView!
                @IBOutlet weak var view_course: UIView!
                private var students = [ActivityDetailPartModel]()
                private var detailModel:WorldCupDetailModel!
@@ -108,9 +110,21 @@
                                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)课时/人"
                                view_cash.isHidden = detailModel.cash == nil
                                view_payCoin.isHidden = detailModel.paiCoin == nil
                                view_course.isHidden = detailModel.classHour == nil
                                if let cash = detailModel.cash{
                                                label_pay_money.text = cash == 0 ? "免费":"¥\(cash)/人"
                                }
                                if let paiCoin = detailModel.paiCoin{
                                                label_pay_coin.text = paiCoin == 0 ? "免费":"\(paiCoin)币/人"
                                }
                                if let classHour = detailModel.classHour{
                                                label_pay_course.text  = classHour == 0 ? "免费":"\(classHour)课时/人"
                                }
                }
                override func setRx() {
@@ -183,16 +197,24 @@
                                                result.append(["id":v.id,"isStudent":v.isStudent])
                                }
                                var money:Double = 0
                                var paiCoin:Int = 0
                                var classHour:Int = 0
                                var money:Double?
                                var paiCoin:Int?
                                var classHour:Int?
                                //选中有非学员,显示课时支付灰色
                                let hasNotStudent = students.filter({$0.isStudent == 0}).count > 0
                                money = detailModel.cash * Double(students.count)
                                paiCoin = detailModel.paiCoin * students.count
                                classHour = detailModel.classHour * students.count
                                if detailModel.cash != nil{
                                                money = detailModel.cash! * Double(students.count)
                                }
                                if detailModel.paiCoin != nil{
                                                paiCoin = detailModel.paiCoin! * students.count
                                }
                                if detailModel.classHour != nil{
                                                classHour = detailModel.classHour! * students.count
                                }
                                if money == 0 && paiCoin == 0 && classHour == 0{
                                                payment(payType: .free, result: result)
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.xib
@@ -33,6 +33,9 @@
                <outlet property="tableView" destination="vdV-Kg-Dhx" id="Rw4-fo-CUk"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_banner" destination="iHH-PB-5zL" id="0G8-9s-0ju"/>
                <outlet property="view_cash" destination="eMQ-rk-ufL" id="DXM-Wn-VDB"/>
                <outlet property="view_course" destination="TGs-DL-QOC" id="4SW-kN-WV1"/>
                <outlet property="view_payCoin" destination="wNH-nX-al9" id="U3e-iX-y05"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -564,7 +567,6 @@
                                                <constraint firstItem="00C-zB-N9A" firstAttribute="top" secondItem="SW6-bw-VJg" secondAttribute="bottom" constant="14" id="e94-Bx-fY0"/>
                                                <constraint firstAttribute="trailing" secondItem="00C-zB-N9A" secondAttribute="trailing" id="hcX-oq-8zQ"/>
                                                <constraint firstItem="SW6-bw-VJg" firstAttribute="top" secondItem="oPd-tE-l3b" secondAttribute="bottom" constant="12" id="km2-TG-Obh"/>
                                                <constraint firstAttribute="height" constant="115" id="nnO-7y-jH3"/>
                                                <constraint firstAttribute="bottom" secondItem="00C-zB-N9A" secondAttribute="bottom" id="oM7-og-cch"/>
                                                <constraint firstItem="oPd-tE-l3b" firstAttribute="leading" secondItem="aGT-jP-y75" secondAttribute="leading" constant="14" id="soz-s5-g6q"/>
                                                <constraint firstItem="dAY-sB-Oy6" firstAttribute="top" secondItem="aGT-jP-y75" secondAttribute="top" id="uT1-3g-2a0"/>
WanPai/Root/Search/VC/WorldCupContentApplyVC.swift
@@ -30,7 +30,10 @@
                @IBOutlet weak var cons_webHei: NSLayoutConstraint!
                @IBOutlet weak var btn_moreStore: UIButton!
                @IBOutlet weak var btn_enroll: UIButton!
                @IBOutlet weak var view_cash: UIView!
                @IBOutlet weak var view_payCoin: UIView!
                @IBOutlet weak var view_course: UIView!
                private var detailModel:WorldCupDetailModel?
                private lazy var bannerView:CommonBannerView = {
@@ -90,23 +93,40 @@
                                                                self?.label_address.text = model.address
                                                                self?.label_matchPoint.text = model.storeInfos.map({$0.name}).joined(separator: "、")
                                                                if model.cash == 0{
                                                                                self?.label_pay_money.text = "免费"
                                                                }else{
                                                                                self?.label_pay_money.text = "¥\(model.cash)/人"
                                                                self?.view_cash.isHidden = model.cash == nil
                                                                self?.view_payCoin.isHidden = model.paiCoin == nil
                                                                self?.view_course.isHidden = model.classHour == nil
                                                                if let cash = model.cash{
                                                                                self?.label_pay_money.text = cash == 0 ? "免费":"¥\(cash)/人"
                                                                }
                                                                if model.paiCoin == 0{
                                                                                self?.label_pay_coin.text = "免费"
                                                                }else{
                                                                                self?.label_pay_coin.text = "\(model.paiCoin)币/人"
                                                                if let paiCoin = model.paiCoin{
                                                                                self?.label_pay_coin.text = paiCoin == 0 ? "免费":"\(paiCoin)币/人"
                                                                }
                                                                if model.classHour == 0{
                                                                                self?.label_pay_course.text = "免费"
                                                                }else{
                                                                                self?.label_pay_course.text = "\(model.classHour)课时/人"
                                                                if let classHour = model.classHour{
                                                                                self?.label_pay_course.text  = classHour == 0 ? "免费":"\(classHour)课时/人"
                                                                }
//                                                                if model.cash == 0{
//                                                                                self?.label_pay_money.text = "免费"
//                                                                }else{
//                                                                                self?.label_pay_money.text = "¥\(model.cash)/人"
//                                                                }
//
//                                                                if model.paiCoin == 0{
//                                                                                self?.label_pay_coin.text = "免费"
//                                                                }else{
//                                                                                self?.label_pay_coin.text = "\(model.paiCoin)币/人"
//                                                                }
//
//                                                                if model.classHour == 0{
//                                                                                self?.label_pay_course.text = "免费"
//                                                                }else{
//                                                                                self?.label_pay_course.text = "\(model.classHour)课时/人"
//                                                                }
                                                                self?.label_desc.text = model.intro
@@ -121,7 +141,6 @@
                                                                                                self?.btn_enroll.isEnabled = false
                                                                                }
                                                                }
                                                                self?.detailModel = model
                                                }
WanPai/Root/Search/VC/WorldCupContentApplyVC.xib
@@ -31,6 +31,9 @@
                <outlet property="label_title" destination="tkR-Qw-6Qd" id="W9O-KH-zcd"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_banner" destination="rEE-UF-kCK" id="yik-z7-fwy"/>
                <outlet property="view_cash" destination="Y2l-H5-uB9" id="8rV-8V-qmg"/>
                <outlet property="view_course" destination="g9N-2R-H2H" id="1jL-PV-tZs"/>
                <outlet property="view_payCoin" destination="z37-YH-24K" id="SIr-3K-Xmw"/>
                <outlet property="webView" destination="sHP-li-Ukm" id="2vx-dd-7hx"/>
            </connections>
        </placeholder>
@@ -557,7 +560,6 @@
                                                <constraint firstItem="NtA-5U-4tc" firstAttribute="top" secondItem="H2m-qM-cUy" secondAttribute="bottom" constant="12" id="Ik0-pv-FDV"/>
                                                <constraint firstItem="H2m-qM-cUy" firstAttribute="top" secondItem="wcV-Lw-oh0" secondAttribute="bottom" constant="14" id="IpT-vv-cD9"/>
                                                <constraint firstItem="wcV-Lw-oh0" firstAttribute="top" secondItem="ULs-al-mjr" secondAttribute="top" id="K0J-Sm-K5I"/>
                                                <constraint firstAttribute="height" constant="115" id="NHh-2F-h4t"/>
                                                <constraint firstItem="wcV-Lw-oh0" firstAttribute="leading" secondItem="ULs-al-mjr" secondAttribute="leading" constant="13" id="OEp-4S-aAg"/>
                                                <constraint firstAttribute="trailing" secondItem="wcV-Lw-oh0" secondAttribute="trailing" id="QiP-QD-VlZ"/>
                                                <constraint firstItem="H2m-qM-cUy" firstAttribute="leading" secondItem="ULs-al-mjr" secondAttribute="leading" constant="14" id="V0W-Hu-0uT"/>
WanPai/Root/Search/VC/WorldCupContentVC.swift
@@ -8,6 +8,7 @@
import UIKit
import RxSwift
import RxRelay
import RxDataSources
let WorldCupRefresh_Noti = Notification.Name.init("WorldCupRefresh_Noti")
@@ -27,7 +28,7 @@
                var partModel:BehaviorRelay<ActivityDetailPartModel?>?
                var superScrollView:UIScrollView?
                private var viewModel = WorldCupContentViewModel()
                private(set) var tableView:UITableView!
                private(set) var tableView:BaseScrollInnerTableView!
    override func viewDidLoad() {
        super.viewDidLoad()
                                view.backgroundColor = .clear
@@ -43,7 +44,7 @@
                }
                
                override func setUI() {
                                tableView = UITableView(frame: .zero, style: .plain)
                                tableView = BaseScrollInnerTableView(frame: .zero, style: .plain)
                                tableView.delegate = self
                                tableView.dataSource = self
                                tableView.separatorStyle = .none
@@ -55,6 +56,8 @@
                                }
                                viewModel.configure(tableView)
                                superScrollView?.delegate = self
                }
                override func setRx() {
@@ -75,11 +78,17 @@
extension WorldCupContentVC:UIScrollViewDelegate{
                func scrollViewDidScroll(_ scrollView: UIScrollView) {
                                let off = superScrollView!.contentOffset.y + scrollView.contentOffset.y
                                superScrollView!.contentOffset.y = max(0,min(350,off))
                                var canScroll = true
                                if scrollView.tag == 2100{
                                                if scrollView.contentOffset.y < 350 && scrollView.contentOffset.y != 0{
                                                                canScroll = false
                                                }
                                                print("\(scrollView.contentOffset.y)----\(canScroll)")
                                                tableView.isScrollEnabled = canScroll
                                }
                }
}
extension WorldCupContentVC:UITableViewDelegate,UITableViewDataSource{
@@ -103,3 +112,9 @@
                }
}
class BaseScrollInnerTableView:UITableView,UIScrollViewDelegate{
                func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
                                return true
                }
}
WanPai/Root/Search/VC/WorldCupHeaderVC.xib
@@ -30,9 +30,8 @@
            <rect key="frame" x="0.0" y="0.0" width="393" height="418"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_user_large" translatesAutoresizingMaskIntoConstraints="NO" id="rC1-GG-uHG">
                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="rC1-GG-uHG">
                    <rect key="frame" x="24.000000000000007" y="24.000000000000007" width="87.666666666666686" height="87.666666666666686"/>
                    <color key="backgroundColor" name="F6F6F6"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="87.5" id="acp-fA-EI4"/>
                        <constraint firstAttribute="width" constant="87.5" id="viK-40-g8b"/>
@@ -71,7 +70,6 @@
                </button>
                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="kqK-MA-Vfm">
                    <rect key="frame" x="282" y="29.666666666666671" width="76" height="76"/>
                    <color key="backgroundColor" systemColor="systemGray4Color"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="76" id="dqa-c1-DHq"/>
                        <constraint firstAttribute="height" constant="76" id="meQ-qP-IB9"/>
@@ -152,7 +150,7 @@
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0.00%" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="14" translatesAutoresizingMaskIntoConstraints="NO" id="m9A-Xb-JPg">
                    <rect key="frame" x="268" y="274.33333333333331" width="93" height="46"/>
                    <rect key="frame" x="272" y="274.33333333333331" width="101" height="46"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="46" id="8tN-ps-bbt"/>
                    </constraints>
@@ -160,20 +158,14 @@
                    <color key="textColor" red="0.34901960784313724" green="0.3411764705882353" blue="0.3411764705882353" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB">
                            <color key="value" name="FE6E0D"/>
                        </userDefinedRuntimeAttribute>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB">
                            <real key="value" value="1"/>
                        </userDefinedRuntimeAttribute>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="23"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rEf-8b-RAY">
                    <rect key="frame" x="32" y="274.33333333333331" width="93" height="46"/>
                    <rect key="frame" x="20" y="274.33333333333331" width="101" height="46"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="46" id="Zh3-Gp-bHb"/>
                    </constraints>
@@ -181,20 +173,14 @@
                    <color key="textColor" red="0.34901960784313724" green="0.3411764705882353" blue="0.3411764705882353" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB">
                            <color key="value" name="FE6E0D"/>
                        </userDefinedRuntimeAttribute>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB">
                            <real key="value" value="1"/>
                        </userDefinedRuntimeAttribute>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="23"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lO3-VT-LVU">
                    <rect key="frame" x="150" y="274.33333333333331" width="93" height="46"/>
                    <rect key="frame" x="146" y="274.33333333333331" width="101" height="46"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="46" id="Fpt-PG-81C"/>
                    </constraints>
@@ -202,13 +188,7 @@
                    <color key="textColor" red="0.34901960784313724" green="0.3411764705882353" blue="0.3411764705882353" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB">
                            <color key="value" name="FE6E0D"/>
                        </userDefinedRuntimeAttribute>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB">
                            <real key="value" value="1"/>
                        </userDefinedRuntimeAttribute>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="23"/>
                        </userDefinedRuntimeAttribute>
@@ -224,12 +204,12 @@
                <constraint firstItem="CLm-un-lHA" firstAttribute="leading" secondItem="rC1-GG-uHG" secondAttribute="trailing" constant="13.5" id="7KP-Up-Wjn"/>
                <constraint firstItem="9RA-9C-jhI" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="31" id="7YN-Nf-NVK"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="7Tv-DA-R5E" secondAttribute="trailing" id="97Z-Lt-Xc6"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="m9A-Xb-JPg" secondAttribute="trailing" constant="32" id="AOB-qc-e1Y"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="m9A-Xb-JPg" secondAttribute="trailing" constant="20" id="AOB-qc-e1Y"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="9RA-9C-jhI" secondAttribute="trailing" constant="31" id="Adw-GT-Y0X"/>
                <constraint firstItem="dho-Mk-UEo" firstAttribute="top" secondItem="kqK-MA-Vfm" secondAttribute="bottom" constant="37" id="ENW-DR-ptu"/>
                <constraint firstItem="kqK-MA-Vfm" firstAttribute="centerY" secondItem="rC1-GG-uHG" secondAttribute="centerY" id="H2t-1L-Swv"/>
                <constraint firstItem="rC1-GG-uHG" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="24" id="HgH-ec-6mG"/>
                <constraint firstItem="rEf-8b-RAY" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="32" id="J8r-1H-0zw"/>
                <constraint firstItem="rEf-8b-RAY" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="20" id="J8r-1H-0zw"/>
                <constraint firstItem="3bk-Zw-hOl" firstAttribute="top" secondItem="CLm-un-lHA" secondAttribute="bottom" constant="9" id="NL7-24-lfZ"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="dho-Mk-UEo" secondAttribute="trailing" id="Oyo-J1-MSN"/>
                <constraint firstItem="lO3-VT-LVU" firstAttribute="leading" secondItem="rEf-8b-RAY" secondAttribute="trailing" constant="25" id="PmD-Dt-ho8"/>
@@ -260,18 +240,11 @@
    </objects>
    <resources>
        <image name="btn_exchange" width="40" height="35"/>
        <image name="icon_user_large" width="92" height="94"/>
        <namedColor name="F6F6F6">
            <color red="0.9649999737739563" green="0.9649999737739563" blue="0.9649999737739563" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <namedColor name="FE6E0D">
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
        <systemColor name="systemGray4Color">
            <color red="0.81960784310000001" green="0.81960784310000001" blue="0.83921568629999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Search/VC/WorldCupRankVC.swift
@@ -34,7 +34,7 @@
                private let yearBtn = QMUIButton(type: .custom)
                private let ratioRankBtn = QMUIButton(type: .custom)
//                private let provinceBtn = UIButton(type: .custom)
                private var tableView:UITableView!
                private var tableView:BaseScrollInnerTableView!
                var superScrollView:UIScrollView?
                var flowCell:WorldCupRankTCell?
@@ -44,7 +44,8 @@
                }
                override func setUI() {
                                tableView = UITableView(frame: .zero, style: .plain)
                                superScrollView?.delegate = self
                                tableView = BaseScrollInnerTableView(frame: .zero, style: .plain)
                                tableView.delegate = self
                                tableView.dataSource = self
                                tableView.showsVerticalScrollIndicator = false
@@ -63,10 +64,11 @@
                                                make.bottom.equalToSuperview().offset(-69)
                                }
                                viewModel.configure(tableView,needMore: false)
                                viewModel.beginRefresh()
                                viewModel.id.subscribe(onNext: {[weak self] _ in
                                                guard let weakSelf = self else { return }
                                                self?.viewModel.configure(weakSelf.tableView,needMore: false)
                                                self?.viewModel.beginRefresh()
                                }).disposed(by: disposeBag)
                }
                override func setRx() {
@@ -160,8 +162,15 @@
extension WorldCupRankVC:UIScrollViewDelegate{
                func scrollViewDidScroll(_ scrollView: UIScrollView) {
                                let off = superScrollView!.contentOffset.y + scrollView.contentOffset.y
                                superScrollView!.contentOffset.y = max(0,min(350,off))
                                var canScroll = true
                                if scrollView.tag == 2100{
                                                if scrollView.contentOffset.y < 350 && scrollView.contentOffset.y != 0{
                                                                canScroll = false
                                                }
                                                print("\(scrollView.contentOffset.y)----\(canScroll)")
                                                tableView.isScrollEnabled = canScroll
                                }
                }
}
@@ -269,9 +278,7 @@
                func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
                                if section != 0{
                                                return nil
                                }
                                if section != 0{return nil}
                                var headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "header")
                                if headerView == nil{
WanPai/Root/Search/VC/WorldCupRecordVC.swift
@@ -22,7 +22,7 @@
class WorldCupRecordVC: BaseVC {
                private(set) var tableView:UITableView!
                private(set) var tableView:BaseScrollInnerTableView!
                private var viewModel = WorldCupRecordViewModel()
                var partModel:BehaviorRelay<ActivityDetailPartModel?>?
                var superScrollView:UIScrollView?
@@ -32,7 +32,8 @@
                }
                override func setUI() {
                                tableView = UITableView(frame: .zero, style: .grouped)
                                superScrollView?.delegate = self
                                tableView = BaseScrollInnerTableView(frame: .zero, style: .grouped)
                                tableView.delegate = self
                                tableView.dataSource = self
                                tableView.separatorStyle = .none
@@ -64,8 +65,15 @@
extension WorldCupRecordVC:UIScrollViewDelegate{
                func scrollViewDidScroll(_ scrollView: UIScrollView) {
                                let off = superScrollView!.contentOffset.y + scrollView.contentOffset.y
                                superScrollView!.contentOffset.y = max(0,min(350,off))
                                var canScroll = true
                                if scrollView.tag == 2100{
                                                if scrollView.contentOffset.y < 350 && scrollView.contentOffset.y != 0{
                                                                canScroll = false
                                                }
                                                print("\(scrollView.contentOffset.y)----\(canScroll)")
                                                tableView.isScrollEnabled = canScroll
                                }
                }
}
WanPai/Root/Search/VC/WorldCupVC.swift
@@ -60,13 +60,6 @@
                                return vc
                }()
//                lazy var flowImageView:UIImageView = {
//                                let i = UIImageView()
//                                i.tag = 1001
//                                return i
//                }()
                lazy var pageVC:FFPageViewController = {
                                let pageViewController = FFPageViewController()
                                pageViewController.view.backgroundColor = .clear
@@ -120,6 +113,7 @@
                                                self.pageVC.scroll(toPage: self.toPage ?? 0, animation: false)
                                }
                                adapterVC.scrollview.tag = 2100
                                addFootView()
    }
@@ -197,7 +191,7 @@
                                                                if let cell = weakSelf.footView.viewWithTag(1100) as? WorldCupRankTCell{
                                                                                cell.model = model
                                                                }
                                                                weakSelf.footView.isHidden = false
                                                                weakSelf.footView.isHidden = model.name.isEmpty
                                                }
                                }).disposed(by: disposeBag)
@@ -280,7 +274,7 @@
                func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
                                menuVC.pageMenu.selectedItemIndex = currentPage
//                                flowImageView.isHidden = currentPage != 3
                                footView.isHidden = currentPage != 3
                                footView.isHidden = currentPage != 3 || partModel.value == nil
                }
}
@@ -288,7 +282,7 @@
                func pageMenu(_ pageMenu: SPPageMenu, didSelectedItem index: Int) {
                                pageVC.scroll(toPage: index, animation: true)
//                                flowImageView.isHidden = index != 3
                                footView.isHidden = index != 3
                                footView.isHidden = index != 3 || partModel.value == nil
                }
                func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
WanPai/Root/Welfare/VC/WelfareVC.swift
@@ -157,7 +157,19 @@
                                let model = benefitHomeModel!.commodities[indexPath.row]
                                let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_WelfareCoinCCell", for: indexPath) as! WelfareCoinCCell
                                cell.label_name.text = model.commodityName
                                cell.label_price.text = model.commodityPrice.currency()
                                switch model.redemptionMethod {
                                                case 1: //积分
                                                                cell.label_price.text = "\(model.integral)积分"
                                                case 2: //现金+积分
                                                                cell.label_price.text = "\(model.integral)积分+\(model.commodityPrice.currency())"
                                                case 3://现金
                                                                cell.label_price.text = "\(model.commodityPrice.currency())"
                                                default:
                                                                cell.label_price.text = ""
                                }
                                cell.img_cover.sd_setImage(with: URL(string: model.commodityImg), placeholderImage: nil)
                                return cell
                }
WanPai/ViewModel/RefreshModel.swift
@@ -38,7 +38,7 @@
                private var handle:UIScrollView!
                lazy var refreshSubject = PublishSubject<RefreshState>()
                var page:Int = 0
                var page:Int = 1
                var pageSize:Int = 20
                private var needRefreshData:Bool = true
                lazy var dataSource = BehaviorRelay<[T]>(value: [])
@@ -63,7 +63,13 @@
                }
                func beginRefresh(){
                                handle.mj_header?.beginRefreshing()
                                guard handle != nil else {return}
                                api()?.subscribe(onNext: { data in
                                                if let datas = data.data{
                                                                self.dataSource.accept(datas)
                                                                self.refreshSubject.onNext(.completedRefresh)
                                                }
                                }).disposed(by: disposeBag)
                }
                func refreshData() ->(()->Void) {