// // EventTaskViewController.swift // LaserMethane // // Created by 203 on 2021/8/6. // import Alamofire import KeychainAccess import SwiftyJSON import UIKit class EventTaskViewController: UIViewController, TransferIdDelegate { @IBOutlet var taskTableView: UITableView! private let keychain = Keychain() 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 = keychain[Constant.ServerConfig.rawValue] let eventListURL = baseURL! + Constant.searchByInspect.rawValue Alamofire.request(eventListURL, method: .get, parameters: ["inspectionId": id!], headers: ["token": keychain[Constant.Token.rawValue]!]).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) } }