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
41597cdd
Commit
41597cdd
authored
Nov 16, 2024
by
Alex朱枝文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优才收入记录UI相关
parent
8d355ba5
Changes
38
Show whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
3209 additions
and
0 deletions
+3209
-0
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+120
-0
YHGCIncomeRecordAndWorkExperienceVC.swift
...eRecord(收入记录)/C/YHGCIncomeRecordAndWorkExperienceVC.swift
+277
-0
YHIncomeRecordViewController.swift
...)/IncomeRecord(收入记录)/C/YHIncomeRecordViewController.swift
+239
-0
YHIncomeRecordWorkExperienceViewController.swift
...(收入记录)/C/YHIncomeRecordWorkExperienceViewController.swift
+239
-0
YHIncomeTypeSelectViewController.swift
...comeRecord(收入记录)/C/YHIncomeTypeSelectViewController.swift
+237
-0
YHIncomeTypeSelectModel.swift
...的信息流程)/IncomeRecord(收入记录)/M/YHIncomeTypeSelectModel.swift
+20
-0
YHAddIncomeRecordCell.swift
...(我的信息流程)/IncomeRecord(收入记录)/V/YHAddIncomeRecordCell.swift
+48
-0
YHEmploymentVerificationAvailableCell.swift
...ecord(收入记录)/V/YHEmploymentVerificationAvailableCell.swift
+108
-0
YHIncomeDocumentationConfirmationCell.swift
...ecord(收入记录)/V/YHIncomeDocumentationConfirmationCell.swift
+260
-0
YHIncomeInputMoneyCell.swift
...我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeInputMoneyCell.swift
+185
-0
YHIncomeItemOccupyingCell.swift
...息流程)/IncomeRecord(收入记录)/V/YHIncomeItemOccupyingCell.swift
+94
-0
YHIncomeRecordFromCell.swift
...我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeRecordFromCell.swift
+95
-0
YHIncomeRecordItemCell.swift
...我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeRecordItemCell.swift
+148
-0
YHIncomeRecordSummaryCell.swift
...息流程)/IncomeRecord(收入记录)/V/YHIncomeRecordSummaryCell.swift
+108
-0
YHIncomeRemarkCell.swift
...ess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeRemarkCell.swift
+66
-0
YHIncomeTypePopViewSelectCell.swift
.../IncomeRecord(收入记录)/V/YHIncomeTypePopViewSelectCell.swift
+81
-0
YHIncomeTypeSelectCell.swift
...我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeTypeSelectCell.swift
+110
-0
YHIncomeTypesCell.swift
...cess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeTypesCell.swift
+145
-0
YHInfoConsentForHKTravelCell.swift
...)/IncomeRecord(收入记录)/V/YHInfoConsentForHKTravelCell.swift
+200
-0
YHTotalIncomeCell.swift
...cess(我的信息流程)/IncomeRecord(收入记录)/V/YHTotalIncomeCell.swift
+85
-0
YHWorkingHourHeaderCell.swift
...的信息流程)/IncomeRecord(收入记录)/V/YHWorkingHourHeaderCell.swift
+62
-0
YHWorkingHoursStatementCell.swift
...程)/IncomeRecord(收入记录)/V/YHWorkingHoursStatementCell.swift
+166
-0
Contents.json
...laxy/Res/Assets.xcassets/ServiceCenter/收入记录/Contents.json
+6
-0
Contents.json
...ServiceCenter/收入记录/income_item_add.imageset/Contents.json
+22
-0
gc_income_item_add@2x.png
...r/收入记录/income_item_add.imageset/gc_income_item_add@2x.png
+0
-0
gc_income_item_add@3x.png
...r/收入记录/income_item_add.imageset/gc_income_item_add@3x.png
+0
-0
Contents.json
...enter/收入记录/income_type_check_btn_0.imageset/Contents.json
+22
-0
income_type_check_btn_0@2x.png
..._type_check_btn_0.imageset/income_type_check_btn_0@2x.png
+0
-0
income_type_check_btn_0@3x.png
..._type_check_btn_0.imageset/income_type_check_btn_0@3x.png
+0
-0
Contents.json
...enter/收入记录/income_type_check_btn_1.imageset/Contents.json
+22
-0
income_type_check_btn_1@2x.png
..._type_check_btn_1.imageset/income_type_check_btn_1@2x.png
+0
-0
income_type_check_btn_1@3x.png
..._type_check_btn_1.imageset/income_type_check_btn_1@3x.png
+0
-0
Contents.json
...rviceCenter/收入记录/income_type_close.imageset/Contents.json
+22
-0
income_type_close@2x.png
.../收入记录/income_type_close.imageset/income_type_close@2x.png
+0
-0
income_type_close@3x.png
.../收入记录/income_type_close.imageset/income_type_close@3x.png
+0
-0
Contents.json
...ssets/ServiceCenter/收入记录/red_dot_6.imageset/Contents.json
+22
-0
gc_red_dot@2x.png
...s/ServiceCenter/收入记录/red_dot_6.imageset/gc_red_dot@2x.png
+0
-0
gc_red_dot@3x.png
...s/ServiceCenter/收入记录/red_dot_6.imageset/gc_red_dot@3x.png
+0
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
41597cdd
...
@@ -599,6 +599,26 @@
...
@@ -599,6 +599,26 @@
04B360F52C646844001EB053
/* YHPrincipleApprovedMailViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B360F42C646844001EB053
/* YHPrincipleApprovedMailViewController.swift */
;
};
04B360F52C646844001EB053
/* YHPrincipleApprovedMailViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B360F42C646844001EB053
/* YHPrincipleApprovedMailViewController.swift */
;
};
04B360F72C646B4F001EB053
/* YHPrincipleEnvelopeModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B360F62C646B4F001EB053
/* YHPrincipleEnvelopeModel.swift */
;
};
04B360F72C646B4F001EB053
/* YHPrincipleEnvelopeModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B360F62C646B4F001EB053
/* YHPrincipleEnvelopeModel.swift */
;
};
04B401802CDB4B3C005C61A9
/* YHTalentProgramEvaluationView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4017F2CDB4B3B005C61A9
/* YHTalentProgramEvaluationView.swift */
;
};
04B401802CDB4B3C005C61A9
/* YHTalentProgramEvaluationView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4017F2CDB4B3B005C61A9
/* YHTalentProgramEvaluationView.swift */
;
};
04B401D12CE6E6C8005C61A9
/* YHIncomeRecordSummaryCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401C92CE6E6C8005C61A9
/* YHIncomeRecordSummaryCell.swift */
;
};
04B401D22CE6E6C8005C61A9
/* YHIncomeRecordViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401C22CE6E6C8005C61A9
/* YHIncomeRecordViewController.swift */
;
};
04B401D32CE6E6C8005C61A9
/* YHEmploymentVerificationAvailableCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401C62CE6E6C8005C61A9
/* YHEmploymentVerificationAvailableCell.swift */
;
};
04B401D42CE6E6C8005C61A9
/* YHWorkingHoursStatementCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401CD2CE6E6C8005C61A9
/* YHWorkingHoursStatementCell.swift */
;
};
04B401D52CE6E6C8005C61A9
/* YHInfoConsentForHKTravelCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401CA2CE6E6C8005C61A9
/* YHInfoConsentForHKTravelCell.swift */
;
};
04B401D62CE6E6C8005C61A9
/* YHWorkingHourHeaderCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401CC2CE6E6C8005C61A9
/* YHWorkingHourHeaderCell.swift */
;
};
04B401D72CE6E6C8005C61A9
/* YHIncomeRecordItemCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401C82CE6E6C8005C61A9
/* YHIncomeRecordItemCell.swift */
;
};
04B401D82CE6E6C8005C61A9
/* YHAddIncomeRecordCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401C52CE6E6C8005C61A9
/* YHAddIncomeRecordCell.swift */
;
};
04B401D92CE6E6C8005C61A9
/* YHIncomeItemOccupyingCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401C72CE6E6C8005C61A9
/* YHIncomeItemOccupyingCell.swift */
;
};
04B401DA2CE6E6C8005C61A9
/* YHTotalIncomeCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401CB2CE6E6C8005C61A9
/* YHTotalIncomeCell.swift */
;
};
04B401DC2CE729F2005C61A9
/* YHIncomeRecordWorkExperienceViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401DB2CE729F2005C61A9
/* YHIncomeRecordWorkExperienceViewController.swift */
;
};
04B401DE2CE73308005C61A9
/* YHIncomeRecordFromCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401DD2CE73308005C61A9
/* YHIncomeRecordFromCell.swift */
;
};
04B401E02CE738C0005C61A9
/* YHIncomeTypeSelectCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401DF2CE738C0005C61A9
/* YHIncomeTypeSelectCell.swift */
;
};
04B401E22CE746F4005C61A9
/* YHIncomeTypesCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401E12CE746F4005C61A9
/* YHIncomeTypesCell.swift */
;
};
04B401E42CE76B10005C61A9
/* YHIncomeInputMoneyCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401E32CE76B10005C61A9
/* YHIncomeInputMoneyCell.swift */
;
};
04B401E62CE83C74005C61A9
/* YHIncomeRemarkCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401E52CE83C74005C61A9
/* YHIncomeRemarkCell.swift */
;
};
04B401E82CE83FBD005C61A9
/* YHIncomeDocumentationConfirmationCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401E72CE83FBD005C61A9
/* YHIncomeDocumentationConfirmationCell.swift */
;
};
04B401EA2CE848E6005C61A9
/* YHIncomeTypeSelectViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401E92CE848E6005C61A9
/* YHIncomeTypeSelectViewController.swift */
;
};
04B401EC2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401EB2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift */
;
};
04B401EE2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401ED2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift */
;
};
04B4B8D52C89CE5E00ED82BC
/* YHButlerServiceMessage.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8D42C89CE5E00ED82BC
/* YHButlerServiceMessage.swift */
;
};
04B4B8D52C89CE5E00ED82BC
/* YHButlerServiceMessage.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8D42C89CE5E00ED82BC
/* YHButlerServiceMessage.swift */
;
};
04B4B8D72C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8D62C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift */
;
};
04B4B8D72C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8D62C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift */
;
};
04B4B8DC2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8DB2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift */
;
};
04B4B8DC2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8DB2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift */
;
};
...
@@ -1581,6 +1601,26 @@
...
@@ -1581,6 +1601,26 @@
04B360F42C646844001EB053
/* YHPrincipleApprovedMailViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPrincipleApprovedMailViewController.swift
;
sourceTree
=
"<group>"
;
};
04B360F42C646844001EB053
/* YHPrincipleApprovedMailViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPrincipleApprovedMailViewController.swift
;
sourceTree
=
"<group>"
;
};
04B360F62C646B4F001EB053
/* YHPrincipleEnvelopeModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPrincipleEnvelopeModel.swift
;
sourceTree
=
"<group>"
;
};
04B360F62C646B4F001EB053
/* YHPrincipleEnvelopeModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPrincipleEnvelopeModel.swift
;
sourceTree
=
"<group>"
;
};
04B4017F2CDB4B3B005C61A9
/* YHTalentProgramEvaluationView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHTalentProgramEvaluationView.swift
;
sourceTree
=
"<group>"
;
};
04B4017F2CDB4B3B005C61A9
/* YHTalentProgramEvaluationView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHTalentProgramEvaluationView.swift
;
sourceTree
=
"<group>"
;
};
04B401C22CE6E6C8005C61A9
/* YHIncomeRecordViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRecordViewController.swift
;
sourceTree
=
"<group>"
;
};
04B401C52CE6E6C8005C61A9
/* YHAddIncomeRecordCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHAddIncomeRecordCell.swift
;
sourceTree
=
"<group>"
;
};
04B401C62CE6E6C8005C61A9
/* YHEmploymentVerificationAvailableCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHEmploymentVerificationAvailableCell.swift
;
sourceTree
=
"<group>"
;
};
04B401C72CE6E6C8005C61A9
/* YHIncomeItemOccupyingCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeItemOccupyingCell.swift
;
sourceTree
=
"<group>"
;
};
04B401C82CE6E6C8005C61A9
/* YHIncomeRecordItemCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRecordItemCell.swift
;
sourceTree
=
"<group>"
;
};
04B401C92CE6E6C8005C61A9
/* YHIncomeRecordSummaryCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRecordSummaryCell.swift
;
sourceTree
=
"<group>"
;
};
04B401CA2CE6E6C8005C61A9
/* YHInfoConsentForHKTravelCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHInfoConsentForHKTravelCell.swift
;
sourceTree
=
"<group>"
;
};
04B401CB2CE6E6C8005C61A9
/* YHTotalIncomeCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHTotalIncomeCell.swift
;
sourceTree
=
"<group>"
;
};
04B401CC2CE6E6C8005C61A9
/* YHWorkingHourHeaderCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkingHourHeaderCell.swift
;
sourceTree
=
"<group>"
;
};
04B401CD2CE6E6C8005C61A9
/* YHWorkingHoursStatementCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkingHoursStatementCell.swift
;
sourceTree
=
"<group>"
;
};
04B401DB2CE729F2005C61A9
/* YHIncomeRecordWorkExperienceViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRecordWorkExperienceViewController.swift
;
sourceTree
=
"<group>"
;
};
04B401DD2CE73308005C61A9
/* YHIncomeRecordFromCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRecordFromCell.swift
;
sourceTree
=
"<group>"
;
};
04B401DF2CE738C0005C61A9
/* YHIncomeTypeSelectCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeTypeSelectCell.swift
;
sourceTree
=
"<group>"
;
};
04B401E12CE746F4005C61A9
/* YHIncomeTypesCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeTypesCell.swift
;
sourceTree
=
"<group>"
;
};
04B401E32CE76B10005C61A9
/* YHIncomeInputMoneyCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeInputMoneyCell.swift
;
sourceTree
=
"<group>"
;
};
04B401E52CE83C74005C61A9
/* YHIncomeRemarkCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRemarkCell.swift
;
sourceTree
=
"<group>"
;
};
04B401E72CE83FBD005C61A9
/* YHIncomeDocumentationConfirmationCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeDocumentationConfirmationCell.swift
;
sourceTree
=
"<group>"
;
};
04B401E92CE848E6005C61A9
/* YHIncomeTypeSelectViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeTypeSelectViewController.swift
;
sourceTree
=
"<group>"
;
};
04B401EB2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeTypePopViewSelectCell.swift
;
sourceTree
=
"<group>"
;
};
04B401ED2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeTypeSelectModel.swift
;
sourceTree
=
"<group>"
;
};
04B4B8D42C89CE5E00ED82BC
/* YHButlerServiceMessage.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHButlerServiceMessage.swift
;
sourceTree
=
"<group>"
;
};
04B4B8D42C89CE5E00ED82BC
/* YHButlerServiceMessage.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHButlerServiceMessage.swift
;
sourceTree
=
"<group>"
;
};
04B4B8D62C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHButlerServiceMessageHandler.swift
;
sourceTree
=
"<group>"
;
};
04B4B8D62C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHButlerServiceMessageHandler.swift
;
sourceTree
=
"<group>"
;
};
04B4B8DB2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHResignDocumentManagementVC.swift
;
sourceTree
=
"<group>"
;
};
04B4B8DB2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHResignDocumentManagementVC.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -2732,6 +2772,7 @@
...
@@ -2732,6 +2772,7 @@
045EEE272B9F171A0022A143
/* FamilyMember(家庭成员信息表) */
,
045EEE272B9F171A0022A143
/* FamilyMember(家庭成员信息表) */
,
045EEE4F2B9F171A0022A143
/* BaseInformation(基本资料) */
,
045EEE4F2B9F171A0022A143
/* BaseInformation(基本资料) */
,
045EEE5C2B9F171A0022A143
/* MainApplicantInformation(主申请人信息) */
,
045EEE5C2B9F171A0022A143
/* MainApplicantInformation(主申请人信息) */
,
04B401D02CE6E6C8005C61A9
/* IncomeRecord(收入记录) */
,
);
);
path
=
"ServiceProcess(我的信息流程)"
;
path
=
"ServiceProcess(我的信息流程)"
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -3888,6 +3929,65 @@
...
@@ -3888,6 +3929,65 @@
path
=
Localized
;
path
=
Localized
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
};
};
04B401C32CE6E6C8005C61A9
/* C */
=
{
isa
=
PBXGroup
;
children
=
(
04B401C22CE6E6C8005C61A9
/* YHIncomeRecordViewController.swift */
,
04B401E92CE848E6005C61A9
/* YHIncomeTypeSelectViewController.swift */
,
04B401DB2CE729F2005C61A9
/* YHIncomeRecordWorkExperienceViewController.swift */
,
);
path
=
C
;
sourceTree
=
"<group>"
;
};
04B401C42CE6E6C8005C61A9
/* M */
=
{
isa
=
PBXGroup
;
children
=
(
04B401ED2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift */
,
);
path
=
M
;
sourceTree
=
"<group>"
;
};
04B401CE2CE6E6C8005C61A9
/* V */
=
{
isa
=
PBXGroup
;
children
=
(
04B401C52CE6E6C8005C61A9
/* YHAddIncomeRecordCell.swift */
,
04B401DD2CE73308005C61A9
/* YHIncomeRecordFromCell.swift */
,
04B401DF2CE738C0005C61A9
/* YHIncomeTypeSelectCell.swift */
,
04B401EB2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift */
,
04B401E12CE746F4005C61A9
/* YHIncomeTypesCell.swift */
,
04B401E32CE76B10005C61A9
/* YHIncomeInputMoneyCell.swift */
,
04B401E52CE83C74005C61A9
/* YHIncomeRemarkCell.swift */
,
04B401E72CE83FBD005C61A9
/* YHIncomeDocumentationConfirmationCell.swift */
,
04B401C62CE6E6C8005C61A9
/* YHEmploymentVerificationAvailableCell.swift */
,
04B401C72CE6E6C8005C61A9
/* YHIncomeItemOccupyingCell.swift */
,
04B401C82CE6E6C8005C61A9
/* YHIncomeRecordItemCell.swift */
,
04B401C92CE6E6C8005C61A9
/* YHIncomeRecordSummaryCell.swift */
,
04B401CA2CE6E6C8005C61A9
/* YHInfoConsentForHKTravelCell.swift */
,
04B401CB2CE6E6C8005C61A9
/* YHTotalIncomeCell.swift */
,
04B401CC2CE6E6C8005C61A9
/* YHWorkingHourHeaderCell.swift */
,
04B401CD2CE6E6C8005C61A9
/* YHWorkingHoursStatementCell.swift */
,
);
path
=
V
;
sourceTree
=
"<group>"
;
};
04B401CF2CE6E6C8005C61A9
/* VM */
=
{
isa
=
PBXGroup
;
children
=
(
);
path
=
VM
;
sourceTree
=
"<group>"
;
};
04B401D02CE6E6C8005C61A9
/* IncomeRecord(收入记录) */
=
{
isa
=
PBXGroup
;
children
=
(
04B401C32CE6E6C8005C61A9
/* C */
,
04B401C42CE6E6C8005C61A9
/* M */
,
04B401CE2CE6E6C8005C61A9
/* V */
,
04B401CF2CE6E6C8005C61A9
/* VM */
,
);
path
=
"IncomeRecord(收入记录)"
;
sourceTree
=
"<group>"
;
};
04B4B8D32C89CCE400ED82BC
/* M */
=
{
04B4B8D32C89CCE400ED82BC
/* M */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
...
@@ -5466,6 +5566,7 @@
...
@@ -5466,6 +5566,7 @@
04213B252C48C15400797900
/* YHHomeIdentityViewController.swift in Sources */
,
04213B252C48C15400797900
/* YHHomeIdentityViewController.swift in Sources */
,
0472E25C2C521E64008EAB6E
/* YHHomeIdentityListVC.swift in Sources */
,
0472E25C2C521E64008EAB6E
/* YHHomeIdentityListVC.swift in Sources */
,
045EEF002B9F171A0022A143
/* YHFormItemEnterDetailCell.swift in Sources */
,
045EEF002B9F171A0022A143
/* YHFormItemEnterDetailCell.swift in Sources */
,
04B401DC2CE729F2005C61A9
/* YHIncomeRecordWorkExperienceViewController.swift in Sources */
,
0485DFD42C649A2500B50293
/* YHPrincipleUploadModel.swift in Sources */
,
0485DFD42C649A2500B50293
/* YHPrincipleUploadModel.swift in Sources */
,
04213B352C4F85A900797900
/* YHHomeLifeCategoryModel.swift in Sources */
,
04213B352C4F85A900797900
/* YHHomeLifeCategoryModel.swift in Sources */
,
0430E6602C7470AD000511E2
/* YHAdopterTravelViewController.swift in Sources */
,
0430E6602C7470AD000511E2
/* YHAdopterTravelViewController.swift in Sources */
,
...
@@ -5570,6 +5671,7 @@
...
@@ -5570,6 +5671,7 @@
045EEEF12B9F171A0022A143
/* YHChildInfoContainerVC.swift in Sources */
,
045EEEF12B9F171A0022A143
/* YHChildInfoContainerVC.swift in Sources */
,
04CA2BFD2CB7C36D00F36DE7
/* YHResignUploadDocListCell.swift in Sources */
,
04CA2BFD2CB7C36D00F36DE7
/* YHResignUploadDocListCell.swift in Sources */
,
045EEF0B2B9F171A0022A143
/* YHBasicInfoFillViewController.swift in Sources */
,
045EEF0B2B9F171A0022A143
/* YHBasicInfoFillViewController.swift in Sources */
,
04B401DE2CE73308005C61A9
/* YHIncomeRecordFromCell.swift in Sources */
,
0430E6582C7434F2000511E2
/* YHAdopterNewPeopleViewController.swift in Sources */
,
0430E6582C7434F2000511E2
/* YHAdopterNewPeopleViewController.swift in Sources */
,
040AE97A2CE73D9E00310241
/* YHWorkExperiencePositionViewViewController.swift in Sources */
,
040AE97A2CE73D9E00310241
/* YHWorkExperiencePositionViewViewController.swift in Sources */
,
A582B2452BBA4CF9009D098C
/* YHHKPlanDocModel.swift in Sources */
,
A582B2452BBA4CF9009D098C
/* YHHKPlanDocModel.swift in Sources */
,
...
@@ -5659,6 +5761,7 @@
...
@@ -5659,6 +5761,7 @@
04FD85662C2124AF00BEF9C5
/* YHNameCardViewController.swift in Sources */
,
04FD85662C2124AF00BEF9C5
/* YHNameCardViewController.swift in Sources */
,
044E31C72CBD264D00500F8E
/* YHResignInfoConfirmInfoListModel.swift in Sources */
,
044E31C72CBD264D00500F8E
/* YHResignInfoConfirmInfoListModel.swift in Sources */
,
0430E63B2C6DA106000511E2
/* CGFloat+Extention.swift in Sources */
,
0430E63B2C6DA106000511E2
/* CGFloat+Extention.swift in Sources */
,
04B401EA2CE848E6005C61A9
/* YHIncomeTypeSelectViewController.swift in Sources */
,
045EEF192B9F171A0022A143
/* YHAddressModel.swift in Sources */
,
045EEF192B9F171A0022A143
/* YHAddressModel.swift in Sources */
,
045EEEDB2B9F171A0022A143
/* YHCollegeSearchViewController.swift in Sources */
,
045EEEDB2B9F171A0022A143
/* YHCollegeSearchViewController.swift in Sources */
,
04C85DE72C36ADAE008B20D6
/* YHMyFileListHeaderView.swift in Sources */
,
04C85DE72C36ADAE008B20D6
/* YHMyFileListHeaderView.swift in Sources */
,
...
@@ -5669,6 +5772,7 @@
...
@@ -5669,6 +5772,7 @@
047F3DE22CE72524001B2A6D
/* YHMyNewSchemeViewController.swift in Sources */
,
047F3DE22CE72524001B2A6D
/* YHMyNewSchemeViewController.swift in Sources */
,
A567E5AA2BD7643D00D5D5A0
/* YHGestureTableView.swift in Sources */
,
A567E5AA2BD7643D00D5D5A0
/* YHGestureTableView.swift in Sources */
,
04CE1ADF2C2AD91F001CB80A
/* YHActivityListCell.swift in Sources */
,
04CE1ADF2C2AD91F001CB80A
/* YHActivityListCell.swift in Sources */
,
04B401E22CE746F4005C61A9
/* YHIncomeTypesCell.swift in Sources */
,
04256DFC2C742C7D00A37BA4
/* YHFamilyInfoConfirmViewModel.swift in Sources */
,
04256DFC2C742C7D00A37BA4
/* YHFamilyInfoConfirmViewModel.swift in Sources */
,
A59B43CF2C4B5AD100B28379
/* YHShareViewOnTablebarView.swift in Sources */
,
A59B43CF2C4B5AD100B28379
/* YHShareViewOnTablebarView.swift in Sources */
,
044EE22F2C918D1400A2FE3A
/* YHServiceStepAlertView.swift in Sources */
,
044EE22F2C918D1400A2FE3A
/* YHServiceStepAlertView.swift in Sources */
,
...
@@ -5683,6 +5787,7 @@
...
@@ -5683,6 +5787,7 @@
04F243552C9C435A00DF2C74
/* YHHKRecordsInfoItemCell.swift in Sources */
,
04F243552C9C435A00DF2C74
/* YHHKRecordsInfoItemCell.swift in Sources */
,
A5D0012C2BABC84A001F003C
/* YHFileListBottomView.swift in Sources */
,
A5D0012C2BABC84A001F003C
/* YHFileListBottomView.swift in Sources */
,
0485DFDC2C670C7200B50293
/* YHPrincipleSendMailView.swift in Sources */
,
0485DFDC2C670C7200B50293
/* YHPrincipleSendMailView.swift in Sources */
,
04B401EE2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift in Sources */
,
044F394A2CB8068E007CA277
/* YHVisaRenewalResidenceActionCell.swift in Sources */
,
044F394A2CB8068E007CA277
/* YHVisaRenewalResidenceActionCell.swift in Sources */
,
04E41DE82BD240570077EAE3
/* YHOrderDetailViewController.swift in Sources */
,
04E41DE82BD240570077EAE3
/* YHOrderDetailViewController.swift in Sources */
,
A5FD63C52B637EE000D1D9DA
/* YHSubmitAllInfoCheckView.swift in Sources */
,
A5FD63C52B637EE000D1D9DA
/* YHSubmitAllInfoCheckView.swift in Sources */
,
...
@@ -6000,6 +6105,7 @@
...
@@ -6000,6 +6105,7 @@
047AA3E82C4A6D69009C4554
/* YHListViewController.swift in Sources */
,
047AA3E82C4A6D69009C4554
/* YHListViewController.swift in Sources */
,
048787D92BCF68530036E221
/* YHProgressView.swift in Sources */
,
048787D92BCF68530036E221
/* YHProgressView.swift in Sources */
,
04256DEE2C73338200A37BA4
/* YHGrabingNumberListCell.swift in Sources */
,
04256DEE2C73338200A37BA4
/* YHGrabingNumberListCell.swift in Sources */
,
04B401E62CE83C74005C61A9
/* YHIncomeRemarkCell.swift in Sources */
,
045EEEEC2B9F171A0022A143
/* YHBrotherInfoVC.swift in Sources */
,
045EEEEC2B9F171A0022A143
/* YHBrotherInfoVC.swift in Sources */
,
0477E17A2BA41C7E00436346
/* YHCertificateModel.swift in Sources */
,
0477E17A2BA41C7E00436346
/* YHCertificateModel.swift in Sources */
,
042092B72C9D6719001184F0
/* YHSignatureWebViewController.swift in Sources */
,
042092B72C9D6719001184F0
/* YHSignatureWebViewController.swift in Sources */
,
...
@@ -6135,6 +6241,7 @@
...
@@ -6135,6 +6241,7 @@
045EEEEA2B9F171A0022A143
/* YHFamilyInitialInfo.swift in Sources */
,
045EEEEA2B9F171A0022A143
/* YHFamilyInitialInfo.swift in Sources */
,
A59FD0772CC0A62A00BBED55
/* YHPickTimeHoldView.swift in Sources */
,
A59FD0772CC0A62A00BBED55
/* YHPickTimeHoldView.swift in Sources */
,
04256E232C76D22400A37BA4
/* YHAppointItem.swift in Sources */
,
04256E232C76D22400A37BA4
/* YHAppointItem.swift in Sources */
,
04B401E02CE738C0005C61A9
/* YHIncomeTypeSelectCell.swift in Sources */
,
04256E212C76CA7800A37BA4
/* YHActivateHKVisaCell.swift in Sources */
,
04256E212C76CA7800A37BA4
/* YHActivateHKVisaCell.swift in Sources */
,
043BA8752C241B38006EF02D
/* YHAddFriendCardCell.swift in Sources */
,
043BA8752C241B38006EF02D
/* YHAddFriendCardCell.swift in Sources */
,
A5C382CF2B5F9A9100C5E65C
/* YHServiceCenterMainViewModel.swift in Sources */
,
A5C382CF2B5F9A9100C5E65C
/* YHServiceCenterMainViewModel.swift in Sources */
,
...
@@ -6189,6 +6296,16 @@
...
@@ -6189,6 +6296,16 @@
045EEEE12B9F171A0022A143
/* YHMySignatureListViewModel.swift in Sources */
,
045EEEE12B9F171A0022A143
/* YHMySignatureListViewModel.swift in Sources */
,
04A7BD152BA4361700BD35A2
/* YHMyDocumentDetailModel.swift in Sources */
,
04A7BD152BA4361700BD35A2
/* YHMyDocumentDetailModel.swift in Sources */
,
045EEEA02B9F171A0022A143
/* YHWorkItemListModel.swift in Sources */
,
045EEEA02B9F171A0022A143
/* YHWorkItemListModel.swift in Sources */
,
04B401D12CE6E6C8005C61A9
/* YHIncomeRecordSummaryCell.swift in Sources */
,
04B401D22CE6E6C8005C61A9
/* YHIncomeRecordViewController.swift in Sources */
,
04B401D32CE6E6C8005C61A9
/* YHEmploymentVerificationAvailableCell.swift in Sources */
,
04B401D42CE6E6C8005C61A9
/* YHWorkingHoursStatementCell.swift in Sources */
,
04B401D52CE6E6C8005C61A9
/* YHInfoConsentForHKTravelCell.swift in Sources */
,
04B401D62CE6E6C8005C61A9
/* YHWorkingHourHeaderCell.swift in Sources */
,
04B401D72CE6E6C8005C61A9
/* YHIncomeRecordItemCell.swift in Sources */
,
04B401D82CE6E6C8005C61A9
/* YHAddIncomeRecordCell.swift in Sources */
,
04B401D92CE6E6C8005C61A9
/* YHIncomeItemOccupyingCell.swift in Sources */
,
04B401DA2CE6E6C8005C61A9
/* YHTotalIncomeCell.swift in Sources */
,
04EA230E2BB538E9009DA928
/* YHDocumentUploadTableViewCell.swift in Sources */
,
04EA230E2BB538E9009DA928
/* YHDocumentUploadTableViewCell.swift in Sources */
,
04256DEA2C73263A00A37BA4
/* YHInfoItemSelectSheetView.swift in Sources */
,
04256DEA2C73263A00A37BA4
/* YHInfoItemSelectSheetView.swift in Sources */
,
0430E6822C75E068000511E2
/* YHAdopterCardOtherGuideView.swift in Sources */
,
0430E6822C75E068000511E2
/* YHAdopterCardOtherGuideView.swift in Sources */
,
...
@@ -6253,6 +6370,7 @@
...
@@ -6253,6 +6370,7 @@
04A7BC912B6B7B89000E8D47
/* YHTwoOptionAlertView.swift in Sources */
,
04A7BC912B6B7B89000E8D47
/* YHTwoOptionAlertView.swift in Sources */
,
A5F886B62C61F76200B63CF5
/* YHLongtapPictureSheetView.swift in Sources */
,
A5F886B62C61F76200B63CF5
/* YHLongtapPictureSheetView.swift in Sources */
,
045EEF1C2B9F171A0022A143
/* YHAddressPresentAnimated.swift in Sources */
,
045EEF1C2B9F171A0022A143
/* YHAddressPresentAnimated.swift in Sources */
,
04B401E82CE83FBD005C61A9
/* YHIncomeDocumentationConfirmationCell.swift in Sources */
,
04E86E0D2B70D51D00A35F4B
/* YHWebViewViewController.swift in Sources */
,
04E86E0D2B70D51D00A35F4B
/* YHWebViewViewController.swift in Sources */
,
048058332C7DC0CF00502CAA
/* YHTravelCertificateTipsCell.swift in Sources */
,
048058332C7DC0CF00502CAA
/* YHTravelCertificateTipsCell.swift in Sources */
,
04256E252C76E26100A37BA4
/* YHNoNeedAppointMembersCell.swift in Sources */
,
04256E252C76E26100A37BA4
/* YHNoNeedAppointMembersCell.swift in Sources */
,
...
@@ -6322,9 +6440,11 @@
...
@@ -6322,9 +6440,11 @@
04F9574B2C2032D8003C631C
/* YHMyFriendsCell.swift in Sources */
,
04F9574B2C2032D8003C631C
/* YHMyFriendsCell.swift in Sources */
,
0430E65E2C74624E000511E2
/* YHAdopterCardTableViewCell.swift in Sources */
,
0430E65E2C74624E000511E2
/* YHAdopterCardTableViewCell.swift in Sources */
,
045EEF1F2B9F171A0022A143
/* YHDatePickView.swift in Sources */
,
045EEF1F2B9F171A0022A143
/* YHDatePickView.swift in Sources */
,
04B401E42CE76B10005C61A9
/* YHIncomeInputMoneyCell.swift in Sources */
,
04174D7A2BCD5B74000BA46D
/* YHDetailMessageCell.swift in Sources */
,
04174D7A2BCD5B74000BA46D
/* YHDetailMessageCell.swift in Sources */
,
04912F942CB921C300CC3105
/* YHResignAppointContainerViewController.swift in Sources */
,
04912F942CB921C300CC3105
/* YHResignAppointContainerViewController.swift in Sources */
,
045EEE972B9F171A0022A143
/* YHPreviewInfoWorkExpView.swift in Sources */
,
045EEE972B9F171A0022A143
/* YHPreviewInfoWorkExpView.swift in Sources */
,
04B401EC2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift in Sources */
,
044BACC72BCFA58E00184C64
/* YHNoDataTipsView.swift in Sources */
,
044BACC72BCFA58E00184C64
/* YHNoDataTipsView.swift in Sources */
,
04D5C5662B8ED92600190021
/* YHBaseModel.swift in Sources */
,
04D5C5662B8ED92600190021
/* YHBaseModel.swift in Sources */
,
A5F8AC082B9F414000A21EFA
/* YHCustomTextView.swift in Sources */
,
A5F8AC082B9F414000A21EFA
/* YHCustomTextView.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHGCIncomeRecordAndWorkExperienceVC.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeRecordAndWorkExperienceVC.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
IQKeyboardManagerSwift
import
AttributedString
import
UIKit
class
YHIncomeRecordAndWorkExperienceVC
:
YHBaseViewController
{
enum
TableRow
{
case
incomeSummary
(
_
isEditing
:
Bool
=
false
,
_
isEditEnable
:
Bool
=
false
)
case
incomeItem
(
_
isEditState
:
Bool
=
false
,
_
company
:
String
,
_
money
:
String
,
_
timeStr
:
String
)
case
incomeOccupyingItem
(
_
title
:
String
,
_
detail
:
String
)
case
addItem
case
totalImcome
(
_
money
:
ASAttributedString
)
case
consentForHKTravel
(
_
isSelectSureBtn
:
Bool
=
true
)
case
currentCompany
(
_
company
:
String
?)
case
timeHeader
case
timeStatement
(
_
placeholder
:
String
,
_
remark
:
String
?,
_
detail
:
ASAttributedString
)
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
lazy
var
saveButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
setTitle
(
"保存"
,
for
:
.
normal
)
button
.
setTitle
(
"保存"
,
for
:
.
highlighted
)
button
.
setTitleColor
(
.
mainTextColor
,
for
:
.
normal
)
button
.
setTitleColor
(
.
mainTextColor
,
for
:
.
highlighted
)
button
.
addTarget
(
self
,
action
:
#selector(
clickSaveButton
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
.
contentBkgColor
return
button
}()
private
lazy
var
submitButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
setTitle
(
"提交"
,
for
:
.
normal
)
button
.
setTitle
(
"提交"
,
for
:
.
highlighted
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
highlighted
)
button
.
addTarget
(
self
,
action
:
#selector(
clickSubmitButton
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
.
brandMainColor
return
button
}()
private
lazy
var
bottomView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
private
lazy
var
tableView
:
UITableView
=
{
let
view
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
view
.
estimatedSectionHeaderHeight
=
16.0
view
.
estimatedSectionFooterHeight
=
0.01
view
.
sectionHeaderHeight
=
16.0
view
.
sectionFooterHeight
=
0.01
view
.
contentInsetAdjustmentBehavior
=
.
never
view
.
showsVerticalScrollIndicator
=
false
view
.
separatorStyle
=
.
none
view
.
delegate
=
self
view
.
dataSource
=
self
view
.
backgroundColor
=
.
clear
view
.
tableFooterView
=
UITableViewHeaderFooterView
()
view
.
rowHeight
=
UITableView
.
automaticDimension
view
.
register
(
YHIncomeRecordSummaryCell
.
self
,
forCellReuseIdentifier
:
YHIncomeRecordSummaryCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeRecordItemCell
.
self
,
forCellReuseIdentifier
:
YHIncomeRecordItemCell
.
cellReuseIdentifier
)
view
.
register
(
YHAddIncomeRecordCell
.
self
,
forCellReuseIdentifier
:
YHAddIncomeRecordCell
.
cellReuseIdentifier
)
view
.
register
(
YHInfoConsentForHKTravelCell
.
self
,
forCellReuseIdentifier
:
YHInfoConsentForHKTravelCell
.
cellReuseIdentifier
)
view
.
register
(
YHTotalIncomeCell
.
self
,
forCellReuseIdentifier
:
YHTotalIncomeCell
.
cellReuseIdentifier
)
view
.
register
(
YHEmploymentVerificationAvailableCell
.
self
,
forCellReuseIdentifier
:
YHEmploymentVerificationAvailableCell
.
cellReuseIdentifier
)
view
.
register
(
YHWorkingHoursStatementCell
.
self
,
forCellReuseIdentifier
:
YHWorkingHoursStatementCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeItemOccupyingCell
.
self
,
forCellReuseIdentifier
:
YHIncomeItemOccupyingCell
.
cellReuseIdentifier
)
view
.
register
(
YHWorkingHourHeaderCell
.
self
,
forCellReuseIdentifier
:
YHWorkingHourHeaderCell
.
cellReuseIdentifier
)
view
.
keyboardDismissMode
=
.
onDrag
return
view
}()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
setupData
()
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
IQKeyboardManager
.
shared
.
enable
=
true
}
override
func
viewWillDisappear
(
_
animated
:
Bool
)
{
super
.
viewWillDisappear
(
animated
)
IQKeyboardManager
.
shared
.
enable
=
false
}
}
extension
YHIncomeRecordAndWorkExperienceVC
{
@objc
private
func
clickSaveButton
()
{
//
}
@objc
private
func
clickSubmitButton
()
{
//
}
private
func
setupUI
()
{
gk_navTitle
=
"收入记录/工作经验填写"
gk_navBarAlpha
=
1.0
gk_navBackgroundColor
=
.
white
view
.
backgroundColor
=
UIColor
.
contentBkgColor
view
.
addSubview
(
tableView
)
view
.
addSubview
(
bottomView
)
bottomView
.
addSubview
(
saveButton
)
bottomView
.
addSubview
(
submitButton
)
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
make
.
top
.
equalTo
(
view
.
safeAreaLayoutGuide
.
snp
.
bottom
)
.
offset
(
-
64
)
}
saveButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
height
.
equalTo
(
44
)
make
.
width
.
equalTo
(
86
)
}
submitButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
saveButton
.
snp
.
right
)
.
offset
(
10
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
height
.
equalTo
(
44
)
}
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
bottom
.
equalTo
(
bottomView
.
snp
.
top
)
}
tableView
.
tableFooterView
=
UIView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
44
))
}
private
func
setupData
()
{
let
totalMoney
:
ASAttributedString
=
.
init
(
string
:
"约"
,
.
font
(
.
PFSC_R
(
ofSize
:
14
)))
+
.
init
(
string
:
"1,351,517"
,
.
font
(
UIFont
(
name
:
"DINAlternate-Bold"
,
size
:
16
)
??
UIFont
.
systemFont
(
ofSize
:
16
)))
+
.
init
(
string
:
"港币"
,
.
font
(
.
PFSC_R
(
ofSize
:
14
)))
let
firstSection
:
[
TableRow
]
=
[
.
incomeSummary
(
false
,
false
),
.
incomeItem
(
false
,
"华为有限公司"
,
"约1,234,234港币"
,
"2019.07-至今"
),
.
incomeItem
(
false
,
"腾讯有限公司"
,
"约1,234,234港币"
,
"2015.07-2019.06"
),
.
totalImcome
(
totalMoney
),
.
addItem
]
let
secondSection
:
[
TableRow
]
=
[
.
timeHeader
,
.
timeStatement
(
"如:工作时间灵活,可自由安排"
,
nil
,
getOverlappingTimeAttributedTips
())]
let
thirdSection
:
[
TableRow
]
=
[
.
consentForHKTravel
(
true
),
.
currentCompany
(
"华为科技有限公司"
)]
datas
=
[
firstSection
,
secondSection
,
thirdSection
]
tableView
.
reloadData
()
}
private
func
getOverlappingTimeAttributedTips
()
->
ASAttributedString
{
let
starStr
:
ASAttributedString
=
.
init
(
.
image
(
UIImage
(
named
:
"gc_red_dot"
)
??
UIImage
(),
bounds
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
6
,
height
:
6
)))
let
indentStr
:
ASAttributedString
=
.
init
(
.
image
(
UIImage
(),
bounds
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
5
,
height
:
5
)))
let
firstStr
:
ASAttributedString
=
.
init
(
string
:
"检测到您的"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
let
secondStr
:
ASAttributedString
=
.
init
(
string
:
"工作时间有重叠"
,
.
font
(
UIFont
.
PFSC_B
(
ofSize
:
13
)),
.
foreground
(
UIColor
.
failColor
))
let
thirdStr
:
ASAttributedString
=
.
init
(
string
:
"。请确认是否正确填报,若填报无误请在此处说明工作时间重叠的原因~"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
let
attributedText
=
(
starStr
+
indentStr
+
firstStr
+
secondStr
+
thirdStr
)
return
attributedText
}
}
extension
YHIncomeRecordAndWorkExperienceVC
:
UITableViewDelegate
,
UITableViewDataSource
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
return
datas
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
guard
datas
.
count
>
section
else
{
return
0
}
let
sectionArr
=
datas
[
section
]
return
sectionArr
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
guard
datas
.
count
>
indexPath
.
section
else
{
return
UITableViewCell
()
}
let
sectionArr
=
datas
[
indexPath
.
section
]
guard
sectionArr
.
count
>
indexPath
.
row
else
{
return
UITableViewCell
()
}
let
tableRow
=
sectionArr
[
indexPath
.
row
]
switch
tableRow
{
case
let
.
incomeSummary
(
isEditState
,
isEditEnable
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordSummaryCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordSummaryCell
{
cell
.
setupCellInfo
(
isEditState
,
isEditEnable
)
return
cell
}
case
let
.
incomeItem
(
isEditState
,
company
,
money
,
timeStr
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordItemCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordItemCell
{
cell
.
setupCellInfo
(
title
:
company
,
detail
:
money
,
rightText
:
timeStr
,
isEditing
:
isEditState
,
showBottomLine
:
false
)
return
cell
}
case
.
addItem
:
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHAddIncomeRecordCell
.
cellReuseIdentifier
)
as?
YHAddIncomeRecordCell
{
cell
.
addButtonClickEvent
=
{
//
}
return
cell
}
case
let
.
totalImcome
(
money
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHTotalIncomeCell
.
cellReuseIdentifier
)
as?
YHTotalIncomeCell
{
cell
.
setupCellInfo
(
detail
:
money
)
cell
.
didClickInfoButton
=
{
YHHUD
.
flash
(
message
:
"注:按1港币≈0.92人民币计算,实际金额按递交时入境处给出的汇率为准"
)
}
return
cell
}
case
let
.
consentForHKTravel
(
isSelectSureBtn
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHInfoConsentForHKTravelCell
.
cellReuseIdentifier
)
as?
YHInfoConsentForHKTravelCell
{
cell
.
textClicked
=
{
//
}
cell
.
didSelectSureButton
=
{
_
in
//
}
cell
.
selectedSureButton
=
isSelectSureBtn
return
cell
}
case
let
.
currentCompany
(
company
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHEmploymentVerificationAvailableCell
.
cellReuseIdentifier
)
as?
YHEmploymentVerificationAvailableCell
{
cell
.
setupCellInfo
(
detail
:
company
)
return
cell
}
case
let
.
timeStatement
(
placeholder
,
remark
,
detail
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHWorkingHoursStatementCell
.
cellReuseIdentifier
)
as?
YHWorkingHoursStatementCell
{
cell
.
setupCellInfo
(
placeholder
:
placeholder
,
remark
:
remark
,
detail
:
detail
,
isShowBottomLine
:
false
)
return
cell
}
case
let
.
incomeOccupyingItem
(
title
,
detail
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeItemOccupyingCell
.
cellReuseIdentifier
)
as?
YHIncomeItemOccupyingCell
{
cell
.
setupCellInfo
(
title
:
title
,
rightText
:
detail
)
return
cell
}
case
.
timeHeader
:
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHWorkingHourHeaderCell
.
cellReuseIdentifier
)
as?
YHWorkingHourHeaderCell
{
return
cell
}
}
return
UITableViewCell
()
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
UITableView
.
automaticDimension
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
tableView
.
deselectRow
(
at
:
indexPath
,
animated
:
true
)
//
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHIncomeRecordViewController.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeRecordViewController.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
IQKeyboardManagerSwift
import
AttributedString
import
UIKit
class
YHIncomeRecordViewController
:
YHBaseViewController
{
enum
TableRow
{
case
incomeSummary
(
_
isEditing
:
Bool
=
false
,
_
isEditEnable
:
Bool
=
false
)
case
incomeItem
(
_
isEditState
:
Bool
=
false
,
_
company
:
String
,
_
money
:
String
,
_
timeStr
:
String
)
case
totalIncome
(
_
money
:
ASAttributedString
)
case
consentForHKTravel
(
_
title
:
String
,
_
detail
:
ASAttributedString
,
_
question
:
String
,
_
isSelectSureBtn
:
Bool
=
true
)
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
lazy
var
saveButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
setTitle
(
"保存"
,
for
:
.
normal
)
button
.
setTitle
(
"保存"
,
for
:
.
highlighted
)
button
.
setTitleColor
(
.
mainTextColor
,
for
:
.
normal
)
button
.
setTitleColor
(
.
mainTextColor
,
for
:
.
highlighted
)
button
.
addTarget
(
self
,
action
:
#selector(
clickSaveButton
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
.
contentBkgColor
return
button
}()
private
lazy
var
submitButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
setTitle
(
"提交"
,
for
:
.
normal
)
button
.
setTitle
(
"提交"
,
for
:
.
highlighted
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
highlighted
)
button
.
addTarget
(
self
,
action
:
#selector(
clickSubmitButton
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
.
brandMainColor
return
button
}()
private
lazy
var
bottomView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
private
lazy
var
tableView
:
UITableView
=
{
let
view
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
view
.
estimatedSectionHeaderHeight
=
16.0
view
.
estimatedSectionFooterHeight
=
0.01
view
.
sectionHeaderHeight
=
16.0
view
.
sectionFooterHeight
=
0.01
view
.
contentInsetAdjustmentBehavior
=
.
never
view
.
showsVerticalScrollIndicator
=
false
view
.
separatorStyle
=
.
none
view
.
delegate
=
self
view
.
dataSource
=
self
view
.
backgroundColor
=
.
clear
view
.
tableFooterView
=
UITableViewHeaderFooterView
()
view
.
rowHeight
=
UITableView
.
automaticDimension
view
.
register
(
YHIncomeRecordSummaryCell
.
self
,
forCellReuseIdentifier
:
YHIncomeRecordSummaryCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeRecordItemCell
.
self
,
forCellReuseIdentifier
:
YHIncomeRecordItemCell
.
cellReuseIdentifier
)
view
.
register
(
YHInfoConsentForHKTravelCell
.
self
,
forCellReuseIdentifier
:
YHInfoConsentForHKTravelCell
.
cellReuseIdentifier
)
view
.
register
(
YHTotalIncomeCell
.
self
,
forCellReuseIdentifier
:
YHTotalIncomeCell
.
cellReuseIdentifier
)
view
.
keyboardDismissMode
=
.
onDrag
return
view
}()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
setupData
()
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
IQKeyboardManager
.
shared
.
enable
=
true
}
override
func
viewWillDisappear
(
_
animated
:
Bool
)
{
super
.
viewWillDisappear
(
animated
)
IQKeyboardManager
.
shared
.
enable
=
false
}
}
extension
YHIncomeRecordViewController
{
@objc
private
func
clickSaveButton
()
{
//
}
@objc
private
func
clickSubmitButton
()
{
//
}
private
func
setupUI
()
{
gk_navTitle
=
"收入记录信息填写"
gk_navBarAlpha
=
1.0
gk_navBackgroundColor
=
.
white
view
.
backgroundColor
=
UIColor
.
contentBkgColor
view
.
addSubview
(
tableView
)
view
.
addSubview
(
bottomView
)
bottomView
.
addSubview
(
saveButton
)
bottomView
.
addSubview
(
submitButton
)
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
make
.
top
.
equalTo
(
view
.
safeAreaLayoutGuide
.
snp
.
bottom
)
.
offset
(
-
64
)
}
saveButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
height
.
equalTo
(
44
)
make
.
width
.
equalTo
(
86
)
}
submitButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
saveButton
.
snp
.
right
)
.
offset
(
10
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
height
.
equalTo
(
44
)
}
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
bottom
.
equalTo
(
bottomView
.
snp
.
top
)
}
tableView
.
tableFooterView
=
UIView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
44
))
}
private
func
setupData
()
{
let
detail
:
ASAttributedString
=
.
init
(
string
:
"备注:全年收入是指应课税(应纳所得税)的就业或业务收入,包括工资薪金、津贴、股票期权及从其拥有的公司所得的利润。由个人投资所产生的收入不会计算在内。"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
let
firstSection
:
[
TableRow
]
=
[
.
consentForHKTravel
(
"收入情况"
,
detail
,
"您在前一年,全年收入是否达港币100万元或以上"
,
true
)]
let
totalMoney
:
ASAttributedString
=
.
init
(
string
:
"约"
,
.
font
(
.
PFSC_R
(
ofSize
:
14
)))
+
.
init
(
string
:
"1,351,517"
,
.
font
(
UIFont
(
name
:
"DINAlternate-Bold"
,
size
:
16
)
??
UIFont
.
systemFont
(
ofSize
:
16
)))
+
.
init
(
string
:
"港币"
,
.
font
(
.
PFSC_R
(
ofSize
:
14
)))
let
secondSection
:
[
TableRow
]
=
[
.
incomeSummary
(
false
,
false
),
.
incomeItem
(
false
,
"华为有限公司"
,
"约1,234,234港币"
,
"2019.07-至今"
),
.
incomeItem
(
false
,
"腾讯有限公司"
,
"约1,234,234港币"
,
"2015.07-2019.06"
),
.
totalIncome
(
totalMoney
)]
datas
=
[
firstSection
,
secondSection
]
tableView
.
reloadData
()
}
}
extension
YHIncomeRecordViewController
:
UITableViewDelegate
,
UITableViewDataSource
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
return
datas
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
guard
datas
.
count
>
section
else
{
return
0
}
let
sectionArr
=
datas
[
section
]
return
sectionArr
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
guard
datas
.
count
>
indexPath
.
section
else
{
return
UITableViewCell
()
}
let
sectionArr
=
datas
[
indexPath
.
section
]
guard
sectionArr
.
count
>
indexPath
.
row
else
{
return
UITableViewCell
()
}
let
tableRow
=
sectionArr
[
indexPath
.
row
]
switch
tableRow
{
case
let
.
incomeSummary
(
isEditState
,
isEditEnable
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordSummaryCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordSummaryCell
{
cell
.
setupCellInfo
(
isEditState
,
isEditEnable
)
return
cell
}
case
let
.
incomeItem
(
isEditState
,
company
,
money
,
timeStr
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordItemCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordItemCell
{
cell
.
setupCellInfo
(
title
:
company
,
detail
:
money
,
rightText
:
timeStr
,
isEditing
:
isEditState
,
showBottomLine
:
false
)
return
cell
}
case
let
.
totalIncome
(
money
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHTotalIncomeCell
.
cellReuseIdentifier
)
as?
YHTotalIncomeCell
{
cell
.
setupCellInfo
(
detail
:
money
)
cell
.
didClickInfoButton
=
{
YHHUD
.
flash
(
message
:
"注:按1港币≈0.92人民币计算,实际金额按递交时入境处给出的汇率为准"
)
}
return
cell
}
case
let
.
consentForHKTravel
(
title
,
detail
,
question
,
isSelectSureBtn
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHInfoConsentForHKTravelCell
.
cellReuseIdentifier
)
as?
YHInfoConsentForHKTravelCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
question
:
question
)
cell
.
didSelectSureButton
=
{
_
in
//
}
cell
.
selectedSureButton
=
isSelectSureBtn
return
cell
}
}
return
UITableViewCell
()
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
UITableView
.
automaticDimension
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
tableView
.
deselectRow
(
at
:
indexPath
,
animated
:
true
)
guard
datas
.
count
>
indexPath
.
section
else
{
return
}
let
sectionArr
=
datas
[
indexPath
.
section
]
guard
sectionArr
.
count
>
indexPath
.
row
else
{
return
}
let
tableRow
=
sectionArr
[
indexPath
.
row
]
if
case
.
incomeItem
=
tableRow
{
let
ctl
=
YHIncomeRecordWorkExperienceViewController
()
navigationController
?
.
pushViewController
(
ctl
,
animated
:
true
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHIncomeRecordWorkExperienceViewController.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeRecordWorkExperienceViewController.swift
// galaxy
//
// Created by alexzzw on 2024/11/15.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
IQKeyboardManagerSwift
import
UIKit
class
YHIncomeRecordWorkExperienceViewController
:
YHBaseViewController
{
enum
TableRow
{
case
header
(
_
title
:
String
)
case
incomeFrom
(
_
title
:
String
,
_
detail
:
String
)
case
incomeTypeSelect
(
_
title
:
String
,
_
detail
:
String
,
_
isSelectedOne
:
Bool
,
_
types
:
[
String
])
case
incomeTypes
(
_
types
:
[
String
])
case
inputMoney
(
_
title
:
String
,
_
detail
:
String
?,
_
inputStr
:
String
?,
_
showBottomLine
:
Bool
,
_
showStar
:
Bool
)
case
inputRemark
(
_
detail
:
String
)
case
documentComfirm
(
_
title
:
String
,
_
question
:
String
,
_
isSelectedSure
:
Bool
,
_
docs
:
[
String
])
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
lazy
var
submitButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
setTitle
(
"提交"
,
for
:
.
normal
)
button
.
setTitle
(
"提交"
,
for
:
.
highlighted
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
highlighted
)
button
.
addTarget
(
self
,
action
:
#selector(
clickSubmitButton
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
.
brandMainColor
return
button
}()
private
lazy
var
bottomView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
private
lazy
var
tableView
:
UITableView
=
{
let
view
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
view
.
estimatedSectionHeaderHeight
=
16.0
view
.
estimatedSectionFooterHeight
=
0.01
view
.
sectionHeaderHeight
=
16.0
view
.
sectionFooterHeight
=
0.01
view
.
contentInsetAdjustmentBehavior
=
.
never
view
.
showsVerticalScrollIndicator
=
false
view
.
separatorStyle
=
.
none
view
.
delegate
=
self
view
.
dataSource
=
self
view
.
backgroundColor
=
.
clear
view
.
tableFooterView
=
UITableViewHeaderFooterView
()
view
.
rowHeight
=
UITableView
.
automaticDimension
view
.
register
(
YHWorkingHourHeaderCell
.
self
,
forCellReuseIdentifier
:
YHWorkingHourHeaderCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeRecordFromCell
.
self
,
forCellReuseIdentifier
:
YHIncomeRecordFromCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeTypeSelectCell
.
self
,
forCellReuseIdentifier
:
YHIncomeTypeSelectCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeTypesCell
.
self
,
forCellReuseIdentifier
:
YHIncomeTypesCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeInputMoneyCell
.
self
,
forCellReuseIdentifier
:
YHIncomeInputMoneyCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeRemarkCell
.
self
,
forCellReuseIdentifier
:
YHIncomeRemarkCell
.
cellReuseIdentifier
)
view
.
register
(
YHIncomeDocumentationConfirmationCell
.
self
,
forCellReuseIdentifier
:
YHIncomeDocumentationConfirmationCell
.
cellReuseIdentifier
)
view
.
keyboardDismissMode
=
.
onDrag
return
view
}()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
setupData
()
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
IQKeyboardManager
.
shared
.
enable
=
true
}
override
func
viewWillDisappear
(
_
animated
:
Bool
)
{
super
.
viewWillDisappear
(
animated
)
IQKeyboardManager
.
shared
.
enable
=
false
}
}
extension
YHIncomeRecordWorkExperienceViewController
{
@objc
private
func
clickSubmitButton
()
{
//
}
private
func
setupUI
()
{
gk_navTitle
=
"工作经验信息填写"
gk_navBarAlpha
=
1.0
gk_navBackgroundColor
=
.
white
view
.
backgroundColor
=
UIColor
.
contentBkgColor
view
.
addSubview
(
tableView
)
view
.
addSubview
(
bottomView
)
bottomView
.
addSubview
(
submitButton
)
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
make
.
top
.
equalTo
(
view
.
safeAreaLayoutGuide
.
snp
.
bottom
)
.
offset
(
-
64
)
}
submitButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
height
.
equalTo
(
44
)
}
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
bottom
.
equalTo
(
bottomView
.
snp
.
top
)
}
tableView
.
tableFooterView
=
UIView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
44
))
}
private
func
setupData
()
{
let
selectedTypes
=
[
"工资薪金所得及全年一次性奖金"
,
"个体工商户/合伙企业/独资企业经营所得收入"
,
"其他境外公司收入(持股50%及以上)"
]
let
firstSection
:
[
TableRow
]
=
[
.
header
(
"收入信息"
),
.
incomeFrom
(
"收入来源公司"
,
"华为科技有限公司"
),
.
incomeTypeSelect
(
"收入类型(多选)"
,
"请选择"
,
selectedTypes
.
count
>
0
,
selectedTypes
),
.
incomeTypes
(
selectedTypes
),
.
inputMoney
(
"公司营业额(近一年)"
,
"约1,000,000港币"
,
"9,999,999"
,
true
,
false
),
.
inputMoney
(
"收入金额"
,
"约1,000,000港币"
,
"9,999,999"
,
false
,
true
),
.
inputRemark
(
"注:按1港币≈0.92人民币计算,实际金额按递交时入境处给出的汇率为准"
)]
let
secondSection
:
[
TableRow
]
=
[
.
documentComfirm
(
"证件提供确认"
,
"您是否可以提供以下所有证明文件"
,
true
,
[
"验资报告"
,
"审计报告"
,
"绝对实益拥有人声明书"
,
"国家企业信用信息公示系统报告"
,
"企业所得税月(季)度预缴纳税申报表(A类)"
,
"企业所得税完税证明"
,
"企业所得税年度纳税申报表(A类)"
])]
datas
=
[
firstSection
,
secondSection
]
tableView
.
reloadData
()
}
private
func
showSelectIncomeTypePopVC
(
selectedTypes
:
[
String
])
{
let
ctl
=
YHIncomeTypeSelectViewController
.
init
(
selectedTypes
:
selectedTypes
)
let
bpc
=
YHBottomPresentationController
(
presentedViewController
:
ctl
,
presenting
:
self
)
bpc
.
customRadius
=
8.0
ctl
.
transitioningDelegate
=
bpc
ctl
.
sureButtonEvent
=
{
selectedTypes
in
//
}
present
(
ctl
,
animated
:
true
,
completion
:
nil
)
}
}
extension
YHIncomeRecordWorkExperienceViewController
:
UITableViewDelegate
,
UITableViewDataSource
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
return
datas
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
guard
datas
.
count
>
section
else
{
return
0
}
let
sectionArr
=
datas
[
section
]
return
sectionArr
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
guard
datas
.
count
>
indexPath
.
section
else
{
return
UITableViewCell
()
}
let
sectionArr
=
datas
[
indexPath
.
section
]
guard
sectionArr
.
count
>
indexPath
.
row
else
{
return
UITableViewCell
()
}
let
tableRow
=
sectionArr
[
indexPath
.
row
]
switch
tableRow
{
case
let
.
header
(
title
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHWorkingHourHeaderCell
.
cellReuseIdentifier
)
as?
YHWorkingHourHeaderCell
{
cell
.
setupCellInfo
(
title
)
return
cell
}
case
let
.
incomeFrom
(
title
,
detail
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordFromCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordFromCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
showBottomLine
:
true
)
return
cell
}
case
let
.
incomeTypeSelect
(
title
,
detail
,
isSelectedOne
,
_
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeTypeSelectCell
.
cellReuseIdentifier
)
as?
YHIncomeTypeSelectCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
isSelectedOne
:
isSelectedOne
,
showBottomLine
:
!
isSelectedOne
)
return
cell
}
case
let
.
incomeTypes
(
types
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeTypesCell
.
cellReuseIdentifier
)
as?
YHIncomeTypesCell
{
cell
.
setupCellInfo
(
types
:
types
)
return
cell
}
case
let
.
inputMoney
(
title
,
detail
,
inputStr
,
showBottomLine
,
showStar
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeInputMoneyCell
.
cellReuseIdentifier
)
as?
YHIncomeInputMoneyCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
inputValue
:
inputStr
,
showBottomLine
:
showBottomLine
,
showStarIcon
:
showStar
)
return
cell
}
case
let
.
inputRemark
(
detail
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRemarkCell
.
cellReuseIdentifier
)
as?
YHIncomeRemarkCell
{
cell
.
setupCellInfo
(
detail
)
return
cell
}
case
let
.
documentComfirm
(
title
,
question
,
isSelectedSure
,
docs
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeDocumentationConfirmationCell
.
cellReuseIdentifier
)
as?
YHIncomeDocumentationConfirmationCell
{
cell
.
setupCellInfo
(
title
:
title
,
question
:
question
,
documents
:
docs
)
cell
.
selectedSureButton
=
isSelectedSure
return
cell
}
}
return
UITableViewCell
()
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
UITableView
.
automaticDimension
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
tableView
.
deselectRow
(
at
:
indexPath
,
animated
:
true
)
guard
datas
.
count
>
indexPath
.
section
else
{
return
}
let
sectionArr
=
datas
[
indexPath
.
section
]
guard
sectionArr
.
count
>
indexPath
.
row
else
{
return
}
let
tableRow
=
sectionArr
[
indexPath
.
row
]
if
case
let
.
incomeTypeSelect
(
_
,
_
,
_
,
selectedTypes
)
=
tableRow
{
showSelectIncomeTypePopVC
(
selectedTypes
:
selectedTypes
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHIncomeTypeSelectViewController.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeTypeSelectViewController.swift
// galaxy
//
// Created by alexzzw on 2024/11/16.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeTypeSelectViewController
:
YHBaseViewController
{
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
.
mainTextColor
label
.
text
=
"选择收入类型(多选)"
return
label
}()
private
lazy
var
closeButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"work_example_close"
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
closeButtonClicked
)
,
for
:
.
touchUpInside
)
return
button
}()
private
lazy
var
topLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#F0F0F0"
)
return
view
}()
private
lazy
var
tableView
:
UITableView
=
{
let
view
=
UITableView
(
frame
:
.
zero
,
style
:
.
plain
)
view
.
backgroundColor
=
.
clear
view
.
separatorStyle
=
.
none
view
.
rowHeight
=
UITableView
.
automaticDimension
view
.
estimatedRowHeight
=
52.0
view
.
dataSource
=
self
view
.
delegate
=
self
view
.
showsVerticalScrollIndicator
=
false
view
.
register
(
YHIncomeTypePopViewSelectCell
.
self
,
forCellReuseIdentifier
:
YHIncomeTypePopViewSelectCell
.
cellReuseIdentifier
)
return
view
}()
private
lazy
var
sureButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
16
)
button
.
setTitle
(
"确认"
,
for
:
.
normal
)
button
.
setTitle
(
"确认"
,
for
:
.
highlighted
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
highlighted
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xFFFFFF
),
for
:
.
disabled
)
button
.
addTarget
(
self
,
action
:
#selector(
clickSureButton
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
.
brandMainColor
return
button
}()
private
lazy
var
bottomView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
private
lazy
var
datas
:
[
YHIncomeTypeSelectModel
]
=
{
[
"工资薪金所得及全年一次性奖金"
,
"上市公司股票期权或股权收入"
,
"持股公司分红收入"
,
"个体工商户/合伙企业/独资企业经营所得收入"
,
"股权转让收入"
,
"内地公司收入(持股50%及以上)"
,
"香港公司收入(持股50%及以上)"
,
"澳门公司收入(持股50%及以上)"
,
"其他境外公司收入(持股50%及以上)"
]
.
map
{
YHIncomeTypeSelectModel
(
title
:
$0
,
isSelected
:
false
)
}
}()
var
sureButtonEvent
:
(([
String
])
->
Void
)?
private
var
selectedTypes
:
[
String
]
=
[]
init
(
selectedTypes
:
[
String
])
{
self
.
selectedTypes
=
selectedTypes
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
@MainActor
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
setupDatas
()
}
@objc
private
func
clickSureButton
()
{
sureButtonEvent
?(
selectedTypes
)
dismiss
(
animated
:
true
)
}
@objc
private
func
closeButtonClicked
()
{
dismiss
(
animated
:
true
)
}
private
func
setupUI
()
{
gk_navBarAlpha
=
0
gk_navigationBar
.
isHidden
=
true
view
.
backgroundColor
=
UIColor
.
white
view
.
addSubview
(
infoTitleLabel
)
view
.
addSubview
(
closeButton
)
view
.
addSubview
(
topLineView
)
view
.
addSubview
(
tableView
)
view
.
addSubview
(
bottomView
)
bottomView
.
addSubview
(
sureButton
)
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
centerX
.
equalToSuperview
()
}
closeButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
21
)
make
.
height
.
width
.
equalTo
(
24
)
make
.
centerY
.
equalTo
(
infoTitleLabel
)
}
topLineView
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
21
)
make
.
left
.
equalToSuperview
()
.
offset
(
21
)
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoTitleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalTo
(
view
.
safeAreaLayoutGuide
.
snp
.
bottom
)
make
.
height
.
equalTo
(
64
)
}
sureButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
kMargin
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
kMargin
)
make
.
centerY
.
equalToSuperview
()
make
.
height
.
equalTo
(
48
)
}
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
topLineView
.
snp
.
bottom
)
.
offset
(
12
)
make
.
bottom
.
equalTo
(
bottomView
.
snp
.
top
)
}
tableView
.
tableFooterView
=
UIView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
20
))
preferredContentSize
=
CGSize
(
width
:
KScreenWidth
,
height
:
KScreenHeight
-
k_Height_NavigationtBarAndStatuBar
-
44
)
}
private
func
setupDatas
()
{
datas
.
forEach
{
[
weak
self
]
model
in
guard
let
self
=
self
else
{
return
}
if
self
.
selectedTypes
.
contains
(
model
.
title
)
{
model
.
isSelected
=
true
}
}
}
}
extension
YHIncomeTypeSelectViewController
:
UITableViewDelegate
,
UITableViewDataSource
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
return
datas
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
guard
datas
.
count
>
section
else
{
return
0
}
return
1
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
guard
datas
.
count
>
indexPath
.
section
else
{
return
UITableViewCell
()
}
let
model
=
datas
[
indexPath
.
section
]
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeTypePopViewSelectCell
.
cellReuseIdentifier
)
as?
YHIncomeTypePopViewSelectCell
{
cell
.
setupCellInfo
(
title
:
model
.
title
,
isSelected
:
model
.
isSelected
)
return
cell
}
return
UITableViewCell
()
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
UITableView
.
automaticDimension
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
return
0
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
heightForFooterInSection
section
:
Int
)
->
CGFloat
{
return
12.0
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
tableView
.
deselectRow
(
at
:
indexPath
,
animated
:
false
)
guard
datas
.
count
>
indexPath
.
section
else
{
return
}
let
model
=
datas
[
indexPath
.
section
]
model
.
isSelected
.
toggle
()
if
model
.
isSelected
{
if
!
selectedTypes
.
contains
(
model
.
title
)
{
selectedTypes
.
append
(
model
.
title
)
}
}
else
{
if
let
index
=
selectedTypes
.
firstIndex
(
where
:
{
title
in
title
==
model
.
title
})
{
selectedTypes
.
remove
(
at
:
index
)
}
}
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeTypeSelectModel.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeTypeSelectModel.swift
// galaxy
//
// Created by alexzzw on 2024/11/16.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeTypeSelectModel
:
NSObject
{
var
title
:
String
=
""
var
isSelected
:
Bool
=
false
init
(
title
:
String
,
isSelected
:
Bool
)
{
self
.
title
=
title
self
.
isSelected
=
isSelected
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHAddIncomeRecordCell.swift
0 → 100644
View file @
41597cdd
//
// YHAddIncomeRecordCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHAddIncomeRecordCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHAddIncomeRecordCell"
var
addButtonClickEvent
:
(()
->
Void
)?
private
lazy
var
addItemView
:
YHWorkItemAddView
=
{
let
view
=
YHWorkItemAddView
()
view
.
addBtn
.
setTitle
(
"新增收入信息"
.
local
,
for
:
.
normal
)
view
.
addBtn
.
setImage
(
UIImage
(
named
:
"income_item_add"
),
for
:
.
normal
)
view
.
clickBlock
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
self
.
addButtonClickEvent
?()
}
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
}
extension
YHAddIncomeRecordCell
{
private
func
setupUI
()
{
updateCellCorner
(
.
bottom
)
subContainerView
.
addSubview
(
addItemView
)
addItemView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
44
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHEmploymentVerificationAvailableCell.swift
0 → 100644
View file @
41597cdd
//
// YHEmploymentVerificationAvailableCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHEmploymentVerificationAvailableCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHEmploymentVerificationAvailableCell"
private
lazy
var
dotIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
return
imageView
}()
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"可提供的在职公司"
return
label
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"请选择"
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byCharWrapping
return
label
}()
private
lazy
var
rightArrowIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"form_right_arrow"
))
return
imageView
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
detail
:
String
?)
{
infoDetailLabel
.
text
=
detail
updateContentState
((
detail
?
.
count
??
0
)
>
0
)
}
}
extension
YHEmploymentVerificationAvailableCell
{
private
func
updateContentState
(
_
isBlank
:
Bool
)
{
if
isBlank
{
infoDetailLabel
.
text
=
"请选择"
infoDetailLabel
.
font
=
.
PFSC_R
(
ofSize
:
14
)
infoDetailLabel
.
textColor
=
UIColor
(
hexString
:
"#B9C1CC"
)
}
else
{
infoDetailLabel
.
font
=
.
PFSC_M
(
ofSize
:
14
)
infoDetailLabel
.
textColor
=
UIColor
.
mainTextColor
}
}
private
func
setupUI
()
{
updateCellCorner
(
.
bottom
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
dotIcon
)
subContainerView
.
addSubview
(
rightArrowIcon
)
dotIcon
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
rightArrowIcon
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
infoTitleLabel
.
setContentCompressionResistancePriority
(
.
defaultHigh
,
for
:
.
horizontal
)
infoDetailLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
dotIcon
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
height
.
width
.
equalTo
(
6
)
make
.
centerY
.
equalToSuperview
()
}
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
dotIcon
.
snp
.
right
)
.
offset
(
2
)
make
.
centerY
.
equalToSuperview
()
}
rightArrowIcon
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
width
.
height
.
equalTo
(
20
)
make
.
centerY
.
equalToSuperview
()
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
greaterThanOrEqualTo
(
infoTitleLabel
.
snp
.
right
)
.
offset
(
20
)
make
.
centerY
.
equalToSuperview
()
make
.
right
.
equalTo
(
rightArrowIcon
.
snp
.
left
)
make
.
top
.
greaterThanOrEqualToSuperview
()
.
offset
(
16
)
make
.
bottom
.
lessThanOrEqualToSuperview
()
.
offset
(
-
16
)
}
updateContentState
(
false
)
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeDocumentationConfirmationCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeDocumentationConfirmationCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/16.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeDocumentationConfirmationCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeDocumentationConfirmationCell"
var
didSelectSureButton
:
((
Bool
)
->
Void
)?
private
var
documentationViews
:
[
YHIncomeDocumentationView
]
=
[]
var
selectedSureButton
:
Bool
=
true
{
didSet
{
updateButtonState
(
sureButton
,
selectedSureButton
)
updateButtonState
(
cancelButton
,
!
selectedSureButton
)
}
}
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
UIColor
.
mainTextColor
return
label
}()
private
lazy
var
topLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
private
lazy
var
dotIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
return
imageView
}()
private
lazy
var
infoQuestionLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byWordWrapping
return
label
}()
private
lazy
var
sureButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
.
PFSC_M
(
ofSize
:
13
)
button
.
setTitle
(
"是"
,
for
:
.
normal
)
button
.
setTitleColor
(
.
mainTextColor
,
for
:
.
normal
)
button
.
setTitleColor
(
.
brandMainColor
,
for
:
.
selected
)
button
.
addTarget
(
self
,
action
:
#selector(
sureButtonDidClick(_:)
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
16.0
button
.
clipsToBounds
=
true
return
button
}()
private
lazy
var
cancelButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
.
PFSC_M
(
ofSize
:
13
)
button
.
setTitle
(
"否"
,
for
:
.
normal
)
button
.
setTitleColor
(
.
mainTextColor
,
for
:
.
normal
)
button
.
setTitleColor
(
.
brandMainColor
,
for
:
.
selected
)
button
.
addTarget
(
self
,
action
:
#selector(
cancelButtonDidClick(_:)
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
16
button
.
clipsToBounds
=
true
return
button
}()
private
lazy
var
containerView
:
YHBaseDynamicCornerRadiusView
=
{
let
view
=
YHBaseDynamicCornerRadiusView
(
cornerRadius
:
3
,
corner
:
.
allCorners
)
view
.
backgroundColor
=
.
contentBkgColor
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
question
:
String
,
documents
:
[
String
])
{
infoTitleLabel
.
text
=
title
infoQuestionLabel
.
text
=
question
documentationViews
.
forEach
{
$0
.
removeFromSuperview
()
}
documentationViews
.
removeAll
()
let
count
=
documents
.
count
documents
.
enumerated
()
.
forEach
{
[
weak
self
]
index
,
title
in
guard
let
self
=
self
else
{
return
}
let
documentationView
=
YHIncomeDocumentationView
()
documentationView
.
setupInfo
(
title
)
self
.
documentationViews
.
append
(
documentationView
)
self
.
containerView
.
addSubview
(
documentationView
)
documentationView
.
snp
.
makeConstraints
{
make
in
if
index
==
0
{
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
}
else
{
make
.
top
.
equalTo
(
self
.
documentationViews
[
index
-
1
]
.
snp
.
bottom
)
.
offset
(
12
)
}
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
8
)
if
index
==
count
-
1
{
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
}
}
}
}
}
extension
YHIncomeDocumentationConfirmationCell
{
@objc
private
func
cancelButtonDidClick
(
_
sender
:
UIButton
)
{
guard
!
sender
.
isSelected
else
{
return
}
selectedSureButton
=
false
didSelectSureButton
?(
false
)
}
@objc
private
func
sureButtonDidClick
(
_
sender
:
UIButton
)
{
guard
!
sender
.
isSelected
else
{
return
}
selectedSureButton
=
true
didSelectSureButton
?(
true
)
}
private
func
setupUI
()
{
updateCellCorner
(
.
single
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
topLineView
)
subContainerView
.
addSubview
(
dotIcon
)
subContainerView
.
addSubview
(
infoQuestionLabel
)
subContainerView
.
addSubview
(
sureButton
)
subContainerView
.
addSubview
(
cancelButton
)
subContainerView
.
addSubview
(
containerView
)
sureButton
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
cancelButton
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
infoQuestionLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
topLineView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoTitleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
dotIcon
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
infoTitleLabel
.
snp
.
left
)
make
.
height
.
width
.
equalTo
(
6
)
make
.
top
.
equalTo
(
infoQuestionLabel
.
snp
.
top
)
.
offset
(
7
)
}
infoQuestionLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
dotIcon
.
snp
.
right
)
.
offset
(
2
)
make
.
top
.
equalTo
(
topLineView
.
snp
.
bottom
)
.
offset
(
16
)
make
.
height
.
greaterThanOrEqualTo
(
40
)
make
.
width
.
lessThanOrEqualTo
(
113
)
}
cancelButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
32
)
make
.
width
.
equalTo
(
69
)
make
.
centerY
.
equalTo
(
infoQuestionLabel
)
}
sureButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
cancelButton
.
snp
.
left
)
.
offset
(
-
8
)
make
.
height
.
equalTo
(
32
)
make
.
width
.
equalTo
(
69
)
make
.
centerY
.
equalTo
(
infoQuestionLabel
)
make
.
left
.
greaterThanOrEqualTo
(
infoQuestionLabel
.
snp
.
right
)
.
offset
(
8
)
}
containerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
infoTitleLabel
.
snp
.
left
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
top
.
equalTo
(
infoQuestionLabel
.
snp
.
bottom
)
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
}
selectedSureButton
=
true
}
private
func
updateButtonState
(
_
button
:
UIButton
,
_
isSelected
:
Bool
)
{
button
.
isSelected
=
isSelected
button
.
backgroundColor
=
isSelected
?
UIColor
(
hexString
:
"#EBF0F9"
)
:
.
contentBkgColor
button
.
layer
.
borderColor
=
isSelected
?
UIColor
.
brandMainColor
.
cgColor
:
nil
button
.
layer
.
borderWidth
=
isSelected
?
1
:
0
}
}
private
class
YHIncomeDocumentationView
:
UIView
{
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
14
)
label
.
textColor
=
.
mainTextColor
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byCharWrapping
return
label
}()
private
lazy
var
dotView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#B3C8E9"
)
view
.
layer
.
cornerRadius
=
1
view
.
clipsToBounds
=
true
return
view
}()
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setupUI
()
}
@MainActor
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupInfo
(
_
detail
:
String
)
{
infoDetailLabel
.
text
=
detail
}
private
func
setupUI
()
{
addSubview
(
dotView
)
addSubview
(
infoDetailLabel
)
dotView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
make
.
height
.
width
.
equalTo
(
5
)
make
.
top
.
equalTo
(
infoDetailLabel
.
snp
.
top
)
.
offset
(
6
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
dotView
.
snp
.
right
)
.
offset
(
8
)
make
.
top
.
bottom
.
right
.
equalToSuperview
()
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeInputMoneyCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeInputMoneyCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/15.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeInputMoneyCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeInputMoneyCell"
var
didEndEditing
:
((
UITextField
)
->
Void
)?
private
lazy
var
dotIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
return
imageView
}()
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byCharWrapping
return
label
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
(
hexString
:
"#6D788A"
)
return
label
}()
private
lazy
var
inputTextField
:
UITextField
=
{
let
textField
=
UITextField
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
40
))
textField
.
textColor
=
.
mainTextColor
textField
.
font
=
.
PFSC_M
(
ofSize
:
14
)
textField
.
placeholder
=
"请输入人民币金额"
textField
.
borderStyle
=
.
none
textField
.
delegate
=
self
textField
.
keyboardType
=
.
numberPad
return
textField
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
detail
:
String
?,
inputValue
:
String
?,
showBottomLine
:
Bool
=
true
,
showStarIcon
:
Bool
=
false
)
{
infoTitleLabel
.
text
=
title
bottomLineView
.
isHidden
=
!
showBottomLine
inputTextField
.
text
=
inputValue
dotIcon
.
isHidden
=
!
showStarIcon
if
showStarIcon
{
infoTitleLabel
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalTo
(
dotIcon
.
snp
.
right
)
.
offset
(
2
)
make
.
bottom
.
lessThanOrEqualToSuperview
()
.
offset
(
-
16
)
make
.
width
.
lessThanOrEqualTo
(
102
)
}
}
else
{
infoTitleLabel
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
bottom
.
lessThanOrEqualToSuperview
()
.
offset
(
-
16
)
make
.
width
.
lessThanOrEqualTo
(
102
)
}
}
updateDetailText
(
detail
)
}
func
updateDetailText
(
_
text
:
String
?)
{
infoDetailLabel
.
text
=
text
if
let
text
=
text
,
text
.
count
>
0
{
infoDetailLabel
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
inputTextField
.
snp
.
bottom
)
.
offset
(
4
)
make
.
bottom
.
lessThanOrEqualToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
}
else
{
infoDetailLabel
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
inputTextField
.
snp
.
bottom
)
.
offset
(
0
)
make
.
bottom
.
lessThanOrEqualToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
}
}
}
extension
YHIncomeInputMoneyCell
{
private
func
setupUI
()
{
updateCellCorner
(
.
mid
)
subContainerView
.
addSubview
(
dotIcon
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
inputTextField
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
bottomLineView
)
dotIcon
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
infoTitleLabel
.
setContentCompressionResistancePriority
(
.
defaultHigh
,
for
:
.
horizontal
)
infoDetailLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
inputTextField
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
dotIcon
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
width
.
height
.
equalTo
(
6
)
}
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalTo
(
dotIcon
.
snp
.
right
)
.
offset
(
2
)
make
.
bottom
.
lessThanOrEqualToSuperview
()
.
offset
(
-
16
)
make
.
width
.
lessThanOrEqualTo
(
102
)
}
inputTextField
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
inputTextField
.
snp
.
bottom
)
.
offset
(
4
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
0.5
)
}
}
}
extension
YHIncomeInputMoneyCell
:
UITextFieldDelegate
{
// MARK: - UITextFieldDelegate
func
textFieldShouldReturn
(
_
textField
:
UITextField
)
->
Bool
{
textField
.
endEditing
(
false
)
return
true
}
func
textFieldDidEndEditing
(
_
textField
:
UITextField
)
{
if
textField
==
inputTextField
{
didEndEditing
?(
textField
)
}
}
func
textField
(
_
textField
:
UITextField
,
shouldChangeCharactersIn
range
:
NSRange
,
replacementString
string
:
String
)
->
Bool
{
if
textField
==
inputTextField
{
/// 输入删除
if
string
==
""
{
return
true
}
/// 禁止拷贝非数字
let
number
=
CharacterSet
(
charactersIn
:
"0123456789"
)
if
(
string
as
NSString
)
.
rangeOfCharacter
(
from
:
number
.
inverted
)
.
location
!=
NSNotFound
{
return
false
}
}
return
true
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeItemOccupyingCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeItemOccupyingCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeItemOccupyingCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeItemOccupyingCell"
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_B
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"收入信息1"
return
label
}()
private
lazy
var
rightLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
12
)
label
.
textColor
=
UIColor
(
hexString
:
"#8993A2"
)
label
.
text
=
"待填写"
return
label
}()
private
lazy
var
rightArrowIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"form_right_arrow"
))
return
imageView
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
rightText
:
String
=
"待填写"
,
showBottomLine
:
Bool
=
false
)
{
infoTitleLabel
.
text
=
title
rightLabel
.
text
=
rightText
bottomLineView
.
isHidden
=
!
showBottomLine
}
}
extension
YHIncomeItemOccupyingCell
{
private
func
setupUI
()
{
updateCellCorner
(
.
mid
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
rightArrowIcon
)
subContainerView
.
addSubview
(
rightLabel
)
subContainerView
.
addSubview
(
bottomLineView
)
infoTitleLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
rightArrowIcon
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
rightLabel
.
setContentCompressionResistancePriority
(
.
defaultHigh
,
for
:
.
horizontal
)
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
}
rightArrowIcon
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
width
.
height
.
equalTo
(
20
)
make
.
centerY
.
equalTo
(
infoTitleLabel
)
}
rightLabel
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
rightArrowIcon
.
snp
.
left
)
.
offset
(
-
2
)
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
left
.
greaterThanOrEqualTo
(
infoTitleLabel
.
snp
.
right
)
.
offset
(
10
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoTitleLabel
.
snp
.
bottom
)
.
offset
(
16
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeRecordFromCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeRecordFromCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/15.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeRecordFromCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeRecordFromCell"
private
lazy
var
dotIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
return
imageView
}()
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"收入来源公司"
return
label
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byWordWrapping
return
label
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
detail
:
String
,
showBottomLine
:
Bool
=
true
)
{
infoTitleLabel
.
text
=
title
infoDetailLabel
.
text
=
detail
bottomLineView
.
isHidden
=
!
showBottomLine
}
}
extension
YHIncomeRecordFromCell
{
private
func
setupUI
()
{
updateCellCorner
(
.
mid
)
subContainerView
.
addSubview
(
dotIcon
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
bottomLineView
)
dotIcon
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
infoTitleLabel
.
setContentCompressionResistancePriority
(
.
defaultHigh
,
for
:
.
horizontal
)
infoDetailLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
dotIcon
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
width
.
height
.
equalTo
(
6
)
}
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalToSuperview
()
make
.
left
.
equalTo
(
dotIcon
.
snp
.
right
)
.
offset
(
2
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
0.5
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeRecordItemCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeRecordItemCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeRecordItemCell
:
YHResignDocumentCell
{
var
deleteButtonClickEvent
:
(()
->
Void
)?
static
let
cellReuseIdentifier
=
"YHIncomeRecordItemCell"
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_B
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"收入信息1"
return
label
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
12
)
label
.
textColor
=
UIColor
(
hexString
:
"#8993A2"
)
return
label
}()
private
lazy
var
rightLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
12
)
label
.
textColor
=
UIColor
(
hexString
:
"#8993A2"
)
return
label
}()
private
lazy
var
rightArrowIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"form_right_arrow"
))
return
imageView
}()
private
lazy
var
deleteButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setTitle
(
"删除"
,
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
deleteButtonDidClick(_:)
)
,
for
:
.
touchUpInside
)
return
button
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
detail
:
String
,
rightText
:
String
,
isEditing
:
Bool
,
showBottomLine
:
Bool
)
{
infoTitleLabel
.
text
=
title
infoDetailLabel
.
text
=
detail
rightLabel
.
text
=
rightText
if
isEditing
{
rightLabel
.
isHidden
=
true
rightArrowIcon
.
isHidden
=
true
deleteButton
.
isHidden
=
true
bottomLineView
.
snp
.
remakeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoDetailLabel
.
snp
.
bottom
)
.
offset
(
16
)
}
}
else
{
rightLabel
.
isHidden
=
false
rightArrowIcon
.
isHidden
=
false
deleteButton
.
isHidden
=
true
bottomLineView
.
snp
.
remakeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoDetailLabel
.
snp
.
bottom
)
.
offset
(
16
)
}
}
bottomLineView
.
isHidden
=
!
showBottomLine
}
}
extension
YHIncomeRecordItemCell
{
@objc
private
func
deleteButtonDidClick
(
_
sender
:
UIButton
)
{
deleteButtonClickEvent
?()
}
private
func
setupUI
()
{
updateCellCorner
(
.
mid
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
deleteButton
)
subContainerView
.
addSubview
(
rightArrowIcon
)
subContainerView
.
addSubview
(
rightLabel
)
subContainerView
.
addSubview
(
bottomLineView
)
infoTitleLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
deleteButton
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
rightArrowIcon
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
rightLabel
.
setContentCompressionResistancePriority
(
.
defaultHigh
,
for
:
.
horizontal
)
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
}
deleteButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
width
.
equalTo
(
28
)
make
.
height
.
equalTo
(
20
)
make
.
left
.
greaterThanOrEqualTo
(
infoTitleLabel
.
snp
.
right
)
.
offset
(
10
)
}
rightArrowIcon
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
width
.
height
.
equalTo
(
20
)
make
.
centerY
.
equalTo
(
infoTitleLabel
)
}
rightLabel
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
rightArrowIcon
.
snp
.
left
)
.
offset
(
-
2
)
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
left
.
greaterThanOrEqualTo
(
infoTitleLabel
.
snp
.
right
)
.
offset
(
10
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
infoTitleLabel
.
snp
.
left
)
make
.
top
.
equalTo
(
infoTitleLabel
.
snp
.
bottom
)
.
offset
(
2
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoDetailLabel
.
snp
.
bottom
)
.
offset
(
16
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeRecordSummaryCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeRecordSummaryCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeRecordSummaryCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeRecordSummaryCell"
var
rightButtonClickEvent
:
(()
->
Void
)?
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"主申请人收入记录"
return
label
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
12
)
label
.
textColor
=
UIColor
(
hexString
:
"#8993A2"
)
label
.
text
=
"(仅申报近12个月应纳税收入总额))"
return
label
}()
private
lazy
var
rightButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"work_more"
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
rightButtonDidClick(_:)
)
,
for
:
.
touchUpInside
)
return
button
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
_
isEditing
:
Bool
,
_
isEditEnable
:
Bool
)
{
rightButton
.
isEnabled
=
isEditEnable
updateRightButtonState
(
isEditing
)
}
}
extension
YHIncomeRecordSummaryCell
{
@objc
private
func
rightButtonDidClick
(
_
sender
:
UIButton
)
{
rightButtonClickEvent
?()
}
private
func
updateRightButtonState
(
_
isEditing
:
Bool
)
{
if
isEditing
{
rightButton
.
setImage
(
nil
,
for
:
.
normal
)
rightButton
.
setTitle
(
"取消操作"
,
for
:
.
normal
)
rightButton
.
setTitleColor
(
.
brandMainColor
,
for
:
.
normal
)
rightButton
.
titleLabel
?
.
font
=
.
PFSC_R
(
ofSize
:
14
)
}
else
{
rightButton
.
setImage
(
UIImage
(
named
:
"work_more"
),
for
:
.
normal
)
rightButton
.
setTitle
(
nil
,
for
:
.
normal
)
}
}
private
func
setupUI
()
{
updateCellCorner
(
.
top
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
rightButton
)
subContainerView
.
addSubview
(
bottomLineView
)
rightButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
width
.
height
.
equalTo
(
24
)
}
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
lessThanOrEqualTo
(
rightButton
.
snp
.
left
)
.
offset
(
-
10
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
infoTitleLabel
.
snp
.
left
)
make
.
top
.
equalTo
(
infoTitleLabel
.
snp
.
bottom
)
.
offset
(
2
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoDetailLabel
.
snp
.
bottom
)
.
offset
(
16
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeRemarkCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeRemarkCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/16.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeRemarkCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeRemarkCell"
private
lazy
var
containerView
:
YHBaseDynamicCornerRadiusView
=
{
let
view
=
YHBaseDynamicCornerRadiusView
(
cornerRadius
:
3
,
corner
:
.
allCorners
)
view
.
backgroundColor
=
UIColor
(
hexString
:
"#F5F6F8"
)
return
view
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
12
)
label
.
textColor
=
UIColor
(
hexString
:
"#8993A2"
)
label
.
text
=
"注:按1港币≈0.92人民币计算,实际金额按递交时入境处给出的汇率为准"
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byWordWrapping
return
label
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
_
detail
:
String
)
{
infoDetailLabel
.
text
=
detail
}
}
extension
YHIncomeRemarkCell
{
private
func
setupUI
()
{
updateCellCorner
(
.
bottom
)
subContainerView
.
addSubview
(
containerView
)
containerView
.
addSubview
(
infoDetailLabel
)
containerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
8
)
make
.
left
.
equalToSuperview
()
.
offset
(
10
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
10
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
8
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeTypePopViewSelectCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeTypePopViewSelectCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/16.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeTypePopViewSelectCell
:
UITableViewCell
{
static
let
cellReuseIdentifier
=
"YHIncomeTypePopViewSelectCell"
var
isCurrentSelected
:
Bool
=
false
{
didSet
{
checkIcon
.
image
=
isCurrentSelected
?
UIImage
(
named
:
"income_type_check_btn_1"
)
:
UIImage
(
named
:
"income_type_check_btn_0"
)
containerView
.
lineWidth
=
isCurrentSelected
?
1
:
nil
containerView
.
lineColor
=
isCurrentSelected
?
UIColor
.
brandMainColor
.
cgColor
:
nil
}
}
private
lazy
var
checkIcon
:
UIImageView
=
{
// income_type_check_btn_1
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"income_type_check_btn_0"
))
return
imageView
}()
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
(
hexString
:
"#141414"
)
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byCharWrapping
return
label
}()
private
lazy
var
containerView
:
YHBaseCornerRadiusBorderView
=
{
let
view
=
YHBaseCornerRadiusBorderView
.
init
(
cornerRadius
:
3
,
corner
:
.
allCorners
,
lineWidth
:
nil
,
lineColor
:
nil
)
view
.
backgroundColor
=
.
contentBkgColor
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
isSelected
:
Bool
)
{
infoTitleLabel
.
text
=
title
isCurrentSelected
=
isSelected
}
private
func
setupUI
()
{
selectionStyle
=
.
none
backgroundColor
=
.
clear
contentView
.
addSubview
(
containerView
)
containerView
.
addSubview
(
checkIcon
)
containerView
.
addSubview
(
infoTitleLabel
)
containerView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
21
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
21
)
}
checkIcon
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
infoTitleLabel
.
snp
.
top
)
.
offset
(
4
)
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
width
.
height
.
equalTo
(
14
)
}
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
checkIcon
.
snp
.
right
)
.
offset
(
8
)
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
16
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeTypeSelectCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeTypeSelectCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/15.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
AttributedString
import
UIKit
class
YHIncomeTypeSelectCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeTypeSelectCell"
private
lazy
var
dotIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
return
imageView
}()
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"收入类型(多选)"
return
label
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
(
hexString
:
"#B9C1CC"
)
label
.
text
=
"请选择"
return
label
}()
private
lazy
var
rightArrowIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"form_right_arrow"
))
return
imageView
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
detail
:
String
=
"请选择"
,
isSelectedOne
:
Bool
=
false
,
showBottomLine
:
Bool
=
false
)
{
infoTitleLabel
.
text
=
title
infoDetailLabel
.
text
=
detail
infoDetailLabel
.
isHidden
=
isSelectedOne
bottomLineView
.
isHidden
=
!
showBottomLine
}
}
extension
YHIncomeTypeSelectCell
{
private
func
setupUI
()
{
updateCellCorner
(
.
mid
)
subContainerView
.
addSubview
(
dotIcon
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
rightArrowIcon
)
subContainerView
.
addSubview
(
bottomLineView
)
dotIcon
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
infoTitleLabel
.
setContentCompressionResistancePriority
(
.
defaultHigh
,
for
:
.
horizontal
)
infoDetailLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
rightArrowIcon
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
dotIcon
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
width
.
height
.
equalTo
(
6
)
}
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalToSuperview
()
make
.
left
.
equalTo
(
dotIcon
.
snp
.
right
)
.
offset
(
2
)
}
rightArrowIcon
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
width
.
height
.
equalTo
(
20
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
right
.
lessThanOrEqualTo
(
rightArrowIcon
.
snp
.
left
)
.
offset
(
-
18
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
0.5
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeTypesCell.swift
0 → 100644
View file @
41597cdd
//
// YHIncomeTypesCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/15.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeTypesCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeTypesCell"
var
didClickTypeView
:
((
Int
)
->
Void
)?
private
var
typeViews
:
[
YHIncomeTypeView
]
=
[]
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
private
func
setupUI
()
{
updateCellCorner
(
.
mid
)
subContainerView
.
addSubview
(
bottomLineView
)
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
0.5
)
}
}
func
setupCellInfo
(
types
:
[
String
])
{
typeViews
.
forEach
{
$0
.
removeFromSuperview
()
}
typeViews
.
removeAll
()
let
count
=
types
.
count
types
.
enumerated
()
.
forEach
{
[
weak
self
]
index
,
title
in
guard
let
self
=
self
else
{
return
}
let
typeView
=
YHIncomeTypeView
()
typeView
.
setupInfo
(
title
)
typeView
.
closeButtonEvent
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
self
.
didClickTypeView
?(
index
)
}
self
.
typeViews
.
append
(
typeView
)
self
.
subContainerView
.
addSubview
(
typeView
)
typeView
.
snp
.
makeConstraints
{
make
in
if
index
==
0
{
make
.
top
.
equalToSuperview
()
}
else
{
make
.
top
.
equalTo
(
self
.
typeViews
[
index
-
1
]
.
snp
.
bottom
)
.
offset
(
8
)
}
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
if
index
==
count
-
1
{
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
}
}
}
}
}
private
class
YHIncomeTypeView
:
UIView
{
var
closeButtonEvent
:
(()
->
Void
)?
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
12
)
label
.
textColor
=
.
mainTextColor
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byCharWrapping
return
label
}()
private
lazy
var
closeButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"income_type_close"
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
closeButtonClicked
)
,
for
:
.
touchUpInside
)
return
button
}()
private
lazy
var
lineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setupUI
()
}
@MainActor
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
@objc
private
func
closeButtonClicked
()
{
closeButtonEvent
?()
}
func
setupInfo
(
_
detail
:
String
)
{
infoDetailLabel
.
text
=
detail
}
private
func
setupUI
()
{
backgroundColor
=
UIColor
(
hexString
:
"#F5F6F8"
)
addSubview
(
infoDetailLabel
)
addSubview
(
lineView
)
addSubview
(
closeButton
)
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
10
)
make
.
top
.
equalToSuperview
()
.
offset
(
8
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
8
)
}
lineView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
infoDetailLabel
.
snp
.
right
)
.
offset
(
8
)
make
.
height
.
equalTo
(
20
)
make
.
width
.
equalTo
(
1
)
make
.
centerY
.
equalToSuperview
()
}
closeButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
make
.
left
.
equalTo
(
lineView
.
snp
.
right
)
make
.
width
.
height
.
equalTo
(
26
)
make
.
centerY
.
equalToSuperview
()
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHInfoConsentForHKTravelCell.swift
0 → 100644
View file @
41597cdd
//
// YHInfoConsentForHKTravelCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
AttributedString
import
UIKit
class
YHInfoConsentForHKTravelCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHInfoConsentForHKTravelCell"
var
didSelectSureButton
:
((
Bool
)
->
Void
)?
var
selectedSureButton
:
Bool
=
true
{
didSet
{
updateButtonState
(
sureButton
,
selectedSureButton
)
updateButtonState
(
cancelButton
,
!
selectedSureButton
)
}
}
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
UIColor
.
mainTextColor
return
label
}()
private
lazy
var
topLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
13
)
label
.
textColor
=
UIColor
(
hexString
:
"#8993A2"
)
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byCharWrapping
return
label
}()
private
lazy
var
dotIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
return
imageView
}()
private
lazy
var
infoQuestionLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byWordWrapping
return
label
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
private
lazy
var
sureButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
.
PFSC_M
(
ofSize
:
13
)
button
.
setTitle
(
"是"
,
for
:
.
normal
)
button
.
setTitleColor
(
.
mainTextColor
,
for
:
.
normal
)
button
.
setTitleColor
(
.
brandMainColor
,
for
:
.
selected
)
button
.
addTarget
(
self
,
action
:
#selector(
sureButtonDidClick(_:)
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
16.0
button
.
clipsToBounds
=
true
return
button
}()
private
lazy
var
cancelButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
.
PFSC_M
(
ofSize
:
13
)
button
.
setTitle
(
"否"
,
for
:
.
normal
)
button
.
setTitleColor
(
.
mainTextColor
,
for
:
.
normal
)
button
.
setTitleColor
(
.
brandMainColor
,
for
:
.
selected
)
button
.
addTarget
(
self
,
action
:
#selector(
cancelButtonDidClick(_:)
)
,
for
:
.
touchUpInside
)
button
.
layer
.
cornerRadius
=
16
button
.
clipsToBounds
=
true
return
button
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
detail
:
ASAttributedString
,
question
:
String
)
{
infoTitleLabel
.
text
=
title
infoDetailLabel
.
attributed
.
text
=
detail
infoQuestionLabel
.
text
=
question
}
}
extension
YHInfoConsentForHKTravelCell
{
@objc
private
func
cancelButtonDidClick
(
_
sender
:
UIButton
)
{
guard
!
sender
.
isSelected
else
{
return
}
selectedSureButton
=
false
didSelectSureButton
?(
false
)
}
@objc
private
func
sureButtonDidClick
(
_
sender
:
UIButton
)
{
guard
!
sender
.
isSelected
else
{
return
}
selectedSureButton
=
true
didSelectSureButton
?(
true
)
}
private
func
setupUI
()
{
updateCellCorner
(
.
single
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
topLineView
)
subContainerView
.
addSubview
(
bottomLineView
)
subContainerView
.
addSubview
(
dotIcon
)
subContainerView
.
addSubview
(
infoQuestionLabel
)
subContainerView
.
addSubview
(
sureButton
)
subContainerView
.
addSubview
(
cancelButton
)
sureButton
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
cancelButton
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
infoQuestionLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
topLineView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoTitleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
infoTitleLabel
.
snp
.
left
)
make
.
top
.
equalTo
(
topLineView
.
snp
.
bottom
)
.
offset
(
16
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
dotIcon
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
infoTitleLabel
.
snp
.
left
)
make
.
height
.
width
.
equalTo
(
6
)
make
.
top
.
equalTo
(
infoQuestionLabel
.
snp
.
top
)
.
offset
(
7
)
}
infoQuestionLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
dotIcon
.
snp
.
right
)
.
offset
(
2
)
make
.
top
.
equalTo
(
infoDetailLabel
.
snp
.
bottom
)
.
offset
(
16
)
make
.
height
.
greaterThanOrEqualTo
(
40
)
make
.
width
.
lessThanOrEqualTo
(
113
)
}
cancelButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
32
)
make
.
width
.
equalTo
(
69
)
make
.
centerY
.
equalTo
(
infoQuestionLabel
)
}
sureButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
cancelButton
.
snp
.
left
)
.
offset
(
-
8
)
make
.
height
.
equalTo
(
32
)
make
.
width
.
equalTo
(
69
)
make
.
centerY
.
equalTo
(
infoQuestionLabel
)
make
.
left
.
greaterThanOrEqualTo
(
infoQuestionLabel
.
snp
.
right
)
.
offset
(
8
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoQuestionLabel
.
snp
.
bottom
)
.
offset
(
22
)
}
selectedSureButton
=
true
}
private
func
updateButtonState
(
_
button
:
UIButton
,
_
isSelected
:
Bool
)
{
button
.
isSelected
=
isSelected
button
.
backgroundColor
=
isSelected
?
UIColor
(
hexString
:
"#EBF0F9"
)
:
.
contentBkgColor
button
.
layer
.
borderColor
=
isSelected
?
UIColor
.
brandMainColor
.
cgColor
:
nil
button
.
layer
.
borderWidth
=
isSelected
?
1
:
0
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHTotalIncomeCell.swift
0 → 100644
View file @
41597cdd
//
// YHTotalIncomeCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
AttributedString
import
UIKit
class
YHTotalIncomeCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHTotalIncomeCell"
var
didClickInfoButton
:
(()
->
Void
)?
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_B
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"总收入"
return
label
}()
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
16
)
label
.
textColor
=
.
brandMainColor
label
.
lineBreakMode
=
.
byCharWrapping
return
label
}()
private
lazy
var
infoButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"other_info_warning"
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
infoButtonDidClick(_:)
)
,
for
:
.
touchUpInside
)
return
button
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
detail
:
ASAttributedString
)
{
infoDetailLabel
.
attributed
.
text
=
detail
}
}
extension
YHTotalIncomeCell
{
@objc
private
func
infoButtonDidClick
(
_
sender
:
UIButton
)
{
didClickInfoButton
?()
}
private
func
setupUI
()
{
updateCellCorner
(
.
mid
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
infoButton
)
infoTitleLabel
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
infoButton
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
infoDetailLabel
.
setContentCompressionResistancePriority
(
.
defaultLow
,
for
:
.
horizontal
)
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
}
infoButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
infoTitleLabel
.
snp
.
right
)
.
offset
(
4
)
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
width
.
height
.
equalTo
(
16
)
}
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
left
.
greaterThanOrEqualTo
(
infoButton
.
snp
.
right
)
.
offset
(
10
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHWorkingHourHeaderCell.swift
0 → 100644
View file @
41597cdd
//
// YHWorkingHourHeaderCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHWorkingHourHeaderCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHWorkingHourHeaderCell"
private
lazy
var
infoTitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"工作时间说明"
return
label
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
_
title
:
String
)
{
infoTitleLabel
.
text
=
title
}
}
extension
YHWorkingHourHeaderCell
{
private
func
setupUI
()
{
updateCellCorner
(
.
top
)
subContainerView
.
addSubview
(
infoTitleLabel
)
subContainerView
.
addSubview
(
bottomLineView
)
infoTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoTitleLabel
.
snp
.
bottom
)
.
offset
(
12
)
make
.
bottom
.
equalToSuperview
()
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHWorkingHoursStatementCell.swift
0 → 100644
View file @
41597cdd
//
// YHWorkingHoursStatementCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
AttributedString
import
UIKit
class
YHWorkingHoursStatementCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHWorkingHoursStatementCell"
private
let
maxCount
=
200
var
textViewDidChanged
:
((
UITextView
)
->
Void
)?
var
textDidExceedsMaxLimit
:
((
Int
)
->
Void
)?
private
lazy
var
infoDetailLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
.
PFSC_R
(
ofSize
:
13
)
label
.
textColor
=
UIColor
(
hexString
:
"#8993A2"
)
label
.
numberOfLines
=
0
label
.
lineBreakMode
=
.
byCharWrapping
return
label
}()
private
lazy
var
remarkTextViewContainer
:
YHBaseDynamicCornerRadiusView
=
{
let
view
=
YHBaseDynamicCornerRadiusView
(
cornerRadius
:
1
,
corner
:
.
allCorners
)
view
.
backgroundColor
=
.
contentBkgColor
return
view
}()
private
lazy
var
remarkTextView
:
UITextView
=
{
let
view
=
UITextView
()
view
.
backgroundColor
=
.
clear
view
.
font
=
.
PFSC_R
(
ofSize
:
14
)
view
.
textColor
=
.
mainTextColor
view
.
tintColor
=
.
mainTextColor
view
.
returnKeyType
=
.
default
view
.
enablesReturnKeyAutomatically
=
true
view
.
delegate
=
self
view
.
textContainerInset
=
.
zero
view
.
textContainer
.
lineFragmentPadding
=
0
return
view
}()
private
lazy
var
editTipsLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
isHidden
=
true
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
init
(
hexString
:
"#B9C1CC"
)
return
label
}()
private
lazy
var
countLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"0/
\(
maxCount
)
"
label
.
font
=
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
(
hexString
:
"#D5DAE1"
)
return
label
}()
private
lazy
var
bottomLineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hexString
:
"#E9ECF0"
)
return
view
}()
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
placeholder
:
String
,
remark
:
String
?,
detail
:
ASAttributedString
,
isShowBottomLine
:
Bool
)
{
editTipsLabel
.
text
=
placeholder
remarkTextView
.
text
=
remark
infoDetailLabel
.
attributed
.
text
=
detail
bottomLineView
.
isHidden
=
!
isShowBottomLine
}
}
extension
YHWorkingHoursStatementCell
{
private
func
setupUI
()
{
updateCellCorner
(
.
bottom
)
subContainerView
.
addSubview
(
infoDetailLabel
)
subContainerView
.
addSubview
(
remarkTextViewContainer
)
subContainerView
.
addSubview
(
bottomLineView
)
remarkTextViewContainer
.
addSubview
(
editTipsLabel
)
remarkTextViewContainer
.
addSubview
(
remarkTextView
)
remarkTextViewContainer
.
addSubview
(
countLabel
)
infoDetailLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
18
)
}
remarkTextViewContainer
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
infoDetailLabel
.
snp
.
bottom
)
.
offset
(
8
)
make
.
left
.
equalTo
(
infoDetailLabel
.
snp
.
left
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
160
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
}
editTipsLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
12
)
make
.
top
.
equalToSuperview
()
.
offset
(
12
)
make
.
right
.
lessThanOrEqualToSuperview
()
.
offset
(
-
12
)
}
countLabel
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
12
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
12
)
make
.
left
.
greaterThanOrEqualToSuperview
()
.
offset
(
12
)
}
remarkTextView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
12
)
make
.
top
.
equalToSuperview
()
.
offset
(
12
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
12
)
make
.
bottom
.
equalTo
(
countLabel
.
snp
.
top
)
}
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
height
.
equalTo
(
0.5
)
make
.
bottom
.
equalToSuperview
()
}
}
}
extension
YHWorkingHoursStatementCell
:
UITextViewDelegate
{
func
textViewDidChange
(
_
textView
:
UITextView
)
{
editTipsLabel
.
isHidden
=
textView
.
text
.
count
>
0
let
textCount
=
textView
.
text
?
.
utf16
.
count
??
0
countLabel
.
text
=
"
\(
textCount
)
/
\(
maxCount
)
"
textViewDidChanged
?(
textView
)
}
func
textView
(
_
textView
:
UITextView
,
shouldChangeTextIn
range
:
NSRange
,
replacementText
text
:
String
)
->
Bool
{
if
textView
==
remarkTextView
{
/// 正在输入拼音
if
let
textRange
=
textView
.
markedTextRange
,
range
.
length
==
0
{
/// 刚输入拼音的时候总字数
let
start
=
textView
.
offset
(
from
:
textView
.
beginningOfDocument
,
to
:
textRange
.
start
)
return
start
<=
maxCount
}
let
count
=
(
textView
.
text
?
.
utf16
.
count
??
0
)
-
range
.
length
+
text
.
utf16
.
count
if
count
>
maxCount
&&
text
==
""
{
return
true
}
guard
count
>
maxCount
else
{
return
true
}
textDidExceedsMaxLimit
?(
maxCount
)
return
false
}
return
true
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/Contents.json
0 → 100644
View file @
41597cdd
{
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_item_add.imageset/Contents.json
0 → 100644
View file @
41597cdd
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"gc_income_item_add@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"gc_income_item_add@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_item_add.imageset/gc_income_item_add@2x.png
0 → 100644
View file @
41597cdd
272 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_item_add.imageset/gc_income_item_add@3x.png
0 → 100644
View file @
41597cdd
342 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_check_btn_0.imageset/Contents.json
0 → 100644
View file @
41597cdd
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"income_type_check_btn_0@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"income_type_check_btn_0@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_check_btn_0.imageset/income_type_check_btn_0@2x.png
0 → 100644
View file @
41597cdd
596 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_check_btn_0.imageset/income_type_check_btn_0@3x.png
0 → 100644
View file @
41597cdd
861 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_check_btn_1.imageset/Contents.json
0 → 100644
View file @
41597cdd
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"income_type_check_btn_1@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"income_type_check_btn_1@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_check_btn_1.imageset/income_type_check_btn_1@2x.png
0 → 100644
View file @
41597cdd
498 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_check_btn_1.imageset/income_type_check_btn_1@3x.png
0 → 100644
View file @
41597cdd
715 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_close.imageset/Contents.json
0 → 100644
View file @
41597cdd
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"income_type_close@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"income_type_close@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_close.imageset/income_type_close@2x.png
0 → 100644
View file @
41597cdd
542 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/income_type_close.imageset/income_type_close@3x.png
0 → 100644
View file @
41597cdd
670 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/red_dot_6.imageset/Contents.json
0 → 100644
View file @
41597cdd
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"gc_red_dot@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"gc_red_dot@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/red_dot_6.imageset/gc_red_dot@2x.png
0 → 100644
View file @
41597cdd
400 Bytes
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/收入记录/red_dot_6.imageset/gc_red_dot@3x.png
0 → 100644
View file @
41597cdd
529 Bytes
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