jsdw_ios/QuickLocation/Section/Home/SearchLocation/SearchLocationVC.swift

90 lines
2.9 KiB
Swift

//
// SearchLocationVC.swift
// QuickLocation
//
// Created by on 2026/6/27.
//
import UIKit
import RxSwift
import RxCocoa
import Lottie
class SearchLocationVC: BaseViewController {
fileprivate var rootView: SearchLocationView!
override func loadView() {
rootView = SearchLocationView(frame: UIScreen.main.bounds)
view = rootView
}
private var searchBtn: UIButton {
rootView.searchBtn
}
private var code: Int = -999
private var memberData: [String : Any] = [:]
override func viewDidLoad() {
super.viewDidLoad()
searchBtn.rx.tap.subscribe(onNext: { _ in
guard let phone = self.rootView.phoneInputTF.text, phone.isPhoneNumber else {
DLToast.show(text: "请输入正确的手机号码")
return
}
self.requestSearchPhone(phone: phone)
self.rootView.searchProgressView.isHidden = false
self.rootView.searchPhoneLottieView.play()
self.rootView.playVideo {
self.rootView.videoView.isHidden = true
self.rootView.searchProgressView.isHidden = true
self.rootView.searchPhoneLottieView.stop()
guard self.code != -999 else {
DLToast.show(text: "发生未知错误,请重试")
return
}
if self.code == 0 {
AppRouter.push(Route.searchLocationResult, userInfo: ["phone": phone,
"code": self.code,
"memberData": self.memberData])
}
else {
AppRouter.push(Route.searchLocationResult, userInfo: ["phone": phone, "code": self.code])
}
}
}).disposed(by: disposeBag)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
rootView.startMarqueeAnimation()
}
// MARK: -
private func requestSearchPhone(phone: String) {
SystemService.search(op_type: "phone",
number: phone).subscribe(onNext: { response in
self.code = 0
/**
"group_name" : "",
"user_id" : "X16097989",
"is_online" : true,
"group_key" : "smartdrive\/X2804080\/1002",
"last_position" : "29.613138:106.509789:"
*/
if let data = response.data {
self.memberData = data
}
}, onError: { (error) in
guard let code = error.underlyingError?.code else { return }
self.code = code
}).disposed(by: disposeBag)
}
}