// // RetailManageViewController.swift // GeliBusinessPlatform // // Created by 刘俊宏 on 2020/11/3. // Copyright © 2020 junye lu. All rights reserved. // import UIKit class RetailManageViewController: BaseViewController,UITableViewDelegate,UITableViewDataSource,RetailManageFooterViewDelagte, GeliAlertViewDelegate{ var page : Int = 0 let UserToken = UserDefaults.standard.value(forKey: "user_token") var startTime :Int? = 0 var endTime :Int? = 0 var dbt_type : Int = 0 var dbt_people : Int = 1 //分销人类型(1我的订单分销,2代销订单) var keyword = "" var isUpData = false{ didSet{ if !isUpData { if listView != nil { listView.mj_header?.beginRefreshing() } } } } @IBOutlet weak var listView: UITableView! @IBOutlet weak var searchBgView: UIView! @IBOutlet weak var changeBgView: UIView! //MARK:--VC 初始化 convenience init(title: String) { self.init(title: title, content: "") } init(title: String, content: String) { super.init(nibName: nil, bundle: nil) self.title = title if self.title == "代销订单" { dbt_people = 2 } } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidLoad() { super.viewDidLoad() listView.register(UINib(nibName: "RetailManageViewCell", bundle: nil), forCellReuseIdentifier: "RetailManageViewCell") listView.separatorStyle = .none listView.delegate = self listView.dataSource = self headerMJ.setRefreshingTarget(self, refreshingAction: #selector(loadData)) listView.mj_header = headerMJ footerMJ.setRefreshingTarget(self, refreshingAction: #selector(loadMoreData)) listView.mj_footer = footerMJ listView.mj_header?.beginRefreshing() } //MARK:--loadData //MARK:--列表数据源 var dataArr:Array<dbtOrderLisDataModel> = [] // var dataArr2:Array<dbtOrderLisDataModel> = [] @objc func loadData(){ isUpData = true //结算方式(0全部1人工结算 2自动结算(3待自动结算、4已自动结算)(5待人工结算6已人工结算)) page = 1 let dic = ["user_token":UserToken as Any,"keyword":keyword,"page":page,"dbt_type":dbt_type,"dbt_people":dbt_people,"start_time":startTime as Any,"end_time":endTime as Any] dbtOrderLis(dic) { (data) in let dataM = data as! dbtOrderLisModel self.dataArr.removeAll() dataM.data?.forEach({ (model) in self.dataArr.append(model) }) self.listView.mj_header?.endRefreshing() self.listView.reloadData() if dataM.data?.count == 0 { self.listView.mj_footer?.endRefreshingWithNoMoreData() }else{ self.listView.mj_footer?.endRefreshing() } self.page = 2 } failture: { (error) in self.listView.mj_header?.endRefreshing() } } @objc func loadMoreData(){ let dic = ["user_token":UserToken as Any,"keyword":keyword,"page":page,"dbt_type":dbt_type,"dbt_people":dbt_people,"start_time":startTime as Any,"end_time":endTime as Any] dbtOrderLis(dic) { (data) in let dataM = data as! dbtOrderLisModel if dataM.data?.count == 0 { self.listView.mj_footer?.endRefreshingWithNoMoreData() }else{ self.page += 1 dataM.data?.forEach({ (model) in self.dataArr.append(model) }) self.listView.reloadData() self.listView.mj_footer?.endRefreshing() } } failture: { (error) in self.listView.mj_footer?.endRefreshing() } } func numberOfSections(in tableView: UITableView) -> Int { return self.dataArr.count } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let goodArrModel = self.dataArr[section] return goodArrModel.order_goods!.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "RetailManageViewCell") as! RetailManageViewCell let goodArrModel = self.dataArr[indexPath.section] let goodModel = goodArrModel.order_goods![indexPath.row] cell.goodsLbl.text = goodModel.goods_name cell.numLbl.text = "x" + StringByInt(number: goodModel.goods_number!) cell.priceLbl.text = "¥" + goodModel.amount! if (indexPath.row + 1) == goodArrModel.order_goods?.count { cell.dotImgV.isHidden = true }else{ cell.dotImgV.isHidden = false } return cell } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { if self.title == "代销订单" { let vc = RetailManageDetailViewController() let goodArrModel = self.dataArr[indexPath.section] // vc.orderId = goodArrModel.order_id vc.orderId = 12637 vc.dbt_shop_id = goodArrModel.shop_id self.navigationController?.pushViewController(vc, animated: true) }else{ let vc = RetailManageDetailViewController() let goodArrModel = self.dataArr[indexPath.section] // vc.orderId = goodArrModel.order_id vc.orderId = 12637 self.navigationController?.pushViewController(vc, animated: true) } } @objc func didselectCellHorF(sender:UITapGestureRecognizer){ if self.title == "代销订单" { let vc = RetailManageDetailViewController() let goodArrModel = self.dataArr[sender.view!.tag] vc.orderId = goodArrModel.order_id vc.dbt_shop_id = goodArrModel.shop_id self.navigationController?.pushViewController(vc, animated: true) }else{ let vc = RetailManageDetailViewController() let goodArrModel = self.dataArr[sender.view!.tag] vc.orderId = goodArrModel.order_id self.navigationController?.pushViewController(vc, animated: true) } } func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { let headerV = UIView() let tap = UITapGestureRecognizer(target: self, action: #selector(didselectCellHorF)) headerV.addGestureRecognizer(tap) headerV.tag = section let contentV = RetailManageHeaderView() headerV.addSubview(contentV) contentV.snp_makeConstraints { (make) in make.left.top.right.bottom.equalToSuperview() } let model = self.dataArr[section] contentV.snNumLbl.text = model.order_sn var dbt_typeStr = "人工结算" if model.dbt_type == 2 { dbt_typeStr = "自动结算" } switch model.pay_status { case 2: contentV.stateLbl.text = "已付款/" + dbt_typeStr break case 10: contentV.stateLbl.text = "月结/" + dbt_typeStr break case 11: contentV.stateLbl.text = "已退款/" + dbt_typeStr break default: contentV.stateLbl.text = "未付款/" + dbt_typeStr break } return headerV } func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 50 } func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { let footerV = UIView() let tap = UITapGestureRecognizer(target: self, action: #selector(didselectCellHorF)) footerV.addGestureRecognizer(tap) footerV.tag = section let contentV = RetailManageFooterView() footerV.addSubview(contentV) contentV.snp_makeConstraints { (make) in make.left.top.right.bottom.equalToSuperview() } let model = self.dataArr[section] contentV.priceLbl.text = model.sum_amount! if model.commission_status == 1 { contentV.moneyLbl.text = model.sum_commission_val! + "(已结算)" }else{ contentV.moneyLbl.text = model.sum_commission_val! + "(未结算)" } contentV.actionBtn.tag = section contentV.delgate = self return footerV } func tapRetailManageFooterBtnAction(sender: Int) { //标记为人工结算 let alertView = GeliAlertView(frame: self.view.window!.bounds) alertView.delegate = self; alertView.tishiLbl.text = "" alertView.titileLbl.text = "是否把该订单标记为已人工结算?" alertView.rightBtn.setAttributedTitle(NSAttributedString(string: "确定"), for: .normal) alertView.rightBtn.tag = sender self.view.window?.addSubview(alertView) } func sureGeliAlertViewAction(sender: UIButton) { HUD.flash(.progress) let model = self.dataArr[sender.tag] editCommissionStatus(["user_token":UserToken as Any,"order_id":model.order_id as Any]) { (data) in HUD.hide() model.commission_status = 1 HUD.flash(.labeledSubSuccess(subtitle: "确认成功"),delay: 1.2) self.listView.reloadSections([sender.tag], with: .none) } failture: { (error) in } } func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { let model = self.dataArr[section] //已结算 if model.commission_status == 1 { return 48 } //或 自动结算 不需要显示标记 if model.dbt_type == 2 { return 48 } return 100 } }