// // EventTaskViewController.swift // LaserMethane // // Created by 203 on 2021/8/6. // import Alamofire import DefaultsKit import SwiftyJSON import UIKit class EventTaskViewController: UIViewController, TransferIdDelegate { @IBOutlet var taskTableView: UITableView! private let defaults = Defaults.shared private var id: String? private var rowsArray = [ListModel]() private var valueDelegate: TransferValueDelegate! override func viewDidLoad() { super.viewDidLoad() taskTableView.register( UINib(nibName: "ListCustomCell", bundle: nil), forCellReuseIdentifier: "listCustomCell" ) taskTableView.dataSource = self taskTableView.delegate = self // 查询事件列表 let baseURL = defaults.get(for: serverConfigKey)! let eventListURL = baseURL + Constant.searchByInspect.rawValue Alamofire.request( eventListURL, method: .get, parameters: ["inspectionId": id!], headers: ["token": defaults.get(for: tokenKey)!] ).responseJSON { [self] response in switch response.result { case let .success(value): rowsArray = EventTaskModel(respJson: JSON(value)).data.list // 必须要重新加载数据,否则不走数据绑定 taskTableView.reloadData() case .failure: AlertHub.shared.showWaringAlert(controller: self, message: "查询事件清单失败") } } } func transfer(controller: UIViewController, dic: NSDictionary) { id = dic["inspectionId"] as? String } } extension EventTaskViewController: UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { rowsArray.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell: ListCustomCell! = taskTableView.dequeueReusableCell( withIdentifier: "listCustomCell", for: indexPath ) as? ListCustomCell cell.selectionStyle = .none let row = (indexPath as NSIndexPath).row let model = rowsArray[row] cell.nameLabel.text = model.name! + "-" + model.type! cell.dateLabel.text = model.createTime! cell.userLabel.text = model.user! return cell } } extension EventTaskViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let detailViewController = EventDetailViewController(nibName: "EventDetailViewController", bundle: nil) // 委托代理 valueDelegate = detailViewController // 实现代理的方法,传值 let row = (indexPath as NSIndexPath).row let model = rowsArray[row] let transferDic: NSDictionary = [ "createTime": model.createTime!, "description": model.description!, "data": model.data!, "images": model.images! ] valueDelegate.transfer(controller: self, dic: transferDic) navigationController?.pushViewController(detailViewController, animated: true) } }