Commit 711a9289 authored by pete谢兆麟's avatar pete谢兆麟

Merge commit '6d320a31' into xiezhaolin

parents e9ce944f 6d320a31
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
0435FA832BA2DEB100024EAE /* YHCardButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0435FA822BA2DEB100024EAE /* YHCardButton.swift */; }; 0435FA832BA2DEB100024EAE /* YHCardButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0435FA822BA2DEB100024EAE /* YHCardButton.swift */; };
044867B42BA1953B00DFAD4A /* YHCertificateFilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */; }; 044867B42BA1953B00DFAD4A /* YHCertificateFilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */; };
044867B62BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */; }; 044867B62BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */; };
044867B82BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */; };
045EEE792B9F171A0022A143 /* YHPreviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9A2B9F171A0022A143 /* YHPreviewViewModel.swift */; }; 045EEE792B9F171A0022A143 /* YHPreviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9A2B9F171A0022A143 /* YHPreviewViewModel.swift */; };
045EEE7A2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9C2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift */; }; 045EEE7A2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9C2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift */; };
045EEE7B2B9F171A0022A143 /* YHPersonInfoCellModel2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9D2B9F171A0022A143 /* YHPersonInfoCellModel2.swift */; }; 045EEE7B2B9F171A0022A143 /* YHPersonInfoCellModel2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9D2B9F171A0022A143 /* YHPersonInfoCellModel2.swift */; };
...@@ -307,6 +308,7 @@ ...@@ -307,6 +308,7 @@
A5C5B32D2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C5B32C2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift */; }; A5C5B32D2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C5B32C2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift */; };
A5D6AB1B2B46A1CC001C10A5 /* YHHomeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D6AB1A2B46A1CC001C10A5 /* YHHomeModel.swift */; }; A5D6AB1B2B46A1CC001C10A5 /* YHHomeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D6AB1A2B46A1CC001C10A5 /* YHHomeModel.swift */; };
A5D6AB1D2B46AAFB001C10A5 /* YHHomePageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D6AB1C2B46AAFB001C10A5 /* YHHomePageViewModel.swift */; }; A5D6AB1D2B46AAFB001C10A5 /* YHHomePageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D6AB1C2B46AAFB001C10A5 /* YHHomePageViewModel.swift */; };
A5E69D512BA304D400411932 /* DIN Alternate Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A5E69D502BA304D400411932 /* DIN Alternate Bold.ttf */; };
A5F8AC082B9F414000A21EFA /* YHCustomTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5F8AC072B9F414000A21EFA /* YHCustomTextView.swift */; }; A5F8AC082B9F414000A21EFA /* YHCustomTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5F8AC072B9F414000A21EFA /* YHCustomTextView.swift */; };
A5FD63BD2B623C2C00D1D9DA /* YHInformationPerfectListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5FD63BC2B623C2C00D1D9DA /* YHInformationPerfectListVC.swift */; }; A5FD63BD2B623C2C00D1D9DA /* YHInformationPerfectListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5FD63BC2B623C2C00D1D9DA /* YHInformationPerfectListVC.swift */; };
A5FD63BF2B6250BC00D1D9DA /* YHInformationPerfectCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5FD63BE2B6250BC00D1D9DA /* YHInformationPerfectCell.swift */; }; A5FD63BF2B6250BC00D1D9DA /* YHInformationPerfectCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5FD63BE2B6250BC00D1D9DA /* YHInformationPerfectCell.swift */; };
...@@ -356,6 +358,7 @@ ...@@ -356,6 +358,7 @@
0435FA822BA2DEB100024EAE /* YHCardButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCardButton.swift; sourceTree = "<group>"; }; 0435FA822BA2DEB100024EAE /* YHCardButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCardButton.swift; sourceTree = "<group>"; };
044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterView.swift; sourceTree = "<group>"; }; 044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterView.swift; sourceTree = "<group>"; };
044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterItemCell.swift; sourceTree = "<group>"; }; 044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterItemCell.swift; sourceTree = "<group>"; };
044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateUploadFailTipsView.swift; sourceTree = "<group>"; };
045EED9A2B9F171A0022A143 /* YHPreviewViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPreviewViewModel.swift; sourceTree = "<group>"; }; 045EED9A2B9F171A0022A143 /* YHPreviewViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPreviewViewModel.swift; sourceTree = "<group>"; };
045EED9C2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPreviewForOtherInfoModel.swift; sourceTree = "<group>"; }; 045EED9C2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPreviewForOtherInfoModel.swift; sourceTree = "<group>"; };
045EED9D2B9F171A0022A143 /* YHPersonInfoCellModel2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPersonInfoCellModel2.swift; sourceTree = "<group>"; }; 045EED9D2B9F171A0022A143 /* YHPersonInfoCellModel2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPersonInfoCellModel2.swift; sourceTree = "<group>"; };
...@@ -655,6 +658,7 @@ ...@@ -655,6 +658,7 @@
A5C5B32C2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHBbxCollectionViewCell.swift; sourceTree = "<group>"; }; A5C5B32C2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHBbxCollectionViewCell.swift; sourceTree = "<group>"; };
A5D6AB1A2B46A1CC001C10A5 /* YHHomeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeModel.swift; sourceTree = "<group>"; }; A5D6AB1A2B46A1CC001C10A5 /* YHHomeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeModel.swift; sourceTree = "<group>"; };
A5D6AB1C2B46AAFB001C10A5 /* YHHomePageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomePageViewModel.swift; sourceTree = "<group>"; }; A5D6AB1C2B46AAFB001C10A5 /* YHHomePageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomePageViewModel.swift; sourceTree = "<group>"; };
A5E69D502BA304D400411932 /* DIN Alternate Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DIN Alternate Bold.ttf"; sourceTree = "<group>"; };
A5F8AC072B9F414000A21EFA /* YHCustomTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHCustomTextView.swift; sourceTree = "<group>"; }; A5F8AC072B9F414000A21EFA /* YHCustomTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHCustomTextView.swift; sourceTree = "<group>"; };
A5FD63BC2B623C2C00D1D9DA /* YHInformationPerfectListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHInformationPerfectListVC.swift; sourceTree = "<group>"; }; A5FD63BC2B623C2C00D1D9DA /* YHInformationPerfectListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHInformationPerfectListVC.swift; sourceTree = "<group>"; };
A5FD63BE2B6250BC00D1D9DA /* YHInformationPerfectCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHInformationPerfectCell.swift; sourceTree = "<group>"; }; A5FD63BE2B6250BC00D1D9DA /* YHInformationPerfectCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHInformationPerfectCell.swift; sourceTree = "<group>"; };
...@@ -1342,6 +1346,7 @@ ...@@ -1342,6 +1346,7 @@
04A671612BA058DE00C1FB91 /* YHCertificateEditSheetView.swift */, 04A671612BA058DE00C1FB91 /* YHCertificateEditSheetView.swift */,
048097702BA18D66000B9DCA /* YHCertificateSearchBar.swift */, 048097702BA18D66000B9DCA /* YHCertificateSearchBar.swift */,
044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */, 044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */,
044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */,
04A6715F2BA0280800C1FB91 /* YHFileRenameInputView.swift */, 04A6715F2BA0280800C1FB91 /* YHFileRenameInputView.swift */,
04A6715D2B9FFCA700C1FB91 /* YHCertificateNameCell.swift */, 04A6715D2B9FFCA700C1FB91 /* YHCertificateNameCell.swift */,
0480976A2BA15269000B9DCA /* YHCertificateInfoCell.swift */, 0480976A2BA15269000B9DCA /* YHCertificateInfoCell.swift */,
...@@ -1630,6 +1635,7 @@ ...@@ -1630,6 +1635,7 @@
A5ACE9142B4564F7002C94D2 /* Res */ = { A5ACE9142B4564F7002C94D2 /* Res */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
A5E69D4F2BA304D400411932 /* Font */,
A5C5B2ED2B4F9B8800A7C5D1 /* Localizable.xcstrings */, A5C5B2ED2B4F9B8800A7C5D1 /* Localizable.xcstrings */,
04808C022B4686510056D53C /* Frameworks */, 04808C022B4686510056D53C /* Frameworks */,
A5573EDA2B317C0000D98EC0 /* Assets.xcassets */, A5573EDA2B317C0000D98EC0 /* Assets.xcassets */,
...@@ -1802,6 +1808,14 @@ ...@@ -1802,6 +1808,14 @@
path = VM; path = VM;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
A5E69D4F2BA304D400411932 /* Font */ = {
isa = PBXGroup;
children = (
A5E69D502BA304D400411932 /* DIN Alternate Bold.ttf */,
);
path = Font;
sourceTree = "<group>";
};
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
...@@ -1920,6 +1934,7 @@ ...@@ -1920,6 +1934,7 @@
045EEF182B9F171A0022A143 /* area.plist in Resources */, 045EEF182B9F171A0022A143 /* area.plist in Resources */,
A51044182B493675006B60BB /* README.md in Resources */, A51044182B493675006B60BB /* README.md in Resources */,
A5573EDB2B317C0000D98EC0 /* Assets.xcassets in Resources */, A5573EDB2B317C0000D98EC0 /* Assets.xcassets in Resources */,
A5E69D512BA304D400411932 /* DIN Alternate Bold.ttf in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -1994,6 +2009,7 @@ ...@@ -1994,6 +2009,7 @@
045EEEF02B9F171A0022A143 /* YHChildPrimaryInfoVC.swift in Sources */, 045EEEF02B9F171A0022A143 /* YHChildPrimaryInfoVC.swift in Sources */,
0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */, 0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */,
045EEEF62B9F171A0022A143 /* YHSpousePrimaryInfoVC.swift in Sources */, 045EEEF62B9F171A0022A143 /* YHSpousePrimaryInfoVC.swift in Sources */,
044867B82BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift in Sources */,
045EEF002B9F171A0022A143 /* YHFormItemEnterDetailCell.swift in Sources */, 045EEF002B9F171A0022A143 /* YHFormItemEnterDetailCell.swift in Sources */,
A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */, A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */,
045EEEEF2B9F171A0022A143 /* YHCertificateInfoController.swift in Sources */, 045EEEEF2B9F171A0022A143 /* YHCertificateInfoController.swift in Sources */,
...@@ -2443,7 +2459,7 @@ ...@@ -2443,7 +2459,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 5; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO;
...@@ -2463,7 +2479,7 @@ ...@@ -2463,7 +2479,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 0.1.8; MARKETING_VERSION = 0.1.9;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy; PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
...@@ -2485,7 +2501,7 @@ ...@@ -2485,7 +2501,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 5; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO;
...@@ -2505,7 +2521,7 @@ ...@@ -2505,7 +2521,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 0.1.8; MARKETING_VERSION = 0.1.9;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy; PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
...@@ -2559,12 +2575,14 @@ ...@@ -2559,12 +2575,14 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.galaxy.cn.galaxyUITests; PRODUCT_BUNDLE_IDENTIFIER = com.galaxy.cn.galaxyUITests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
...@@ -2576,12 +2594,14 @@ ...@@ -2576,12 +2594,14 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.galaxy.cn.galaxyUITests; PRODUCT_BUNDLE_IDENTIFIER = com.galaxy.cn.galaxyUITests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
......
...@@ -44,7 +44,17 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -44,7 +44,17 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
YHLoginManager.shared.loadLocalUserInfoData() YHLoginManager.shared.loadLocalUserInfoData()
// YHAnalytics.analyticsStart(launchOptions: launchOptions) // YHAnalytics.analyticsStart(launchOptions: launchOptions)
// var i = 0
// for family: String in UIFont.familyNames {
// print("\(i)---项目字体---\(family)")
// for names: String in UIFont.fontNames(forFamilyName: family) {
// print("== \(names)")
// }
// i += 1
// }
return true return true
} }
...@@ -71,7 +81,7 @@ extension AppDelegate { ...@@ -71,7 +81,7 @@ extension AppDelegate {
//1.数据解析 //1.数据解析
#if DEBUG #if DEBUG
// SmartConfig.debugMode = .verbose // SmartConfig.debugMode = .verbose
SmartConfig.debugMode = .none //for test hjl SmartConfig.debugMode = .none //for test hjl
#else #else
SmartConfig.debugMode = .none SmartConfig.debugMode = .none
...@@ -124,7 +134,7 @@ extension AppDelegate { ...@@ -124,7 +134,7 @@ extension AppDelegate {
let tabBarController = YHTabBarViewController() let tabBarController = YHTabBarViewController()
let v0 = YHNavigationController(rootVC:YHHomeViewController()) let v0 = YHNavigationController(rootVC:YHHomeViewController())
// let v0 = YHNavigationController(rootVC:YHPersonInformMainViewController())//for test hjl // let v0 = YHNavigationController(rootVC:YHPersonInformMainViewController())//for test hjl
let v1 = YHNavigationController(rootVC:YHServiceCenterMainViewController()) let v1 = YHNavigationController(rootVC:YHServiceCenterMainViewController())
let v2 = YHNavigationController(rootVC:YHMyViewController()) let v2 = YHNavigationController(rootVC:YHMyViewController())
...@@ -133,7 +143,7 @@ extension AppDelegate { ...@@ -133,7 +143,7 @@ extension AppDelegate {
v1.tabBarItem = ESTabBarItem.init(YHBasicContentView(),title: "服务中心", image: UIImage(named: "home"), selectedImage: UIImage(named: "home_1")) v1.tabBarItem = ESTabBarItem.init(YHBasicContentView(),title: "服务中心", image: UIImage(named: "home"), selectedImage: UIImage(named: "home_1"))
v2.tabBarItem = ESTabBarItem.init(YHBasicContentView(),title: "我的", image: UIImage(named: "find"), selectedImage: UIImage(named: "find_1")) v2.tabBarItem = ESTabBarItem.init(YHBasicContentView(),title: "我的", image: UIImage(named: "find"), selectedImage: UIImage(named: "find_1"))
tabBarController.viewControllers = [v0,v1,v2] tabBarController.viewControllers = [v0,v1,v2]
// tabBarController.viewControllers = [v1,v2] for test hjl 配合测试同学做自动化测试 Moon 2023.03.12 // tabBarController.viewControllers = [v1,v2] for test hjl 配合测试同学做自动化测试 Moon 2023.03.12
tabBarController.tabBar.backgroundColor = .white tabBarController.tabBar.backgroundColor = .white
window = UIWindow(frame: UIScreen.main.bounds) window = UIWindow(frame: UIScreen.main.bounds)
......
...@@ -23,7 +23,11 @@ class YHInformationPerfectListVC: YHBaseViewController { ...@@ -23,7 +23,11 @@ class YHInformationPerfectListVC: YHBaseViewController {
if hasSubmitFlag == true { if hasSubmitFlag == true {
headerTitleDesLable.text = "您已提交信息表" headerTitleDesLable.text = "您已提交信息表"
} else { } else {
headerTitleDesLable.text = "您好," + (serviceCenterMainReqVM.informationFillStepModel?.applicantName ?? "-") var name = ""
if let applicant = serviceCenterMainReqVM.informationFillStepModel {
name = applicant.applicantName.defaultStringIfEmpty(detaultValue: "尊敬的客户")
}
headerTitleDesLable.text = "您好," + name
} }
} }
} }
......
...@@ -97,17 +97,18 @@ extension YHServiceCenterMainViewController { ...@@ -97,17 +97,18 @@ extension YHServiceCenterMainViewController {
make.height.equalTo(216) make.height.equalTo(216)
} }
view.addSubview(loginTipsView) view.addSubview(loginTipsView)
loginTipsView.snp.makeConstraints { make in loginTipsView.snp.makeConstraints { make in
make.centerX.equalToSuperview() make.centerX.equalToSuperview()
make.centerY.equalToSuperview().offset(-64) make.centerY.equalToSuperview()
make.width.equalTo(KScreenWidth) make.width.equalTo(KScreenWidth)
} }
view.addSubview(noDataView) view.addSubview(noDataView)
noDataView.snp.makeConstraints { make in noDataView.snp.makeConstraints { make in
make.centerX.equalToSuperview() make.centerX.equalToSuperview()
make.centerY.equalToSuperview().offset(-64) make.centerY.equalToSuperview()
make.width.equalTo(KScreenWidth) make.width.equalTo(KScreenWidth)
} }
...@@ -124,12 +125,9 @@ extension YHServiceCenterMainViewController { ...@@ -124,12 +125,9 @@ extension YHServiceCenterMainViewController {
self.homeTableView.isHidden = true self.homeTableView.isHidden = true
self.noDataView.isHidden = false self.noDataView.isHidden = false
NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
} }
} }
......
...@@ -14,10 +14,10 @@ class YHContactMainItemStatusModel { ...@@ -14,10 +14,10 @@ class YHContactMainItemStatusModel {
didSet { didSet {
if type == 1 { if type == 1 {
iconName = "service_center_sfsq_xxws_icon" iconName = "service_center_sfsq_xxws_icon"
itemName = "信息完善" itemName = "我的信息"
} else if type == 2 { } else if type == 2 {
iconName = "service_center_sfsq_zlsc_icon" iconName = "service_center_sfsq_zlsc_icon"
itemName = "证件上传" itemName = "我的证件"
} else if type == 3 { } else if type == 3 {
iconName = "service_center_sfsq_wdpf_icon" iconName = "service_center_sfsq_wdpf_icon"
itemName = "我的评分" itemName = "我的评分"
......
...@@ -11,15 +11,34 @@ import UIKit ...@@ -11,15 +11,34 @@ import UIKit
class YHCertificateFilterItemCell: UICollectionViewCell { class YHCertificateFilterItemCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHCertificateFilterItemCell" static let cellReuseIdentifier = "YHCertificateFilterItemCell"
private let titleSelectColor = UIColor.brandMainColor
private let titleDefaultColor = UIColor.mainTextColor
private let btnSelectFont = UIFont.PFSC_M(ofSize: 13)
private let btnDefaultFont = UIFont.PFSC_R(ofSize: 13)
var title: String? {
didSet {
contentBtn.setTitle(title, for: .normal)
}
}
var isSelect: Bool = false {
didSet {
contentBtn.layer.borderColor = (isSelect ? titleSelectColor : .clear).cgColor
contentBtn.setTitleColor((isSelect ? titleSelectColor : titleDefaultColor), for: .normal)
contentBtn.titleLabel?.font = (isSelect ? btnSelectFont : btnDefaultFont)
}
}
lazy var contentBtn:UIButton = { lazy var contentBtn:UIButton = {
let btn = UIButton() let btn = UIButton()
btn.setTitle("证件", for: .normal) btn.setTitle("", for: .normal)
btn.titleLabel?.font = UIFont.PFSC_R(ofSize: 14) btn.titleLabel?.font = btnDefaultFont
btn.setTitleColor(UIColor.mainTextColor, for: .normal) btn.setTitleColor(titleDefaultColor, for: .normal)
btn.backgroundColor = UIColor(hexString:"#F8F9FB") btn.backgroundColor = UIColor(hexString:"#F8F9FB")
btn.layer.cornerRadius = 8.0 btn.layer.cornerRadius = YHCertificateFilterView.itemHeight/2.0
btn.addTarget(self, action: #selector(didClickBtn), for: .touchUpInside) btn.layer.borderWidth = 1.0
btn.isEnabled = false
return btn return btn
}() }()
...@@ -38,9 +57,4 @@ class YHCertificateFilterItemCell: UICollectionViewCell { ...@@ -38,9 +57,4 @@ class YHCertificateFilterItemCell: UICollectionViewCell {
make.edges.equalToSuperview() make.edges.equalToSuperview()
} }
} }
@objc func didClickBtn() {
}
} }
...@@ -33,6 +33,7 @@ class YHCertificateFilterSectionInfo { ...@@ -33,6 +33,7 @@ class YHCertificateFilterSectionInfo {
class YHCertificateFilterItem { class YHCertificateFilterItem {
var type: YHCertificateFilterType var type: YHCertificateFilterType
var title: String var title: String
var isSelected: Bool = false
init(type: YHCertificateFilterType, title: String) { init(type: YHCertificateFilterType, title: String) {
self.type = type self.type = type
...@@ -43,22 +44,33 @@ class YHCertificateFilterItem { ...@@ -43,22 +44,33 @@ class YHCertificateFilterItem {
class YHCertificateFilterView: UIView { class YHCertificateFilterView: UIView {
static let margin = 21.0
static let gap = 12.0
static let itemHeight = 36.0
static let sheetView = YHCertificateFilterView(frame:UIScreen.main.bounds) static let sheetView = YHCertificateFilterView(frame:UIScreen.main.bounds)
var items:[YHCertificateFilterSectionInfo] = [ var items:[YHCertificateFilterSectionInfo] = [
YHCertificateFilterSectionInfo(title: "类型".local, items: [YHCertificateFilterItem(type: .certificate, title: "证件")])
] YHCertificateFilterSectionInfo(title: "类型".local, items: [YHCertificateFilterItem(type: .certificate, title: "证件"),
YHCertificateFilterItem(type: .degree, title: "学历"),
YHCertificateFilterItem(type: .employmentProof, title: "工作证明"),
YHCertificateFilterItem(type: .other, title: "其他"),
]),
YHCertificateFilterSectionInfo(title: "状态".local, items: [YHCertificateFilterItem(type: .preUpload, title: "待上传"),
YHCertificateFilterItem(type: .rejected, title: "已驳回"),
YHCertificateFilterItem(type: .review, title: "审核中"),
YHCertificateFilterItem(type: .pass, title: "已通过"),
])]
lazy var collectionView: UICollectionView = { lazy var collectionView: UICollectionView = {
// 设置布局方向 // 设置布局方向
let flowLayout = UICollectionViewFlowLayout() let flowLayout = UICollectionViewFlowLayout()
let margin = 21.0 flowLayout.minimumInteritemSpacing = Self.gap
let gap = 12.0 flowLayout.minimumLineSpacing = Self.gap
flowLayout.minimumInteritemSpacing = 12.0
flowLayout.minimumLineSpacing = 12.0
flowLayout.scrollDirection = .vertical flowLayout.scrollDirection = .vertical
collectionView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout) collectionView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectionView.contentInset = UIEdgeInsets(top: 0, left: margin, bottom: 0, right: margin) collectionView.contentInset = UIEdgeInsets(top: 0, left: Self.margin, bottom: 0, right: Self.margin)
collectionView.backgroundColor = UIColor.white collectionView.backgroundColor = UIColor.white
collectionView.register(YHCertificateFilterItemCell.self, forCellWithReuseIdentifier:YHCertificateFilterItemCell.cellReuseIdentifier) collectionView.register(YHCertificateFilterItemCell.self, forCellWithReuseIdentifier:YHCertificateFilterItemCell.cellReuseIdentifier)
collectionView.register(YHCertificateFilterTypeView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: YHCertificateFilterTypeView.reuseIdentifier) collectionView.register(YHCertificateFilterTypeView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: YHCertificateFilterTypeView.reuseIdentifier)
...@@ -244,18 +256,34 @@ extension YHCertificateFilterView { ...@@ -244,18 +256,34 @@ extension YHCertificateFilterView {
} }
@objc func didClickResetBtn() { @objc func didClickResetBtn() {
for sectionInfo in items {
for item in sectionInfo.items {
item.isSelected = false
}
}
collectionView.reloadData()
} }
} }
extension YHCertificateFilterView:UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout { extension YHCertificateFilterView:UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { func numberOfSections(in collectionView: UICollectionView) -> Int {
return items.count return items.count
} }
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if 0 <= section && section < items.count {
let sectionInfo = items[section]
return sectionInfo.items.count
}
return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 74, height: 36) var width = Double(KScreenWidth-Self.margin*2.0-Self.gap*3.0)
width = floor(width/4.0)
return CGSize(width:width, height: Self.itemHeight)
} }
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection:Int) -> CGSize { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection:Int) -> CGSize {
...@@ -267,22 +295,52 @@ extension YHCertificateFilterView:UICollectionViewDataSource, UICollectionViewDe ...@@ -267,22 +295,52 @@ extension YHCertificateFilterView:UICollectionViewDataSource, UICollectionViewDe
if kind == UICollectionView.elementKindSectionHeader { if kind == UICollectionView.elementKindSectionHeader {
let headerView: YHCertificateFilterTypeView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: YHCertificateFilterTypeView.reuseIdentifier, for: indexPath) as! YHCertificateFilterTypeView let headerView: YHCertificateFilterTypeView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: YHCertificateFilterTypeView.reuseIdentifier, for: indexPath) as! YHCertificateFilterTypeView
return headerView
if 0 <= indexPath.section && indexPath.section < items.count {
let sectionInfo = items[indexPath.section]
headerView.title = sectionInfo.title
}
return headerView
} }
return UICollectionReusableView() return UICollectionReusableView()
} }
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHCertificateFilterItemCell.cellReuseIdentifier, for: indexPath) as! YHCertificateFilterItemCell let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHCertificateFilterItemCell.cellReuseIdentifier, for: indexPath) as! YHCertificateFilterItemCell
if 0 <= indexPath.section && indexPath.section < items.count {
let sectionInfo = items[indexPath.section]
if 0 <= indexPath.row && indexPath.row < sectionInfo.items.count {
let item = sectionInfo.items[indexPath.row]
cell.title = item.title
cell.isSelect = item.isSelected
}
}
return cell return cell
} }
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if 0 <= indexPath.section && indexPath.section < items.count {
let sectionInfo = items[indexPath.section]
if 0 <= indexPath.row && indexPath.row < sectionInfo.items.count {
let item = sectionInfo.items[indexPath.row]
item.isSelected = !item.isSelected
}
collectionView.reloadData()
}
}
} }
class YHCertificateFilterTypeView: UICollectionReusableView { class YHCertificateFilterTypeView: UICollectionReusableView {
static let reuseIdentifier = "YHCertificateFilterTypeView" static let reuseIdentifier = "YHCertificateFilterTypeView"
var title: String? {
didSet {
titleLabel.text = title
}
}
lazy var titleLabel: UILabel = { lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.textColor = UIColor.mainTextColor label.textColor = UIColor.mainTextColor
......
//
// YHCertificateUploadFailTipsView.swift
// galaxy
//
// Created by edy on 2024/3/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
/*
【Usage】
YHCertificateUploadFailTipsView.tipsView().show()
*/
import UIKit
class YHCertificateUploadFailTipsView: UIView {
lazy var blackMaskView: UIView = {
let view = UIView(frame:UIScreen.main.bounds)
view.backgroundColor = UIColor(hex: 0x0F1214, alpha: 0.5)
let tap = UITapGestureRecognizer(target: self, action: #selector(dismiss))
view.addGestureRecognizer(tap)
return view
}()
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = 6.0
return view
}()
lazy var failIconImgView: UIImageView = {
let imgV = UIImageView(image: UIImage(named: "my_cer_upload_fail"))
return imgV
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .center
label.font = UIFont.PFSC_M(ofSize:17)
label.text = "上传失败"
return label
}()
lazy var tipsLabel: UILabel = {
let label = UILabel()
label.textColor = .labelTextColor2
label.textAlignment = .center
label.font = UIFont.PFSC_R(ofSize:14)
label.numberOfLines = 0
label.text = "请检查文件格式是否为docx、jpg、doc、png、pptx、pdf".local
return label
}()
lazy var knowBtn:UIButton = {
let btn = UIButton()
btn.setTitle("我知道了".local, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
btn.setTitleColor(.white, for: .normal)
btn.backgroundColor = UIColor(hexString:"#4388FF")
btn.layer.cornerRadius = 6.0
btn.addTarget(self, action: #selector(dismiss), for: .touchUpInside)
return btn
}()
static func tipsView() -> YHCertificateUploadFailTipsView {
let view = YHCertificateUploadFailTipsView(frame:UIScreen.main.bounds)
return view
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
func createUI() {
self.addSubview(blackMaskView)
self.addSubview(whiteContentView)
whiteContentView.addSubview(failIconImgView)
whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(tipsLabel)
whiteContentView.addSubview(knowBtn)
blackMaskView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(38)
make.right.equalToSuperview().offset(-38)
make.centerX.equalToSuperview()
make.centerY.equalToSuperview()
}
failIconImgView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(30)
make.centerX.equalToSuperview()
make.width.height.equalTo(53)
}
titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(16)
make.right.equalToSuperview().offset(-16)
make.height.equalTo(24)
make.top.equalTo(failIconImgView.snp.bottom).offset(16)
}
tipsLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(16)
make.right.equalToSuperview().offset(-16)
make.top.equalTo(titleLabel.snp.bottom).offset(8)
}
knowBtn.snp.makeConstraints { make in
make.left.equalToSuperview().offset(21)
make.right.equalToSuperview().offset(-21)
make.height.equalTo(45)
make.top.equalTo(tipsLabel.snp.bottom).offset(31)
make.bottom.equalToSuperview().offset(-21)
}
}
}
extension YHCertificateUploadFailTipsView {
func show() {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
}
@objc func dismiss() {
self.removeFromSuperview()
}
}
...@@ -210,6 +210,24 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource { ...@@ -210,6 +210,24 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
cell.isMust = detailItem.isNeed cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle() cell.title = detailItem.getTitle()
cell.text = detailItem.value cell.text = detailItem.value
cell.textInputCondtion = {
textField in
var max = -1
if detailItem.type == .educationMajor ||
detailItem.type == .educationCity {
max = 100
}
if max > 0 {
if let textStr = textField.text {
textField.text = (textStr.count > max ? textStr[safe: ..<max] : textStr)
}
}
return true
}
cell.textChange = { cell.textChange = {
[weak self] (text, isEditEnd) in [weak self] (text, isEditEnd) in
guard let self = self else { return } guard let self = self else { return }
...@@ -322,14 +340,46 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource { ...@@ -322,14 +340,46 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .educationTime || detailItem.type == .graduateTime { // 入学及毕业年月 } else if detailItem.type == .educationTime || detailItem.type == .graduateTime { // 入学及毕业年月
YHDatePickView.show(type: .yyyymm) { YHDatePickView.show(type: .yyyymm) {
[weak self] date in [weak self] dateStr in
guard let self = self else { return } guard let self = self else { return }
if detailItem.type == .educationTime {
detailInfo.admissionTime = date let format = DateFormatter()
format.dateFormat = "yyyy-MM"
if let selectDate = format.date(from:dateStr) {
let selectTimeInterval = selectDate.timeIntervalSince1970
let currentTimeInterval = Date().timeIntervalSince1970
if detailItem.type == .educationTime { // 选择入学日期
// 入学日期须早于当前日期
if selectTimeInterval > currentTimeInterval {
YHHUD.flash(message: "入学日期须早于当前日期")
return
}
if !detailInfo.graduateTime.isEmpty, let endDate = format.date(from:detailInfo.graduateTime) {
let endTimeInterval = endDate.timeIntervalSince1970
if selectTimeInterval > endTimeInterval {
YHHUD.flash(message: "入学日期须早于毕业日期")
return
}
}
detailInfo.admissionTime = dateStr
}
} else if detailItem.type == .graduateTime { if detailItem.type == .graduateTime { // 选择毕业日期
detailInfo.graduateTime = date
if !detailInfo.admissionTime.isEmpty, let startDate = format.date(from:detailInfo.admissionTime) {
let startTimeInterval = startDate.timeIntervalSince1970
if selectTimeInterval < startTimeInterval {
YHHUD.flash(message: "毕业日期须晚于入学日期")
return
}
}
detailInfo.graduateTime = dateStr
}
} }
loadInfo() loadInfo()
saveInfoSilent() saveInfoSilent()
} }
......
...@@ -184,6 +184,24 @@ extension YHQualificationDetailVC : UITableViewDelegate, UITableViewDataSource { ...@@ -184,6 +184,24 @@ extension YHQualificationDetailVC : UITableViewDelegate, UITableViewDataSource {
cell.isMust = detailItem.isNeed cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle() cell.title = detailItem.getTitle()
cell.text = detailItem.value cell.text = detailItem.value
cell.textInputCondtion = {
textField in
var max = -1
if detailItem.type == .conferAgencyFullName ||
detailItem.type == .conferCity {
max = 100
}
if max > 0 {
if let textStr = textField.text {
textField.text = (textStr.count > max ? textStr[safe: ..<max] : textStr)
}
}
return true
}
cell.textChange = { cell.textChange = {
[weak self] (text, isEditEnd) in [weak self] (text, isEditEnd) in
guard let self = self else { return } guard let self = self else { return }
...@@ -276,9 +294,22 @@ extension YHQualificationDetailVC : UITableViewDelegate, UITableViewDataSource { ...@@ -276,9 +294,22 @@ extension YHQualificationDetailVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .conferTime { // 授权年份 } else if detailItem.type == .conferTime { // 授权年份
YHDatePickView.show(type: .yyyy) { YHDatePickView.show(type: .yyyy) {
[weak self] date in [weak self] dateStr in
guard let self = self else { return } guard let self = self else { return }
detailInfo.issuingYear = Int(date) ?? 2024
let format = DateFormatter()
format.dateFormat = "yyyy"
if let selectDate = format.date(from:dateStr) {
let selectTimeInterval = selectDate.timeIntervalSince1970
let currentTimeInterval = Date().timeIntervalSince1970
// 出生日期须早于当前日期
if selectTimeInterval > currentTimeInterval {
YHHUD.flash(message: "授权年份须早于当前年份".local)
return
}
}
detailInfo.issuingYear = Int(dateStr) ?? 2024
loadInfo() loadInfo()
saveInfoSilent() saveInfoSilent()
} }
......
...@@ -98,6 +98,9 @@ class YHCollegeSearchBar: UIView { ...@@ -98,6 +98,9 @@ class YHCollegeSearchBar: UIView {
} }
@objc func textFieldChanged(textField:UITextField) { @objc func textFieldChanged(textField:UITextField) {
let text = textField.text ?? ""
let max = 100
textField.text = (text.count > max ? text[safe: ..<max] : text)
if let textChange = textChange { if let textChange = textChange {
textChange(textField.text) textChange(textField.text)
} }
......
...@@ -154,7 +154,12 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour ...@@ -154,7 +154,12 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
cell.placeHolder = detailItem.placeHolder cell.placeHolder = detailItem.placeHolder
cell.title = detailItem.getTitle() cell.title = detailItem.getTitle()
cell.text = detailItem.value cell.text = detailItem.value
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isNeed && detailItem.isShowTips) if detailItem.type == .chinaIdentityCardNumber {
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isNeed && detailItem.value?.count != 18)
} else {
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isNeed && detailItem.isShowTips)
}
cell.textInputCondtion = { cell.textInputCondtion = {
textField in textField in
...@@ -162,7 +167,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour ...@@ -162,7 +167,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
if detailItem.type == .chinaIdentityCardNumber { // 身份证 if detailItem.type == .chinaIdentityCardNumber { // 身份证
max = 18 max = 18
} else if detailItem.type == .certificateSignPlace { // 签发地 } else if detailItem.type == .certificateSignPlace { // 签发地
max = 100 max = 50
} else if detailItem.type == .traverlPassportNumber || } else if detailItem.type == .traverlPassportNumber ||
detailItem.type == .certificateNumber { detailItem.type == .certificateNumber {
max = 50 max = 50
...@@ -305,9 +310,10 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour ...@@ -305,9 +310,10 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
self.view?.endEditing(true) self.view?.endEditing(true)
YHDatePickView.show(type: .yyyymmdd) { YHDatePickView.show(type: .yyyymmdd) {
[weak self] date in [weak self] dateStr in
let dataArr = date.components(separatedBy: YHDatePickView.separator)
print(dataArr) print(dateStr)
guard let self = self else { return } guard let self = self else { return }
guard let familyMember = self.familyMember else { return } guard let familyMember = self.familyMember else { return }
...@@ -321,7 +327,42 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour ...@@ -321,7 +327,42 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
} else if title.type == .passPortOrTravelInfo { } else if title.type == .passPortOrTravelInfo {
certificate = familyMember.certificates.passport certificate = familyMember.certificates.passport
} }
changeCertificateDate(certificate, type: detailItem.type, date: date)
let format = DateFormatter()
format.dateFormat = "yyyy-MM-dd"
if let selectDate = format.date(from:dateStr) {
let selectTimeInterval = selectDate.timeIntervalSince1970
let currentTimeInterval = Date().timeIntervalSince1970
if detailItem.type == .certificateSignDate { // 选择签发日期
// 签发日期须早于当前日期
if selectTimeInterval > currentTimeInterval {
YHHUD.flash(message: "签发日期须早于当前日期")
return
}
if !certificate.issueDateEndAt.isEmpty, let endDate = format.date(from:certificate.issueDateEndAt) {
let endTimeInterval = endDate.timeIntervalSince1970
if selectTimeInterval > endTimeInterval {
YHHUD.flash(message: "签发日期须早于届满日期")
return
}
}
}
if detailItem.type == .certificateValidDate { // 届满日期
if !certificate.issueDateStartAt.isEmpty, let startDate = format.date(from:certificate.issueDateStartAt) {
let startTimeInterval = startDate.timeIntervalSince1970
if selectTimeInterval < startTimeInterval {
YHHUD.flash(message: "届满日期须晚于签发日期")
return
}
}
}
}
changeCertificateDate(certificate, type: detailItem.type, date: dateStr)
self.loadInfo() self.loadInfo()
save() save()
} }
...@@ -379,7 +420,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour ...@@ -379,7 +420,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
let isChinaCardMust = familyMember.isChinese() && familyMember.relationType != .child let isChinaCardMust = familyMember.isChinese() && familyMember.relationType != .child
if isChinaCardMust { if isChinaCardMust {
if familyMember.certificates.cnIdentityCard.number.count <= 0 if familyMember.certificates.cnIdentityCard.number.count != 18
|| familyMember.certificates.cnIdentityCard.issueAt.count <= 0 || familyMember.certificates.cnIdentityCard.issueAt.count <= 0
|| familyMember.certificates.cnIdentityCard.issueDateStartAt.count <= 0 || familyMember.certificates.cnIdentityCard.issueDateStartAt.count <= 0
|| familyMember.certificates.cnIdentityCard.issueDateEndAt.count <= 0 || familyMember.certificates.cnIdentityCard.issueDateEndAt.count <= 0
......
...@@ -265,11 +265,18 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -265,11 +265,18 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
cell.title = detailItem.getTitle() cell.title = detailItem.getTitle()
cell.text = detailItem.value cell.text = detailItem.value
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips) cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips)
if detailItem.type == .befourMarryFirstName {
cell.textField.keyboardType = .asciiCapable // 英文键盘
} else {
cell.textField.keyboardType = .default
}
cell.textInputCondtion = { cell.textInputCondtion = {
textField in textField in
if detailItem.type == .befourMarryFirstName { // 仅支持输入最多30个大写字母 if detailItem.type == .befourMarryFirstName { // 仅支持输入最多30个大写字母
let regex = "[^A-Z]+" let regex = "[^A-Za-z]+"
textField.limitInputWithPattern(pattern:regex, 30) textField.limitInputWithPattern(pattern:regex, 30)
return true return true
} }
...@@ -302,7 +309,10 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -302,7 +309,10 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
self.child?.usedName = text ?? "" self.child?.usedName = text ?? ""
} else if detailItem.type == .befourMarryFirstName { } else if detailItem.type == .befourMarryFirstName {
self.child?.surname = text ?? "" let tt = text?.uppercased()
self.child?.surname = tt ?? ""
cell.textField.text = tt
} else if detailItem.type == .birthCity { } else if detailItem.type == .birthCity {
self.child?.birthPlace.foreign = text ?? "" self.child?.birthPlace.foreign = text ?? ""
...@@ -442,13 +452,25 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -442,13 +452,25 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .stayHKDate { } else if detailItem.type == .stayHKDate {
title = "选择逗留日期" title = "选择逗留日期"
} }
YHDatePickView.show(type: .yyyymmdd, title:title) { [weak self] date in YHDatePickView.show(type: .yyyymmdd, title:title) { [weak self] dateStr in
guard let self = self else { return } guard let self = self else { return }
if detailItem.type == .birthday { if detailItem.type == .birthday {
self.child?.birthday = date let format = DateFormatter()
format.dateFormat = "yyyy-MM-dd"
if let selectDate = format.date(from:dateStr) {
let selectTimeInterval = selectDate.timeIntervalSince1970
let currentTimeInterval = Date().timeIntervalSince1970
// 出生日期须早于当前日期
if selectTimeInterval > currentTimeInterval {
YHHUD.flash(message: "出生日期须早于当前日期".local)
return
}
}
self.child?.birthday = dateStr
} else if detailItem.type == .stayHKDate { } else if detailItem.type == .stayHKDate {
self.child?.childInHk.info = date self.child?.childInHk.info = dateStr
} }
loadInfo() loadInfo()
save() save()
......
...@@ -410,11 +410,22 @@ extension YHBrotherInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -410,11 +410,22 @@ extension YHBrotherInfoVC : UITableViewDelegate, UITableViewDataSource {
let detailItem = item as! YHFormDetailItem let detailItem = item as! YHFormDetailItem
if detailItem.type == .birthday { // 出生日期 if detailItem.type == .birthday { // 出生日期
YHDatePickView.show(type: .yyyymmdd) { [weak self] date in YHDatePickView.show(type: .yyyymmdd) { [weak self] dateStr in
guard let self = self else { return } guard let self = self else { return }
if detailItem.type == .birthday { if detailItem.type == .birthday {
self.brotherInfo?.birthday = date let format = DateFormatter()
format.dateFormat = "yyyy-MM-dd"
if let selectDate = format.date(from:dateStr) {
let selectTimeInterval = selectDate.timeIntervalSince1970
let currentTimeInterval = Date().timeIntervalSince1970
// 出生日期须早于当前日期
if selectTimeInterval > currentTimeInterval {
YHHUD.flash(message: "出生日期须早于当前日期".local)
return
}
}
self.brotherInfo?.birthday = dateStr
} }
self.loadInfo() self.loadInfo()
saveInfoSilent() saveInfoSilent()
......
...@@ -455,11 +455,22 @@ extension YHParentInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -455,11 +455,22 @@ extension YHParentInfoVC : UITableViewDelegate, UITableViewDataSource {
let detailItem = item as! YHFormDetailItem let detailItem = item as! YHFormDetailItem
if detailItem.type == .birthday { // 出生日期 if detailItem.type == .birthday { // 出生日期
YHDatePickView.show(type: .yyyymmdd) { [weak self] date in YHDatePickView.show(type: .yyyymmdd) { [weak self] dateStr in
guard let self = self else { return } guard let self = self else { return }
if detailItem.type == .birthday { if detailItem.type == .birthday {
self.parentInfo?.birthday = date let format = DateFormatter()
format.dateFormat = "yyyy-MM-dd"
if let selectDate = format.date(from:dateStr) {
let selectTimeInterval = selectDate.timeIntervalSince1970
let currentTimeInterval = Date().timeIntervalSince1970
// 出生日期须早于当前日期
if selectTimeInterval > currentTimeInterval {
YHHUD.flash(message: "出生日期须早于当前日期".local)
return
}
}
self.parentInfo?.birthday = dateStr
} }
self.loadInfo() self.loadInfo()
saveInfoSilent() saveInfoSilent()
......
...@@ -391,11 +391,18 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -391,11 +391,18 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
} else { } else {
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips) cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips)
} }
if detailItem.type == .befourMarryFirstName {
cell.textField.keyboardType = .asciiCapable // 英文键盘
} else {
cell.textField.keyboardType = .default
}
cell.textInputCondtion = { cell.textInputCondtion = {
textField in textField in
if detailItem.type == .befourMarryFirstName { // 仅支持输入最多30个大写字母 if detailItem.type == .befourMarryFirstName { // 仅支持输入最多30个大写字母
let regex = "[^A-Z]+" let regex = "[^A-Za-z]+"
textField.limitInputWithPattern(pattern:regex, 30) textField.limitInputWithPattern(pattern:regex, 30)
return true return true
} }
...@@ -425,7 +432,12 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -425,7 +432,12 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .everName { } else if detailItem.type == .everName {
self.spouse?.usedName = text ?? "" self.spouse?.usedName = text ?? ""
} else if detailItem.type == .befourMarryFirstName { } else if detailItem.type == .befourMarryFirstName {
self.spouse?.surname = text ?? ""
let tt = text?.uppercased()
self.spouse?.surname = tt ?? ""
cell.textField.text = tt
} else if detailItem.type == .birthCity { } else if detailItem.type == .birthCity {
self.spouse?.birthPlace.foreign = text ?? "" self.spouse?.birthPlace.foreign = text ?? ""
} else if detailItem.type == .occupationName { } else if detailItem.type == .occupationName {
...@@ -630,13 +642,27 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -630,13 +642,27 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .stayHKDate { } else if detailItem.type == .stayHKDate {
title = "选择逗留日期" title = "选择逗留日期"
} }
YHDatePickView.show(type: .yyyymmdd, title:title) { [weak self] date in YHDatePickView.show(type: .yyyymmdd, title:title) { [weak self] dateStr in
guard let self = self else { return } guard let self = self else { return }
if detailItem.type == .birthday { if detailItem.type == .birthday {
self.spouse?.birthday = date let format = DateFormatter()
format.dateFormat = "yyyy-MM-dd"
if let selectDate = format.date(from:dateStr) {
let selectTimeInterval = selectDate.timeIntervalSince1970
let currentTimeInterval = Date().timeIntervalSince1970
// 出生日期须早于当前日期
if selectTimeInterval > currentTimeInterval {
YHHUD.flash(message: "出生日期须早于当前日期".local)
return
}
}
self.spouse?.birthday = dateStr
} else if detailItem.type == .stayHKDate { } else if detailItem.type == .stayHKDate {
self.spouse?.childInHk.info = date self.spouse?.childInHk.info = dateStr
} }
loadInfo() loadInfo()
save() save()
......
...@@ -118,15 +118,15 @@ class YHFamilyMemberInfoListVC: YHBaseViewController { ...@@ -118,15 +118,15 @@ class YHFamilyMemberInfoListVC: YHBaseViewController {
} }
@objc func didClickSubmitBtn() { @objc func didClickSubmitBtn() {
// let isChecked = checkIntegrity() let isChecked = checkIntegrity()
// isNeedShowError = !isChecked isNeedShowError = !isChecked
//
// self.tableView .reloadData() self.tableView .reloadData()
//
// if !isChecked { if !isChecked {
// YHHUD.flash(message: "资料还未填完") YHHUD.flash(message: "资料还未填完")
// return return
// } }
submit() submit()
} }
...@@ -306,7 +306,7 @@ extension YHFamilyMemberInfoListVC { ...@@ -306,7 +306,7 @@ extension YHFamilyMemberInfoListVC {
if let errMsg = error?.errorMsg, errMsg.count > 0 { if let errMsg = error?.errorMsg, errMsg.count > 0 {
errorMsg = errMsg errorMsg = errMsg
} }
YHHUD.flash(message: errorMsg) YHHUD.flash(message: errorMsg, duration:3)
} }
} }
} }
...@@ -377,15 +377,18 @@ extension YHFamilyMemberInfoListVC : UITableViewDelegate, UITableViewDataSource ...@@ -377,15 +377,18 @@ extension YHFamilyMemberInfoListVC : UITableViewDelegate, UITableViewDataSource
let detailItem = item as! YHFamilyMember let detailItem = item as! YHFamilyMember
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier, for: indexPath) as! YHFormItemEnterDetailCell let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier, for: indexPath) as! YHFormItemEnterDetailCell
cell.title = detailItem.getTitle() cell.title = detailItem.getTitle()
cell.detailLabel.textColor = (isNeedShowError && detailItem.notFillNumber != 0 ? .failColor : .labelTextColor2) // cell.detailLabel.textColor = (isNeedShowError && detailItem.notFillNumber != 0 ? .failColor : .labelTextColor2)
var tips = ""
if detailItem.notFillNumber > 0 { if detailItem.notFillNumber > 0 {
cell.detailLabel.text = String(format: "有%d项未填写".local, detailItem.notFillNumber) tips = String(format: "有%d项未填写".local, detailItem.notFillNumber)
} else if detailItem.notFillNumber == 0 { } else if detailItem.notFillNumber == 0 {
cell.detailLabel.text = "已填完".local tips = "已填完".local
} else { } else {
cell.detailLabel.text = "还未开始填写".local tips = "还未开始填写".local
} }
cell.detailLabel.text = tips
cell.setTips(tips, isShow: (isNeedShowError && detailItem.notFillNumber != 0))
if isEmptyString(detailItem.subsetName) { // 姓名为空 if isEmptyString(detailItem.subsetName) { // 姓名为空
if detailItem.relationType == .child { if detailItem.relationType == .child {
......
...@@ -55,7 +55,6 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -55,7 +55,6 @@ class YHFormItemEnterDetailCell: UITableViewCell {
private lazy var titleLabel: UILabel = { private lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.text = "XXXXXXX"
label.textColor = titleColor label.textColor = titleColor
label.textAlignment = .left label.textAlignment = .left
label.numberOfLines = 0 label.numberOfLines = 0
...@@ -65,13 +64,20 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -65,13 +64,20 @@ class YHFormItemEnterDetailCell: UITableViewCell {
lazy var detailLabel: UILabel = { lazy var detailLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.text = "XXXXXXX"
label.textColor = .labelTextColor2 label.textColor = .labelTextColor2
label.textAlignment = .right label.textAlignment = .right
label.font = UIFont.PFSC_R(ofSize: 14) label.font = UIFont.PFSC_R(ofSize: 14)
return label return label
}() }()
lazy var tipsLabel: UILabel = {
let label = UILabel()
label.textColor = .failColor
label.textAlignment = .left
label.font = UIFont.PFSC_R(ofSize: 12)
return label
}()
private lazy var arrowImgView: UIImageView = { private lazy var arrowImgView: UIImageView = {
let imgView = UIImageView(image: UIImage(named: "form_right_arrow")) let imgView = UIImageView(image: UIImage(named: "form_right_arrow"))
return imgView return imgView
...@@ -110,6 +116,7 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -110,6 +116,7 @@ class YHFormItemEnterDetailCell: UITableViewCell {
contentView.addSubview(titleLabel) contentView.addSubview(titleLabel)
contentView.addSubview(detailLabel) contentView.addSubview(detailLabel)
contentView.addSubview(tipsLabel)
contentView.addSubview(arrowImgView) contentView.addSubview(arrowImgView)
contentView.addSubview(deleteButton) contentView.addSubview(deleteButton)
contentView.addSubview(topLine) contentView.addSubview(topLine)
...@@ -119,7 +126,7 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -119,7 +126,7 @@ class YHFormItemEnterDetailCell: UITableViewCell {
make.top.equalToSuperview().offset(16) make.top.equalToSuperview().offset(16)
make.left.equalToSuperview().offset(horizonalGap) make.left.equalToSuperview().offset(horizonalGap)
make.right.equalTo(detailLabel.snp.left).offset(-8) make.right.equalTo(detailLabel.snp.left).offset(-8)
make.bottom.equalToSuperview().offset(-16) make.height.equalTo(20)
} }
detailLabel.snp.makeConstraints { make in detailLabel.snp.makeConstraints { make in
...@@ -127,7 +134,7 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -127,7 +134,7 @@ class YHFormItemEnterDetailCell: UITableViewCell {
make.width.equalTo(110.0) make.width.equalTo(110.0)
make.top.equalTo(titleLabel) make.top.equalTo(titleLabel)
} }
arrowImgView.snp.makeConstraints { make in arrowImgView.snp.makeConstraints { make in
make.size.equalTo(CGSizeMake(20, 20)) make.size.equalTo(CGSizeMake(20, 20))
make.right.equalToSuperview().offset(-horizonalGap) make.right.equalToSuperview().offset(-horizonalGap)
...@@ -146,6 +153,31 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -146,6 +153,31 @@ class YHFormItemEnterDetailCell: UITableViewCell {
make.height.equalTo(1.0) make.height.equalTo(1.0)
make.top.equalToSuperview() make.top.equalToSuperview()
} }
setTips("", isShow:false)
}
func setTips(_ tips:String?, isShow:Bool) {
tipsLabel.text = tips
tipsLabel.isHidden = !isShow
if isShow {
tipsLabel.snp.remakeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.top.equalTo(titleLabel.snp.bottom).offset(6)
make.bottom.equalToSuperview().offset(-16)
}
} else {
tipsLabel.snp.remakeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom)
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.height.equalTo(0)
make.bottom.equalToSuperview().offset(-16)
}
}
self.setNeedsLayout()
self.layoutIfNeeded()
} }
@objc func didClickDeleteBtn(btn:UIButton) { @objc func didClickDeleteBtn(btn:UIButton) {
......
...@@ -69,7 +69,7 @@ class YHFormItemInputTextCell: UITableViewCell { ...@@ -69,7 +69,7 @@ class YHFormItemInputTextCell: UITableViewCell {
return label return label
}() }()
private lazy var textField:UITextField = { lazy var textField:UITextField = {
let textField = UITextField() let textField = UITextField()
textField.backgroundColor = .clear textField.backgroundColor = .clear
textField.placeholder = "请输入" textField.placeholder = "请输入"
......
...@@ -273,6 +273,14 @@ class YHItemView: UIView { ...@@ -273,6 +273,14 @@ class YHItemView: UIView {
if dataSource.isShowPrompts ?? false { if dataSource.isShowPrompts ?? false {
if dataSource.message?.count != 0 { if dataSource.message?.count != 0 {
showPromptLabel.isHidden = true showPromptLabel.isHidden = true
//特殊处理身份证
if dataSource.id == .id8 {
if let message = dataSource.message,message.count == 18 {
} else {
showPromptLabel.isHidden = false
}
}
} else { } else {
showPromptLabel.isHidden = false showPromptLabel.isHidden = false
} }
...@@ -280,6 +288,7 @@ class YHItemView: UIView { ...@@ -280,6 +288,7 @@ class YHItemView: UIView {
showPromptLabel.isHidden = true showPromptLabel.isHidden = true
} }
if dataSource.id == .id11 || dataSource.id == .id15 || dataSource.id == .id20 { if dataSource.id == .id11 || dataSource.id == .id15 || dataSource.id == .id20 {
longTimeButton.isHidden = false longTimeButton.isHidden = false
nextStepImageView.isHidden = true nextStepImageView.isHidden = true
...@@ -476,19 +485,20 @@ extension YHItemView: UITextFieldDelegate { ...@@ -476,19 +485,20 @@ extension YHItemView: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
var newText = (textField.text! as NSString).replacingCharacters(in: range, with: string) var newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
if (dataSource?.id == .id9 || dataSource?.id == .id21 || dataSource?.id == .id22 || dataSource?.id == .id23) && newText.count > 30 { if (dataSource?.id == .id21 || dataSource?.id == .id22 || dataSource?.id == .id23) && newText.count > 30 {
return false return false
} }
if (dataSource?.id == .id4 || dataSource?.id == .id32 || dataSource?.id == .id13 || dataSource?.id == .id18 || dataSource?.id == .id32 ) && newText.count > 100 { if (dataSource?.id == .id4 || dataSource?.id == .id32 || dataSource?.id == .id13 || dataSource?.id == .id32 || dataSource?.id == .id26 || dataSource?.id == .id34 ) && newText.count > 100 {
return false return false
} }
if (dataSource?.id == .id12 || dataSource?.id == .id17 || dataSource?.id == .id30) && newText.count > 50 { if (dataSource?.id == .id12 || dataSource?.id == .id17 || dataSource?.id == .id30 ||
dataSource?.id == .id9 || dataSource?.id == .id13 || dataSource?.id == .id18) && newText.count > 50 {
return false return false
} }
if (dataSource?.id == .id8) && newText.count > 20 { if (dataSource?.id == .id8) && newText.count > 18 {
return false return false
} }
...@@ -497,7 +507,9 @@ extension YHItemView: UITextFieldDelegate { ...@@ -497,7 +507,9 @@ extension YHItemView: UITextFieldDelegate {
} }
if dataSource?.id == .id23 { if dataSource?.id == .id23 {
newText = newText.uppercased() let regex = "[^A-Za-z]+"
textField.limitInputWithPattern(pattern:regex, 30)
newText = textField.text!.uppercased()
} }
var data = dataSource ?? YHItemModel() var data = dataSource ?? YHItemModel()
......
...@@ -472,6 +472,8 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel { ...@@ -472,6 +472,8 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel {
let passport_issue_date_start_at = mainModel.certificates.passport.issue_date_start_at let passport_issue_date_start_at = mainModel.certificates.passport.issue_date_start_at
let passport_issue_date_end_at = mainModel.certificates.passport.issue_date_end_at let passport_issue_date_end_at = mainModel.certificates.passport.issue_date_end_at
let nationality = mainModel.nationality let nationality = mainModel.nationality
if self.mainModel.is_handled == 1 { if self.mainModel.is_handled == 1 {
guard hk_macao_pass_number.count > 0 else { return false } guard hk_macao_pass_number.count > 0 else { return false }
guard hk_macao_pass_issue_at.count > 0 else { return false } guard hk_macao_pass_issue_at.count > 0 else { return false }
...@@ -479,7 +481,7 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel { ...@@ -479,7 +481,7 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel {
guard hk_macao_pass_issue_date_end_at.count > 0 else { return false } guard hk_macao_pass_issue_date_end_at.count > 0 else { return false }
} }
if nationality.contains("中国") { if nationality.contains("中国") {
guard cn_identity_card_number.count > 0 else { return false } guard cn_identity_card_number.count == 18 else { return false }
guard cn_identity_card_issue_at.count > 0 else { return false } guard cn_identity_card_issue_at.count > 0 else { return false }
guard cn_identity_card_issue_date_start_at.count > 0 else { return false } guard cn_identity_card_issue_date_start_at.count > 0 else { return false }
guard cn_identity_card_issue_date_end_at.count > 0 else { return false } guard cn_identity_card_issue_date_end_at.count > 0 else { return false }
...@@ -498,7 +500,7 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel { ...@@ -498,7 +500,7 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel {
let birth_place_area = mainModel.birth_place.area let birth_place_area = mainModel.birth_place.area
let birth_place_foreign = mainModel.birth_place.foreign let birth_place_foreign = mainModel.birth_place.foreign
let sex = mainModel.sex let sex = mainModel.sex
let married = mainModel.married _ = mainModel.married
let mobile = mainModel.mobile let mobile = mainModel.mobile
let email = mainModel.email let email = mainModel.email
let has_hk_id = mainModel.has_hk_id let has_hk_id = mainModel.has_hk_id
......
...@@ -158,7 +158,7 @@ extension YHOtherTextViewItemView : UITextFieldDelegate { ...@@ -158,7 +158,7 @@ extension YHOtherTextViewItemView : UITextFieldDelegate {
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if !text.isEmpty { if !text.isEmpty {
if textView.text.count > 999 { if textView.text.count > 1999 {
return false return false
} }
} }
......
...@@ -256,7 +256,14 @@ private extension YHPreviewViewModel { ...@@ -256,7 +256,14 @@ private extension YHPreviewViewModel {
let tempppp = YHConstantArrayData.getShowNameBy(indexStr: String(model.administrative_level), type: .structure) let tempppp = YHConstantArrayData.getShowNameBy(indexStr: String(model.administrative_level), type: .structure)
let tmp13 = YHPreviewQuestionAndAnswerModel(question: "行政架构层级:", answer:tempppp) let tmp13 = YHPreviewQuestionAndAnswerModel(question: "行政架构层级:", answer:tempppp)
let tmp14 = YHPreviewQuestionAndAnswerModel(question: "下属管理人数:", answer:String(model.company_manage_total)) let tmp14 = YHPreviewQuestionAndAnswerModel(question: "下属管理人数:", answer:String(model.company_manage_total))
let tmp15 = YHPreviewQuestionAndAnswerModel(question: "公司营业额/港元(近一年):", answer:String(model.turnover).defaultStringIfEmpty())
var ttt = ""
if model.turnover == 0 {
ttt = title.defaultStringIfEmpty()
} else {
ttt = String(model.turnover).defaultStringIfEmpty()
}
let tmp15 = YHPreviewQuestionAndAnswerModel(question: "公司营业额/港元(近一年):", answer:ttt)
let tempppp0 = YHConstantArrayData.getShowNameBy(indexStr: String(model.professional_level), type: .level) let tempppp0 = YHConstantArrayData.getShowNameBy(indexStr: String(model.professional_level), type: .level)
let tmp16 = YHPreviewQuestionAndAnswerModel(question: "职业水平类别:", answer:tempppp0) let tmp16 = YHPreviewQuestionAndAnswerModel(question: "职业水平类别:", answer:tempppp0)
......
...@@ -166,6 +166,16 @@ extension YHCompanySelectViewController: UITextFieldDelegate { ...@@ -166,6 +166,16 @@ extension YHCompanySelectViewController: UITextFieldDelegate {
textField.text = "" textField.text = ""
return true return true
} }
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.count > 0 {
let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
if newText.count > 100 {
return false
}
}
return true
}
} }
extension YHCompanySelectViewController: UITableViewDelegate, UITableViewDataSource { extension YHCompanySelectViewController: UITableViewDelegate, UITableViewDataSource {
......
...@@ -329,6 +329,10 @@ extension YHWorkIntroductionViewController: UITextFieldDelegate { ...@@ -329,6 +329,10 @@ extension YHWorkIntroductionViewController: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string) let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
if newText.count > 100 {
return false
}
dataSource.project_name = newText dataSource.project_name = newText
return true return true
} }
......
...@@ -476,7 +476,7 @@ extension YHWorkExperienceItemView: UITextFieldDelegate { ...@@ -476,7 +476,7 @@ extension YHWorkExperienceItemView: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string) let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
if (dataSource?.id == .id1 || dataSource?.id == .id7 || dataSource?.id == .id8 || dataSource?.id == .id12 || dataSource?.id == .id14 || dataSource?.id == .id16 || dataSource?.id == .id18) && newText.count > 100 { if (dataSource?.id == .id1 || dataSource?.id == .id7 || dataSource?.id == .id8 || dataSource?.id == .id12 || dataSource?.id == .id14 || dataSource?.id == .id16 || dataSource?.id == .id18) && newText.count > 1 {
return false return false
} }
...@@ -488,10 +488,30 @@ extension YHWorkExperienceItemView: UITextFieldDelegate { ...@@ -488,10 +488,30 @@ extension YHWorkExperienceItemView: UITextFieldDelegate {
return false return false
} }
if dataSource?.id == .id17 && newText.count > 10 { if dataSource?.id == .id17 && newText.count > 14 {
//10万亿元 100000 000000000
// let target = 100000000000000
// if let value = Int64(newText) {
// if value > target {
// return false
// }
// } else {
// return false
// }
return false return false
} }
if dataSource?.id == .id12 && newText.count > 50 {
return false
}
if (dataSource?.id == .id14 || dataSource?.id == .id16 || dataSource?.id == .id18) && newText.count > 100 {
return false
}
var data = dataSource ?? YHWorkExperienceModel() var data = dataSource ?? YHWorkExperienceModel()
data.message = newText data.message = newText
if let block = block { if let block = block {
......
...@@ -161,25 +161,25 @@ class YHInformationFillTipsAlertView: UIView { ...@@ -161,25 +161,25 @@ class YHInformationFillTipsAlertView: UIView {
let lable01 = UILabel(text: "信息填写提示") let lable01 = UILabel(text: "信息填写提示")
lable01.textAlignment = .center
lable01.font = UIFont.PFSC_M(ofSize: 17) lable01.font = UIFont.PFSC_M(ofSize: 17)
lable01.textColor = UIColor.mainTextColor lable01.textColor = UIColor.mainTextColor
topView.addSubview(lable01) topView.addSubview(lable01)
lable01.snp.makeConstraints { make in lable01.snp.makeConstraints { make in
make.left.equalTo(21) make.top.equalTo(kMargin)
make.right.equalTo(-21) make.centerX.equalToSuperview()
make.top.equalTo(16)
make.height.equalTo(24) make.height.equalTo(24)
} }
let line = UIView() let line = UIView()
line.backgroundColor = UIColor(hexString: "#F0F0F0") line.backgroundColor = UIColor.separatorColor
topView.addSubview(line) topView.addSubview(line)
line.snp.makeConstraints { make in line.snp.makeConstraints { make in
make.top.equalTo(lable01.snp.bottom).offset(12)
make.left.equalTo(21) make.left.equalTo(21)
make.right.equalTo(-21) make.right.equalTo(-21)
make.top.equalTo(lable01.snp.bottom).offset(12)
make.height.equalTo(0.5) make.height.equalTo(0.5)
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
} }
......
...@@ -57,7 +57,7 @@ extension YHInformationFillTipsCell { ...@@ -57,7 +57,7 @@ extension YHInformationFillTipsCell {
} }
//添加元素 //添加元素
let lable0 = UILabel(text: " 您好!欢迎来到香港优才申请系统,请按照实际情况填写。") let lable0 = UILabel(text: " 您好!欢迎来到香港优才申请系统,请按照实际情况填写。")
lable0.font = UIFont.PFSC_R(ofSize: 14) lable0.font = UIFont.PFSC_R(ofSize: 14)
lable0.textColor = UIColor.mainTextColor lable0.textColor = UIColor.mainTextColor
lable0.numberOfLines = 0 lable0.numberOfLines = 0
...@@ -70,12 +70,12 @@ extension YHInformationFillTipsCell { ...@@ -70,12 +70,12 @@ extension YHInformationFillTipsCell {
} }
let lable1 = UILabel(text: " 1. 如您填写途中想离开系统,记得点击保存,在您有空闲的时间再继续进行填写;") let lable1 = UILabel(text: " 1. 如您填写途中想离开系统,记得点击保存,在您有空闲的时间再继续进行填写;")
lable1.font = UIFont.PFSC_R(ofSize: 14) lable1.font = UIFont.PFSC_R(ofSize: 14)
lable1.textColor = UIColor.mainTextColor lable1.textColor = UIColor.mainTextColor
lable1.numberOfLines = 0 lable1.numberOfLines = 0
lable1.lineBreakMode = .byWordWrapping lable1.lineBreakMode = .byWordWrapping
let a: ASAttributedString = .init(" 1. 如您填写途中想离开系统,", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.mainTextColor)) let a: ASAttributedString = .init(" 1. 如您填写途中想离开系统,", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.mainTextColor))
let b: ASAttributedString = .init("记得点击保存", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.brandMainColor)) let b: ASAttributedString = .init("记得点击保存", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.brandMainColor))
let c: ASAttributedString = .init(",在您有空闲的时间再继续进行填写;", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.mainTextColor)) let c: ASAttributedString = .init(",在您有空闲的时间再继续进行填写;", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.mainTextColor))
lable1.attributed.text = a + b + c lable1.attributed.text = a + b + c
...@@ -86,13 +86,13 @@ extension YHInformationFillTipsCell { ...@@ -86,13 +86,13 @@ extension YHInformationFillTipsCell {
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
} }
let lable2 = UILabel(text: " 2. 此次填写将花费您30-40分钟,系统将根据您所填写的信息,形成详细资料清单,一起为香港身份起航吧~") let lable2 = UILabel(text: " 2. 此次填写将花费您30-40分钟,系统将根据您所填写的信息,形成详细资料清单,一起为香港身份起航吧~")
lable2.font = UIFont.PFSC_R(ofSize: 14) lable2.font = UIFont.PFSC_R(ofSize: 14)
lable2.textColor = UIColor.mainTextColor lable2.textColor = UIColor.mainTextColor
lable2.numberOfLines = 0 lable2.numberOfLines = 0
lable2.lineBreakMode = .byWordWrapping lable2.lineBreakMode = .byWordWrapping
let aa: ASAttributedString = .init(" 2. 此次填写将花费您", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.mainTextColor)) let aa: ASAttributedString = .init(" 2. 此次填写将花费您", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.mainTextColor))
let bb: ASAttributedString = .init("30-40分钟", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.brandMainColor)) let bb: ASAttributedString = .init("30-40分钟", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.brandMainColor))
let cc: ASAttributedString = .init(",系统将根据您所填写的信息,形成详细资料清单,一起为香港身份起航吧~", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.mainTextColor)) let cc: ASAttributedString = .init(",系统将根据您所填写的信息,形成详细资料清单,一起为香港身份起航吧~", .font(UIFont.PFSC_R(ofSize: 14)),.foreground(UIColor.mainTextColor))
lable2.attributed.text = aa + bb + cc lable2.attributed.text = aa + bb + cc
......
...@@ -61,6 +61,38 @@ class YHLoginTipsView: UIView { ...@@ -61,6 +61,38 @@ class YHLoginTipsView: UIView {
initView() initView()
} }
override func layoutSubviews() {
super.layoutSubviews()
tipsLab.snp.removeConstraints()
loginBtn.snp.removeConstraints()
loginBtn.isHidden = true
if viewType == 0 {
loginBtn.isHidden = false
tipsLab.snp.remakeConstraints { make in
make.top.equalTo(iconImgV.snp.bottom).offset(12)
make.centerX.equalToSuperview()
make.left.right.equalToSuperview()
}
loginBtn.snp.remakeConstraints { make in
make.top.equalTo(tipsLab.snp.bottom).offset(21)
make.centerX.equalToSuperview()
make.height.equalTo(36)
make.width.equalTo(86)
make.bottom.equalToSuperview()
}
} else {
tipsLab.snp.remakeConstraints { make in
make.top.equalTo(iconImgV.snp.bottom).offset(12)
make.centerX.equalToSuperview()
make.left.right.equalToSuperview()
make.bottom.equalToSuperview()
}
}
}
private func initView() { private func initView() {
addSubview(iconImgV) addSubview(iconImgV)
iconImgV.snp.makeConstraints { make in iconImgV.snp.makeConstraints { make in
...@@ -88,7 +120,7 @@ class YHLoginTipsView: UIView { ...@@ -88,7 +120,7 @@ class YHLoginTipsView: UIView {
loginBtn.addTarget(self, action: #selector(clickLoginBtn), for: .touchUpInside) loginBtn.addTarget(self, action: #selector(clickLoginBtn), for: .touchUpInside)
layoutIfNeeded() layoutIfNeeded()
loginBtn.backgroundColor = .brandMainColor//for test hjl loginBtn.backgroundColor = .brandMainColor
loginBtn.addYinHeGradualLayer() loginBtn.addYinHeGradualLayer()
} }
......
...@@ -135,47 +135,45 @@ extension YHServiceCenterMainViewModel { ...@@ -135,47 +135,45 @@ extension YHServiceCenterMainViewModel {
model.isFinished = true model.isFinished = true
arrContactStausItmes.append(model) arrContactStausItmes.append(model)
let model2 = YHContactMainItemStatusModel() if resultModel.supplement_not_submit_num > 0 {
model2.type = 2 let model2 = YHContactMainItemStatusModel()
model2.isFinished = false model2.type = 2
arrContactStausItmes.append(model2) model2.isFinished = false
arrContactStausItmes.append(model2)
} else {
let model2 = YHContactMainItemStatusModel()
model2.type = 2
model2.isFinished = true
arrContactStausItmes.append(model2)
}
//我的评分
let model3 = YHContactMainItemStatusModel() let model3 = YHContactMainItemStatusModel()
model3.type = 3 model3.type = 3
model3.isFinished = false model3.isFinished = true
arrContactStausItmes.append(model3) arrContactStausItmes.append(model3)
let model4 = YHContactMainItemStatusModel() if resultModel.my_document {
model4.type = 4 //我的文书
model4.isFinished = false let model4 = YHContactMainItemStatusModel()
arrContactStausItmes.append(model4) model4.type = 4
model4.isFinished = true
let model5 = YHContactMainItemStatusModel() arrContactStausItmes.append(model4)
model5.type = 5 }
model5.isFinished = false
arrContactStausItmes.append(model5) if resultModel.my_signature {
let model5 = YHContactMainItemStatusModel()
model5.type = 5
model5.isFinished = true
arrContactStausItmes.append(model5)
}
} else { } else {
let model = YHContactMainItemStatusModel() let model = YHContactMainItemStatusModel()
model.type = 1 model.type = 1
model.isFinished = false model.isFinished = false
arrContactStausItmes.append(model) arrContactStausItmes.append(model)
let model2 = YHContactMainItemStatusModel()
model2.type = 2
model2.isFinished = false
arrContactStausItmes.append(model2)
let model4 = YHContactMainItemStatusModel()
model4.type = 4
model4.isFinished = false
arrContactStausItmes.append(model4)
let model5 = YHContactMainItemStatusModel()
model5.type = 5
model5.isFinished = false
arrContactStausItmes.append(model5)
} }
callBackBlock(true,nil) callBackBlock(true,nil)
} else { } else {
......
...@@ -169,6 +169,21 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource { ...@@ -169,6 +169,21 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
if (indexPath.row >= items.count) { return } if (indexPath.row >= items.count) { return }
// if true {
// YHCertificateUploadFailTipsView.tipsView().show()
// let vc = YHUploadContentVC()
// self.navigationController?.pushViewController(vc)
// let vc = YHCertificateResourceUploadVC()
// self.navigationController?.pushViewController(vc)
// return
// }
if !checkLogin() { if !checkLogin() {
let vc = UINavigationController(rootVC: YHPhoneLoginViewController()) let vc = UINavigationController(rootVC: YHPhoneLoginViewController())
vc.modalPresentationStyle = .custom vc.modalPresentationStyle = .custom
......
...@@ -345,7 +345,7 @@ class YHConstantArrayData { ...@@ -345,7 +345,7 @@ class YHConstantArrayData {
//通过 id 获取 title //通过 id 获取 title
static func getShowNameBy(indexStr:String,type : YHOtherPickerViewType) -> String { static func getShowNameBy(indexStr:String,type : YHOtherPickerViewType) -> String {
if indexStr.isEmpty { if indexStr.isEmpty {
return "未知" return "--"
} }
var arrData : [[String : String]] = [[:]] var arrData : [[String : String]] = [[:]]
switch type { switch type {
...@@ -365,9 +365,9 @@ class YHConstantArrayData { ...@@ -365,9 +365,9 @@ class YHConstantArrayData {
for item in arrData { for item in arrData {
if let target = item["id"],indexStr == target { if let target = item["id"],indexStr == target {
return item["title"] ?? "未知" return item["title"] ?? "--"
} }
} }
return "未知" return "--"
} }
} }
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 3034@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 3034@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>UIAppFonts</key>
<array>
<string>DIN Alternate Bold</string>
</array>
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>
<dict> <dict>
<key>NSAllowsArbitraryLoads</key> <key>NSAllowsArbitraryLoads</key>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment