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