// // OrderRefunddetailsViewController.swift // RainbowPlanet // // Created by 南鑫林 on 2019/5/16. // Copyright © 2019 RainbowPlanet. All rights reserved. // import UIKit enum OrderRefunddetailsVCType { case order case orderDetail case orderApplyRefund } class OrderRefunddetailsViewController: BaseViewController { var titles = ["退款编号","申请时间","订单状态","退款原因","退款金额"] var contents = ["","","","",""] var refundNo : String? var orderStatus : Int? var orderRefundDetailModel : OrderRefundDetailModel? var orderRefunddetailsVCType : OrderRefunddetailsVCType? typealias CancelCloSure = () -> Void? var cancelCloSure : CancelCloSure? override func viewDidLoad() { super.viewDidLoad() setupViews() setupLayouts() setupData() } override func setupViews() { navigationBar.title = "退款详情" navigationBar.onClickLeftButton = { [weak self] in if self?.orderRefunddetailsVCType == .order { self?.navigationController?.popViewController(animated: true) }else if self?.orderRefunddetailsVCType == .orderDetail { self?.navigationController?.popViewController(animated: true) }else if self?.orderRefunddetailsVCType == .orderApplyRefund { NotificationCenter.default.post(name: NSNotification.Name(rawValue: "OrderApplyRefund"), object: nil) if let cancelCloSure = self?.cancelCloSure { cancelCloSure() } self?.navigationController?.popToClass(type: OrderDetailViewController.self) } } view.addSubview(tableView) } override func setupLayouts() { tableView.snp.makeConstraints { (make) in make.bottom.right.left.equalToSuperview() make.top.equalTo(kNavBarTotalHeight) } } lazy var tableView: UITableView = { let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped) tableView.separatorStyle = .none tableView.backgroundColor = kf7f8faColor tableView.dataSource = self tableView.delegate = self tableView.estimatedRowHeight = 0.000001 tableView.estimatedSectionFooterHeight = 0.000001 tableView.estimatedSectionHeaderHeight = 0.000001 return tableView }() override func setupData() { if self.orderStatus == 1 { self.contents[2] = "待发货" } if self.orderStatus == 2 { self.contents[2] = "待收货" } if self.orderStatus == 3 { self.contents[2] = "配送中" } if self.orderStatus == 4 { self.contents[2] = "待自提" } tableView.addHeaderWithHeader(withBeginRefresh: true, animation: false) { [weak self] (page) in self?.orderPurchaseRefundDetail() } } func orderPurchaseRefundDetail() { SwiftMoyaNetWorkServiceOrder.shared().orderPurchaseRefundDetailApi(refundNo: refundNo ?? "") { [weak self] (orderRefundDetailModel) -> (Void) in self?.orderRefundDetailModel = orderRefundDetailModel as? OrderRefundDetailModel self?.contents[0] = self?.orderRefundDetailModel?.refundNo ?? "" self?.contents[1] = self?.orderRefundDetailModel?.createdAt ?? "" self?.contents[3] = self?.orderRefundDetailModel?.refundReason ?? "" self?.contents[4] = "\(priceConversionNone(price: self?.orderRefundDetailModel?.showRefundPrice ?? 0))元" self?.tableView.reloadData() } } } extension OrderRefunddetailsViewController : UITableViewDelegate, UITableViewDataSource { func numberOfSections(in tableView: UITableView) -> Int { return 2 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { switch section { case 0: if orderRefundDetailModel?.status == 3 { return 1 } return 2 default: return titles.count } } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { switch indexPath.section { case 0: if indexPath.row == 0 { let cell = OrderRefunddetailsStatusTableViewCell.cellWith(tableView: tableView, indexPath: indexPath) cell.orderRefundDetailModel = orderRefundDetailModel return cell }else { let cell = OrderRefunddetailsTipsTableViewCell.cellWith(tableView: tableView, indexPath: indexPath) cell.orderRefundDetailModel = orderRefundDetailModel return cell } default: let cell = OrderDetailInfoTableViewCell.cellWith(tableView: tableView, indexPath: indexPath) cell.titles = titles cell.refundContents = contents return cell } } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { switch indexPath.section { case 0: if indexPath.row == 0 { return 109 }else { return UITableView.automaticDimension } default: return 33 } } func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 10 } func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { return nil } func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return 0 } func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { return nil } }