Newer
Older
LaserMethane / LaserMethane / ViewController / Inspect / EventTaskViewController.swift
//
//  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)
    }
}