// // SingModeEventViewController.swift // LaserMethane // // Created by 203 on 2021/8/19. // import DefaultsKit import MJRefresh import UIKit class SingModeEventViewController: UIViewController { @IBOutlet var startTimePicker: UIDatePicker! @IBOutlet var endTimePicker: UIDatePicker! @IBOutlet var keywordsView: UITextField! @IBOutlet var eventTableView: UITableView! private let defaults = Defaults.shared private let taskShared = EventTaskRealmManager.shared private var rowsArray: [EventRowModel] = [] private var dformatter = DateFormatter() private var isUpdate: Bool = false private var startDate: String? private var endDate: String? private var keyWords: String? private var valueDelegate: TransferValueDelegate! override func viewDidLoad() { super.viewDidLoad() title = "事件查询(单机模式)" navigationController?.navigationBar.isTranslucent = false navigationController?.navigationBar.barTintColor = .systemBlue let dict: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white] navigationController?.navigationBar.titleTextAttributes = dict navigationController?.navigationBar.tintColor = .white // Do any additional setup after loading the view. setupTableView() // 默认加载数据 loadData(startTime: "", keywords: "") } func setupTableView() { eventTableView.register(UINib(nibName: "ListCustomCell", bundle: nil), forCellReuseIdentifier: "listCustomCell") eventTableView.dataSource = self eventTableView.delegate = self eventTableView.mj_header = MJRefreshNormalHeader { DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: { [self] in isUpdate = true loadData(startTime: "", keywords: "") eventTableView.mj_header?.endRefreshing() }) } eventTableView.mj_footer = MJRefreshBackNormalFooter { DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: { [self] in isUpdate = false loadData(startTime: startDate ?? "", keywords: keyWords ?? "") eventTableView.mj_footer?.endRefreshing() }) } } @IBAction func startSearchAction(_ sender: Any) { dformatter.dateFormat = "yyyy-MM-dd" startDate = dformatter.string(from: startTimePicker.date) keyWords = keywordsView.text loadData(startTime: startDate ?? "", keywords: keyWords ?? "") } func loadData(startTime: String, keywords: String) { if keywords != "" { let result = taskShared.queryTaskEventByName(name: keywords) if result.count == 0 { AlertHub.shared.showWaringAlert(controller: self, message: "查询失败,请重试") rowsArray.removeAll() } else { rowsArray = result } } else { rowsArray = taskShared.queryAllTaskEvent() } eventTableView.reloadData() } } extension SingModeEventViewController: UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { rowsArray.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell: ListCustomCell! = eventTableView.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 SingModeEventViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let detailViewController = SingModeEventDetailViewController(nibName: "SingModeEventDetailViewController", 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) } }