Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
170b6236
Commit
170b6236
authored
Mar 05, 2024
by
Steven杜宇
1
Browse files
Options
Browse Files
Download
Plain Diff
no message
parents
df29bb15
da0981c1
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
1155 additions
and
120 deletions
+1155
-120
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+36
-0
YHInformationPerfectListVC.swift
...telligentService(服务中心)/C/YHInformationPerfectListVC.swift
+2
-2
YHBasicInfoFillBottomView.swift
...)/BaseInformation(基本资料)/V/YHBasicInfoFillBottomView.swift
+1
-1
YHBottomNextView.swift
...MainApplicantInformation(主申请人信息)/V/YHBottomNextView.swift
+1
-1
YHImagePickerView.swift
...ainApplicantInformation(主申请人信息)/V/YHImagePickerView.swift
+1
-4
YHMainInformationCardTableViewCell.swift
...mation(主申请人信息)/V/YHMainInformationCardTableViewCell.swift
+12
-0
YHPreviewControllerHoldViewController.swift
...ist(个人信息预览)/C/YHPreviewControllerHoldViewController.swift
+2
-1
YHPreviewMainViewController.swift
...ersonInfoList(个人信息预览)/C/YHPreviewMainViewController.swift
+0
-14
YHPreviewWorkExpViewController.swift
...onInfoList(个人信息预览)/C/YHPreviewWorkExpViewController.swift
+59
-0
YHPreviewInfoSessionModel.swift
.../PersonInfoList(个人信息预览)/M/YHPreviewInfoSessionModel.swift
+1
-2
YHWorkExpDataModel.swift
...ess(流程)/PersonInfoList(个人信息预览)/M/YHWorkExpDataModel.swift
+14
-0
YHWorkExpInfoPreviewModel.swift
.../PersonInfoList(个人信息预览)/M/YHWorkExpInfoPreviewModel.swift
+111
-0
YHPreviewInfoCell.swift
...cess(流程)/PersonInfoList(个人信息预览)/V/YHPreviewInfoCell.swift
+3
-6
YHPreviewViewModel.swift
...ss(流程)/PersonInfoList(个人信息预览)/VM/YHPreviewViewModel.swift
+108
-0
YHImageClipperViewController.swift
...s(流程)/WorkExperience/C/YHImageClipperViewController.swift
+149
-0
YHImageResultViewController.swift
...ss(流程)/WorkExperience/C/YHImageResultViewController.swift
+86
-0
YHImageViewController.swift
...eProcess(流程)/WorkExperience/C/YHImageViewController.swift
+84
-0
YHWorkExperienceViewController.swift
...流程)/WorkExperience/C/YHWorkExperienceViewController.swift
+16
-38
YHWorkIntroductionViewController.swift
...)/WorkExperience/C/YHWorkIntroductionViewController.swift
+6
-19
YHClipperButton.swift
...ServiceProcess(流程)/WorkExperience/V/YHClipperButton.swift
+62
-0
YHClipperView.swift
...)/ServiceProcess(流程)/WorkExperience/V/YHClipperView.swift
+291
-0
YHResultBottomView.swift
...viceProcess(流程)/WorkExperience/V/YHResultBottomView.swift
+59
-0
YHWorkResponsibilitiesTableViewCell.swift
...orkExperience/V/YHWorkResponsibilitiesTableViewCell.swift
+0
-1
YHInformationFillTipsAlertView.swift
...igentService(服务中心)/V/YHInformationFillTipsAlertView.swift
+1
-1
YHLoginTipsView.swift
.../Modules/IntelligentService(服务中心)/V/YHLoginTipsView.swift
+1
-1
YHSubmintAllInfoSuccessTipView.swift
...igentService(服务中心)/V/YHSubmintAllInfoSuccessTipView.swift
+1
-1
YHSubmitAllInfoCheckView.swift
...IntelligentService(服务中心)/V/YHSubmitAllInfoCheckView.swift
+2
-1
UIButton+Extension.swift
...y/galaxy/Classes/Tools/Extention/UIButton+Extension.swift
+0
-27
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+2
-0
Contents.json
...viceCenter/工作经验/image_clipper_back.imageset/Contents.json
+22
-0
image_clipper_back@2x.png
...作经验/image_clipper_back.imageset/image_clipper_back@2x.png
+0
-0
image_clipper_back@3x.png
...作经验/image_clipper_back.imageset/image_clipper_back@3x.png
+0
-0
Contents.json
...ceCenter/工作经验/image_clipper_cannal.imageset/Contents.json
+22
-0
image_clipper_cannal@2x.png
...image_clipper_cannal.imageset/image_clipper_cannal@2x.png
+0
-0
image_clipper_cannal@3x.png
...image_clipper_cannal.imageset/image_clipper_cannal@3x.png
+0
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
170b6236
...
@@ -45,6 +45,7 @@
...
@@ -45,6 +45,7 @@
044CC6292B8741AC0083FF76
/* YHSearchBar.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044CC6282B8741AC0083FF76
/* YHSearchBar.swift */
;
};
044CC6292B8741AC0083FF76
/* YHSearchBar.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044CC6282B8741AC0083FF76
/* YHSearchBar.swift */
;
};
044CC62B2B876A230083FF76
/* YHSheetPickerView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044CC62A2B876A230083FF76
/* YHSheetPickerView.swift */
;
};
044CC62B2B876A230083FF76
/* YHSheetPickerView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044CC62A2B876A230083FF76
/* YHSheetPickerView.swift */
;
};
044CC62D2B876C980083FF76
/* YHSheetPickerViewType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044CC62C2B876C980083FF76
/* YHSheetPickerViewType.swift */
;
};
044CC62D2B876C980083FF76
/* YHSheetPickerViewType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044CC62C2B876C980083FF76
/* YHSheetPickerViewType.swift */
;
};
045DBF782B96FF5900992CAF
/* YHImageViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045DBF772B96FF5900992CAF
/* YHImageViewController.swift */
;
};
0468D4202B49320900CFB916
/* YHVerificationCodeLoginController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D41F2B49320900CFB916
/* YHVerificationCodeLoginController.swift */
;
};
0468D4202B49320900CFB916
/* YHVerificationCodeLoginController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D41F2B49320900CFB916
/* YHVerificationCodeLoginController.swift */
;
};
0468D4222B493A5E00CFB916
/* YHPhoneMessageView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4212B493A5E00CFB916
/* YHPhoneMessageView.swift */
;
};
0468D4222B493A5E00CFB916
/* YHPhoneMessageView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4212B493A5E00CFB916
/* YHPhoneMessageView.swift */
;
};
0468D4242B494BEA00CFB916
/* YHCodeResultViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4232B494BEA00CFB916
/* YHCodeResultViewController.swift */
;
};
0468D4242B494BEA00CFB916
/* YHCodeResultViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4232B494BEA00CFB916
/* YHCodeResultViewController.swift */
;
};
...
@@ -75,6 +76,11 @@
...
@@ -75,6 +76,11 @@
0468D4802B6914E600CFB916
/* YHSelectCountryViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D47F2B6914E600CFB916
/* YHSelectCountryViewController.swift */
;
};
0468D4802B6914E600CFB916
/* YHSelectCountryViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D47F2B6914E600CFB916
/* YHSelectCountryViewController.swift */
;
};
0468D4822B6A2A8500CFB916
/* YHSelectCountryViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4812B6A2A8500CFB916
/* YHSelectCountryViewModel.swift */
;
};
0468D4822B6A2A8500CFB916
/* YHSelectCountryViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4812B6A2A8500CFB916
/* YHSelectCountryViewModel.swift */
;
};
04754A952B96FF3D00F8ADCA
/* UITextField+Extension.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04754A942B96FF3D00F8ADCA
/* UITextField+Extension.swift */
;
};
04754A952B96FF3D00F8ADCA
/* UITextField+Extension.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04754A942B96FF3D00F8ADCA
/* UITextField+Extension.swift */
;
};
0469750E2B96C0B900A0CB66
/* YHImageClipperViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0469750D2B96C0B900A0CB66
/* YHImageClipperViewController.swift */
;
};
046975102B96C13700A0CB66
/* YHClipperView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0469750F2B96C13700A0CB66
/* YHClipperView.swift */
;
};
046975122B96C77000A0CB66
/* YHClipperButton.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
046975112B96C77000A0CB66
/* YHClipperButton.swift */
;
};
046975162B96EB2200A0CB66
/* YHImageResultViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
046975152B96EB2200A0CB66
/* YHImageResultViewController.swift */
;
};
046975182B96EEB200A0CB66
/* YHResultBottomView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
046975172B96EEB200A0CB66
/* YHResultBottomView.swift */
;
};
04808C062B4686510056D53C
/* ATAuthSDK.bundle in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04808C042B4686510056D53C
/* ATAuthSDK.bundle */
;
};
04808C062B4686510056D53C
/* ATAuthSDK.bundle in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04808C042B4686510056D53C
/* ATAuthSDK.bundle */
;
};
04808C082B4686C10056D53C
/* ATAuthSDK_D.framework in Embed Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04808C032B4686510056D53C
/* ATAuthSDK_D.framework */
;
settings
=
{
ATTRIBUTES
=
(
CodeSignOnCopy
,
RemoveHeadersOnCopy
,
);
};
};
04808C082B4686C10056D53C
/* ATAuthSDK_D.framework in Embed Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04808C032B4686510056D53C
/* ATAuthSDK_D.framework */
;
settings
=
{
ATTRIBUTES
=
(
CodeSignOnCopy
,
RemoveHeadersOnCopy
,
);
};
};
049A48A82B49417300D0C641
/* YHAboutUsViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
049A48A72B49417300D0C641
/* YHAboutUsViewController.swift */
;
};
049A48A82B49417300D0C641
/* YHAboutUsViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
049A48A72B49417300D0C641
/* YHAboutUsViewController.swift */
;
};
...
@@ -159,6 +165,9 @@
...
@@ -159,6 +165,9 @@
A53026902B4E6F2700F35102
/* YHHomeCustomCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A530268F2B4E6F2700F35102
/* YHHomeCustomCell.swift */
;
};
A53026902B4E6F2700F35102
/* YHHomeCustomCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A530268F2B4E6F2700F35102
/* YHHomeCustomCell.swift */
;
};
A554A5002B95FB9100EA5973
/* YHMainInfoPreviewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A4FF2B95FB9100EA5973
/* YHMainInfoPreviewModel.swift */
;
};
A554A5002B95FB9100EA5973
/* YHMainInfoPreviewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A4FF2B95FB9100EA5973
/* YHMainInfoPreviewModel.swift */
;
};
A554A5022B96B9BC00EA5973
/* YHAcademicPreviewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A5012B96B9BC00EA5973
/* YHAcademicPreviewModel.swift */
;
};
A554A5022B96B9BC00EA5973
/* YHAcademicPreviewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A5012B96B9BC00EA5973
/* YHAcademicPreviewModel.swift */
;
};
A554A5042B96D04100EA5973
/* YHPreviewWorkExpViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A5032B96D04100EA5973
/* YHPreviewWorkExpViewController.swift */
;
};
A554A5062B96D17B00EA5973
/* YHWorkExpInfoPreviewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A5052B96D17B00EA5973
/* YHWorkExpInfoPreviewModel.swift */
;
};
A554A5082B96F55900EA5973
/* YHWorkExpDataModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A5072B96F55900EA5973
/* YHWorkExpDataModel.swift */
;
};
A5551FFE2B4C26CE00510980
/* YHBaseViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
;
};
A5551FFE2B4C26CE00510980
/* YHBaseViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
;
};
A5573ED22B317BFF00D98EC0
/* AppDelegate.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5573ED12B317BFF00D98EC0
/* AppDelegate.swift */
;
};
A5573ED22B317BFF00D98EC0
/* AppDelegate.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5573ED12B317BFF00D98EC0
/* AppDelegate.swift */
;
};
A5573EDB2B317C0000D98EC0
/* Assets.xcassets in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5573EDA2B317C0000D98EC0
/* Assets.xcassets */
;
};
A5573EDB2B317C0000D98EC0
/* Assets.xcassets in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5573EDA2B317C0000D98EC0
/* Assets.xcassets */
;
};
...
@@ -351,6 +360,7 @@
...
@@ -351,6 +360,7 @@
044CC6282B8741AC0083FF76
/* YHSearchBar.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSearchBar.swift
;
sourceTree
=
"<group>"
;
};
044CC6282B8741AC0083FF76
/* YHSearchBar.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSearchBar.swift
;
sourceTree
=
"<group>"
;
};
044CC62A2B876A230083FF76
/* YHSheetPickerView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSheetPickerView.swift
;
sourceTree
=
"<group>"
;
};
044CC62A2B876A230083FF76
/* YHSheetPickerView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSheetPickerView.swift
;
sourceTree
=
"<group>"
;
};
044CC62C2B876C980083FF76
/* YHSheetPickerViewType.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSheetPickerViewType.swift
;
sourceTree
=
"<group>"
;
};
044CC62C2B876C980083FF76
/* YHSheetPickerViewType.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSheetPickerViewType.swift
;
sourceTree
=
"<group>"
;
};
045DBF772B96FF5900992CAF
/* YHImageViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHImageViewController.swift
;
sourceTree
=
"<group>"
;
};
0468D41F2B49320900CFB916
/* YHVerificationCodeLoginController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHVerificationCodeLoginController.swift
;
sourceTree
=
"<group>"
;
};
0468D41F2B49320900CFB916
/* YHVerificationCodeLoginController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHVerificationCodeLoginController.swift
;
sourceTree
=
"<group>"
;
};
0468D4212B493A5E00CFB916
/* YHPhoneMessageView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPhoneMessageView.swift
;
sourceTree
=
"<group>"
;
};
0468D4212B493A5E00CFB916
/* YHPhoneMessageView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPhoneMessageView.swift
;
sourceTree
=
"<group>"
;
};
0468D4232B494BEA00CFB916
/* YHCodeResultViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCodeResultViewController.swift
;
sourceTree
=
"<group>"
;
};
0468D4232B494BEA00CFB916
/* YHCodeResultViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCodeResultViewController.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -381,6 +391,11 @@
...
@@ -381,6 +391,11 @@
0468D47F2B6914E600CFB916
/* YHSelectCountryViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSelectCountryViewController.swift
;
sourceTree
=
"<group>"
;
};
0468D47F2B6914E600CFB916
/* YHSelectCountryViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSelectCountryViewController.swift
;
sourceTree
=
"<group>"
;
};
0468D4812B6A2A8500CFB916
/* YHSelectCountryViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSelectCountryViewModel.swift
;
sourceTree
=
"<group>"
;
};
0468D4812B6A2A8500CFB916
/* YHSelectCountryViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSelectCountryViewModel.swift
;
sourceTree
=
"<group>"
;
};
04754A942B96FF3D00F8ADCA
/* UITextField+Extension.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
"UITextField+Extension.swift"
;
sourceTree
=
"<group>"
;
};
04754A942B96FF3D00F8ADCA
/* UITextField+Extension.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
"UITextField+Extension.swift"
;
sourceTree
=
"<group>"
;
};
0469750D2B96C0B900A0CB66
/* YHImageClipperViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHImageClipperViewController.swift
;
sourceTree
=
"<group>"
;
};
0469750F2B96C13700A0CB66
/* YHClipperView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHClipperView.swift
;
sourceTree
=
"<group>"
;
};
046975112B96C77000A0CB66
/* YHClipperButton.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHClipperButton.swift
;
sourceTree
=
"<group>"
;
};
046975152B96EB2200A0CB66
/* YHImageResultViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHImageResultViewController.swift
;
sourceTree
=
"<group>"
;
};
046975172B96EEB200A0CB66
/* YHResultBottomView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHResultBottomView.swift
;
sourceTree
=
"<group>"
;
};
04808C032B4686510056D53C
/* ATAuthSDK_D.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
path
=
ATAuthSDK_D.framework
;
sourceTree
=
"<group>"
;
};
04808C032B4686510056D53C
/* ATAuthSDK_D.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
path
=
ATAuthSDK_D.framework
;
sourceTree
=
"<group>"
;
};
04808C042B4686510056D53C
/* ATAuthSDK.bundle */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"wrapper.plug-in"
;
path
=
ATAuthSDK.bundle
;
sourceTree
=
"<group>"
;
};
04808C042B4686510056D53C
/* ATAuthSDK.bundle */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"wrapper.plug-in"
;
path
=
ATAuthSDK.bundle
;
sourceTree
=
"<group>"
;
};
049A48A72B49417300D0C641
/* YHAboutUsViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHAboutUsViewController.swift
;
sourceTree
=
"<group>"
;
};
049A48A72B49417300D0C641
/* YHAboutUsViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHAboutUsViewController.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -466,6 +481,9 @@
...
@@ -466,6 +481,9 @@
A530268F2B4E6F2700F35102
/* YHHomeCustomCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHHomeCustomCell.swift
;
sourceTree
=
"<group>"
;
};
A530268F2B4E6F2700F35102
/* YHHomeCustomCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHHomeCustomCell.swift
;
sourceTree
=
"<group>"
;
};
A554A4FF2B95FB9100EA5973
/* YHMainInfoPreviewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMainInfoPreviewModel.swift
;
sourceTree
=
"<group>"
;
};
A554A4FF2B95FB9100EA5973
/* YHMainInfoPreviewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMainInfoPreviewModel.swift
;
sourceTree
=
"<group>"
;
};
A554A5012B96B9BC00EA5973
/* YHAcademicPreviewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHAcademicPreviewModel.swift
;
sourceTree
=
"<group>"
;
};
A554A5012B96B9BC00EA5973
/* YHAcademicPreviewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHAcademicPreviewModel.swift
;
sourceTree
=
"<group>"
;
};
A554A5032B96D04100EA5973
/* YHPreviewWorkExpViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPreviewWorkExpViewController.swift
;
sourceTree
=
"<group>"
;
};
A554A5052B96D17B00EA5973
/* YHWorkExpInfoPreviewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExpInfoPreviewModel.swift
;
sourceTree
=
"<group>"
;
};
A554A5072B96F55900EA5973
/* YHWorkExpDataModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExpDataModel.swift
;
sourceTree
=
"<group>"
;
};
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
A5573ECE2B317BFF00D98EC0
/* galaxy.app */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.application
;
includeInIndex
=
0
;
path
=
galaxy.app
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
A5573ECE2B317BFF00D98EC0
/* galaxy.app */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.application
;
includeInIndex
=
0
;
path
=
galaxy.app
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
A5573ED12B317BFF00D98EC0
/* AppDelegate.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
AppDelegate.swift
;
sourceTree
=
"<group>"
;
};
A5573ED12B317BFF00D98EC0
/* AppDelegate.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
AppDelegate.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -924,6 +942,9 @@
...
@@ -924,6 +942,9 @@
04E86E562B848D5A00A35F4B
/* YHWorkIntroductionViewController.swift */
,
04E86E562B848D5A00A35F4B
/* YHWorkIntroductionViewController.swift */
,
04E86E582B84AD6200A35F4B
/* YHWorkExampleViewController.swift */
,
04E86E582B84AD6200A35F4B
/* YHWorkExampleViewController.swift */
,
04E86E692B87352600A35F4B
/* YHCompanySelectViewController.swift */
,
04E86E692B87352600A35F4B
/* YHCompanySelectViewController.swift */
,
0469750D2B96C0B900A0CB66
/* YHImageClipperViewController.swift */
,
046975152B96EB2200A0CB66
/* YHImageResultViewController.swift */
,
045DBF772B96FF5900992CAF
/* YHImageViewController.swift */
,
);
);
path
=
C
;
path
=
C
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -948,6 +969,9 @@
...
@@ -948,6 +969,9 @@
04E86E3D2B834FC100A35F4B
/* YHWorkExperienceTextItemView.swift */
,
04E86E3D2B834FC100A35F4B
/* YHWorkExperienceTextItemView.swift */
,
04E86E5A2B84BF2000A35F4B
/* YHWorkExampleTypeView.swift */
,
04E86E5A2B84BF2000A35F4B
/* YHWorkExampleTypeView.swift */
,
04E86E5C2B84CC9700A35F4B
/* YHWorkExampleMessageView.swift */
,
04E86E5C2B84CC9700A35F4B
/* YHWorkExampleMessageView.swift */
,
0469750F2B96C13700A0CB66
/* YHClipperView.swift */
,
046975112B96C77000A0CB66
/* YHClipperButton.swift */
,
046975172B96EEB200A0CB66
/* YHResultBottomView.swift */
,
);
);
path
=
V
;
path
=
V
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -1055,6 +1079,8 @@
...
@@ -1055,6 +1079,8 @@
A5B4A5842B9455F7003EFF8F
/* YHPreviewForOtherInfoModel.swift */
,
A5B4A5842B9455F7003EFF8F
/* YHPreviewForOtherInfoModel.swift */
,
A554A4FF2B95FB9100EA5973
/* YHMainInfoPreviewModel.swift */
,
A554A4FF2B95FB9100EA5973
/* YHMainInfoPreviewModel.swift */
,
A554A5012B96B9BC00EA5973
/* YHAcademicPreviewModel.swift */
,
A554A5012B96B9BC00EA5973
/* YHAcademicPreviewModel.swift */
,
A554A5052B96D17B00EA5973
/* YHWorkExpInfoPreviewModel.swift */
,
A554A5072B96F55900EA5973
/* YHWorkExpDataModel.swift */
,
);
);
path
=
M
;
path
=
M
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -1082,6 +1108,7 @@
...
@@ -1082,6 +1108,7 @@
A5FD63E32B678AC000D1D9DA
/* YHPreviewMainViewController.swift */
,
A5FD63E32B678AC000D1D9DA
/* YHPreviewMainViewController.swift */
,
A5FD63E52B67908000D1D9DA
/* YHPreviewControllerHoldViewController.swift */
,
A5FD63E52B67908000D1D9DA
/* YHPreviewControllerHoldViewController.swift */
,
A5167B322B6A3A2D0084C08F
/* YHPreviewBaseViewController.swift */
,
A5167B322B6A3A2D0084C08F
/* YHPreviewBaseViewController.swift */
,
A554A5032B96D04100EA5973
/* YHPreviewWorkExpViewController.swift */
,
A5FD63E72B67D8EA00D1D9DA
/* YHPreviewMainApplicantInfoViewController.swift */
,
A5FD63E72B67D8EA00D1D9DA
/* YHPreviewMainApplicantInfoViewController.swift */
,
A5FD63E92B67D95100D1D9DA
/* YHPreviewFamilyMemberViewController.swift */
,
A5FD63E92B67D95100D1D9DA
/* YHPreviewFamilyMemberViewController.swift */
,
A5191F632B89E926001069F7
/* YHPreviewOtherInformationViewController.swift */
,
A5191F632B89E926001069F7
/* YHPreviewOtherInformationViewController.swift */
,
...
@@ -1843,12 +1870,14 @@
...
@@ -1843,12 +1870,14 @@
A5FD63C52B637EE000D1D9DA
/* YHSubmitAllInfoCheckView.swift in Sources */
,
A5FD63C52B637EE000D1D9DA
/* YHSubmitAllInfoCheckView.swift in Sources */
,
A5ACE9442B4564F7002C94D2
/* Array+Extension.swift in Sources */
,
A5ACE9442B4564F7002C94D2
/* Array+Extension.swift in Sources */
,
0468D4282B50D4AF00CFB916
/* YHPrivacyAlertView.swift in Sources */
,
0468D4282B50D4AF00CFB916
/* YHPrivacyAlertView.swift in Sources */
,
046975102B96C13700A0CB66
/* YHClipperView.swift in Sources */
,
A58556C22B6C8412003746B2
/* YHScoreResultModel.swift in Sources */
,
A58556C22B6C8412003746B2
/* YHScoreResultModel.swift in Sources */
,
0468D47A2B68A08600CFB916
/* YHAddressPickViewTableViewCell.swift in Sources */
,
0468D47A2B68A08600CFB916
/* YHAddressPickViewTableViewCell.swift in Sources */
,
0468D4342B56587B00CFB916
/* YHOSSManager.swift in Sources */
,
0468D4342B56587B00CFB916
/* YHOSSManager.swift in Sources */
,
A596C3A42B84D9100067BBB8
/* YHOtherInfoSessionView.swift in Sources */
,
A596C3A42B84D9100067BBB8
/* YHOtherInfoSessionView.swift in Sources */
,
A5234E372B70802400A33433
/* YHBasicInfoCellModel.swift in Sources */
,
A5234E372B70802400A33433
/* YHBasicInfoCellModel.swift in Sources */
,
A5C382D12B5FAAB300C5E65C
/* YHContactItemModel.swift in Sources */
,
A5C382D12B5FAAB300C5E65C
/* YHContactItemModel.swift in Sources */
,
046975182B96EEB200A0CB66
/* YHResultBottomView.swift in Sources */
,
A5FD63EF2B68902400D1D9DA
/* YHPreviewInfoNameAndSubNameItemView.swift in Sources */
,
A5FD63EF2B68902400D1D9DA
/* YHPreviewInfoNameAndSubNameItemView.swift in Sources */
,
A5ACE9522B4564F7002C94D2
/* YHServiceCenterMainViewController.swift in Sources */
,
A5ACE9522B4564F7002C94D2
/* YHServiceCenterMainViewController.swift in Sources */
,
A5C5B2FD2B55361700A7C5D1
/* YHBannerModel.swift in Sources */
,
A5C5B2FD2B55361700A7C5D1
/* YHBannerModel.swift in Sources */
,
...
@@ -1856,6 +1885,7 @@
...
@@ -1856,6 +1885,7 @@
A5234E332B6F9CB700A33433
/* YHBasicInfoFillModel.swift in Sources */
,
A5234E332B6F9CB700A33433
/* YHBasicInfoFillModel.swift in Sources */
,
A5551FFE2B4C26CE00510980
/* YHBaseViewModel.swift in Sources */
,
A5551FFE2B4C26CE00510980
/* YHBaseViewModel.swift in Sources */
,
A596C39F2B84D9100067BBB8
/* YHOtherResidenceFillView.swift in Sources */
,
A596C39F2B84D9100067BBB8
/* YHOtherResidenceFillView.swift in Sources */
,
A554A5082B96F55900EA5973
/* YHWorkExpDataModel.swift in Sources */
,
A5C5B2F92B5515CE00A7C5D1
/* YHPageContentView.swift in Sources */
,
A5C5B2F92B5515CE00A7C5D1
/* YHPageContentView.swift in Sources */
,
A5C382CA2B5E1F4C00C5E65C
/* YHLoginTipsView.swift in Sources */
,
A5C382CA2B5E1F4C00C5E65C
/* YHLoginTipsView.swift in Sources */
,
A5FD63F12B68963200D1D9DA
/* YHPreviewInfoHoldView.swift in Sources */
,
A5FD63F12B68963200D1D9DA
/* YHPreviewInfoHoldView.swift in Sources */
,
...
@@ -1872,6 +1902,8 @@
...
@@ -1872,6 +1902,8 @@
04E86E322B81EA1000A35F4B
/* YHWorkItemAddView.swift in Sources */
,
04E86E322B81EA1000A35F4B
/* YHWorkItemAddView.swift in Sources */
,
A5C5B2FB2B5535DF00A7C5D1
/* YHHomeBannerView.swift in Sources */
,
A5C5B2FB2B5535DF00A7C5D1
/* YHHomeBannerView.swift in Sources */
,
A5F78C822B68F39600EEA170
/* YHPreviewInfoCell.swift in Sources */
,
A5F78C822B68F39600EEA170
/* YHPreviewInfoCell.swift in Sources */
,
046975122B96C77000A0CB66
/* YHClipperButton.swift in Sources */
,
0469750E2B96C0B900A0CB66
/* YHImageClipperViewController.swift in Sources */
,
A5ACE94B2B4564F7002C94D2
/* YHHUDRotatingImageView.swift in Sources */
,
A5ACE94B2B4564F7002C94D2
/* YHHUDRotatingImageView.swift in Sources */
,
041B52DD2B60A889007EBCEB
/* YHTest.swift in Sources */
,
041B52DD2B60A889007EBCEB
/* YHTest.swift in Sources */
,
04E86E0F2B70DE9400A35F4B
/* YHSpouseInfoContainerVC.swift in Sources */
,
04E86E0F2B70DE9400A35F4B
/* YHSpouseInfoContainerVC.swift in Sources */
,
...
@@ -1907,6 +1939,7 @@
...
@@ -1907,6 +1939,7 @@
04E86E2F2B81EA1000A35F4B
/* YHWorkExperienceListViewController.swift in Sources */
,
04E86E2F2B81EA1000A35F4B
/* YHWorkExperienceListViewController.swift in Sources */
,
042F88932B84AEF0008B60BD
/* YHQuestionInfo.swift in Sources */
,
042F88932B84AEF0008B60BD
/* YHQuestionInfo.swift in Sources */
,
A5ACE93F2B4564F7002C94D2
/* UIViewController+Extension.swift in Sources */
,
A5ACE93F2B4564F7002C94D2
/* UIViewController+Extension.swift in Sources */
,
046975162B96EB2200A0CB66
/* YHImageResultViewController.swift in Sources */
,
042FBBD62B67BDD500F9DE23
/* YHBrotherInfoVC.swift in Sources */
,
042FBBD62B67BDD500F9DE23
/* YHBrotherInfoVC.swift in Sources */
,
A5ACE9472B4564F7002C94D2
/* YHHUD.swift in Sources */
,
A5ACE9472B4564F7002C94D2
/* YHHUD.swift in Sources */
,
A5ACE9412B4564F7002C94D2
/* Dictionary+Extension.swift in Sources */
,
A5ACE9412B4564F7002C94D2
/* Dictionary+Extension.swift in Sources */
,
...
@@ -1941,6 +1974,7 @@
...
@@ -1941,6 +1974,7 @@
A5ACE9552B4564F7002C94D2
/* YHTabBarViewController.swift in Sources */
,
A5ACE9552B4564F7002C94D2
/* YHTabBarViewController.swift in Sources */
,
04E86E6C2B87374600A35F4B
/* YHCompanyModel.swift in Sources */
,
04E86E6C2B87374600A35F4B
/* YHCompanyModel.swift in Sources */
,
A5167B332B6A3A2D0084C08F
/* YHPreviewBaseViewController.swift in Sources */
,
A5167B332B6A3A2D0084C08F
/* YHPreviewBaseViewController.swift in Sources */
,
A554A5042B96D04100EA5973
/* YHPreviewWorkExpViewController.swift in Sources */
,
A5C5B3122B57B47D00A7C5D1
/* YHDavidCell0.swift in Sources */
,
A5C5B3122B57B47D00A7C5D1
/* YHDavidCell0.swift in Sources */
,
A5FD63FA2B68D95700D1D9DA
/* YHPersonInfoIdentityCardModel.swift in Sources */
,
A5FD63FA2B68D95700D1D9DA
/* YHPersonInfoIdentityCardModel.swift in Sources */
,
A50AB89B2B81E96E00C227DE
/* YHOtherInfoFillModel.swift in Sources */
,
A50AB89B2B81E96E00C227DE
/* YHOtherInfoFillModel.swift in Sources */
,
...
@@ -1968,6 +2002,7 @@
...
@@ -1968,6 +2002,7 @@
A5ACE9492B4564F7002C94D2
/* YHHUDSuccessView.swift in Sources */
,
A5ACE9492B4564F7002C94D2
/* YHHUDSuccessView.swift in Sources */
,
A58556BA2B6BCF1A003746B2
/* YHPersonInfoFillStepModel.swift in Sources */
,
A58556BA2B6BCF1A003746B2
/* YHPersonInfoFillStepModel.swift in Sources */
,
A5FD63D42B65F99500D1D9DA
/* YHScoreItemCell.swift in Sources */
,
A5FD63D42B65F99500D1D9DA
/* YHScoreItemCell.swift in Sources */
,
045DBF782B96FF5900992CAF
/* YHImageViewController.swift in Sources */
,
A5ACE9432B4564F7002C94D2
/* UILable+Extension.swift in Sources */
,
A5ACE9432B4564F7002C94D2
/* UILable+Extension.swift in Sources */
,
A596C3A02B84D9100067BBB8
/* YHOtherInfoFillCell.swift in Sources */
,
A596C3A02B84D9100067BBB8
/* YHOtherInfoFillCell.swift in Sources */
,
A5ACE9382B4564F7002C94D2
/* UIApplication+Extension.swift in Sources */
,
A5ACE9382B4564F7002C94D2
/* UIApplication+Extension.swift in Sources */
,
...
@@ -2001,6 +2036,7 @@
...
@@ -2001,6 +2036,7 @@
A5C5B3292B57CCBE00A7C5D1
/* YHDavidCell4.swift in Sources */
,
A5C5B3292B57CCBE00A7C5D1
/* YHDavidCell4.swift in Sources */
,
049A48A82B49417300D0C641
/* YHAboutUsViewController.swift in Sources */
,
049A48A82B49417300D0C641
/* YHAboutUsViewController.swift in Sources */
,
A5ACE9582B4564F7002C94D2
/* YHNoDataTipView.swift in Sources */
,
A5ACE9582B4564F7002C94D2
/* YHNoDataTipView.swift in Sources */
,
A554A5062B96D17B00EA5973
/* YHWorkExpInfoPreviewModel.swift in Sources */
,
04E86E592B84AD6200A35F4B
/* YHWorkExampleViewController.swift in Sources */
,
04E86E592B84AD6200A35F4B
/* YHWorkExampleViewController.swift in Sources */
,
042FBBBB2B62806D00F9DE23
/* YHCertificateInfoController.swift in Sources */
,
042FBBBB2B62806D00F9DE23
/* YHCertificateInfoController.swift in Sources */
,
044CC6272B8740340083FF76
/* YHCollegeNameCell.swift in Sources */
,
044CC6272B8740340083FF76
/* YHCollegeNameCell.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/C/YHInformationPerfectListVC.swift
View file @
170b6236
...
@@ -233,7 +233,7 @@ extension YHInformationPerfectListVC {
...
@@ -233,7 +233,7 @@ extension YHInformationPerfectListVC {
make
.
height
.
equalTo
(
48
)
make
.
height
.
equalTo
(
48
)
}
}
submitBtn
.
layoutIfNeeded
()
submitBtn
.
layoutIfNeeded
()
submitBtn
.
backgroundGradient
()
submitBtn
.
addYinHeGradualLayer
()
submitBtn
.
isHidden
=
hasSubmitFlag
submitBtn
.
isHidden
=
hasSubmitFlag
...
@@ -285,7 +285,7 @@ extension YHInformationPerfectListVC {
...
@@ -285,7 +285,7 @@ extension YHInformationPerfectListVC {
make
.
left
.
equalTo
(
submitHoldView
.
snp
.
centerX
)
.
offset
(
6
)
make
.
left
.
equalTo
(
submitHoldView
.
snp
.
centerX
)
.
offset
(
6
)
}
}
infoButton
.
layoutIfNeeded
()
infoButton
.
layoutIfNeeded
()
infoButton
.
backgroundGradient
()
infoButton
.
addYinHeGradualLayer
()
homeTableView
.
delegate
=
self
homeTableView
.
delegate
=
self
homeTableView
.
dataSource
=
self
homeTableView
.
dataSource
=
self
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/BaseInformation(基本资料)/V/YHBasicInfoFillBottomView.swift
View file @
170b6236
...
@@ -72,7 +72,7 @@ private extension YHBasicInfoFillBottomView {
...
@@ -72,7 +72,7 @@ private extension YHBasicInfoFillBottomView {
}
}
nextButton
.
layoutIfNeeded
()
nextButton
.
layoutIfNeeded
()
nextButton
.
backgroundGradient
()
nextButton
.
addYinHeGradualLayer
()
}
}
@objc
func
save
()
{
@objc
func
save
()
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/MainApplicantInformation(主申请人信息)/V/YHBottomNextView.swift
View file @
170b6236
...
@@ -66,7 +66,7 @@ class YHBottomNextView: UIView {
...
@@ -66,7 +66,7 @@ class YHBottomNextView: UIView {
nextButton
.
layoutIfNeeded
()
nextButton
.
layoutIfNeeded
()
nextButton
.
backgroundGradient
()
nextButton
.
addYinHeGradualLayer
()
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/MainApplicantInformation(主申请人信息)/V/YHImagePickerView.swift
View file @
170b6236
...
@@ -173,8 +173,6 @@ class YHImagePickerView: UIView {
...
@@ -173,8 +173,6 @@ class YHImagePickerView: UIView {
imagePicker
.
delegate
=
self
imagePicker
.
delegate
=
self
//设置来源
//设置来源
imagePicker
.
sourceType
=
.
camera
imagePicker
.
sourceType
=
.
camera
//允许编辑
imagePicker
.
allowsEditing
=
true
//打开相机
//打开相机
UIViewController
.
current
?
.
present
(
imagePicker
,
animated
:
true
,
completion
:
{
()
->
Void
in
UIViewController
.
current
?
.
present
(
imagePicker
,
animated
:
true
,
completion
:
{
()
->
Void
in
...
@@ -190,7 +188,6 @@ class YHImagePickerView: UIView {
...
@@ -190,7 +188,6 @@ class YHImagePickerView: UIView {
let
imagePicker
=
UIImagePickerController
()
let
imagePicker
=
UIImagePickerController
()
imagePicker
.
delegate
=
self
imagePicker
.
delegate
=
self
imagePicker
.
sourceType
=
.
photoLibrary
imagePicker
.
sourceType
=
.
photoLibrary
imagePicker
.
allowsEditing
=
true
// 这一句,开始调用图库
// 这一句,开始调用图库
UIViewController
.
current
?
.
present
(
imagePicker
,
animated
:
true
)
UIViewController
.
current
?
.
present
(
imagePicker
,
animated
:
true
)
}
}
...
@@ -304,7 +301,7 @@ extension YHImagePickerView: UINavigationControllerDelegate, UIImagePickerContro
...
@@ -304,7 +301,7 @@ extension YHImagePickerView: UINavigationControllerDelegate, UIImagePickerContro
"businessCode"
:
"4001001"
"businessCode"
:
"4001001"
]
]
// 创建MultipartFormData对象
// 创建MultipartFormData对象
var
multipartFormData
=
MultipartFormData
()
let
multipartFormData
=
MultipartFormData
()
// 将图片添加到multipartFormData中
// 将图片添加到multipartFormData中
multipartFormData
.
append
(
imageData
,
withName
:
"file"
,
fileName
:
"image.jpg"
,
mimeType
:
"image/jpeg"
)
multipartFormData
.
append
(
imageData
,
withName
:
"file"
,
fileName
:
"image.jpg"
,
mimeType
:
"image/jpeg"
)
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/MainApplicantInformation(主申请人信息)/V/YHMainInformationCardTableViewCell.swift
View file @
170b6236
...
@@ -279,10 +279,16 @@ class YHMainInformationCardTableViewCell: UITableViewCell {
...
@@ -279,10 +279,16 @@ class YHMainInformationCardTableViewCell: UITableViewCell {
@objc
func
frontImageClick
()
{
@objc
func
frontImageClick
()
{
if
type
==
.
identity
{
if
type
==
.
identity
{
if
viewModel
.
mainModel
.
certificates
.
cn_identity_card
.
img_front
.
count
!=
0
{
if
viewModel
.
mainModel
.
certificates
.
cn_identity_card
.
img_front
.
count
!=
0
{
let
vc
=
YHImageViewController
()
vc
.
imgString
=
viewModel
.
mainModel
.
certificates
.
cn_identity_card
.
img_front
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
return
return
}
}
}
else
{
}
else
{
if
viewModel
.
mainModel
.
certificates
.
hk_macao_pass
.
img_front
.
count
!=
0
{
if
viewModel
.
mainModel
.
certificates
.
hk_macao_pass
.
img_front
.
count
!=
0
{
let
vc
=
YHImageViewController
()
vc
.
imgString
=
viewModel
.
mainModel
.
certificates
.
hk_macao_pass
.
img_front
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
return
return
}
}
}
}
...
@@ -334,10 +340,16 @@ class YHMainInformationCardTableViewCell: UITableViewCell {
...
@@ -334,10 +340,16 @@ class YHMainInformationCardTableViewCell: UITableViewCell {
@objc
func
backSurfaceImageClick
()
{
@objc
func
backSurfaceImageClick
()
{
if
type
==
.
identity
{
if
type
==
.
identity
{
if
viewModel
.
mainModel
.
certificates
.
cn_identity_card
.
img_back
.
count
!=
0
{
if
viewModel
.
mainModel
.
certificates
.
cn_identity_card
.
img_back
.
count
!=
0
{
let
vc
=
YHImageViewController
()
vc
.
imgString
=
viewModel
.
mainModel
.
certificates
.
cn_identity_card
.
img_back
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
return
return
}
}
}
else
{
}
else
{
if
viewModel
.
mainModel
.
certificates
.
hk_macao_pass
.
img_back
.
count
!=
0
{
if
viewModel
.
mainModel
.
certificates
.
hk_macao_pass
.
img_back
.
count
!=
0
{
let
vc
=
YHImageViewController
()
vc
.
imgString
=
viewModel
.
mainModel
.
certificates
.
hk_macao_pass
.
img_back
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
return
return
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/PersonInfoList(个人信息预览)/C/YHPreviewControllerHoldViewController.swift
View file @
170b6236
...
@@ -75,7 +75,8 @@ class YHPreviewControllerHoldViewController: UIViewController {
...
@@ -75,7 +75,8 @@ class YHPreviewControllerHoldViewController: UIViewController {
arrItemVCs
.
append
(
vc
)
arrItemVCs
.
append
(
vc
)
}
}
do
{
do
{
let
vc
=
YHPreviewFamilyMemberViewController
()
//工作经验
let
vc
=
YHPreviewWorkExpViewController
()
arrItemVCs
.
append
(
vc
)
arrItemVCs
.
append
(
vc
)
}
}
do
{
do
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/PersonInfoList(个人信息预览)/C/YHPreviewMainViewController.swift
View file @
170b6236
...
@@ -212,20 +212,6 @@ extension YHPreviewMainViewController {
...
@@ -212,20 +212,6 @@ extension YHPreviewMainViewController {
make
.
right
.
equalTo
(
-
20.5
)
make
.
right
.
equalTo
(
-
20.5
)
}
}
}
}
// private func loadFirstItem() {
// DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
// self.homeTableView.es.stopPullToRefresh(ignoreDate: true,ignoreFooter: false)
// self.homeTableView.reloadData()
// }
// }
//
// private func loadFakeData() {
// DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
// self.homeTableView.es.stopLoadingMore()
// self.homeTableView.reloadData()
// }
// }
}
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
// MARK: - UITableViewDelegate 和 UITableViewDataSource
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/PersonInfoList(个人信息预览)/C/YHPreviewWorkExpViewController.swift
0 → 100644
View file @
170b6236
//
// YHPreviewWorkExpViewController.swift
// galaxy
//
// Created by davidhuangA on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
/*
*工作经验 预览
*/
class
YHPreviewWorkExpViewController
:
YHPreviewBaseViewController
{
private
let
previewVM
:
YHPreviewViewModel
=
YHPreviewViewModel
()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
loadData
()
}
}
private
extension
YHPreviewWorkExpViewController
{
func
setupUI
()
{
self
.
homeTableView
.
register
(
YHPreviewInfoCell
.
self
,
forCellReuseIdentifier
:
YHPreviewInfoCell
.
cellReuseIdentifier
)
self
.
homeTableView
.
reloadData
()
}
func
loadData
()
{
if
let
orderID
=
UserDefaults
.
standard
.
value
(
forKey
:
"orderIdForPreview"
)
{
previewVM
.
getPreviewForWorkExpInfo
(
params
:
[
"order_id"
:
orderID
])
{
success
,
error
in
if
success
==
true
{
}
else
{
}
self
.
homeTableView
.
reloadData
()
}
}
else
{
printLog
(
"error : orderID 为空"
)
}
}
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension
YHPreviewWorkExpViewController
{
override
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
return
previewVM
.
arrDataForWorkExpInfo
.
count
}
override
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHPreviewInfoCell
.
self
)
cell
.
selectionStyle
=
.
none
cell
.
model
=
previewVM
.
arrDataForWorkExpInfo
[
indexPath
.
row
]
return
cell
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/PersonInfoList(个人信息预览)/M/YHPreviewInfoSessionModel.swift
View file @
170b6236
...
@@ -14,10 +14,9 @@ enum YHPreviewInfoSessionModelType: Int {
...
@@ -14,10 +14,9 @@ enum YHPreviewInfoSessionModelType: Int {
case
idCardInfoType
=
1
//1-证件信息 类型
case
idCardInfoType
=
1
//1-证件信息 类型
case
idPictureType
=
2
//2-证件照片 类型
case
idPictureType
=
2
//2-证件照片 类型
case
questionAndAnswer
=
3
//3-问答 类型
case
questionAndAnswer
=
3
//3-问答 类型
case
workExp
=
4
//4-工作经验
}
}
struct
YHPreviewInfoSessionModel
{
struct
YHPreviewInfoSessionModel
{
var
cellType
:
YHPreviewInfoSessionModelType
=
.
countryInfoType
var
cellType
:
YHPreviewInfoSessionModelType
=
.
countryInfoType
var
cellTitle
:
String
=
""
var
cellTitle
:
String
=
""
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/PersonInfoList(个人信息预览)/M/YHWorkExpDataModel.swift
0 → 100644
View file @
170b6236
//
// YHWorkExpDataModel.swift
// galaxy
//
// Created by davidhuangA on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
struct
YHWorkExpDataModel
{
var
title
:
String
var
data
:
[
Any
]
=
[]
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/PersonInfoList(个人信息预览)/M/YHWorkExpInfoPreviewModel.swift
0 → 100644
View file @
170b6236
//
// WorkExpInfoPreviewModel.swift
// galaxy
//
// Created by davidhuangA on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
SmartCodable
class
YHWorkExpInfoPreviewModel
:
SmartCodable
{
var
list
:
[
WorkExpInfoPreviewDetailModel
]?
var
count
:
Int
=
0
required
init
()
{
}
}
class
WorkExpInfoPreviewDetailModel
:
SmartCodable
{
var
id
:
Int
=
0
var
order_id
:
Int
=
0
var
company_name
:
String
=
""
var
is_famous_enterprise
:
Int
=
0
var
duty
:
String
=
""
var
entry_time
:
String
=
""
var
departure_time
:
String
=
""
var
industry
:
String
=
""
var
location
:
AddressPreviewModel
?
var
location_aboard
:
Int
=
0
var
professional_level
:
Int
=
0
var
professional_other
:
String
=
""
var
position
:
String
=
""
var
remark
:
String
=
""
var
old_id
:
Int
=
0
var
created_at
:
String
=
""
var
updated_at
:
String
=
""
var
is_show
:
Int
=
1
//1.保存会显示到列表上
var
deleted_at
:
String
=
""
var
operator_name
:
String
=
""
var
operator_english_name
:
String
=
""
var
operator_id
:
Int
=
0
var
work_certificate
:
String
=
""
var
executives_certificate
:
String
=
""
var
is_executives
:
Int
=
0
var
wduty
:
String
=
""
var
highlights
:
String
=
""
var
file
:
[
WorkExpFilePreviewModel
]?
var
not_need_upload_file
:
Int
=
0
var
company_member_total
:
Int
=
0
var
administrative_level
:
Int
=
0
var
company_manage_total
:
Int
=
0
var
top_manager_start_at
:
String
=
""
var
top_manager_end_at
:
String
=
""
var
master_of_important_project
:
Int
=
0
var
match_listing
:
Int
=
0
var
is_synthetic
:
Int
=
0
var
step
:
Int
=
0
var
create_from_appid
:
Int
=
0
var
update_from_appid
:
Int
=
0
var
international_work_experience
:
Int
=
0
var
turnover
:
Int
=
0
var
business_nature
:
String
=
""
var
company_website
:
String
=
""
var
company_introduce
:
String
=
""
var
business_remark
:
String
=
""
var
is_project_introduction
:
Int
=
0
var
customer_center_id
:
Int
=
0
var
projects
:
[
ProjectPreviewModel
]?
required
init
()
{
}
}
class
WorkExpFilePreviewModel
:
SmartCodable
{
var
fileName
:
String
=
""
var
fileUrl
:
String
=
""
required
init
()
{
}
}
class
AddressPreviewModel
:
SmartCodable
{
var
area
:
[
String
]
=
[]
var
country
:
String
=
""
var
details
:
String
=
""
var
foreign
:
String
=
""
required
init
()
{
}
}
class
ProjectPreviewModel
:
SmartCodable
{
var
id
:
Int
=
0
var
order_id
:
Int
=
0
var
work_id
:
Int
=
0
var
project_name
:
String
=
""
var
project_start_time
:
String
=
""
var
project_end_time
:
String
=
""
var
project_highlights
:
String
=
""
var
update_from_appid
:
Int
=
0
var
create_from_appid
:
Int
=
0
var
customer_center_id
:
Int
=
0
var
created_at
:
String
=
""
var
updated_at
:
String
=
""
var
deleted_at
:
String
=
""
required
init
()
{
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/PersonInfoList(个人信息预览)/V/YHPreviewInfoCell.swift
View file @
170b6236
...
@@ -61,7 +61,6 @@ extension YHPreviewInfoCell {
...
@@ -61,7 +61,6 @@ extension YHPreviewInfoCell {
}
}
}
}
else
if
model
?
.
cellType
==
.
idCardInfoType
{
else
if
model
?
.
cellType
==
.
idCardInfoType
{
guard
let
model
=
model
else
{
return
}
guard
let
model
=
model
else
{
return
}
let
view
=
YHPreviewInfoCertificateInformationItemsView
(
frame
:
.
zero
)
let
view
=
YHPreviewInfoCertificateInformationItemsView
(
frame
:
.
zero
)
view
.
dataModel
=
model
view
.
dataModel
=
model
...
@@ -71,8 +70,6 @@ extension YHPreviewInfoCell {
...
@@ -71,8 +70,6 @@ extension YHPreviewInfoCell {
}
}
}
}
else
if
model
?
.
cellType
==
.
idPictureType
{
else
if
model
?
.
cellType
==
.
idPictureType
{
guard
let
model
=
model
else
{
return
}
guard
let
model
=
model
else
{
return
}
let
view
=
YHPreviewInfoCertificatePictureItemsView
(
frame
:
.
zero
)
let
view
=
YHPreviewInfoCertificatePictureItemsView
(
frame
:
.
zero
)
view
.
dataModel
=
model
view
.
dataModel
=
model
...
@@ -81,9 +78,7 @@ extension YHPreviewInfoCell {
...
@@ -81,9 +78,7 @@ extension YHPreviewInfoCell {
make
.
edges
.
equalTo
(
0
)
make
.
edges
.
equalTo
(
0
)
}
}
}
}
else
if
model
?
.
cellType
==
.
questionAndAnswer
{
else
if
model
?
.
cellType
==
.
questionAndAnswer
{
guard
let
model
=
model
else
{
return
}
guard
let
model
=
model
else
{
return
}
let
view
=
YHPreviewInfoQuestionAndAnswerItemsView
(
frame
:
.
zero
)
let
view
=
YHPreviewInfoQuestionAndAnswerItemsView
(
frame
:
.
zero
)
view
.
dataModel
=
model
view
.
dataModel
=
model
...
@@ -92,7 +87,9 @@ extension YHPreviewInfoCell {
...
@@ -92,7 +87,9 @@ extension YHPreviewInfoCell {
make
.
edges
.
equalTo
(
0
)
make
.
edges
.
equalTo
(
0
)
}
}
}
}
else
if
model
?
.
cellType
==
.
workExp
{
//工作经验
}
else
{
else
{
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/PersonInfoList(个人信息预览)/VM/YHPreviewViewModel.swift
View file @
170b6236
...
@@ -9,6 +9,10 @@
...
@@ -9,6 +9,10 @@
import
UIKit
import
UIKit
class
YHPreviewViewModel
:
YHBaseViewModel
{
class
YHPreviewViewModel
:
YHBaseViewModel
{
//工作经验
var
workExpInfoPreviewModel
:
YHWorkExpInfoPreviewModel
?
var
arrDataForWorkExpInfo
:
[
YHPreviewInfoSessionModel
]
=
[]
//学历/专业资格
//学历/专业资格
var
academicInfoPreviewModel
:
YHAcademicPreviewModel
?
var
academicInfoPreviewModel
:
YHAcademicPreviewModel
?
var
arrDataForAcademicInfo
:
[
YHPreviewInfoSessionModel
]
=
[]
var
arrDataForAcademicInfo
:
[
YHPreviewInfoSessionModel
]
=
[]
...
@@ -37,6 +41,33 @@ class YHPreviewViewModel: YHBaseViewModel {
...
@@ -37,6 +41,33 @@ class YHPreviewViewModel: YHBaseViewModel {
extension
YHPreviewViewModel
{
extension
YHPreviewViewModel
{
//工作经验 预览
func
getPreviewForWorkExpInfo
(
params
:[
String
:
Any
],
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
Preview
.
previewWorkExpInfoApi
let
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
params
)
{[
weak
self
]
json
,
code
in
guard
let
self
=
self
else
{
return
}
printLog
(
"model 是 ==>
\(
json
)
"
)
if
json
.
code
==
200
{
let
dic
=
json
.
data
as?
[
AnyHashable
:
Any
]
guard
let
resultModel
=
YHWorkExpInfoPreviewModel
.
deserialize
(
dict
:
dic
)
else
{
let
error
=
YHErrorModel
(
errorCode
:
YHErrorCode
.
dictParseError
.
rawValue
,
errorMsg
:
YHErrorCode
.
dictParseError
.
description
())
callBackBlock
(
false
,
error
)
return
}
workExpInfoPreviewModel
=
resultModel
installDataForWorkExpInfo
()
callBackBlock
(
true
,
nil
)
}
else
{
let
error
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBackBlock
(
false
,
error
)
}
}
failBlock
:
{
err
in
callBackBlock
(
false
,
err
)
}
}
//获取学历/专业 预览数据
//获取学历/专业 预览数据
func
getPreviewForAcademicInfo
(
params
:[
String
:
Any
],
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
func
getPreviewForAcademicInfo
(
params
:[
String
:
Any
],
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
Preview
.
previewAcademicAndProfessionalQualificationInfoApi
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
Preview
.
previewAcademicAndProfessionalQualificationInfoApi
...
@@ -182,6 +213,83 @@ extension YHPreviewViewModel {
...
@@ -182,6 +213,83 @@ extension YHPreviewViewModel {
}
}
private
extension
YHPreviewViewModel
{
private
extension
YHPreviewViewModel
{
//组装 工作经验 数据
func
installDataForWorkExpInfo
()
{
guard
let
model0
=
workExpInfoPreviewModel
else
{
return
}
arrDataForWorkExpInfo
.
removeAll
()
if
let
list
=
model0
.
list
,
list
.
isEmpty
==
false
{
for
(
index
,
model
)
in
list
.
enumerated
()
{
var
arr1
:
[
YHPreviewQuestionAndAnswerModel
]
=
[]
do
{
//1.基本信息
let
tmp1
=
YHPreviewQuestionAndAnswerModel
(
question
:
"用人单位:"
,
answer
:
model
.
company_name
)
let
tmp2
=
YHPreviewQuestionAndAnswerModel
(
question
:
"用人单位性质:"
,
answer
:
model
.
industry
)
let
tmp3
=
YHPreviewQuestionAndAnswerModel
(
question
:
"用人单位介绍:"
,
answer
:
model
.
company_introduce
)
let
tmp4
=
YHPreviewQuestionAndAnswerModel
(
question
:
"用人单位官网:"
,
answer
:
model
.
company_website
)
var
title
=
"-"
if
let
item
=
model
.
location
{
title
=
item
.
country
+
"-"
+
item
.
details
}
let
tmp5
=
YHPreviewQuestionAndAnswerModel
(
question
:
"工作地点:"
,
answer
:
title
)
let
tmp6
=
YHPreviewQuestionAndAnswerModel
(
question
:
"职位:"
,
answer
:
model
.
position
)
let
tmp7
=
YHPreviewQuestionAndAnswerModel
(
question
:
"入职年月:"
,
answer
:
model
.
entry_time
)
let
tmp8
=
YHPreviewQuestionAndAnswerModel
(
question
:
"离职年月:"
,
answer
:
model
.
departure_time
)
let
tmp9
=
YHPreviewQuestionAndAnswerModel
(
question
:
"工作证明文件:"
,
answer
:
model
.
work_certificate
)
let
tmp10
=
YHPreviewQuestionAndAnswerModel
(
question
:
"职责性质:"
,
answer
:
model
.
duty
)
title
=
model
.
international_work_experience
==
0
?
"否"
:
"是"
let
tmp11
=
YHPreviewQuestionAndAnswerModel
(
question
:
"相关工作是否属国际工作经验:"
,
answer
:
title
)
let
tmp12
=
YHPreviewQuestionAndAnswerModel
(
question
:
"企业人数规模:"
,
answer
:
String
(
model
.
company_member_total
))
let
tmp13
=
YHPreviewQuestionAndAnswerModel
(
question
:
"行政架构层级:"
,
answer
:
String
(
model
.
administrative_level
))
let
tmp14
=
YHPreviewQuestionAndAnswerModel
(
question
:
"下属管理人数:"
,
answer
:
String
(
model
.
company_manage_total
))
let
tmp15
=
YHPreviewQuestionAndAnswerModel
(
question
:
"公司营业额/港元(近一年):"
,
answer
:
String
(
model
.
turnover
))
let
tmp16
=
YHPreviewQuestionAndAnswerModel
(
question
:
"职业水平类别:"
,
answer
:
String
(
model
.
professional_level
))
arr1
.
append
(
contentsOf
:
[
tmp1
,
tmp2
,
tmp3
,
tmp4
,
tmp5
,
tmp6
,
tmp7
,
tmp8
,
tmp9
,
tmp10
,
tmp11
,
tmp12
,
tmp13
,
tmp14
,
tmp15
,
tmp16
])
}
let
dataModel1
=
YHWorkExpDataModel
(
title
:
""
,
data
:
arr1
)
var
arr2
:
[
YHPreviewQuestionAndAnswerModel
]
=
[]
do
{
//2.
let
tmp1
=
YHPreviewQuestionAndAnswerModel
(
question
:
"公司业务性质/范畴/所属行业:"
,
answer
:
model
.
business_nature
)
let
tmp2
=
YHPreviewQuestionAndAnswerModel
(
question
:
"工作职责:"
,
answer
:
model
.
wduty
)
let
tmp3
=
YHPreviewQuestionAndAnswerModel
(
question
:
"工作亮点:"
,
answer
:
model
.
highlights
)
arr2
.
append
(
contentsOf
:
[
tmp1
,
tmp2
,
tmp3
])
}
let
dataModel2
=
YHWorkExpDataModel
(
title
:
""
,
data
:
arr2
)
var
arr3
:
[
Any
]
=
[]
do
{
//3.项目介绍
if
let
items
=
model
.
projects
,
items
.
isEmpty
==
false
{
for
(
index
,
item
)
in
items
.
enumerated
()
{
let
tmp1
=
YHPreviewQuestionAndAnswerModel
(
question
:
"项目名称"
,
answer
:
item
.
project_name
)
let
title
=
item
.
project_start_time
+
"-"
+
item
.
project_end_time
let
tmp2
=
YHPreviewQuestionAndAnswerModel
(
question
:
"项目时间"
,
answer
:
title
)
let
tmp3
=
YHPreviewQuestionAndAnswerModel
(
question
:
"项目业绩/亮点"
,
answer
:
item
.
project_highlights
)
var
arrT
:
[
YHPreviewQuestionAndAnswerModel
]
=
[
tmp1
,
tmp2
,
tmp3
]
let
dataModelTemp
=
YHWorkExpDataModel
(
title
:
""
,
data
:
arrT
)
arr3
.
append
(
dataModelTemp
)
}
}
}
do
{
//4.简历/工作总结:
if
let
items
=
model
.
file
,
items
.
isEmpty
==
false
{
var
arrT
:
[
Any
]
=
[]
for
(
index
,
item
)
in
items
.
enumerated
()
{
arrT
.
append
(
item
)
}
}
}
}
}
}
//组装 学历/专业资格 数据
//组装 学历/专业资格 数据
func
installDataForAcademicInfo
()
{
func
installDataForAcademicInfo
()
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/C/YHImageClipperViewController.swift
0 → 100644
View file @
170b6236
//
// YHImageClipperViewController.swift
// galaxy
//
// Created by EDY on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
/*
let clipperVC = YHImageClipperViewController()
clipperVC.setBaseImg(image, resultImgSize: clippedImgSize!, type: clipperType)
clipperVC.cancelClippedHandler = {
}
clipperVC.successClippedHandler = {[weak self]img in
if self?.clippedImageHandler != nil{
self?.clippedImageHandler!(img)
}
}
self.pushViewController(clipperVC, animated: true)
*/
import
UIKit
class
YHImageClipperViewController
:
YHBaseViewController
{
typealias
CancelClippedHandlerBlock
=
()
->
Void
typealias
SuccessClippedHandlerBlock
=
(
_
content
:
String
)
->
Void
//MARK Public
public
var
cancelClippedHandler
:
CancelClippedHandlerBlock
?
public
var
successClippedHandler
:
SuccessClippedHandlerBlock
?
public
func
setBaseImg
(
_
baseImg
:
UIImage
,
resultImgSize
:
CGSize
,
type
:
YHClipperType
)
{
clipperView
=
YHClipperView
(
frame
:
CGRect
(
x
:
0
,
y
:
(
isIphoneX
()
?
88
:
64
),
width
:
KScreenWidth
,
height
:
KScreenHeight
-
k_Height_safeAreaInsetsBottom
()
-
54
-
(
isIphoneX
()
?
88
:
64
)))
clipperView
?
.
resultImgSize
=
resultImgSize
clipperView
?
.
baseImg
=
baseImg
clipperView
?
.
type
=
type
self
.
view
.
addSubview
(
clipperView
!
)
}
//MARK Private
private
var
clipperView
:
YHClipperView
?
private
var
cannalButton
:
YHClipperButton
!
private
var
backImageButton
:
YHClipperButton
!
private
var
sureButton
:
UIButton
!
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
view
.
backgroundColor
=
.
black
self
.
hidesBottomBarWhenPushed
=
true
if
#available(iOS 11.0, *)
{
}
else
{
self
.
automaticallyAdjustsScrollViewInsets
=
false
}
// Do any additional setup after loading the view.
setView
()
}
func
setView
()
{
sureButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
backgroundColor
=
UIColor
(
hex
:
0x2274ee
)
button
.
contentHorizontalAlignment
=
.
center
button
.
setTitle
(
"确认"
,
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xffffff
),
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
kCornerRadius6
button
.
clipsToBounds
=
true
button
.
addTarget
(
self
,
action
:
#selector(
sureBtnClick
)
,
for
:
.
touchUpInside
)
return
button
}()
view
.
addSubview
(
sureButton
)
sureButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
bottom
.
equalTo
(
-
10
-
k_Height_safeAreaInsetsBottom
())
make
.
height
.
equalTo
(
44
)
make
.
width
.
equalTo
(
93
)
}
cannalButton
=
{
let
button
=
YHClipperButton
()
button
.
setContent
(
"image_clipper_cannal"
,
"取消"
)
button
.
addTarget
(
self
,
action
:
#selector(
cannalBtnClick
)
,
for
:
.
touchUpInside
)
return
button
}()
view
.
addSubview
(
cannalButton
)
cannalButton
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalTo
(
sureButton
.
snp
.
centerY
)
make
.
left
.
equalTo
(
30
)
make
.
height
.
equalTo
(
44
)
make
.
width
.
equalTo
(
30
)
}
backImageButton
=
{
let
button
=
YHClipperButton
()
button
.
setContent
(
"image_clipper_back"
,
"复原"
)
button
.
addTarget
(
self
,
action
:
#selector(
backImageBtnClick
)
,
for
:
.
touchUpInside
)
return
button
}()
view
.
addSubview
(
backImageButton
)
backImageButton
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalTo
(
sureButton
.
snp
.
centerY
)
make
.
left
.
equalTo
(
80
)
make
.
height
.
equalTo
(
44
)
make
.
width
.
equalTo
(
30
)
}
}
@objc
private
func
cannalBtnClick
()
{
if
cancelClippedHandler
!=
nil
{
cancelClippedHandler
!
()
}
self
.
navigationController
?
.
popViewController
()
}
@objc
private
func
backImageBtnClick
()
{
// if cancelClippedHandler != nil {
// cancelClippedHandler!()
// }
}
@objc
private
func
sureBtnClick
()
{
let
clippedImg
=
self
.
clipperView
?
.
clipImg
()
let
vc
=
YHImageResultViewController
()
vc
.
img
=
clippedImg
vc
.
successHandlerBlock
=
{
[
weak
self
]
result
in
guard
let
self
=
self
else
{
return
}
if
successClippedHandler
!=
nil
{
successClippedHandler
!
(
result
)
}
}
self
.
navigationController
?
.
pushViewController
(
vc
)
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
navigationController
?
.
isNavigationBarHidden
=
false
}
override
func
didReceiveMemoryWarning
()
{
super
.
didReceiveMemoryWarning
()
// Dispose of any resources that can be recreated.
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/C/YHImageResultViewController.swift
0 → 100644
View file @
170b6236
//
// YHImageResultViewController.swift
// galaxy
//
// Created by EDY on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHImageResultViewController
:
YHBaseViewController
{
typealias
SuccessHandlerBlock
=
(
_
relult
:
String
)
->
Void
var
successHandlerBlock
:
SuccessHandlerBlock
?
var
resultView
:
UIImageView
!
var
bottomView
:
YHResultBottomView
!
var
img
:
UIImage
!
var
viewModel
:
YHWorkExperienceViewModel
!
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
viewModel
=
YHWorkExperienceViewModel
()
gk_navTitle
=
"照片"
setView
()
// Do any additional setup after loading the view.
}
func
setView
()
{
resultView
=
{
let
step
=
UIImageView
()
step
.
contentMode
=
.
scaleAspectFit
step
.
image
=
img
return
step
}()
view
.
addSubview
(
resultView
)
resultView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
left
.
right
.
equalTo
(
view
)
make
.
bottom
.
equalTo
(
-
k_Height_safeAreaInsetsBottom
()
-
54
)
}
bottomView
=
{
let
bottom
=
YHResultBottomView
()
bottom
.
nextblock
=
{[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
YHHUD
.
show
(
.
progress
(
message
:
""
))
self
.
viewModel
.
uploadImage
(
self
.
img
)
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
viewModel
.
getPublicImageUrl
(
url
)
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
viewModel
.
requestFileMessage
(
url
)
{[
weak
self
]
success
,
model
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
YHHUD
.
hide
()
if
let
block
=
self
.
successHandlerBlock
{
block
(
model
?
.
content
??
""
)
let
mineVC
=
YHWorkExperienceViewController
()
var
targetVC
:
UIViewController
!
for
controller
in
self
.
navigationController
!.
viewControllers
{
if
controller
.
isKind
(
of
:
mineVC
.
classForCoder
)
{
targetVC
=
controller
}
}
if
targetVC
!=
nil
{
self
.
navigationController
?
.
popToViewController
(
targetVC
,
animated
:
true
)
}
}
}
else
{
YHHUD
.
hide
()
YHHUD
.
flash
(
message
:
error
?
.
errorMsg
??
""
)
}
}
}
}
}
return
bottom
}()
view
.
addSubview
(
bottomView
)
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalTo
(
view
)
make
.
height
.
equalTo
(
k_Height_safeAreaInsetsBottom
()
+
64
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/C/YHImageViewController.swift
0 → 100644
View file @
170b6236
//
// YHImageViewController.swift
// galaxy
//
// Created by EDY on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHImageViewController
:
YHBaseViewController
{
var
resultView
:
UIImageView
!
var
resultButton
:
UIButton
!
var
imgString
:
String
!
var
viewModel
:
YHWorkExperienceViewModel
!
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
viewModel
=
YHWorkExperienceViewModel
()
view
.
backgroundColor
=
.
black
self
.
hidesBottomBarWhenPushed
=
true
if
#available(iOS 11.0, *)
{
}
else
{
self
.
automaticallyAdjustsScrollViewInsets
=
false
}
setView
()
getData
()
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
navigationController
?
.
isNavigationBarHidden
=
false
}
func
setView
()
{
resultView
=
{
let
step
=
UIImageView
()
step
.
contentMode
=
.
scaleAspectFit
return
step
}()
view
.
addSubview
(
resultView
)
resultView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
left
.
right
.
equalTo
(
view
)
make
.
bottom
.
equalTo
(
-
k_Height_safeAreaInsetsBottom
()
-
54
)
}
resultButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
addTarget
(
self
,
action
:
#selector(
back
)
,
for
:
.
touchUpInside
)
return
button
}()
view
.
addSubview
(
resultButton
)
resultButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
left
.
right
.
equalTo
(
view
)
make
.
bottom
.
equalTo
(
-
k_Height_safeAreaInsetsBottom
()
-
54
)
}
}
@objc
func
back
()
{
self
.
navigationController
?
.
popViewController
()
}
func
getData
()
{
self
.
viewModel
.
getPublicImageUrl
(
imgString
)
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
resultView
.
kf
.
setImage
(
with
:
URL
(
string
:
success
))
}
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/C/YHWorkExperienceViewController.swift
View file @
170b6236
...
@@ -238,27 +238,14 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -238,27 +238,14 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHHUD
.
show
(
.
progress
(
message
:
""
))
let
clipperVC
=
YHImageClipperViewController
()
self
.
viewModel
.
uploadImage
(
image
)
{[
weak
self
]
success
,
error
in
clipperVC
.
setBaseImg
(
image
,
resultImgSize
:
CGSize
(
width
:
300
,
height
:
300
),
type
:
.
Stay
)
clipperVC
.
successClippedHandler
=
{[
weak
self
]
result
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
viewModel
.
mainModel
.
wduty
=
result
self
.
viewModel
.
getPublicImageUrl
(
url
)
{[
weak
self
]
success
,
error
in
cell
.
dataSource
=
viewModel
.
mainModel
.
wduty
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
viewModel
.
requestFileMessage
(
url
)
{[
weak
self
]
success
,
model
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
YHHUD
.
hide
()
self
.
viewModel
.
mainModel
.
wduty
=
model
?
.
content
??
""
cell
.
dataSource
=
viewModel
.
mainModel
.
wduty
}
else
{
YHHUD
.
hide
()
YHHUD
.
flash
(
message
:
error
?
.
errorMsg
??
""
)
}
}
}
}
}
self
.
navigationController
?
.
pushViewController
(
clipperVC
,
animated
:
true
)
}
}
}
}
return
cell
return
cell
...
@@ -294,27 +281,14 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -294,27 +281,14 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHHUD
.
show
(
.
progress
(
message
:
""
))
let
clipperVC
=
YHImageClipperViewController
()
self
.
viewModel
.
uploadImage
(
image
)
{[
weak
self
]
success
,
error
in
clipperVC
.
setBaseImg
(
image
,
resultImgSize
:
CGSize
(
width
:
300
,
height
:
300
),
type
:
.
Stay
)
clipperVC
.
successClippedHandler
=
{[
weak
self
]
result
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
viewModel
.
mainModel
.
highlights
=
result
self
.
viewModel
.
getPublicImageUrl
(
url
)
{[
weak
self
]
success
,
error
in
cell
.
dataSource
=
viewModel
.
mainModel
.
highlights
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
viewModel
.
requestFileMessage
(
url
)
{[
weak
self
]
success
,
model
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
YHHUD
.
hide
()
self
.
viewModel
.
mainModel
.
highlights
=
model
?
.
content
??
""
cell
.
dataSource
=
viewModel
.
mainModel
.
highlights
}
else
{
YHHUD
.
hide
()
YHHUD
.
flash
(
message
:
error
?
.
errorMsg
??
""
)
}
}
}
}
}
self
.
navigationController
?
.
pushViewController
(
clipperVC
,
animated
:
true
)
}
}
}
}
return
cell
return
cell
...
@@ -455,6 +429,10 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -455,6 +429,10 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
return
return
}
}
}
}
}
else
{
let
vc
=
YHImageViewController
()
vc
.
imgString
=
model
.
fileUrl
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
}
}
}
return
cell
return
cell
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/C/YHWorkIntroductionViewController.swift
View file @
170b6236
...
@@ -205,27 +205,14 @@ class YHWorkIntroductionViewController: YHBaseViewController {
...
@@ -205,27 +205,14 @@ class YHWorkIntroductionViewController: YHBaseViewController {
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHHUD
.
show
(
.
progress
(
message
:
"加载中"
))
let
clipperVC
=
YHImageClipperViewController
()
self
.
viewModel
.
uploadImage
(
image
)
{[
weak
self
]
success
,
error
in
clipperVC
.
setBaseImg
(
image
,
resultImgSize
:
CGSize
(
width
:
300
,
height
:
300
),
type
:
.
Stay
)
clipperVC
.
successClippedHandler
=
{[
weak
self
]
result
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
dataSource
.
project_highlights
=
result
self
.
viewModel
.
getPublicImageUrl
(
url
)
{[
weak
self
]
success
,
error
in
self
.
messageTextField
.
text
=
result
guard
let
self
=
self
else
{
return
}
guard
let
url
=
success
else
{
return
}
self
.
viewModel
.
requestFileMessage
(
url
)
{[
weak
self
]
success
,
model
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
YHHUD
.
hide
()
self
.
dataSource
.
project_highlights
=
model
?
.
content
self
.
messageTextField
.
text
=
model
?
.
content
}
else
{
YHHUD
.
hide
()
YHHUD
.
flash
(
message
:
error
?
.
errorMsg
??
""
)
}
}
}
}
}
self
.
navigationController
?
.
pushViewController
(
clipperVC
,
animated
:
true
)
}
}
}
}
return
view
return
view
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/V/YHClipperButton.swift
0 → 100644
View file @
170b6236
//
// YHClipperButton.swift
// galaxy
//
// Created by EDY on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHClipperButton
:
UIButton
{
var
topImageView
:
UIImageView
!
var
bottomTitleLabel
:
UILabel
!
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setView
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setView
()
{
topImageView
=
{
let
view
=
UIImageView
()
return
view
}()
addSubview
(
topImageView
)
topImageView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
centerX
.
equalToSuperview
()
make
.
width
.
height
.
equalTo
(
21
)
}
bottomTitleLabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
PFSC_B
(
ofSize
:
11
)
label
.
textAlignment
=
.
center
label
.
textColor
=
UIColor
.
white
return
label
}()
addSubview
(
bottomTitleLabel
)
bottomTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalToSuperview
()
make
.
height
.
equalTo
(
15
)
}
}
func
setContent
(
_
image
:
String
,
_
title
:
String
)
{
bottomTitleLabel
.
text
=
title
topImageView
.
image
=
UIImage
(
named
:
image
)
}
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/V/YHClipperView.swift
0 → 100644
View file @
170b6236
//
// YHClipperView.swift
// galaxy
//
// Created by EDY on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
enum
YHClipperType
{
case
Move
case
Stay
}
class
YHClipperView
:
UIView
{
public
var
resultImgSize
:
CGSize
?{
didSet
{
self
.
setClipperView
()
}
}
public
var
type
:
YHClipperType
=
.
Move
public
var
baseImg
:
UIImage
?{
didSet
{
var
width
=
baseImg
?
.
size
.
width
??
0
var
height
=
baseImg
?
.
size
.
height
??
0
if
width
!=
self
.
frame
.
size
.
width
{
width
=
self
.
frame
.
size
.
width
}
height
=
(
baseImg
?
.
size
.
height
??
0
)
!
/
(
baseImg
?
.
size
.
width
??
0
)
!
*
width
if
height
<
(
self
.
clipperView
?
.
frame
.
size
.
height
??
0
)
!
{
height
=
(
self
.
clipperView
?
.
frame
.
size
.
height
??
0
)
!
}
width
=
(
baseImg
?
.
size
.
width
??
0
)
!
/
(
baseImg
?
.
size
.
height
??
0
)
!
*
height
let
img
=
baseImg
?
.
scaledToSize
(
newSize
:
CGSize
(
width
:
width
,
height
:
height
),
withScale
:
false
)
self
.
baseImgView
?
.
image
=
img
self
.
baseImgView
?
.
frame
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
(
img
?
.
size
.
width
)
!
,
height
:
(
img
?
.
size
.
height
)
!
)
correctBackImgView
()
}
}
private
let
minWidth
:
CGFloat
=
60
private
var
clipperView
:
UIImageView
?
private
lazy
var
baseImgView
:
UIImageView
?
=
{
let
baseImgView
=
UIImageView
()
self
.
addSubview
(
baseImgView
)
self
.
sendSubviewToBack
(
baseImgView
)
return
baseImgView
}()
private
lazy
var
fillLayer
:
CAShapeLayer
?
=
{
let
fillLayer
=
CAShapeLayer
()
fillLayer
.
fillRule
=
CAShapeLayerFillRule
.
evenOdd
fillLayer
.
fillColor
=
UIColor
.
black
.
cgColor
fillLayer
.
opacity
=
0.5
self
.
layer
.
addSublayer
(
fillLayer
)
return
fillLayer
}()
private
var
panTouch
:
CGPoint
?
private
var
scaleDistance
:
CGFloat
=
0
//缩放距离
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
loadSubViews
()
}
//MARK Public
public
func
clipImg
()
->
UIImage
{
let
scale
=
UIScreen
.
main
.
scale
*
(
self
.
baseImgView
?
.
image
?
.
size
.
width
)
!/
(
self
.
baseImgView
?
.
frame
.
size
.
width
)
!
let
rect
=
self
.
convert
((
self
.
clipperView
?
.
frame
)
!
,
to
:
self
.
baseImgView
)
let
rect2
=
CGRect
(
x
:
rect
.
origin
.
x
*
scale
,
y
:
rect
.
origin
.
y
*
scale
,
width
:
rect
.
size
.
width
*
scale
,
height
:
rect
.
size
.
height
*
scale
)
let
cgImg
=
self
.
baseImgView
?
.
image
?
.
cgImage
?
.
cropping
(
to
:
rect2
)
let
clippedImg
=
UIImage
.
init
(
cgImage
:
cgImg
!
)
return
clippedImg
}
private
func
loadSubViews
()
{
self
.
layer
.
contentsGravity
=
CALayerContentsGravity
.
resizeAspect
}
private
func
setClipperView
()
{
let
kscWidth
=
UIScreen
.
main
.
bounds
.
size
.
width
let
kscHeight
=
UIScreen
.
main
.
bounds
.
size
.
height
-
64
var
width
=
kscWidth
var
height
=
kscHeight
if
(
self
.
resultImgSize
?
.
width
)
!
>
((
self
.
resultImgSize
?
.
height
??
0
)
!
/
height
*
width
)
{
height
=
kscWidth
/
(
self
.
resultImgSize
?
.
width
??
0
)
!
*
(
self
.
resultImgSize
?
.
height
??
0
)
!
}
else
{
width
=
kscHeight
/
(
self
.
resultImgSize
?
.
height
??
0
)
!
*
(
self
.
resultImgSize
?
.
width
??
0
)
!
}
let
y
=
(
kscHeight
-
height
)
/
2
let
x
=
(
kscWidth
-
width
)
/
2
clipperView
=
UIImageView
(
frame
:
CGRect
(
x
:
x
,
y
:
y
,
width
:
width
,
height
:
height
))
clipperView
?
.
layer
.
borderColor
=
UIColor
.
white
.
cgColor
clipperView
?
.
layer
.
borderWidth
=
2
self
.
addSubview
(
clipperView
!
)
correctFillLayer
()
}
//MARK Touches (注意问题::::)
override
func
touchesBegan
(
_
touches
:
Set
<
UITouch
>
,
with
event
:
UIEvent
?)
{
let
allTouches
=
event
?
.
allTouches
switch
allTouches
?
.
count
{
case
1
?:
panTouch
=
allTouches
?
.
first
?
.
location
(
in
:
self
)
break
default
:
break
}
}
override
func
touchesMoved
(
_
touches
:
Set
<
UITouch
>
,
with
event
:
UIEvent
?)
{
self
.
willChangeValue
(
forKey
:
"crop"
)
let
allTouches
=
event
?
.
allTouches
switch
allTouches
?
.
count
{
case
1
?:
let
touchCurrent
=
allTouches
?
.
first
?
.
location
(
in
:
self
)
let
x
=
(
touchCurrent
?
.
x
??
0
)
!
-
(
panTouch
?
.
x
??
0
)
!
let
y
=
(
touchCurrent
?
.
y
??
0
)
!
-
(
panTouch
?
.
y
??
0
)
!
switch
type
{
case
.
Move
:
self
.
baseImgView
?
.
center
=
CGPoint
(
x
:
(
self
.
baseImgView
?
.
center
.
x
??
0
)
!
+
x
,
y
:
(
self
.
baseImgView
?
.
center
.
y
??
0
)
!
+
y
)
break
case
.
Stay
:
self
.
clipperView
?
.
center
=
CGPoint
(
x
:
(
self
.
clipperView
?
.
center
.
x
??
0
)
!
+
x
,
y
:
(
self
.
clipperView
?
.
center
.
y
??
0
)
!
+
y
)
break
}
panTouch
=
touchCurrent
break
case
2
?:
switch
type
{
case
.
Move
:
self
.
scaleView
(
self
.
baseImgView
!
,
touches
:
(
allTouches
!
as
NSSet
)
.
allObjects
)
break
case
.
Stay
:
self
.
scaleView
(
self
.
clipperView
!
,
touches
:
(
allTouches
!
as
NSSet
)
.
allObjects
)
break
}
break
default
:
break
}
correctFillLayer
()
}
override
func
touchesEnded
(
_
touches
:
Set
<
UITouch
>
,
with
event
:
UIEvent
?)
{
switch
type
{
case
.
Move
:
correctBackImgView
()
break
case
.
Stay
:
correctClipperView
()
break
}
}
//MARK Correct
private
func
correctBackImgView
(){
var
x
=
self
.
baseImgView
?
.
frame
.
origin
.
x
??
0
var
y
=
self
.
baseImgView
?
.
frame
.
origin
.
y
??
0
var
height
=
self
.
baseImgView
?
.
frame
.
size
.
height
??
0
var
width
=
self
.
baseImgView
?
.
frame
.
size
.
width
??
0
if
width
<
(
self
.
clipperView
?
.
frame
.
size
.
width
??
0
)
!
{
width
=
(
self
.
clipperView
?
.
frame
.
size
.
width
??
0
)
!
height
=
width
/
(
self
.
baseImgView
?
.
frame
.
size
.
width
??
0
)
!
*
height
}
if
height
<
(
self
.
clipperView
?
.
frame
.
size
.
height
??
0
)
!
{
height
=
(
self
.
clipperView
?
.
frame
.
size
.
height
??
0
)
!
width
=
height
/
(
self
.
baseImgView
?
.
frame
.
size
.
height
??
0
)
!
*
width
}
if
x
>
(
self
.
clipperView
?
.
frame
.
origin
.
x
??
0
)
!
{
x
=
(
self
.
clipperView
?
.
frame
.
origin
.
x
??
0
)
!
}
else
if
x
<
((
self
.
clipperView
?
.
frame
.
origin
.
x
??
0
)
!
+
(
self
.
clipperView
?
.
frame
.
size
.
width
??
0
)
!
-
width
){
x
=
(
self
.
clipperView
?
.
frame
.
origin
.
x
??
0
)
!
+
(
self
.
clipperView
?
.
frame
.
size
.
width
??
0
)
!
-
width
}
if
y
>
(
self
.
clipperView
?
.
frame
.
origin
.
y
??
0
)
!
{
y
=
(
self
.
clipperView
?
.
frame
.
origin
.
y
??
0
)
!
}
else
if
y
<
(
self
.
clipperView
?
.
frame
.
origin
.
y
??
0
)
!
+
(
self
.
clipperView
?
.
frame
.
size
.
height
??
0
)
!
-
height
{
y
=
(
self
.
clipperView
?
.
frame
.
origin
.
y
??
0
)
!
+
(
self
.
clipperView
?
.
frame
.
size
.
height
??
0
)
!
-
height
}
self
.
baseImgView
?
.
frame
=
CGRect
(
x
:
x
,
y
:
y
,
width
:
width
,
height
:
height
)
}
private
func
correctClipperView
(){
var
width
=
self
.
clipperView
?
.
frame
.
size
.
width
??
0
var
height
:
CGFloat
=
0.0
if
width
<
minWidth
{
width
=
minWidth
}
if
width
>
UIScreen
.
main
.
bounds
.
size
.
width
{
width
=
UIScreen
.
main
.
bounds
.
size
.
width
}
height
=
width
/
(
self
.
resultImgSize
?
.
width
??
0
)
!
*
(
self
.
resultImgSize
?
.
height
??
0
)
!
var
x
=
self
.
clipperView
?
.
frame
.
origin
.
x
??
0
var
y
=
self
.
clipperView
?
.
frame
.
origin
.
y
??
0
if
x
<
(
self
.
baseImgView
?
.
frame
.
origin
.
x
??
0
)
!
{
x
=
(
self
.
baseImgView
?
.
frame
.
origin
.
x
??
0
)
!
}
if
x
>
UIScreen
.
main
.
bounds
.
size
.
width
-
width
{
x
=
UIScreen
.
main
.
bounds
.
size
.
width
-
width
}
if
y
<
(
self
.
baseImgView
?
.
frame
.
origin
.
y
??
0
)
!
{
y
=
(
self
.
baseImgView
?
.
frame
.
origin
.
y
??
0
)
!
}
let
tempy
=
(
self
.
baseImgView
?
.
frame
.
origin
.
y
??
0
)
!
+
(
self
.
baseImgView
?
.
frame
.
size
.
height
??
0
)
!
-
(
self
.
clipperView
?
.
frame
.
size
.
height
??
0
)
!
if
y
>
tempy
{
y
=
(
self
.
baseImgView
?
.
frame
.
origin
.
y
??
0
)
!
+
(
self
.
baseImgView
?
.
frame
.
size
.
height
??
0
)
!
-
(
self
.
clipperView
?
.
frame
.
size
.
height
??
0
)
!
}
self
.
clipperView
?
.
frame
=
CGRect
(
x
:
x
,
y
:
y
,
width
:
width
,
height
:
height
)
correctFillLayer
()
}
private
func
correctFillLayer
()
{
let
path
=
UIBezierPath
.
init
(
roundedRect
:
self
.
bounds
,
cornerRadius
:
0
)
let
circlePath
=
UIBezierPath
.
init
(
roundedRect
:
(
clipperView
?
.
frame
)
!
,
cornerRadius
:
0
)
path
.
append
(
circlePath
)
path
.
usesEvenOddFillRule
=
true
self
.
fillLayer
?
.
path
=
path
.
cgPath
}
//MARK Correct
private
func
scaleView
(
_
view
:
UIView
,
touches
:
Array
<
Any
>
){
let
touch1
=
(
touches
[
0
]
as
AnyObject
)
.
location
(
in
:
self
)
let
touch2
=
(
touches
[
1
]
as
AnyObject
)
.
location
(
in
:
self
)
let
distance
=
self
.
distanceBetweenTwoPoints
(
touch1
,
toPoint
:
touch2
)
if
scaleDistance
>
0
{
var
imgFrame
=
view
.
frame
if
distance
>
scaleDistance
+
2
{
imgFrame
.
size
.
width
+=
10
scaleDistance
=
distance
}
if
distance
<
scaleDistance
-
2
{
imgFrame
.
size
.
width
-=
10
scaleDistance
=
distance
}
if
type
==
.
Stay
{
//图片不动
imgFrame
.
size
.
height
=
view
.
frame
.
size
.
height
*
imgFrame
.
size
.
width
/
view
.
frame
.
size
.
width
let
mainWidth
=
UIScreen
.
main
.
bounds
.
size
.
width
let
imgWidth
=
imgFrame
.
size
.
width
>
mainWidth
?
mainWidth
:
imgFrame
.
size
.
width
let
imgHeight
=
imgWidth
*
(
resultImgSize
?
.
height
??
0
)
/
(
resultImgSize
?
.
width
==
0
?
1
:
(
resultImgSize
?
.
width
??
1
)
!
)
let
addwidth
=
imgWidth
-
view
.
frame
.
size
.
width
let
addheight
=
imgHeight
-
view
.
frame
.
size
.
height
if
imgHeight
!=
0
&&
imgWidth
!=
0
{
view
.
frame
=
CGRect
(
x
:
imgFrame
.
origin
.
x
-
addwidth
/
2.0
,
y
:
imgFrame
.
origin
.
y
-
addheight
/
2.0
,
width
:
imgWidth
,
height
:
imgHeight
)
}
}
else
{
//图片移动
imgFrame
.
size
.
height
=
view
.
frame
.
size
.
height
*
imgFrame
.
size
.
width
/
view
.
frame
.
size
.
width
let
addwidth
=
imgFrame
.
size
.
width
-
view
.
frame
.
size
.
width
let
addheight
=
imgFrame
.
size
.
height
-
view
.
frame
.
size
.
height
let
cripWidth
=
imgFrame
.
size
.
width
-
(
clipperView
?
.
frame
.
width
??
0
)
let
cripHeight
=
imgFrame
.
size
.
height
-
(
clipperView
?
.
frame
.
height
??
0
)
if
imgFrame
.
size
.
width
!=
0
&&
imgFrame
.
size
.
height
!=
0
&&
cripWidth
>
-
5
&&
cripHeight
>
-
5
{
view
.
frame
=
CGRect
(
x
:
imgFrame
.
origin
.
x
-
addwidth
/
2.0
,
y
:
imgFrame
.
origin
.
y
-
addheight
/
2.0
,
width
:
imgFrame
.
width
,
height
:
imgFrame
.
height
)
}
}
}
else
{
scaleDistance
=
distance
}
}
private
func
distanceBetweenTwoPoints
(
_
fromPoint
:
CGPoint
,
toPoint
:
CGPoint
)
->
CGFloat
{
let
x
=
toPoint
.
x
-
fromPoint
.
x
let
y
=
toPoint
.
y
-
fromPoint
.
y
return
CGFloat
(
sqrtf
(
Float
(
x
*
x
+
y
*
y
)))
}
required
init
?(
coder
aDecoder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
}
extension
UIImage
{
func
scaledToSize
(
newSize
:
CGSize
,
withScale
:
Bool
)
->
UIImage
{
var
scale
:
CGFloat
=
1
if
withScale
{
scale
=
UIScreen
.
main
.
scale
}
let
mynewSize
=
CGSize
(
width
:
newSize
.
width
*
scale
,
height
:
newSize
.
height
*
scale
)
UIGraphicsBeginImageContextWithOptions
(
mynewSize
,
false
,
0
)
self
.
draw
(
in
:
CGRect
(
origin
:
CGPoint
.
zero
,
size
:
mynewSize
))
let
newImage
=
UIGraphicsGetImageFromCurrentImageContext
()
UIGraphicsEndImageContext
()
return
newImage
??
UIImage
()
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/V/YHResultBottomView.swift
0 → 100644
View file @
170b6236
//
// YHResultBottomView.swift
// galaxy
//
// Created by EDY on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHResultBottomView
:
UIView
{
typealias
Block
=
()
->
()
var
nextblock
:
Block
?
var
nextButton
:
UIButton
!
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
backgroundColor
=
.
white
setUpView
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setUpView
()
{
nextButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
backgroundColor
=
UIColor
(
hex
:
0x2274ee
)
button
.
contentHorizontalAlignment
=
.
center
button
.
setTitle
(
"开始识别"
,
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xffffff
),
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
kCornerRadius6
button
.
clipsToBounds
=
true
button
.
addTarget
(
self
,
action
:
#selector(
goNext
)
,
for
:
.
touchUpInside
)
return
button
}()
addSubview
(
nextButton
)
nextButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
10
)
make
.
height
.
equalTo
(
44
)
make
.
left
.
equalTo
(
16
)
}
// nextButton.layoutIfNeeded()
// nextButton.backgroundGradient()
// nextButton.addYinHeGradualLayer()
}
@objc
func
goNext
()
{
if
let
block
=
nextblock
{
block
()
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/V/YHWorkResponsibilitiesTableViewCell.swift
View file @
170b6236
...
@@ -187,7 +187,6 @@ extension YHWorkResponsibilitiesTableViewCell: UITextViewDelegate {
...
@@ -187,7 +187,6 @@ extension YHWorkResponsibilitiesTableViewCell: UITextViewDelegate {
func
textView
(
_
textView
:
UITextView
,
shouldChangeTextIn
range
:
NSRange
,
replacementText
text
:
String
)
->
Bool
{
func
textView
(
_
textView
:
UITextView
,
shouldChangeTextIn
range
:
NSRange
,
replacementText
text
:
String
)
->
Bool
{
let
newLength
=
(
textView
.
text
as
NSString
)
.
length
+
text
.
count
-
range
.
length
let
newLength
=
(
textView
.
text
as
NSString
)
.
length
+
text
.
count
-
range
.
length
return
newLength
<=
2000
return
newLength
<=
2000
}
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/V/YHInformationFillTipsAlertView.swift
View file @
170b6236
...
@@ -120,7 +120,7 @@ class YHInformationFillTipsAlertView: UIView {
...
@@ -120,7 +120,7 @@ class YHInformationFillTipsAlertView: UIView {
make
.
height
.
equalTo
(
48
)
make
.
height
.
equalTo
(
48
)
}
}
checkBtn
.
layoutIfNeeded
()
//非常重要!!!!
checkBtn
.
layoutIfNeeded
()
//非常重要!!!!
checkBtn
.
backgroundGradient
()
checkBtn
.
addYinHeGradualLayer
()
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/V/YHLoginTipsView.swift
View file @
170b6236
...
@@ -88,7 +88,7 @@ class YHLoginTipsView: UIView {
...
@@ -88,7 +88,7 @@ class YHLoginTipsView: UIView {
loginBtn
.
addTarget
(
self
,
action
:
#selector(
clickLoginBtn
)
,
for
:
.
touchUpInside
)
loginBtn
.
addTarget
(
self
,
action
:
#selector(
clickLoginBtn
)
,
for
:
.
touchUpInside
)
loginBtn
.
layoutIfNeeded
()
loginBtn
.
layoutIfNeeded
()
loginBtn
.
backgroundGradient
()
loginBtn
.
addYinHeGradualLayer
()
}
}
required
init
?(
coder
:
NSCoder
)
{
required
init
?(
coder
:
NSCoder
)
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/V/YHSubmintAllInfoSuccessTipView.swift
View file @
170b6236
...
@@ -184,7 +184,7 @@ class YHSubmintAllInfoSuccessTipView: UIView {
...
@@ -184,7 +184,7 @@ class YHSubmintAllInfoSuccessTipView: UIView {
make
.
height
.
equalTo
(
45
)
make
.
height
.
equalTo
(
45
)
}
}
agreeButton
.
layoutIfNeeded
()
agreeButton
.
layoutIfNeeded
()
agreeButton
.
backgroundGradient
()
agreeButton
.
addYinHeGradualLayer
()
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/V/YHSubmitAllInfoCheckView.swift
View file @
170b6236
...
@@ -128,7 +128,8 @@ class YHSubmitAllInfoCheckView: UIView {
...
@@ -128,7 +128,8 @@ class YHSubmitAllInfoCheckView: UIView {
make
.
height
.
equalTo
(
45
)
make
.
height
.
equalTo
(
45
)
}
}
agreeButton
.
layoutIfNeeded
()
agreeButton
.
layoutIfNeeded
()
agreeButton
.
backgroundGradient
()
agreeButton
.
addYinHeGradualLayer
()
agreeButton
.
addYinHeGradualLayer
()
}
}
...
...
galaxy/galaxy/Classes/Tools/Extention/UIButton+Extension.swift
View file @
170b6236
...
@@ -100,33 +100,6 @@ extension UIButton {
...
@@ -100,33 +100,6 @@ extension UIButton {
}
}
}
}
extension
UIButton
{
/// 渐变背景
@discardableResult
func
backgroundGradient
<
T
:
UIButton
>
()
->
T
{
let
gradientLayer
=
CAGradientLayer
()
//几个颜色
gradientLayer
.
colors
=
UIColor
.
arrBrandGradaterColors
.
map
{
$0
.
cgColor
}
//颜色的分界点
gradientLayer
.
locations
=
[
0
,
1.0
]
//开始
gradientLayer
.
startPoint
=
CGPoint
(
x
:
0.12
,
y
:
0.25
)
//结束,主要是控制渐变方向
gradientLayer
.
endPoint
=
CGPoint
(
x
:
0.38
,
y
:
0.25
)
//多大区域
gradientLayer
.
frame
=
bounds
UIGraphicsBeginImageContext
(
gradientLayer
.
frame
.
size
)
if
let
context
=
UIGraphicsGetCurrentContext
()
{
gradientLayer
.
render
(
in
:
context
)
let
outputImage
=
UIGraphicsGetImageFromCurrentImageContext
()
UIGraphicsEndImageContext
()
setBackgroundImage
(
outputImage
,
for
:
.
normal
)
}
return
self
as!
T
}
}
// 扩大点击范围
// 扩大点击范围
extension
UIButton
{
extension
UIButton
{
...
...
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
170b6236
...
@@ -165,5 +165,7 @@ class YHAllApiName {
...
@@ -165,5 +165,7 @@ class YHAllApiName {
static
let
previewFamilyInfoApi
=
"infoflow/information/family"
static
let
previewFamilyInfoApi
=
"infoflow/information/family"
//学历/专业资格
//学历/专业资格
static
let
previewAcademicAndProfessionalQualificationInfoApi
=
"infoflow/education/preview"
static
let
previewAcademicAndProfessionalQualificationInfoApi
=
"infoflow/education/preview"
//工作经验
static
let
previewWorkExpInfoApi
=
"infoflow/work/preview"
}
}
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/工作经验/image_clipper_back.imageset/Contents.json
0 → 100644
View file @
170b6236
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"image_clipper_back@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"image_clipper_back@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/工作经验/image_clipper_back.imageset/image_clipper_back@2x.png
0 → 100644
View file @
170b6236
1.04 KB
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/工作经验/image_clipper_back.imageset/image_clipper_back@3x.png
0 → 100644
View file @
170b6236
1.65 KB
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/工作经验/image_clipper_cannal.imageset/Contents.json
0 → 100644
View file @
170b6236
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"image_clipper_cannal@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"image_clipper_cannal@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/工作经验/image_clipper_cannal.imageset/image_clipper_cannal@2x.png
0 → 100644
View file @
170b6236
566 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/工作经验/image_clipper_cannal.imageset/image_clipper_cannal@3x.png
0 → 100644
View file @
170b6236
899 Bytes
pete谢兆麟
@pete
mentioned in commit
ab4fbb8c
·
Mar 05, 2024
mentioned in commit
ab4fbb8c
mentioned in commit ab4fbb8cae0fa7a24c8c9c38ca5c129890212dfb
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment