Robert
5 天以前 bfe324e547c704b79b98ce5785686bd83def1daf
WanPai/Root/Other/View/CommonYearsPickerView.swift
@@ -17,23 +17,59 @@
            @IBOutlet weak var cons_bottom: NSLayoutConstraint!
            @IBOutlet weak var pickerView: UIPickerView!
            
            private var clickClouse:((Int)->Void)!
                @IBOutlet weak var pickviewTwo: UIPickerView!
    private var clickClouse:(((Int,String))->Void)!
            private var disposeBag = DisposeBag()
            private var years = [Int]()
    var dataSoure : [String :[Any]] = [:]
    var selectIndex : Int = 0
    var titleArr = ["年度排名","季度排名","全部"]
//    var selectData : (Int,String)?
            override func awakeFromNib() {
                        super.awakeFromNib()
                        years = (Date().jq_nowYear()-5...Date().jq_nowYear()).map{$0}.sorted(by: {$0 > $1})
                        years.insert(0, at: 0)
//                        years.insert(0, at: 0)
                        cons_bottom.constant = -(JQ_ScreenW * 1.1)
                        pickerView.delegate = self
                        pickerView.dataSource = self
                        alpha = 0
                        layoutIfNeeded()
                        setRx()
                    for item in titleArr {
                        var array = Array<[String:String]>()
                        if item == "季度排名" {
                            for intem1 in years {
                                if intem1 != 0 {
                                    for i in 0..<4 {
                                        if i == 0 {
                                            array.append(["\(intem1)第1季度":"\(intem1)-01-01-\(intem1)-03-30"])
                                        }else if i == 1 {
                                            array.append(["\(intem1)第2季度":"\(intem1)-04-01-\(intem1)-06-30"])
                                        }else if i == 2 {
                                            array.append(["\(intem1)第3季度":"\(intem1)-07-01-\(intem1)-09-30"])
                                        }else if i == 3 {
                                            array.append(["\(intem1)第4季度":"\(intem1)-10-01-\(intem1)-12-30"])
            }
            static func show(clickClouse:@escaping (Int)->Void){
                                    }
                                }
                            }
                            dataSoure[item] =  array
                        }else if item == "年度排名" {
                            dataSoure[item] = years
                        }else if item == "全部" {
                            dataSoure[item] = ["全部"]
                        }
                    }
                    print(dataSoure);
            }
            static func show(clickClouse:@escaping ((Int,String))->Void){
                        let studentChooseView = CommonYearsPickerView.jq_loadNibView()
                        studentChooseView.frame = sceneDelegate?.window?.frame ?? .zero
                        studentChooseView.clickClouse = clickClouse
@@ -72,8 +108,18 @@
            }
            @IBAction func completeAction(_ sender: UIButton) {
                        let index = pickerView.selectedRow(inComponent: 0)
                        clickClouse!(years[index])
                    let index = pickerView.selectedRow(inComponent: 1)
                    var str = ""
                    if selectIndex == 1 {
                        if let dict  = dataSoure[titleArr[selectIndex]]?[index] as? Dictionary<String, String>   {
                            str = "\(dict.values.first ?? "")"
                        }
                    }else{
                        str =   "\(dataSoure[titleArr[selectIndex]]?[index] ?? "")"
                    }
                    clickClouse((selectIndex,str))
                        closeAction()
            }
}
@@ -81,31 +127,63 @@
extension CommonYearsPickerView:UIPickerViewDelegate{
            func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
                    if component == 0 {
                        let label = UILabel()
                        if years[row] == 0{
                                    label.text = "全部"
                        }else{
                                    label.text = "\(years[row])年"
                        }
                        label.text = "\(titleArr[row])"
                        label.textColor = UIColor(hexString: "3C3C3C")
                        label.textAlignment = .center
                        label.font = UIFont.systemFont(ofSize: 18, weight: .semibold)
                        label.bounds = CGRect(origin: .zero, size: CGSize(width: 100, height: 45))
                        return label
                    }else{
                        let label = UILabel()
                        if selectIndex == 1 {
                            if let dict  = dataSoure[titleArr[selectIndex]]?[row] as? Dictionary<String, String>   {
                                label.text = "\(dict.keys.first ?? "")"
                            }
                        }else{
                            label.text =   "\(dataSoure[titleArr[selectIndex]]?[row] ?? "")"
                        }
                        label.textColor = UIColor(hexString: "3C3C3C")
                        label.textAlignment = .center
                        label.font = UIFont.systemFont(ofSize: 18, weight: .semibold)
                        label.bounds = CGRect(origin: .zero, size: CGSize(width: 120, height: 45))
                        return label
                    }
            }
            func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
                        return 50
            }
     func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
         if component == 0 {
             selectIndex = row
             pickerView.reloadComponent(1)
         }
    }
}
extension CommonYearsPickerView:UIPickerViewDataSource{
            func numberOfComponents(in pickerView: UIPickerView) -> Int {
                        return 1
                        return 2
            }
            
            func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
                        return years.count
                    if dataSoure.keys.count == 0 {
                        return 0
                    }
                    if component == 0 {
                        return dataSoure.count
                    }else{
                        return dataSoure[titleArr[selectIndex]]!.count
                    }
            }
}