| | |
| | | |
| | | import UIKit |
| | | import QMUIKit |
| | | import HandyJSON |
| | | |
| | | class PassengerInfo:HandyJSON{ |
| | | var name = "" |
| | | var phone:String? |
| | | |
| | | required init(){} |
| | | |
| | | convenience init(name:String,phone:String? = nil){ |
| | | self.init() |
| | | self.name = name |
| | | self.phone = phone |
| | | } |
| | | } |
| | | |
| | | class ReasonforTravelVC: YYViewController { |
| | | |
| | | class PassengerInfo{ |
| | | var name = "" |
| | | var phone:String? |
| | | |
| | | convenience init(name:String,phone:String? = nil){ |
| | | self.init() |
| | | self.name = name |
| | | self.phone = phone |
| | | } |
| | | } |
| | | |
| | | @IBOutlet weak var scrollButtomCons: NSLayoutConstraint! |
| | | @IBOutlet weak var tableView: UITableView! |
| | |
| | | @IBOutlet weak var view_addPassenger: UIView! |
| | | var passengers = [PassengerInfo]() |
| | | var reasonModels = [ReasonModel]() |
| | | |
| | | var selectIndex = 0 |
| | | var viewModel:TravelViewModel! |
| | | var selectIndex = Set<Int>() |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | |
| | | scrollButtomCons.constant = app.window?.safeAreaInsets.bottom ?? 0 |
| | | let h = ceil(8 / 4.0) * 30.0 + floor(8 / 4.0) * 10.0 |
| | | collectViewHeiCons.constant = h |
| | | |
| | | if viewModel.passengers.value.count == 0{ |
| | | passengers.append(PassengerInfo(name: app.userInfo.nickName, phone: app.userInfo.phone)) |
| | | }else{ |
| | | passengers = viewModel.passengers.value |
| | | } |
| | | |
| | | passengers.append(PassengerInfo(name: "杨锴", phone: "18111223301")) |
| | | tableViewHeiCons.constant = 40 * Double(passengers.count) |
| | | |
| | | btn_cost.isSelected = viewModel.officalPaymentType.value == .selfPay |
| | | btn_companyCost.isSelected = viewModel.officalPaymentType.value == .company |
| | | textView.text = self.viewModel.trailContentReason.value |
| | | |
| | | APIManager.shared.provider.rx.request(.getBusinessReason).mapThenValidate([ReasonModel].self).subscribe { result in |
| | | switch result{ |
| | |
| | | self.reasonModels = m ?? [] |
| | | let h = ceil(Double(self.reasonModels.count) / 4.0) * 30.0 + floor(Double(self.reasonModels.count) / 4.0) * 10.0 |
| | | self.collectViewHeiCons.constant = h |
| | | |
| | | for (index,v) in self.reasonModels.enumerated(){ |
| | | |
| | | if let values = self.viewModel.trailReason.value{ |
| | | if values.contains(v.name){ |
| | | self.selectIndex.insert(index) |
| | | } |
| | | } |
| | | } |
| | | self.collectionView.reloadData() |
| | | case .failure(let error): |
| | | alert(text: error.localizedDescription) |
| | |
| | | textView.rx.text.changed.subscribe(onNext: {text in |
| | | self.label_limit.text = "\(text?.count ?? 0)/50" |
| | | |
| | | }).disposed(by: disposeBag) |
| | | |
| | | textView.rx.text.orEmpty.changed.subscribe(onNext: {text in |
| | | self.viewModel.trailContentReason.accept(text) |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @IBAction func closeAction(_ sender: Any) { |
| | | self.removeViewAndControllerFromParentViewController() |
| | | } |
| | | |
| | | @IBAction func completeAction(_ sender: UIButton) { |
| | | self.viewModel.trailContentReason.accept(textView.text) |
| | | var cotnent = [String]() |
| | | for v in selectIndex{ |
| | | cotnent.append(reasonModels[v].name) |
| | | } |
| | | |
| | | guard cotnent.count != 0 else {alert(text: "请选择出行事由");return} |
| | | |
| | | viewModel.trailReason.accept(cotnent.joined(separator: ",")) |
| | | viewModel.officalPaymentType.accept(btn_cost.isSelected ? .selfPay:.company) |
| | | viewModel.passengers.accept(passengers) |
| | | self.removeViewAndControllerFromParentViewController() |
| | | } |
| | | } |
| | |
| | | |
| | | extension ReasonforTravelVC:UICollectionViewDelegate{ |
| | | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
| | | selectIndex = indexPath.row |
| | | if selectIndex.contains(indexPath.row){ |
| | | selectIndex.remove(indexPath.row) |
| | | }else{ |
| | | selectIndex.insert(indexPath.row) |
| | | } |
| | | collectionView.reloadData() |
| | | } |
| | | } |
| | |
| | | cell.titleL.cornerRadius = 2 |
| | | cell.titleL.backgroundColor = .white |
| | | cell.titleL.font = UIFont.systemFont(ofSize: 12, weight: .medium) |
| | | if selectIndex == indexPath.row{ |
| | | if selectIndex.contains(indexPath.row){ |
| | | cell.titleL.borderColor = UIColor(hexString: "#FF884D")! |
| | | cell.titleL.textColor = UIColor(hexString: "#FF884D")! |
| | | }else{ |