|
@@ -9,6 +9,14 @@
|
|
|
import UIKit
|
|
|
|
|
|
class OrderDetailViewController: BaseViewController {
|
|
|
+
|
|
|
+ let orderModel : OrderModel? = nil
|
|
|
+
|
|
|
+ var orderDetailModel : OrderModel?
|
|
|
+
|
|
|
+ var titles = ["订单编码","下单时间","支付时间","支付方式","订单备注"]
|
|
|
+
|
|
|
+ var contents = ["","","","",""]
|
|
|
|
|
|
override func viewDidLoad() {
|
|
|
super.viewDidLoad()
|
|
@@ -29,12 +37,124 @@ class OrderDetailViewController: BaseViewController {
|
|
|
}
|
|
|
|
|
|
override func setupData() {
|
|
|
-
|
|
|
+ orderDetailView.tableView.addHeaderWithHeader(withBeginRefresh: true, animation: false) {
|
|
|
+ [weak self] (page) in
|
|
|
+ self?.orderPurchaseDetailApi()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// 订单详情接口
|
|
|
+ func orderPurchaseDetailApi() {
|
|
|
+ SwiftMoyaNetWorkServiceOrder.shared().orderPurchaseDetailApi(purchaseNo:orderModel?.purchaseNo ?? "") {
|
|
|
+ [weak self] (orderDetailModel) -> (Void) in
|
|
|
+ self?.orderDetailModel = orderDetailModel as? OrderModel
|
|
|
+ self?.orderDetailView.tableView.reloadData()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private lazy var orderDetailView: OrderDetailView = {
|
|
|
let orderDetailView = OrderDetailView()
|
|
|
+ orderDetailView.tableView.dataSource = self
|
|
|
+ orderDetailView.tableView.delegate = self
|
|
|
return orderDetailView
|
|
|
}()
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+extension OrderDetailViewController : UITableViewDelegate, UITableViewDataSource {
|
|
|
+ func numberOfSections(in tableView: UITableView) -> Int {
|
|
|
+ return 4
|
|
|
+ }
|
|
|
+
|
|
|
+ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
|
+ switch section {
|
|
|
+ case 0:
|
|
|
+ return 2
|
|
|
+ case 1:
|
|
|
+ if self.orderDetailModel?.deliverType == 1 { //自提
|
|
|
+ return 1
|
|
|
+ }else { // 快递
|
|
|
+ return 2
|
|
|
+ }
|
|
|
+ case 2:
|
|
|
+ if self.orderDetailModel?.detail?.isEmpty ?? true {
|
|
|
+ return 2
|
|
|
+ }else {
|
|
|
+ return 2 + (self.orderDetailModel?.detail?.count)!
|
|
|
+ }
|
|
|
+ case 3:
|
|
|
+ switch self.orderDetailModel?.status {
|
|
|
+ case 0: // 0-待付款
|
|
|
+ return 2
|
|
|
+ default: //1-待发货 2-已发货 3-配送中 4-待自提 5-已自提 6-已完成 7-已关闭
|
|
|
+ return titles.count
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
|
+ switch indexPath.section {
|
|
|
+ case 0:
|
|
|
+ if indexPath.row == 0 {
|
|
|
+ let cell = OrderDetailStatusTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
|
|
|
+ cell.orderModel = self.orderDetailModel
|
|
|
+ return cell
|
|
|
+ }else {
|
|
|
+ let cell = OrderDetailContactAddressTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
|
|
|
+ cell.orderModel = self.orderDetailModel
|
|
|
+ return cell
|
|
|
+ }
|
|
|
+ case 1:
|
|
|
+ let cell = OrderDetailExpressSelfMentionTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
|
|
|
+ cell.orderModel = self.orderDetailModel
|
|
|
+ return cell
|
|
|
+ case 2:
|
|
|
+ let detail = self.orderDetailModel?.detail
|
|
|
+ switch indexPath.row {
|
|
|
+ case 0:
|
|
|
+ let cell = OrderShopAndStatusTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
|
|
|
+ cell.orderModel = self.orderDetailModel
|
|
|
+ return cell
|
|
|
+ case detail!.count + 1:
|
|
|
+ let cell = OrderTotalAmountTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
|
|
|
+ cell.orderModel = self.orderDetailModel
|
|
|
+ return cell
|
|
|
+ default:
|
|
|
+ let detail = self.orderDetailModel?.detail
|
|
|
+ let cell = OrderProductTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
|
|
|
+ cell.orderModelDetailModel = detail?[indexPath.row]
|
|
|
+ return cell
|
|
|
+ }
|
|
|
+ case 3:
|
|
|
+ let cell = OrderDetailInfoTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
|
|
|
+ return cell
|
|
|
+ default:
|
|
|
+ return UITableViewCell()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
|
|
+ return UITableView.automaticDimension
|
|
|
+ }
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+}
|
|
|
+
|