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
da90be9e
Commit
da90be9e
authored
Dec 26, 2024
by
Alex朱枝文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
收入记录相关接口调试
parent
fc3de8cb
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
727 additions
and
205 deletions
+727
-205
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+24
-0
YHIncomeType.swift
...ceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeType.swift
+1
-1
YHEmploymentVerificationAvailableCell.swift
...ecord(收入记录)/V/YHEmploymentVerificationAvailableCell.swift
+2
-2
YHGCMineSchemeViewController.swift
...S(高才)/MyScheme(我的方案)/C/YHGCMineSchemeViewController.swift
+1
-1
YHGCIncomeRecordViewController.swift
...IncomeRecord(收入记录)/C/YHGCIncomeRecordViewController.swift
+36
-14
YHGCIncomeRecordWorkExperienceViewController.swift
...入记录)/C/YHGCIncomeRecordWorkExperienceViewController.swift
+277
-153
YHGCIncomeTypeSelectViewController.swift
...meRecord(收入记录)/C/YHGCIncomeTypeSelectViewController.swift
+235
-0
YHGCIncomeRecordSaveWorkModel.swift
.../IncomeRecord(收入记录)/M/YHGCIncomeRecordSaveWorkModel.swift
+17
-0
YHGCIncomeType.swift
...Process(我的信息流程)/IncomeRecord(收入记录)/M/YHGCIncomeType.swift
+45
-0
YHGCIncomeTypeSelectModel.swift
...息流程)/IncomeRecord(收入记录)/M/YHGCIncomeTypeSelectModel.swift
+20
-0
YHIncomeDateTillNowCell.swift
...的信息流程)/IncomeRecord(收入记录)/V/YHIncomeDateTillNowCell.swift
+55
-3
YHGCIncomeRecordViewModel.swift
...流程)/IncomeRecord(收入记录)/VM/YHGCIncomeRecordViewModel.swift
+0
-24
YHGCIncomeRecordWorkExperienceViewModel.swift
...rd(收入记录)/VM/YHGCIncomeRecordWorkExperienceViewModel.swift
+13
-6
YHGCWorkExperienceModel.swift
...息流程)/WorkExperience(工作经验)/M/YHGCWorkExperienceModel.swift
+1
-1
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
da90be9e
...
@@ -50,6 +50,10 @@
...
@@ -50,6 +50,10 @@
04307B932D1AB66100ED8E8D
/* YHGCPreviewWorkExpViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B892D1AB66100ED8E8D
/* YHGCPreviewWorkExpViewController.swift */
;
};
04307B932D1AB66100ED8E8D
/* YHGCPreviewWorkExpViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B892D1AB66100ED8E8D
/* YHGCPreviewWorkExpViewController.swift */
;
};
04307B962D1BAFD400ED8E8D
/* YHGCIncomeRecordViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B952D1BAFD400ED8E8D
/* YHGCIncomeRecordViewModel.swift */
;
};
04307B962D1BAFD400ED8E8D
/* YHGCIncomeRecordViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B952D1BAFD400ED8E8D
/* YHGCIncomeRecordViewModel.swift */
;
};
04307B982D1BB1AD00ED8E8D
/* YHGCIncomeRecordWorkExperienceViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B972D1BB1AD00ED8E8D
/* YHGCIncomeRecordWorkExperienceViewModel.swift */
;
};
04307B982D1BB1AD00ED8E8D
/* YHGCIncomeRecordWorkExperienceViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B972D1BB1AD00ED8E8D
/* YHGCIncomeRecordWorkExperienceViewModel.swift */
;
};
04307B9B2D1CF5EE00ED8E8D
/* YHGCIncomeRecordSaveWorkModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B9A2D1CF5EE00ED8E8D
/* YHGCIncomeRecordSaveWorkModel.swift */
;
};
04307B9D2D1D48E700ED8E8D
/* YHGCIncomeType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B9C2D1D48E700ED8E8D
/* YHGCIncomeType.swift */
;
};
04307B9F2D1D4B3600ED8E8D
/* YHGCIncomeTypeSelectViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B9E2D1D4B3600ED8E8D
/* YHGCIncomeTypeSelectViewController.swift */
;
};
04307BA12D1D4B9500ED8E8D
/* YHGCIncomeTypeSelectModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307BA02D1D4B9500ED8E8D
/* YHGCIncomeTypeSelectModel.swift */
;
};
045C0F7F2D12CA5F00BD2DC0
/* submit_page_scroll.gif in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F4F2D12CA5E00BD2DC0
/* submit_page_scroll.gif */
;
};
045C0F7F2D12CA5F00BD2DC0
/* submit_page_scroll.gif in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F4F2D12CA5E00BD2DC0
/* submit_page_scroll.gif */
;
};
045C0F802D12CA5F00BD2DC0
/* Localizable.xcstrings in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F762D12CA5E00BD2DC0
/* Localizable.xcstrings */
;
};
045C0F802D12CA5F00BD2DC0
/* Localizable.xcstrings in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F762D12CA5E00BD2DC0
/* Localizable.xcstrings */
;
};
045C0F812D12CA5F00BD2DC0
/* img_0.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F5E2D12CA5E00BD2DC0
/* img_0.png */
;
};
045C0F812D12CA5F00BD2DC0
/* img_0.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F5E2D12CA5E00BD2DC0
/* img_0.png */
;
};
...
@@ -1252,6 +1256,10 @@
...
@@ -1252,6 +1256,10 @@
04307B892D1AB66100ED8E8D
/* YHGCPreviewWorkExpViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCPreviewWorkExpViewController.swift
;
sourceTree
=
"<group>"
;
};
04307B892D1AB66100ED8E8D
/* YHGCPreviewWorkExpViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCPreviewWorkExpViewController.swift
;
sourceTree
=
"<group>"
;
};
04307B952D1BAFD400ED8E8D
/* YHGCIncomeRecordViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCIncomeRecordViewModel.swift
;
sourceTree
=
"<group>"
;
};
04307B952D1BAFD400ED8E8D
/* YHGCIncomeRecordViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCIncomeRecordViewModel.swift
;
sourceTree
=
"<group>"
;
};
04307B972D1BB1AD00ED8E8D
/* YHGCIncomeRecordWorkExperienceViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCIncomeRecordWorkExperienceViewModel.swift
;
sourceTree
=
"<group>"
;
};
04307B972D1BB1AD00ED8E8D
/* YHGCIncomeRecordWorkExperienceViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCIncomeRecordWorkExperienceViewModel.swift
;
sourceTree
=
"<group>"
;
};
04307B9A2D1CF5EE00ED8E8D
/* YHGCIncomeRecordSaveWorkModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCIncomeRecordSaveWorkModel.swift
;
sourceTree
=
"<group>"
;
};
04307B9C2D1D48E700ED8E8D
/* YHGCIncomeType.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCIncomeType.swift
;
sourceTree
=
"<group>"
;
};
04307B9E2D1D4B3600ED8E8D
/* YHGCIncomeTypeSelectViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCIncomeTypeSelectViewController.swift
;
sourceTree
=
"<group>"
;
};
04307BA02D1D4B9500ED8E8D
/* YHGCIncomeTypeSelectModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCIncomeTypeSelectModel.swift
;
sourceTree
=
"<group>"
;
};
045C09A12D12C2A800BD2DC0
/* YHGCMineSchemeViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCMineSchemeViewController.swift
;
sourceTree
=
"<group>"
;
};
045C09A12D12C2A800BD2DC0
/* YHGCMineSchemeViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCMineSchemeViewController.swift
;
sourceTree
=
"<group>"
;
};
045C0A142D12CA5E00BD2DC0
/* YHBaseViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewController.swift
;
sourceTree
=
"<group>"
;
};
045C0A142D12CA5E00BD2DC0
/* YHBaseViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewController.swift
;
sourceTree
=
"<group>"
;
};
045C0A152D12CA5E00BD2DC0
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
045C0A152D12CA5E00BD2DC0
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -2607,6 +2615,16 @@
...
@@ -2607,6 +2615,16 @@
path
=
VM
;
path
=
VM
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
};
};
04307B992D1CF5AC00ED8E8D
/* M */
=
{
isa
=
PBXGroup
;
children
=
(
04307B9A2D1CF5EE00ED8E8D
/* YHGCIncomeRecordSaveWorkModel.swift */
,
04307B9C2D1D48E700ED8E8D
/* YHGCIncomeType.swift */
,
04307BA02D1D4B9500ED8E8D
/* YHGCIncomeTypeSelectModel.swift */
,
);
path
=
M
;
sourceTree
=
"<group>"
;
};
045C0A182D12CA5E00BD2DC0
/* C */
=
{
045C0A182D12CA5E00BD2DC0
/* C */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
...
@@ -6120,6 +6138,7 @@
...
@@ -6120,6 +6138,7 @@
children
=
(
children
=
(
047A968A2D16AA410033BB4E
/* YHGCIncomeRecordViewController.swift */
,
047A968A2D16AA410033BB4E
/* YHGCIncomeRecordViewController.swift */
,
047A968B2D16AA410033BB4E
/* YHGCIncomeRecordWorkExperienceViewController.swift */
,
047A968B2D16AA410033BB4E
/* YHGCIncomeRecordWorkExperienceViewController.swift */
,
04307B9E2D1D4B3600ED8E8D
/* YHGCIncomeTypeSelectViewController.swift */
,
);
);
path
=
C
;
path
=
C
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -6127,6 +6146,7 @@
...
@@ -6127,6 +6146,7 @@
047A968E2D16AA410033BB4E
/* IncomeRecord(收入记录) */
=
{
047A968E2D16AA410033BB4E
/* IncomeRecord(收入记录) */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
04307B992D1CF5AC00ED8E8D
/* M */
,
04307B942D1BAE8800ED8E8D
/* VM */
,
04307B942D1BAE8800ED8E8D
/* VM */
,
047A96942D1900D00033BB4E
/* V */
,
047A96942D1900D00033BB4E
/* V */
,
047A968D2D16AA410033BB4E
/* C */
,
047A968D2D16AA410033BB4E
/* C */
,
...
@@ -7188,6 +7208,7 @@
...
@@ -7188,6 +7208,7 @@
045C114A2D12CA5F00BD2DC0
/* YHAdopterCardModel.swift in Sources */
,
045C114A2D12CA5F00BD2DC0
/* YHAdopterCardModel.swift in Sources */
,
045C114B2D12CA5F00BD2DC0
/* YHDocumentMessageTableViewCell.swift in Sources */
,
045C114B2D12CA5F00BD2DC0
/* YHDocumentMessageTableViewCell.swift in Sources */
,
045C114C2D12CA5F00BD2DC0
/* YHHUDSuccessView.swift in Sources */
,
045C114C2D12CA5F00BD2DC0
/* YHHUDSuccessView.swift in Sources */
,
04307B9D2D1D48E700ED8E8D
/* YHGCIncomeType.swift in Sources */
,
045C114D2D12CA5F00BD2DC0
/* YHVisaRenewalPayContentCell.swift in Sources */
,
045C114D2D12CA5F00BD2DC0
/* YHVisaRenewalPayContentCell.swift in Sources */
,
045C114E2D12CA5F00BD2DC0
/* YHMyPermissionSettingVC.swift in Sources */
,
045C114E2D12CA5F00BD2DC0
/* YHMyPermissionSettingVC.swift in Sources */
,
045C114F2D12CA5F00BD2DC0
/* YHAdopterIncomeTableViewCell.swift in Sources */
,
045C114F2D12CA5F00BD2DC0
/* YHAdopterIncomeTableViewCell.swift in Sources */
,
...
@@ -7461,6 +7482,7 @@
...
@@ -7461,6 +7482,7 @@
045C12452D12CA5F00BD2DC0
/* YHHUDErrorView.swift in Sources */
,
045C12452D12CA5F00BD2DC0
/* YHHUDErrorView.swift in Sources */
,
045C12462D12CA5F00BD2DC0
/* YHPrincleViewModel.swift in Sources */
,
045C12462D12CA5F00BD2DC0
/* YHPrincleViewModel.swift in Sources */
,
045C12472D12CA5F00BD2DC0
/* YHUploadCertificateListModel.swift in Sources */
,
045C12472D12CA5F00BD2DC0
/* YHUploadCertificateListModel.swift in Sources */
,
04307B9B2D1CF5EE00ED8E8D
/* YHGCIncomeRecordSaveWorkModel.swift in Sources */
,
04307B682D19911800ED8E8D
/* YHIncomeInfoEditCell.swift in Sources */
,
04307B682D19911800ED8E8D
/* YHIncomeInfoEditCell.swift in Sources */
,
045C12482D12CA5F00BD2DC0
/* YHResignUploadDetailModel.swift in Sources */
,
045C12482D12CA5F00BD2DC0
/* YHResignUploadDetailModel.swift in Sources */
,
045C12492D12CA5F00BD2DC0
/* UIApplication+Extension.swift in Sources */
,
045C12492D12CA5F00BD2DC0
/* UIApplication+Extension.swift in Sources */
,
...
@@ -7616,6 +7638,7 @@
...
@@ -7616,6 +7638,7 @@
045C12D82D12CA5F00BD2DC0
/* YHSubmitAllInfoSuccessAlertView.swift in Sources */
,
045C12D82D12CA5F00BD2DC0
/* YHSubmitAllInfoSuccessAlertView.swift in Sources */
,
045C12D92D12CA5F00BD2DC0
/* YHPayMemberSectionItem.swift in Sources */
,
045C12D92D12CA5F00BD2DC0
/* YHPayMemberSectionItem.swift in Sources */
,
045C12DA2D12CA5F00BD2DC0
/* YHPickTimeHoldView.swift in Sources */
,
045C12DA2D12CA5F00BD2DC0
/* YHPickTimeHoldView.swift in Sources */
,
04307B9F2D1D4B3600ED8E8D
/* YHGCIncomeTypeSelectViewController.swift in Sources */
,
045C12DB2D12CA5F00BD2DC0
/* YHServiceOrderInIncubationView.swift in Sources */
,
045C12DB2D12CA5F00BD2DC0
/* YHServiceOrderInIncubationView.swift in Sources */
,
045C12DC2D12CA5F00BD2DC0
/* YHUatHelperViewModel.swift in Sources */
,
045C12DC2D12CA5F00BD2DC0
/* YHUatHelperViewModel.swift in Sources */
,
045C12DD2D12CA5F00BD2DC0
/* YHServiceCenterViewModel.swift in Sources */
,
045C12DD2D12CA5F00BD2DC0
/* YHServiceCenterViewModel.swift in Sources */
,
...
@@ -7686,6 +7709,7 @@
...
@@ -7686,6 +7709,7 @@
045C13192D12CA5F00BD2DC0
/* YHQuestionAndAnswerViewController.swift in Sources */
,
045C13192D12CA5F00BD2DC0
/* YHQuestionAndAnswerViewController.swift in Sources */
,
045C131A2D12CA5F00BD2DC0
/* YHInvitationWithGiftsShareView.swift in Sources */
,
045C131A2D12CA5F00BD2DC0
/* YHInvitationWithGiftsShareView.swift in Sources */
,
045C131B2D12CA5F00BD2DC0
/* YHRangeDatePickerView2.swift in Sources */
,
045C131B2D12CA5F00BD2DC0
/* YHRangeDatePickerView2.swift in Sources */
,
04307BA12D1D4B9500ED8E8D
/* YHGCIncomeTypeSelectModel.swift in Sources */
,
045C131C2D12CA5F00BD2DC0
/* YHLookResignResultPrivateView.swift in Sources */
,
045C131C2D12CA5F00BD2DC0
/* YHLookResignResultPrivateView.swift in Sources */
,
045C131D2D12CA5F00BD2DC0
/* YHHKPlanItemView.swift in Sources */
,
045C131D2D12CA5F00BD2DC0
/* YHHKPlanItemView.swift in Sources */
,
045C131E2D12CA5F00BD2DC0
/* YHInvatationShareViewController.swift in Sources */
,
045C131E2D12CA5F00BD2DC0
/* YHInvatationShareViewController.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeType.swift
View file @
da90be9e
...
@@ -44,7 +44,7 @@ enum YHIncomeType: Int, CaseIterable {
...
@@ -44,7 +44,7 @@ enum YHIncomeType: Int, CaseIterable {
case
.
businessIncome
:
case
.
businessIncome
:
return
"个体工商户/合伙企业/独资企业经营所得收入"
return
"个体工商户/合伙企业/独资企业经营所得收入"
case
.
incomeOfOtherOverseasCompanies
:
case
.
incomeOfOtherOverseasCompanies
:
return
"其他境外公司收入(持股50%及以上"
return
"其他境外公司收入(持股50%及以上
)
"
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHEmploymentVerificationAvailableCell.swift
View file @
da90be9e
...
@@ -56,8 +56,8 @@ class YHEmploymentVerificationAvailableCell: YHResignDocumentCell {
...
@@ -56,8 +56,8 @@ class YHEmploymentVerificationAvailableCell: YHResignDocumentCell {
}
}
extension
YHEmploymentVerificationAvailableCell
{
extension
YHEmploymentVerificationAvailableCell
{
private
func
updateContentState
(
_
isBlank
:
Bool
)
{
private
func
updateContentState
(
_
is
Not
Blank
:
Bool
)
{
if
is
Blank
{
if
!
isNot
Blank
{
infoDetailLabel
.
text
=
"请选择"
infoDetailLabel
.
text
=
"请选择"
infoDetailLabel
.
font
=
.
PFSC_R
(
ofSize
:
14
)
infoDetailLabel
.
font
=
.
PFSC_R
(
ofSize
:
14
)
infoDetailLabel
.
textColor
=
UIColor
(
hexString
:
"#B9C1CC"
)
infoDetailLabel
.
textColor
=
UIColor
(
hexString
:
"#B9C1CC"
)
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/MyScheme(我的方案)/C/YHGCMineSchemeViewController.swift
View file @
da90be9e
...
@@ -125,7 +125,7 @@ extension YHGCMineSchemeViewController {
...
@@ -125,7 +125,7 @@ extension YHGCMineSchemeViewController {
let
industry
=
model
.
industry
.
defaultStringIfEmpty
()
let
industry
=
model
.
industry
.
defaultStringIfEmpty
()
let
model1
=
YHScemeItemModel
(
title
:
"职业界别"
,
mainMessage
:
"根据您目前给来的材料,初步建议您申请的行业:"
+
industry
,
lightMessage
:
industry
,
subMessage
:
"后续会根据您文书准备的补充情况来最终确定,如有修改会再告知您。"
,
lightFont
:
UIFont
.
PFSC_B
(
ofSize
:
16
),
hideTopLine
:
true
)
let
model1
=
YHScemeItemModel
(
title
:
"职业界别"
,
mainMessage
:
"根据您目前给来的材料,初步建议您申请的行业:"
+
industry
,
lightMessage
:
industry
,
subMessage
:
"后续会根据您文书准备的补充情况来最终确定,如有修改会再告知您。"
,
lightFont
:
UIFont
.
PFSC_B
(
ofSize
:
16
),
hideTopLine
:
true
)
let
contentStr
=
model
.
content
.
reduce
(
""
)
{
partialResult
,
current
in
let
contentStr
=
model
.
content
.
reduce
(
""
)
{
partialResult
,
current
in
partialResult
+
"
\n
"
+
current
partialResult
.
count
>
0
?
partialResult
+
"
\n
"
+
current
:
partialResult
+
current
}
}
let
model2
=
YHScemeItemModel
(
title
:
"资料清单"
,
buttonTitle
:
"资料清单"
,
mainMessage
:
"这是您的资料清单,请您前往查看。请您在1-2周内上传基础类证件哦,需要重新办理的可以晚些提供。需要注意的点如下:"
,
lightMessage
:
"1-2周内"
,
subMessage
:
"按照您填报的学历信息, 证明文件如下:
\(
contentStr
)
"
)
let
model2
=
YHScemeItemModel
(
title
:
"资料清单"
,
buttonTitle
:
"资料清单"
,
mainMessage
:
"这是您的资料清单,请您前往查看。请您在1-2周内上传基础类证件哦,需要重新办理的可以晚些提供。需要注意的点如下:"
,
lightMessage
:
"1-2周内"
,
subMessage
:
"按照您填报的学历信息, 证明文件如下:
\(
contentStr
)
"
)
self
.
dataSource
=
[
model1
,
model2
]
self
.
dataSource
=
[
model1
,
model2
]
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHGCIncomeRecordViewController.swift
View file @
da90be9e
...
@@ -19,8 +19,8 @@ class YHGCIncomeRecordViewController: YHBaseViewController {
...
@@ -19,8 +19,8 @@ class YHGCIncomeRecordViewController: YHBaseViewController {
case
totalIncome
(
_
money
:
ASAttributedString
)
case
totalIncome
(
_
money
:
ASAttributedString
)
case
consentForHKTravel
(
_
title
:
String
,
_
detail
:
ASAttributedString
,
_
question
:
String
)
case
consentForHKTravel
(
_
title
:
String
,
_
detail
:
ASAttributedString
,
_
question
:
String
)
case
questionSelect
(
_
question
:
String
)
case
questionSelect
(
_
question
:
String
)
case
employmentVerification
(
_
employments
:
[
YHWorkItemListModel
],
_
selectedId
:
Int
?)
case
employmentVerification
//
(_ employments: [YHWorkItemListModel], _ selectedId: Int?)
case
workingHoursStatement
(
_
placeholder
:
String
,
_
detail
:
ASAttributedString
,
_
content
:
String
)
case
workingHoursStatement
(
_
placeholder
:
String
,
_
detail
:
ASAttributedString
)
}
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
...
@@ -185,8 +185,9 @@ extension YHGCIncomeRecordViewController {
...
@@ -185,8 +185,9 @@ extension YHGCIncomeRecordViewController {
let
income
=
Double
(
companyModel
.
income
??
""
)
??
0
let
income
=
Double
(
companyModel
.
income
??
""
)
??
0
money
+=
income
money
+=
income
let
moneyStr
=
income
==
0
?
""
:
"约"
+
(
hkdFormatter
.
string
(
from
:
NSNumber
(
value
:
income
/
rate
))
??
"0"
)
+
"港币"
let
moneyStr
=
income
==
0
?
""
:
"约"
+
(
hkdFormatter
.
string
(
from
:
NSNumber
(
value
:
income
/
rate
))
??
"0"
)
+
"港币"
let
vacantNum
=
companyModel
.
vacant_num
??
0
// let vacantNum = companyModel.vacant_num ?? 0
let
timeStr
:
String
=
vacantNum
==
0
?
"已填写"
:
"有
\(
vacantNum
)
项未填写"
// let timeStr: String = vacantNum == 0 ? "已填写" : "有\(vacantNum)项未填写"
let
timeStr
:
String
=
(
companyModel
.
entry_time
??
""
)
+
"-"
+
(
companyModel
.
departure_time
??
""
)
let
incomeItem
:
TableRow
=
.
incomeItem
(
companyModel
.
company_name
??
""
,
moneyStr
,
timeStr
,
companyModel
.
id
??
0
,
index
!=
listCount
-
1
)
let
incomeItem
:
TableRow
=
.
incomeItem
(
companyModel
.
company_name
??
""
,
moneyStr
,
timeStr
,
companyModel
.
id
??
0
,
index
!=
listCount
-
1
)
firstSection
.
append
(
incomeItem
)
firstSection
.
append
(
incomeItem
)
}
}
...
@@ -200,7 +201,7 @@ extension YHGCIncomeRecordViewController {
...
@@ -200,7 +201,7 @@ extension YHGCIncomeRecordViewController {
if
viewModel
.
mainModel
.
has_work_time_overlap
==
1
{
if
viewModel
.
mainModel
.
has_work_time_overlap
==
1
{
let
tipsIcon
=
ASAttributedString
.
init
(
.
image
(
UIImage
(
named
:
"red_dot_6"
)
??
UIImage
(),
.
custom
(
.
offset
(
CGPoint
(
x
:
0
,
y
:
1
)),
size
:
.
init
(
width
:
6
,
height
:
6
))))
let
tipsIcon
=
ASAttributedString
.
init
(
.
image
(
UIImage
(
named
:
"red_dot_6"
)
??
UIImage
(),
.
custom
(
.
offset
(
CGPoint
(
x
:
0
,
y
:
1
)),
size
:
.
init
(
width
:
6
,
height
:
6
))))
let
tips
:
ASAttributedString
=
tipsIcon
+
.
init
(
string
:
" 检测到您的"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
+
.
init
(
string
:
"工作时间有重叠"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
.
failColor
))
+
.
init
(
string
:
"。请确认是否正确填报,若填报无误请在此处说明工作时间重叠的原因~"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
let
tips
:
ASAttributedString
=
tipsIcon
+
.
init
(
string
:
" 检测到您的"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
+
.
init
(
string
:
"工作时间有重叠"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
.
failColor
))
+
.
init
(
string
:
"。请确认是否正确填报,若填报无误请在此处说明工作时间重叠的原因~"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
secondSection
.
append
(
.
workingHoursStatement
(
"如:工作时间灵活,可自由安排"
,
tips
,
viewModel
.
mainModel
.
why_work_time_overlap
))
secondSection
.
append
(
.
workingHoursStatement
(
"如:工作时间灵活,可自由安排"
,
tips
))
}
}
var
thirdSection
:
[
TableRow
]
=
[]
var
thirdSection
:
[
TableRow
]
=
[]
...
@@ -218,8 +219,9 @@ extension YHGCIncomeRecordViewController {
...
@@ -218,8 +219,9 @@ extension YHGCIncomeRecordViewController {
})
})
thirdSection
.
append
(
.
consentForHKTravel
(
"赴港同意书提供"
,
detail
+
actionStr
,
"在职公司是否可以提供赴港同意书"
))
thirdSection
.
append
(
.
consentForHKTravel
(
"赴港同意书提供"
,
detail
+
actionStr
,
"在职公司是否可以提供赴港同意书"
))
if
viewModel
.
mainModel
.
has_company_consent
==
1
{
if
viewModel
.
mainModel
.
has_company_consent
==
1
{
let
id
=
viewModel
.
mainModel
.
consent_work_id
>
0
?
viewModel
.
mainModel
.
consent_work_id
:
nil
//let id = viewModel.mainModel.consent_work_id > 0 ? viewModel.mainModel.consent_work_id : nil
thirdSection
.
append
(
.
employmentVerification
(
viewModel
.
listModel
,
id
))
// thirdSection.append(.employmentVerification(viewModel.listModel, id))
thirdSection
.
append
(
.
employmentVerification
)
}
else
{
}
else
{
thirdSection
.
append
(
.
questionSelect
(
"人才中心是否可以提供赴港同意书"
))
thirdSection
.
append
(
.
questionSelect
(
"人才中心是否可以提供赴港同意书"
))
}
}
...
@@ -354,7 +356,7 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -354,7 +356,7 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
guard
let
self
=
self
else
{
guard
let
self
=
self
else
{
return
return
}
}
let
ctl
=
YHGCIncomeRecordWorkExperienceViewController
(
incomeId
:
0
)
let
ctl
=
YHGCIncomeRecordWorkExperienceViewController
(
incomeId
:
0
,
orderId
:
self
.
orderId
)
ctl
.
submitSuccess
=
{
[
weak
self
]
in
ctl
.
submitSuccess
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
guard
let
self
=
self
else
{
return
return
...
@@ -396,17 +398,30 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -396,17 +398,30 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
return
cell
return
cell
}
}
case
let
.
employmentVerification
(
employments
,
selectedId
):
case
.
employmentVerification
:
//
(employments, selectedId):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHEmploymentVerificationAvailableCell
.
cellReuseIdentifier
)
as?
YHEmploymentVerificationAvailableCell
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHEmploymentVerificationAvailableCell
.
cellReuseIdentifier
)
as?
YHEmploymentVerificationAvailableCell
{
let
employments
=
viewModel
.
listModel
let
selectedId
=
viewModel
.
mainModel
.
consent_work_id
>
0
?
viewModel
.
mainModel
.
consent_work_id
:
nil
let
selectedEmployment
=
employments
.
first
{
model
in
let
selectedEmployment
=
employments
.
first
{
model
in
model
.
id
==
selectedId
model
.
id
==
selectedId
}
}
cell
.
setupCellInfo
(
detail
:
selectedEmployment
?
.
company_name
)
cell
.
setupCellInfo
(
detail
:
selectedEmployment
?
.
company_name
)
return
cell
return
cell
}
}
case
let
.
workingHoursStatement
(
placeholder
,
tips
,
content
):
case
let
.
workingHoursStatement
(
placeholder
,
tips
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHWorkingHoursStatementCell
.
cellReuseIdentifier
)
as?
YHWorkingHoursStatementCell
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHWorkingHoursStatementCell
.
cellReuseIdentifier
)
as?
YHWorkingHoursStatementCell
{
let
content
=
viewModel
.
mainModel
.
why_work_time_overlap
cell
.
setupCellInfo
(
placeholder
:
placeholder
,
remark
:
content
,
detail
:
tips
,
isShowBottomLine
:
false
)
cell
.
setupCellInfo
(
placeholder
:
placeholder
,
remark
:
content
,
detail
:
tips
,
isShowBottomLine
:
false
)
cell
.
textDidExceedsMaxLimit
=
{
maxCount
in
YHHUD
.
flash
(
message
:
"不可超过
\(
maxCount
)
字"
)
}
cell
.
textViewDidChanged
=
{
[
weak
self
]
textView
in
guard
let
self
=
self
else
{
return
}
self
.
viewModel
.
mainModel
.
why_work_time_overlap
=
textView
.
text
}
return
cell
return
cell
}
}
}
}
...
@@ -436,7 +451,7 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -436,7 +451,7 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
}
}
let
tableRow
=
sectionArr
[
indexPath
.
row
]
let
tableRow
=
sectionArr
[
indexPath
.
row
]
if
case
let
.
incomeItem
(
_
,
_
,
_
,
incomeId
,
_
)
=
tableRow
{
if
case
let
.
incomeItem
(
_
,
_
,
_
,
incomeId
,
_
)
=
tableRow
{
let
ctl
=
YHGCIncomeRecordWorkExperienceViewController
(
incomeId
:
incomeId
)
let
ctl
=
YHGCIncomeRecordWorkExperienceViewController
(
incomeId
:
incomeId
,
orderId
:
orderId
)
ctl
.
submitSuccess
=
{
[
weak
self
]
in
ctl
.
submitSuccess
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
guard
let
self
=
self
else
{
return
return
...
@@ -444,7 +459,10 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -444,7 +459,10 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
self
.
requestData
(
isNeedLoading
:
true
)
self
.
requestData
(
isNeedLoading
:
true
)
}
}
navigationController
?
.
pushViewController
(
ctl
,
animated
:
true
)
navigationController
?
.
pushViewController
(
ctl
,
animated
:
true
)
}
else
if
case
let
.
employmentVerification
(
employments
,
selectedId
)
=
tableRow
{
}
else
if
case
.
employmentVerification
=
tableRow
{
let
employments
=
viewModel
.
listModel
let
selectedId
=
viewModel
.
mainModel
.
consent_work_id
>
0
?
viewModel
.
mainModel
.
consent_work_id
:
nil
guard
employments
.
count
>
1
else
{
guard
employments
.
count
>
1
else
{
return
return
}
}
...
@@ -454,8 +472,12 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -454,8 +472,12 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
let
firstIndex
=
employments
.
firstIndex
{
model
in
let
firstIndex
=
employments
.
firstIndex
{
model
in
model
.
id
==
selectedId
model
.
id
==
selectedId
}
}
YHDynamicSheetPickerView
.
show
(
dataSource
:
companies
,
title
:
"选择可提供的在职公司"
,
selectIndex
:
firstIndex
??
0
)
{
index
in
YHDynamicSheetPickerView
.
show
(
dataSource
:
companies
,
title
:
"选择可提供的在职公司"
,
selectIndex
:
firstIndex
??
0
)
{
[
weak
self
]
index
in
//
guard
let
self
=
self
else
{
return
}
self
.
viewModel
.
mainModel
.
consent_work_id
=
employments
[
index
]
.
id
??
0
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHGCIncomeRecordWorkExperienceViewController.swift
View file @
da90be9e
...
@@ -13,56 +13,33 @@ import UIKit
...
@@ -13,56 +13,33 @@ import UIKit
class
YHGCIncomeRecordWorkExperienceViewController
:
YHBaseViewController
{
class
YHGCIncomeRecordWorkExperienceViewController
:
YHBaseViewController
{
enum
TableRow
{
enum
TableRow
{
case
header
(
_
title
:
String
)
case
header
(
_
title
:
String
)
case
incomeFrom
(
_
title
:
String
,
_
detail
:
String
?,
_
placeholder
:
String
)
case
incomeFrom
(
_
title
:
String
,
_
placeholder
:
String
)
case
incomeTypeSelect
(
_
title
:
String
,
_
detail
:
String
,
_
isSelectedOne
:
Bool
)
case
incomeTypeSelect
(
_
title
:
String
,
_
detail
:
String
,
_
isSelectedOne
:
Bool
)
case
incomeTypes
(
_
types
:
[
YHIncomeType
])
case
incomeTypes
(
_
types
:
[
YH
GC
IncomeType
])
case
inputMoney
(
_
title
:
String
,
_
detail
:
String
?,
_
inputStr
:
String
?,
_
showBottomLine
:
Bool
,
_
showStar
:
Bool
,
_
isIncomeMoney
:
Bool
)
case
inputMoney
(
_
title
:
String
,
_
detail
:
String
?,
_
inputStr
:
String
?,
_
showBottomLine
:
Bool
,
_
showStar
:
Bool
,
_
isIncomeMoney
:
Bool
)
case
inputRemark
(
_
detail
:
String
)
case
inputRemark
(
_
detail
:
String
)
case
infoSelect
(
_
title
:
String
,
_
detail
:
String
?,
_
placeholder
:
String
)
case
infoSelect
(
_
title
:
String
,
_
placeholder
:
String
)
case
infoTillNowSelect
(
_
title
:
String
,
_
detail
:
String
?,
_
placeholder
:
String
,
_
isTillNow
:
Bool
)
case
infoTillNowSelect
(
_
title
:
String
,
_
placeholder
:
String
)
case
infoEdit
(
_
title
:
String
,
_
detail
:
String
?,
_
placeholder
:
String
)
case
infoEdit
(
_
title
:
String
,
_
placeholder
:
String
)
case
infoCheckbox
(
_
title
:
String
)
case
infoCheckbox
(
_
title
:
String
)
case
incomeTips
(
_
detail
:
ASAttributedString
)
case
uploadWorkId
(
_
title
:
String
,
_
detail
:
String
)
}
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
var
selectedTypes
:
[
YHIncomeType
]
=
[]
private
var
selectedTypes
:
[
YH
GC
IncomeType
]
=
[]
private
let
currencyRate
=
0.92
private
let
currencyRate
=
0.92
private
var
isSaving
=
false
private
var
isSaving
=
false
var
submitSuccess
:
(()
->
Void
)?
var
submitSuccess
:
(()
->
Void
)?
// 校验字段控制
/// 是否选定收入类型
/// 是否选定收入类型
private
var
isIncomeTypeOK
=
true
private
var
isIncomeTypeOK
=
true
private
var
incomeTypeIndexPath
:
IndexPath
?
private
var
incomeTypeIndexPath
:
IndexPath
?
/// 是否选定文件
private
var
isHasAllFileOK
=
true
private
var
hasAllFileIndexPath
:
IndexPath
?
/// 是否收入金额已填写
/// 是否收入金额已填写
private
var
isIncomeMoneyOK
=
true
private
var
isIncomeMoneyOK
=
true
private
var
incomMoneyIndexPath
:
IndexPath
?
private
var
incomMoneyIndexPath
:
IndexPath
?
private
lazy
var
viewModel
=
YHGCIncomeRecordWorkExperienceViewModel
()
private
lazy
var
viewModel
=
YHIncomeRecordViewModel
()
private
var
companyModel
=
YHIncomeCompanyDetailModel
()
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
=
{
private
lazy
var
submitButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
let
button
=
UIButton
(
type
:
.
custom
)
...
@@ -119,8 +96,10 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
...
@@ -119,8 +96,10 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
}()
}()
private
let
incomeId
:
Int
private
let
incomeId
:
Int
init
(
incomeId
:
Int
)
{
private
let
orderId
:
Int
init
(
incomeId
:
Int
,
orderId
:
Int
)
{
self
.
incomeId
=
incomeId
self
.
incomeId
=
incomeId
self
.
orderId
=
orderId
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
}
...
@@ -131,7 +110,12 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
...
@@ -131,7 +110,12 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
override
func
viewDidLoad
()
{
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
super
.
viewDidLoad
()
setupUI
()
setupUI
()
requestData
(
isNeedLoading
:
true
)
if
incomeId
!=
0
{
requestData
(
isNeedLoading
:
true
)
}
else
{
viewModel
.
position
.
order_id
=
orderId
setupData
()
}
}
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
...
@@ -143,39 +127,11 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
...
@@ -143,39 +127,11 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
super
.
viewWillDisappear
(
animated
)
super
.
viewWillDisappear
(
animated
)
IQKeyboardManager
.
shared
.
isEnabled
=
false
IQKeyboardManager
.
shared
.
isEnabled
=
false
}
}
/*
override func backItemClick(_ sender: Any) {
guard !isSaving else {
return
}
isSaving = true
submitIncome(.save) { [weak self] _ in
self?.isSaving = false
}
}
/// 是否可以返回,包括点击返回和手势返回,默认YES
override func navigationShouldPop() -> Bool {
guard !isSaving else {
return false
}
isSaving = true
submitIncome(.save) { [weak self] _ in
self?.isSaving = false
}
return false
}
*/
}
}
extension
YHGCIncomeRecordWorkExperienceViewController
{
extension
YHGCIncomeRecordWorkExperienceViewController
{
@objc
private
func
clickSaveButton
()
{
submitIncome
(
.
save
,
complete
:
{
_
in
})
}
@objc
private
func
clickSubmitButton
()
{
@objc
private
func
clickSubmitButton
()
{
submitIncome
(
.
submit
,
complete
:
{
_
in
})
submitIncome
(
complete
:
{
_
in
})
}
}
private
func
setupUI
()
{
private
func
setupUI
()
{
...
@@ -186,7 +142,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -186,7 +142,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
view
.
backgroundColor
=
UIColor
.
contentBkgColor
view
.
backgroundColor
=
UIColor
.
contentBkgColor
view
.
addSubview
(
tableView
)
view
.
addSubview
(
tableView
)
view
.
addSubview
(
bottomView
)
view
.
addSubview
(
bottomView
)
bottomView
.
addSubview
(
saveButton
)
bottomView
.
addSubview
(
submitButton
)
bottomView
.
addSubview
(
submitButton
)
bottomView
.
snp
.
makeConstraints
{
make
in
bottomView
.
snp
.
makeConstraints
{
make
in
...
@@ -195,15 +150,8 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -195,15 +150,8 @@ extension YHGCIncomeRecordWorkExperienceViewController {
make
.
top
.
equalTo
(
view
.
safeAreaLayoutGuide
.
snp
.
bottom
)
.
offset
(
-
64
)
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
submitButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
saveButton
.
snp
.
right
)
.
offset
(
10
)
make
.
left
.
equalTo
Superview
()
.
offset
(
16
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
height
.
equalTo
(
44
)
make
.
height
.
equalTo
(
44
)
...
@@ -219,32 +167,66 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -219,32 +167,66 @@ extension YHGCIncomeRecordWorkExperienceViewController {
}
}
private
func
setupData
()
{
private
func
setupData
()
{
selectedTypes
=
companyModel
.
income_typ
e
.
compactMap
{
selectedTypes
=
viewModel
.
position
.
type_of_incom
e
.
compactMap
{
YHIncomeType
(
rawValue
:
$0
)
YH
GC
IncomeType
(
rawValue
:
$0
)
}
}
var
firstSection
:
[
TableRow
]
=
[
.
header
(
"收入信息"
),
.
incomeFrom
(
"收入来源公司"
,
companyModel
.
company_name
,
"请填写公司全称"
),
.
incomeTypeSelect
(
"收入类型(多选)"
,
"请选择"
,
selectedTypes
.
count
>
0
)]
var
firstSection
:
[
TableRow
]
=
[
.
header
(
"收入信息"
),
.
incomeFrom
(
"收入来源公司"
,
"请填写公司全称"
),
.
incomeTypeSelect
(
"收入类型(多选)"
,
"请选择"
,
selectedTypes
.
count
>
0
)]
if
selectedTypes
.
count
>
0
{
if
selectedTypes
.
count
>
0
{
firstSection
.
append
(
.
incomeTypes
(
selectedTypes
))
firstSection
.
append
(
.
incomeTypes
(
selectedTypes
))
}
}
let
hkdFmt
=
currencyFormat
(
""
)
let
hkdFmt
=
currencyFormat
(
""
)
let
rmbFmt
=
currencyFormat
(
"¥"
)
let
rmbFmt
=
currencyFormat
(
"¥"
)
let
rate
=
companyModel
.
rate
>
0
?
companyModel
.
rate
:
0.92
let
rate
=
getCurrentRate
()
if
selectedTypes
.
contains
(
.
incomeOfMainland
)
||
selectedTypes
.
contains
(
.
incomeOfHKCompanies
)
||
selectedTypes
.
contains
(
.
incomeOfMacauCompanies
)
||
selectedTypes
.
contains
(
.
incomeOfOtherOverseasCompanies
)
{
if
selectedTypes
.
contains
(
.
incomeOfMainland
)
||
selectedTypes
.
contains
(
.
incomeOfHKCompanies
)
||
selectedTypes
.
contains
(
.
incomeOfMacauCompanies
)
||
selectedTypes
.
contains
(
.
incomeOfOtherOverseasCompanies
)
{
firstSection
.
append
(
.
inputMoney
(
"公司营业额(近一年)"
,
"约
\(
hkdFmt
.
string
(
from
:
NSNumber
(
value
:
companyModel
.
corporate_turnover
/
rate
))
??
"0"
)
港币"
,
rmbFmt
.
string
(
from
:
NSNumber
(
value
:
companyModel
.
corporate_turnover
))
??
"0"
,
true
,
false
,
false
))
let
turnover
=
Double
(
viewModel
.
position
.
turnover
)
??
0
firstSection
.
append
(
.
inputMoney
(
"公司营业额(近一年)"
,
"约
\(
hkdFmt
.
string
(
from
:
NSNumber
(
value
:
turnover
/
rate
))
??
"0"
)
港币"
,
rmbFmt
.
string
(
from
:
NSNumber
(
value
:
turnover
))
??
"0"
,
true
,
false
,
false
))
}
}
firstSection
.
append
(
.
inputMoney
(
"收入金额"
,
"约
\(
hkdFmt
.
string
(
from
:
NSNumber
(
value
:
companyModel
.
income_money
/
rate
))
??
"0"
)
港币"
,
rmbFmt
.
string
(
from
:
NSNumber
(
value
:
companyModel
.
income_money
))
??
"0"
,
false
,
true
,
true
))
let
income
=
Double
(
viewModel
.
position
.
income
)
??
0
firstSection
.
append
(
.
inputMoney
(
"收入金额"
,
"约
\(
hkdFmt
.
string
(
from
:
NSNumber
(
value
:
income
/
rate
))
??
"0"
)
港币"
,
rmbFmt
.
string
(
from
:
NSNumber
(
value
:
income
))
??
"0"
,
false
,
true
,
true
))
firstSection
.
append
(
.
inputRemark
(
"注:按1港币≈
\(
rate
)
人民币计算,实际金额按递交时入境处给出的汇率为准"
))
firstSection
.
append
(
.
inputRemark
(
"注:按1港币≈
\(
rate
)
人民币计算,实际金额按递交时入境处给出的汇率为准"
))
let
secondSection
:
[
TableRow
]
=
[
.
header
(
"企业信息"
),
.
infoSelect
(
"派薪国家/地区"
,
nil
,
"请选择"
),
.
infoSelect
(
"派薪城市"
,
nil
,
"请选择"
),
.
infoEdit
(
"职位"
,
nil
,
"请输入"
),
.
infoSelect
(
"入职年月"
,
nil
,
"请选择"
),
.
infoTillNowSelect
(
"离职年月"
,
nil
,
"请选择"
,
true
),
.
infoCheckbox
(
"是否可以提供工作证明"
),
.
infoSelect
(
"职业界别"
,
nil
,
"请选择"
),
.
infoEdit
(
"具体职业界别"
,
nil
,
"请输入"
)]
let
secondSection
=
getEnterpriseInfo
()
let
tips
:
ASAttributedString
=
.
init
(
string
:
"备注:为了进一步确认您的具体信息,如有相关"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
+
.
init
(
string
:
"工作/收入证明文件"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
.
brandMainColor
))
+
.
init
(
string
:
",请优先在列表上传。"
,
.
font
(
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
datas
=
[
firstSection
,
secondSection
]
let
thirdSection
:
[
TableRow
]
=
[
.
header
(
"工作证件(选填)"
),
.
incomeTips
(
tips
),
.
uploadWorkId
(
"上传工作证件"
,
"去上传"
)]
datas
=
[
firstSection
,
secondSection
,
thirdSection
]
tableView
.
reloadData
()
tableView
.
reloadData
()
}
}
@discardableResult
private
func
getEnterpriseInfo
(
needUpdateDataSource
:
Bool
=
false
)
->
[
TableRow
]
{
var
secondSection
:
[
TableRow
]
=
[
.
header
(
"企业信息"
),
.
infoSelect
(
"派薪国家/地区"
,
"请选择"
)]
if
viewModel
.
position
.
location
.
country
.
contains
(
"中国"
)
{
secondSection
.
append
(
.
infoSelect
(
"派薪城市"
,
"请选择"
))
}
else
{
secondSection
.
append
(
.
infoEdit
(
"派薪城市"
,
"请输入"
))
}
secondSection
.
append
(
contentsOf
:
[
.
infoEdit
(
"职位"
,
"请输入"
),
.
infoSelect
(
"入职年月"
,
"请选择"
),
.
infoTillNowSelect
(
"离职年月"
,
"请选择"
),
.
infoCheckbox
(
"是否可以提供工作证明"
),
.
infoSelect
(
"职业界别"
,
"请选择"
)])
if
viewModel
.
position
.
company_type
.
contains
(
"其他"
)
{
secondSection
.
append
(
.
infoEdit
(
"具体职业界别"
,
"请输入"
))
}
else
{
viewModel
.
position
.
company_type_other
=
""
}
if
needUpdateDataSource
{
if
let
index
=
datas
.
firstIndex
(
where
:
{
arr
in
if
arr
.
contains
(
where
:
{
row
in
if
case
let
.
header
(
title
)
=
row
,
title
==
"企业信息"
{
return
true
}
return
false
})
{
return
true
}
return
false
})
{
datas
[
index
]
=
secondSection
tableView
.
reloadSections
(
IndexSet
(
arrayLiteral
:
index
),
with
:
.
automatic
)
}
}
return
secondSection
}
private
func
showSelectIncomeTypePopVC
(
selectedTypes
:
[
YHIncomeType
])
{
private
func
showSelectIncomeTypePopVC
(
selectedTypes
:
[
YH
GC
IncomeType
])
{
let
ctl
=
YHIncomeTypeSelectViewController
(
selectedTypes
:
selectedTypes
)
let
ctl
=
YH
GC
IncomeTypeSelectViewController
(
selectedTypes
:
selectedTypes
)
let
bpc
=
YHBottomPresentationController
(
presentedViewController
:
ctl
,
presenting
:
self
)
let
bpc
=
YHBottomPresentationController
(
presentedViewController
:
ctl
,
presenting
:
self
)
bpc
.
customRadius
=
8.0
bpc
.
customRadius
=
8.0
ctl
.
transitioningDelegate
=
bpc
ctl
.
transitioningDelegate
=
bpc
...
@@ -259,8 +241,8 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -259,8 +241,8 @@ extension YHGCIncomeRecordWorkExperienceViewController {
}
}
private
func
updateSelectTypes
()
{
private
func
updateSelectTypes
()
{
companyModel
.
income_typ
e
=
selectedTypes
.
map
{
$0
.
rawValue
}
viewModel
.
position
.
type_of_incom
e
=
selectedTypes
.
map
{
$0
.
rawValue
}
if
companyModel
.
income_typ
e
.
count
>
0
{
if
viewModel
.
position
.
type_of_incom
e
.
count
>
0
{
isIncomeTypeOK
=
true
isIncomeTypeOK
=
true
}
}
var
incomeTypesIndexPath
:
IndexPath
?
var
incomeTypesIndexPath
:
IndexPath
?
...
@@ -316,8 +298,9 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -316,8 +298,9 @@ extension YHGCIncomeRecordWorkExperienceViewController {
let
newIndex
=
incomeIndex
// > 1 ? incomeIndex - 1 : 0
let
newIndex
=
incomeIndex
// > 1 ? incomeIndex - 1 : 0
let
hkdFmt
=
currencyFormat
(
""
)
let
hkdFmt
=
currencyFormat
(
""
)
let
rmbFmt
=
currencyFormat
(
"¥"
)
let
rmbFmt
=
currencyFormat
(
"¥"
)
let
rate
=
companyModel
.
rate
>
0
?
companyModel
.
rate
:
0.92
let
rate
=
getCurrentRate
()
sectionArr
.
insert
(
.
inputMoney
(
"公司营业额(近一年)"
,
"约
\(
hkdFmt
.
string
(
from
:
NSNumber
(
value
:
companyModel
.
corporate_turnover
/
rate
))
??
"0"
)
港币"
,
rmbFmt
.
string
(
from
:
NSNumber
(
value
:
companyModel
.
corporate_turnover
))
??
"0"
,
true
,
false
,
false
),
at
:
newIndex
)
let
turnover
=
Double
(
viewModel
.
position
.
turnover
)
??
0
sectionArr
.
insert
(
.
inputMoney
(
"公司营业额(近一年)"
,
"约
\(
hkdFmt
.
string
(
from
:
NSNumber
(
value
:
turnover
/
rate
))
??
"0"
)
港币"
,
rmbFmt
.
string
(
from
:
NSNumber
(
value
:
turnover
))
??
"0"
,
true
,
false
,
false
),
at
:
newIndex
)
datas
[
incomeTypeSelectIndexPath
.
section
]
=
sectionArr
datas
[
incomeTypeSelectIndexPath
.
section
]
=
sectionArr
}
}
}
}
...
@@ -336,6 +319,15 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -336,6 +319,15 @@ extension YHGCIncomeRecordWorkExperienceViewController {
}
}
}
}
}
}
tableView
.
performBatchUpdates
{
[
weak
tableView
]
in
tableView
?
.
reloadSections
(
IndexSet
(
integer
:
incomeTypeSelectIndexPath
.
section
),
with
:
.
automatic
)
}
}
private
func
getCurrentRate
()
->
Double
{
let
configRate
=
Double
(
YHConfigManager
.
shared
.
reqVM
.
configModel
?
.
rate
??
""
)
??
0
let
rate
=
configRate
>
0
?
configRate
:
0.92
return
rate
}
}
private
func
currencyFormat
(
_
currencySymbol
:
String
)
->
NumberFormatter
{
private
func
currencyFormat
(
_
currencySymbol
:
String
)
->
NumberFormatter
{
...
@@ -375,9 +367,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
...
@@ -375,9 +367,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
cell
.
setupCellInfo
(
title
)
cell
.
setupCellInfo
(
title
)
return
cell
return
cell
}
}
case
let
.
incomeFrom
(
title
,
detail
,
placeholder
):
case
let
.
incomeFrom
(
title
,
placeholder
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordFromCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordFromCell
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordFromCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordFromCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
showBottomLine
:
true
,
showRightArrow
:
true
,
placeholder
:
placeholder
)
cell
.
setupCellInfo
(
title
:
title
,
detail
:
viewModel
.
position
.
company_name
,
showBottomLine
:
true
,
showRightArrow
:
true
,
placeholder
:
placeholder
)
return
cell
return
cell
}
}
case
let
.
incomeTypeSelect
(
title
,
detail
,
isSelectedOne
):
case
let
.
incomeTypeSelect
(
title
,
detail
,
isSelectedOne
):
...
@@ -428,9 +420,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
...
@@ -428,9 +420,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
self
.
datas
[
indexPath
.
section
][
indexPath
.
row
]
=
.
inputMoney
(
title
,
nil
,
nil
,
showBottomLine
,
showStar
,
isIncomeMoney
)
self
.
datas
[
indexPath
.
section
][
indexPath
.
row
]
=
.
inputMoney
(
title
,
nil
,
nil
,
showBottomLine
,
showStar
,
isIncomeMoney
)
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
if
isIncomeMoney
{
if
isIncomeMoney
{
self
.
companyModel
.
income_money
=
0
self
.
viewModel
.
position
.
income
=
"0"
}
else
{
}
else
{
self
.
companyModel
.
corporate_turnover
=
0
self
.
viewModel
.
position
.
turnover
=
"0"
}
}
}
}
}
}
...
@@ -443,9 +435,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
...
@@ -443,9 +435,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
let
detail
=
number
/
self
.
currencyRate
let
detail
=
number
/
self
.
currencyRate
if
isIncomeMoney
{
if
isIncomeMoney
{
self
.
isIncomeMoneyOK
=
true
self
.
isIncomeMoneyOK
=
true
self
.
companyModel
.
income_money
=
number
self
.
viewModel
.
position
.
income
=
"
\(
number
)
"
}
else
{
}
else
{
self
.
companyModel
.
corporate_turnover
=
number
self
.
viewModel
.
position
.
turnover
=
"
\(
number
)
"
}
}
let
rmbFormatter
=
self
.
currencyFormat
(
"¥"
)
let
rmbFormatter
=
self
.
currencyFormat
(
"¥"
)
...
@@ -472,37 +464,100 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
...
@@ -472,37 +464,100 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
cell
.
setupCellInfo
(
detail
)
cell
.
setupCellInfo
(
detail
)
return
cell
return
cell
}
}
case
let
.
infoSelect
(
title
,
detail
,
placeholder
):
case
let
.
infoSelect
(
title
,
placeholder
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeInfoSelectCell
.
cellReuseIdentifier
)
as?
YHIncomeInfoSelectCell
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeInfoSelectCell
.
cellReuseIdentifier
)
as?
YHIncomeInfoSelectCell
{
var
detail
=
""
switch
title
{
case
"派薪国家/地区"
:
detail
=
viewModel
.
position
.
location
.
country
case
"派薪城市"
:
let
city
=
viewModel
.
position
.
location
.
area
.
reduce
(
""
)
{
partialResult
,
item
in
partialResult
.
count
>
0
?
partialResult
+
"/"
+
item
:
partialResult
+
item
}
detail
=
city
case
"入职年月"
:
detail
=
viewModel
.
position
.
entry_time
case
"职业界别"
:
detail
=
viewModel
.
position
.
company_type
default
:
break
}
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
placeholder
:
placeholder
,
needShowFailButton
:
false
)
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
placeholder
:
placeholder
,
needShowFailButton
:
false
)
return
cell
return
cell
}
}
case
let
.
infoTillNowSelect
(
title
,
detail
,
placeholder
,
isTillNow
):
case
let
.
infoTillNowSelect
(
title
,
placeholder
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeDateTillNowCell
.
cellReuseIdentifier
)
as?
YHIncomeDateTillNowCell
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeDateTillNowCell
.
cellReuseIdentifier
)
as?
YHIncomeDateTillNowCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
placeholder
:
placeholder
,
tillNow
:
isTillNow
,
needShowFailButton
:
false
)
let
detail
=
viewModel
.
position
.
departure_time
cell
.
tillNowButtonEvent
=
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
placeholder
:
placeholder
,
needShowFailButton
:
false
)
//
cell
.
tillNowButtonEvent
=
{
[
weak
self
]
tillNow
in
guard
let
self
=
self
else
{
return
}
if
tillNow
{
self
.
viewModel
.
position
.
departure_time
=
"至今"
}
else
{
self
.
viewModel
.
position
.
departure_time
=
""
}
}
}
return
cell
return
cell
}
}
case
let
.
infoEdit
(
title
,
detail
,
placeholder
):
case
let
.
infoEdit
(
title
,
placeholder
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeInfoEditCell
.
cellReuseIdentifier
)
as?
YHIncomeInfoEditCell
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeInfoEditCell
.
cellReuseIdentifier
)
as?
YHIncomeInfoEditCell
{
var
detail
=
""
switch
title
{
case
"派薪城市"
:
detail
=
viewModel
.
position
.
location
.
foreign
case
"职位"
:
detail
=
viewModel
.
position
.
position
case
"具体职业界别"
:
detail
=
viewModel
.
position
.
company_type_other
default
:
break
}
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
placeholder
:
placeholder
,
needShowFailButton
:
false
)
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
placeholder
:
placeholder
,
needShowFailButton
:
false
)
cell
.
didEndEditing
=
{
[
weak
self
]
textField
in
guard
let
self
=
self
else
{
return
}
switch
title
{
case
"派薪城市"
:
self
.
viewModel
.
position
.
location
.
area
=
[]
self
.
viewModel
.
position
.
location
.
foreign
=
textField
.
text
??
""
case
"职位"
:
self
.
viewModel
.
position
.
position
=
textField
.
text
??
""
case
"具体职业界别"
:
self
.
viewModel
.
position
.
company_type_other
=
textField
.
text
??
""
default
:
break
}
}
return
cell
return
cell
}
}
case
let
.
infoCheckbox
(
title
):
case
let
.
infoCheckbox
(
title
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHInfoQuestionSelectionCell
.
cellReuseIdentifier
)
as?
YHInfoQuestionSelectionCell
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHInfoQuestionSelectionCell
.
cellReuseIdentifier
)
as?
YHInfoQuestionSelectionCell
{
cell
.
setupCellInfo
(
question
:
title
,
showBottomLine
:
true
,
needShowFailButton
:
false
)
cell
.
setupCellInfo
(
question
:
title
,
showBottomLine
:
true
,
needShowFailButton
:
false
)
return
cell
cell
.
didSelectSureButton
=
{
[
weak
self
]
selected
in
}
guard
let
self
=
self
else
{
case
let
.
incomeTips
(
detail
):
return
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordCompanyTipsCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordCompanyTipsCell
{
}
cell
.
setupCellInfo
(
tipsDetail
:
detail
)
switch
selected
{
return
cell
case
.
true
:
}
self
.
viewModel
.
position
.
has_work_certificate
=
YHCheckboxSelectType
.
true
.
rawValue
case
let
.
uploadWorkId
(
title
,
detail
):
case
.
false
:
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeUploadWorkIDCell
.
cellReuseIdentifier
)
as?
YHIncomeUploadWorkIDCell
{
self
.
viewModel
.
position
.
has_work_certificate
=
YHCheckboxSelectType
.
false
.
rawValue
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
)
case
.
unknown
:
self
.
viewModel
.
position
.
has_work_certificate
=
YHCheckboxSelectType
.
unknown
.
rawValue
}
}
let
selectType
=
YHCheckboxSelectType
(
rawValue
:
viewModel
.
position
.
has_work_certificate
)
??
.
unknown
switch
selectType
{
case
.
true
:
cell
.
selectedSureButton
=
.
true
case
.
false
:
cell
.
selectedSureButton
=
.
false
case
.
unknown
:
cell
.
selectedSureButton
=
.
unknown
}
return
cell
return
cell
}
}
}
}
...
@@ -536,39 +591,122 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
...
@@ -536,39 +591,122 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
showSelectIncomeTypePopVC
(
selectedTypes
:
selectedTypes
)
showSelectIncomeTypePopVC
(
selectedTypes
:
selectedTypes
)
}
else
if
case
.
incomeFrom
=
tableRow
{
}
else
if
case
.
incomeFrom
=
tableRow
{
let
vc
=
YHCompanySelectViewController
()
let
vc
=
YHCompanySelectViewController
()
vc
.
backLocationStringController
=
{
_
in
vc
.
backLocationStringController
=
{
[
weak
self
]
company
in
// country.company_name
guard
let
self
=
self
else
{
//
return
}
self
.
viewModel
.
position
.
company_name
=
company
.
company_name
??
""
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
navigationController
?
.
pushViewController
(
vc
)
navigationController
?
.
pushViewController
(
vc
)
}
else
if
case
let
.
infoSelect
(
title
,
_
,
_
)
=
tableRow
{
}
else
if
case
let
.
infoSelect
(
title
,
_
)
=
tableRow
{
if
title
==
"派薪国家/地区"
{
switch
title
{
case
"派薪国家/地区"
:
let
vc
=
YHSelectCountryViewController
()
let
vc
=
YHSelectCountryViewController
()
vc
.
backLocationStringController
=
{
(
country
)
in
vc
.
backLocationStringController
=
{
[
weak
self
]
country
in
//self.dataSource?.message = country
guard
let
self
=
self
else
{
//
return
}
let
oldContry
=
self
.
viewModel
.
position
.
location
.
country
self
.
viewModel
.
position
.
location
.
country
=
country
self
.
viewModel
.
position
.
location_aboard
=
country
.
contains
(
"中国"
)
?
0
:
1
if
country
!=
oldContry
{
self
.
viewModel
.
position
.
location
.
area
=
[]
self
.
viewModel
.
position
.
location
.
foreign
=
""
self
.
getEnterpriseInfo
(
needUpdateDataSource
:
true
)
}
else
{
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
}
navigationController
?
.
pushViewController
(
vc
)
navigationController
?
.
pushViewController
(
vc
)
}
else
if
title
==
"入职年月"
{
case
"派薪城市"
:
let
country
=
viewModel
.
position
.
location
.
country
var
provice
=
""
if
country
.
contains
(
"台湾"
)
{
provice
=
"台湾省"
}
if
country
.
contains
(
"香港"
)
{
provice
=
"香港特别行政区"
}
if
country
.
contains
(
"澳门"
)
{
provice
=
"澳门特别行政区"
}
let
addressPicker
=
YHAddressViewController
(
selectProvince
:
provice
)
addressPicker
.
backLocationStringController
=
{
[
weak
self
]
(
address
,
province
,
city
,
area
)
in
guard
let
self
=
self
else
{
return
}
self
.
viewModel
.
position
.
location
.
area
=
[
province
,
city
]
self
.
viewModel
.
position
.
location
.
foreign
=
""
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
present
(
addressPicker
,
animated
:
true
,
completion
:
nil
)
case
"入职年月"
:
let
title
=
"选择入职年月"
let
title
=
"选择入职年月"
let
lastIsTaday
=
true
let
lastIsTaday
=
true
YHDatePickView
.
show
(
type
:
.
yyyymm
,
title
:
title
,
lastIsTaday
:
lastIsTaday
,
currentDay
:
""
)
{
date
in
YHDatePickView
.
show
(
type
:
.
yyyymm
,
title
:
title
,
lastIsTaday
:
lastIsTaday
,
currentDay
:
viewModel
.
position
.
entry_time
)
{
[
weak
self
]
date
in
//
guard
let
self
=
self
else
{
return
}
let
format
=
DateFormatter
()
format
.
dateFormat
=
"yyyy-MM"
if
let
selectDate
=
format
.
date
(
from
:
date
)
{
let
selectTimeInterval
=
selectDate
.
timeIntervalSince1970
let
currentTimeInterval
=
Date
()
.
timeIntervalSince1970
if
selectTimeInterval
>
currentTimeInterval
{
YHHUD
.
flash
(
message
:
"入职年月不能晚于当前日期"
)
}
else
{
guard
let
endDate
=
format
.
date
(
from
:
self
.
viewModel
.
position
.
departure_time
)
else
{
self
.
viewModel
.
position
.
entry_time
=
date
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
return
}
let
endTimeInterval
=
endDate
.
timeIntervalSince1970
if
selectTimeInterval
>
endTimeInterval
{
YHHUD
.
flash
(
message
:
"入职年月不能晚于离职年月"
)
}
else
{
self
.
viewModel
.
position
.
entry_time
=
date
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
}
}
}
}
else
if
title
==
"职业界别"
{
case
"职业界别"
:
YHOtherPickerView
.
show
(
type
:
.
position
,
selectTitle
:
""
)
{[
weak
self
]
data
in
YHOtherPickerView
.
show
(
type
:
.
position
,
selectTitle
:
viewModel
.
position
.
company_type
)
{[
weak
self
]
data
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
// data.title
let
companyType
=
self
.
viewModel
.
position
.
company_type
//
self
.
viewModel
.
position
.
company_type
=
data
.
title
if
(
data
.
title
==
"其他"
||
companyType
==
"其他"
)
&&
companyType
!=
data
.
title
{
self
.
getEnterpriseInfo
(
needUpdateDataSource
:
true
)
}
else
{
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
}
default
:
break
}
}
}
else
if
case
let
.
infoTillNowSelect
(
title
,
_
,
_
,
_
)
=
tableRow
{
}
else
if
case
let
.
infoTillNowSelect
(
title
,
_
)
=
tableRow
{
if
title
==
"离职年月"
{
if
title
==
"离职年月"
{
let
title
=
"选择离职年月"
let
title
=
"选择离职年月"
let
lastIsTaday
=
true
let
lastIsTaday
=
true
YHDatePickView
.
show
(
type
:
.
yyyymm
,
title
:
title
,
lastIsTaday
:
lastIsTaday
,
currentDay
:
""
)
{
date
in
YHDatePickView
.
show
(
type
:
.
yyyymm
,
title
:
title
,
lastIsTaday
:
lastIsTaday
,
currentDay
:
viewModel
.
position
.
departure_time
)
{
[
weak
self
]
date
in
//
guard
let
self
=
self
else
{
return
}
let
format
=
DateFormatter
()
format
.
dateFormat
=
"yyyy-MM"
if
let
selectDate
=
format
.
date
(
from
:
date
),
let
startDate
=
format
.
date
(
from
:
self
.
viewModel
.
position
.
entry_time
)
{
let
selectTimeInterval
=
selectDate
.
timeIntervalSince1970
let
startTimeInterval
=
startDate
.
timeIntervalSince1970
if
selectTimeInterval
<
startTimeInterval
{
YHHUD
.
flash
(
message
:
"离职年月不能早于入职年月"
)
}
else
{
self
.
viewModel
.
position
.
departure_time
=
date
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
else
{
self
.
viewModel
.
position
.
departure_time
=
date
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
}
}
}
}
}
...
@@ -579,21 +717,15 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -579,21 +717,15 @@ extension YHGCIncomeRecordWorkExperienceViewController {
private
func
checkInput
()
->
Bool
{
private
func
checkInput
()
->
Bool
{
var
retValue
=
true
var
retValue
=
true
var
updateRows
:
[
IndexPath
]
=
[]
var
updateRows
:
[
IndexPath
]
=
[]
if
companyModel
.
has_all_file
==
YHIncomeRecordHasAllFile
.
unknown
.
rawValue
{
isHasAllFileOK
=
false
if
viewModel
.
position
.
type_of_income
.
count
==
0
{
if
let
hasAllFileIndexPath
=
hasAllFileIndexPath
,
tableView
.
numberOfSections
>
hasAllFileIndexPath
.
section
,
tableView
.
numberOfRows
(
inSection
:
hasAllFileIndexPath
.
section
)
>
hasAllFileIndexPath
.
row
{
updateRows
.
append
(
hasAllFileIndexPath
)
}
retValue
=
false
}
if
companyModel
.
income_type
.
count
==
0
{
isIncomeTypeOK
=
false
isIncomeTypeOK
=
false
if
let
incomeTypeIndexPath
=
incomeTypeIndexPath
,
tableView
.
numberOfSections
>
incomeTypeIndexPath
.
section
,
tableView
.
numberOfRows
(
inSection
:
incomeTypeIndexPath
.
section
)
>
incomeTypeIndexPath
.
row
{
if
let
incomeTypeIndexPath
=
incomeTypeIndexPath
,
tableView
.
numberOfSections
>
incomeTypeIndexPath
.
section
,
tableView
.
numberOfRows
(
inSection
:
incomeTypeIndexPath
.
section
)
>
incomeTypeIndexPath
.
row
{
updateRows
.
append
(
incomeTypeIndexPath
)
updateRows
.
append
(
incomeTypeIndexPath
)
}
}
retValue
=
false
retValue
=
false
}
}
if
companyModel
.
income_money
==
0
{
if
viewModel
.
position
.
income
==
"0"
{
isIncomeMoneyOK
=
false
isIncomeMoneyOK
=
false
if
let
incomMoneyIndexPath
=
incomMoneyIndexPath
,
tableView
.
numberOfSections
>
incomMoneyIndexPath
.
section
,
tableView
.
numberOfRows
(
inSection
:
incomMoneyIndexPath
.
section
)
>
incomMoneyIndexPath
.
row
{
if
let
incomMoneyIndexPath
=
incomMoneyIndexPath
,
tableView
.
numberOfSections
>
incomMoneyIndexPath
.
section
,
tableView
.
numberOfRows
(
inSection
:
incomMoneyIndexPath
.
section
)
>
incomMoneyIndexPath
.
row
{
updateRows
.
append
(
incomMoneyIndexPath
)
updateRows
.
append
(
incomMoneyIndexPath
)
...
@@ -602,7 +734,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -602,7 +734,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
}
}
if
updateRows
.
count
>
0
{
if
updateRows
.
count
>
0
{
tableView
.
reloadRows
(
at
:
updateRows
,
with
:
.
none
)
tableView
.
reloadRows
(
at
:
updateRows
,
with
:
.
none
)
isHasAllFileOK
=
true
isIncomeTypeOK
=
true
isIncomeTypeOK
=
true
isIncomeMoneyOK
=
true
isIncomeMoneyOK
=
true
}
}
...
@@ -613,15 +744,14 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -613,15 +744,14 @@ extension YHGCIncomeRecordWorkExperienceViewController {
if
isNeedLoading
{
if
isNeedLoading
{
YHHUD
.
show
(
.
progress
(
message
:
"加载中..."
))
YHHUD
.
show
(
.
progress
(
message
:
"加载中..."
))
}
}
viewModel
.
getIncomeDetail
(
incomeId
:
incomeId
)
{
[
weak
self
]
companyModel
,
error
in
viewModel
.
requestWorkPositionDetail
(
incomeId
,
orderId
)
{
[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
guard
let
self
=
self
else
{
return
return
}
}
if
isNeedLoading
{
if
isNeedLoading
{
YHHUD
.
hide
()
YHHUD
.
hide
()
}
}
guard
let
companyModel
=
companyModel
else
{
guard
success
else
{
printLog
(
"YHGCIncomeRecordWorkExperienceViewController: 请求失败"
)
printLog
(
"YHGCIncomeRecordWorkExperienceViewController: 请求失败"
)
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
YHHUD
.
flash
(
message
:
errorMsg
)
YHHUD
.
flash
(
message
:
errorMsg
)
...
@@ -630,21 +760,18 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -630,21 +760,18 @@ extension YHGCIncomeRecordWorkExperienceViewController {
self
.
tableView
.
reloadData
()
self
.
tableView
.
reloadData
()
return
return
}
}
self
.
companyModel
=
companyModel
self
.
setupData
()
self
.
setupData
()
}
}
}
}
private
func
submitIncome
(
_
type
:
YHIncomeRecordUpdateType
,
complete
:
@escaping
(
Bool
)
->
Void
)
{
private
func
submitIncome
(
complete
:
@escaping
(
Bool
)
->
Void
)
{
view
.
endEditing
(
true
)
view
.
endEditing
(
true
)
let
msg
=
type
==
.
save
?
"保存中..."
:
"提交中..."
let
msg
=
"提交中..."
if
type
==
.
submit
{
if
checkInput
()
==
false
{
if
checkInput
()
==
false
{
return
return
}
}
}
YHHUD
.
show
(
.
progress
(
message
:
msg
))
YHHUD
.
show
(
.
progress
(
message
:
msg
))
viewModel
.
updateDetail
(
incomeId
:
incomeId
,
incomeMoney
:
companyModel
.
income_money
,
corporateTurnover
:
companyModel
.
corporate_turnover
,
incomeType
:
companyModel
.
income_type
,
hasAllFile
:
companyModel
.
has_all_file
)
{
[
weak
self
]
success
,
error
in
viewModel
.
saveWorkPosition
{
[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
guard
let
self
=
self
else
{
complete
(
false
)
complete
(
false
)
return
return
...
@@ -652,7 +779,7 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -652,7 +779,7 @@ extension YHGCIncomeRecordWorkExperienceViewController {
YHHUD
.
hide
()
YHHUD
.
hide
()
complete
(
success
)
complete
(
success
)
if
success
{
if
success
{
let
msg
=
type
==
.
save
?
"保存成功"
:
"提交成功"
let
msg
=
"提交成功"
YHHUD
.
flash
(
message
:
msg
)
YHHUD
.
flash
(
message
:
msg
)
self
.
submitSuccess
?()
self
.
submitSuccess
?()
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
...
@@ -660,9 +787,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
...
@@ -660,9 +787,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
YHHUD
.
flash
(
message
:
errorMsg
)
YHHUD
.
flash
(
message
:
errorMsg
)
}
}
if
type
==
.
save
{
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
}
}
}
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHGCIncomeTypeSelectViewController.swift
0 → 100644
View file @
da90be9e
//
// YHGCIncomeTypeSelectViewController.swift
// galaxy
//
// Created by alexzzw on 2024/12/26.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHGCIncomeTypeSelectViewController
:
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
:
.
grouped
)
view
.
estimatedSectionHeaderHeight
=
0.01
view
.
estimatedSectionFooterHeight
=
12
view
.
sectionHeaderHeight
=
0.01
view
.
sectionFooterHeight
=
12
view
.
backgroundColor
=
.
white
view
.
contentInsetAdjustmentBehavior
=
.
never
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
:
[
YHGCIncomeTypeSelectModel
]
=
{
YHGCIncomeType
.
allCases
.
map
{
YHGCIncomeTypeSelectModel
(
type
:
$0
,
isSelected
:
false
)
}
}()
var
sureButtonEvent
:
(([
YHGCIncomeType
])
->
Void
)?
private
var
selectedTypes
:
[
YHGCIncomeType
]
=
[]
init
(
selectedTypes
:
[
YHGCIncomeType
])
{
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
.
sorted
(
by
:
{
$0
.
rawValue
<
$1
.
rawValue
}))
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
.
tableHeaderView
=
UIView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
0
,
height
:
CGFloat
.
leastNonzeroMagnitude
))
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
.
type
)
{
model
.
isSelected
=
true
}
}
}
}
extension
YHGCIncomeTypeSelectViewController
:
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
.
type
.
nameString
(),
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
.
type
)
{
selectedTypes
.
append
(
model
.
type
)
}
}
else
{
if
let
index
=
selectedTypes
.
firstIndex
(
where
:
{
type
in
type
==
model
.
type
})
{
selectedTypes
.
remove
(
at
:
index
)
}
}
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHGCIncomeRecordSaveWorkModel.swift
0 → 100644
View file @
da90be9e
//
// YHGCIncomeRecordSaveWorkModel.swift
// galaxy
//
// Created by alexzzw on 2024/12/26.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
SmartCodable
class
YHGCIncomeRecordSaveWorkModel
:
SmartCodable
{
var
id
:
Int
=
0
required
init
()
{
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHGCIncomeType.swift
0 → 100644
View file @
da90be9e
//
// YHGCIncomeType.swift
// galaxy
//
// Created by alexzzw on 2024/12/26.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
Foundation
//高A使用 收入类型 1 工资薪金所得及全年一次性奖金; 2 上市公司股票期权或股权收入; 3 持股公司分红收入; 4 个体工商户/合伙企业/独资企业经营所得收入; 5 股权转让收入; 6 内地公司收入(持股50%及以上); 7 香港公司收入(持股50%及以上); 8 其他境外公司收入(持股50%及以上); 10 澳门公司收入(持股50%及以上)
enum
YHGCIncomeType
:
Int
,
CaseIterable
{
case
salaryIncomeAndBonus
=
1
case
stockOrEquityIncome
=
2
case
dividendIncome
=
3
case
businessIncome
=
4
case
equityTransferIncome
=
5
case
incomeOfMainland
=
6
case
incomeOfHKCompanies
=
7
case
incomeOfOtherOverseasCompanies
=
8
case
incomeOfMacauCompanies
=
10
func
nameString
()
->
String
{
switch
self
{
case
.
incomeOfMainland
:
return
"内地公司收入(持股50%及以上)"
case
.
incomeOfHKCompanies
:
return
"香港公司收入(持股50%及以上)"
case
.
incomeOfMacauCompanies
:
return
"澳门公司收入(持股50%及以上)"
case
.
stockOrEquityIncome
:
return
"上市公司股票期权或股权收入"
case
.
salaryIncomeAndBonus
:
return
"工资薪金所得及全年一次性奖金"
case
.
dividendIncome
:
return
"持股公司分红收入"
case
.
equityTransferIncome
:
return
"股权转让收入"
case
.
businessIncome
:
return
"个体工商户/合伙企业/独资企业经营所得收入"
case
.
incomeOfOtherOverseasCompanies
:
return
"其他境外公司收入(持股50%及以上)"
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHGCIncomeTypeSelectModel.swift
0 → 100644
View file @
da90be9e
//
// YHGCIncomeTypeSelectModel.swift
// galaxy
//
// Created by alexzzw on 2024/12/26.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHGCIncomeTypeSelectModel
:
NSObject
{
var
isSelected
:
Bool
=
false
var
type
:
YHGCIncomeType
=
.
businessIncome
init
(
type
:
YHGCIncomeType
,
isSelected
:
Bool
)
{
self
.
type
=
type
self
.
isSelected
=
isSelected
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeDateTillNowCell.swift
View file @
da90be9e
...
@@ -11,7 +11,8 @@ import UIKit
...
@@ -11,7 +11,8 @@ import UIKit
class
YHIncomeDateTillNowCell
:
YHResignDocumentCell
{
class
YHIncomeDateTillNowCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeDateTillNowCell"
static
let
cellReuseIdentifier
=
"YHIncomeDateTillNowCell"
var
tillNowButtonEvent
:
(()
->
Void
)?
var
tillNowButtonEvent
:
((
Bool
)
->
Void
)?
private
var
placeholder
:
String
=
""
private
lazy
var
dotIcon
:
UIImageView
=
{
private
lazy
var
dotIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
...
@@ -71,8 +72,9 @@ class YHIncomeDateTillNowCell: YHResignDocumentCell {
...
@@ -71,8 +72,9 @@ class YHIncomeDateTillNowCell: YHResignDocumentCell {
fatalError
(
"init(coder:) has not been implemented"
)
fatalError
(
"init(coder:) has not been implemented"
)
}
}
func
setupCellInfo
(
title
:
String
,
detail
:
String
?,
placeholder
:
String
=
"请选择"
,
showBottomLine
:
Bool
=
true
,
tillNow
:
Bool
,
needShowFailButton
:
Bool
)
{
func
setupCellInfo
(
title
:
String
,
detail
:
String
?,
placeholder
:
String
=
"请选择"
,
showBottomLine
:
Bool
=
true
,
needShowFailButton
:
Bool
)
{
infoTitleLabel
.
text
=
title
infoTitleLabel
.
text
=
title
self
.
placeholder
=
placeholder
updateContentState
(
detail
:
detail
,
placeholder
:
placeholder
)
updateContentState
(
detail
:
detail
,
placeholder
:
placeholder
)
bottomLineView
.
isHidden
=
!
showBottomLine
bottomLineView
.
isHidden
=
!
showBottomLine
infoFailLabel
.
text
=
placeholder
infoFailLabel
.
text
=
placeholder
...
@@ -82,7 +84,10 @@ class YHIncomeDateTillNowCell: YHResignDocumentCell {
...
@@ -82,7 +84,10 @@ class YHIncomeDateTillNowCell: YHResignDocumentCell {
extension
YHIncomeDateTillNowCell
{
extension
YHIncomeDateTillNowCell
{
@objc
private
func
tillNowButtonClicked
()
{
@objc
private
func
tillNowButtonClicked
()
{
tillNowButtonEvent
?()
tillNowButton
.
isSelected
.
toggle
()
tillNowButtonEvent
?(
tillNowButton
.
isSelected
)
let
detail
:
String
?
=
tillNowButton
.
isSelected
?
"至今"
:
nil
updateContentState
(
detail
:
detail
,
placeholder
:
self
.
placeholder
)
}
}
private
func
updateFailLabel
(
_
needShowFailButton
:
Bool
)
{
private
func
updateFailLabel
(
_
needShowFailButton
:
Bool
)
{
...
@@ -121,10 +126,57 @@ extension YHIncomeDateTillNowCell {
...
@@ -121,10 +126,57 @@ extension YHIncomeDateTillNowCell {
infoDetailLabel
.
font
=
.
PFSC_M
(
ofSize
:
14
)
infoDetailLabel
.
font
=
.
PFSC_M
(
ofSize
:
14
)
infoDetailLabel
.
textColor
=
UIColor
.
mainTextColor
infoDetailLabel
.
textColor
=
UIColor
.
mainTextColor
infoDetailLabel
.
text
=
detail
infoDetailLabel
.
text
=
detail
if
detail
==
"至今"
{
tillNowButton
.
isSelected
=
true
infoDetailLabel
.
isHidden
=
true
tillNowButton
.
snp
.
remakeConstraints
{
make
in
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
width
.
equalTo
(
50
)
make
.
height
.
equalTo
(
30
)
}
infoDetailLabel
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
}
}
else
{
infoDetailLabel
.
isHidden
=
false
tillNowButton
.
isSelected
=
false
tillNowButton
.
snp
.
remakeConstraints
{
make
in
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
width
.
equalTo
(
50
)
make
.
height
.
equalTo
(
30
)
}
infoDetailLabel
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
right
.
lessThanOrEqualTo
(
tillNowButton
.
snp
.
left
)
.
offset
(
-
18
)
}
}
}
else
{
}
else
{
infoDetailLabel
.
isHidden
=
false
tillNowButton
.
isSelected
=
false
infoDetailLabel
.
text
=
placeholder
infoDetailLabel
.
text
=
placeholder
infoDetailLabel
.
font
=
.
PFSC_R
(
ofSize
:
14
)
infoDetailLabel
.
font
=
.
PFSC_R
(
ofSize
:
14
)
infoDetailLabel
.
textColor
=
UIColor
(
hexString
:
"#B9C1CC"
)
infoDetailLabel
.
textColor
=
UIColor
(
hexString
:
"#B9C1CC"
)
tillNowButton
.
snp
.
remakeConstraints
{
make
in
make
.
centerY
.
equalTo
(
infoTitleLabel
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
width
.
equalTo
(
50
)
make
.
height
.
equalTo
(
30
)
}
infoDetailLabel
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
147
)
make
.
right
.
lessThanOrEqualTo
(
tillNowButton
.
snp
.
left
)
.
offset
(
-
18
)
}
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/VM/YHGCIncomeRecordViewModel.swift
View file @
da90be9e
...
@@ -96,28 +96,4 @@ class YHGCIncomeRecordViewModel: YHBaseViewModel {
...
@@ -96,28 +96,4 @@ class YHGCIncomeRecordViewModel: YHBaseViewModel {
callBackBlock
(
false
,
err
)
callBackBlock
(
false
,
err
)
}
}
}
}
// 创建新的是否可用
// func requestCreateNewWork(_ orderId: Int, callBackBlock: @escaping (_ success: Int, _ error: YHErrorModel?) -> Void) {
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.createNewWork
// let params: [String: Any] = ["order_id": orderId]
//
// _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, _ in
// // 1. json字符串 转 对象
// guard let self = self else { return }
// if json.code == 200 {
// guard let dic = json.data?.peel as? [String: Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
// callBackBlock(0, nil)
// return
// }
// self.workId = result.work_id
// callBackBlock(result.work_id, nil)
// } else {
// let error: YHErrorModel = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg)
// callBackBlock(0, error)
// }
// } failBlock: { err in
// callBackBlock(0, err)
// }
// }
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/VM/YHGCIncomeRecordWorkExperienceViewModel.swift
View file @
da90be9e
...
@@ -10,12 +10,13 @@ import UIKit
...
@@ -10,12 +10,13 @@ import UIKit
class
YHGCIncomeRecordWorkExperienceViewModel
:
YHBaseViewModel
{
class
YHGCIncomeRecordWorkExperienceViewModel
:
YHBaseViewModel
{
var
position
:
YHGCWorkExperienceModel
=
YHGCWorkExperienceModel
()
var
position
:
YHGCWorkExperienceModel
=
YHGCWorkExperienceModel
()
var
saveWorkModel
:
YHGCIncomeRecordSaveWorkModel
=
YHGCIncomeRecordSaveWorkModel
()
override
init
()
{
override
init
()
{
super
.
init
()
super
.
init
()
}
}
func
requestWorkPositionDetail
(
_
workId
:
Int
,
_
orderID
:
Int
,
callBackBlock
:
@escaping
(
_
success
:
Bool
?
,
_
error
:
YHErrorModel
?)
->
Void
)
{
func
requestWorkPositionDetail
(
_
workId
:
Int
,
_
orderID
:
Int
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
Void
)
{
let
param
:
[
String
:
Any
]
=
[
"id"
:
workId
,
"order_id"
:
orderID
]
let
param
:
[
String
:
Any
]
=
[
"id"
:
workId
,
"order_id"
:
orderID
]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
gcworkDetail
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
gcworkDetail
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
param
)
{
[
weak
self
]
json
,
_
in
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
param
)
{
[
weak
self
]
json
,
_
in
...
@@ -37,10 +38,9 @@ class YHGCIncomeRecordWorkExperienceViewModel: YHBaseViewModel {
...
@@ -37,10 +38,9 @@ class YHGCIncomeRecordWorkExperienceViewModel: YHBaseViewModel {
}
}
}
}
func
saveWorkPosition
(
callBackBlock
:
@escaping
(
_
success
:
Bool
?
,
_
error
:
YHErrorModel
?)
->
Void
)
{
func
saveWorkPosition
(
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
Void
)
{
let
address
=
[
"area"
:
position
.
location
.
area
,
let
address
=
[
"area"
:
position
.
location
.
area
,
"country"
:
position
.
location
.
country
,
"country"
:
position
.
location
.
country
,
"details"
:
position
.
location
.
details
,
"foreign"
:
position
.
location
.
foreign
]
as
[
String
:
Any
]
"foreign"
:
position
.
location
.
foreign
]
as
[
String
:
Any
]
let
params
:
[
String
:
Any
]
=
[
"id"
:
position
.
id
,
let
params
:
[
String
:
Any
]
=
[
"id"
:
position
.
id
,
"order_id"
:
position
.
order_id
,
"order_id"
:
position
.
order_id
,
...
@@ -51,15 +51,22 @@ class YHGCIncomeRecordWorkExperienceViewModel: YHBaseViewModel {
...
@@ -51,15 +51,22 @@ class YHGCIncomeRecordWorkExperienceViewModel: YHBaseViewModel {
"has_work_certificate"
:
position
.
has_work_certificate
,
"has_work_certificate"
:
position
.
has_work_certificate
,
"company_type"
:
position
.
company_type
,
"company_type"
:
position
.
company_type
,
"company_type_other"
:
position
.
company_type_other
,
"company_type_other"
:
position
.
company_type_other
,
"location"
:
address
]
"location_aboard"
:
position
.
location_aboard
,
"location"
:
address
,
"type_of_income"
:
position
.
type_of_income
,
"income"
:
position
.
income
,
"turnover"
:
position
.
turnover
,
"verify"
:
1
]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
gcWorkSave
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
gcWorkSave
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
params
)
{
[
weak
self
]
json
,
_
in
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
params
)
{
[
weak
self
]
json
,
_
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
if
json
.
code
==
200
{
if
json
.
code
==
200
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
String
:
Any
],
let
result
=
YH
WorkExperiencePosition
Model
.
deserialize
(
from
:
dic
)
else
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
String
:
Any
],
let
result
=
YH
GCIncomeRecordSaveWork
Model
.
deserialize
(
from
:
dic
)
else
{
callBackBlock
(
false
,
nil
)
callBackBlock
(
false
,
nil
)
return
return
}
}
self
.
saveWorkModel
=
result
self
.
position
.
id
=
result
.
id
callBackBlock
(
true
,
nil
)
callBackBlock
(
true
,
nil
)
}
else
{
}
else
{
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/M/YHGCWorkExperienceModel.swift
View file @
da90be9e
...
@@ -26,7 +26,7 @@ class YHGCWorkExperienceModel: SmartCodable {
...
@@ -26,7 +26,7 @@ class YHGCWorkExperienceModel: SmartCodable {
var
turnover
:
String
=
""
var
turnover
:
String
=
""
/// 高A使用 收入类型 1 工资薪金所得及全年一次性奖金; 2 上市公司股票期权或股权收入; 3 持股公司分红收入; 4 个体工商户/合伙企业/独资企业经营所得收入; 5
/// 高A使用 收入类型 1 工资薪金所得及全年一次性奖金; 2 上市公司股票期权或股权收入; 3 持股公司分红收入; 4 个体工商户/合伙企业/独资企业经营所得收入; 5
/// 股权转让收入; 6 内地公司收入(持股50%及以上); 7 香港公司收入(持股50%及以上); 8 其他境外公司收入(持股50%及以上); 10 澳门公司收入(持股50%及以上)
/// 股权转让收入; 6 内地公司收入(持股50%及以上); 7 香港公司收入(持股50%及以上); 8 其他境外公司收入(持股50%及以上); 10 澳门公司收入(持股50%及以上)
var
type
OfI
ncome
:
[
Int
]
=
[]
var
type
_of_i
ncome
:
[
Int
]
=
[]
/// 高A使用 收入金额
/// 高A使用 收入金额
var
income
:
String
=
""
var
income
:
String
=
""
...
...
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