From a8c2422e12becdfc3da0907ff5b589f7f86d0dd5 Mon Sep 17 00:00:00 2001 From: younger_times <841720330@qq.com> Date: 星期六, 06 五月 2023 16:18:46 +0800 Subject: [PATCH] 完成功能 --- BrokerDriver/Home/VC/HomeDetailAttachVC.swift | 2 BrokerDriver/Profile/VC/PersonalCenterVC.swift | 10 - BrokerDriver/Network/Services.swift | 18 ++ BrokerDriver/Home/VC/HomeDetailMapVC.swift | 55 +++++--- BrokerDriver/Enums.swift | 5 BrokerDriver/Home/VC/HomeDetailContentVC.swift | 71 ++++++++++- BrokerDriver/Login/VC/ForgotPwdVC.swift | 71 ++++++++++- BrokerDriver/Tools/AttachTypeView.swift | 2 BrokerDriver/ViewModels/OrderViewModel.swift | 8 BrokerDriver.xcodeproj/project.pbxproj | 4 BrokerDriver/Home/TCell/HomeDetailContentTCell.swift | 4 BrokerDriver/Login/VC/ForgotPwdVC.xib | 12 + BrokerDriver/Exception/UIButton+Exception.swift | 33 +++++ BrokerDriver/Tools/CommonAlertView.xib | 10 BrokerDriver/Home/VC/HomeDetailContentVC.xib | 3 BrokerDriver/Home/VC/HomePageVC.swift | 20 +++ 16 files changed, 266 insertions(+), 62 deletions(-) diff --git a/BrokerDriver.xcodeproj/project.pbxproj b/BrokerDriver.xcodeproj/project.pbxproj index ee19099..42f47f5 100644 --- a/BrokerDriver.xcodeproj/project.pbxproj +++ b/BrokerDriver.xcodeproj/project.pbxproj @@ -77,6 +77,7 @@ 13A0133D29FBB41000537A4F /* PhotoPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13A0133C29FBB41000537A4F /* PhotoPickerView.swift */; }; 13A0133F29FBB41700537A4F /* PhotoPickerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13A0133E29FBB41700537A4F /* PhotoPickerView.xib */; }; 13F47D422A05F5F900B8AB63 /* GoogleModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F47D412A05F5F900B8AB63 /* GoogleModel.swift */; }; + 13F47D442A063DE900B8AB63 /* UIButton+Exception.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F47D432A063DE900B8AB63 /* UIButton+Exception.swift */; }; 13F536B229F7D0DF00A7937A /* NoteContentTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F536B029F7D0DF00A7937A /* NoteContentTCell.swift */; }; 13F536B329F7D0DF00A7937A /* NoteContentTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13F536B129F7D0DF00A7937A /* NoteContentTCell.xib */; }; 13F536B729F7D6CF00A7937A /* Services.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F536B529F7D6CF00A7937A /* Services.swift */; }; @@ -166,6 +167,7 @@ 13A0133C29FBB41000537A4F /* PhotoPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoPickerView.swift; sourceTree = "<group>"; }; 13A0133E29FBB41700537A4F /* PhotoPickerView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PhotoPickerView.xib; sourceTree = "<group>"; }; 13F47D412A05F5F900B8AB63 /* GoogleModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GoogleModel.swift; sourceTree = "<group>"; }; + 13F47D432A063DE900B8AB63 /* UIButton+Exception.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIButton+Exception.swift"; sourceTree = "<group>"; }; 13F536B029F7D0DF00A7937A /* NoteContentTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoteContentTCell.swift; sourceTree = "<group>"; }; 13F536B129F7D0DF00A7937A /* NoteContentTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NoteContentTCell.xib; sourceTree = "<group>"; }; 13F536B529F7D6CF00A7937A /* Services.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Services.swift; sourceTree = "<group>"; }; @@ -288,6 +290,7 @@ children = ( 138DA4D029F6305600A71FE7 /* Colors+Exception.swift */, 1309ADFA29F7840500F5FA26 /* Currency+Exception.swift */, + 13F47D432A063DE900B8AB63 /* UIButton+Exception.swift */, ); path = Exception; sourceTree = "<group>"; @@ -643,6 +646,7 @@ 13F536BB29F8CC0500A7937A /* UserModel.swift in Sources */, 13F536B729F7D6CF00A7937A /* Services.swift in Sources */, 13F536C429FA14A000A7937A /* Enums.swift in Sources */, + 13F47D442A063DE900B8AB63 /* UIButton+Exception.swift in Sources */, 138DA4D629F6305600A71FE7 /* BaseViewController.swift in Sources */, 1309AE0329F788D900F5FA26 /* PersonalDataVC.swift in Sources */, 1309ADFB29F7840500F5FA26 /* Currency+Exception.swift in Sources */, diff --git a/BrokerDriver/Enums.swift b/BrokerDriver/Enums.swift index 11ee9fc..1e09edc 100644 --- a/BrokerDriver/Enums.swift +++ b/BrokerDriver/Enums.swift @@ -45,6 +45,8 @@ case InYardByEmpty = 11 /// 取消订单 case Cancel = 16 + /// 运回码头 + case BackYard = 18 /// 转换 var transStr:String{ @@ -66,6 +68,7 @@ case .PendingPickupInCheckPoint:return "Checked(Pending pickup)" case .InWarehouse:return "In Warehouse" case .Cancel:return "Cancel" + case .BackYard: return "Back yard" case .None:return "Invalid Staute" } } @@ -105,6 +108,8 @@ return UIImage(named: "E") case .InYardByEmpty: return UIImage(named: "E") + case .BackYard: + return UIImage(named: "E") case .Complete,.Cancel,.None,.Pending: return UIImage(named: "icon_id") } diff --git a/BrokerDriver/Exception/UIButton+Exception.swift b/BrokerDriver/Exception/UIButton+Exception.swift new file mode 100644 index 0000000..0ee9e81 --- /dev/null +++ b/BrokerDriver/Exception/UIButton+Exception.swift @@ -0,0 +1,33 @@ +// +// UIButton+Exception.swift +// BrokerDriver +// +// Created by 无故事王国 on 2023/5/6. +// + +import Foundation + +extension UIButton{ + public func openCountDown(_ t:Int = 59,defultTitle:String = "Obtain code"){ + var time = t //倒计时时间 + let queue = DispatchQueue.global() + let timer = DispatchSource.makeTimerSource(flags: [], queue: queue) + timer.schedule(wallDeadline: DispatchWallTime.now(), repeating: .seconds(1)); + timer.setEventHandler(handler: { + if time <= 0 { + timer.cancel() + DispatchQueue.main.async(execute: { + self.setTitle(defultTitle, for: .normal) + self.isUserInteractionEnabled = true + }); + }else { + DispatchQueue.main.async(execute: { + self.setTitle("\(time)s", for: .normal) + self.isUserInteractionEnabled = false + }); + } + time -= 1 + }); + timer.resume() + } +} diff --git a/BrokerDriver/Home/TCell/HomeDetailContentTCell.swift b/BrokerDriver/Home/TCell/HomeDetailContentTCell.swift index 7a33876..5b9f8a8 100644 --- a/BrokerDriver/Home/TCell/HomeDetailContentTCell.swift +++ b/BrokerDriver/Home/TCell/HomeDetailContentTCell.swift @@ -18,7 +18,7 @@ var dicts = Dictionary<String,Any>(){ didSet{ - view_VStack.removeArrangedSubviews() + view_VStack.qmui_removeAllSubviews() let results = dicts.keys.sorted().filter({$0 != "1_title" && $0 != "2_address" && $0 != "7_danger" && $0 != "8_weight"}) if let title = dicts["1_title"] as? String{ @@ -31,7 +31,7 @@ for key in results { let v1 = createContentLabel(.left, text: key.components(separatedBy: "_").last!) - let v2 = createContentLabel(.right, text: dicts[key] as! String) + let v2 = createContentLabel(.right, text: "\(dicts[key] ?? "")") let hStackView = UIStackView(arrangedSubviews: [v1,v2], axis: .horizontal) view_VStack.addArrangedSubview(hStackView) } diff --git a/BrokerDriver/Home/VC/HomeDetailAttachVC.swift b/BrokerDriver/Home/VC/HomeDetailAttachVC.swift index 70d46d0..033926b 100644 --- a/BrokerDriver/Home/VC/HomeDetailAttachVC.swift +++ b/BrokerDriver/Home/VC/HomeDetailAttachVC.swift @@ -26,7 +26,7 @@ var orderId = "" var file = "" var name = "" - var categroy:RecordEnum = .none + var category:RecordEnum = .none } required init(orderId:String) { diff --git a/BrokerDriver/Home/VC/HomeDetailContentVC.swift b/BrokerDriver/Home/VC/HomeDetailContentVC.swift index a2ce63b..2f7e543 100644 --- a/BrokerDriver/Home/VC/HomeDetailContentVC.swift +++ b/BrokerDriver/Home/VC/HomeDetailContentVC.swift @@ -20,6 +20,7 @@ @IBOutlet weak var contentTableHeiCons: NSLayoutConstraint! @IBOutlet weak var label_BLN: UILabel! @IBOutlet weak var label_status: UILabel! + @IBOutlet weak var view_btn: UIView! var adapterViewController:FFAdapterViewController! @@ -35,7 +36,22 @@ label_status.text = m.nextStatus.transStr contentTableView.reloadData() cargoTableview.reloadData() + view_btn.isHidden = m.status == .Complete + + var startCoordinate:CLLocationCoordinate2D? + var endCoordinate:CLLocationCoordinate2D? + + if m.lat != 0 && m.lon != 0 { + startCoordinate = CLLocationCoordinate2D(latitude: m.lat, longitude: m.lon) + } + + if m.eLat != 0 && m.eLon != 0{ + endCoordinate = CLLocationCoordinate2D(latitude: m.eLat, longitude: m.eLon) + } + + let tuple = (startCoordinate,endCoordinate) + NotificationCenter.default.post(name: UpdateMap_Noti, object: tuple) } } } @@ -65,13 +81,7 @@ // footviewHeiCons.constant = UIDevice.jq_safeEdges.bottom + 44.0 - Services.orderInfo(id: orderId, type:style).subscribe(onNext: { [weak self] data in - if let model = data.data{ - self?.model = model - } - }) { error in - - }.disposed(by: disposeBag) + getData() } required init(orderId:String,style:HomePageVC.PageStyle) { @@ -82,6 +92,16 @@ override func setRx() { + } + + private func getData(){ + Services.orderInfo(id: orderId, type:style).subscribe(onNext: { [weak self] data in + if let model = data.data{ + self?.model = model + } + }) { error in + + }.disposed(by: disposeBag) } @@ -96,10 +116,43 @@ //到达码头:提示上传 //运输中:上传POD //运回码头:提示上传 - print("---->") + guard let m = model else { return } + if m.nextStatus == .ArrivedPort{ + CommonAlertView.show(title: "Prompt!", content: "You need to upload gate out ticket", bt1: "Not upload yet", bt2: "To upload") { [weak self] in + AttachTypeView.show(orderId: m.orderId) { + self?.changeStatus(orderId: m.orderId) + } + } + } else if m.nextStatus == .Transiting{ + CommonAlertView.show(title: "Prompt!", content: "You need to upload POD", bt1: "Not upload yet", bt2: "To upload") { [weak self] in + AttachTypeView.show(orderId: m.orderId) { + self?.changeStatus(orderId: m.orderId) + } + } + }else if m.nextStatus == .BackYard{ + CommonAlertView.show(title: "Prompt!", content: "You need to upload gate in ticket", bt1: "Not upload yet", bt2: "To upload") { [weak self] in + AttachTypeView.show(orderId: m.orderId) { + self?.changeStatus(orderId: m.orderId) + } + } + }else{ + changeStatus(orderId: orderId) + } } - + private func changeStatus(orderId:String){ + Services.nextStatus(id: orderId).subscribe(onNext: { data in + if data.code == 200{ + self.getData() + //Update Home data status. + NotificationCenter.default.post(name: RefreshHomePage_Noti, object: true) + }else{ + alert(msg: data.msg) + } + }) { error in + alert(msg: error.localizedDescription) + }.disposed(by: disposeBag) + } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") diff --git a/BrokerDriver/Home/VC/HomeDetailContentVC.xib b/BrokerDriver/Home/VC/HomeDetailContentVC.xib index a53296e..2c1d1c6 100644 --- a/BrokerDriver/Home/VC/HomeDetailContentVC.xib +++ b/BrokerDriver/Home/VC/HomeDetailContentVC.xib @@ -22,6 +22,7 @@ <outlet property="label_type" destination="5Xf-g6-HxA" id="pwC-nh-cre"/> <outlet property="scrollView" destination="RZZ-lC-T7W" id="Arq-58-WYM"/> <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> + <outlet property="view_btn" destination="ZL1-Nv-BlK" id="BuF-BT-Uh3"/> </connections> </placeholder> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> @@ -187,7 +188,7 @@ <constraint firstItem="aoZ-mE-xqn" firstAttribute="top" secondItem="Sh7-2N-mvt" secondAttribute="bottom" id="wDA-wF-QYZ"/> </constraints> </scrollView> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZL1-Nv-BlK" customClass="TapButton" customModule="BrokerDriver" customModuleProvider="target"> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZL1-Nv-BlK"> <rect key="frame" x="0.0" y="774" width="393" height="44"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="42Z-5A-7T8"> diff --git a/BrokerDriver/Home/VC/HomeDetailMapVC.swift b/BrokerDriver/Home/VC/HomeDetailMapVC.swift index 3aa927e..c811473 100644 --- a/BrokerDriver/Home/VC/HomeDetailMapVC.swift +++ b/BrokerDriver/Home/VC/HomeDetailMapVC.swift @@ -8,6 +8,9 @@ import UIKit import GoogleMaps + +let UpdateMap_Noti = Notification.Name.init("UpdateMap_Noti") + class HomeDetailMapVC: BaseViewController { private var troubleBtn:UIButton! @@ -51,6 +54,14 @@ } + override func setRx() { + NotificationCenter.default.rx.notification(UpdateMap_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] noti in + if let tuple = noti.object as? (CLLocationCoordinate2D?,CLLocationCoordinate2D?){ + self?.updateBounds(carCoordinate: tuple.0, terminalCoordinate: tuple.1) + } + }).disposed(by: disposeBag) + } + required init(orderId:String) { super.init(nibName: nil, bundle: nil) self.orderId = orderId @@ -63,7 +74,6 @@ override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) view.addSubview(mapView) - updateBounds(carCoordinate: CLLocationCoordinate2D(latitude: 30.572961, longitude: 104.166301), terminalCoordinate: CLLocationCoordinate2D(latitude: 30.572995, longitude: 104.066315)) } @@ -89,17 +99,30 @@ } } - func updateBounds(carCoordinate:CLLocationCoordinate2D,terminalCoordinate:CLLocationCoordinate2D){ - destionMarker.position = terminalCoordinate - carMarker.position = carCoordinate - destionMarker.map = mapView - carMarker.map = mapView + func updateBounds(carCoordinate:CLLocationCoordinate2D?,terminalCoordinate:CLLocationCoordinate2D?){ - let bounds = GMSCoordinateBounds(coordinate: carCoordinate, coordinate: terminalCoordinate) - let update = GMSCameraUpdate.fit(bounds, with: UIEdgeInsets(top: 30, left: 30, bottom: 30, right: 30)) - mapView.moveCamera(update) - updatePath(start: carCoordinate, terminal: terminalCoordinate) + var centerCoordiante:CLLocationCoordinate2D? + if carCoordinate != nil{ + carMarker.position = carCoordinate! + carMarker.map = mapView + centerCoordiante = carCoordinate + } + + if terminalCoordinate != nil{ + destionMarker.position = terminalCoordinate! + destionMarker.map = mapView + centerCoordiante = terminalCoordinate + } + + if carCoordinate != nil && terminalCoordinate != nil{ + let bounds = GMSCoordinateBounds(coordinate: carCoordinate!, coordinate: terminalCoordinate!) + let update = GMSCameraUpdate.fit(bounds, with: UIEdgeInsets(top: 30, left: 30, bottom: 30, right: 30)) + mapView.moveCamera(update) + updatePath(start: carCoordinate!, terminal: terminalCoordinate!) + }else if centerCoordiante != nil{ + mapView.animate(toLocation: centerCoordiante!) + } } private func updatePath(start:CLLocationCoordinate2D,terminal:CLLocationCoordinate2D){ @@ -110,18 +133,6 @@ polyline.path = path polyline.map = mapView - - -// let span = GMSStyleSpan(style: .gradient(from: UIColor(hexStr: "#FED703"), to: .red)) -// polyline.spans = [span] - -// GoogleServices.directionsLine(origin: GoogleServices.DirectionType.byCoordinates(start), destination: GoogleServices.DirectionType.byCoordinates(terminal)).subscribe(onNext: {data in -// -// -// }) { error in -// -// }.disposed(by: disposeBag) - } @objc func troubleAction(){ diff --git a/BrokerDriver/Home/VC/HomePageVC.swift b/BrokerDriver/Home/VC/HomePageVC.swift index f18e026..3e9df63 100644 --- a/BrokerDriver/Home/VC/HomePageVC.swift +++ b/BrokerDriver/Home/VC/HomePageVC.swift @@ -10,6 +10,8 @@ import RxRelay import FFPage +let RefreshHomePage_Noti = Notification.Name(rawValue: "RefreshHomePage_Noti") + class HomePageVC: BaseViewController,Refreshable { enum PageStyle:Int{ @@ -26,6 +28,7 @@ private var containerNo:String? private var date:String? var adapterViewController:FFAdapterViewController! + private var needRefresh:Bool = false // Refresh data when didLoad lazy private var tableView:BaseTableView = { let tableView = BaseTableView(frame: .zero, style: .plain) @@ -44,6 +47,13 @@ required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + if needRefresh{ + self.refreshStatus.onNext(.beingHeaderRefresh) + } } override func viewDidLoad() { @@ -66,6 +76,14 @@ } } + override func setRx() { + NotificationCenter.default.rx.notification(RefreshHomePage_Noti).take(until: self.rx.deallocated).subscribe(onNext: { noti in + if let status = noti.object as? Bool{ + self.needRefresh = status + } + }).disposed(by: disposeBag) + } + private func getData(_ isHeader:Bool = true){ if isHeader{ @@ -73,7 +91,7 @@ }else{ page += 1 } - + needRefresh = false Services.getList(type: style, pageNumber: page,containerNo: containerNo,date: date).subscribe(onNext: { data in if let models = data.data{ if isHeader{ diff --git a/BrokerDriver/Login/VC/ForgotPwdVC.swift b/BrokerDriver/Login/VC/ForgotPwdVC.swift index f4fdc5a..8fdf8fd 100644 --- a/BrokerDriver/Login/VC/ForgotPwdVC.swift +++ b/BrokerDriver/Login/VC/ForgotPwdVC.swift @@ -6,23 +6,78 @@ // import UIKit +import QMUIKit class ForgotPwdVC: BaseViewController { + @IBOutlet weak var tf_email: QMUITextField! + @IBOutlet weak var tf_code: QMUITextField! + @IBOutlet weak var tf_pwd: QMUITextField! + @IBOutlet weak var tf_apwd: QMUITextField! + + override func viewDidLoad() { super.viewDidLoad() - } + private func check(getCode:Bool = false)->Bool{ + guard !tf_email.isEmpty else { + alert(msg: "Please input email");return false + } - /* - // MARK: - Navigation + guard tf_email.text!.jq_isEmail else { + alert(msg: "Invaild email");return false + } - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. + if getCode{return true} + + guard !tf_code.isEmpty else { + alert(msg: "Please input code");return false + } + + guard !tf_pwd.isEmpty else { + alert(msg: "Please input password");return false + } + + guard !tf_apwd.isEmpty else { + alert(msg: "Please input password again");return false + } + + guard tf_apwd.text != tf_pwd.text else { + alert(msg: "Entered passwords differ");return false + } + + return true } - */ + @IBAction func getCodeAction(_ sender: UIButton) { + if check(getCode:true){ + Services.sendCode(email: tf_email.text!).subscribe(onNext: { data in + if data.code == 200{ + sender.openCountDown() + }else{ + alert(msg: data.msg) + } + }) { error in + alert(msg: error.localizedDescription) + }.disposed(by: disposeBag) + } + } + + @IBAction func submitAction(_ sender: UIButton) { + if check(){ + Services.forget(code: tf_code.text!, password: tf_pwd.text!, username: tf_email.text!).subscribe(onNext: {data in + if data.code == 200{ + alert(msg: "Update successed!") + DispatchQueue.main.asyncAfter(deadline: .now()+1) { + self.navigationController?.popViewController() + } + }else{ + alert(msg: data.msg) + } + }) { error in + alert(msg: error.localizedDescription) + }.disposed(by: disposeBag) + } + } } diff --git a/BrokerDriver/Login/VC/ForgotPwdVC.xib b/BrokerDriver/Login/VC/ForgotPwdVC.xib index fe78a76..a795c25 100644 --- a/BrokerDriver/Login/VC/ForgotPwdVC.xib +++ b/BrokerDriver/Login/VC/ForgotPwdVC.xib @@ -12,6 +12,10 @@ <objects> <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ForgotPwdVC" customModule="BrokerDriver" customModuleProvider="target"> <connections> + <outlet property="tf_apwd" destination="bgL-fq-zvQ" id="QpV-EH-khd"/> + <outlet property="tf_code" destination="fg6-Qi-snT" id="Tt5-Sc-WcW"/> + <outlet property="tf_email" destination="IEb-4W-7L7" id="y3o-zO-5N6"/> + <outlet property="tf_pwd" destination="0q9-av-whH" id="NrY-FS-cYy"/> <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> </connections> </placeholder> @@ -84,6 +88,9 @@ <state key="normal" title="Obtain code"> <color key="titleColor" red="0.98431372549019602" green="0.73725490196078436" blue="0.047058823529411764" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </state> + <connections> + <action selector="getCodeAction:" destination="-1" eventType="touchUpInside" id="65K-BO-eZ6"/> + </connections> </button> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> @@ -177,6 +184,9 @@ <real key="value" value="22"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> + <connections> + <action selector="submitAction:" destination="-1" eventType="touchUpInside" id="ZRE-2c-esp"/> + </connections> </button> </subviews> <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> @@ -196,7 +206,7 @@ </objects> <resources> <namedColor name="ThemeColor"> - <color red="0.99215686274509807" green="0.82745098039215681" blue="0.015686274509803921" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <color red="0.99199998378753662" green="0.82700002193450928" blue="0.016000000759959221" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> diff --git a/BrokerDriver/Network/Services.swift b/BrokerDriver/Network/Services.swift index 8789b24..f05d82b 100644 --- a/BrokerDriver/Network/Services.swift +++ b/BrokerDriver/Network/Services.swift @@ -147,13 +147,29 @@ return NetworkRequest.request(params: params, method: .get, progress: false) } - class func nextStatus(id:Int)->Observable<BaseResponse<SimpleModel>>{ + class func nextStatus(id:String)->Observable<BaseResponse<SimpleModel>>{ let params = ParamsAppender.build(url: All_Url) .interface(url: "/api/index/nextStatus") .append(key: "id", value: id) return NetworkRequest.request(params: params, method: .get, progress: true) } + class func sendCode(email:String)->Observable<BaseResponse<SimpleModel>>{ + let params = ParamsAppender.build(url: All_Url) + .interface(url: "/gunsApi/sendCode") + .append(key: "email", value: email) + return NetworkRequest.request(params: params, method: .post, progress: true) + } + + class func forget(code:String,password:String,username:String)->Observable<BaseResponse<SimpleModel>>{ + let params = ParamsAppender.build(url: All_Url) + .interface(url: "/gunsApi/forget") + .append(key: "code", value: code) + .append(key: "password", value: password) + .append(key: "username", value: username) + return NetworkRequest.request(params: params, method: .post, progress: true) + } + } class GoogleServices:NSObject{ diff --git a/BrokerDriver/Profile/VC/PersonalCenterVC.swift b/BrokerDriver/Profile/VC/PersonalCenterVC.swift index 6bd2e69..e666495 100644 --- a/BrokerDriver/Profile/VC/PersonalCenterVC.swift +++ b/BrokerDriver/Profile/VC/PersonalCenterVC.swift @@ -42,12 +42,10 @@ } @IBAction func logOutAction(_ sender: UIButton) { - showAlert(title: "Would you like to log out?", message: nil, buttonTitles: ["YES","NO"], highlightedButtonIndex: 0) { index in - if index == 0{ - let nav = BaseNavigationController(rootViewController: LoginVC()) - UserViewModel.clearUserInfo() - screnDelegate?.window?.rootViewController = nav - } + CommonAlertView.show(title: "Prompt!", content: "Would you like to log out?", bt1: "No just yet", bt2: "Logout") { + let nav = BaseNavigationController(rootViewController: LoginVC()) + UserViewModel.clearUserInfo() + screnDelegate?.window?.rootViewController = nav } } } diff --git a/BrokerDriver/Tools/AttachTypeView.swift b/BrokerDriver/Tools/AttachTypeView.swift index 56a7674..912729c 100644 --- a/BrokerDriver/Tools/AttachTypeView.swift +++ b/BrokerDriver/Tools/AttachTypeView.swift @@ -58,7 +58,7 @@ @IBAction func submitAction(_ sender: UIButton) { guard uploadModel != nil else {alert(msg: "Please upload image");return} - let model = HomeDetailAttachVC.AttachmentType(orderId: orderId, file: uploadModel!.url, name: uploadModel!.deleteUrl, categroy: recordEnum) + let model = HomeDetailAttachVC.AttachmentType(orderId: orderId, file: uploadModel!.url, name: uploadModel!.deleteUrl, category: recordEnum) Services.addOrderAttachment(model: model).subscribe(onNext: { data in if data.code == 200{ alert(msg: "Upload successed") diff --git a/BrokerDriver/Tools/CommonAlertView.xib b/BrokerDriver/Tools/CommonAlertView.xib index f4788a0..3157fd7 100644 --- a/BrokerDriver/Tools/CommonAlertView.xib +++ b/BrokerDriver/Tools/CommonAlertView.xib @@ -36,8 +36,8 @@ <nil key="textColor"/> <nil key="highlightedColor"/> </label> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hMJ-QZ-T7l"> - <rect key="frame" x="33" y="89" width="250" height="19.333333333333329"/> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hMJ-QZ-T7l"> + <rect key="frame" x="15" y="89" width="287" height="19.333333333333329"/> <fontDescription key="fontDescription" type="system" pointSize="16"/> <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="0.55000000000000004" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> @@ -99,9 +99,9 @@ <constraint firstItem="RKt-Eh-MbE" firstAttribute="centerX" secondItem="nQ4-TJ-E8O" secondAttribute="centerX" id="76j-8q-Jm6"/> <constraint firstAttribute="trailing" secondItem="ui3-nY-QhB" secondAttribute="trailing" constant="10" id="CyU-gA-1lv"/> <constraint firstItem="ZrZ-uP-15H" firstAttribute="top" secondItem="hMJ-QZ-T7l" secondAttribute="bottom" constant="40" id="FT3-od-qfo"/> - <constraint firstItem="hMJ-QZ-T7l" firstAttribute="leading" secondItem="nQ4-TJ-E8O" secondAttribute="leading" constant="33" id="Ivj-vx-dlx"/> + <constraint firstItem="hMJ-QZ-T7l" firstAttribute="leading" secondItem="nQ4-TJ-E8O" secondAttribute="leading" constant="15" id="Ivj-vx-dlx"/> <constraint firstItem="RKt-Eh-MbE" firstAttribute="top" secondItem="nQ4-TJ-E8O" secondAttribute="top" constant="39" id="LRl-DK-Fpa"/> - <constraint firstAttribute="trailing" secondItem="hMJ-QZ-T7l" secondAttribute="trailing" constant="34" id="SH6-jE-kji"/> + <constraint firstAttribute="trailing" secondItem="hMJ-QZ-T7l" secondAttribute="trailing" constant="15" id="SH6-jE-kji"/> <constraint firstItem="hMJ-QZ-T7l" firstAttribute="top" secondItem="RKt-Eh-MbE" secondAttribute="bottom" constant="25" id="mV3-XK-aBH"/> <constraint firstItem="ZrZ-uP-15H" firstAttribute="centerX" secondItem="nQ4-TJ-E8O" secondAttribute="centerX" id="nvP-Qg-oVU"/> <constraint firstAttribute="bottom" secondItem="ZrZ-uP-15H" secondAttribute="bottom" constant="21" id="wuB-hC-BYA"/> @@ -131,7 +131,7 @@ </view> </objects> <resources> - <image name="btn_close" width="14" height="14"/> + <image name="btn_close" width="21.333333969116211" height="21.333333969116211"/> <namedColor name="ThemeColor"> <color red="0.99199998378753662" green="0.82700002193450928" blue="0.016000000759959221" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> diff --git a/BrokerDriver/ViewModels/OrderViewModel.swift b/BrokerDriver/ViewModels/OrderViewModel.swift index 7a5d524..1a40fba 100644 --- a/BrokerDriver/ViewModels/OrderViewModel.swift +++ b/BrokerDriver/ViewModels/OrderViewModel.swift @@ -22,11 +22,11 @@ struct OrderDetailModel:HandyJSON { var containerNumber: String? - var eLat: String = "" - var eLon: String = "" - var lat: String = "" + var eLat: CLLocationDistance = 0 + var eLon: CLLocationDistance = 0 + var lat: CLLocationDistance = 0 var list = [Dictionary<String,Any>]() - var lon: String = "" + var lon: CLLocationDistance = 0 var orderId: String = "" var orderType: String = "" var status: OrderType = .None -- Gitblit v1.7.1