This commit is contained in:
DDIsFriend
2023-08-23 18:37:36 +08:00
parent 63ca919ed5
commit a48690ccf8
49 changed files with 8332 additions and 7622 deletions

View File

@@ -66,11 +66,25 @@ extension RescueController {
WEBTOOL.open(name: .todoList,appending: nil)
})
.disposed(by: disposeBag)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if USER.isLogin == true {
RQ.token(parameters: TokenParameters(refresh_token: USER.refreshToken!))
.subscribe(onSuccess: { _ in
})
.disposed(by: disposeBag)
}
NotificationCenter.default.post(name: NSNotification.Name(rawValue: Notification_reloadRescusControolerToDoMessageCount), object: nil)
// tabBar
preRefreshRelay
.observe(on: MainScheduler.instance)
.subscribe(onNext: {[weak self] _ in
NotificationCenter.default.post(name: NSNotification.Name(rawValue: Notification_reloadRescusControolerToDoMessageCount), object: nil)
self?.categoryView.reloadData()
})
.disposed(by: disposeBag)
}
}
@@ -153,6 +167,11 @@ extension RescuePendingOrderController {
self?.resultArr.removeAll { _model in
_model.userOrderId == model.userOrderId
}
if self?.resultArr.isEmpty == false {
self?.emptyView.isHidden = true
}else{
self?.emptyView.isHidden = false
}
self?.pendingOrderView.tableView.reloadData()
}else{
self?.view.dd_makeToast(response?.msg)
@@ -183,10 +202,15 @@ extension RescuePendingOrderController {
self?.resultArr.removeAll { _model in
_model.userOrderId == model.userOrderId
}
if self?.resultArr.isEmpty == false {
self?.emptyView.isHidden = true
}else{
self?.emptyView.isHidden = false
}
self?.pendingOrderView.tableView.reloadData()
ENTRY.dismiss(name: refuseOrderEntry)
}else{
self?.view.dd_makeToast(response?.msg)
UIApplication.shared.dd_keyWindow.dd_makeToast(response?.msg)
}
})
.disposed(by: disposeBag)
@@ -334,18 +358,34 @@ extension RescueIsIngController {
// MARK: JXCategoryViewDelegate,JXCategoryListContainerViewDelegate
extension RescueController : JXCategoryViewDelegate,JXCategoryListContainerViewDelegate {
func categoryView(_ categoryView: JXCategoryBaseView!, didSelectedItemAt index: Int) {
if index == 0 {
pendingTableView?.mj_header?.beginRefreshing()
}else if index == 1 {
dispatchTableView?.mj_header?.beginRefreshing()
}else if index == 2 {
isRescueTableView?.mj_header?.beginRefreshing()
}
}
func number(ofListsInlistContainerView listContainerView: JXCategoryListContainerView!) -> Int {
return categoryView.titles.count
}
func listContainerView(_ listContainerView: JXCategoryListContainerView!, initListFor index: Int) -> JXCategoryListContentViewDelegate! {
if index == 0 {
return RescuePendingOrderController.init()
let vc = RescuePendingOrderController.init()
pendingTableView = vc.pendingOrderView.tableView
return vc
}
if index == 1 {
return RescuePendingDispatchController.init()
let vc = RescuePendingDispatchController.init()
dispatchTableView = vc.pendingDispatchView.tableView
return vc
}
return RescueIsIngController.init()
let vc = RescueIsIngController.init()
isRescueTableView = vc.pendingIsIngView.tableView
return vc
}
}
@@ -425,7 +465,7 @@ extension RescuePendingOrderController : UITableViewDelegate,UITableViewDataSour
.subscribe(onNext: {[weak self] _ in
self?.acceptOrderRelay.accept(model)
})
.disposed(by: disposeBag)
.disposed(by: cell!.disposeBag)
return cell!
}
@@ -450,7 +490,6 @@ extension RescuePendingDispatchController : UITableViewDelegate,UITableViewDataS
cell = RescuePendingDispatchCell(style: .default, reuseIdentifier: "cell")
cell?.line.backgroundColor = .hex("E9E9EA").alpha(0.6)
cell?.merchantTitleLabel.text = "客商:"
cell?.positionTitleLabel.text = "所处位置:"
cell?.serviceTitleLabel.text = "事发地:"
cell?.contactButton.setTitle("联系客户", for: .normal)
cell?.dispatchButton.setTitle("指派车辆", for: .normal)
@@ -474,6 +513,20 @@ extension RescuePendingDispatchController : UITableViewDelegate,UITableViewDataS
})
}
if model.positionEnvironment?.label.isEmpty == false {
cell?.positionTitleLabel.text = "所处位置:"
cell?.positionLabel.text = model.positionEnvironment?.label
cell?.positionTitleLabel.snp.updateConstraints({ make in
make.top.equalTo(cell!.carTypeLabel.snp.bottom).offset(auto(8))
})
}else{
cell?.positionTitleLabel.text = nil
cell?.positionLabel.text = nil
cell?.positionTitleLabel.snp.updateConstraints({ make in
make.top.equalTo(cell!.carTypeLabel.snp.bottom).offset(auto(0))
})
}
cell?.serviceLabel.text = model.vehiclePointAddress
if model.vehiclePointRemark?.isEmpty == false {
@@ -624,9 +677,10 @@ extension RescueIsIngController : UITableViewDelegate,UITableViewDataSource {
let model = resultArr[indexPath.row]
cell?.typeLabel.text = model.taskServiceName
cell?.orderStatusLabel.text = model.taskOrderStatusString
cell?.orderNumLabel.text = model.orderCode
cell?.orderDateLabel.text = model.createTime
if model.driverName?.isEmpty == false && model.driverPhone?.isEmpty == false {
cell?.driverLabel.text = "\(model.driverName!)/\(model.driverPhone!)"
}else if model.driverName?.isEmpty == false {
@@ -652,6 +706,12 @@ extension RescueIsIngController : UITableViewDelegate,UITableViewDataSource {
})
}
if (model.taskOrderStatus ?? 0) >= 12001 {
cell?.dispatchButton.isHidden = true
}else{
cell?.dispatchButton.isHidden = false
}
cell?.dispatchButton.rx.tap
.observe(on: MainScheduler.instance)
.subscribe(onNext: {[weak self] _ in
@@ -672,7 +732,7 @@ extension RescueIsIngController : UITableViewDelegate,UITableViewDataSource {
.subscribe(onNext: { _ in
WEBTOOL.open(name: .reporting,appending: "&queryType=\(OrderTypeEnum.TO_RESCUE.rawValue)&userOrderId=\(model.userOrderId)&orderCode=\(model.orderCode)")
})
.disposed(by: disposeBag)
.disposed(by: cell!.disposeBag)
return cell!
}
@@ -724,6 +784,12 @@ class RescueController : DDViewController {
private let disposeBag = DisposeBag()
private let h5Relay = ReplayRelay<Any?>.create(bufferSize: 1)
private var pendingTableView : DDTableView?
private var dispatchTableView : DDTableView?
private var isRescueTableView : DDTableView?
private var preRefreshRelay = ReplayRelay<Any?>.create(bufferSize: 1)
override func viewDidLoad() {
super.viewDidLoad()
dd_navigationBarBackgroundColor = .hex("354683")
@@ -738,7 +804,7 @@ class RescueController : DDViewController {
categoryView.titles = ["待接单","待派车","救援中"]
categoryView.titleColor = .hex("737373").alpha(0.55)
categoryView.titleSelectedColor = .hex("3678FF")
categoryView.backgroundColor = .hex("F4F5F7")
categoryView.backgroundColor = .hex("FAFAFA")
categoryView.delegate = self
view.addSubview(categoryView)
categoryView.snp.makeConstraints { make in
@@ -778,12 +844,17 @@ class RescueController : DDViewController {
make.width.greaterThanOrEqualTo(40)
}
}
override func reloadData() {
super.reloadData()
preRefreshRelay.accept(nil)
}
}
// MARK:
class RescuePendingOrderController : DDViewController {
private let disposeBag = DisposeBag()
private let pendingOrderView = RescuePendingOrderView()
public let pendingOrderView = RescuePendingOrderView()
private var resultArr : [OrderListDataModel] = []
private var refreshRelay = ReplayRelay<Int>.create(bufferSize: 1)
private var pageNum : Int = 1
@@ -813,6 +884,7 @@ class RescuePendingOrderController : DDViewController {
make.height.equalTo(auto(94))
}
pendingOrderView.tableView.backgroundColor = .hex("FAFAFA")
pendingOrderView.tableView.delegate = self
pendingOrderView.tableView.dataSource = self
}
@@ -821,7 +893,7 @@ class RescuePendingOrderController : DDViewController {
// MARK:
class RescuePendingDispatchController : DDViewController {
private let disposeBag = DisposeBag()
private let pendingDispatchView = RescuePendingDispatchView()
public let pendingDispatchView = RescuePendingDispatchView()
private var resultArr : [OrderListDataModel] = []
private var environmentPics : [String] = []
private var refreshRelay = ReplayRelay<Int>.create(bufferSize: 1)
@@ -849,6 +921,7 @@ class RescuePendingDispatchController : DDViewController {
make.height.equalTo(auto(94))
}
pendingDispatchView.tableView.backgroundColor = .hex("FAFAFA")
pendingDispatchView.tableView.delegate = self
pendingDispatchView.tableView.dataSource = self
}
@@ -857,7 +930,7 @@ class RescuePendingDispatchController : DDViewController {
// MARK:
class RescueIsIngController : DDViewController {
private let disposeBag = DisposeBag()
private let pendingIsIngView = RescueIsIngView()
public let pendingIsIngView = RescueIsIngView()
private var resultArr : [OrderListDataModel] = []
private var refreshRelay = ReplayRelay<Int>.create(bufferSize: 1)
private var pageNum : Int = 1
@@ -884,6 +957,7 @@ class RescueIsIngController : DDViewController {
make.height.equalTo(auto(94))
}
pendingIsIngView.tableView.backgroundColor = .hex("FAFAFA")
pendingIsIngView.tableView.delegate = self
pendingIsIngView.tableView.dataSource = self
}
@@ -970,6 +1044,7 @@ class RescuePendingOrderCell : DDTableViewCell {
refuseButton.layer.borderColor = UIColor.hex("DDDDDD").cgColor
refuseButton.layer.borderWidth = 1
refuseButton.layer.cornerRadius = auto(4)
refuseButton.setImage(UIImage(named: "rescue_orderPending_refuse"), for: .normal)
radiusView.addSubview(refuseButton)
acceptButton.layer.cornerRadius = auto(4)
acceptButton.layer.masksToBounds = true
@@ -990,7 +1065,7 @@ class RescuePendingOrderCell : DDTableViewCell {
orderNumLabel.snp.makeConstraints { make in
make.centerY.equalTo(typeLabel)
make.left.equalTo(typeLabel.snp.right).offset(auto(20))
make.left.equalTo(typeLabel.snp.right).offset(auto(10))
}
line.snp.makeConstraints { make in
@@ -1081,6 +1156,7 @@ class RescuePendingOrderCell : DDTableViewCell {
override func layoutSubviews() {
super.layoutSubviews()
acceptLayer.frame = CGRectMake(0, 0, auto(80), auto(30))
refuseButton.dd_customize(with: .ImageLeftPaddingTitleRightWithWholeCenter, padding: 5)
}
override func prepareForReuse() {
@@ -1158,6 +1234,7 @@ class RescuePendingDispatchCell : DDTableViewCell {
contactButton = DDButton.dd_initCustom()
contactButton.titleLabel?.font = .mediumFont(auto(13))
contactButton.setTitleColor(.hex("000000").alpha(0.7), for: .normal)
contactButton.setImage(UIImage(named: "rescue_orderDispatch_call"), for: .normal)
dispatchButton = DDButton.dd_initCustom()
dispatchButton.setTitleColor(.hex("FFFFFF"), for: .normal)
dispatchButton.titleLabel?.font = .mediumFont(auto(13))
@@ -1225,7 +1302,7 @@ class RescuePendingDispatchCell : DDTableViewCell {
orderNumLabel.snp.makeConstraints { make in
make.centerY.equalTo(typeLabel)
make.left.equalTo(typeLabel.snp.right).offset(auto(20))
make.left.equalTo(typeLabel.snp.right).offset(auto(10))
}
line.snp.makeConstraints { make in
@@ -1258,12 +1335,24 @@ class RescuePendingDispatchCell : DDTableViewCell {
make.right.equalTo(-auto(20))
}
serviceTitleLabel.snp.makeConstraints { make in
positionTitleLabel.snp.makeConstraints { make in
make.top.equalTo(carTypeLabel.snp.bottom).offset(auto(8))
make.left.equalTo(typeLabel)
make.width.equalTo(merchantTitleLabel)
}
positionLabel.snp.makeConstraints { make in
make.top.equalTo(positionTitleLabel)
make.left.equalTo(positionTitleLabel.snp.right)
make.right.equalTo(-auto(20))
}
serviceTitleLabel.snp.makeConstraints { make in
make.top.equalTo(positionLabel.snp.bottom).offset(auto(8))
make.left.equalTo(typeLabel)
make.width.equalTo(merchantTitleLabel)
}
serviceLabel.snp.makeConstraints { make in
make.top.equalTo(serviceTitleLabel)
make.left.equalTo(serviceTitleLabel.snp.right)
@@ -1355,6 +1444,7 @@ class RescuePendingDispatchCell : DDTableViewCell {
override func layoutSubviews() {
super.layoutSubviews()
dispatchLayer.frame = CGRectMake(0, 0, auto(80), auto(30))
contactButton.dd_customize(with: .ImageLeftPaddingTitleRightWithWholeCenter, padding: 3)
}
override func prepareForReuse() {
@@ -1437,6 +1527,8 @@ class RescueIsIngCell : DDTableViewCell {
contentView.addSubview(radiusView)
radiusView.addSubview(typeLabel)
radiusView.addSubview(orderNumLabel)
orderStatusLabel.numberOfLines = 0
orderStatusLabel.textAlignment = .right
radiusView.addSubview(orderStatusLabel)
radiusView.addSubview(line)
radiusView.addSubview(orderDateLabel)
@@ -1466,15 +1558,17 @@ class RescueIsIngCell : DDTableViewCell {
make.left.equalTo(auto(18))
make.top.equalTo(auto(13))
}
orderNumLabel.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
orderNumLabel.snp.makeConstraints { make in
make.centerY.equalTo(typeLabel)
make.left.equalTo(typeLabel.snp.right).offset(auto(20))
make.left.equalTo(typeLabel.snp.right).offset(auto(10))
}
orderStatusLabel.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
orderStatusLabel.snp.makeConstraints { make in
make.right.equalTo(-auto(20))
make.centerY.equalTo(orderNumLabel)
make.left.equalTo(orderNumLabel.snp.right).offset(auto(5))
}
line.snp.makeConstraints { make in