From 945655d9f53293d7da9d2d11363b3230f6e53bbe Mon Sep 17 00:00:00 2001
From: younger_times <841720330@qq.com>
Date: 星期三, 26 四月 2023 18:17:28 +0800
Subject: [PATCH] API 接入

---
 BrokerDriver/Profile/VC/PersonalWalletVC.swift                            |   28 +
 BrokerDriver/Network/NetworkRequest.swift                                 |  336 +++++++++++++++
 BrokerDriver/Network/Services.swift                                       |   71 +++
 BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/userdefault@3x.png |    0 
 BrokerDriver/Assets.xcassets/Icon/empty.imageset/empty.png                |    0 
 BrokerDriver/Def.swift                                                    |   38 +
 BrokerDriver/Assets.xcassets/Icon/empty.imageset/Contents.json            |   21 
 BrokerDriver/Profile/VC/CompanyVC.swift                                   |   21 
 BrokerDriver/ViewModels/OrderViewModel.swift                              |   22 +
 BrokerDriver/Profile/VC/PersonalDataVC.swift                              |   23 +
 BrokerDriver.xcodeproj/project.pbxproj                                    |   48 ++
 BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/Contents.json      |   22 +
 BrokerDriver/ViewModels/UserViewModel.swift                               |   38 +
 BrokerDriver/Profile/VC/PersonalDataVC.xib                                |  338 ++++++++++----
 BrokerDriver/Profile/VC/CompanyVC.xib                                     |   18 
 BrokerDriver/Home/VC/HomePageVC.swift                                     |   39 +
 BrokerDriver/Profile/TCell/WalletTCell.xib                                |    5 
 BrokerDriver/Profile/VC/PersonalCenterVC.swift                            |   22 +
 BrokerDriver/Profile/VC/PersonalWalletVC.xib                              |    5 
 Podfile                                                                   |    4 
 BrokerDriver/Base/BaseViewController.swift                                |    6 
 BrokerDriver/Login/VC/LoginVC.swift                                       |   49 +
 BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/userdefault@2x.png |    0 
 BrokerDriver/Models/OrderModel.swift                                      |    8 
 BrokerDriver/Profile/TCell/WalletTCell.swift                              |   23 +
 BrokerDriver/Profile/VC/PersonalCenterVC.xib                              |    7 
 BrokerDriver/SceneDelegate.swift                                          |   11 
 BrokerDriver/Models/UserModel.swift                                       |   99 ++++
 28 files changed, 1,162 insertions(+), 140 deletions(-)

diff --git a/BrokerDriver.xcodeproj/project.pbxproj b/BrokerDriver.xcodeproj/project.pbxproj
index f51bdff..b4002af 100644
--- a/BrokerDriver.xcodeproj/project.pbxproj
+++ b/BrokerDriver.xcodeproj/project.pbxproj
@@ -60,6 +60,12 @@
 		139F0F8529F68B90007D9EA4 /* BaseTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139F0F8429F68B90007D9EA4 /* BaseTCell.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 */; };
+		13F536B829F7D6CF00A7937A /* NetworkRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F536B629F7D6CF00A7937A /* NetworkRequest.swift */; };
+		13F536BB29F8CC0500A7937A /* UserModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F536BA29F8CC0500A7937A /* UserModel.swift */; };
+		13F536BE29F8CECE00A7937A /* UserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F536BD29F8CECE00A7937A /* UserViewModel.swift */; };
+		13F536C029F927E900A7937A /* OrderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F536BF29F927E900A7937A /* OrderViewModel.swift */; };
+		13F536C229F927FC00A7937A /* OrderModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F536C129F927FC00A7937A /* OrderModel.swift */; };
 		656E15B4DAA88146F5E490CA /* Pods_BrokerDriver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E99D0F4A48F512570D96537 /* Pods_BrokerDriver.framework */; };
 /* End PBXBuildFile section */
 
@@ -119,6 +125,12 @@
 		139F0F8429F68B90007D9EA4 /* BaseTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTCell.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>"; };
+		13F536B629F7D6CF00A7937A /* NetworkRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkRequest.swift; sourceTree = "<group>"; };
+		13F536BA29F8CC0500A7937A /* UserModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserModel.swift; sourceTree = "<group>"; };
+		13F536BD29F8CECE00A7937A /* UserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserViewModel.swift; sourceTree = "<group>"; };
+		13F536BF29F927E900A7937A /* OrderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderViewModel.swift; sourceTree = "<group>"; };
+		13F536C129F927FC00A7937A /* OrderModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderModel.swift; sourceTree = "<group>"; };
 		33DCC1D819EF0A04257FB4A8 /* Pods-BrokerDriver.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BrokerDriver.release.xcconfig"; path = "Target Support Files/Pods-BrokerDriver/Pods-BrokerDriver.release.xcconfig"; sourceTree = "<group>"; };
 		36C7396011423ADA377B2856 /* Pods-BrokerDriver.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BrokerDriver.debug.xcconfig"; path = "Target Support Files/Pods-BrokerDriver/Pods-BrokerDriver.debug.xcconfig"; sourceTree = "<group>"; };
 		8E99D0F4A48F512570D96537 /* Pods_BrokerDriver.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BrokerDriver.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -185,6 +197,9 @@
 		138DA4B629F62F9500A71FE7 /* BrokerDriver */ = {
 			isa = PBXGroup;
 			children = (
+				13F536B929F8CBF400A7937A /* Models */,
+				13F536BC29F8CEC100A7937A /* ViewModels */,
+				13F536B429F7D6CF00A7937A /* Network */,
 				1309ADF629F77F5C00F5FA26 /* Resouses */,
 				13941CE029F7638600AB569F /* Profile */,
 				138DA4B729F62F9500A71FE7 /* AppDelegate.swift */,
@@ -309,6 +324,33 @@
 				13F536B129F7D0DF00A7937A /* NoteContentTCell.xib */,
 			);
 			path = TCell;
+			sourceTree = "<group>";
+		};
+		13F536B429F7D6CF00A7937A /* Network */ = {
+			isa = PBXGroup;
+			children = (
+				13F536B529F7D6CF00A7937A /* Services.swift */,
+				13F536B629F7D6CF00A7937A /* NetworkRequest.swift */,
+			);
+			path = Network;
+			sourceTree = "<group>";
+		};
+		13F536B929F8CBF400A7937A /* Models */ = {
+			isa = PBXGroup;
+			children = (
+				13F536BA29F8CC0500A7937A /* UserModel.swift */,
+				13F536C129F927FC00A7937A /* OrderModel.swift */,
+			);
+			path = Models;
+			sourceTree = "<group>";
+		};
+		13F536BC29F8CEC100A7937A /* ViewModels */ = {
+			isa = PBXGroup;
+			children = (
+				13F536BD29F8CECE00A7937A /* UserViewModel.swift */,
+				13F536BF29F927E900A7937A /* OrderViewModel.swift */,
+			);
+			path = ViewModels;
 			sourceTree = "<group>";
 		};
 		489CFEB74E41CC03BD0818E7 /* Pods */ = {
@@ -469,14 +511,19 @@
 				138DA4D829F6305600A71FE7 /* Colors+Exception.swift in Sources */,
 				13941CDF29F6901D00AB569F /* BaseTableView.swift in Sources */,
 				1309AE0A29F78D9200F5FA26 /* HomeDetailMapVC.swift in Sources */,
+				13F536C029F927E900A7937A /* OrderViewModel.swift in Sources */,
 				139F0F7829F6589F007D9EA4 /* HomeVC.swift in Sources */,
 				130F4EEC29F7B6C100937687 /* CargoInfoTCell.swift in Sources */,
 				1309AE1129F7919900F5FA26 /* HomeDetailAttachVC.swift in Sources */,
 				139F0F7A29F66EB7007D9EA4 /* HomeHeaderVC.swift in Sources */,
 				138DA4D929F6305600A71FE7 /* LoginVC.swift in Sources */,
+				13F536B829F7D6CF00A7937A /* NetworkRequest.swift in Sources */,
+				13F536C229F927FC00A7937A /* OrderModel.swift in Sources */,
 				13F536B229F7D0DF00A7937A /* NoteContentTCell.swift in Sources */,
 				139F0F8529F68B90007D9EA4 /* BaseTCell.swift in Sources */,
 				13941CEE29F77A7F00AB569F /* PersonalWalletVC.swift in Sources */,
+				13F536BB29F8CC0500A7937A /* UserModel.swift in Sources */,
+				13F536B729F7D6CF00A7937A /* Services.swift in Sources */,
 				138DA4D629F6305600A71FE7 /* BaseViewController.swift in Sources */,
 				1309AE0329F788D900F5FA26 /* PersonalDataVC.swift in Sources */,
 				1309ADFB29F7840500F5FA26 /* Currency+Exception.swift in Sources */,
@@ -485,6 +532,7 @@
 				13045E7C29F7C4D9004E10BE /* AttachTCell.swift in Sources */,
 				139F0F8229F689F9007D9EA4 /* HomeItemTCell.swift in Sources */,
 				1309AE1529F791BA00F5FA26 /* HomeDetailNoteVC.swift in Sources */,
+				13F536BE29F8CECE00A7937A /* UserViewModel.swift in Sources */,
 				13941CEB29F7728300AB569F /* TapButton.swift in Sources */,
 				130F4EF029F7B81A00937687 /* CargoTableHeaderView.swift in Sources */,
 				138DA4BA29F62F9500A71FE7 /* SceneDelegate.swift in Sources */,
diff --git a/BrokerDriver/Assets.xcassets/Icon/empty.imageset/Contents.json b/BrokerDriver/Assets.xcassets/Icon/empty.imageset/Contents.json
new file mode 100644
index 0000000..855da83
--- /dev/null
+++ b/BrokerDriver/Assets.xcassets/Icon/empty.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "empty.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/BrokerDriver/Assets.xcassets/Icon/empty.imageset/empty.png b/BrokerDriver/Assets.xcassets/Icon/empty.imageset/empty.png
new file mode 100644
index 0000000..07ce758
--- /dev/null
+++ b/BrokerDriver/Assets.xcassets/Icon/empty.imageset/empty.png
Binary files differ
diff --git a/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/Contents.json b/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/Contents.json
new file mode 100644
index 0000000..5f43517
--- /dev/null
+++ b/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "userdefault@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "userdefault@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/userdefault@2x.png b/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/userdefault@2x.png
new file mode 100644
index 0000000..18f71e7
--- /dev/null
+++ b/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/userdefault@2x.png
Binary files differ
diff --git a/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/userdefault@3x.png b/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/userdefault@3x.png
new file mode 100644
index 0000000..883a9f8
--- /dev/null
+++ b/BrokerDriver/Assets.xcassets/Icon/userdefault.imageset/userdefault@3x.png
Binary files differ
diff --git a/BrokerDriver/Base/BaseViewController.swift b/BrokerDriver/Base/BaseViewController.swift
index 16fb1b8..bd7beef 100644
--- a/BrokerDriver/Base/BaseViewController.swift
+++ b/BrokerDriver/Base/BaseViewController.swift
@@ -76,12 +76,6 @@
     }
 
 
-    func addChildViewController(_ child: UIViewController, toContainerView containerView: UIView) {
-        addChild(child)
-        containerView.addSubview(child.view)
-        child.didMove(toParent: self)
-    }
-
     deinit {
         LogInfo(String(format: "%@ 已释放", NSStringFromClass(self.classForCoder).components(separatedBy: ".").last!))
     }
diff --git a/BrokerDriver/Def.swift b/BrokerDriver/Def.swift
index a2d15f3..4af840f 100644
--- a/BrokerDriver/Def.swift
+++ b/BrokerDriver/Def.swift
@@ -7,8 +7,12 @@
 
 import Foundation
 import UIKit
+import MBProgressHUD
 @_exported import JQTools
 @_exported import QMUIKit
+@_exported import HandyJSON
+@_exported import RxSwift
+
 
     // MARK: -- Shorthand
 let app = UIApplication.shared.delegate as! AppDelegate
@@ -58,3 +62,37 @@
 let Def_NavFontColor:UIColor = .color(light: .color("#333333"), dark: .color("#333333"))
 let Def_backgroundColor:UIColor = .color(light: .white, dark: .white)
 let Def_ThemeColor:UIColor = .color(light: .color("#FED703"), dark: .color("#FED703"))
+
+
+    //提示框
+func alert(msg: String) {
+    let hud = MBProgressHUD.showAdded(to: screnDelegate!.window!, animated: true)
+    hud.mode = .text
+    hud.label.text = msg
+        //    hud.backgroundColor = UIColor.RGBA(r: 228, g: 228, b: 228, a: 1)
+    hud.label.textColor = UIColor(hexString: "#343434")
+    hud.label.numberOfLines = 0
+    hud.label.font = UIFont.boldSystemFont(ofSize: 14)
+    hud.hide(animated: true, afterDelay: 1.7)
+}
+
+
+//extension UICollectionView{
+//    public func jq_setEmptyView( _ noticeStr:String? = nil,image:UIImage? = UIImage(named: "icon_empty"),foregroundColor:UIColor = UIColor.gray,clouse:((EmptyDataSetView)->Void)? = nil) {
+//        self.emptyDataSetView { (emptyDataSetView) in
+//            emptyDataSetView.titleLabelString(NSAttributedString.init(string: (noticeStr != nil) ? noticeStr! : Localized("暂无数据"), attributes: [.font:UIFont.systemFont(ofSize: 16,weight: .medium), .foregroundColor:foregroundColor as Any]))
+//                .image(image)
+//                .dataSetBackgroundColor(UIColor.white)
+//                .verticalOffset(-50)
+//                .verticalSpace(0)
+//                .shouldDisplay(true)
+//                .shouldFadeIn(true)
+//                .isTouchAllowed(true)
+//                .isScrollAllowed(true)
+//                .didTapContentView {
+//
+//                }
+//            clouse?(emptyDataSetView)
+//        }
+//    }
+//}
diff --git a/BrokerDriver/Home/VC/HomePageVC.swift b/BrokerDriver/Home/VC/HomePageVC.swift
index 03517eb..5a072d3 100644
--- a/BrokerDriver/Home/VC/HomePageVC.swift
+++ b/BrokerDriver/Home/VC/HomePageVC.swift
@@ -11,12 +11,15 @@
 
 class HomePageVC: BaseViewController,Refreshable {
 
-    enum PageStyle {
-        case progress,complete
+    enum PageStyle:Int{
+        case progress = 1
+        case complete = 2
     }
 
     private var style:PageStyle!
     public let refreshStatus = BehaviorSubject(value: RefreshStatus.others)
+    private var page = 1
+    private var datas = [OrderModel]()
 
     lazy private var tableView:BaseTableView = {
         let tableView = BaseTableView(frame: .zero, style: .plain)
@@ -41,12 +44,36 @@
         super.viewDidLoad()
 
         self.refreshStatusBind(to: tableView, header: { [weak self] () in
-            self?.refreshStatus.onNext(.endHeaderRefresh)
+            self?.getData()
         }, footer: {  [weak self] () in
-
+            self?.getData(false)
         }).disposed(by: disposeBag)
+        tableView.jq_setEmptyView("Not data", image: UIImage(named: "empty"), foregroundColor: .gray, clouse: nil)
+        refreshStatus.onNext(.beingHeaderRefresh)
+    }
 
-//        refreshStatus.onNext(.beingHeaderRefresh)
+    private func getData(_ isHeader:Bool = true){
+        Services.getList(type: style, pageNumber: page).subscribe(onNext: { data in
+            if let models = data.data{
+                if isHeader{
+                    self.datas.removeAll()
+                    self.page = 1
+                    self.refreshStatus.onNext(.endHeaderRefresh)
+                    self.refreshStatus.onNext(.resetNoMoreData)
+                }else{
+                    if models.count == 0{
+                        self.refreshStatus.onNext(.noMoreData)
+                    }else{
+                        self.refreshStatus.onNext(.endFooterRefresh)
+                    }
+                }
+                self.datas.append(contentsOf: models)
+                self.tableView.reloadData()
+            }
+        }) { error in
+
+        }.disposed(by: disposeBag)
+
     }
 
     override func setUI() {
@@ -75,6 +102,6 @@
     }
 
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return 10
+        return datas.count
     }
 }
diff --git a/BrokerDriver/Login/VC/LoginVC.swift b/BrokerDriver/Login/VC/LoginVC.swift
index bb2a08b..4d4cdbd 100644
--- a/BrokerDriver/Login/VC/LoginVC.swift
+++ b/BrokerDriver/Login/VC/LoginVC.swift
@@ -16,6 +16,13 @@
     override func viewDidLoad() {
         super.viewDidLoad()
 
+
+#if DEBUG
+        tf_email.text = "eeee"
+        tf_pwd.text = "111111"
+
+#endif
+
     }
 
     @IBAction func forgotAction(_ sender: UIButton) {
@@ -25,16 +32,38 @@
 
     @IBAction func loginAction(_ sender: UIButton) {
 
-        let snapView = screnDelegate?.window?.snapshotView(afterScreenUpdates: true)
-        let nav = BaseNavigationController(rootViewController: HomeVC())
-        screnDelegate?.window?.rootViewController = nav
-        screnDelegate?.window?.rootViewController?.view.addSubview(snapView!)
-
-        UIView.animate(withDuration: 1.5) {
-            snapView?.alpha = 0
-            snapView?.transform3D = CATransform3DMakeScale(1.5, 1.5, 1.5)
-        } completion: { _ in
-            snapView?.removeFromSuperview()
+#if !DEBUG
+        guard !tf_email.isEmpty else {
+            alert(msg: "Please input email");return
         }
+
+        guard tf_email.text!.jq_isEmail else {
+            alert(msg: "Please enter the correct email");return
+        }
+
+        guard !tf_pwd.text!.isEmpty else {
+            alert(msg: "Please enter password");return
+        }
+#endif
+
+        Services.companyLogin(username: tf_email.text!, password: tf_pwd.text!).subscribe(onNext: { data in
+            if let model = data.data{
+                UserViewModel.saveUserInfo(model)
+                let snapView = screnDelegate?.window?.snapshotView(afterScreenUpdates: true)
+                let nav = BaseNavigationController(rootViewController: HomeVC())
+                screnDelegate?.window?.rootViewController = nav
+                screnDelegate?.window?.rootViewController?.view.addSubview(snapView!)
+
+                UIView.animate(withDuration: 1.5) {
+                    snapView?.alpha = 0
+                    snapView?.transform3D = CATransform3DMakeScale(1.5, 1.5, 1.5)
+                } completion: { _ in
+                    snapView?.removeFromSuperview()
+                    UserViewModel.publishLoginSuccess()
+                }
+            }
+        }) { error in
+
+        }.disposed(by: disposeBag)
     }
 }
diff --git a/BrokerDriver/Models/OrderModel.swift b/BrokerDriver/Models/OrderModel.swift
new file mode 100644
index 0000000..b55dd46
--- /dev/null
+++ b/BrokerDriver/Models/OrderModel.swift
@@ -0,0 +1,8 @@
+//
+//  OrderModel.swift
+//  BrokerDriver
+//
+//  Created by 无故事王国 on 2023/4/26.
+//
+
+import Foundation
diff --git a/BrokerDriver/Models/UserModel.swift b/BrokerDriver/Models/UserModel.swift
new file mode 100644
index 0000000..6c65292
--- /dev/null
+++ b/BrokerDriver/Models/UserModel.swift
@@ -0,0 +1,99 @@
+    //
+    //  UserInfoModel.swift
+    //  BrokerDriver
+    //
+    //  Created by 无故事王国 on 2023/4/26.
+    //
+
+import Foundation
+import HandyJSON
+
+struct UserInfoModel:HandyJSON {
+
+    var account: String = ""
+    var headImg:String = ""
+    var address: String = ""
+    var applicationDate: String = ""
+    var bonusEligibilityDate: String = ""
+    var carriersId: String = ""
+    var cdlNumber: String = ""
+    var companyId: String = ""
+    var contactNumber: String = ""
+    var createTime: String = ""
+    var dateOfBrith: String = ""
+    var dotCardExpirationDate: String = ""
+    var driverName: String = ""
+    var driverNumber: String = ""
+    var driverType: String = ""
+    var drivingSchool: String = ""
+    var groupNumber: String = ""
+    var hazmatExpriationDate: String = ""
+    var hireDate: String = ""
+    var id: Int = 0
+    var idNumber: String = ""
+    var insuranceCo: String = ""
+    var insuranceExpirationDate: String = ""
+    var isCarriers: Int = 0 //2是承运商
+    var lastAlcoholTestDate: String = ""
+    var lastDrugTestDate: String = ""
+    var lastRoadTestDate: String = ""
+    var licenseEndorsements: String = ""
+    var licenseEndorsementsOne: String = ""
+    var licenseExpirationDate: String = ""
+    var licenseType: String = ""
+    var password: String = ""
+    var rehirable: String = ""
+    var remove: Int = 0
+    var sinceYear: String = ""
+    var status: String = ""
+    var statusRemark: String = ""
+    var terminationDate: String = ""
+    var token: String = ""
+    var twicCardExpirationDate: String = ""
+    var typeOfExperience: String = ""
+
+    func save(){
+        UserDefaults.standard.set(self.toJSONString() ?? "", forKey: "user_info")
+        UserDefaults.standard.synchronize()
+    }
+}
+
+
+struct UserCompanyModel:HandyJSON {
+    var address:String = ""
+    var companyName:String = ""
+    var contactEmail:String = ""
+    var contactPhone:String = ""
+    var scacCode:String = ""
+    var setUpTheTime: String = ""
+}
+
+
+struct UserWalletModel:HandyJSON{
+    var allTotal: Double = 0
+    var billNumber: String  = ""
+    var list = [UserWalletDataModel]()
+    var paid: Double = 0
+    var unpaid: Double = 0
+}
+
+struct UserWalletDataModel:HandyJSON{
+    var dueDate: String = ""
+    var invoicesTime: String  = ""
+    var money: Double = 0
+    var payStatus: Int = 0 // 1是0否
+    var shipmentId: String  = ""
+}
+
+
+struct UserProfileModel:HandyJSON {
+    var address: String = ""
+    var contactNumber: String = ""
+    var dateOfBrith: String = ""
+    var driverEmployeeNumber: String = ""
+    var driverName: String = ""
+    var driverType: String = ""
+    var id: Int = 0
+    var notes: String = ""
+    var status: String = ""
+}
diff --git a/BrokerDriver/Network/NetworkRequest.swift b/BrokerDriver/Network/NetworkRequest.swift
new file mode 100644
index 0000000..f1d036a
--- /dev/null
+++ b/BrokerDriver/Network/NetworkRequest.swift
@@ -0,0 +1,336 @@
+//
+//  NetworkRequest.swift
+//  HandyJSON
+//
+//  Created by Sweet on 2018/12/25.
+//  Copyright © 2018 Sweet. All rights reserved.
+//
+
+import Foundation
+import SwifterSwift
+import Alamofire
+import MBProgressHUD
+
+// 假设这是服务端返回的统一定义的response格式
+struct BaseResponse<T :HandyJSON>: HandyJSON {
+    var sysTime: Int = 0
+    var code: Int = -1 // 服务端返回码
+    var data: T? = nil // 具体的data的格式和业务相关,故用泛型定义
+    var msg: String = ""
+}
+
+struct BaseData<T: HandyJSON>: HandyJSON {
+    var records = [T]()
+}
+
+struct SimpleModel: HandyJSON {
+    
+}
+struct HtmlModel: HandyJSON {
+    var  content = ""
+    var  content1 = ""
+    var id = 0
+    var type =  0
+}
+
+extension String: HandyJSON{
+    
+}
+extension Array: HandyJSON{
+    
+}
+extension Bool: HandyJSON{
+    
+}
+
+class ParamsAppender: NSObject {
+    var url: URL
+    var params:Dictionary = [String: Any]()
+    
+    private init(url: String){
+        self.url = URL(string: url)!
+
+    }
+    
+    func interface(url: String) -> ParamsAppender {
+        self.url.appendPathComponent(url)
+        return self
+    }
+    
+    func append(key: String,value: String) -> ParamsAppender {
+        if value.isEmpty{return self}
+        params += ["\(key)":"\(value)"]
+        return self
+    }
+    
+    func append(key: String,value: String?) -> ParamsAppender {
+//        if  value?.isEmpty ?? true ||  value == ""  { return self }
+        params += ["\(key)":"\(value ?? "")"]
+        return self
+    }
+    
+    func append(key: String, value: Int?) -> ParamsAppender {
+//        if value == nil || value == 0 { return self }
+        params += ["\(key)":"\(value ?? 0)"]
+        return self
+    }
+    func append(key: String, value: Int64) -> ParamsAppender {
+        params += ["\(key)":"\(value)"]
+        return self
+    }
+    func append(key: String, value: Double) -> ParamsAppender {
+        params += ["\(key)":"\(value)"]
+        return self
+    }
+
+    func append(key: String,data: Data?) -> ParamsAppender {
+        if data != nil{
+            params += ["\(key)": data!]
+        }
+        return self
+    }
+    
+    func append(key: String,url: URL) -> ParamsAppender {
+        params += ["\(key)":"\(url)"]
+        return self
+    }
+    
+    func append(dic: [String : Any]) -> ParamsAppender {
+        params += dic
+        return self
+    }
+    
+    /// 参数加密
+    func done() -> Parameters {
+        return self.params
+    }
+    
+    class func build(url: String) -> ParamsAppender {
+        return ParamsAppender(url: url)
+    }
+    
+}
+class NetworkRequest {
+    
+    static let sharedSessionManager: Alamofire.Session = {
+        let configuration = URLSessionConfiguration.default
+        configuration.timeoutIntervalForRequest = 15
+        return Alamofire.Session(configuration: configuration)
+    }()
+    enum NetRequestError: Error {
+        case Other
+        case URLNotFound
+        case DownloadFailed
+    }
+    
+    class func request<T: HandyJSON>(params: ParamsAppender, method: HTTPMethod,  encoding: ParameterEncoding? = nil, progress: Bool = true) -> Observable<BaseResponse<T>>{
+        return Observable<BaseResponse<T>>.create{ ob in
+            var hud: MBProgressHUD?
+            if progress {
+                hud = MBProgressHUD.showAdded(to: app.window!, animated: true)
+                hud?.bezelView.style = .solidColor
+                hud?.contentColor = .white
+                hud?.bezelView.backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.8)
+                hud?.bezelView.color = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.8)
+                hud?.removeFromSuperViewOnHide = true
+            }
+            
+            var headers = HTTPHeaders()
+            if let token = UserViewModel.getUserInfo()?.token {
+                headers.add(name: "Authorization", value: "Bearer" + " " + token)
+                LogInfo("USER_token:\(token)")
+            }
+            if encoding is JSONEncoding {
+                headers.add(name: "Content-Type", value: "application/json;charset=UTF-8")
+            }
+            
+            var newEncoding: ParameterEncoding
+            if encoding != nil {
+                newEncoding = encoding!
+            } else {
+                newEncoding = method == .post ? URLEncoding.httpBody : URLEncoding.queryString
+            }
+            
+            sharedSessionManager.request(params.url.absoluteString, method: method, parameters:params.done(), encoding: newEncoding, headers:headers).validate().responseData{response in
+                LogInfo("请求地址:\(params.url)")
+                LogInfo("请求参数:\(params.params)")
+                hud?.hide(animated: true)
+                    if response.error != nil {
+                        LogError("\(response.error!)")
+//                        alert(msg: "请求失败")
+                        ob.onError(response.error!)
+                    }else if let data = response.data,let jsonString = String(data: data, encoding: String.Encoding.utf8){
+                        LogInfo("返回数据:\(jsonString)")
+                        if let next = BaseResponse<T>.deserialize(from: jsonString){
+                            if next.code == 200{
+                                ob.onNext(next)
+                            }else {
+                                alert(msg: next.msg)
+                                ob.onError(NetRequestError.Other)
+                            }
+                        }else{
+//                            alert(msg: "请求失败")
+                            ob.onError(NetRequestError.Other)
+                        }
+                    }else{
+//                        alert(msg: "请求失败")
+                        ob.onError(NetRequestError.Other)
+                    }
+                    ob.onCompleted()
+            }
+            return Disposables.create{}
+        }
+    }
+    
+    class func requestData(params: ParamsAppender, method: HTTPMethod, encoding: ParameterEncoding? = nil, progress: Bool = true) -> Observable<Data>{
+        return Observable<Data>.create{ ob in
+            var hud: MBProgressHUD?
+            if progress {
+                hud = MBProgressHUD.showAdded(to: app.window!, animated: true)
+                hud?.bezelView.style = .solidColor
+                hud?.contentColor = .white
+                hud?.bezelView.backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.8)
+                hud?.bezelView.color = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.8)
+                hud?.removeFromSuperViewOnHide = true
+            }
+            
+            var headers = HTTPHeaders()
+            if let token = UserViewModel.getUserInfo()?.token {
+                headers.add(name: "Authorization", value: "Bearer" + " " + token)
+                LogInfo("USER_token:\(token)")
+            }
+            if encoding is JSONEncoding {
+                headers.add(name: "Content-Type", value: "application/json;charset=UTF-8")
+            }
+            
+            var newEncoding: ParameterEncoding
+            if encoding != nil {
+                newEncoding = encoding!
+            } else {
+                newEncoding = method == .post ? URLEncoding.httpBody : URLEncoding.queryString
+            }
+            
+            sharedSessionManager.request(params.url.absoluteString, method: method, parameters: params.done(), encoding: newEncoding, headers: headers).validate().responseData{response in
+                LogInfo("请求地址:\(params.url)")
+                LogInfo("请求参数:\(params.params)")
+                hud?.hide(animated: true)
+                if response.error != nil {
+                    LogError("\(response.error!)")
+                    ob.onError(response.error!)
+                }else if let data = response.data{
+                    LogInfo("返回数据:\(data)")
+                    ob.onNext(data)
+                }
+                ob.onCompleted()
+            }
+            return Disposables.create{}
+        }
+    }
+    
+    /// 带code请求的
+    /// - Parameters:
+    ///   - params: <#params description#>
+    ///   - method: <#method description#>
+    ///   - progress: <#progress description#>
+    /// - Returns: <#description#>
+    class func requestCode<T: HandyJSON>(params: ParamsAppender,method: HTTPMethod,progress: Bool = true) -> Observable<BaseResponse<T>>{
+        return Observable<BaseResponse<T>>.create{ ob in
+            var hud: MBProgressHUD?
+            if progress{
+                hud = MBProgressHUD.showAdded(to: screnDelegate!.window!, animated: true)
+                hud?.bezelView.style = .solidColor
+                hud?.contentColor = .white
+                hud?.bezelView.backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.8)
+                hud?.bezelView.color = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.8)
+                hud?.removeFromSuperViewOnHide = true
+            }
+            sharedSessionManager.request(params.url.absoluteString, method: method, parameters:
+                params.done(),encoding: URLEncoding.default).validate().responseData{response in
+                    LogInfo("请求地址:\(params.url)")
+                    LogInfo("请求参数:\(params.params)")
+                    if response.error != nil {
+                        hud?.hide(animated: true)
+//                        alert(msg: "请求失败")
+                        LogInfo("\(response.error!)")
+                        ob.onError(response.error!)
+                    }else if let data = response.data,let jsonString = String(data: data, encoding: String.Encoding.utf8){
+                        
+                        hud?.hide(animated: true)
+                        LogInfo("返回数据:\(jsonString)")
+                        if let next = BaseResponse<T>.deserialize(from: jsonString){
+                            ob.onNext(next)
+                        }else{
+                            hud?.hide(animated: true)
+//                            alert(msg: "请求失败")
+                            LogInfo("error")
+                        }
+                    }else{
+                        hud?.hide(animated: true)
+//                        alert(msg: "请求失败")
+                        LogInfo("Netrequest-Tag:No data")
+                    }
+                    ob.onCompleted()
+            }
+            return Disposables.create{}
+        }
+    }
+    /// 上传
+    /// - Parameter params: <#params description#>
+    class func upload<T: HandyJSON>(params: ParamsAppender) -> Observable<BaseResponse<T>> {
+        return Observable<BaseResponse<T>>.create{ob in
+            let hud = MBProgressHUD.showAdded(to: app.window!, animated: true)
+            hud.bezelView.style = .solidColor
+            hud.contentColor = .white
+            hud.bezelView.backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.8)
+            hud.bezelView.color = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.8)
+            hud.removeFromSuperViewOnHide = true
+            
+            AF.upload(multipartFormData: { data in
+                let p = params
+                LogInfo("Netrequest-Upload-Starting.")
+                for key in p.params{
+                    if let d = key.value as? Data {
+                        LogInfo("Netrequest-Upload-Appending-Data: Length = \(d.count) bytes")
+                        
+                        data.append(d, withName: key.key, fileName: "\(Date().timeIntervalSince1970).png", mimeType: "image/png")
+                    } else if let url = key.value as? URL {
+                        LogInfo("Netrequest-Upload-Appending-Data: Url = \(url)")
+                        data.append(url, withName: key.key)
+                    }
+                }
+            }, to: params.url, method: .post, headers: nil) .uploadProgress(queue: .main, closure: { progress in
+                print("Upload Progress上传进度: \(progress.fractionCompleted)")
+                //                   progressClosure(progress.fractionCompleted)
+            }).responseJSON(completionHandler: { data in
+                print("upload finished: \(data)")
+                
+            }).response { (response) in
+                
+                hud.hide(animated: true)
+                switch response.result {
+                case .success(let dataObj):
+//                    alert(msg: "上传成功")
+                    let jsonString = String(data: dataObj ?? Data(), encoding: String.Encoding.utf8)
+                    if let next = BaseResponse<T>.deserialize(from: jsonString){
+                        ob.onNext(next)
+                    }
+                case .failure(let err):
+                    alert(msg: "上传失败")
+                    print("upload err: \(err)")
+                }
+                
+            }
+            return Disposables.create{
+                
+            }
+            
+        }
+    }
+}
+extension Dictionary {
+    mutating func append(dict: Dictionary) {
+        dict.forEach { (key, value) in
+            self.updateValue(value, forKey: key)
+        }
+    }
+}
diff --git a/BrokerDriver/Network/Services.swift b/BrokerDriver/Network/Services.swift
new file mode 100644
index 0000000..7241e0b
--- /dev/null
+++ b/BrokerDriver/Network/Services.swift
@@ -0,0 +1,71 @@
+//
+//  Services.swift
+//  YixiuShop
+//
+//  Created by Sweet on 2019/9/30.
+//  Copyright © 2019 jackLove. All rights reserved.
+//  
+
+import UIKit
+//import RxRelay
+//import RxCocoa
+//import RxDataSources
+import RxSwift
+
+//外网测试环境
+let All_Url = "http://192.168.110.22:8040"
+//内网测试环境
+//let All_Url = ""
+
+
+class Services: NSObject {
+    
+    static let pageSize: Int = 20
+
+    class func companyLogin(username:String,password:String)->Observable<BaseResponse<UserInfoModel>>{
+        let params = ParamsAppender.build(url: All_Url)
+            .interface(url: "/gunsApi/companyLogin")
+            .append(key: "username", value: username)
+            .append(key: "password", value: password)
+        return NetworkRequest.requestCode(params: params, method: .post, progress: true)
+    }
+
+    class func getCompanyInfo()->Observable<BaseResponse<UserCompanyModel>>{
+        let params = ParamsAppender.build(url: All_Url)
+            .interface(url: "/api/me/getMeCompanyInfo")
+            .append(key: "id", value: UserViewModel.getUserInfo()!.id)
+        return NetworkRequest.request(params: params, method: .get, progress: false)
+    }
+
+    class func getMeWallet()->Observable<BaseResponse<UserWalletModel>>{
+        let params = ParamsAppender.build(url: All_Url)
+            .interface(url: "/api/me/getMeWallet")
+            .append(key: "id", value: UserViewModel.getUserInfo()!.id)
+        return NetworkRequest.request(params: params, method: .get, progress: false)
+    }
+
+    class func getMeInfo()->Observable<BaseResponse<UserProfileModel>>{
+        let params = ParamsAppender.build(url: All_Url)
+            .interface(url: "/api/me/getMeInfo")
+            .append(key: "id", value: UserViewModel.getUserInfo()!.id)
+        return NetworkRequest.request(params: params, method: .get, progress: false)
+    }
+
+
+        /// - Parameters:
+        ///   - type: 1: in progress 2:completed
+    class func getList(type:HomePageVC.PageStyle,pageNumber:Int,containerNo:String? = nil,date:String? = nil)->Observable<BaseResponse<[OrderModel]>>{
+        let params = ParamsAppender.build(url: All_Url)
+            .interface(url: "/api/index/index")
+            .append(key: "containerNo", value: containerNo)
+            .append(key: "date", value: date)
+            .append(key: "pageNumber", value: pageNumber)
+            .append(key: "pageSize", value: 20)
+            .append(key: "type", value:type.rawValue)
+            .append(key: "id", value: UserViewModel.getUserInfo()!.id)
+        return NetworkRequest.request(params: params, method: .get, progress: false)
+    }
+
+
+
+}
diff --git a/BrokerDriver/Profile/TCell/WalletTCell.swift b/BrokerDriver/Profile/TCell/WalletTCell.swift
index e0ad641..9723355 100644
--- a/BrokerDriver/Profile/TCell/WalletTCell.swift
+++ b/BrokerDriver/Profile/TCell/WalletTCell.swift
@@ -10,6 +10,29 @@
 class WalletTCell: UITableViewCell {
 
     @IBOutlet weak var view_container: UIView!
+    @IBOutlet weak var label_shipmentsID: UILabel!
+    @IBOutlet weak var label_price: UILabel!
+    @IBOutlet weak var btn_state: UIButton!
+    @IBOutlet weak var label_invoicesTime: UILabel!
+    @IBOutlet weak var label_dueDate: UILabel!
+
+    var model:UserWalletDataModel!{
+        didSet{
+            label_dueDate.text = String(format: "Due date:%@", model.dueDate)
+            label_invoicesTime.text = String(format: "Invoices time:%@", model.invoicesTime)
+            label_shipmentsID.text = String(format: "Shipments ID:%@", model.shipmentId)
+            label_price.text = model.money.currency()
+            if model.payStatus == 0{
+                btn_state.setTitle("Unpaid", for: .normal)
+                btn_state.backgroundColor = UIColor(hexStr: "#C70B0B")
+            }else{
+                btn_state.setTitle("Paid", for: .normal)
+                btn_state.backgroundColor = UIColor(hexStr: "#A4A4A4")
+            }
+        }
+    }
+
+
     override func awakeFromNib() {
         super.awakeFromNib()
         selectionStyle = .none
diff --git a/BrokerDriver/Profile/TCell/WalletTCell.xib b/BrokerDriver/Profile/TCell/WalletTCell.xib
index 3937576..bd04bd4 100644
--- a/BrokerDriver/Profile/TCell/WalletTCell.xib
+++ b/BrokerDriver/Profile/TCell/WalletTCell.xib
@@ -112,6 +112,11 @@
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
             <connections>
+                <outlet property="btn_state" destination="BOE-P3-HcU" id="Zcu-CS-1Ug"/>
+                <outlet property="label_dueDate" destination="fcC-CD-liB" id="Lbm-tg-QEJ"/>
+                <outlet property="label_invoicesTime" destination="oAm-kA-bZi" id="fDo-Iv-jsb"/>
+                <outlet property="label_price" destination="WoI-PJ-0sK" id="Zbh-cX-gl5"/>
+                <outlet property="label_shipmentsID" destination="yFl-NK-kEv" id="06U-ze-8ZE"/>
                 <outlet property="view_container" destination="tvd-re-KSz" id="QWb-b2-jdR"/>
             </connections>
             <point key="canvasLocation" x="131.29770992366412" y="49.295774647887328"/>
diff --git a/BrokerDriver/Profile/VC/CompanyVC.swift b/BrokerDriver/Profile/VC/CompanyVC.swift
index d5d9cb9..dafbcf3 100644
--- a/BrokerDriver/Profile/VC/CompanyVC.swift
+++ b/BrokerDriver/Profile/VC/CompanyVC.swift
@@ -9,9 +9,30 @@
 
 class CompanyVC: BaseViewController {
 
+    @IBOutlet weak var label_companyName: UILabel!
+    @IBOutlet weak var label_code: UILabel!
+    @IBOutlet weak var label_address: UILabel!
+    @IBOutlet weak var label_contactPhone: UILabel!
+    @IBOutlet weak var label_contactEmail: UILabel!
+    @IBOutlet weak var label_setupTime: UILabel!
+
+
     override func viewDidLoad() {
         super.viewDidLoad()
         title = "Company Infomation"
         view.backgroundColor = UIColor(hexStr: "#F9FAFF")
+
+        Services.getCompanyInfo().subscribe(onNext: {[weak self] data in
+            if let model = data.data{
+                self?.label_companyName.text = model.companyName
+                self?.label_code.text = model.scacCode
+                self?.label_address.text = model.address
+                self?.label_contactPhone.text = model.contactPhone
+                self?.label_contactEmail.text = model.contactEmail
+                self?.label_setupTime.text = model.setUpTheTime
+            }
+        }) { error in
+
+        }.disposed(by: disposeBag)
     }
 }
diff --git a/BrokerDriver/Profile/VC/CompanyVC.xib b/BrokerDriver/Profile/VC/CompanyVC.xib
index cf988f7..5367b03 100644
--- a/BrokerDriver/Profile/VC/CompanyVC.xib
+++ b/BrokerDriver/Profile/VC/CompanyVC.xib
@@ -11,6 +11,12 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CompanyVC" customModule="BrokerDriver" customModuleProvider="target">
             <connections>
+                <outlet property="label_address" destination="rcc-2G-rhV" id="972-Qs-pDO"/>
+                <outlet property="label_code" destination="27o-FI-26t" id="K8E-Ek-VW0"/>
+                <outlet property="label_companyName" destination="DhS-px-eqI" id="Sqj-vd-Xyl"/>
+                <outlet property="label_contactEmail" destination="d2Y-Go-fPi" id="1Vn-PJ-Ytj"/>
+                <outlet property="label_contactPhone" destination="Gls-pb-IPA" id="Yqc-KZ-y7e"/>
+                <outlet property="label_setupTime" destination="e4s-Pq-mjz" id="wY2-W3-Imx"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
         </placeholder>
@@ -59,7 +65,7 @@
                                                     <color key="textColor" red="0.1803921568627451" green="0.1803921568627451" blue="0.1803921568627451" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="UTL lnc" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DhS-px-eqI">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DhS-px-eqI">
                                                     <rect key="frame" x="171.66666666666663" y="0.0" width="171.33333333333337" height="14.333333333333334"/>
                                                     <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -76,7 +82,7 @@
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="3900252" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="27o-FI-26t">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="27o-FI-26t">
                                                     <rect key="frame" x="171.66666666666663" y="0.0" width="171.33333333333337" height="14.333333333333334"/>
                                                     <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -93,7 +99,7 @@
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ontario,CA 91761" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rcc-2G-rhV">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rcc-2G-rhV">
                                                     <rect key="frame" x="171.66666666666663" y="0.0" width="171.33333333333337" height="14.333333333333334"/>
                                                     <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -110,7 +116,7 @@
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+1(626)592-8659" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Gls-pb-IPA">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Gls-pb-IPA">
                                                     <rect key="frame" x="171.66666666666663" y="0.0" width="171.33333333333337" height="14.333333333333334"/>
                                                     <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -127,7 +133,7 @@
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="info@utlinternationa.com" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="d2Y-Go-fPi">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="d2Y-Go-fPi">
                                                     <rect key="frame" x="171.66666666666663" y="0.0" width="171.33333333333337" height="14.333333333333334"/>
                                                     <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -144,7 +150,7 @@
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12/5/2022" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="e4s-Pq-mjz">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="e4s-Pq-mjz">
                                                     <rect key="frame" x="171.66666666666663" y="0.0" width="171.33333333333337" height="14.333333333333334"/>
                                                     <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
                                                     <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
diff --git a/BrokerDriver/Profile/VC/PersonalCenterVC.swift b/BrokerDriver/Profile/VC/PersonalCenterVC.swift
index 3543dc0..6bd2e69 100644
--- a/BrokerDriver/Profile/VC/PersonalCenterVC.swift
+++ b/BrokerDriver/Profile/VC/PersonalCenterVC.swift
@@ -9,9 +9,21 @@
 
 class PersonalCenterVC: BaseViewController {
 
+    @IBOutlet weak var userProileImg: UIImageView!
+    @IBOutlet weak var label_name: UILabel!
+    @IBOutlet weak var label_email: UILabel!
+    @IBOutlet weak var view_wallet: TapButton!
+
     override func viewDidLoad() {
         super.viewDidLoad()
         title = "Personal Center"
+        if let userModel = UserViewModel.getUserInfo(){
+            label_name.text = userModel.driverName
+            label_email.text = userModel.account
+            userProileImg.jq_sdimage(url: userModel.headImg, placeholderImage: UIImage(named: "userdefault"))
+
+            view_wallet.isHidden = userModel.isCarriers != 2
+        }
     }
 
     @IBAction func profileAction(_ sender: TapButton) {
@@ -28,4 +40,14 @@
         let vc = CompanyVC()
         push(vc: vc)
     }
+
+    @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
+            }
+        }
+    }
 }
diff --git a/BrokerDriver/Profile/VC/PersonalCenterVC.xib b/BrokerDriver/Profile/VC/PersonalCenterVC.xib
index c4d2316..8c2e605 100644
--- a/BrokerDriver/Profile/VC/PersonalCenterVC.xib
+++ b/BrokerDriver/Profile/VC/PersonalCenterVC.xib
@@ -11,7 +11,11 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PersonalCenterVC" customModule="BrokerDriver" customModuleProvider="target">
             <connections>
+                <outlet property="label_email" destination="tUH-9Q-ush" id="bZA-CV-sF5"/>
+                <outlet property="label_name" destination="r6A-Md-BJ9" id="JOd-kb-JqH"/>
+                <outlet property="userProileImg" destination="4d3-jR-hXM" id="WcA-oK-aTc"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+                <outlet property="view_wallet" destination="kgh-Wr-bnp" id="GyS-9e-G1O"/>
             </connections>
         </placeholder>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -167,6 +171,9 @@
                                     <state key="normal" title="Log out">
                                         <color key="titleColor" red="0.92941176470588238" green="0.062745098039215685" blue="0.062745098039215685" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     </state>
+                                    <connections>
+                                        <action selector="logOutAction:" destination="-1" eventType="touchUpInside" id="fzt-FV-Kim"/>
+                                    </connections>
                                 </button>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
diff --git a/BrokerDriver/Profile/VC/PersonalDataVC.swift b/BrokerDriver/Profile/VC/PersonalDataVC.swift
index 789bcc3..a0b31ef 100644
--- a/BrokerDriver/Profile/VC/PersonalDataVC.swift
+++ b/BrokerDriver/Profile/VC/PersonalDataVC.swift
@@ -9,9 +9,32 @@
 
 class PersonalDataVC: BaseViewController {
 
+    @IBOutlet weak var label_drivername: UILabel!
+    @IBOutlet weak var label_driverType: UILabel!
+    @IBOutlet weak var label_contactNumber: UILabel!
+    @IBOutlet weak var label_status: UILabel!
+    @IBOutlet weak var label_number: UILabel!
+    @IBOutlet weak var label_dateOfBirth: UILabel!
+    @IBOutlet weak var label_address: UILabel!
+    @IBOutlet weak var label_note: UILabel!
+
+
     override func viewDidLoad() {
         super.viewDidLoad()
         title = "Personal data"
+
+        Services.getMeInfo().subscribe(onNext: {[weak self] data in
+            if let model = data.data{
+                self?.label_drivername.text = model.driverName
+                self?.label_driverType.text = model.driverType
+                self?.label_contactNumber.text = model.contactNumber
+                self?.label_status.text = model.status
+                self?.label_number.text = model.contactNumber
+                self?.label_dateOfBirth.text = model.dateOfBrith
+                self?.label_address.text = model.address
+                self?.label_note.text = model.notes
+            }
+        }).disposed(by: disposeBag)
     }
 
 
diff --git a/BrokerDriver/Profile/VC/PersonalDataVC.xib b/BrokerDriver/Profile/VC/PersonalDataVC.xib
index 9bf7cdf..b8d717d 100644
--- a/BrokerDriver/Profile/VC/PersonalDataVC.xib
+++ b/BrokerDriver/Profile/VC/PersonalDataVC.xib
@@ -11,6 +11,14 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PersonalDataVC" customModule="BrokerDriver" customModuleProvider="target">
             <connections>
+                <outlet property="label_address" destination="2Nh-Ad-bVV" id="hgg-i0-4SP"/>
+                <outlet property="label_contactNumber" destination="yMs-ZR-EuU" id="OJy-aw-A2b"/>
+                <outlet property="label_dateOfBirth" destination="x2T-Hc-JgV" id="vxG-ad-JDf"/>
+                <outlet property="label_driverType" destination="gbv-Zx-Mxl" id="rbQ-Me-hVQ"/>
+                <outlet property="label_drivername" destination="0xZ-TW-Qu9" id="YGl-Gx-VlC"/>
+                <outlet property="label_note" destination="qfw-fT-Xkf" id="RRz-eE-2Lp"/>
+                <outlet property="label_number" destination="vZT-6w-qSb" id="SXJ-A5-wF8"/>
+                <outlet property="label_status" destination="H0O-Xz-ZaL" id="Aoj-Og-Io2"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
         </placeholder>
@@ -20,222 +28,342 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
                 <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="ptt-Vu-e1w">
-                    <rect key="frame" x="0.0" y="59" width="393" height="400"/>
+                    <rect key="frame" x="0.0" y="59" width="393" height="584"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xDk-8V-LPQ">
-                            <rect key="frame" x="0.0" y="0.0" width="393" height="50"/>
+                            <rect key="frame" x="0.0" y="0.0" width="393" height="73"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RUB-1Y-Cfz">
-                                    <rect key="frame" x="15" y="49" width="363" height="0.6666666666666643"/>
+                                    <rect key="frame" x="15" y="72" width="363" height="0.6666666666666714"/>
                                     <color key="backgroundColor" red="0.84705882352941175" green="0.84705882352941175" blue="0.84705882352941175" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="0.5" id="R8a-PW-Z2f"/>
                                     </constraints>
                                 </view>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Driver Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ijA-k8-Dln">
-                                    <rect key="frame" x="15" y="16.666666666666671" width="80.333333333333329" height="17"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <rect key="frame" x="15" y="16" width="85.666666666666671" height="17"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="xaw-y2-0i9"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
                                     <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0xZ-TW-Qu9">
+                                    <rect key="frame" x="15" y="44" width="363" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="AjI-tT-u1I"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstItem="ijA-k8-Dln" firstAttribute="centerY" secondItem="xDk-8V-LPQ" secondAttribute="centerY" id="0k4-J5-rpt"/>
                                 <constraint firstAttribute="trailing" secondItem="RUB-1Y-Cfz" secondAttribute="trailing" constant="15" id="7pv-LD-bl6"/>
-                                <constraint firstAttribute="height" constant="50" id="800-ts-vWJ"/>
+                                <constraint firstItem="0xZ-TW-Qu9" firstAttribute="top" secondItem="ijA-k8-Dln" secondAttribute="bottom" constant="11" id="8bs-oa-DeD"/>
+                                <constraint firstItem="ijA-k8-Dln" firstAttribute="top" secondItem="xDk-8V-LPQ" secondAttribute="top" constant="16" id="EHI-qj-tHD"/>
+                                <constraint firstItem="0xZ-TW-Qu9" firstAttribute="leading" secondItem="xDk-8V-LPQ" secondAttribute="leading" constant="15" id="LCl-d4-POr"/>
                                 <constraint firstAttribute="bottom" secondItem="RUB-1Y-Cfz" secondAttribute="bottom" constant="0.5" id="Uuz-3x-YVu"/>
                                 <constraint firstItem="RUB-1Y-Cfz" firstAttribute="leading" secondItem="xDk-8V-LPQ" secondAttribute="leading" constant="15" id="Wna-6x-uGY"/>
+                                <constraint firstItem="RUB-1Y-Cfz" firstAttribute="top" secondItem="0xZ-TW-Qu9" secondAttribute="bottom" constant="8" id="chB-aw-OjX"/>
+                                <constraint firstAttribute="trailing" secondItem="0xZ-TW-Qu9" secondAttribute="trailing" constant="15" id="g4M-wt-QxS"/>
                                 <constraint firstItem="ijA-k8-Dln" firstAttribute="leading" secondItem="xDk-8V-LPQ" secondAttribute="leading" constant="15" id="rkd-O8-ten"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wcF-Nl-5Sb">
-                            <rect key="frame" x="0.0" y="50" width="393" height="50"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="m7M-i2-gEF">
+                            <rect key="frame" x="0.0" y="73" width="393" height="73"/>
                             <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gEQ-lL-abB">
-                                    <rect key="frame" x="15" y="49" width="363" height="0.6666666666666643"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZJf-d8-tNq">
+                                    <rect key="frame" x="15" y="72" width="363" height="0.6666666666666714"/>
                                     <color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="0.5" id="saT-SX-fqb"/>
+                                        <constraint firstAttribute="height" constant="0.5" id="GVE-Ql-bpG"/>
                                     </constraints>
                                 </view>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Driver Type" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qR3-Gu-oZk">
-                                    <rect key="frame" x="15" y="16.666666666666671" width="74.333333333333329" height="17"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Driver Type" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sbw-xZ-Q7K">
+                                    <rect key="frame" x="15" y="16" width="79.666666666666671" height="17"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="Jpf-rS-hGk"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
                                     <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gbv-Zx-Mxl">
+                                    <rect key="frame" x="15" y="44" width="363" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="uRm-bw-5hr"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstItem="gEQ-lL-abB" firstAttribute="leading" secondItem="wcF-Nl-5Sb" secondAttribute="leading" constant="15" id="60d-n5-kkw"/>
-                                <constraint firstItem="qR3-Gu-oZk" firstAttribute="leading" secondItem="wcF-Nl-5Sb" secondAttribute="leading" constant="15" id="8hW-xK-AYm"/>
-                                <constraint firstAttribute="trailing" secondItem="gEQ-lL-abB" secondAttribute="trailing" constant="15" id="9ki-wJ-gPG"/>
-                                <constraint firstAttribute="height" constant="50" id="Ax4-Zn-qpB"/>
-                                <constraint firstAttribute="bottom" secondItem="gEQ-lL-abB" secondAttribute="bottom" constant="0.5" id="UFo-AY-Sgi"/>
-                                <constraint firstItem="qR3-Gu-oZk" firstAttribute="centerY" secondItem="wcF-Nl-5Sb" secondAttribute="centerY" id="wGL-kO-qVN"/>
+                                <constraint firstAttribute="trailing" secondItem="ZJf-d8-tNq" secondAttribute="trailing" constant="15" id="6ml-FB-xu8"/>
+                                <constraint firstItem="Sbw-xZ-Q7K" firstAttribute="top" secondItem="m7M-i2-gEF" secondAttribute="top" constant="16" id="7Ge-y3-0mg"/>
+                                <constraint firstItem="gbv-Zx-Mxl" firstAttribute="top" secondItem="Sbw-xZ-Q7K" secondAttribute="bottom" constant="11" id="Hir-ZF-enN"/>
+                                <constraint firstItem="ZJf-d8-tNq" firstAttribute="leading" secondItem="m7M-i2-gEF" secondAttribute="leading" constant="15" id="T13-b6-Cfm"/>
+                                <constraint firstAttribute="trailing" secondItem="gbv-Zx-Mxl" secondAttribute="trailing" constant="15" id="TSn-ll-PSa"/>
+                                <constraint firstAttribute="bottom" secondItem="ZJf-d8-tNq" secondAttribute="bottom" constant="0.5" id="gO5-oQ-yyc"/>
+                                <constraint firstItem="gbv-Zx-Mxl" firstAttribute="leading" secondItem="m7M-i2-gEF" secondAttribute="leading" constant="15" id="oGk-fK-3ZT"/>
+                                <constraint firstItem="Sbw-xZ-Q7K" firstAttribute="leading" secondItem="m7M-i2-gEF" secondAttribute="leading" constant="15" id="tgm-62-U4D"/>
+                                <constraint firstItem="ZJf-d8-tNq" firstAttribute="top" secondItem="gbv-Zx-Mxl" secondAttribute="bottom" constant="8" id="y4X-MA-niL"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cer-dH-nqO">
-                            <rect key="frame" x="0.0" y="100" width="393" height="50"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QHj-qB-d7O">
+                            <rect key="frame" x="0.0" y="146" width="393" height="73"/>
                             <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sR1-r0-W6s">
-                                    <rect key="frame" x="15" y="49" width="363" height="0.6666666666666643"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6tC-lo-h9a">
+                                    <rect key="frame" x="15" y="72" width="363" height="0.6666666666666714"/>
                                     <color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="0.5" id="wNS-cw-1Ku"/>
+                                        <constraint firstAttribute="height" constant="0.5" id="G3F-Om-JXV"/>
                                     </constraints>
                                 </view>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Contact Number" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xUZ-63-3oV">
-                                    <rect key="frame" x="15" y="16.666666666666657" width="107" height="17"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Contact Number" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GoM-v5-93d">
+                                    <rect key="frame" x="15.000000000000007" y="16" width="113.66666666666669" height="17"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="n5d-2r-kGe"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
                                     <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yMs-ZR-EuU">
+                                    <rect key="frame" x="15" y="44" width="363" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="6Xr-A9-4MT"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstItem="sR1-r0-W6s" firstAttribute="leading" secondItem="Cer-dH-nqO" secondAttribute="leading" constant="15" id="0Jp-ZQ-mTd"/>
-                                <constraint firstItem="xUZ-63-3oV" firstAttribute="leading" secondItem="Cer-dH-nqO" secondAttribute="leading" constant="15" id="3YP-hf-GFK"/>
-                                <constraint firstAttribute="height" constant="50" id="CtH-be-aTC"/>
-                                <constraint firstAttribute="trailing" secondItem="sR1-r0-W6s" secondAttribute="trailing" constant="15" id="Nls-M4-uEq"/>
-                                <constraint firstItem="xUZ-63-3oV" firstAttribute="centerY" secondItem="Cer-dH-nqO" secondAttribute="centerY" id="Y1M-yG-TVH"/>
-                                <constraint firstAttribute="bottom" secondItem="sR1-r0-W6s" secondAttribute="bottom" constant="0.5" id="hVg-ED-fgT"/>
+                                <constraint firstItem="yMs-ZR-EuU" firstAttribute="leading" secondItem="QHj-qB-d7O" secondAttribute="leading" constant="15" id="0vZ-g3-5Jd"/>
+                                <constraint firstItem="6tC-lo-h9a" firstAttribute="leading" secondItem="QHj-qB-d7O" secondAttribute="leading" constant="15" id="4Z3-T5-06A"/>
+                                <constraint firstAttribute="bottom" secondItem="6tC-lo-h9a" secondAttribute="bottom" constant="0.5" id="9BL-c1-6Jt"/>
+                                <constraint firstItem="yMs-ZR-EuU" firstAttribute="top" secondItem="GoM-v5-93d" secondAttribute="bottom" constant="11" id="Ppr-Jr-RU1"/>
+                                <constraint firstItem="6tC-lo-h9a" firstAttribute="top" secondItem="yMs-ZR-EuU" secondAttribute="bottom" constant="8" id="RAJ-v4-S2h"/>
+                                <constraint firstItem="GoM-v5-93d" firstAttribute="top" secondItem="QHj-qB-d7O" secondAttribute="top" constant="16" id="XRN-rG-dW6"/>
+                                <constraint firstAttribute="trailing" secondItem="yMs-ZR-EuU" secondAttribute="trailing" constant="15" id="XTq-hw-po0"/>
+                                <constraint firstAttribute="trailing" secondItem="6tC-lo-h9a" secondAttribute="trailing" constant="15" id="f2g-T4-0Ah"/>
+                                <constraint firstItem="GoM-v5-93d" firstAttribute="leading" secondItem="QHj-qB-d7O" secondAttribute="leading" constant="15" id="gWe-NJ-pV1"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mLS-cf-mpv">
-                            <rect key="frame" x="0.0" y="150" width="393" height="50"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3nM-OC-kfM">
+                            <rect key="frame" x="0.0" y="219" width="393" height="73"/>
                             <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mQw-dn-Pqk">
-                                    <rect key="frame" x="15" y="49" width="363" height="0.6666666666666643"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qMb-Hd-Qk8">
+                                    <rect key="frame" x="15" y="72" width="363" height="0.6666666666666714"/>
                                     <color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="0.5" id="TZp-sg-YjH"/>
+                                        <constraint firstAttribute="height" constant="0.5" id="kFg-ic-s69"/>
                                     </constraints>
                                 </view>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Status" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TDW-Rf-JRc">
-                                    <rect key="frame" x="14.999999999999996" y="16.666666666666657" width="41.666666666666657" height="17"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Status" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ACI-RW-DN3">
+                                    <rect key="frame" x="15.000000000000004" y="16" width="45.333333333333343" height="17"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="RYH-ca-BeS"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
                                     <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H0O-Xz-ZaL">
+                                    <rect key="frame" x="15" y="44" width="363" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="3zg-tb-2un"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="50" id="0rY-YY-FQv"/>
-                                <constraint firstAttribute="trailing" secondItem="mQw-dn-Pqk" secondAttribute="trailing" constant="15" id="5a5-V0-eaF"/>
-                                <constraint firstItem="TDW-Rf-JRc" firstAttribute="centerY" secondItem="mLS-cf-mpv" secondAttribute="centerY" id="B95-fX-2in"/>
-                                <constraint firstItem="TDW-Rf-JRc" firstAttribute="leading" secondItem="mLS-cf-mpv" secondAttribute="leading" constant="15" id="IVa-KN-u7b"/>
-                                <constraint firstItem="mQw-dn-Pqk" firstAttribute="leading" secondItem="mLS-cf-mpv" secondAttribute="leading" constant="15" id="Sdj-DT-Bux"/>
-                                <constraint firstAttribute="bottom" secondItem="mQw-dn-Pqk" secondAttribute="bottom" constant="0.5" id="bUT-Hd-JZz"/>
+                                <constraint firstAttribute="bottom" secondItem="qMb-Hd-Qk8" secondAttribute="bottom" constant="0.5" id="60T-We-8qF"/>
+                                <constraint firstItem="qMb-Hd-Qk8" firstAttribute="leading" secondItem="3nM-OC-kfM" secondAttribute="leading" constant="15" id="AiM-nf-8jy"/>
+                                <constraint firstItem="H0O-Xz-ZaL" firstAttribute="top" secondItem="ACI-RW-DN3" secondAttribute="bottom" constant="11" id="GmZ-ul-kbi"/>
+                                <constraint firstItem="ACI-RW-DN3" firstAttribute="leading" secondItem="3nM-OC-kfM" secondAttribute="leading" constant="15" id="RDf-yf-JWe"/>
+                                <constraint firstItem="H0O-Xz-ZaL" firstAttribute="leading" secondItem="3nM-OC-kfM" secondAttribute="leading" constant="15" id="UBZ-CM-qll"/>
+                                <constraint firstItem="ACI-RW-DN3" firstAttribute="top" secondItem="3nM-OC-kfM" secondAttribute="top" constant="16" id="WC0-9g-fQM"/>
+                                <constraint firstAttribute="trailing" secondItem="qMb-Hd-Qk8" secondAttribute="trailing" constant="15" id="XWJ-lg-eqV"/>
+                                <constraint firstAttribute="trailing" secondItem="H0O-Xz-ZaL" secondAttribute="trailing" constant="15" id="gmV-Pi-RQV"/>
+                                <constraint firstItem="qMb-Hd-Qk8" firstAttribute="top" secondItem="H0O-Xz-ZaL" secondAttribute="bottom" constant="8" id="mBD-yh-aeX"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8L0-Qp-KaE">
-                            <rect key="frame" x="0.0" y="200" width="393" height="50"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kod-WM-D7m">
+                            <rect key="frame" x="0.0" y="292" width="393" height="73"/>
                             <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XUb-1Y-JfG">
-                                    <rect key="frame" x="15" y="49" width="363" height="0.6666666666666643"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AXD-vO-d4v">
+                                    <rect key="frame" x="15" y="72" width="363" height="0.6666666666666714"/>
                                     <color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="0.5" id="7KA-HU-h4N"/>
+                                        <constraint firstAttribute="height" constant="0.5" id="7Gp-MO-AkW"/>
                                     </constraints>
                                 </view>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Driver/Employee Number" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="e7r-7m-tyH">
-                                    <rect key="frame" x="15" y="16.666666666666686" width="160.66666666666666" height="17"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Driver/Employee Number" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zkn-UJ-msx">
+                                    <rect key="frame" x="15" y="16" width="172.33333333333334" height="17"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="EvF-R0-QwB"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
                                     <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vZT-6w-qSb">
+                                    <rect key="frame" x="15" y="44" width="363" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="f0R-V8-6F3"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstItem="e7r-7m-tyH" firstAttribute="leading" secondItem="8L0-Qp-KaE" secondAttribute="leading" constant="15" id="8Bi-q9-l2y"/>
-                                <constraint firstAttribute="bottom" secondItem="XUb-1Y-JfG" secondAttribute="bottom" constant="0.5" id="LHc-jV-OCp"/>
-                                <constraint firstItem="XUb-1Y-JfG" firstAttribute="leading" secondItem="8L0-Qp-KaE" secondAttribute="leading" constant="15" id="Oho-Cl-E1X"/>
-                                <constraint firstItem="e7r-7m-tyH" firstAttribute="centerY" secondItem="8L0-Qp-KaE" secondAttribute="centerY" id="fEy-q9-Cl3"/>
-                                <constraint firstAttribute="trailing" secondItem="XUb-1Y-JfG" secondAttribute="trailing" constant="15" id="tAo-6x-Vhy"/>
-                                <constraint firstAttribute="height" constant="50" id="v8k-pT-OaQ"/>
+                                <constraint firstItem="vZT-6w-qSb" firstAttribute="leading" secondItem="kod-WM-D7m" secondAttribute="leading" constant="15" id="HCp-9m-dsU"/>
+                                <constraint firstItem="vZT-6w-qSb" firstAttribute="top" secondItem="zkn-UJ-msx" secondAttribute="bottom" constant="11" id="Jco-Ga-jdx"/>
+                                <constraint firstAttribute="trailing" secondItem="AXD-vO-d4v" secondAttribute="trailing" constant="15" id="LHg-h0-HR9"/>
+                                <constraint firstItem="zkn-UJ-msx" firstAttribute="top" secondItem="kod-WM-D7m" secondAttribute="top" constant="16" id="Mkq-sL-pfO"/>
+                                <constraint firstItem="AXD-vO-d4v" firstAttribute="leading" secondItem="kod-WM-D7m" secondAttribute="leading" constant="15" id="P7b-yU-lxB"/>
+                                <constraint firstItem="AXD-vO-d4v" firstAttribute="top" secondItem="vZT-6w-qSb" secondAttribute="bottom" constant="8" id="SfZ-f8-9e0"/>
+                                <constraint firstAttribute="trailing" secondItem="vZT-6w-qSb" secondAttribute="trailing" constant="15" id="kxb-os-Cwv"/>
+                                <constraint firstAttribute="bottom" secondItem="AXD-vO-d4v" secondAttribute="bottom" constant="0.5" id="qvc-hA-hIQ"/>
+                                <constraint firstItem="zkn-UJ-msx" firstAttribute="leading" secondItem="kod-WM-D7m" secondAttribute="leading" constant="15" id="zxf-WI-tnr"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AMP-yD-a3f">
-                            <rect key="frame" x="0.0" y="250" width="393" height="50"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="M9d-ax-pBh">
+                            <rect key="frame" x="0.0" y="365" width="393" height="73"/>
                             <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="g3o-tK-9KE">
-                                    <rect key="frame" x="15" y="49" width="363" height="0.6666666666666643"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hQb-kd-0mJ">
+                                    <rect key="frame" x="15" y="72" width="363" height="0.6666666666666714"/>
                                     <color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="0.5" id="hzg-uw-Z8X"/>
+                                        <constraint firstAttribute="height" constant="0.5" id="oDK-UG-9LZ"/>
                                     </constraints>
                                 </view>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Date of Birth" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zsK-9o-M2E">
-                                    <rect key="frame" x="15" y="16.666666666666686" width="81.666666666666671" height="17"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Date of Birth" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tvO-l4-eOf">
+                                    <rect key="frame" x="15" y="16" width="87.333333333333329" height="17"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="R8l-tr-uvZ"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
                                     <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x2T-Hc-JgV">
+                                    <rect key="frame" x="15" y="44" width="363" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="2mr-SB-9HM"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="50" id="0Tu-U3-whj"/>
-                                <constraint firstItem="g3o-tK-9KE" firstAttribute="leading" secondItem="AMP-yD-a3f" secondAttribute="leading" constant="15" id="74Z-d5-VnS"/>
-                                <constraint firstAttribute="trailing" secondItem="g3o-tK-9KE" secondAttribute="trailing" constant="15" id="D2R-LM-QF3"/>
-                                <constraint firstAttribute="bottom" secondItem="g3o-tK-9KE" secondAttribute="bottom" constant="0.5" id="Leb-V7-6l1"/>
-                                <constraint firstItem="zsK-9o-M2E" firstAttribute="centerY" secondItem="AMP-yD-a3f" secondAttribute="centerY" id="lIq-bM-840"/>
-                                <constraint firstItem="zsK-9o-M2E" firstAttribute="leading" secondItem="AMP-yD-a3f" secondAttribute="leading" constant="15" id="wkA-vQ-Oqq"/>
+                                <constraint firstAttribute="bottom" secondItem="hQb-kd-0mJ" secondAttribute="bottom" constant="0.5" id="0Hl-dU-cda"/>
+                                <constraint firstItem="x2T-Hc-JgV" firstAttribute="leading" secondItem="M9d-ax-pBh" secondAttribute="leading" constant="15" id="1wz-YD-wAY"/>
+                                <constraint firstItem="tvO-l4-eOf" firstAttribute="leading" secondItem="M9d-ax-pBh" secondAttribute="leading" constant="15" id="K4k-oy-Qz1"/>
+                                <constraint firstItem="hQb-kd-0mJ" firstAttribute="leading" secondItem="M9d-ax-pBh" secondAttribute="leading" constant="15" id="LNl-tV-psl"/>
+                                <constraint firstItem="x2T-Hc-JgV" firstAttribute="top" secondItem="tvO-l4-eOf" secondAttribute="bottom" constant="11" id="Rm6-TI-I4J"/>
+                                <constraint firstItem="tvO-l4-eOf" firstAttribute="top" secondItem="M9d-ax-pBh" secondAttribute="top" constant="16" id="WiE-Ke-wv7"/>
+                                <constraint firstItem="hQb-kd-0mJ" firstAttribute="top" secondItem="x2T-Hc-JgV" secondAttribute="bottom" constant="8" id="icg-yo-iMz"/>
+                                <constraint firstAttribute="trailing" secondItem="x2T-Hc-JgV" secondAttribute="trailing" constant="15" id="ih8-Iq-vcB"/>
+                                <constraint firstAttribute="trailing" secondItem="hQb-kd-0mJ" secondAttribute="trailing" constant="15" id="xmY-WZ-eUt"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="z6i-Tt-u9i">
-                            <rect key="frame" x="0.0" y="300" width="393" height="50"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Pgi-jj-gEa">
+                            <rect key="frame" x="0.0" y="438" width="393" height="73"/>
                             <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Y9m-vF-DLT">
-                                    <rect key="frame" x="15" y="49" width="363" height="0.6666666666666643"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uu4-e7-sKd">
+                                    <rect key="frame" x="15" y="72" width="363" height="0.6666666666666714"/>
                                     <color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="0.5" id="vgx-oh-7Xw"/>
+                                        <constraint firstAttribute="height" constant="0.5" id="md8-Qy-8aU"/>
                                     </constraints>
                                 </view>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Address" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x1o-1P-uMc">
-                                    <rect key="frame" x="15" y="16.666666666666686" width="53" height="17"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Address" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iyx-kz-0XN">
+                                    <rect key="frame" x="15.000000000000004" y="16" width="57.333333333333343" height="17"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="eyi-7h-xI1"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
                                     <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Nh-Ad-bVV">
+                                    <rect key="frame" x="15" y="44" width="363" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="39N-q5-8qz"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstItem="x1o-1P-uMc" firstAttribute="leading" secondItem="z6i-Tt-u9i" secondAttribute="leading" constant="15" id="5oG-CJ-1ZK"/>
-                                <constraint firstAttribute="trailing" secondItem="Y9m-vF-DLT" secondAttribute="trailing" constant="15" id="ZFz-cY-lgq"/>
-                                <constraint firstAttribute="height" constant="50" id="fou-68-DX7"/>
-                                <constraint firstAttribute="bottom" secondItem="Y9m-vF-DLT" secondAttribute="bottom" constant="0.5" id="gU8-KU-0Qp"/>
-                                <constraint firstItem="Y9m-vF-DLT" firstAttribute="leading" secondItem="z6i-Tt-u9i" secondAttribute="leading" constant="15" id="qwv-nl-D9M"/>
-                                <constraint firstItem="x1o-1P-uMc" firstAttribute="centerY" secondItem="z6i-Tt-u9i" secondAttribute="centerY" id="u82-rR-YCI"/>
+                                <constraint firstAttribute="bottom" secondItem="uu4-e7-sKd" secondAttribute="bottom" constant="0.5" id="6Ft-Hy-ktW"/>
+                                <constraint firstAttribute="trailing" secondItem="2Nh-Ad-bVV" secondAttribute="trailing" constant="15" id="AYh-H8-AFb"/>
+                                <constraint firstItem="iyx-kz-0XN" firstAttribute="leading" secondItem="Pgi-jj-gEa" secondAttribute="leading" constant="15" id="DIO-NX-h31"/>
+                                <constraint firstItem="2Nh-Ad-bVV" firstAttribute="leading" secondItem="Pgi-jj-gEa" secondAttribute="leading" constant="15" id="Ocn-ux-IGL"/>
+                                <constraint firstItem="uu4-e7-sKd" firstAttribute="top" secondItem="2Nh-Ad-bVV" secondAttribute="bottom" constant="8" id="SJM-Wl-Jxw"/>
+                                <constraint firstItem="iyx-kz-0XN" firstAttribute="top" secondItem="Pgi-jj-gEa" secondAttribute="top" constant="16" id="qsn-ka-sOG"/>
+                                <constraint firstAttribute="trailing" secondItem="uu4-e7-sKd" secondAttribute="trailing" constant="15" id="wYu-FT-X7R"/>
+                                <constraint firstItem="uu4-e7-sKd" firstAttribute="leading" secondItem="Pgi-jj-gEa" secondAttribute="leading" constant="15" id="wtI-sf-b7M"/>
+                                <constraint firstItem="2Nh-Ad-bVV" firstAttribute="top" secondItem="iyx-kz-0XN" secondAttribute="bottom" constant="11" id="xUX-lz-mQC"/>
                             </constraints>
                         </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qo4-7G-Yhg">
-                            <rect key="frame" x="0.0" y="350" width="393" height="50"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Maq-wu-jvb">
+                            <rect key="frame" x="0.0" y="511" width="393" height="73"/>
                             <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NfD-wO-VW7">
-                                    <rect key="frame" x="15" y="49" width="363" height="0.6666666666666643"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TLC-xL-eV9">
+                                    <rect key="frame" x="15" y="72" width="363" height="0.6666666666666714"/>
                                     <color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="0.5" id="z9c-K8-hhp"/>
+                                        <constraint firstAttribute="height" constant="0.5" id="Dez-xf-3zS"/>
                                     </constraints>
                                 </view>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Notes" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wzq-ed-DcU">
-                                    <rect key="frame" x="15.000000000000004" y="16.666666666666686" width="38.333333333333343" height="17"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Notes" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YBk-w3-sVs">
+                                    <rect key="frame" x="15" y="16" width="41" height="17"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="17" id="6Eo-DS-kHd"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
                                     <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qfw-fT-Xkf">
+                                    <rect key="frame" x="15" y="44" width="363" height="20"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="SN5-n7-FOp"/>
+                                    </constraints>
+                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstItem="NfD-wO-VW7" firstAttribute="leading" secondItem="Qo4-7G-Yhg" secondAttribute="leading" constant="15" id="6Jc-ek-Am5"/>
-                                <constraint firstAttribute="trailing" secondItem="NfD-wO-VW7" secondAttribute="trailing" constant="15" id="6oV-fA-jiC"/>
-                                <constraint firstItem="wzq-ed-DcU" firstAttribute="leading" secondItem="Qo4-7G-Yhg" secondAttribute="leading" constant="15" id="D5r-dm-2g3"/>
-                                <constraint firstItem="wzq-ed-DcU" firstAttribute="centerY" secondItem="Qo4-7G-Yhg" secondAttribute="centerY" id="Dhw-Pw-x4l"/>
-                                <constraint firstAttribute="bottom" secondItem="NfD-wO-VW7" secondAttribute="bottom" constant="0.5" id="V65-XK-uxi"/>
-                                <constraint firstAttribute="height" constant="50" id="lyk-19-F28"/>
+                                <constraint firstItem="TLC-xL-eV9" firstAttribute="top" secondItem="qfw-fT-Xkf" secondAttribute="bottom" constant="8" id="HUa-Cg-bYK"/>
+                                <constraint firstItem="qfw-fT-Xkf" firstAttribute="leading" secondItem="Maq-wu-jvb" secondAttribute="leading" constant="15" id="QKl-x4-Bgt"/>
+                                <constraint firstItem="qfw-fT-Xkf" firstAttribute="top" secondItem="YBk-w3-sVs" secondAttribute="bottom" constant="11" id="UQf-YH-4ny"/>
+                                <constraint firstItem="YBk-w3-sVs" firstAttribute="top" secondItem="Maq-wu-jvb" secondAttribute="top" constant="16" id="XN4-2s-gn8"/>
+                                <constraint firstAttribute="trailing" secondItem="TLC-xL-eV9" secondAttribute="trailing" constant="15" id="Yki-IZ-snk"/>
+                                <constraint firstItem="TLC-xL-eV9" firstAttribute="leading" secondItem="Maq-wu-jvb" secondAttribute="leading" constant="15" id="amp-Dl-hKG"/>
+                                <constraint firstItem="YBk-w3-sVs" firstAttribute="leading" secondItem="Maq-wu-jvb" secondAttribute="leading" constant="15" id="dJt-ln-z19"/>
+                                <constraint firstAttribute="bottom" secondItem="TLC-xL-eV9" secondAttribute="bottom" constant="0.5" id="fBv-iP-Vzc"/>
+                                <constraint firstAttribute="trailing" secondItem="qfw-fT-Xkf" secondAttribute="trailing" constant="15" id="nmF-9S-0hG"/>
                             </constraints>
                         </view>
                     </subviews>
diff --git a/BrokerDriver/Profile/VC/PersonalWalletVC.swift b/BrokerDriver/Profile/VC/PersonalWalletVC.swift
index 3153aa9..372f3d7 100644
--- a/BrokerDriver/Profile/VC/PersonalWalletVC.swift
+++ b/BrokerDriver/Profile/VC/PersonalWalletVC.swift
@@ -10,11 +10,30 @@
 class PersonalWalletVC: BaseViewController {
 
     @IBOutlet weak var label_account: UILabel!
-    @IBOutlet weak var tableView: UITableView!
+    @IBOutlet weak var label_unpaid: UILabel!
+    @IBOutlet weak var label_paid: UILabel!
+    @IBOutlet weak var tableView: BaseTableView!
+    @IBOutlet weak var label_billNumber: UILabel!
+
+    private var model:UserWalletModel?
+
+
     override func viewDidLoad() {
         super.viewDidLoad()
         title = "Wallet"
 
+        Services.getMeWallet().subscribe(onNext: { [weak self] data in
+            if let model = data.data{
+                self?.model = model
+                self?.label_account.text = model.allTotal.currency()
+                self?.label_unpaid.text = String(format: "Total unpaid:%.2lf", model.unpaid)
+                self?.label_paid.text = String(format: "Total paid:%.2lf", model.unpaid)
+                self?.label_billNumber.text = String(format: "The bill number:%@ days", model.billNumber)
+                self?.tableView.reloadData()
+            }
+        }) { error in
+
+        }.disposed(by: disposeBag)
     }
 
     override func setUI() {
@@ -24,9 +43,9 @@
         tableView.dataSource = self
         tableView.separatorStyle = .none
         tableView.register(UINib(nibName: "WalletTCell", bundle: nil), forCellReuseIdentifier: "_WalletTCell")
-
+        tableView.jq_setEmptyView("Not data", image: UIImage(named: "empty"), foregroundColor: .gray, clouse: nil)
         label_account.font = UIFont(name: "Impact", size: 36)
-        label_account.text = 1.currency()
+
     }
 }
 
@@ -37,10 +56,11 @@
 extension PersonalWalletVC:UITableViewDataSource{
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "_WalletTCell") as! WalletTCell
+        cell.model = model!.list[indexPath.row]
         return cell
     }
 
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return 5
+        return model?.list.count ?? 0
     }
 }
diff --git a/BrokerDriver/Profile/VC/PersonalWalletVC.xib b/BrokerDriver/Profile/VC/PersonalWalletVC.xib
index 0faa4d6..4e9da79 100644
--- a/BrokerDriver/Profile/VC/PersonalWalletVC.xib
+++ b/BrokerDriver/Profile/VC/PersonalWalletVC.xib
@@ -13,6 +13,9 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PersonalWalletVC" customModule="BrokerDriver" customModuleProvider="target">
             <connections>
                 <outlet property="label_account" destination="iCG-Rf-aPw" id="Tp3-HJ-5dc"/>
+                <outlet property="label_billNumber" destination="zIQ-Gr-hFg" id="Sl9-HS-uwc"/>
+                <outlet property="label_paid" destination="TFK-w0-C7W" id="G7g-qx-84O"/>
+                <outlet property="label_unpaid" destination="vqb-fC-SoE" id="n8z-Dj-Aqs"/>
                 <outlet property="tableView" destination="GLv-NR-yay" id="sJZ-fK-K3g"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
@@ -90,7 +93,7 @@
                     <color key="textColor" red="0.19215686274509802" green="0.19215686274509802" blue="0.19215686274509802" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
-                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="GLv-NR-yay">
+                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="GLv-NR-yay" customClass="BaseTableView" customModule="BrokerDriver" customModuleProvider="target">
                     <rect key="frame" x="0.0" y="299.33333333333331" width="393" height="518.66666666666674"/>
                     <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                 </tableView>
diff --git a/BrokerDriver/SceneDelegate.swift b/BrokerDriver/SceneDelegate.swift
index f0826f7..9f7ed8f 100644
--- a/BrokerDriver/SceneDelegate.swift
+++ b/BrokerDriver/SceneDelegate.swift
@@ -17,8 +17,15 @@
         window = UIWindow(windowScene: windowScene)
         window?.frame = windowScene.coordinateSpace.bounds
 
-        let nav = BaseNavigationController(rootViewController: LoginVC())
-        window?.rootViewController = nav
+        if UserViewModel.getUserInfo() != nil{
+            let nav = BaseNavigationController(rootViewController: HomeVC())
+            LogInfo("USER_INFO:\(UserViewModel.getUserInfo()!.toJSONString()!)")
+            window?.rootViewController = nav
+        }else{
+            let nav = BaseNavigationController(rootViewController: LoginVC())
+            window?.rootViewController = nav
+        }
+
         window?.overrideUserInterfaceStyle = .light
         window?.makeKeyAndVisible()
     }
diff --git a/BrokerDriver/ViewModels/OrderViewModel.swift b/BrokerDriver/ViewModels/OrderViewModel.swift
new file mode 100644
index 0000000..05005d0
--- /dev/null
+++ b/BrokerDriver/ViewModels/OrderViewModel.swift
@@ -0,0 +1,22 @@
+//
+//  OrderViewModel.swift
+//  BrokerDriver
+//
+//  Created by 无故事王国 on 2023/4/26.
+//
+
+import Foundation
+
+
+struct OrderModel:HandyJSON{
+    var ccontainerNumber: String = ""
+    var end: String = ""
+    var orderId: String = ""
+    var phone: String = ""
+    var pickUpTime: String = ""
+    var portName: String = ""
+    var start: String = ""
+    var status: Int = 0
+    var type: Int = 0
+
+}
diff --git a/BrokerDriver/ViewModels/UserViewModel.swift b/BrokerDriver/ViewModels/UserViewModel.swift
new file mode 100644
index 0000000..486980e
--- /dev/null
+++ b/BrokerDriver/ViewModels/UserViewModel.swift
@@ -0,0 +1,38 @@
+    //
+    //  UserViewModel.swift
+    //  BrokerDriver
+    //
+    //  Created by 无故事王国 on 2023/4/26.
+    //
+
+import Foundation
+import HandyJSON
+
+final class UserViewModel{
+    static let UserLoginSuccess_Noti = Notification.Name.init("UserLoginSuccess")
+
+
+    static func getUserInfo()->UserInfoModel?{
+        if let modelStr = UserDefaults.standard.object(forKey: "_UserInfoModel") as? String,let model = UserInfoModel.deserialize(from: modelStr){
+            return model
+        }
+        return nil
+    }
+
+    static func saveUserInfo(_ user:UserInfoModel){
+        if let string = user.toJSONString(){
+            UserDefaults.standard.set(string, forKey: "_UserInfoModel")
+            UserDefaults.standard.synchronize()
+        }
+    }
+
+    static func clearUserInfo(){
+        UserDefaults.standard.set(nil, forKey: "_UserInfoModel")
+        UserDefaults.standard.synchronize()
+    }
+
+
+    static func publishLoginSuccess(){
+        NotificationCenter.default.post(name: UserViewModel.UserLoginSuccess_Noti, object: nil)
+    }
+}
diff --git a/Podfile b/Podfile
index 3d114d1..a4fbace 100644
--- a/Podfile
+++ b/Podfile
@@ -9,6 +9,10 @@
   pod 'JQTools',:path=> '/Users/yvkd/MyProject/JQTools'
   pod 'FFPage'
   pod 'SPPageMenu'
+  pod 'HandyJSON'
+  pod 'Alamofire'
+  pod 'MBProgressHUD'
+  pod 'SwifterSwift'
 
   post_install do |installer|
     installer.pods_project.targets.each do |target|

--
Gitblit v1.7.1