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
0ad37d7b
Commit
0ad37d7b
authored
Nov 09, 2024
by
Steven杜宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
// 高才
parent
51c4f73f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
676 additions
and
8 deletions
+676
-8
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+52
-8
YHGCEducationInfoListVC.swift
...rviceProcess(我的信息流程)/学历资格/C/YHGCEducationInfoListVC.swift
+624
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
0ad37d7b
...
...
@@ -485,6 +485,7 @@
047AA3FA2C60739E009C4554
/* YHInvitationWithGiftsSelectItemView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
047AA3F92C60739E009C4554
/* YHInvitationWithGiftsSelectItemView.swift */
;
};
047AA3FC2C61EE7F009C4554
/* YHSignAppendStepView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
047AA3FB2C61EE7F009C4554
/* YHSignAppendStepView.swift */
;
};
047AB5E62CD083CE002A3573
/* YHButlerMessageReportHandler.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
047AB5E52CD083CE002A3573
/* YHButlerMessageReportHandler.swift */
;
};
047F3DB62CDF3898001B2A6D
/* YHGCEducationInfoListVC.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
047F3DB52CDF3898001B2A6D
/* YHGCEducationInfoListVC.swift */
;
};
0480582F2C7CA77900502CAA
/* YHDisappointHKAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0480582E2C7CA77900502CAA
/* YHDisappointHKAlertView.swift */
;
};
048058312C7DBDC900502CAA
/* YHTravelCertificateTipsView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
048058302C7DBDC900502CAA
/* YHTravelCertificateTipsView.swift */
;
};
048058332C7DC0CF00502CAA
/* YHTravelCertificateTipsCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
048058322C7DC0CF00502CAA
/* YHTravelCertificateTipsCell.swift */
;
};
...
...
@@ -1455,6 +1456,7 @@
047AA3F92C60739E009C4554
/* YHInvitationWithGiftsSelectItemView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHInvitationWithGiftsSelectItemView.swift
;
sourceTree
=
"<group>"
;
};
047AA3FB2C61EE7F009C4554
/* YHSignAppendStepView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSignAppendStepView.swift
;
sourceTree
=
"<group>"
;
};
047AB5E52CD083CE002A3573
/* YHButlerMessageReportHandler.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHButlerMessageReportHandler.swift
;
sourceTree
=
"<group>"
;
};
047F3DB52CDF3898001B2A6D
/* YHGCEducationInfoListVC.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHGCEducationInfoListVC.swift
;
sourceTree
=
"<group>"
;
};
0480582E2C7CA77900502CAA
/* YHDisappointHKAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHDisappointHKAlertView.swift
;
sourceTree
=
"<group>"
;
};
048058302C7DBDC900502CAA
/* YHTravelCertificateTipsView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHTravelCertificateTipsView.swift
;
sourceTree
=
"<group>"
;
};
048058322C7DC0CF00502CAA
/* YHTravelCertificateTipsCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHTravelCertificateTipsCell.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -3527,6 +3529,54 @@
path
=
VM
;
sourceTree
=
"<group>"
;
};
047F3DAF2CDF36CE001B2A6D
/* TTPS(高才) */
=
{
isa
=
PBXGroup
;
children
=
(
047F3DB02CDF36DE001B2A6D
/* ServiceProcess(我的信息流程) */
,
);
path
=
"TTPS(高才)"
;
sourceTree
=
"<group>"
;
};
047F3DB02CDF36DE001B2A6D
/* ServiceProcess(我的信息流程) */
=
{
isa
=
PBXGroup
;
children
=
(
047F3DB12CDF36F8001B2A6D
/* 学历资格 */
,
);
path
=
"ServiceProcess(我的信息流程)"
;
sourceTree
=
"<group>"
;
};
047F3DB12CDF36F8001B2A6D
/* 学历资格 */
=
{
isa
=
PBXGroup
;
children
=
(
047F3DB42CDF372F001B2A6D
/* C */
,
047F3DB32CDF3728001B2A6D
/* V */
,
047F3DB22CDF3721001B2A6D
/* M */
,
);
path
=
"学历资格"
;
sourceTree
=
"<group>"
;
};
047F3DB22CDF3721001B2A6D
/* M */
=
{
isa
=
PBXGroup
;
children
=
(
);
path
=
M
;
sourceTree
=
"<group>"
;
};
047F3DB32CDF3728001B2A6D
/* V */
=
{
isa
=
PBXGroup
;
children
=
(
);
path
=
V
;
sourceTree
=
"<group>"
;
};
047F3DB42CDF372F001B2A6D
/* C */
=
{
isa
=
PBXGroup
;
children
=
(
047F3DB52CDF3898001B2A6D
/* YHGCEducationInfoListVC.swift */
,
);
path
=
C
;
sourceTree
=
"<group>"
;
};
0480582C2C7CA6CD00502CAA
/* GuideToHongKong(5 赴港行程指南) */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -4622,13 +4672,6 @@
path
=
"QMAS(优才)"
;
sourceTree
=
"<group>"
;
};
A5A60B222CDE1BFB0083DB2F
/* TTPS(高才) */
=
{
isa
=
PBXGroup
;
children
=
(
);
path
=
"TTPS(高才) "
;
sourceTree
=
"<group>"
;
};
A5ACE8D72B4564F7002C94D2
/* Classes */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -4836,8 +4879,8 @@
A5ACE9162B4564F7002C94D2
/* IntelligentService(服务中心) */
=
{
isa
=
PBXGroup
;
children
=
(
047F3DAF2CDF36CE001B2A6D
/* TTPS(高才) */
,
A5A60B212CDE1B930083DB2F
/* QMAS(优才) */
,
A5A60B222CDE1BFB0083DB2F
/* TTPS(高才) */
,
A5C382CD2B5F9A4F00C5E65C
/* VM */
,
A5ACE9172B4564F7002C94D2
/* M */
,
A5ACE9182B4564F7002C94D2
/* C */
,
...
...
@@ -5983,6 +6026,7 @@
A5ACE9492B4564F7002C94D2
/* YHHUDSuccessView.swift in Sources */
,
04B360EF2C620975001EB053
/* YHPrincipleUploadStatusCell.swift in Sources */
,
044EE2252C90138000A2FE3A
/* YHServerCenterHoldViewController.swift in Sources */
,
047F3DB62CDF3898001B2A6D
/* YHGCEducationInfoListVC.swift in Sources */
,
04F2436E2C9E5D8D00DF2C74
/* YHResignDocumentSignatureModel.swift in Sources */
,
045EEE9C2B9F171A0022A143
/* YHCompanyViewModel.swift in Sources */
,
A58556BA2B6BCF1A003746B2
/* YHPersonInfoFillStepModel.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/TTPS(高才)/ServiceProcess(我的信息流程)/学历资格/C/YHGCEducationInfoListVC.swift
0 → 100644
View file @
0ad37d7b
//
// YHGCEducationInfoListVC.swift
// galaxy
//
// Created by edy on 2024/11/9.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
//import Toast_Swift
class
YHGCEducationInfoListVC
:
YHBaseViewController
{
var
orderId
:
Int
=
0
let
educationRequest
:
YHEducationRequestViewModel
=
YHEducationRequestViewModel
()
var
familyMemberInfo
:
YHFamilyMemberGroupInfo
?
// 学历编辑模式
var
isDegreeEditMode
:
YHFormTitleItemEditType
=
.
none
// 专业编辑模式
var
isQualificationEditMode
:
YHFormTitleItemEditType
=
.
none
var
educationInfo
:
YHEducationListInfo
?
var
items
:[[
YHFormItemProtocol
]]
=
[]
// 是否显示未填写错误提示
var
isNeedShowError
=
false
lazy
var
tableView
:
UITableView
=
{
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
if
#available(iOS 11.0, *)
{
tableView
.
contentInsetAdjustmentBehavior
=
.
never
}
tableView
.
estimatedSectionHeaderHeight
=
14.0
tableView
.
estimatedSectionFooterHeight
=
1.0
tableView
.
showsVerticalScrollIndicator
=
false
tableView
.
backgroundColor
=
UIColor
(
hexString
:
"#F8F8F8"
)
tableView
.
separatorStyle
=
.
none
tableView
.
delegate
=
self
tableView
.
dataSource
=
self
tableView
.
register
(
UITableViewCell
.
self
,
forCellReuseIdentifier
:
"UITableViewCell"
)
tableView
.
register
(
YHEducationInfoCell
.
self
,
forCellReuseIdentifier
:
YHEducationInfoCell
.
cellReuseIdentifier
)
tableView
.
register
(
YHFormItemTitleCell
.
self
,
forCellReuseIdentifier
:
YHFormItemTitleCell
.
cellReuseIdentifier
)
tableView
.
register
(
YHFormItemAddCell
.
self
,
forCellReuseIdentifier
:
YHFormItemAddCell
.
cellReuseIdentifier
)
tableView
.
register
(
YHFormItemEnterDetailCell
.
self
,
forCellReuseIdentifier
:
YHFormItemEnterDetailCell
.
cellReuseIdentifier
)
tableView
.
register
(
YHFormItemAddCell
.
self
,
forCellReuseIdentifier
:
YHFormItemAddCell
.
cellReuseIdentifier
)
tableView
.
register
(
YHFormItemQuestionsCell
.
self
,
forCellReuseIdentifier
:
YHFormItemQuestionsCell
.
cellReuseIdentifier
)
return
tableView
}()
var
bottomView
:
YHSaveAndSubmitView
=
{
let
view
=
YHSaveAndSubmitView
.
createView
()
return
view
}()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
self
.
gk_navTitle
=
"学历/专业资格填写"
.
local
self
.
gk_navigationBar
.
backgroundColor
=
.
white
view
.
backgroundColor
=
UIColor
(
hexString
:
"#F8F8F8"
)
createUI
()
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
requestEducationInfo
()
}
func
createUI
()
{
view
.
addSubview
(
tableView
);
view
.
addSubview
(
bottomView
)
bottomView
.
saveBlock
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
saveInfo
(
isSubmit
:
false
)
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
}
bottomView
.
submitBlock
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
submitInfo
()
}
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
make
.
height
.
equalTo
(
YHSaveAndSubmitView
.
height
)
}
tableView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
k_Height_NavigationtBarAndStatuBar
)
make
.
bottom
.
equalTo
(
bottomView
.
snp
.
top
)
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
}
loadInfo
()
}
func
loadInfo
()
{
guard
let
educationInfo
=
educationInfo
else
{
return
}
items
.
removeAll
()
// 主申请人学历
let
title0
=
YHFormTitleItem
(
type
:
.
mainApplicantEducation
)
var
arr0
:[
YHFormItemProtocol
]
=
[
title0
]
if
let
eduList
=
educationInfo
.
eduList
{
for
(
index
,
eduInfo
)
in
eduList
.
enumerated
()
{
let
item
=
YHFormDetailItem
(
type
:
.
educationInfo
)
arr0
.
append
(
item
)
}
// 多学历可编辑删除状态
if
eduList
.
count
<=
1
{
isDegreeEditMode
=
.
none
}
else
{
if
isDegreeEditMode
==
.
none
{
isDegreeEditMode
=
.
canEdit
}
}
}
else
{
isDegreeEditMode
=
.
none
}
// 新增学历信息
arr0
.
append
(
YHFormAddItem
(
type
:
.
addEducation
))
items
.
append
(
arr0
)
// 主申请人专业资格及会员资格
let
title1
=
YHFormTitleItem
(
type
:
.
mainApplicantProfessionalQualification
)
var
arr1
:[
YHFormItemProtocol
]
=
[
title1
]
if
let
quaList
=
educationInfo
.
quaList
{
for
(
index
,
quaInfo
)
in
quaList
.
enumerated
()
{
let
item
=
YHFormDetailItem
(
type
:
.
certificateInfo
)
arr1
.
append
(
item
)
}
// 多专业可编辑删除状态
if
quaList
.
count
<=
0
{
isQualificationEditMode
=
.
none
}
else
{
if
isQualificationEditMode
==
.
none
{
isQualificationEditMode
=
.
canEdit
}
}
}
else
{
isQualificationEditMode
=
.
none
}
// 新增学历信息
arr1
.
append
(
YHFormAddItem
(
type
:
.
addCertificateInfo
))
items
.
append
(
arr1
)
// 学历证书姓名及出生日期正确性
let
title2
=
YHFormTitleItem
(
type
:
.
edutionalCertificateNameAndBirthday
)
var
arr2
:[
YHFormItemProtocol
]
=
[
title2
]
// 问题集合
let
questions
=
YHQuestionInfo
.
getEducationQuestion
(
eduList
:
educationInfo
)
for
questionInfo
in
questions
{
if
questionInfo
.
key
==
"qualification"
{
questionInfo
.
answer
=
educationInfo
.
isNameSame
}
else
if
questionInfo
.
key
==
"graduate"
{
questionInfo
.
answer
=
educationInfo
.
isSpouseNameSame
}
arr2
.
append
(
questionInfo
)
}
items
.
append
(
arr2
)
self
.
tableView
.
reloadData
()
}
}
extension
YHGCEducationInfoListVC
:
UITableViewDelegate
,
UITableViewDataSource
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
return
items
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
if
section
>=
items
.
count
{
return
0
}
let
arr
=
items
[
section
]
return
arr
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
if
indexPath
.
section
>=
items
.
count
{
return
createDefaultCell
(
indexPath
)
}
let
arr
:[
YHFormItemProtocol
]
=
items
[
indexPath
.
section
]
if
indexPath
.
row
>=
arr
.
count
{
return
createDefaultCell
(
indexPath
)
}
let
item
:
YHFormItemProtocol
=
arr
[
indexPath
.
row
]
if
item
is
YHFormTitleItem
{
// 是标题
let
formItem
=
item
as!
YHFormTitleItem
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHFormItemTitleCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHFormItemTitleCell
let
isNeedWrap
=
(
formItem
.
type
==
.
mainApplicantProfessionalQualification
)
cell
.
setTitleAndSubTitle
(
title
:
formItem
.
getTitle
(),
subTitle
:
formItem
.
getSubTitle
(),
isNeedWrap
:
isNeedWrap
)
// 决定右边按钮显示样式
cell
.
showEditType
(
type
:
.
none
)
if
formItem
.
type
==
.
mainApplicantEducation
{
// 学历
cell
.
showEditType
(
type
:
isDegreeEditMode
)
}
else
if
formItem
.
type
==
.
mainApplicantProfessionalQualification
{
// 专业
cell
.
showEditType
(
type
:
isQualificationEditMode
)
}
// 右边按钮点击事件处理
cell
.
rightClickBlock
=
{
[
weak
self
]
type
in
guard
let
self
=
self
else
{
return
}
if
formItem
.
type
==
.
mainApplicantEducation
{
// 学历
if
self
.
isDegreeEditMode
==
.
canCancel
{
self
.
isDegreeEditMode
=
.
canEdit
}
else
if
self
.
isDegreeEditMode
==
.
canEdit
{
self
.
isDegreeEditMode
=
.
canCancel
}
}
if
formItem
.
type
==
.
mainApplicantProfessionalQualification
{
// 专业
if
self
.
isQualificationEditMode
==
.
canCancel
{
self
.
isQualificationEditMode
=
.
canEdit
}
else
if
self
.
isQualificationEditMode
==
.
canEdit
{
self
.
isQualificationEditMode
=
.
canCancel
}
}
loadInfo
()
}
return
cell
}
if
item
is
YHFormAddItem
{
let
detailItem
=
item
as!
YHFormAddItem
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHFormItemAddCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHFormItemAddCell
if
detailItem
.
type
==
.
addEducation
{
cell
.
title
=
"新增学历信息"
}
else
if
detailItem
.
type
==
.
addCertificateInfo
{
cell
.
title
=
"新增证书信息"
}
else
{
cell
.
title
=
""
}
cell
.
clickBlock
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
if
detailItem
.
type
==
.
addEducation
{
// 学历
let
vc
=
YHEducationDetailVC
()
vc
.
orderId
=
self
.
orderId
self
.
navigationController
?
.
pushViewController
(
vc
)
}
else
if
detailItem
.
type
==
.
addCertificateInfo
{
// 证书
let
vc
=
YHQualificationDetailVC
()
vc
.
orderId
=
self
.
orderId
self
.
navigationController
?
.
pushViewController
(
vc
)
}
return
}
return
cell
}
if
item
is
YHQuestionInfo
{
let
detailItem
=
item
as!
YHQuestionInfo
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHFormItemQuestionsCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHFormItemQuestionsCell
cell
.
isMust
=
true
cell
.
title
=
String
(
format
:
"%d、
\(
detailItem
.
question
)
"
,
indexPath
.
row
)
var
select0
=
false
var
select1
=
false
if
let
answer
=
detailItem
.
answer
{
select0
=
answer
select1
=
!
answer
}
let
answers
=
[
YHFormChoiceItem
(
title
:
"是"
.
local
,
isSelect
:
select0
),
YHFormChoiceItem
(
title
:
"否"
.
local
,
isSelect
:
select1
)]
cell
.
answerArr
=
answers
cell
.
answerBlock
=
{
[
weak
self
]
(
arr
,
selectIndex
)
in
guard
let
self
=
self
else
{
return
}
let
selectItem
:
YHFormChoiceItem
=
arr
[
selectIndex
]
let
option
=
(
selectItem
.
title
==
"是"
.
local
?
true
:
false
)
if
detailItem
.
key
==
"qualification"
{
self
.
educationInfo
?
.
isNameSame
=
option
}
else
if
detailItem
.
key
==
"graduate"
{
self
.
educationInfo
?
.
isSpouseNameSame
=
option
}
loadInfo
()
}
return
cell
}
if
item
is
YHFormDetailItem
{
let
detailItem
=
item
as!
YHFormDetailItem
if
detailItem
.
type
==
.
educationInfo
{
if
let
eduList
=
educationInfo
?
.
eduList
,
eduList
.
count
>
0
{
// 第一行是标题
let
eduInfo
:
YHEducationInfo
=
eduList
[
indexPath
.
row
-
1
]
if
eduInfo
.
vacantNum
>
0
{
// 有未填项
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHFormItemEnterDetailCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHFormItemEnterDetailCell
if
let
college
=
eduInfo
.
college
,
!
college
.
isEmpty
{
cell
.
title
=
eduInfo
.
college
}
else
{
cell
.
title
=
"学历标题"
.
local
}
let
tips
=
String
(
format
:
"有%d项未填"
,
eduInfo
.
vacantNum
)
cell
.
detailLabel
.
text
=
tips
cell
.
isShowDeleteBtn
=
(
isDegreeEditMode
==
.
canCancel
&&
eduList
.
count
>
1
)
cell
.
setTips
(
tips
,
isShow
:(
isNeedShowError
&&
eduInfo
.
vacantNum
>
0
))
cell
.
deleteBlock
=
{
var
title
=
"确定删除该学历吗?"
if
let
collegeName
=
eduInfo
.
college
,
!
collegeName
.
isEmpty
{
title
=
"确定删除学历
\(
collegeName
)
吗"
}
YHTwoOptionAlertView
.
showAlertView
(
message
:
title
)
{
[
weak
self
]
sure
in
guard
let
self
=
self
else
{
return
}
if
!
sure
{
return
}
isDegreeEditMode
=
.
none
deleteEducationInfo
(
id
:
eduInfo
.
id
)
}
}
return
cell
}
else
{
// 数据已填满
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHEducationInfoCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHEducationInfoCell
cell
.
titleLabel
.
text
=
eduInfo
.
college
cell
.
subTitleLabel
.
text
=
""
if
let
major
=
eduInfo
.
major
,
let
degree
=
eduInfo
.
degree
{
cell
.
subTitleLabel
.
text
=
String
(
"
\(
degree
)
-
\(
major
)
"
)
}
cell
.
timeLabel
.
text
=
""
if
let
admissionTime
=
eduInfo
.
admissionTime
,
let
graduateTime
=
eduInfo
.
graduateTime
{
cell
.
timeLabel
.
text
=
String
(
"
\(
admissionTime
)
~
\(
graduateTime
)
"
)
}
cell
.
isShowDeleteBtn
=
(
isDegreeEditMode
==
.
canCancel
)
cell
.
deleteBlock
=
{
var
title
=
"确定删除该学历吗?"
if
let
collegeName
=
eduInfo
.
college
,
!
collegeName
.
isEmpty
{
title
=
"确定删除学历
\(
collegeName
)
吗"
}
YHTwoOptionAlertView
.
showAlertView
(
message
:
title
)
{
[
weak
self
]
sure
in
guard
let
self
=
self
else
{
return
}
if
!
sure
{
return
}
isDegreeEditMode
=
.
none
deleteEducationInfo
(
id
:
eduInfo
.
id
)
}
}
return
cell
}
}
}
if
detailItem
.
type
==
.
certificateInfo
{
if
let
quaList
=
educationInfo
?
.
quaList
,
quaList
.
count
>
0
{
// 第一行是标题
let
quaInfo
:
YHQualificationInfo
=
quaList
[
indexPath
.
row
-
1
]
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHFormItemEnterDetailCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHFormItemEnterDetailCell
cell
.
title
=
"证书标题"
if
let
qualification
=
quaInfo
.
qualification
,
!
qualification
.
isEmpty
{
cell
.
title
=
qualification
}
var
tips
=
""
if
quaInfo
.
vacantNum
>
0
{
tips
=
String
(
format
:
"有%d项未填"
,
quaInfo
.
vacantNum
)
cell
.
detailLabel
.
text
=
tips
}
else
{
cell
.
detailLabel
.
text
=
"已填完"
.
local
}
cell
.
setTips
(
tips
,
isShow
:(
isNeedShowError
&&
quaInfo
.
vacantNum
>
0
))
cell
.
isShowDeleteBtn
=
(
isQualificationEditMode
==
.
canCancel
)
cell
.
deleteBlock
=
{
var
title
=
"确定要删除该证书吗?"
if
let
qualification
=
quaInfo
.
qualification
,
!
qualification
.
isEmpty
{
title
=
"确定删除证书
\(
qualification
)
吗"
}
YHTwoOptionAlertView
.
showAlertView
(
message
:
title
)
{
[
weak
self
]
sure
in
guard
let
self
=
self
else
{
return
}
if
!
sure
{
return
}
isQualificationEditMode
=
.
none
deleteQualificationInfo
(
id
:
quaInfo
.
id
)
}
}
return
cell
}
}
}
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
"UITableViewCell"
,
for
:
indexPath
)
return
cell
}
func
tableView
(
_
tableView
:
UITableView
,
willDisplay
cell
:
UITableViewCell
,
forRowAt
indexPath
:
IndexPath
)
{
if
indexPath
.
section
>=
items
.
count
{
return
}
let
arr
:[
YHFormItemProtocol
]
=
items
[
indexPath
.
section
]
if
indexPath
.
row
>=
arr
.
count
{
return
}
createCorner
(
cell
:
cell
,
arr
:
arr
,
indexPath
:
indexPath
)
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
UITableView
.
automaticDimension
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
private
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
CGFloat
{
return
14.0
}
private
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
CGFloat
{
if
section
==
items
.
count
-
1
{
return
14.0
}
return
1.0
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
let
arr
=
items
[
indexPath
.
section
]
let
item
:
YHFormItemProtocol
=
arr
[
indexPath
.
row
]
// 标题
if
item
is
YHFormTitleItem
{
return
}
if
item
is
YHFormAddItem
{
return
}
if
item
is
YHFormDetailItem
{
let
detailItem
=
item
as!
YHFormDetailItem
if
detailItem
.
type
==
.
educationInfo
{
// 学历
let
vc
=
YHEducationDetailVC
()
if
let
eduList
=
educationInfo
?
.
eduList
,
indexPath
.
row
-
1
<
eduList
.
count
{
let
eduInfo
=
eduList
[
indexPath
.
row
-
1
]
vc
.
detailId
=
eduInfo
.
id
vc
.
orderId
=
self
.
orderId
}
self
.
navigationController
?
.
pushViewController
(
vc
)
return
}
if
detailItem
.
type
==
.
certificateInfo
{
// 证书
let
vc
=
YHQualificationDetailVC
()
if
let
quaList
=
educationInfo
?
.
quaList
,
indexPath
.
row
-
1
<
quaList
.
count
{
let
quaInfo
=
quaList
[
indexPath
.
row
-
1
]
vc
.
detailId
=
quaInfo
.
id
vc
.
orderId
=
self
.
orderId
}
self
.
navigationController
?
.
pushViewController
(
vc
)
return
}
}
}
func
createDefaultCell
(
_
indexPath
:
IndexPath
)
->
UITableViewCell
{
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
"UITableViewCell"
,
for
:
indexPath
)
return
cell
}
func
createCorner
(
cell
:
UITableViewCell
,
arr
:
Array
<
Any
>
,
indexPath
:
IndexPath
)
{
// 设置每块section圆角
if
(
indexPath
.
row
==
0
)
{
let
corner
=
UIRectCorner
(
rawValue
:
UIRectCorner
.
topLeft
.
rawValue
|
UIRectCorner
.
topRight
.
rawValue
)
cell
.
createCorner
(
CGSizeMake
(
12.0
,
12.0
),
corner
)
}
else
if
(
indexPath
.
row
==
arr
.
count
-
1
)
{
let
corner
=
UIRectCorner
(
rawValue
:
UIRectCorner
.
bottomLeft
.
rawValue
|
UIRectCorner
.
bottomRight
.
rawValue
)
cell
.
createCorner
(
CGSizeMake
(
12.0
,
12.0
),
corner
)
}
else
{
cell
.
layer
.
mask
=
nil
}
}
}
extension
YHGCEducationInfoListVC
{
// 请求家庭成员信息
func
requestEducationInfo
()
{
self
.
educationRequest
.
requestEducationInfoList
(
params
:
[
"order_id"
:
self
.
orderId
])
{
[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
educationInfo
=
self
.
educationRequest
.
listInfo
loadInfo
()
}
}
}
// 删除学历信息
func
deleteEducationInfo
(
id
:
Int
)
{
self
.
educationRequest
.
deleteEducationInfo
(
id
:
id
)
{
[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
YHHUD
.
flash
(
message
:
"删除成功"
)
requestEducationInfo
()
}
else
{
var
errorMsg
=
"删除失败"
if
let
errMsg
=
error
?
.
errorMsg
,
errMsg
.
count
>
0
{
errorMsg
=
errMsg
}
YHHUD
.
flash
(
message
:
errorMsg
)
}
}
}
// 删除证书信息
func
deleteQualificationInfo
(
id
:
Int
)
{
self
.
educationRequest
.
deleteQualificationInfo
(
id
:
id
)
{
[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
YHHUD
.
flash
(
message
:
"删除成功"
)
requestEducationInfo
()
}
else
{
var
errorMsg
=
"删除失败"
if
let
errMsg
=
error
?
.
errorMsg
,
errMsg
.
count
>
0
{
errorMsg
=
errMsg
}
YHHUD
.
flash
(
message
:
errorMsg
)
}
}
}
// 保存
func
saveInfo
(
isSubmit
:
Bool
)
{
guard
let
educationInfo
=
educationInfo
else
{
return
}
let
params
:[
String
:
Any
]
=
[
"order_id"
:
self
.
orderId
,
"goNextFlow"
:
isSubmit
,
"isSpouseNameSame"
:
educationInfo
.
isSpouseNameSame
??
false
,
"isNameSame"
:
educationInfo
.
isNameSame
??
false
]
self
.
educationRequest
.
saveAllEducationInfo
(
params
:
params
)
{
[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
requestEducationInfo
()
self
.
navigationController
?
.
popViewController
()
}
else
{
var
errorMsg
=
isSubmit
?
"提交失败"
:
"保存失败"
if
let
errMsg
=
error
?
.
errorMsg
,
errMsg
.
count
>
0
{
errorMsg
=
errMsg
}
YHHUD
.
flash
(
message
:
errorMsg
)
}
}
}
func
submitInfo
()
{
let
isChecked
=
checkIntegrity
()
isNeedShowError
=
!
isChecked
self
.
tableView
.
reloadData
()
if
!
isChecked
{
YHHUD
.
flash
(
message
:
"资料还未填完"
)
return
}
saveInfo
(
isSubmit
:
true
)
}
// 检查填写信息完整性
func
checkIntegrity
()
->
Bool
{
guard
let
educationInfo
=
educationInfo
else
{
return
false
}
// 检查所有学历信息是否有未填项
if
let
eduList
=
educationInfo
.
eduList
,
eduList
.
count
>
0
{
for
eduInfo
in
eduList
{
if
eduInfo
.
vacantNum
>
0
{
return
false
}
}
}
// 检查所有证书信息是否有未填项
if
let
quaList
=
educationInfo
.
quaList
,
quaList
.
count
>
0
{
for
quaInfo
in
quaList
{
if
quaInfo
.
vacantNum
>
0
{
return
false
}
}
}
// 检查所有问题是否有未答项
if
educationInfo
.
isNameSame
==
nil
||
educationInfo
.
isSpouseNameSame
==
nil
{
return
false
}
return
true
}
}
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