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 @@
04307B932D1AB66100ED8E8D
/* YHGCPreviewWorkExpViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B892D1AB66100ED8E8D
/* YHGCPreviewWorkExpViewController.swift */
;
};
04307B962D1BAFD400ED8E8D
/* YHGCIncomeRecordViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04307B952D1BAFD400ED8E8D
/* YHGCIncomeRecordViewModel.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 */
;
};
045C0F802D12CA5F00BD2DC0
/* Localizable.xcstrings in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F762D12CA5E00BD2DC0
/* Localizable.xcstrings */
;
};
045C0F812D12CA5F00BD2DC0
/* img_0.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F5E2D12CA5E00BD2DC0
/* img_0.png */
;
};
...
...
@@ -1252,6 +1256,10 @@
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>"
;
};
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>"
;
};
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>"
;
};
...
...
@@ -2607,6 +2615,16 @@
path
=
VM
;
sourceTree
=
"<group>"
;
};
04307B992D1CF5AC00ED8E8D
/* M */
=
{
isa
=
PBXGroup
;
children
=
(
04307B9A2D1CF5EE00ED8E8D
/* YHGCIncomeRecordSaveWorkModel.swift */
,
04307B9C2D1D48E700ED8E8D
/* YHGCIncomeType.swift */
,
04307BA02D1D4B9500ED8E8D
/* YHGCIncomeTypeSelectModel.swift */
,
);
path
=
M
;
sourceTree
=
"<group>"
;
};
045C0A182D12CA5E00BD2DC0
/* C */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -6120,6 +6138,7 @@
children
=
(
047A968A2D16AA410033BB4E
/* YHGCIncomeRecordViewController.swift */
,
047A968B2D16AA410033BB4E
/* YHGCIncomeRecordWorkExperienceViewController.swift */
,
04307B9E2D1D4B3600ED8E8D
/* YHGCIncomeTypeSelectViewController.swift */
,
);
path
=
C
;
sourceTree
=
"<group>"
;
...
...
@@ -6127,6 +6146,7 @@
047A968E2D16AA410033BB4E
/* IncomeRecord(收入记录) */
=
{
isa
=
PBXGroup
;
children
=
(
04307B992D1CF5AC00ED8E8D
/* M */
,
04307B942D1BAE8800ED8E8D
/* VM */
,
047A96942D1900D00033BB4E
/* V */
,
047A968D2D16AA410033BB4E
/* C */
,
...
...
@@ -7188,6 +7208,7 @@
045C114A2D12CA5F00BD2DC0
/* YHAdopterCardModel.swift in Sources */
,
045C114B2D12CA5F00BD2DC0
/* YHDocumentMessageTableViewCell.swift in Sources */
,
045C114C2D12CA5F00BD2DC0
/* YHHUDSuccessView.swift in Sources */
,
04307B9D2D1D48E700ED8E8D
/* YHGCIncomeType.swift in Sources */
,
045C114D2D12CA5F00BD2DC0
/* YHVisaRenewalPayContentCell.swift in Sources */
,
045C114E2D12CA5F00BD2DC0
/* YHMyPermissionSettingVC.swift in Sources */
,
045C114F2D12CA5F00BD2DC0
/* YHAdopterIncomeTableViewCell.swift in Sources */
,
...
...
@@ -7461,6 +7482,7 @@
045C12452D12CA5F00BD2DC0
/* YHHUDErrorView.swift in Sources */
,
045C12462D12CA5F00BD2DC0
/* YHPrincleViewModel.swift in Sources */
,
045C12472D12CA5F00BD2DC0
/* YHUploadCertificateListModel.swift in Sources */
,
04307B9B2D1CF5EE00ED8E8D
/* YHGCIncomeRecordSaveWorkModel.swift in Sources */
,
04307B682D19911800ED8E8D
/* YHIncomeInfoEditCell.swift in Sources */
,
045C12482D12CA5F00BD2DC0
/* YHResignUploadDetailModel.swift in Sources */
,
045C12492D12CA5F00BD2DC0
/* UIApplication+Extension.swift in Sources */
,
...
...
@@ -7616,6 +7638,7 @@
045C12D82D12CA5F00BD2DC0
/* YHSubmitAllInfoSuccessAlertView.swift in Sources */
,
045C12D92D12CA5F00BD2DC0
/* YHPayMemberSectionItem.swift in Sources */
,
045C12DA2D12CA5F00BD2DC0
/* YHPickTimeHoldView.swift in Sources */
,
04307B9F2D1D4B3600ED8E8D
/* YHGCIncomeTypeSelectViewController.swift in Sources */
,
045C12DB2D12CA5F00BD2DC0
/* YHServiceOrderInIncubationView.swift in Sources */
,
045C12DC2D12CA5F00BD2DC0
/* YHUatHelperViewModel.swift in Sources */
,
045C12DD2D12CA5F00BD2DC0
/* YHServiceCenterViewModel.swift in Sources */
,
...
...
@@ -7686,6 +7709,7 @@
045C13192D12CA5F00BD2DC0
/* YHQuestionAndAnswerViewController.swift in Sources */
,
045C131A2D12CA5F00BD2DC0
/* YHInvitationWithGiftsShareView.swift in Sources */
,
045C131B2D12CA5F00BD2DC0
/* YHRangeDatePickerView2.swift in Sources */
,
04307BA12D1D4B9500ED8E8D
/* YHGCIncomeTypeSelectModel.swift in Sources */
,
045C131C2D12CA5F00BD2DC0
/* YHLookResignResultPrivateView.swift in Sources */
,
045C131D2D12CA5F00BD2DC0
/* YHHKPlanItemView.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 {
case
.
businessIncome
:
return
"个体工商户/合伙企业/独资企业经营所得收入"
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 {
}
extension
YHEmploymentVerificationAvailableCell
{
private
func
updateContentState
(
_
isBlank
:
Bool
)
{
if
is
Blank
{
private
func
updateContentState
(
_
is
Not
Blank
:
Bool
)
{
if
!
isNot
Blank
{
infoDetailLabel
.
text
=
"请选择"
infoDetailLabel
.
font
=
.
PFSC_R
(
ofSize
:
14
)
infoDetailLabel
.
textColor
=
UIColor
(
hexString
:
"#B9C1CC"
)
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/MyScheme(我的方案)/C/YHGCMineSchemeViewController.swift
View file @
da90be9e
...
...
@@ -125,7 +125,7 @@ extension YHGCMineSchemeViewController {
let
industry
=
model
.
industry
.
defaultStringIfEmpty
()
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
partialResult
+
"
\n
"
+
current
partialResult
.
count
>
0
?
partialResult
+
"
\n
"
+
current
:
partialResult
+
current
}
let
model2
=
YHScemeItemModel
(
title
:
"资料清单"
,
buttonTitle
:
"资料清单"
,
mainMessage
:
"这是您的资料清单,请您前往查看。请您在1-2周内上传基础类证件哦,需要重新办理的可以晚些提供。需要注意的点如下:"
,
lightMessage
:
"1-2周内"
,
subMessage
:
"按照您填报的学历信息, 证明文件如下:
\(
contentStr
)
"
)
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 {
case
totalIncome
(
_
money
:
ASAttributedString
)
case
consentForHKTravel
(
_
title
:
String
,
_
detail
:
ASAttributedString
,
_
question
:
String
)
case
questionSelect
(
_
question
:
String
)
case
employmentVerification
(
_
employments
:
[
YHWorkItemListModel
],
_
selectedId
:
Int
?)
case
workingHoursStatement
(
_
placeholder
:
String
,
_
detail
:
ASAttributedString
,
_
content
:
String
)
case
employmentVerification
//
(_ employments: [YHWorkItemListModel], _ selectedId: Int?)
case
workingHoursStatement
(
_
placeholder
:
String
,
_
detail
:
ASAttributedString
)
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
...
...
@@ -185,8 +185,9 @@ extension YHGCIncomeRecordViewController {
let
income
=
Double
(
companyModel
.
income
??
""
)
??
0
money
+=
income
let
moneyStr
=
income
==
0
?
""
:
"约"
+
(
hkdFormatter
.
string
(
from
:
NSNumber
(
value
:
income
/
rate
))
??
"0"
)
+
"港币"
let
vacantNum
=
companyModel
.
vacant_num
??
0
let
timeStr
:
String
=
vacantNum
==
0
?
"已填写"
:
"有
\(
vacantNum
)
项未填写"
// let vacantNum = companyModel.vacant_num ?? 0
// 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
)
firstSection
.
append
(
incomeItem
)
}
...
...
@@ -200,7 +201,7 @@ extension YHGCIncomeRecordViewController {
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
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
]
=
[]
...
...
@@ -218,8 +219,9 @@ extension YHGCIncomeRecordViewController {
})
thirdSection
.
append
(
.
consentForHKTravel
(
"赴港同意书提供"
,
detail
+
actionStr
,
"在职公司是否可以提供赴港同意书"
))
if
viewModel
.
mainModel
.
has_company_consent
==
1
{
let
id
=
viewModel
.
mainModel
.
consent_work_id
>
0
?
viewModel
.
mainModel
.
consent_work_id
:
nil
thirdSection
.
append
(
.
employmentVerification
(
viewModel
.
listModel
,
id
))
//let id = viewModel.mainModel.consent_work_id > 0 ? viewModel.mainModel.consent_work_id : nil
// thirdSection.append(.employmentVerification(viewModel.listModel, id))
thirdSection
.
append
(
.
employmentVerification
)
}
else
{
thirdSection
.
append
(
.
questionSelect
(
"人才中心是否可以提供赴港同意书"
))
}
...
...
@@ -354,7 +356,7 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
guard
let
self
=
self
else
{
return
}
let
ctl
=
YHGCIncomeRecordWorkExperienceViewController
(
incomeId
:
0
)
let
ctl
=
YHGCIncomeRecordWorkExperienceViewController
(
incomeId
:
0
,
orderId
:
self
.
orderId
)
ctl
.
submitSuccess
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
...
...
@@ -396,17 +398,30 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
return
cell
}
case
let
.
employmentVerification
(
employments
,
selectedId
):
case
.
employmentVerification
:
//
(employments, selectedId):
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
model
.
id
==
selectedId
}
cell
.
setupCellInfo
(
detail
:
selectedEmployment
?
.
company_name
)
return
cell
}
case
let
.
workingHoursStatement
(
placeholder
,
tips
,
content
):
case
let
.
workingHoursStatement
(
placeholder
,
tips
):
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
.
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
}
}
...
...
@@ -436,7 +451,7 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
}
let
tableRow
=
sectionArr
[
indexPath
.
row
]
if
case
let
.
incomeItem
(
_
,
_
,
_
,
incomeId
,
_
)
=
tableRow
{
let
ctl
=
YHGCIncomeRecordWorkExperienceViewController
(
incomeId
:
incomeId
)
let
ctl
=
YHGCIncomeRecordWorkExperienceViewController
(
incomeId
:
incomeId
,
orderId
:
orderId
)
ctl
.
submitSuccess
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
...
...
@@ -444,7 +459,10 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
self
.
requestData
(
isNeedLoading
:
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
{
return
}
...
...
@@ -454,8 +472,12 @@ extension YHGCIncomeRecordViewController: UITableViewDelegate, UITableViewDataSo
let
firstIndex
=
employments
.
firstIndex
{
model
in
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
class
YHGCIncomeRecordWorkExperienceViewController
:
YHBaseViewController
{
enum
TableRow
{
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
incomeTypes
(
_
types
:
[
YHIncomeType
])
case
incomeTypes
(
_
types
:
[
YH
GC
IncomeType
])
case
inputMoney
(
_
title
:
String
,
_
detail
:
String
?,
_
inputStr
:
String
?,
_
showBottomLine
:
Bool
,
_
showStar
:
Bool
,
_
isIncomeMoney
:
Bool
)
case
inputRemark
(
_
detail
:
String
)
case
infoSelect
(
_
title
:
String
,
_
detail
:
String
?,
_
placeholder
:
String
)
case
infoTillNowSelect
(
_
title
:
String
,
_
detail
:
String
?,
_
placeholder
:
String
,
_
isTillNow
:
Bool
)
case
infoEdit
(
_
title
:
String
,
_
detail
:
String
?,
_
placeholder
:
String
)
case
infoSelect
(
_
title
:
String
,
_
placeholder
:
String
)
case
infoTillNowSelect
(
_
title
:
String
,
_
placeholder
:
String
)
case
infoEdit
(
_
title
:
String
,
_
placeholder
:
String
)
case
infoCheckbox
(
_
title
:
String
)
case
incomeTips
(
_
detail
:
ASAttributedString
)
case
uploadWorkId
(
_
title
:
String
,
_
detail
:
String
)
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
var
selectedTypes
:
[
YHIncomeType
]
=
[]
private
var
selectedTypes
:
[
YH
GC
IncomeType
]
=
[]
private
let
currencyRate
=
0.92
private
var
isSaving
=
false
var
submitSuccess
:
(()
->
Void
)?
// 校验字段控制
/// 是否选定收入类型
private
var
isIncomeTypeOK
=
true
private
var
incomeTypeIndexPath
:
IndexPath
?
/// 是否选定文件
private
var
isHasAllFileOK
=
true
private
var
hasAllFileIndexPath
:
IndexPath
?
/// 是否收入金额已填写
private
var
isIncomeMoneyOK
=
true
private
var
incomMoneyIndexPath
:
IndexPath
?
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
viewModel
=
YHGCIncomeRecordWorkExperienceViewModel
()
private
lazy
var
submitButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
...
...
@@ -119,8 +96,10 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
}()
private
let
incomeId
:
Int
init
(
incomeId
:
Int
)
{
private
let
orderId
:
Int
init
(
incomeId
:
Int
,
orderId
:
Int
)
{
self
.
incomeId
=
incomeId
self
.
orderId
=
orderId
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
...
...
@@ -131,7 +110,12 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
requestData
(
isNeedLoading
:
true
)
if
incomeId
!=
0
{
requestData
(
isNeedLoading
:
true
)
}
else
{
viewModel
.
position
.
order_id
=
orderId
setupData
()
}
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
...
...
@@ -143,39 +127,11 @@ class YHGCIncomeRecordWorkExperienceViewController: YHBaseViewController {
super
.
viewWillDisappear
(
animated
)
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
{
@objc
private
func
clickSaveButton
()
{
submitIncome
(
.
save
,
complete
:
{
_
in
})
}
@objc
private
func
clickSubmitButton
()
{
submitIncome
(
.
submit
,
complete
:
{
_
in
})
submitIncome
(
complete
:
{
_
in
})
}
private
func
setupUI
()
{
...
...
@@ -186,7 +142,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
view
.
backgroundColor
=
UIColor
.
contentBkgColor
view
.
addSubview
(
tableView
)
view
.
addSubview
(
bottomView
)
bottomView
.
addSubview
(
saveButton
)
bottomView
.
addSubview
(
submitButton
)
bottomView
.
snp
.
makeConstraints
{
make
in
...
...
@@ -195,15 +150,8 @@ extension YHGCIncomeRecordWorkExperienceViewController {
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
.
left
.
equalTo
Superview
()
.
offset
(
16
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
height
.
equalTo
(
44
)
...
...
@@ -219,32 +167,66 @@ extension YHGCIncomeRecordWorkExperienceViewController {
}
private
func
setupData
()
{
selectedTypes
=
companyModel
.
income_typ
e
.
compactMap
{
YHIncomeType
(
rawValue
:
$0
)
selectedTypes
=
viewModel
.
position
.
type_of_incom
e
.
compactMap
{
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
{
firstSection
.
append
(
.
incomeTypes
(
selectedTypes
))
}
let
hkdFmt
=
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
)
{
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
)
人民币计算,实际金额按递交时入境处给出的汇率为准"
))
let
secondSection
:
[
TableRow
]
=
[
.
header
(
"企业信息"
),
.
infoSelect
(
"派薪国家/地区"
,
nil
,
"请选择"
),
.
infoSelect
(
"派薪城市"
,
nil
,
"请选择"
),
.
infoEdit
(
"职位"
,
nil
,
"请输入"
),
.
infoSelect
(
"入职年月"
,
nil
,
"请选择"
),
.
infoTillNowSelect
(
"离职年月"
,
nil
,
"请选择"
,
true
),
.
infoCheckbox
(
"是否可以提供工作证明"
),
.
infoSelect
(
"职业界别"
,
nil
,
"请选择"
),
.
infoEdit
(
"具体职业界别"
,
nil
,
"请输入"
)]
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
))
let
thirdSection
:
[
TableRow
]
=
[
.
header
(
"工作证件(选填)"
),
.
incomeTips
(
tips
),
.
uploadWorkId
(
"上传工作证件"
,
"去上传"
)]
datas
=
[
firstSection
,
secondSection
,
thirdSection
]
let
secondSection
=
getEnterpriseInfo
()
datas
=
[
firstSection
,
secondSection
]
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
])
{
let
ctl
=
YHIncomeTypeSelectViewController
(
selectedTypes
:
selectedTypes
)
private
func
showSelectIncomeTypePopVC
(
selectedTypes
:
[
YH
GC
IncomeType
])
{
let
ctl
=
YH
GC
IncomeTypeSelectViewController
(
selectedTypes
:
selectedTypes
)
let
bpc
=
YHBottomPresentationController
(
presentedViewController
:
ctl
,
presenting
:
self
)
bpc
.
customRadius
=
8.0
ctl
.
transitioningDelegate
=
bpc
...
...
@@ -259,8 +241,8 @@ extension YHGCIncomeRecordWorkExperienceViewController {
}
private
func
updateSelectTypes
()
{
companyModel
.
income_typ
e
=
selectedTypes
.
map
{
$0
.
rawValue
}
if
companyModel
.
income_typ
e
.
count
>
0
{
viewModel
.
position
.
type_of_incom
e
=
selectedTypes
.
map
{
$0
.
rawValue
}
if
viewModel
.
position
.
type_of_incom
e
.
count
>
0
{
isIncomeTypeOK
=
true
}
var
incomeTypesIndexPath
:
IndexPath
?
...
...
@@ -316,8 +298,9 @@ extension YHGCIncomeRecordWorkExperienceViewController {
let
newIndex
=
incomeIndex
// > 1 ? incomeIndex - 1 : 0
let
hkdFmt
=
currencyFormat
(
""
)
let
rmbFmt
=
currencyFormat
(
"¥"
)
let
rate
=
companyModel
.
rate
>
0
?
companyModel
.
rate
:
0.92
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
rate
=
getCurrentRate
()
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
}
}
...
...
@@ -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
{
...
...
@@ -375,9 +367,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
cell
.
setupCellInfo
(
title
)
return
cell
}
case
let
.
incomeFrom
(
title
,
detail
,
placeholder
):
case
let
.
incomeFrom
(
title
,
placeholder
):
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
}
case
let
.
incomeTypeSelect
(
title
,
detail
,
isSelectedOne
):
...
...
@@ -428,9 +420,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
self
.
datas
[
indexPath
.
section
][
indexPath
.
row
]
=
.
inputMoney
(
title
,
nil
,
nil
,
showBottomLine
,
showStar
,
isIncomeMoney
)
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
if
isIncomeMoney
{
self
.
companyModel
.
income_money
=
0
self
.
viewModel
.
position
.
income
=
"0"
}
else
{
self
.
companyModel
.
corporate_turnover
=
0
self
.
viewModel
.
position
.
turnover
=
"0"
}
}
}
...
...
@@ -443,9 +435,9 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
let
detail
=
number
/
self
.
currencyRate
if
isIncomeMoney
{
self
.
isIncomeMoneyOK
=
true
self
.
companyModel
.
income_money
=
number
self
.
viewModel
.
position
.
income
=
"
\(
number
)
"
}
else
{
self
.
companyModel
.
corporate_turnover
=
number
self
.
viewModel
.
position
.
turnover
=
"
\(
number
)
"
}
let
rmbFormatter
=
self
.
currencyFormat
(
"¥"
)
...
...
@@ -472,37 +464,100 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
cell
.
setupCellInfo
(
detail
)
return
cell
}
case
let
.
infoSelect
(
title
,
detail
,
placeholder
):
case
let
.
infoSelect
(
title
,
placeholder
):
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
)
return
cell
}
case
let
.
infoTillNowSelect
(
title
,
detail
,
placeholder
,
isTillNow
):
case
let
.
infoTillNowSelect
(
title
,
placeholder
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeDateTillNowCell
.
cellReuseIdentifier
)
as?
YHIncomeDateTillNowCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
placeholder
:
placeholder
,
tillNow
:
isTillNow
,
needShowFailButton
:
false
)
cell
.
tillNowButtonEvent
=
{
//
let
detail
=
viewModel
.
position
.
departure_time
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
}
case
let
.
infoEdit
(
title
,
detail
,
placeholder
):
case
let
.
infoEdit
(
title
,
placeholder
):
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
.
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
}
case
let
.
infoCheckbox
(
title
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHInfoQuestionSelectionCell
.
cellReuseIdentifier
)
as?
YHInfoQuestionSelectionCell
{
cell
.
setupCellInfo
(
question
:
title
,
showBottomLine
:
true
,
needShowFailButton
:
false
)
return
cell
}
case
let
.
incomeTips
(
detail
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordCompanyTipsCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordCompanyTipsCell
{
cell
.
setupCellInfo
(
tipsDetail
:
detail
)
return
cell
}
case
let
.
uploadWorkId
(
title
,
detail
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeUploadWorkIDCell
.
cellReuseIdentifier
)
as?
YHIncomeUploadWorkIDCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
)
cell
.
didSelectSureButton
=
{
[
weak
self
]
selected
in
guard
let
self
=
self
else
{
return
}
switch
selected
{
case
.
true
:
self
.
viewModel
.
position
.
has_work_certificate
=
YHCheckboxSelectType
.
true
.
rawValue
case
.
false
:
self
.
viewModel
.
position
.
has_work_certificate
=
YHCheckboxSelectType
.
false
.
rawValue
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
}
}
...
...
@@ -536,39 +591,122 @@ extension YHGCIncomeRecordWorkExperienceViewController: UITableViewDelegate, UIT
showSelectIncomeTypePopVC
(
selectedTypes
:
selectedTypes
)
}
else
if
case
.
incomeFrom
=
tableRow
{
let
vc
=
YHCompanySelectViewController
()
vc
.
backLocationStringController
=
{
_
in
// country.company_name
//
vc
.
backLocationStringController
=
{
[
weak
self
]
company
in
guard
let
self
=
self
else
{
return
}
self
.
viewModel
.
position
.
company_name
=
company
.
company_name
??
""
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
navigationController
?
.
pushViewController
(
vc
)
}
else
if
case
let
.
infoSelect
(
title
,
_
,
_
)
=
tableRow
{
if
title
==
"派薪国家/地区"
{
}
else
if
case
let
.
infoSelect
(
title
,
_
)
=
tableRow
{
switch
title
{
case
"派薪国家/地区"
:
let
vc
=
YHSelectCountryViewController
()
vc
.
backLocationStringController
=
{
(
country
)
in
//self.dataSource?.message = country
//
vc
.
backLocationStringController
=
{
[
weak
self
]
country
in
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
)
}
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
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
==
"职业界别"
{
YHOtherPickerView
.
show
(
type
:
.
position
,
selectTitle
:
""
)
{[
weak
self
]
data
in
case
"职业界别"
:
YHOtherPickerView
.
show
(
type
:
.
position
,
selectTitle
:
viewModel
.
position
.
company_type
)
{[
weak
self
]
data
in
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
==
"离职年月"
{
let
title
=
"选择离职年月"
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 {
private
func
checkInput
()
->
Bool
{
var
retValue
=
true
var
updateRows
:
[
IndexPath
]
=
[]
if
companyModel
.
has_all_file
==
YHIncomeRecordHasAllFile
.
unknown
.
rawValue
{
isHasAllFileOK
=
false
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
{
if
viewModel
.
position
.
type_of_income
.
count
==
0
{
isIncomeTypeOK
=
false
if
let
incomeTypeIndexPath
=
incomeTypeIndexPath
,
tableView
.
numberOfSections
>
incomeTypeIndexPath
.
section
,
tableView
.
numberOfRows
(
inSection
:
incomeTypeIndexPath
.
section
)
>
incomeTypeIndexPath
.
row
{
updateRows
.
append
(
incomeTypeIndexPath
)
}
retValue
=
false
}
if
companyModel
.
income_money
==
0
{
if
viewModel
.
position
.
income
==
"0"
{
isIncomeMoneyOK
=
false
if
let
incomMoneyIndexPath
=
incomMoneyIndexPath
,
tableView
.
numberOfSections
>
incomMoneyIndexPath
.
section
,
tableView
.
numberOfRows
(
inSection
:
incomMoneyIndexPath
.
section
)
>
incomMoneyIndexPath
.
row
{
updateRows
.
append
(
incomMoneyIndexPath
)
...
...
@@ -602,7 +734,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
}
if
updateRows
.
count
>
0
{
tableView
.
reloadRows
(
at
:
updateRows
,
with
:
.
none
)
isHasAllFileOK
=
true
isIncomeTypeOK
=
true
isIncomeMoneyOK
=
true
}
...
...
@@ -613,15 +744,14 @@ extension YHGCIncomeRecordWorkExperienceViewController {
if
isNeedLoading
{
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
{
return
}
if
isNeedLoading
{
YHHUD
.
hide
()
}
guard
let
companyModel
=
companyModel
else
{
guard
success
else
{
printLog
(
"YHGCIncomeRecordWorkExperienceViewController: 请求失败"
)
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
YHHUD
.
flash
(
message
:
errorMsg
)
...
...
@@ -630,21 +760,18 @@ extension YHGCIncomeRecordWorkExperienceViewController {
self
.
tableView
.
reloadData
()
return
}
self
.
companyModel
=
companyModel
self
.
setupData
()
}
}
private
func
submitIncome
(
_
type
:
YHIncomeRecordUpdateType
,
complete
:
@escaping
(
Bool
)
->
Void
)
{
private
func
submitIncome
(
complete
:
@escaping
(
Bool
)
->
Void
)
{
view
.
endEditing
(
true
)
let
msg
=
type
==
.
save
?
"保存中..."
:
"提交中..."
if
type
==
.
submit
{
if
checkInput
()
==
false
{
return
}
let
msg
=
"提交中..."
if
checkInput
()
==
false
{
return
}
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
{
complete
(
false
)
return
...
...
@@ -652,7 +779,7 @@ extension YHGCIncomeRecordWorkExperienceViewController {
YHHUD
.
hide
()
complete
(
success
)
if
success
{
let
msg
=
type
==
.
save
?
"保存成功"
:
"提交成功"
let
msg
=
"提交成功"
YHHUD
.
flash
(
message
:
msg
)
self
.
submitSuccess
?()
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
...
...
@@ -660,9 +787,6 @@ extension YHGCIncomeRecordWorkExperienceViewController {
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
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
class
YHIncomeDateTillNowCell
:
YHResignDocumentCell
{
static
let
cellReuseIdentifier
=
"YHIncomeDateTillNowCell"
var
tillNowButtonEvent
:
(()
->
Void
)?
var
tillNowButtonEvent
:
((
Bool
)
->
Void
)?
private
var
placeholder
:
String
=
""
private
lazy
var
dotIcon
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"red_dot_6"
))
...
...
@@ -71,8 +72,9 @@ class YHIncomeDateTillNowCell: YHResignDocumentCell {
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
self
.
placeholder
=
placeholder
updateContentState
(
detail
:
detail
,
placeholder
:
placeholder
)
bottomLineView
.
isHidden
=
!
showBottomLine
infoFailLabel
.
text
=
placeholder
...
...
@@ -82,7 +84,10 @@ class YHIncomeDateTillNowCell: YHResignDocumentCell {
extension
YHIncomeDateTillNowCell
{
@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
)
{
...
...
@@ -121,10 +126,57 @@ extension YHIncomeDateTillNowCell {
infoDetailLabel
.
font
=
.
PFSC_M
(
ofSize
:
14
)
infoDetailLabel
.
textColor
=
UIColor
.
mainTextColor
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
{
infoDetailLabel
.
isHidden
=
false
tillNowButton
.
isSelected
=
false
infoDetailLabel
.
text
=
placeholder
infoDetailLabel
.
font
=
.
PFSC_R
(
ofSize
:
14
)
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 {
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
class
YHGCIncomeRecordWorkExperienceViewModel
:
YHBaseViewModel
{
var
position
:
YHGCWorkExperienceModel
=
YHGCWorkExperienceModel
()
var
saveWorkModel
:
YHGCIncomeRecordSaveWorkModel
=
YHGCIncomeRecordSaveWorkModel
()
override
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
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
gcworkDetail
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
param
)
{
[
weak
self
]
json
,
_
in
...
...
@@ -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
,
"country"
:
position
.
location
.
country
,
"details"
:
position
.
location
.
details
,
"foreign"
:
position
.
location
.
foreign
]
as
[
String
:
Any
]
let
params
:
[
String
:
Any
]
=
[
"id"
:
position
.
id
,
"order_id"
:
position
.
order_id
,
...
...
@@ -51,15 +51,22 @@ class YHGCIncomeRecordWorkExperienceViewModel: YHBaseViewModel {
"has_work_certificate"
:
position
.
has_work_certificate
,
"company_type"
:
position
.
company_type
,
"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
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
params
)
{
[
weak
self
]
json
,
_
in
guard
let
self
=
self
else
{
return
}
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
)
return
}
self
.
saveWorkModel
=
result
self
.
position
.
id
=
result
.
id
callBackBlock
(
true
,
nil
)
}
else
{
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 {
var
turnover
:
String
=
""
/// 高A使用 收入类型 1 工资薪金所得及全年一次性奖金; 2 上市公司股票期权或股权收入; 3 持股公司分红收入; 4 个体工商户/合伙企业/独资企业经营所得收入; 5
/// 股权转让收入; 6 内地公司收入(持股50%及以上); 7 香港公司收入(持股50%及以上); 8 其他境外公司收入(持股50%及以上); 10 澳门公司收入(持股50%及以上)
var
type
OfI
ncome
:
[
Int
]
=
[]
var
type
_of_i
ncome
:
[
Int
]
=
[]
/// 高A使用 收入金额
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