| | |
| | | // |
| | | |
| | | import UIKit |
| | | import RxSwift |
| | | import RxRelay |
| | | import JQTools |
| | | |
| | | class HomeDetailAttachVC: BaseViewController { |
| | | let RefresgDetailAttach_Noti = Notification.Name.init("RefresgDetailAttach_Noti") |
| | | |
| | | @IBOutlet weak var attachTableView: UITableView! |
| | | class HomeDetailAttachVC: BaseViewController,Refreshable { |
| | | |
| | | @IBOutlet weak var attachTableView: BaseTableView! |
| | | private(set) var orderId:String! |
| | | public let refreshStatus = BehaviorSubject(value: RefreshStatus.others) |
| | | private var page = 1 |
| | | private var datas = [AttachmentRecordModel]() |
| | | |
| | | struct AttachmentType:HandyJSON { |
| | | var orderId = "" |
| | | var file = "" |
| | | var name = "" |
| | | var categroy:RecordEnum = .none |
| | | } |
| | | |
| | | required init(orderId:String) { |
| | | super.init(nibName: nil, bundle: nil) |
| | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | |
| | | attachTableView.separatorStyle = .none |
| | | attachTableView.register(UINib(nibName: "AttachHeadView", bundle: nil), forHeaderFooterViewReuseIdentifier: "_AttachHeadView") |
| | | attachTableView.register(UINib(nibName: "AttachTCell", bundle: nil), forCellReuseIdentifier: "_AttachTCell") |
| | | |
| | | self.refreshStatusBind(to: attachTableView, header: { [weak self] () in |
| | | self?.getData() |
| | | }, footer: { [weak self] () in |
| | | self?.getData(false) |
| | | }).disposed(by: disposeBag) |
| | | |
| | | attachTableView.jq_setEmptyView("Not data", image: UIImage(named: "empty"), foregroundColor: .gray, clouse: nil) |
| | | |
| | | DispatchQueue.main.asyncAfter(deadline: .now()+0.2) { |
| | | self.refreshStatus.onNext(.beingHeaderRefresh) |
| | | } |
| | | } |
| | | |
| | | |
| | | override func setRx() { |
| | | NotificationCenter.default.rx.notification(RefresgDetailAttach_Noti, object: nil).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] noti in |
| | | self?.refreshStatus.onNext(.beingHeaderRefresh) |
| | | }) { error in |
| | | |
| | | }.disposed(by: disposeBag) |
| | | } |
| | | |
| | | private func getData(_ isHeader:Bool = true){ |
| | | |
| | | if isHeader{ |
| | | page = 1 |
| | | }else{ |
| | | page += 1 |
| | | } |
| | | |
| | | Services.orderAttachment(id: orderId, page: page).subscribe(onNext: { data in |
| | | if let model = data.data{ |
| | | if isHeader{ |
| | | self.datas.removeAll() |
| | | self.refreshStatus.onNext(.endHeaderRefresh) |
| | | self.refreshStatus.onNext(.resetNoMoreData) |
| | | }else{ |
| | | if model.records.count == 0{ |
| | | self.refreshStatus.onNext(.noMoreData) |
| | | }else{ |
| | | self.refreshStatus.onNext(.endFooterRefresh) |
| | | } |
| | | } |
| | | self.datas.append(contentsOf: model.records) |
| | | self.attachTableView.reloadData() |
| | | } |
| | | }) { error in |
| | | alert(msg: error.localizedDescription) |
| | | self.refreshStatus.onNext(.endFooterRefresh) |
| | | self.refreshStatus.onNext(.endHeaderRefresh) |
| | | }.disposed(by: disposeBag) |
| | | } |
| | | |
| | | @IBAction func addAttachmentAction(_ sender: UIButton) { |
| | | AttachTypeView.show(orderId: orderId) {[weak self] ()in |
| | | self?.refreshStatus.onNext(.beingHeaderRefresh) |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | extension HomeDetailAttachVC:UITableViewDelegate{ |
| | | |
| | |
| | | |
| | | extension HomeDetailAttachVC:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return 20 |
| | | return datas.count |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { |
| | |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let data = datas[indexPath.row] |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_AttachTCell") as! AttachTCell |
| | | cell.recordModel = data |
| | | return cell |
| | | } |
| | | |