OrderRefunddetailsViewController.swift 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. //
  2. // OrderRefunddetailsViewController.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/5/16.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. enum OrderRefunddetailsVCType {
  10. case order
  11. case orderDetail
  12. case orderApplyRefund
  13. }
  14. class OrderRefunddetailsViewController: BaseViewController {
  15. var titles = ["退款编号","申请时间","订单状态","退款原因","退款金额"]
  16. var contents = ["","","","",""]
  17. var refundNo : String?
  18. var orderStatus : Int?
  19. var orderRefundDetailModel : OrderRefundDetailModel?
  20. var orderRefunddetailsVCType : OrderRefunddetailsVCType?
  21. typealias CancelCloSure = () -> Void?
  22. var cancelCloSure : CancelCloSure?
  23. override func viewDidLoad() {
  24. super.viewDidLoad()
  25. setupViews()
  26. setupLayouts()
  27. setupData()
  28. }
  29. override func setupViews() {
  30. navigationBar.title = "退款详情"
  31. navigationBar.onClickLeftButton = {
  32. [weak self] in
  33. if self?.orderRefunddetailsVCType == .order {
  34. self?.navigationController?.popViewController(animated: true)
  35. }else if self?.orderRefunddetailsVCType == .orderDetail {
  36. self?.navigationController?.popViewController(animated: true)
  37. }else if self?.orderRefunddetailsVCType == .orderApplyRefund {
  38. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "OrderApplyRefund"), object: nil)
  39. if let cancelCloSure = self?.cancelCloSure {
  40. cancelCloSure()
  41. }
  42. self?.navigationController?.popToClass(type: OrderDetailViewController.self)
  43. }
  44. }
  45. view.addSubview(tableView)
  46. }
  47. override func setupLayouts() {
  48. tableView.snp.makeConstraints { (make) in
  49. make.bottom.right.left.equalToSuperview()
  50. make.top.equalTo(kNavBarTotalHeight)
  51. }
  52. }
  53. lazy var tableView: UITableView = {
  54. let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
  55. tableView.separatorStyle = .none
  56. tableView.backgroundColor = kf7f8faColor
  57. tableView.dataSource = self
  58. tableView.delegate = self
  59. tableView.estimatedRowHeight = 0.000001
  60. tableView.estimatedSectionFooterHeight = 0.000001
  61. tableView.estimatedSectionHeaderHeight = 0.000001
  62. return tableView
  63. }()
  64. override func setupData() {
  65. if self.orderStatus == 1 {
  66. self.contents[2] = "待发货"
  67. }
  68. if self.orderStatus == 2 {
  69. self.contents[2] = "待收货"
  70. }
  71. if self.orderStatus == 3 {
  72. self.contents[2] = "配送中"
  73. }
  74. if self.orderStatus == 4 {
  75. self.contents[2] = "待自提"
  76. }
  77. tableView.addHeaderWithHeader(withBeginRefresh: true, animation: false) {
  78. [weak self] (page) in
  79. self?.orderPurchaseRefundDetail()
  80. }
  81. }
  82. func orderPurchaseRefundDetail() {
  83. SwiftMoyaNetWorkServiceOrder.shared().orderPurchaseRefundDetailApi(refundNo: refundNo ?? "") { [weak self] (orderRefundDetailModel) -> (Void) in
  84. self?.orderRefundDetailModel = orderRefundDetailModel as? OrderRefundDetailModel
  85. self?.contents[0] = self?.orderRefundDetailModel?.refundNo ?? ""
  86. self?.contents[1] = self?.orderRefundDetailModel?.createdAt ?? ""
  87. self?.contents[3] = self?.orderRefundDetailModel?.refundReason ?? ""
  88. self?.contents[4] = "\(priceConversionNone(price: self?.orderRefundDetailModel?.showRefundPrice ?? 0))元"
  89. self?.tableView.reloadData()
  90. }
  91. }
  92. }
  93. extension OrderRefunddetailsViewController : UITableViewDelegate, UITableViewDataSource {
  94. func numberOfSections(in tableView: UITableView) -> Int {
  95. return 2
  96. }
  97. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  98. switch section {
  99. case 0:
  100. if orderRefundDetailModel?.status == 3 {
  101. return 1
  102. }
  103. return 2
  104. default:
  105. return titles.count
  106. }
  107. }
  108. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  109. switch indexPath.section {
  110. case 0:
  111. if indexPath.row == 0 {
  112. let cell = OrderRefunddetailsStatusTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  113. cell.orderRefundDetailModel = orderRefundDetailModel
  114. return cell
  115. }else {
  116. let cell = OrderRefunddetailsTipsTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  117. cell.orderRefundDetailModel = orderRefundDetailModel
  118. return cell
  119. }
  120. default:
  121. let cell = OrderDetailInfoTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  122. cell.titles = titles
  123. cell.refundContents = contents
  124. return cell
  125. }
  126. }
  127. func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  128. switch indexPath.section {
  129. case 0:
  130. if indexPath.row == 0 {
  131. return 109
  132. }else {
  133. return UITableView.automaticDimension
  134. }
  135. default:
  136. return 33
  137. }
  138. }
  139. func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
  140. return 10
  141. }
  142. func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
  143. return nil
  144. }
  145. func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
  146. return 0
  147. }
  148. func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
  149. return nil
  150. }
  151. }