Bläddra i källkod

微信绑定 sdk 环境 单粒class

openlockPPP 1 år sedan
förälder
incheckning
5e65199b79
24 ändrade filer med 2568 tillägg och 2306 borttagningar
  1. 26 0
      JiaPeiManage.xcodeproj/project.pbxproj
  2. 1 1
      JiaPeiManage.xcodeproj/xcuserdata/mimasigeling.xcuserdatad/xcschemes/xcschememanagement.plist
  3. 23 0
      JiaPeiManage/Assets.xcassets/Modules/Login/login_sdx.imageset/Contents.json
  4. BIN
      JiaPeiManage/Assets.xcassets/Modules/Login/login_sdx.imageset/路径 5204.png
  5. BIN
      JiaPeiManage/Assets.xcassets/Modules/Login/login_sdx.imageset/路径 5204@2x.png
  6. BIN
      JiaPeiManage/Assets.xcassets/Modules/Login/login_sdx.imageset/路径 5204@3x.png
  7. 19 4
      JiaPeiManage/Info.plist
  8. 1 0
      JiaPeiManage/JSJP-Brigding-Header.h
  9. 10 0
      JiaPeiManage/JiaPeiManage.entitlements
  10. 4 0
      JiaPeiManage/Sources/Constants/NYMacros.swift
  11. 5 2
      JiaPeiManage/Sources/Main/App/AppDelegate.swift
  12. 2 0
      JiaPeiManage/Sources/Main/App/CompositionRoot.swift
  13. 9 0
      JiaPeiManage/Sources/Modulars/Login/Controllers/LoginViewController.swift
  14. 306 242
      JiaPeiManage/Sources/Modulars/Login/Controllers/LoginViewController.xib
  15. 55 0
      JiaPeiManage/Sources/Utils/NYWXApiManager.swift
  16. 2 0
      Podfile
  17. 5 1
      Podfile.lock
  18. 5 1
      Pods/Manifest.lock
  19. 2071 2054
      Pods/Pods.xcodeproj/project.pbxproj
  20. 8 1
      Pods/Pods.xcodeproj/xcuserdata/mimasigeling.xcuserdatad/xcschemes/xcschememanagement.plist
  21. 5 0
      Pods/Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage-acknowledgements.markdown
  22. 11 0
      Pods/Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage-acknowledgements.plist
  23. 0 0
      Pods/Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage.debug.xcconfig
  24. 0 0
      Pods/Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage.release.xcconfig

+ 26 - 0
JiaPeiManage.xcodeproj/project.pbxproj

@@ -181,6 +181,10 @@
 		90CE53002A36F7110033BD06 /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90CE52FF2A36F7110033BD06 /* HomeViewController.xib */; };
 		90CE53022A3834060033BD06 /* CoachAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90CE53012A3834060033BD06 /* CoachAPI.swift */; };
 		90CE53042A3834360033BD06 /* CoachService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90CE53032A3834360033BD06 /* CoachService.swift */; };
+		90E65C8A2A7A4E330055B09C /* NYWXApiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90E65C892A7A4E330055B09C /* NYWXApiManager.swift */; };
+		90E65C902A7A590E0055B09C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90E65C8F2A7A590D0055B09C /* Security.framework */; };
+		90E65C922A7A59250055B09C /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90E65C912A7A59250055B09C /* WebKit.framework */; };
+		90E65C942A7A59770055B09C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90E65C932A7A59770055B09C /* CoreGraphics.framework */; };
 		FD091E28E4C2EF8E654AE2C6 /* Pods_JiaPeiManage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FC2879EF62A9D4DF6777C62 /* Pods_JiaPeiManage.framework */; };
 /* End PBXBuildFile section */
 
@@ -371,6 +375,12 @@
 		90CE53012A3834060033BD06 /* CoachAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoachAPI.swift; sourceTree = "<group>"; };
 		90CE53032A3834360033BD06 /* CoachService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoachService.swift; sourceTree = "<group>"; };
 		90E109CD2A4927A100091BC6 /* libswift_Concurrency.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswift_Concurrency.tbd; path = usr/lib/swift/libswift_Concurrency.tbd; sourceTree = SDKROOT; };
+		90E65C882A7A484B0055B09C /* JiaPeiManage.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = JiaPeiManage.entitlements; sourceTree = "<group>"; };
+		90E65C892A7A4E330055B09C /* NYWXApiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYWXApiManager.swift; sourceTree = "<group>"; };
+		90E65C8B2A7A57530055B09C /* WechatOpenSDK-XCFramework.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "WechatOpenSDK-XCFramework.xcframework"; path = "Pods/WechatOpenSDK-XCFramework/WechatOpenSDK-XCFramework.xcframework"; sourceTree = "<group>"; };
+		90E65C8F2A7A590D0055B09C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
+		90E65C912A7A59250055B09C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
+		90E65C932A7A59770055B09C /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
 		A8171123E8F401C7CF842A4C /* Pods-JiaPeiManage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JiaPeiManage.debug.xcconfig"; path = "Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage.debug.xcconfig"; sourceTree = "<group>"; };
 		D9F65764266FE5C95D1940F5 /* Pods-JiaPeiManage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JiaPeiManage.release.xcconfig"; path = "Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage.release.xcconfig"; sourceTree = "<group>"; };
 /* End PBXFileReference section */
@@ -381,6 +391,9 @@
 			buildActionMask = 2147483647;
 			files = (
 				903C04AC2A651DBC00935764 /* AdSupport.framework in Frameworks */,
+				90E65C902A7A590E0055B09C /* Security.framework in Frameworks */,
+				90E65C922A7A59250055B09C /* WebKit.framework in Frameworks */,
+				90E65C942A7A59770055B09C /* CoreGraphics.framework in Frameworks */,
 				FD091E28E4C2EF8E654AE2C6 /* Pods_JiaPeiManage.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -653,6 +666,7 @@
 		90CE52172A36C0700033BD06 /* JiaPeiManage */ = {
 			isa = PBXGroup;
 			children = (
+				90E65C882A7A484B0055B09C /* JiaPeiManage.entitlements */,
 				90CE522C2A36E3C20033BD06 /* Sources */,
 				90CE52212A36C0720033BD06 /* Assets.xcassets */,
 				90CE52232A36C0720033BD06 /* LaunchScreen.storyboard */,
@@ -987,6 +1001,7 @@
 				909DA5C02A3999B30034501F /* NYTips.swift */,
 				903C04A92A651B1200935764 /* NYIDFA.swift */,
 				903B4E6D2A73C5D800FD7320 /* NYAccountManager.swift */,
+				90E65C892A7A4E330055B09C /* NYWXApiManager.swift */,
 			);
 			path = Utils;
 			sourceTree = "<group>";
@@ -1063,6 +1078,10 @@
 		A24D99DBE7A92F9485B15E3A /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				90E65C932A7A59770055B09C /* CoreGraphics.framework */,
+				90E65C912A7A59250055B09C /* WebKit.framework */,
+				90E65C8F2A7A590D0055B09C /* Security.framework */,
+				90E65C8B2A7A57530055B09C /* WechatOpenSDK-XCFramework.xcframework */,
 				903C04AB2A651DBC00935764 /* AdSupport.framework */,
 				90E109CD2A4927A100091BC6 /* libswift_Concurrency.tbd */,
 				1FC2879EF62A9D4DF6777C62 /* Pods_JiaPeiManage.framework */,
@@ -1274,6 +1293,7 @@
 				90CE52EF2A36EC950033BD06 /* NYArticleViewController.swift in Sources */,
 				90CE52D72A36E6000033BD06 /* Snap.swift in Sources */,
 				90CE52882A36E5460033BD06 /* PopOverView.swift in Sources */,
+				90E65C8A2A7A4E330055B09C /* NYWXApiManager.swift in Sources */,
 				90971E6B2A493DE500267B7F /* MeTabBarViewReactor.swift in Sources */,
 				90CE527F2A36E5460033BD06 /* NibLoadable.swift in Sources */,
 				90CE52FA2A36F2570033BD06 /* LoginService.swift in Sources */,
@@ -1510,12 +1530,15 @@
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+				CODE_SIGN_ENTITLEMENTS = JiaPeiManage/JiaPeiManage.entitlements;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1222023072102;
 				DEVELOPMENT_TEAM = K7T6CU5SW5;
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = JiaPeiManage/Info.plist;
 				INFOPLIST_KEY_CFBundleDisplayName = "教练管家";
+				INFOPLIST_KEY_NSContactsUsageDescription = "建议允许";
+				INFOPLIST_KEY_NSUserTrackingUsageDescription = "此App需要您允许访问广告标识符权限,向您提供更优质、安全的个性化服务及内容,未经同意我们不会用于其他目的;开启后,您也可以前往系统“设置-隐私 ”中随时关闭";
 				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
 				INFOPLIST_KEY_UILaunchStoryboardName = "";
 				INFOPLIST_KEY_UIMainStoryboardFile = Main;
@@ -1550,12 +1573,15 @@
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+				CODE_SIGN_ENTITLEMENTS = JiaPeiManage/JiaPeiManage.entitlements;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1222023072102;
 				DEVELOPMENT_TEAM = K7T6CU5SW5;
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = JiaPeiManage/Info.plist;
 				INFOPLIST_KEY_CFBundleDisplayName = "教练管家";
+				INFOPLIST_KEY_NSContactsUsageDescription = "建议允许";
+				INFOPLIST_KEY_NSUserTrackingUsageDescription = "此App需要您允许访问广告标识符权限,向您提供更优质、安全的个性化服务及内容,未经同意我们不会用于其他目的;开启后,您也可以前往系统“设置-隐私 ”中随时关闭";
 				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
 				INFOPLIST_KEY_UILaunchStoryboardName = "";
 				INFOPLIST_KEY_UIMainStoryboardFile = Main;

+ 1 - 1
JiaPeiManage.xcodeproj/xcuserdata/mimasigeling.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,7 +7,7 @@
 		<key>JiaPeiManage.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>53</integer>
+			<integer>54</integer>
 		</dict>
 	</dict>
 </dict>

+ 23 - 0
JiaPeiManage/Assets.xcassets/Modules/Login/login_sdx.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "路径 5204.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "路径 5204@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "路径 5204@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
JiaPeiManage/Assets.xcassets/Modules/Login/login_sdx.imageset/路径 5204.png


BIN
JiaPeiManage/Assets.xcassets/Modules/Login/login_sdx.imageset/路径 5204@2x.png


BIN
JiaPeiManage/Assets.xcassets/Modules/Login/login_sdx.imageset/路径 5204@3x.png


+ 19 - 4
JiaPeiManage/Info.plist

@@ -2,6 +2,25 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
+	<key>CFBundleURLTypes</key>
+	<array>
+		<dict>
+			<key>CFBundleTypeRole</key>
+			<string>Editor</string>
+			<key>CFBundleURLName</key>
+			<string>weixin</string>
+			<key>CFBundleURLSchemes</key>
+			<array>
+				<string>wx6f190721f04ea532</string>
+			</array>
+		</dict>
+	</array>
+	<key>LSApplicationQueriesSchemes</key>
+	<array>
+		<string>weixin</string>
+		<string>weixinULAPI</string>
+		<string>weixinURLParamsAPI</string>
+	</array>
 	<key>NSAppTransportSecurity</key>
 	<dict>
 		<key>NSAllowsArbitraryLoads</key>
@@ -14,9 +33,5 @@
 	</dict>
 	<key>UIViewControllerBasedStatusBarAppearance</key>
 	<false/>
-	<key>NSContactsUsageDescription</key>
-	<string>建议允许</string>
-	<key>NSUserTrackingUsageDescription</key>
-	<string>此App需要您允许访问广告标识符权限,向您提供更优质、安全的个性化服务及内容,未经同意我们不会用于其他目的;开启后,您也可以前往系统“设置-隐私 ”中随时关闭</string>
 </dict>
 </plist>

+ 1 - 0
JiaPeiManage/JSJP-Brigding-Header.h

@@ -15,6 +15,7 @@
 #import <SDWebImage/SDWebImage.h>
 #import <UMCommon/UMCommon.h>
 #import <Bugly/Bugly.h>
+#import <WXApi.h>
 //加密
 #import "DES3Util.h"
 #endif /* JSJP_Brigding_Header_h */

+ 10 - 0
JiaPeiManage/JiaPeiManage.entitlements

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>com.apple.developer.associated-domains</key>
+	<array>
+		<string>applinks:app.jppt.com.cn</string>
+	</array>
+</dict>
+</plist>

+ 4 - 0
JiaPeiManage/Sources/Constants/NYMacros.swift

@@ -17,6 +17,10 @@ struct NYMacros {
     //bugly key
     static let appbuglyKey = "4c23a341-cdbb-4139-9da3-2377aad1abee"
     static let appbuglyId = "9318ff6ab4"
+    //微信
+    static let wxappid = "wx6f190721f04ea532"
+    static let wxsecret = "3e35b5ee1b06c7384e272076159f6385"
+    static let universalLink = "https://app.jppt.com.cn/JSJPCoach/"
     ///------
     /// iOS Version
     ///------

+ 5 - 2
JiaPeiManage/Sources/Main/App/AppDelegate.swift

@@ -43,8 +43,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
         open url: URL,
         options: [UIApplication.OpenURLOptionsKey: Any] = [:]
     ) -> Bool {
+        NYWXApiManager.shared.handleOpenUrl(url: url)
         return self.dependency.openURL(url, options)
     }
-
-
+    // For Universal Link
+    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
+        return NYWXApiManager.shared.handleOpenUniversalLink(userActivity: userActivity)
+    }
 }

+ 2 - 0
JiaPeiManage/Sources/Main/App/CompositionRoot.swift

@@ -79,6 +79,8 @@ final class CompositionRoot {
         UMConfigure.initWithAppkey(NYMacros.appMenKey, channel: "App Store")
         //bugly key
         Bugly.start(withAppId:NYMacros.appbuglyId)
+        //微信注册
+        NYWXApiManager.shared.registerApp()
     }
     
     static func configureAppearance() {

+ 9 - 0
JiaPeiManage/Sources/Modulars/Login/Controllers/LoginViewController.swift

@@ -36,6 +36,11 @@ final class LoginViewController: BaseViewController {
     @IBOutlet weak var userprotocol_button: UIButton!
     //隐私政策
     @IBOutlet weak var userprivacy_button: UIButton!
+    //wx
+    @IBOutlet weak var wxin_button: UIButton!
+    //apple
+    @IBOutlet weak var apple_button: UIButton!
+    
     
     var city:String = ""
     var cityPower:String = ""  //地区权限
@@ -123,6 +128,10 @@ final class LoginViewController: BaseViewController {
         }).disposed(by: disposeBag)
         location_button_btn.rx.tap.subscribe ({ [unowned self] (_)  in
             self.showDialog()
+        }).disposed(by: disposeBag)
+        //wxin_button
+        wxin_button.rx.tap.subscribe ({ [unowned self] (_)  in
+            
         }).disposed(by: disposeBag)
         //登录
         login_button.rx.tap

+ 306 - 242
JiaPeiManage/Sources/Modulars/Login/Controllers/LoginViewController.xib

@@ -11,6 +11,7 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LoginViewController" customModule="JiaPeiManage" customModuleProvider="target">
             <connections>
                 <outlet property="agree_button" destination="e49-95-2qF" id="5SE-bN-Bmh"/>
+                <outlet property="apple_button" destination="Lms-8N-x9M" id="Ca1-NP-qVc"/>
                 <outlet property="location_button" destination="rMA-Qb-CEp" id="WXC-en-KxG"/>
                 <outlet property="location_button_btn" destination="eI9-bt-Px4" id="Qwx-V0-xZw"/>
                 <outlet property="login_button" destination="QFo-KM-CGQ" id="LO1-nE-eDa"/>
@@ -21,6 +22,7 @@
                 <outlet property="userprivacy_button" destination="2vk-wc-3HQ" id="p90-TA-5Kk"/>
                 <outlet property="userprotocol_button" destination="Qxc-Vk-Mrq" id="rwA-OP-u8e"/>
                 <outlet property="view" destination="iN0-l3-epB" id="ubR-kx-ERh"/>
+                <outlet property="wxin_button" destination="1kh-Dw-bRl" id="tG9-Vn-T5L"/>
             </connections>
         </placeholder>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -28,275 +30,336 @@
             <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_hello" translatesAutoresizingMaskIntoConstraints="NO" id="ME7-ie-msV">
-                    <rect key="frame" x="26" y="128" width="334" height="113"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="113" id="AKq-wQ-dKb"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="boolean" keyPath="aLRatio" value="YES"/>
-                    </userDefinedRuntimeAttributes>
-                </imageView>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SDO-oc-nvt">
-                    <rect key="frame" x="15" y="296" width="345" height="380"/>
+                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fgl-ad-YmV">
+                    <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
                     <subviews>
-                        <button opaque="NO" clipsSubviews="YES" alpha="0.5" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QFo-KM-CGQ">
-                            <rect key="frame" x="28" y="285" width="289" height="45"/>
-                            <color key="backgroundColor" red="0.20784313725490194" green="0.74901960784313726" blue="0.36862745098039218" alpha="1" colorSpace="calibratedRGB"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="45" id="KrL-UQ-pBh"/>
-                            </constraints>
-                            <state key="normal" title="登 录"/>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="5"/>
-                                </userDefinedRuntimeAttribute>
-                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
-                                    <real key="value" value="0.0"/>
-                                </userDefinedRuntimeAttribute>
-                                <userDefinedRuntimeAttribute type="boolean" keyPath="aLRatio" value="YES"/>
-                            </userDefinedRuntimeAttributes>
-                        </button>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wQT-0A-9II" userLabel="View-input">
-                            <rect key="frame" x="25" y="40" width="295" height="45"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fEE-ui-qIq" userLabel="View-content">
+                            <rect key="frame" x="0.0" y="0.0" width="375" height="810"/>
                             <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_ID" translatesAutoresizingMaskIntoConstraints="NO" id="dFa-eq-XxP">
-                                    <rect key="frame" x="20" y="9.6666666666666856" width="32" height="26"/>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_hello" translatesAutoresizingMaskIntoConstraints="NO" id="ME7-ie-msV">
+                                    <rect key="frame" x="21" y="78" width="333" height="113"/>
                                     <constraints>
-                                        <constraint firstAttribute="width" constant="32" id="2kM-dP-nVX"/>
-                                        <constraint firstAttribute="height" constant="26" id="Ll5-uS-mrf"/>
+                                        <constraint firstAttribute="height" constant="113" id="Il2-1n-Vb3"/>
                                     </constraints>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="boolean" keyPath="aLRatio" value="YES"/>
+                                    </userDefinedRuntimeAttributes>
                                 </imageView>
-                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入身份证号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="5Fe-Zm-EX0" customClass="QMUITextField">
-                                    <rect key="frame" x="62" y="0.0" width="218" height="45"/>
-                                    <color key="textColor" red="0.83137254901960778" green="0.8666666666666667" blue="0.90196078431372551" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                    <textInputTraits key="textInputTraits"/>
-                                </textField>
-                            </subviews>
-                            <color key="backgroundColor" red="0.14901960784313725" green="0.28235294117647058" blue="0.41960784313725491" alpha="1" colorSpace="calibratedRGB"/>
-                            <constraints>
-                                <constraint firstItem="dFa-eq-XxP" firstAttribute="leading" secondItem="wQT-0A-9II" secondAttribute="leading" constant="20" id="28L-Eb-N2q"/>
-                                <constraint firstItem="5Fe-Zm-EX0" firstAttribute="top" secondItem="wQT-0A-9II" secondAttribute="top" id="6du-dr-OnU"/>
-                                <constraint firstItem="dFa-eq-XxP" firstAttribute="centerY" secondItem="wQT-0A-9II" secondAttribute="centerY" id="D6i-TA-y6I"/>
-                                <constraint firstAttribute="bottom" secondItem="5Fe-Zm-EX0" secondAttribute="bottom" id="O3r-uq-WZX"/>
-                                <constraint firstItem="5Fe-Zm-EX0" firstAttribute="leading" secondItem="dFa-eq-XxP" secondAttribute="trailing" constant="10" id="S8Y-tT-NKN"/>
-                                <constraint firstAttribute="height" constant="45" id="dcn-Wi-cy0"/>
-                                <constraint firstAttribute="trailing" secondItem="5Fe-Zm-EX0" secondAttribute="trailing" constant="15" id="yJF-0Y-16N"/>
-                            </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="5"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
-                        </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="U4y-em-jeM" userLabel="View-input">
-                            <rect key="frame" x="25" y="105" width="295" height="45"/>
-                            <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_pwd" translatesAutoresizingMaskIntoConstraints="NO" id="mTC-xX-7eg">
-                                    <rect key="frame" x="25" y="9.6666666666666856" width="22" height="26"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="26" id="0JU-08-wSP"/>
-                                        <constraint firstAttribute="width" constant="22" id="h9O-U0-HBA"/>
-                                    </constraints>
-                                </imageView>
-                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="FhP-eV-VnP" customClass="QMUITextField">
-                                    <rect key="frame" x="61" y="0.0" width="176" height="45"/>
-                                    <color key="textColor" red="0.83137254900000002" green="0.86666666670000003" blue="0.90196078430000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                    <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
-                                </textField>
-                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="q0m-zw-jQ3" customClass="QMUIButton">
-                                    <rect key="frame" x="247" y="0.0" width="22" height="45"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="22" id="TcP-3a-Yfm"/>
-                                        <constraint firstAttribute="height" constant="45" id="Yj2-aG-AfZ"/>
-                                    </constraints>
-                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                                    <state key="normal" image="login_hide"/>
-                                    <state key="selected" image="login_show"/>
-                                </button>
-                            </subviews>
-                            <color key="backgroundColor" red="0.14901960780000001" green="0.28235294119999998" blue="0.41960784309999999" alpha="1" colorSpace="calibratedRGB"/>
-                            <constraints>
-                                <constraint firstAttribute="trailing" secondItem="q0m-zw-jQ3" secondAttribute="trailing" constant="26" id="2KO-3O-OM0"/>
-                                <constraint firstItem="q0m-zw-jQ3" firstAttribute="leading" secondItem="FhP-eV-VnP" secondAttribute="trailing" constant="10" id="7UK-hA-4sm"/>
-                                <constraint firstItem="mTC-xX-7eg" firstAttribute="centerY" secondItem="U4y-em-jeM" secondAttribute="centerY" id="9Nh-Z0-GIz"/>
-                                <constraint firstAttribute="bottom" secondItem="FhP-eV-VnP" secondAttribute="bottom" id="FSn-0J-PLh"/>
-                                <constraint firstItem="q0m-zw-jQ3" firstAttribute="centerY" secondItem="U4y-em-jeM" secondAttribute="centerY" id="Hu6-wp-RUx"/>
-                                <constraint firstItem="FhP-eV-VnP" firstAttribute="top" secondItem="U4y-em-jeM" secondAttribute="top" id="I6H-II-ORh"/>
-                                <constraint firstItem="mTC-xX-7eg" firstAttribute="leading" secondItem="U4y-em-jeM" secondAttribute="leading" constant="25" id="Lti-1O-KgQ"/>
-                                <constraint firstAttribute="height" constant="45" id="N6j-Ni-44c"/>
-                                <constraint firstItem="FhP-eV-VnP" firstAttribute="leading" secondItem="mTC-xX-7eg" secondAttribute="trailing" constant="14" id="zHY-lt-3dd"/>
-                            </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="5"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
-                        </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="V1H-73-kgk" userLabel="View-input">
-                            <rect key="frame" x="25" y="170" width="295" height="45"/>
-                            <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_location" translatesAutoresizingMaskIntoConstraints="NO" id="AVr-H3-2zM">
-                                    <rect key="frame" x="25" y="9.6666666666666856" width="21" height="26"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SDO-oc-nvt">
+                                    <rect key="frame" x="15" y="236" width="345" height="380"/>
+                                    <subviews>
+                                        <button opaque="NO" clipsSubviews="YES" alpha="0.5" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QFo-KM-CGQ">
+                                            <rect key="frame" x="28" y="285" width="289" height="45"/>
+                                            <color key="backgroundColor" red="0.20784313725490194" green="0.74901960784313726" blue="0.36862745098039218" alpha="1" colorSpace="calibratedRGB"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="45" id="KrL-UQ-pBh"/>
+                                            </constraints>
+                                            <state key="normal" title="登 录"/>
+                                            <userDefinedRuntimeAttributes>
+                                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                    <real key="value" value="5"/>
+                                                </userDefinedRuntimeAttribute>
+                                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                                                    <real key="value" value="0.0"/>
+                                                </userDefinedRuntimeAttribute>
+                                            </userDefinedRuntimeAttributes>
+                                        </button>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wQT-0A-9II" userLabel="View-input">
+                                            <rect key="frame" x="25" y="40" width="295" height="45"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_ID" translatesAutoresizingMaskIntoConstraints="NO" id="dFa-eq-XxP">
+                                                    <rect key="frame" x="20" y="9.6666666666666856" width="32" height="26"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="32" id="2kM-dP-nVX"/>
+                                                        <constraint firstAttribute="height" constant="26" id="Ll5-uS-mrf"/>
+                                                    </constraints>
+                                                </imageView>
+                                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入身份证号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="5Fe-Zm-EX0" customClass="QMUITextField">
+                                                    <rect key="frame" x="62" y="0.0" width="218" height="45"/>
+                                                    <color key="textColor" red="0.83137254901960778" green="0.8666666666666667" blue="0.90196078431372551" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <textInputTraits key="textInputTraits"/>
+                                                </textField>
+                                            </subviews>
+                                            <color key="backgroundColor" red="0.14901960784313725" green="0.28235294117647058" blue="0.41960784313725491" alpha="1" colorSpace="calibratedRGB"/>
+                                            <constraints>
+                                                <constraint firstItem="dFa-eq-XxP" firstAttribute="leading" secondItem="wQT-0A-9II" secondAttribute="leading" constant="20" id="28L-Eb-N2q"/>
+                                                <constraint firstItem="5Fe-Zm-EX0" firstAttribute="top" secondItem="wQT-0A-9II" secondAttribute="top" id="6du-dr-OnU"/>
+                                                <constraint firstItem="dFa-eq-XxP" firstAttribute="centerY" secondItem="wQT-0A-9II" secondAttribute="centerY" id="D6i-TA-y6I"/>
+                                                <constraint firstAttribute="bottom" secondItem="5Fe-Zm-EX0" secondAttribute="bottom" id="O3r-uq-WZX"/>
+                                                <constraint firstItem="5Fe-Zm-EX0" firstAttribute="leading" secondItem="dFa-eq-XxP" secondAttribute="trailing" constant="10" id="S8Y-tT-NKN"/>
+                                                <constraint firstAttribute="height" constant="45" id="dcn-Wi-cy0"/>
+                                                <constraint firstAttribute="trailing" secondItem="5Fe-Zm-EX0" secondAttribute="trailing" constant="15" id="yJF-0Y-16N"/>
+                                            </constraints>
+                                            <userDefinedRuntimeAttributes>
+                                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                    <real key="value" value="5"/>
+                                                </userDefinedRuntimeAttribute>
+                                            </userDefinedRuntimeAttributes>
+                                        </view>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="U4y-em-jeM" userLabel="View-input">
+                                            <rect key="frame" x="25" y="105" width="295" height="45"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_pwd" translatesAutoresizingMaskIntoConstraints="NO" id="mTC-xX-7eg">
+                                                    <rect key="frame" x="25" y="9.6666666666666856" width="22" height="26"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="26" id="0JU-08-wSP"/>
+                                                        <constraint firstAttribute="width" constant="22" id="h9O-U0-HBA"/>
+                                                    </constraints>
+                                                </imageView>
+                                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入密码" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="FhP-eV-VnP" customClass="QMUITextField">
+                                                    <rect key="frame" x="61" y="0.0" width="176" height="45"/>
+                                                    <color key="textColor" red="0.83137254900000002" green="0.86666666670000003" blue="0.90196078430000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
+                                                </textField>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="q0m-zw-jQ3" customClass="QMUIButton">
+                                                    <rect key="frame" x="247" y="0.0" width="22" height="45"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="22" id="TcP-3a-Yfm"/>
+                                                        <constraint firstAttribute="height" constant="45" id="Yj2-aG-AfZ"/>
+                                                    </constraints>
+                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                    <state key="normal" image="login_hide"/>
+                                                    <state key="selected" image="login_show"/>
+                                                </button>
+                                            </subviews>
+                                            <color key="backgroundColor" red="0.14901960780000001" green="0.28235294119999998" blue="0.41960784309999999" alpha="1" colorSpace="calibratedRGB"/>
+                                            <constraints>
+                                                <constraint firstAttribute="trailing" secondItem="q0m-zw-jQ3" secondAttribute="trailing" constant="26" id="2KO-3O-OM0"/>
+                                                <constraint firstItem="q0m-zw-jQ3" firstAttribute="leading" secondItem="FhP-eV-VnP" secondAttribute="trailing" constant="10" id="7UK-hA-4sm"/>
+                                                <constraint firstItem="mTC-xX-7eg" firstAttribute="centerY" secondItem="U4y-em-jeM" secondAttribute="centerY" id="9Nh-Z0-GIz"/>
+                                                <constraint firstAttribute="bottom" secondItem="FhP-eV-VnP" secondAttribute="bottom" id="FSn-0J-PLh"/>
+                                                <constraint firstItem="q0m-zw-jQ3" firstAttribute="centerY" secondItem="U4y-em-jeM" secondAttribute="centerY" id="Hu6-wp-RUx"/>
+                                                <constraint firstItem="FhP-eV-VnP" firstAttribute="top" secondItem="U4y-em-jeM" secondAttribute="top" id="I6H-II-ORh"/>
+                                                <constraint firstItem="mTC-xX-7eg" firstAttribute="leading" secondItem="U4y-em-jeM" secondAttribute="leading" constant="25" id="Lti-1O-KgQ"/>
+                                                <constraint firstAttribute="height" constant="45" id="N6j-Ni-44c"/>
+                                                <constraint firstItem="FhP-eV-VnP" firstAttribute="leading" secondItem="mTC-xX-7eg" secondAttribute="trailing" constant="14" id="zHY-lt-3dd"/>
+                                            </constraints>
+                                            <userDefinedRuntimeAttributes>
+                                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                    <real key="value" value="5"/>
+                                                </userDefinedRuntimeAttribute>
+                                            </userDefinedRuntimeAttributes>
+                                        </view>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="V1H-73-kgk" userLabel="View-input">
+                                            <rect key="frame" x="25" y="170" width="295" height="45"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_location" translatesAutoresizingMaskIntoConstraints="NO" id="AVr-H3-2zM">
+                                                    <rect key="frame" x="25" y="9.6666666666666856" width="21" height="26"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="21" id="P6B-ds-pi5"/>
+                                                        <constraint firstAttribute="height" constant="26" id="wa4-zS-Ziu"/>
+                                                    </constraints>
+                                                </imageView>
+                                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请选择地区" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Srz-3V-PhW" customClass="QMUITextField">
+                                                    <rect key="frame" x="64" y="5.6666666666666856" width="137" height="34"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="34" id="Vlv-ZD-I9w"/>
+                                                        <constraint firstAttribute="width" constant="137" id="Zhh-IX-iQl"/>
+                                                    </constraints>
+                                                    <color key="textColor" red="0.83137254900000002" green="0.86666666670000003" blue="0.90196078430000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
+                                                </textField>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rMA-Qb-CEp" customClass="QMUIButton">
+                                                    <rect key="frame" x="250" y="0.0" width="16" height="45"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="16" id="EaW-MI-UzX"/>
+                                                        <constraint firstAttribute="height" constant="45" id="eMq-R6-uVW"/>
+                                                    </constraints>
+                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                    <state key="normal" image="login_arrow"/>
+                                                    <state key="selected" image="login_arrow"/>
+                                                </button>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eI9-bt-Px4">
+                                                    <rect key="frame" x="64" y="5.6666666666666856" width="137" height="34"/>
+                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                </button>
+                                            </subviews>
+                                            <color key="backgroundColor" red="0.14901960780000001" green="0.28235294119999998" blue="0.41960784309999999" alpha="1" colorSpace="calibratedRGB"/>
+                                            <constraints>
+                                                <constraint firstItem="rMA-Qb-CEp" firstAttribute="leading" secondItem="Srz-3V-PhW" secondAttribute="trailing" constant="49" id="3iC-t5-mrj"/>
+                                                <constraint firstItem="Srz-3V-PhW" firstAttribute="leading" secondItem="AVr-H3-2zM" secondAttribute="trailing" constant="18" id="AUn-S9-0Cq"/>
+                                                <constraint firstAttribute="trailing" secondItem="rMA-Qb-CEp" secondAttribute="trailing" constant="29" id="CMD-VI-Qbt"/>
+                                                <constraint firstAttribute="height" constant="45" id="Jqv-Vx-K4D"/>
+                                                <constraint firstItem="eI9-bt-Px4" firstAttribute="top" secondItem="Srz-3V-PhW" secondAttribute="top" id="Kq2-Fp-Ni2"/>
+                                                <constraint firstItem="rMA-Qb-CEp" firstAttribute="centerY" secondItem="V1H-73-kgk" secondAttribute="centerY" id="QCi-Nw-Vxi"/>
+                                                <constraint firstItem="AVr-H3-2zM" firstAttribute="leading" secondItem="V1H-73-kgk" secondAttribute="leading" constant="25" id="UXc-mw-nRd"/>
+                                                <constraint firstItem="eI9-bt-Px4" firstAttribute="leading" secondItem="Srz-3V-PhW" secondAttribute="leading" id="c5a-3x-eJW"/>
+                                                <constraint firstItem="eI9-bt-Px4" firstAttribute="trailing" secondItem="Srz-3V-PhW" secondAttribute="trailing" id="e9a-j6-v1L"/>
+                                                <constraint firstItem="AVr-H3-2zM" firstAttribute="centerY" secondItem="V1H-73-kgk" secondAttribute="centerY" id="sed-vG-4R8"/>
+                                                <constraint firstItem="eI9-bt-Px4" firstAttribute="bottom" secondItem="Srz-3V-PhW" secondAttribute="bottom" id="tLQ-LP-3Xc"/>
+                                                <constraint firstItem="Srz-3V-PhW" firstAttribute="centerY" secondItem="V1H-73-kgk" secondAttribute="centerY" id="yL5-Fs-7Ue"/>
+                                            </constraints>
+                                            <userDefinedRuntimeAttributes>
+                                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                    <real key="value" value="5"/>
+                                                </userDefinedRuntimeAttribute>
+                                            </userDefinedRuntimeAttributes>
+                                        </view>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VtF-yH-Ucb">
+                                            <rect key="frame" x="52.666666666666686" y="350" width="240" height="18"/>
+                                            <subviews>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="e49-95-2qF" customClass="QMUIButton">
+                                                    <rect key="frame" x="0.0" y="1" width="60" height="16"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="60" id="diK-6K-3bA"/>
+                                                        <constraint firstAttribute="height" constant="16" id="paq-Fv-lIO"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                                    <inset key="titleEdgeInsets" minX="6" minY="0.0" maxX="0.0" maxY="0.0"/>
+                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                    <state key="normal" title="已同意" image="login_no"/>
+                                                    <state key="selected" image="login_yes"/>
+                                                </button>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2vk-wc-3HQ" customClass="QMUIButton">
+                                                    <rect key="frame" x="155" y="0.0" width="80" height="18"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="18" id="gOe-bc-7QY"/>
+                                                        <constraint firstAttribute="width" constant="80" id="kfn-ea-anG"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                    <state key="normal" title="《隐私政策》">
+                                                        <color key="titleColor" red="0.20784313730000001" green="0.74901960779999999" blue="0.36862745099999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                    </state>
+                                                </button>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="和" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mbd-0l-TGy">
+                                                    <rect key="frame" x="140" y="0.0" width="15" height="18"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="15" id="CJ8-9y-Mad"/>
+                                                        <constraint firstAttribute="height" constant="18" id="al5-Lv-mWQ"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qxc-Vk-Mrq" customClass="QMUIButton">
+                                                    <rect key="frame" x="60" y="0.0" width="80" height="18"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="18" id="6NK-hT-7NL"/>
+                                                        <constraint firstAttribute="width" constant="80" id="w2p-e8-WtV"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                    <state key="normal" title="《用户协议》">
+                                                        <color key="titleColor" red="0.20784313725490194" green="0.74901960784313726" blue="0.36862745098039218" alpha="1" colorSpace="calibratedRGB"/>
+                                                    </state>
+                                                </button>
+                                            </subviews>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <constraints>
+                                                <constraint firstItem="2vk-wc-3HQ" firstAttribute="leading" secondItem="Mbd-0l-TGy" secondAttribute="trailing" id="3Pi-P1-cjs"/>
+                                                <constraint firstItem="Qxc-Vk-Mrq" firstAttribute="top" secondItem="Mbd-0l-TGy" secondAttribute="top" id="5qL-x2-GqH"/>
+                                                <constraint firstItem="Mbd-0l-TGy" firstAttribute="leading" secondItem="Qxc-Vk-Mrq" secondAttribute="trailing" id="IFC-3K-Wd5"/>
+                                                <constraint firstAttribute="width" constant="240" id="Oja-f7-xnO"/>
+                                                <constraint firstItem="Qxc-Vk-Mrq" firstAttribute="baseline" secondItem="e49-95-2qF" secondAttribute="baseline" id="QbW-k8-tM0"/>
+                                                <constraint firstAttribute="height" constant="18" id="Wl4-n4-Mm3"/>
+                                                <constraint firstItem="Qxc-Vk-Mrq" firstAttribute="baseline" secondItem="2vk-wc-3HQ" secondAttribute="baseline" id="ZDf-5X-wBS"/>
+                                                <constraint firstItem="e49-95-2qF" firstAttribute="leading" secondItem="VtF-yH-Ucb" secondAttribute="leading" id="ago-RM-3hF"/>
+                                                <constraint firstItem="e49-95-2qF" firstAttribute="centerY" secondItem="VtF-yH-Ucb" secondAttribute="centerY" id="fHO-ra-Z43"/>
+                                                <constraint firstItem="Qxc-Vk-Mrq" firstAttribute="leading" secondItem="e49-95-2qF" secondAttribute="trailing" id="mWd-VJ-Bag"/>
+                                            </constraints>
+                                            <userDefinedRuntimeAttributes>
+                                                <userDefinedRuntimeAttribute type="boolean" keyPath="aLRatio" value="YES"/>
+                                            </userDefinedRuntimeAttributes>
+                                        </view>
+                                    </subviews>
+                                    <color key="backgroundColor" red="0.043137254901960784" green="0.16862745098039217" blue="0.30196078431372547" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <constraints>
-                                        <constraint firstAttribute="width" constant="21" id="P6B-ds-pi5"/>
-                                        <constraint firstAttribute="height" constant="26" id="wa4-zS-Ziu"/>
+                                        <constraint firstItem="U4y-em-jeM" firstAttribute="top" secondItem="wQT-0A-9II" secondAttribute="bottom" constant="20" id="4c6-43-95h"/>
+                                        <constraint firstItem="V1H-73-kgk" firstAttribute="top" secondItem="U4y-em-jeM" secondAttribute="bottom" constant="20" id="6M4-D2-UMH"/>
+                                        <constraint firstItem="U4y-em-jeM" firstAttribute="top" secondItem="wQT-0A-9II" secondAttribute="bottom" constant="20" id="6tm-wu-M0D"/>
+                                        <constraint firstItem="QFo-KM-CGQ" firstAttribute="top" secondItem="V1H-73-kgk" secondAttribute="bottom" constant="70" id="8ZQ-Mc-V7d"/>
+                                        <constraint firstAttribute="trailing" secondItem="wQT-0A-9II" secondAttribute="trailing" constant="25" id="8Zg-ac-bXK"/>
+                                        <constraint firstAttribute="trailing" secondItem="U4y-em-jeM" secondAttribute="trailing" constant="25" id="9xX-Z8-F4O"/>
+                                        <constraint firstItem="QFo-KM-CGQ" firstAttribute="centerX" secondItem="wQT-0A-9II" secondAttribute="centerX" id="Auo-EG-9HT"/>
+                                        <constraint firstItem="V1H-73-kgk" firstAttribute="top" secondItem="U4y-em-jeM" secondAttribute="bottom" constant="20" id="CVR-ig-9SP"/>
+                                        <constraint firstItem="QFo-KM-CGQ" firstAttribute="centerX" secondItem="V1H-73-kgk" secondAttribute="centerX" id="EGj-RI-Ecv"/>
+                                        <constraint firstItem="QFo-KM-CGQ" firstAttribute="centerX" secondItem="U4y-em-jeM" secondAttribute="centerX" id="EZc-6H-dux"/>
+                                        <constraint firstItem="wQT-0A-9II" firstAttribute="top" secondItem="SDO-oc-nvt" secondAttribute="top" constant="40" id="OIr-XB-buR"/>
+                                        <constraint firstItem="V1H-73-kgk" firstAttribute="leading" secondItem="SDO-oc-nvt" secondAttribute="leading" constant="25" id="Q9v-9O-a7j"/>
+                                        <constraint firstItem="QFo-KM-CGQ" firstAttribute="centerX" secondItem="SDO-oc-nvt" secondAttribute="centerX" id="YWm-SA-SIV"/>
+                                        <constraint firstItem="U4y-em-jeM" firstAttribute="leading" secondItem="SDO-oc-nvt" secondAttribute="leading" constant="25" id="aHS-80-Tp9"/>
+                                        <constraint firstItem="VtF-yH-Ucb" firstAttribute="centerX" secondItem="SDO-oc-nvt" secondAttribute="centerX" id="cKF-qO-Z6z"/>
+                                        <constraint firstAttribute="trailing" secondItem="V1H-73-kgk" secondAttribute="trailing" constant="25" id="eh7-ps-fYM"/>
+                                        <constraint firstAttribute="bottom" secondItem="QFo-KM-CGQ" secondAttribute="bottom" constant="50" id="ekC-YQ-pcq"/>
+                                        <constraint firstAttribute="height" constant="380" id="fXi-LZ-hav"/>
+                                        <constraint firstItem="VtF-yH-Ucb" firstAttribute="top" secondItem="QFo-KM-CGQ" secondAttribute="bottom" constant="20" id="lIm-jf-BLW"/>
+                                        <constraint firstItem="QFo-KM-CGQ" firstAttribute="leading" secondItem="SDO-oc-nvt" secondAttribute="leading" constant="28" id="qWr-90-pT5"/>
+                                        <constraint firstItem="wQT-0A-9II" firstAttribute="leading" secondItem="SDO-oc-nvt" secondAttribute="leading" constant="25" id="sje-HE-VLf"/>
                                     </constraints>
-                                </imageView>
-                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请选择地区" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Srz-3V-PhW" customClass="QMUITextField">
-                                    <rect key="frame" x="64" y="5.6666666666666856" width="137" height="34"/>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="5"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                </view>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="其他方式登录" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RC0-u8-Gzj">
+                                    <rect key="frame" x="143.66666666666666" y="676" width="88" height="17"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="34" id="Vlv-ZD-I9w"/>
-                                        <constraint firstAttribute="width" constant="137" id="Zhh-IX-iQl"/>
+                                        <constraint firstAttribute="width" constant="88" id="PPP-up-Mc4"/>
+                                        <constraint firstAttribute="height" constant="17" id="UuS-OT-qm2"/>
                                     </constraints>
-                                    <color key="textColor" red="0.83137254900000002" green="0.86666666670000003" blue="0.90196078430000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
-                                </textField>
-                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rMA-Qb-CEp" customClass="QMUIButton">
-                                    <rect key="frame" x="250" y="0.0" width="16" height="45"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1kh-Dw-bRl">
+                                    <rect key="frame" x="133.66666666666666" y="710" width="42" height="42"/>
                                     <constraints>
-                                        <constraint firstAttribute="width" constant="16" id="EaW-MI-UzX"/>
-                                        <constraint firstAttribute="height" constant="45" id="eMq-R6-uVW"/>
+                                        <constraint firstAttribute="height" constant="42" id="Tq0-Qa-VeB"/>
+                                        <constraint firstAttribute="width" constant="42" id="bI3-cA-0Xn"/>
                                     </constraints>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                                    <state key="normal" image="login_arrow"/>
-                                    <state key="selected" image="login_arrow"/>
+                                    <state key="normal" image="login_sdx"/>
                                 </button>
-                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eI9-bt-Px4">
-                                    <rect key="frame" x="64" y="5.6666666666666856" width="137" height="34"/>
+                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Lms-8N-x9M">
+                                    <rect key="frame" x="199.66666666666666" y="710" width="42" height="42"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="42" id="K4Z-rk-qHj"/>
+                                        <constraint firstAttribute="height" constant="42" id="l9i-N1-Qbl"/>
+                                    </constraints>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                    <state key="normal" image="login_sdx"/>
                                 </button>
                             </subviews>
-                            <color key="backgroundColor" red="0.14901960780000001" green="0.28235294119999998" blue="0.41960784309999999" alpha="1" colorSpace="calibratedRGB"/>
+                            <color key="backgroundColor" red="0.023529411764705882" green="0.12549019607843137" blue="0.22745098039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <constraints>
-                                <constraint firstItem="Srz-3V-PhW" firstAttribute="leading" secondItem="AVr-H3-2zM" secondAttribute="trailing" constant="18" id="AUn-S9-0Cq"/>
-                                <constraint firstAttribute="trailing" secondItem="rMA-Qb-CEp" secondAttribute="trailing" constant="29" id="CMD-VI-Qbt"/>
-                                <constraint firstAttribute="height" constant="45" id="Jqv-Vx-K4D"/>
-                                <constraint firstItem="eI9-bt-Px4" firstAttribute="top" secondItem="Srz-3V-PhW" secondAttribute="top" id="Kq2-Fp-Ni2"/>
-                                <constraint firstItem="rMA-Qb-CEp" firstAttribute="centerY" secondItem="V1H-73-kgk" secondAttribute="centerY" id="QCi-Nw-Vxi"/>
-                                <constraint firstItem="AVr-H3-2zM" firstAttribute="leading" secondItem="V1H-73-kgk" secondAttribute="leading" constant="25" id="UXc-mw-nRd"/>
-                                <constraint firstItem="eI9-bt-Px4" firstAttribute="leading" secondItem="Srz-3V-PhW" secondAttribute="leading" id="c5a-3x-eJW"/>
-                                <constraint firstItem="eI9-bt-Px4" firstAttribute="trailing" secondItem="Srz-3V-PhW" secondAttribute="trailing" id="e9a-j6-v1L"/>
-                                <constraint firstItem="AVr-H3-2zM" firstAttribute="centerY" secondItem="V1H-73-kgk" secondAttribute="centerY" id="sed-vG-4R8"/>
-                                <constraint firstItem="eI9-bt-Px4" firstAttribute="bottom" secondItem="Srz-3V-PhW" secondAttribute="bottom" id="tLQ-LP-3Xc"/>
-                                <constraint firstItem="Srz-3V-PhW" firstAttribute="centerY" secondItem="V1H-73-kgk" secondAttribute="centerY" id="yL5-Fs-7Ue"/>
+                                <constraint firstItem="ME7-ie-msV" firstAttribute="leading" secondItem="fEE-ui-qIq" secondAttribute="leading" constant="21" id="1vk-qu-0kf"/>
+                                <constraint firstItem="1kh-Dw-bRl" firstAttribute="top" secondItem="RC0-u8-Gzj" secondAttribute="bottom" constant="17" id="8gm-CP-gGk"/>
+                                <constraint firstItem="RC0-u8-Gzj" firstAttribute="centerX" secondItem="fEE-ui-qIq" secondAttribute="centerX" id="BfK-S3-a6L"/>
+                                <constraint firstAttribute="trailing" secondItem="ME7-ie-msV" secondAttribute="trailing" constant="21" id="DTI-3A-OwH"/>
+                                <constraint firstItem="Lms-8N-x9M" firstAttribute="top" secondItem="RC0-u8-Gzj" secondAttribute="bottom" constant="17" id="bNA-EV-ZOH"/>
+                                <constraint firstAttribute="trailing" secondItem="SDO-oc-nvt" secondAttribute="trailing" constant="15" id="eEv-Et-7rQ"/>
+                                <constraint firstItem="1kh-Dw-bRl" firstAttribute="leading" secondItem="RC0-u8-Gzj" secondAttribute="leading" constant="-10" id="eXS-Rl-z3G"/>
+                                <constraint firstItem="SDO-oc-nvt" firstAttribute="top" secondItem="ME7-ie-msV" secondAttribute="bottom" constant="45" id="fMe-mA-chD"/>
+                                <constraint firstItem="ME7-ie-msV" firstAttribute="top" secondItem="fEE-ui-qIq" secondAttribute="top" constant="78" id="g41-va-2Wp"/>
+                                <constraint firstItem="Lms-8N-x9M" firstAttribute="trailing" secondItem="RC0-u8-Gzj" secondAttribute="trailing" constant="10" id="lp7-cV-wfI"/>
+                                <constraint firstItem="RC0-u8-Gzj" firstAttribute="top" secondItem="SDO-oc-nvt" secondAttribute="bottom" constant="60" id="mfC-bq-h2L"/>
+                                <constraint firstAttribute="height" constant="810" id="qiP-M3-Azd"/>
+                                <constraint firstItem="SDO-oc-nvt" firstAttribute="leading" secondItem="fEE-ui-qIq" secondAttribute="leading" constant="15" id="uzh-Qg-zWB"/>
                             </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="5"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
                         </view>
                     </subviews>
-                    <color key="backgroundColor" red="0.043137254901960784" green="0.16862745098039217" blue="0.30196078431372547" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                    <constraints>
-                        <constraint firstItem="V1H-73-kgk" firstAttribute="top" secondItem="U4y-em-jeM" secondAttribute="bottom" constant="20" id="6M4-D2-UMH"/>
-                        <constraint firstItem="U4y-em-jeM" firstAttribute="top" secondItem="wQT-0A-9II" secondAttribute="bottom" constant="20" id="6tm-wu-M0D"/>
-                        <constraint firstAttribute="trailing" secondItem="QFo-KM-CGQ" secondAttribute="trailing" constant="28" id="78S-HW-eIZ"/>
-                        <constraint firstItem="QFo-KM-CGQ" firstAttribute="leading" secondItem="SDO-oc-nvt" secondAttribute="leading" constant="28" id="7JJ-hu-aCk"/>
-                        <constraint firstAttribute="bottom" secondItem="QFo-KM-CGQ" secondAttribute="bottom" constant="50" id="8ek-3v-7Ow"/>
-                        <constraint firstAttribute="trailing" secondItem="wQT-0A-9II" secondAttribute="trailing" constant="25" id="CKe-nz-ZmD"/>
-                        <constraint firstItem="U4y-em-jeM" firstAttribute="leading" secondItem="SDO-oc-nvt" secondAttribute="leading" constant="25" id="MmG-0l-zbn"/>
-                        <constraint firstItem="wQT-0A-9II" firstAttribute="top" secondItem="SDO-oc-nvt" secondAttribute="top" constant="40" id="MoJ-2j-zXc"/>
-                        <constraint firstItem="wQT-0A-9II" firstAttribute="leading" secondItem="SDO-oc-nvt" secondAttribute="leading" constant="25" id="XIO-Oy-qP5"/>
-                        <constraint firstAttribute="height" constant="380" id="k9h-TM-jyG"/>
-                        <constraint firstAttribute="trailing" secondItem="U4y-em-jeM" secondAttribute="trailing" constant="25" id="qCr-iG-kYR"/>
-                        <constraint firstAttribute="trailing" secondItem="V1H-73-kgk" secondAttribute="trailing" constant="25" id="vmz-vt-e8y"/>
-                        <constraint firstItem="V1H-73-kgk" firstAttribute="leading" secondItem="SDO-oc-nvt" secondAttribute="leading" constant="25" id="z8p-nz-MgD"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="5"/>
-                        </userDefinedRuntimeAttribute>
-                        <userDefinedRuntimeAttribute type="boolean" keyPath="aLRatio" value="YES"/>
-                    </userDefinedRuntimeAttributes>
-                </view>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VtF-yH-Ucb">
-                    <rect key="frame" x="67.666666666666686" y="720" width="240" height="18"/>
-                    <subviews>
-                        <button opaque="NO" contentMode="scaleToFill" selected="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="e49-95-2qF" customClass="QMUIButton">
-                            <rect key="frame" x="0.0" y="1" width="60" height="16"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="60" id="diK-6K-3bA"/>
-                                <constraint firstAttribute="height" constant="16" id="paq-Fv-lIO"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                            <inset key="titleEdgeInsets" minX="6" minY="0.0" maxX="0.0" maxY="0.0"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" title="已同意" image="login_no"/>
-                            <state key="selected" image="login_yes"/>
-                        </button>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2vk-wc-3HQ" customClass="QMUIButton">
-                            <rect key="frame" x="155" y="0.0" width="80" height="18"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="18" id="gOe-bc-7QY"/>
-                                <constraint firstAttribute="width" constant="80" id="kfn-ea-anG"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" title="《隐私政策》">
-                                <color key="titleColor" red="0.20784313730000001" green="0.74901960779999999" blue="0.36862745099999999" alpha="1" colorSpace="calibratedRGB"/>
-                            </state>
-                        </button>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="和" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mbd-0l-TGy">
-                            <rect key="frame" x="140" y="0.0" width="15" height="18"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="15" id="CJ8-9y-Mad"/>
-                                <constraint firstAttribute="height" constant="18" id="al5-Lv-mWQ"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qxc-Vk-Mrq" customClass="QMUIButton">
-                            <rect key="frame" x="60" y="0.0" width="80" height="18"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="18" id="6NK-hT-7NL"/>
-                                <constraint firstAttribute="width" constant="80" id="w2p-e8-WtV"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" title="《用户协议》">
-                                <color key="titleColor" red="0.20784313725490194" green="0.74901960784313726" blue="0.36862745098039218" alpha="1" colorSpace="calibratedRGB"/>
-                            </state>
-                        </button>
-                    </subviews>
-                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstItem="2vk-wc-3HQ" firstAttribute="leading" secondItem="Mbd-0l-TGy" secondAttribute="trailing" id="3Pi-P1-cjs"/>
-                        <constraint firstItem="Mbd-0l-TGy" firstAttribute="leading" secondItem="Qxc-Vk-Mrq" secondAttribute="trailing" id="IFC-3K-Wd5"/>
-                        <constraint firstItem="e49-95-2qF" firstAttribute="centerY" secondItem="VtF-yH-Ucb" secondAttribute="centerY" id="JXG-yi-lH8"/>
-                        <constraint firstItem="Mbd-0l-TGy" firstAttribute="centerY" secondItem="VtF-yH-Ucb" secondAttribute="centerY" id="QSf-eL-v0w"/>
-                        <constraint firstAttribute="height" constant="18" id="Qf7-Nx-saY"/>
-                        <constraint firstItem="e49-95-2qF" firstAttribute="leading" secondItem="VtF-yH-Ucb" secondAttribute="leading" id="RoU-vq-Nlc"/>
-                        <constraint firstAttribute="width" constant="240" id="UQg-77-C5z"/>
-                        <constraint firstItem="2vk-wc-3HQ" firstAttribute="centerY" secondItem="VtF-yH-Ucb" secondAttribute="centerY" id="kl0-lk-rse"/>
-                        <constraint firstItem="Qxc-Vk-Mrq" firstAttribute="leading" secondItem="e49-95-2qF" secondAttribute="trailing" id="mWd-VJ-Bag"/>
-                        <constraint firstItem="Qxc-Vk-Mrq" firstAttribute="centerY" secondItem="VtF-yH-Ucb" secondAttribute="centerY" id="ydP-3W-xvq"/>
+                        <constraint firstItem="fEE-ui-qIq" firstAttribute="centerX" secondItem="fgl-ad-YmV" secondAttribute="centerX" id="M0i-9i-ZoO"/>
+                        <constraint firstItem="fEE-ui-qIq" firstAttribute="top" secondItem="fgl-ad-YmV" secondAttribute="top" id="U7k-Jd-Dy6"/>
+                        <constraint firstItem="fEE-ui-qIq" firstAttribute="leading" secondItem="fgl-ad-YmV" secondAttribute="leading" id="ZaO-eI-ifN"/>
+                        <constraint firstAttribute="bottom" secondItem="fEE-ui-qIq" secondAttribute="bottom" constant="2" id="ehB-JC-Efz"/>
+                        <constraint firstAttribute="trailing" secondItem="fEE-ui-qIq" secondAttribute="trailing" id="taE-n9-0Tw"/>
                     </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="boolean" keyPath="aLRatio" value="YES"/>
-                    </userDefinedRuntimeAttributes>
-                </view>
+                </scrollView>
             </subviews>
-            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
+            <viewLayoutGuide key="safeArea" id="dxc-0k-Udf"/>
             <color key="backgroundColor" red="0.023529411764705882" green="0.12549019607843137" blue="0.22745098039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
             <constraints>
-                <constraint firstItem="SDO-oc-nvt" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" constant="15" id="0cZ-OR-sHF"/>
-                <constraint firstItem="vUN-kp-3ea" firstAttribute="bottom" secondItem="VtF-yH-Ucb" secondAttribute="bottom" constant="40" id="2U8-lY-9U9"/>
-                <constraint firstItem="ME7-ie-msV" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" constant="26" id="BRs-Il-hmV"/>
-                <constraint firstItem="VtF-yH-Ucb" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="LtY-ty-bNg"/>
-                <constraint firstItem="ME7-ie-msV" firstAttribute="top" secondItem="vUN-kp-3ea" secondAttribute="top" constant="78" id="Lx7-Nf-fK6"/>
-                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="ME7-ie-msV" secondAttribute="trailing" constant="15" id="NDK-9e-S14"/>
-                <constraint firstItem="SDO-oc-nvt" firstAttribute="top" secondItem="ME7-ie-msV" secondAttribute="bottom" constant="55" id="VPw-6z-lg7"/>
-                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="SDO-oc-nvt" secondAttribute="trailing" constant="15" id="vG0-c5-jT2"/>
+                <constraint firstItem="fgl-ad-YmV" firstAttribute="trailing" secondItem="iN0-l3-epB" secondAttribute="trailing" id="I2C-bd-87d"/>
+                <constraint firstAttribute="bottom" secondItem="fgl-ad-YmV" secondAttribute="bottom" id="LI3-3E-ZiB"/>
+                <constraint firstItem="fgl-ad-YmV" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="ZZ7-k7-J0K"/>
+                <constraint firstItem="fgl-ad-YmV" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="b5J-TJ-Q5S"/>
             </constraints>
-            <userDefinedRuntimeAttributes>
-                <userDefinedRuntimeAttribute type="boolean" keyPath="aLRatio" value="YES"/>
-            </userDefinedRuntimeAttributes>
             <point key="canvasLocation" x="32.799999999999997" y="-12.561576354679804"/>
         </view>
     </objects>
@@ -308,6 +371,7 @@
         <image name="login_location" width="21" height="26"/>
         <image name="login_no" width="14" height="14"/>
         <image name="login_pwd" width="21.666666030883789" height="26"/>
+        <image name="login_sdx" width="42" height="42"/>
         <image name="login_show" width="22.333333969116211" height="13.666666984558105"/>
         <image name="login_yes" width="14" height="14"/>
     </resources>

+ 55 - 0
JiaPeiManage/Sources/Utils/NYWXApiManager.swift

@@ -0,0 +1,55 @@
+//
+//  NYWXApiManager.swift
+//  JiaPeiManage
+//
+//  Created by Ning.ge on 2023/8/2.
+//
+
+import Foundation
+import SwiftyJSON
+
+
+class NYWXApiManager : NSObject {
+
+    
+    // 静态属性,用于存储单例实例
+    static let shared = NYWXApiManager()
+    override init() {
+        super.init()
+    }
+    
+    func registerApp(){
+        //微信绑定
+        let isSuccess = WXApi.registerApp(NYMacros.wxappid, universalLink: NYMacros.universalLink)
+        if  isSuccess {
+            print("微信初始化成功")
+        }
+    }
+    
+    //发起微信send
+    func sendWxapi(){
+        
+    }
+    
+    func handleOpenUrl(url:URL){
+        WXApi.handleOpen(url, delegate: NYWXApiManager.shared)
+    }
+    
+    func handleOpenUniversalLink(userActivity: NSUserActivity) ->Bool{
+        return WXApi.handleOpenUniversalLink(userActivity, delegate: NYWXApiManager.shared)
+    }
+    
+}
+
+extension NYWXApiManager :WXApiDelegate {
+
+    // WXApiDelegate method (you should implement this as per your requirement)
+    func onResp(_ resp: BaseResp) {
+        // Handle WeChat SDK responses here
+    }
+    
+    func onReq(_ req: BaseReq) {
+        
+    }
+}
+

+ 2 - 0
Podfile

@@ -71,6 +71,8 @@ target 'JiaPeiManage' do
   pod 'UMCCommonLog'  #可选,日志插件
   
   pod 'Bugly'         #bugly线上bug
+  #微信绑定 - sdk
+  pod 'WechatOpenSDK-XCFramework', '~> 2.0.2'
 end
 
 post_install do |installer|

+ 5 - 1
Podfile.lock

@@ -391,6 +391,7 @@ PODS:
     - VTMagic/Core (= 1.2.4)
   - VTMagic/Core (1.2.4)
   - WeakMapTable (1.2.0)
+  - WechatOpenSDK-XCFramework (2.0.2)
   - YYText (1.0.7)
 
 DEPENDENCIES:
@@ -438,6 +439,7 @@ DEPENDENCIES:
   - UMDevice
   - URLNavigator (~> 2.2.0)
   - VTMagic (from `https://github.com/tianzhuo112/VTMagic.git`)
+  - WechatOpenSDK-XCFramework (~> 2.0.2)
   - YYText
 
 SPEC REPOS:
@@ -490,6 +492,7 @@ SPEC REPOS:
     - UMDevice
     - URLNavigator
     - WeakMapTable
+    - WechatOpenSDK-XCFramework
     - YYText
 
 EXTERNAL SOURCES:
@@ -551,8 +554,9 @@ SPEC CHECKSUMS:
   URLNavigator: 0bffc3efdeb2d97f7b5eec7ac82d290f4a099431
   VTMagic: b49e5f456dbcbfd9a3588ba92417233a105bc193
   WeakMapTable: 05c694ce8439a7a9ebabb56187287a63c57673d6
+  WechatOpenSDK-XCFramework: acdeeda129efbef9532bca8a10c24e1b4b8c7d69
   YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
 
-PODFILE CHECKSUM: 73a6ff66173dabc497fc5344096bc4339789187c
+PODFILE CHECKSUM: 02abf0d5d3e1f02d896eb3b8897b90a3c76fc43f
 
 COCOAPODS: 1.12.1

+ 5 - 1
Pods/Manifest.lock

@@ -391,6 +391,7 @@ PODS:
     - VTMagic/Core (= 1.2.4)
   - VTMagic/Core (1.2.4)
   - WeakMapTable (1.2.0)
+  - WechatOpenSDK-XCFramework (2.0.2)
   - YYText (1.0.7)
 
 DEPENDENCIES:
@@ -438,6 +439,7 @@ DEPENDENCIES:
   - UMDevice
   - URLNavigator (~> 2.2.0)
   - VTMagic (from `https://github.com/tianzhuo112/VTMagic.git`)
+  - WechatOpenSDK-XCFramework (~> 2.0.2)
   - YYText
 
 SPEC REPOS:
@@ -490,6 +492,7 @@ SPEC REPOS:
     - UMDevice
     - URLNavigator
     - WeakMapTable
+    - WechatOpenSDK-XCFramework
     - YYText
 
 EXTERNAL SOURCES:
@@ -551,8 +554,9 @@ SPEC CHECKSUMS:
   URLNavigator: 0bffc3efdeb2d97f7b5eec7ac82d290f4a099431
   VTMagic: b49e5f456dbcbfd9a3588ba92417233a105bc193
   WeakMapTable: 05c694ce8439a7a9ebabb56187287a63c57673d6
+  WechatOpenSDK-XCFramework: acdeeda129efbef9532bca8a10c24e1b4b8c7d69
   YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
 
-PODFILE CHECKSUM: 73a6ff66173dabc497fc5344096bc4339789187c
+PODFILE CHECKSUM: 02abf0d5d3e1f02d896eb3b8897b90a3c76fc43f
 
 COCOAPODS: 1.12.1

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2071 - 2054
Pods/Pods.xcodeproj/project.pbxproj


+ 8 - 1
Pods/Pods.xcodeproj/xcuserdata/mimasigeling.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -361,13 +361,20 @@
 			<key>orderHint</key>
 			<integer>51</integer>
 		</dict>
-		<key>YYText.xcscheme</key>
+		<key>WechatOpenSDK-XCFramework.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
 			<integer>52</integer>
 		</dict>
+		<key>YYText.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+			<key>orderHint</key>
+			<integer>53</integer>
+		</dict>
 		<key>libwebp.xcscheme</key>
 		<dict>
 			<key>isShown</key>

+ 5 - 0
Pods/Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage-acknowledgements.markdown

@@ -1346,6 +1346,11 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 
+## WechatOpenSDK-XCFramework
+
+Copyright 2020 tencent.com. All rights reserved.
+
+
 ## YYText
 
 The MIT License (MIT)

+ 11 - 0
Pods/Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage-acknowledgements.plist

@@ -1645,6 +1645,17 @@ SOFTWARE.
 			<key>Type</key>
 			<string>PSGroupSpecifier</string>
 		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>Copyright 2020 tencent.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>WechatOpenSDK-XCFramework</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
 		<dict>
 			<key>FooterText</key>
 			<string>The MIT License (MIT)

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
Pods/Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage.debug.xcconfig


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
Pods/Target Support Files/Pods-JiaPeiManage/Pods-JiaPeiManage.release.xcconfig


Vissa filer visades inte eftersom för många filer har ändrats