//
//  DSHFXY_ViewController.swift
//  GeliBusinessPlatform
//
//  Created by junye lu on 2020/12/29.
//  Copyright © 2020 junye lu. All rights reserved.
//

import UIKit

class DSHFXY_ViewController: BaseViewController, HeaderSelectViewDelegate, TimeShowDownViewDeleagte, SelectContentViewDelegate, UISearchBarDelegate, SearchBarViewDelegate, UITableViewDelegate, UITableViewDataSource,DSHFXY_CellDelegate, GeliAlertViewDelegate {
    func sureGeliAlertViewAction(sender: UIButton) {
        let model = dataArr[sender.tag]
        let dic = [
            "user_token":UserToken as Any,
            "action":action as Any,
            "user_id":model.user_id as Any,
            "type":model.type as Any
        ]
        examineOperation(dic) { (data) in
            if self.action == 1 {
                HUD.flash(.label("成功通过审核"), delay: 1.2)
            }else{
                HUD.flash(.label("已拒绝通过审核"), delay: 1.2)
            }
            self.tableView.mj_header?.beginRefreshing()
        } failture: { (err) in
            
        }

    }
    var action = 0
    func DSHFXY_Cell_Choice(num: Int, cell: DSHFXY_Cell) {
        let alertView = GeliAlertView(frame: self.view.window!.bounds)
        alertView.delegate = self;
        alertView.tishiLbl.text = ""
        if num == 1 {
            alertView.titileLbl.text = "确定通过审核?"
            action = 1
        }else{
            alertView.titileLbl.text = "确定不通过审核?"
            action = 2
        }
        alertView.rightBtn.setAttributedTitle(NSAttributedString(string: "确定"), for: .normal)
        alertView.rightBtn.tag = cell.tag
        self.view.window?.addSubview(alertView)
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 176
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataArr.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "DSHFXY_Cell") as! DSHFXY_Cell
        cell.delegate = self
        cell.tag = indexPath.row
        let model = dataArr[indexPath.row]
        cell.name_lbl.text = model.user_name
        cell.time_lbl.text = model.create_time
        if model.phone!.count > 0 {
            cell.phone_lbl.text = " (" + model.phone! + ")"
        }
        switch model.from {
        case 1:
            cell.way_lbl.text = "小程序"
            break
        case 2:
            cell.way_lbl.text = "格利食品网"
            break
        default:
            break
        }
        return cell
    }
    
    func didselectCell(sender: Int) {
        selectIndexArr[showSelectvIndex] = sender
        var arr:[String] = []
        if showSelectvIndex == 1{
            let arr2 = ["全部","小程序","格利食品网"]
            arr.append(arr2[sender])
            switch sender {
            case 0:
                from = 4
                break
            case 1:
                from = 1
                break
            case 2:
                from = 2
                break
            default:
                break
            }
           
        }
        selectV.colseBytitleArr(arr: arr, index:showSelectvIndex)
        tableView.mj_header?.beginRefreshing()
    }
    
    func selectContentvRemoveForSup() {
        selectV.colseBytitleArr(arr: [], index:showSelectvIndex)
    }
    
  
    @IBOutlet weak var search_view: UIView!
    
    var blackBtnView:UIButton! = nil
    @objc func removeBlackBtnView(){
        if blackBtnView != nil {
            blackBtnView.removeFromSuperview()
            searchV!.resignFirstResponder()
        }
        selectV.isUserInteractionEnabled = true
    }
    func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
        print("调起搜索后添加个蒙版本")
        if showSelectV != nil {
            showSelectV.removeFromSuperview()
            selectV.colseBytitleArr(arr: [], index:showSelectvIndex)
        }
        if timeShowDView != nil {
            timeShowDView.removeFromSuperview()
            selectV.colseBytitleArr(arr: [], index:showSelectvIndex)
        }
        selectV.isUserInteractionEnabled = false
        blackBtnView = UIButton ()
        blackBtnView.backgroundColor = UIColor.init(named: "提示视图背景色")
        self.view.addSubview(blackBtnView)
        blackBtnView.snp.makeConstraints { (make) in
            make.top.equalTo(search_view!.snp_bottom)
            make.left.right.bottom.equalToSuperview()
        }
        blackBtnView.addTarget(self, action: #selector(removeBlackBtnView), for: .touchUpInside)
        blackBtnView.isUserInteractionEnabled = false
        
        return true
    }
    weak var searchV: SearchBarView? = nil
    var keyword = ""
    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
        print("点击搜索进行--")
        searchBar.resignFirstResponder()
        keyword = searchBar.text!
        removeBlackBtnView()
        if keyword.count > 0 {
//            getData()
            tableView.mj_header?.beginRefreshing()
        }
    }
    //MARK:--取消搜索代理
    func clearSearchAction() {
        print("取消搜索代理了--")
    }
    func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
        print("编辑即将结束了--")
    
        removeBlackBtnView()
        if keyword.count > 0 {
            keyword = searchBar.text!
            if keyword.count == 0 {
                tableView.mj_header?.beginRefreshing()
            }
        }
    }
    var from = 4
    let tableView = UITableView()
    let UserToken = UserDefaults.standard.value(forKey: "user_token")
    override func viewDidLoad() {
        super.viewDidLoad()
        navbar.title = "待审核分销员"
        self.view.addSubview(navbar)
        SetTopFrame(view: search_view, height: 46)
        initHeaderSelectView()
        
        let searchBr = SearchBarView.init()
        searchV = searchBr
        self.search_view.addSubview(searchBr)
        searchV?.changecornerRadius(cornerRadius: 35*0.5)
        searchBr.placeholderStr = "请输入分销员名称"
        searchBr.delegate = self
        searchBr.delegateL = self
        
        searchBr.snp.makeConstraints { (make) in
            make.left.equalTo(0)
            make.right.equalTo(0)
            make.centerY.equalToSuperview()
            make.height.equalTo(35)
        }
        
        tableView.separatorStyle = .none
        tableView.showsVerticalScrollIndicator = false
        tableView.delegate = self
        tableView.dataSource = self
        tableView.register(UINib(nibName: "DSHFXY_Cell", bundle: nil), forCellReuseIdentifier: "DSHFXY_Cell")
        tableView.backgroundColor = UIColor(named: "app底色")
        headerMJ.setRefreshingTarget(self, refreshingAction: #selector(loadData))
        self.tableView.mj_header = self.headerMJ
        self.tableView.mj_header?.beginRefreshing()
        self.view.addSubview(tableView)
        tableView.snp.makeConstraints { (make) in
            make.top.equalTo(changeBgView.snp_bottom)
            make.left.right.bottom.equalTo(0)
        }
        
        self.footerMJ.setRefreshingTarget(self, refreshingAction: #selector(loadMoreData))
        tableView.mj_footer = self.footerMJ

    }

    var dataArr :Array<examineDbtInfoDataModel> = []
    var page = 0
    @objc func loadData(){
        dataArr.removeAll()
        page = 1
        let dic = [
            "user_token":UserToken as Any,
            "keyword":keyword as Any,
            "start_time":startTime as Any,
            "end_time":endTime as Any,
            "from":from as Any,
            "page":page as Any
        ]
        examineDbtInfo(dic) { (data) in
            let model = data as! examineDbtInfoModel
            model.data?.forEach({ (item) in
                self.dataArr.append(item)
            })
            self.tableView.reloadData()
            self.page = 2
            self.tableView.mj_header?.endRefreshing()
            if model.data?.count == 0  {
                self.tableView.mj_footer?.endRefreshingWithNoMoreData()
            }else{
                self.tableView.mj_footer?.endRefreshing()
            }
        } failture: { (err) in
            self.tableView.mj_header?.endRefreshing()
        }
    }
    
    
    //MARK:--加载更多数据
    @objc func loadMoreData(){
        print("加载更多数据")
        let dic = [
            "user_token":UserToken as Any,
            "keyword":keyword as Any,
            "start_time":startTime as Any,
            "end_time":endTime as Any,
            "from":from as Any,
            "page":page as Any
        ]
        examineDbtInfo(dic) { (data) in
            let model = data as! examineDbtInfoModel
            if model.data?.count == 0 {
                self.tableView.mj_footer?.endRefreshingWithNoMoreData()
            }else{
                self.page += 1
                model.data?.forEach({ (item) in
                    self.dataArr.append(item)
                })
                self.tableView.reloadData()
                self.tableView.mj_footer?.endRefreshing()
            }
            
        } failture: { (err) in
            self.tableView.mj_footer?.endRefreshing()
        }
    }
    
    //MARK:--HeaderSelectView
    let changeBgView = UIView()
    weak var selectV: HeaderSelectView! = nil
    var showSelectvIndex = 0
    var selectIndexArr = [0,0,0]
    weak var showSelectV: SelectContentView! = nil
    weak var timeShowDView: TimeShowDownView! = nil
    var startTime :Int? = 0
    var endTime :Int? = 0
    func initHeaderSelectView() {
        self.view.addSubview(changeBgView)
        changeBgView.snp.makeConstraints { (make) in
            make.left.right.equalToSuperview()
            make.top.equalTo(search_view.snp_bottom)
            make.height.equalTo(45)
        }
        
        let selectView = HeaderSelectView()
        selectView.firstBtn.setTitle("申请时间", for: .normal)
        selectView.secBtn.setTitle("申请途径", for: .normal)
        selectView.thereBtn.removeFromSuperview()
        selectView.firstBtn.snp_makeConstraints { (make) in
            make.left.top.bottom.equalTo(0)
            make.width.equalTo(fullScreenWidth*0.5)
        }
        selectView.secBtn.snp_makeConstraints { (make) in
            make.right.top.bottom.equalTo(0)
            make.width.equalTo(fullScreenWidth*0.5)
        }
        changeBgView.addSubview(selectView)
        selectView.snp.makeConstraints { (make) in
            make.left.top.right.bottom.equalTo(0);
        }
        selectView.delegate = self
        selectV = selectView
    }
    //MARK:--下拉视图模块
    func showAction(sender: Int) {
        showSelectvIndex = sender
        switch sender {
        case 1:
            do {
                let showSelectView = SelectContentView()
                showSelectView.delegate = self
                self.view.addSubview(showSelectView)
                showSelectView.snp.makeConstraints { (make) in
                    make.left.right.bottom.equalToSuperview()
                    make.top.equalTo(changeBgView.snp_bottom)
                }
                showSelectV = showSelectView
                showSelectView.dataArr = ["全部","小程序", "格利食品网"]
                showSelectView.selectIndx = selectIndexArr[showSelectvIndex]
            }
            break
        case 0:
            do {
                //选择时间
                let timeShowDownView = TimeShowDownView()
                self.view.addSubview(timeShowDownView)
                timeShowDownView.snp.makeConstraints { (make) in
                    make.left.right.bottom.equalToSuperview()
                    make.top.equalTo(changeBgView.snp_bottom)
                }
                timeShowDView = timeShowDownView
                timeShowDownView.delegate = self
                if startTime != 0 {
                    var time = TimeInterval(exactly: startTime!)
                    timeShowDownView.BeginDate = Date(timeIntervalSince1970: time!)
                    time = TimeInterval(exactly: endTime!)
                    timeShowDownView.EndDate = Date(timeIntervalSince1970: time!)
                    timeShowDownView.setOld()
                }
            }
            break
         default: break
        }
    }
    
    func colseAction(sender: Int) {
        if showSelectV != nil {
            showSelectV.removeFromSuperview()
        }
        if timeShowDView != nil {
            timeShowDView.removeFromSuperview()
        }
    }
    
  
    //MARK:--TimeShowDownViewDeleagte
    func TimeShowDownViewRemoveForSup() {
        selectV.colseBytitleArr(arr: [], index:showSelectvIndex)
    }
    func TimeShowDownViewSelectMoreDate(beginDate: Date?, endginDate: Date?) {
        if beginDate == nil {
            startTime = 0
            endTime = 0
        }else{
            let timeInterval:TimeInterval = beginDate!.timeIntervalSince1970
            let timeIntervalEnd:TimeInterval = endginDate!.timeIntervalSince1970
            
            startTime = Int(timeInterval)
            endTime = Int(timeIntervalEnd)
        }
        
        tableView.mj_header?.beginRefreshing()
 
    }

}