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
af6644fd
Commit
af6644fd
authored
Jun 06, 2024
by
pete谢兆麟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.工作经验简历UI修改 2. 工作经验上传逻辑修改 3.工作经验已有列表接口调试 4.工作经验选择上传过的文件逻辑接入 5.已有上传工作经验UI绘制
parent
38c48762
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
808 additions
and
118 deletions
+808
-118
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+4
-0
YHCertificateInfoCell.swift
...(服务中心)/MyCertificates(我的证书)/V/YHCertificateInfoCell.swift
+1
-1
YHDatePickView.swift
...)/MainApplicantInformation(主申请人信息)/V/YHDatePickView.swift
+0
-2
YHWorkExperienceViewController.swift
...rkExperience(工作经验)/C/YHWorkExperienceViewController.swift
+249
-28
YHWorkExperienceDetailModel.swift
...kExperience(工作经验)/Model/YHWorkExperienceDetailModel.swift
+1
-0
YHSelectFileSheetView.swift
...的信息流程)/WorkExperience(工作经验)/V/YHSelectFileSheetView.swift
+376
-0
YHWorkFileItemView.swift
...s(我的信息流程)/WorkExperience(工作经验)/V/YHWorkFileItemView.swift
+87
-31
YHWorkFileSyncTableViewCell.swift
.../WorkExperience(工作经验)/V/YHWorkFileSyncTableViewCell.swift
+57
-27
YHWorkExperienceViewModel.swift
...xperience(工作经验)/ViewModel/YHWorkExperienceViewModel.swift
+27
-28
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+2
-0
Info.plist
galaxy/galaxy/Res/Info.plist
+4
-1
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
af6644fd
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
0435FA7F2BA178C100024EAE
/* YHCommonAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0435FA7E2BA178C100024EAE
/* YHCommonAlertView.swift */
;
};
0435FA7F2BA178C100024EAE
/* YHCommonAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0435FA7E2BA178C100024EAE
/* YHCommonAlertView.swift */
;
};
0435FA812BA186D600024EAE
/* YHMyFileMethodTableViewCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0435FA802BA186D600024EAE
/* YHMyFileMethodTableViewCell.swift */
;
};
0435FA812BA186D600024EAE
/* YHMyFileMethodTableViewCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0435FA802BA186D600024EAE
/* YHMyFileMethodTableViewCell.swift */
;
};
0435FA832BA2DEB100024EAE
/* YHCardButton.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0435FA822BA2DEB100024EAE
/* YHCardButton.swift */
;
};
0435FA832BA2DEB100024EAE
/* YHCardButton.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0435FA822BA2DEB100024EAE
/* YHCardButton.swift */
;
};
043B0A352C1190C6008A9BBA
/* YHSelectFileSheetView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043B0A342C1190C6008A9BBA
/* YHSelectFileSheetView.swift */
;
};
043D2C8A2C0EEF3F00172438
/* YHOrderSearchViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043D2C892C0EEF3F00172438
/* YHOrderSearchViewController.swift */
;
};
043D2C8A2C0EEF3F00172438
/* YHOrderSearchViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043D2C892C0EEF3F00172438
/* YHOrderSearchViewController.swift */
;
};
043D2C8C2C0F037B00172438
/* YHServiceOrderSearchViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043D2C8B2C0F037B00172438
/* YHServiceOrderSearchViewModel.swift */
;
};
043D2C8C2C0F037B00172438
/* YHServiceOrderSearchViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043D2C8B2C0F037B00172438
/* YHServiceOrderSearchViewModel.swift */
;
};
044378A42BFC848C001F95AE
/* loginBkg.mov in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044378A32BFC848C001F95AE
/* loginBkg.mov */
;
};
044378A42BFC848C001F95AE
/* loginBkg.mov in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044378A32BFC848C001F95AE
/* loginBkg.mov */
;
};
...
@@ -505,6 +506,7 @@
...
@@ -505,6 +506,7 @@
0435FA7E2BA178C100024EAE
/* YHCommonAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCommonAlertView.swift
;
sourceTree
=
"<group>"
;
};
0435FA7E2BA178C100024EAE
/* YHCommonAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCommonAlertView.swift
;
sourceTree
=
"<group>"
;
};
0435FA802BA186D600024EAE
/* YHMyFileMethodTableViewCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMyFileMethodTableViewCell.swift
;
sourceTree
=
"<group>"
;
};
0435FA802BA186D600024EAE
/* YHMyFileMethodTableViewCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMyFileMethodTableViewCell.swift
;
sourceTree
=
"<group>"
;
};
0435FA822BA2DEB100024EAE
/* YHCardButton.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCardButton.swift
;
sourceTree
=
"<group>"
;
};
0435FA822BA2DEB100024EAE
/* YHCardButton.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCardButton.swift
;
sourceTree
=
"<group>"
;
};
043B0A342C1190C6008A9BBA
/* YHSelectFileSheetView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSelectFileSheetView.swift
;
sourceTree
=
"<group>"
;
};
043D2C892C0EEF3F00172438
/* YHOrderSearchViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHOrderSearchViewController.swift
;
sourceTree
=
"<group>"
;
};
043D2C892C0EEF3F00172438
/* YHOrderSearchViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHOrderSearchViewController.swift
;
sourceTree
=
"<group>"
;
};
043D2C8B2C0F037B00172438
/* YHServiceOrderSearchViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHServiceOrderSearchViewModel.swift
;
sourceTree
=
"<group>"
;
};
043D2C8B2C0F037B00172438
/* YHServiceOrderSearchViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHServiceOrderSearchViewModel.swift
;
sourceTree
=
"<group>"
;
};
044378A32BFC848C001F95AE
/* loginBkg.mov */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
video.quicktime
;
path
=
loginBkg.mov
;
sourceTree
=
"<group>"
;
};
044378A32BFC848C001F95AE
/* loginBkg.mov */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
video.quicktime
;
path
=
loginBkg.mov
;
sourceTree
=
"<group>"
;
};
...
@@ -1236,6 +1238,7 @@
...
@@ -1236,6 +1238,7 @@
047619E82BA9867100F45358
/* YHCountryHotView.swift */
,
047619E82BA9867100F45358
/* YHCountryHotView.swift */
,
045EEDE72B9F171A0022A143
/* YHResultBottomView.swift */
,
045EEDE72B9F171A0022A143
/* YHResultBottomView.swift */
,
045EEDE82B9F171A0022A143
/* YHWorkFileItemView.swift */
,
045EEDE82B9F171A0022A143
/* YHWorkFileItemView.swift */
,
043B0A342C1190C6008A9BBA
/* YHSelectFileSheetView.swift */
,
);
);
path
=
V
;
path
=
V
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -3090,6 +3093,7 @@
...
@@ -3090,6 +3093,7 @@
0435FA832BA2DEB100024EAE
/* YHCardButton.swift in Sources */
,
0435FA832BA2DEB100024EAE
/* YHCardButton.swift in Sources */
,
045EEECA2B9F171A0022A143
/* YHMyDocumentsListViewController.swift in Sources */
,
045EEECA2B9F171A0022A143
/* YHMyDocumentsListViewController.swift in Sources */
,
045EEF052B9F171A0022A143
/* YHFormItemExpireDateCell.swift in Sources */
,
045EEF052B9F171A0022A143
/* YHFormItemExpireDateCell.swift in Sources */
,
043B0A352C1190C6008A9BBA
/* YHSelectFileSheetView.swift in Sources */
,
A5ACE92D2B4564F7002C94D2
/* YHLoginPrivacyView.swift in Sources */
,
A5ACE92D2B4564F7002C94D2
/* YHLoginPrivacyView.swift in Sources */
,
045EEEB72B9F171A0022A143
/* YHWorkItemAddView.swift in Sources */
,
045EEEB72B9F171A0022A143
/* YHWorkItemAddView.swift in Sources */
,
A5ACE9372B4564F7002C94D2
/* YHBaseUrlManager.swift in Sources */
,
A5ACE9372B4564F7002C94D2
/* YHBaseUrlManager.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/MyCertificates(我的证书)/V/YHCertificateInfoCell.swift
View file @
af6644fd
...
@@ -12,7 +12,7 @@ import AttributedString
...
@@ -12,7 +12,7 @@ import AttributedString
class
YHCertificateInfoCell
:
UITableViewCell
{
class
YHCertificateInfoCell
:
UITableViewCell
{
static
let
cellReuseIdentifier
=
"YHCertificate
Name
Cell"
static
let
cellReuseIdentifier
=
"YHCertificate
Info
Cell"
var
status
:
YHCertificateUploadStatus
=
.
preUpload
var
status
:
YHCertificateUploadStatus
=
.
preUpload
var
templateBlock
:(()
->
())?
var
templateBlock
:(()
->
())?
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(我的信息流程)/MainApplicantInformation(主申请人信息)/V/YHDatePickView.swift
View file @
af6644fd
...
@@ -23,8 +23,6 @@ enum YHDateType: Int {
...
@@ -23,8 +23,6 @@ enum YHDateType: Int {
}
}
class
YHDatePickView
:
UIView
{
class
YHDatePickView
:
UIView
{
var
backDate
:
((
String
)
->
Void
)?
var
backDate
:
((
String
)
->
Void
)?
var
centerView
:
UIView
!
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
titleLabel
:
UILabel
!
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/C/YHWorkExperienceViewController.swift
View file @
af6644fd
...
@@ -65,6 +65,11 @@ class YHWorkExperienceViewController: YHBaseViewController {
...
@@ -65,6 +65,11 @@ class YHWorkExperienceViewController: YHBaseViewController {
if
self
.
stepView
.
currentIndex
==
0
{
if
self
.
stepView
.
currentIndex
==
0
{
self
.
baseDataSource
=
self
.
viewModel
.
getBaseDataSource
(
isShowPrompt
)
self
.
baseDataSource
=
self
.
viewModel
.
getBaseDataSource
(
isShowPrompt
)
}
}
if
(
self
.
viewModel
.
mainModel
.
is_project_introduction
==
1
&&
self
.
stepView
.
currentIndex
==
4
)
||
(
self
.
viewModel
.
mainModel
.
is_project_introduction
!=
1
&&
self
.
stepView
.
currentIndex
==
3
)
{
bottomView
.
nextButton
.
setTitle
(
"提交"
,
for
:
.
normal
)
}
else
{
bottomView
.
nextButton
.
setTitle
(
"下一步"
,
for
:
.
normal
)
}
self
.
tableView
.
reloadData
()
self
.
tableView
.
reloadData
()
}
}
...
@@ -217,8 +222,70 @@ class YHWorkExperienceViewController: YHBaseViewController {
...
@@ -217,8 +222,70 @@ class YHWorkExperienceViewController: YHBaseViewController {
self
.
fileDataSource
?
.
remove
(
at
:
i
)
self
.
fileDataSource
?
.
remove
(
at
:
i
)
self
.
tableView
.
reloadData
()
self
.
tableView
.
reloadData
()
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
return
}
}
}
}
}
}
func
uploadFile
(
_
fileUrl
:
URL
)
{
if
let
fileData
=
try
?
Data
(
contentsOf
:
fileUrl
)
{
// 将文件数据上传到服务器
let
size
=
String
(
format
:
"%.2fM"
,
Double
(
fileData
.
count
)
/
(
1024.0
*
1024.0
))
print
(
"
\(
size
)
"
)
// 先OSS上传得到URL
YHHUD
.
show
(
.
progress
(
message
:
"上传中..."
))
self
.
viewModel
.
uploadFile
(
fileUrl
.
absoluteString
)
{
[
weak
self
]
successUrl
,
error
in
YHHUD
.
hide
()
guard
let
self
=
self
else
{
return
}
// 再调用业务接口
if
let
successUrl
=
successUrl
,
!
successUrl
.
isEmpty
{
var
fileName
=
fileUrl
.
lastPathComponent
if
fileName
.
isEmpty
{
fileName
=
successUrl
.
lastPathComponent
}
let
suffixName
=
successUrl
.
pathExtension
.
lowercased
()
let
timestamp
=
Date
()
.
timeIntervalSince1970
let
dateFormatter
=
DateFormatter
()
dateFormatter
.
dateFormat
=
"yyyy.MM.dd HH:mm:ss"
let
currentDate
=
Date
()
let
formattedDate
=
dateFormatter
.
string
(
from
:
currentDate
)
let
model
=
YHWorkExperienceFileModel
()
model
.
fileUrl
=
successUrl
model
.
fileName
=
fileName
model
.
uploadedAt
=
formattedDate
self
.
fileDataSource
?
.
append
(
model
)
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
self
.
tableView
.
reloadData
()
YHHUD
.
flash
(
message
:
"上传成功"
)
return
}
var
msg
=
"上传文件失败"
if
let
errorMsg
=
error
?
.
errorMsg
,
!
errorMsg
.
isEmpty
{
msg
=
errorMsg
}
YHHUD
.
flash
(
message
:
msg
)
}
}
else
{
YHHUD
.
flash
(
message
:
"识别文件失败"
)
}
}
func
uploadImage
(
_
img
:
UIImage
,
imageName
:
String
,
callBack
:((
Bool
,
String
)
->
())?)
{
// 先OSS上传得到URL
self
.
viewModel
.
uploadImage
(
img
)
{
[
weak
self
]
url
,
error
in
guard
self
!=
nil
else
{
return
}
if
let
url
=
url
,
!
url
.
isEmpty
{
callBack
?(
true
,
url
)
return
}
callBack
?(
false
,
""
)
}
}
}
}
...
@@ -365,33 +432,110 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -365,33 +432,110 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
cell
.
dataSource
=
fileDataSource
cell
.
dataSource
=
fileDataSource
cell
.
addIntroductionBlock
=
{
[
weak
self
]
in
cell
.
addIntroductionBlock
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
let
count
=
self
.
viewModel
.
mainModel
.
file
.
count
if
count
>=
99
{
YHHUD
.
flash
(
message
:
"最多上传99个图片或文件"
)
return
}
var
maxCount
=
99
-
count
if
maxCount
>
9
{
maxCount
=
9
}
let
sheetView
=
YHCertificateUploadSheetView
.
sheetView
()
sheetView
.
maxSelectCount
=
maxCount
sheetView
.
uploadFilesBlock
=
{
[
weak
self
]
fileUrl
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHHUD
.
show
(
.
progress
(
message
:
""
))
print
(
fileUrl
)
self
.
viewModel
.
uploadImage
(
image
)
{[
weak
self
]
success
,
error
in
uploadFile
(
fileUrl
)
guard
let
self
=
self
else
{
return
}
}
guard
let
url
=
success
else
{
return
}
sheetView
.
uploadImageBlock
=
{
let
timestamp
=
Date
()
.
timeIntervalSince1970
[
weak
self
]
imgArr
in
let
model
=
YHWorkExperienceFileModel
()
guard
let
self
=
self
else
{
return
}
model
.
fileUrl
=
success
??
""
let
group
=
DispatchGroup
()
model
.
fileName
=
"
\(
UInt64
(
timestamp
)
)
"
+
".jpg"
var
successArr
:[
String
]
=
[]
self
.
fileDataSource
?
.
append
(
model
)
var
failArr
:[
YHSelectImageItem
]
=
[]
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
self
.
tableView
.
reloadData
()
YHHUD
.
show
(
.
progress
(
message
:
"上传中..."
))
for
item
in
imgArr
{
if
let
image
=
item
.
data
{
group
.
enter
()
uploadImage
(
image
,
imageName
:
item
.
name
)
{
success
,
url
in
if
success
{
successArr
.
append
(
url
)
}
else
{
failArr
.
append
(
item
)
}
group
.
leave
()
}
}
}
// 等待所有任务完成
group
.
notify
(
queue
:
.
main
)
{
YHHUD
.
hide
()
YHHUD
.
hide
()
// 所有任务完成,回到主线程继续执行
if
imgArr
.
count
==
successArr
.
count
{
YHHUD
.
flash
(
message
:
"上传成功"
)
for
item
in
successArr
{
let
timestamp
=
Date
()
.
timeIntervalSince1970
let
dateFormatter
=
DateFormatter
()
dateFormatter
.
dateFormat
=
"yyyy.MM.dd HH:mm:ss"
let
currentDate
=
Date
()
let
formattedDate
=
dateFormatter
.
string
(
from
:
currentDate
)
let
model
=
YHWorkExperienceFileModel
()
model
.
fileUrl
=
item
model
.
fileName
=
"
\(
UInt64
(
timestamp
)
)
"
+
".jpg"
model
.
uploadedAt
=
formattedDate
self
.
fileDataSource
?
.
append
(
model
)
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
}
self
.
tableView
.
reloadData
()
}
else
{
YHHUD
.
flash
(
message
:
"
\(
successArr
.
count
)
张照片上传成功
\n\(
failArr
.
count
)
张照片上传失败"
)
}
}
}
}
}
sheetView
.
show
()
}
}
cell
.
experienceListBlock
=
{[
weak
self
]
model
,
type
in
cell
.
experienceListBlock
=
{[
weak
self
]
model
,
type
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
if
type
==
.
delete
{
if
type
==
.
delete
{
self
.
showDeleteAlert
(
model
)
let
items
=
[
YHCertificateEditItem
(
type
:
.
preview
,
title
:
"预览"
),
YHCertificateEditItem
(
type
:
.
delete
,
title
:
"删除"
),
YHCertificateEditItem
(
type
:
.
cancel
,
title
:
"取消"
)]
YHCertificateEditSheetView
.
sheetView
(
items
:
items
)
{
[
weak
self
]
editType
in
guard
let
self
=
self
else
{
return
}
if
editType
==
.
preview
{
let
vc
=
YHImageViewController
()
vc
.
imgString
=
model
.
fileUrl
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
if
editType
==
.
delete
{
self
.
showDeleteAlert
(
model
)
}
}
.
show
()
}
else
{
}
else
{
let
vc
=
YHImageViewController
()
let
vc
=
YHImageViewController
()
vc
.
imgString
=
model
.
fileUrl
vc
.
imgString
=
model
.
fileUrl
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
}
}
}
cell
.
selectIntroductionBlock
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
YHSelectFileSheetView
.
show
(
orderID
:
self
.
orderID
)
{
[
weak
self
]
models
in
guard
let
self
=
self
else
{
return
}
for
item
in
models
{
self
.
fileDataSource
?
.
append
(
item
)
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
}
self
.
tableView
.
reloadData
()
YHHUD
.
flash
(
message
:
"同步成功"
)
}
}
return
cell
return
cell
}
}
}
else
if
stepView
.
currentIndex
==
4
{
}
else
if
stepView
.
currentIndex
==
4
{
...
@@ -399,33 +543,110 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -399,33 +543,110 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
cell
.
dataSource
=
fileDataSource
cell
.
dataSource
=
fileDataSource
cell
.
addIntroductionBlock
=
{
[
weak
self
]
in
cell
.
addIntroductionBlock
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
let
count
=
self
.
viewModel
.
mainModel
.
file
.
count
if
count
>=
99
{
YHHUD
.
flash
(
message
:
"最多上传99个图片或文件"
)
return
}
var
maxCount
=
99
-
count
if
maxCount
>
9
{
maxCount
=
9
}
let
sheetView
=
YHCertificateUploadSheetView
.
sheetView
()
sheetView
.
maxSelectCount
=
maxCount
sheetView
.
uploadFilesBlock
=
{
[
weak
self
]
fileUrl
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
YHHUD
.
show
(
.
progress
(
message
:
""
))
print
(
fileUrl
)
self
.
viewModel
.
uploadImage
(
image
)
{[
weak
self
]
success
,
error
in
uploadFile
(
fileUrl
)
guard
let
self
=
self
else
{
return
}
}
guard
let
url
=
success
else
{
return
}
sheetView
.
uploadImageBlock
=
{
let
timestamp
=
Date
()
.
timeIntervalSince1970
[
weak
self
]
imgArr
in
let
model
=
YHWorkExperienceFileModel
()
guard
let
self
=
self
else
{
return
}
model
.
fileUrl
=
success
??
""
let
group
=
DispatchGroup
()
model
.
fileName
=
"
\(
UInt64
(
timestamp
)
)
"
+
".jpg"
var
successArr
:[
String
]
=
[]
self
.
fileDataSource
?
.
append
(
model
)
var
failArr
:[
YHSelectImageItem
]
=
[]
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
self
.
tableView
.
reloadData
()
YHHUD
.
show
(
.
progress
(
message
:
"上传中..."
))
for
item
in
imgArr
{
if
let
image
=
item
.
data
{
group
.
enter
()
uploadImage
(
image
,
imageName
:
item
.
name
)
{
success
,
url
in
if
success
{
successArr
.
append
(
url
)
}
else
{
failArr
.
append
(
item
)
}
group
.
leave
()
}
}
}
// 等待所有任务完成
group
.
notify
(
queue
:
.
main
)
{
YHHUD
.
hide
()
YHHUD
.
hide
()
// 所有任务完成,回到主线程继续执行
if
imgArr
.
count
==
successArr
.
count
{
YHHUD
.
flash
(
message
:
"上传成功"
)
for
item
in
successArr
{
let
timestamp
=
Date
()
.
timeIntervalSince1970
let
dateFormatter
=
DateFormatter
()
dateFormatter
.
dateFormat
=
"yyyy.MM.dd HH:mm:ss"
let
currentDate
=
Date
()
let
formattedDate
=
dateFormatter
.
string
(
from
:
currentDate
)
let
model
=
YHWorkExperienceFileModel
()
model
.
fileUrl
=
item
model
.
fileName
=
"
\(
UInt64
(
timestamp
)
)
"
+
".jpg"
model
.
uploadedAt
=
formattedDate
self
.
fileDataSource
?
.
append
(
model
)
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
}
self
.
tableView
.
reloadData
()
}
else
{
YHHUD
.
flash
(
message
:
"
\(
successArr
.
count
)
张照片上传成功
\n\(
failArr
.
count
)
张照片上传失败"
)
}
}
}
}
}
sheetView
.
show
()
}
}
cell
.
experienceListBlock
=
{[
weak
self
]
model
,
type
in
cell
.
experienceListBlock
=
{[
weak
self
]
model
,
type
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
if
type
==
.
delete
{
if
type
==
.
delete
{
self
.
showDeleteAlert
(
model
)
let
items
=
[
YHCertificateEditItem
(
type
:
.
preview
,
title
:
"预览"
),
YHCertificateEditItem
(
type
:
.
delete
,
title
:
"删除"
),
YHCertificateEditItem
(
type
:
.
cancel
,
title
:
"取消"
)]
YHCertificateEditSheetView
.
sheetView
(
items
:
items
)
{
[
weak
self
]
editType
in
guard
let
self
=
self
else
{
return
}
if
editType
==
.
preview
{
let
vc
=
YHImageViewController
()
vc
.
imgString
=
model
.
fileUrl
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
if
editType
==
.
delete
{
self
.
showDeleteAlert
(
model
)
}
}
.
show
()
}
else
{
}
else
{
let
vc
=
YHImageViewController
()
let
vc
=
YHImageViewController
()
vc
.
imgString
=
model
.
fileUrl
vc
.
imgString
=
model
.
fileUrl
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
}
}
}
cell
.
selectIntroductionBlock
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
YHSelectFileSheetView
.
show
(
orderID
:
self
.
orderID
)
{
[
weak
self
]
models
in
guard
let
self
=
self
else
{
return
}
for
item
in
models
{
self
.
fileDataSource
?
.
append
(
item
)
self
.
viewModel
.
mainModel
.
file
=
self
.
fileDataSource
??
[]
}
self
.
tableView
.
reloadData
()
YHHUD
.
flash
(
message
:
"同步成功"
)
}
}
return
cell
return
cell
}
else
{
}
else
{
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHWorkExperienceTableViewCell
.
self
)
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHWorkExperienceTableViewCell
.
self
)
...
@@ -457,11 +678,11 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -457,11 +678,11 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
return
CGFloat
(
76
*
number
+
150
)
return
CGFloat
(
76
*
number
+
150
)
}
else
{
}
else
{
let
count
=
fileDataSource
?
.
count
??
0
let
count
=
fileDataSource
?
.
count
??
0
return
CGFloat
(
52
*
count
+
145
)
return
CGFloat
(
69
*
count
+
171
)
}
}
}
else
if
stepView
.
currentIndex
==
4
{
}
else
if
stepView
.
currentIndex
==
4
{
let
count
=
fileDataSource
?
.
count
??
0
let
count
=
fileDataSource
?
.
count
??
0
return
CGFloat
(
52
*
count
+
145
)
return
CGFloat
(
69
*
count
+
171
)
}
else
{
}
else
{
let
array
=
baseDataSource
?[
indexPath
.
row
]
.
models
??
[]
let
array
=
baseDataSource
?[
indexPath
.
row
]
.
models
??
[]
var
h
=
0
var
h
=
0
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/Model/YHWorkExperienceDetailModel.swift
View file @
af6644fd
...
@@ -64,4 +64,5 @@ class YHWorkExperienceFileModel: YHBaseModel {
...
@@ -64,4 +64,5 @@ class YHWorkExperienceFileModel: YHBaseModel {
var
fileName
:
String
=
""
var
fileName
:
String
=
""
var
fileUrl
:
String
=
""
var
fileUrl
:
String
=
""
var
uploadedAt
:
String
=
""
var
uploadedAt
:
String
=
""
var
isSelect
:
Bool
=
false
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHSelectFileSheetView.swift
0 → 100644
View file @
af6644fd
//
// YHSelectFileSheetView.swift
// galaxy
//
// Created by EDY on 2024/6/6.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHSelectFileSheetView
:
UIView
{
var
backDate
:
(([
YHWorkExperienceFileModel
])
->
Void
)?
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
subTitleLabel
:
UILabel
!
var
closeButton
:
UIButton
!
var
sureButton
:
UIButton
!
var
lineView
:
UIView
!
var
tableView
:
UITableView
!
var
dataSource
:
[
YHWorkExperienceFileModel
]
=
[]
var
orderID
:
Int
=
0
{
didSet
{
self
.
viewModel
.
requestFileList
(
self
.
orderID
)
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
self
.
dataSource
=
self
.
viewModel
.
fileList
self
.
tableView
.
reloadData
()
}
}
}
var
viewModel
=
YHWorkExperienceViewModel
()
var
title
:
String
=
""
{
didSet
{
titleLabel
.
text
=
title
}
}
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
backgroundColor
=
UIColor
(
white
:
0.5
,
alpha
:
0.1
)
let
tap
=
UITapGestureRecognizer
(
target
:
self
,
action
:
#selector(
handleTap
)
)
tap
.
delegate
=
self
addGestureRecognizer
(
tap
)
setView
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setView
()
{
backgroundColor
=
UIColor
(
hex
:
0x0000
,
alpha
:
0.5
)
centerView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
addSubview
(
centerView
)
centerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalToSuperview
()
make
.
height
.
equalTo
(
484
)
}
titleLabel
=
{
let
label
=
UILabel
()
label
.
text
=
title
label
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
textAlignment
=
.
center
label
.
text
=
"已上传文件同步"
return
label
}()
centerView
.
addSubview
(
titleLabel
)
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
16
)
make
.
height
.
equalTo
(
24
)
make
.
width
.
equalTo
(
200
)
make
.
centerX
.
equalToSuperview
()
}
subTitleLabel
=
{
let
label
=
UILabel
()
label
.
text
=
title
label
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
label
.
textColor
=
UIColor
.
mainTextColor50
label
.
numberOfLines
=
0
label
.
text
=
"快捷导入简历,帮助提升文书定制的丰富度和完善度"
return
label
}()
centerView
.
addSubview
(
subTitleLabel
)
subTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
73
)
make
.
left
.
equalTo
(
21
)
make
.
right
.
equalTo
(
-
21
)
}
closeButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"my_cer_sheet_close"
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
dismiss
)
,
for
:
.
touchUpInside
)
return
button
}()
centerView
.
addSubview
(
closeButton
)
closeButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
21
)
make
.
height
.
width
.
equalTo
(
24
)
make
.
top
.
equalTo
(
16
)
}
sureButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
16
)
button
.
contentHorizontalAlignment
=
.
center
button
.
setTitle
(
"确定"
,
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
.
white
,
for
:
.
normal
)
button
.
backgroundColor
=
UIColor
.
brandMainColor
button
.
layer
.
cornerRadius
=
3
button
.
addTarget
(
self
,
action
:
#selector(
sure
)
,
for
:
.
touchUpInside
)
return
button
}()
centerView
.
addSubview
(
sureButton
)
sureButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
height
.
equalTo
(
48
)
make
.
left
.
equalTo
(
16
)
make
.
bottom
.
equalTo
(
-
42
)
}
lineView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
.
separatorColor
return
view
}()
centerView
.
addSubview
(
lineView
)
lineView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
52
)
make
.
height
.
equalTo
(
1
)
make
.
right
.
equalTo
(
-
18
)
}
tableView
=
{
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
tableView
.
contentInsetAdjustmentBehavior
=
.
never
tableView
.
backgroundColor
=
.
clear
tableView
.
separatorStyle
=
.
none
tableView
.
delegate
=
self
tableView
.
dataSource
=
self
tableView
.
register
(
cellWithClass
:
YHSelectFileCell
.
self
)
return
tableView
}()
centerView
.
addSubview
(
tableView
)
tableView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
114
)
make
.
bottom
.
equalTo
(
-
98
)
make
.
left
.
right
.
equalToSuperview
()
}
centerView
.
layoutIfNeeded
()
let
corner
=
UIRectCorner
(
rawValue
:
UIRectCorner
.
topLeft
.
rawValue
|
UIRectCorner
.
topRight
.
rawValue
)
let
path
=
UIBezierPath
(
roundedRect
:
bounds
,
byRoundingCorners
:
corner
,
cornerRadii
:
CGSizeMake
(
8
,
8
))
let
layer
=
CAShapeLayer
()
layer
.
frame
=
centerView
.
bounds
layer
.
path
=
path
.
cgPath
centerView
.
layer
.
mask
=
layer
}
@objc
private
func
handleTap
(
_
sender
:
AnyObject
?)
{
print
(
"处理点击手势"
)
dismiss
()
}
static
func
show
(
orderID
:
Int
,
callBack
:
@escaping
(([
YHWorkExperienceFileModel
])
->
Void
))
{
let
view
=
YHSelectFileSheetView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
KScreenHeight
))
view
.
orderID
=
orderID
view
.
backDate
=
callBack
let
window
=
UIApplication
.
shared
.
yhKeyWindow
()
window
?
.
addSubview
(
view
)
}
@objc
func
dismiss
()
{
removeFromSuperview
()
}
@objc
func
sure
()
{
var
array
:[
YHWorkExperienceFileModel
]
=
[]
for
item
in
dataSource
{
if
item
.
isSelect
{
array
.
append
(
item
)
}
}
if
let
block
=
backDate
{
block
(
array
)
}
dismiss
()
}
}
extension
YHSelectFileSheetView
:
UIGestureRecognizerDelegate
{
func
gestureRecognizer
(
_
gestureRecognizer
:
UIGestureRecognizer
,
shouldReceive
touch
:
UITouch
)
->
Bool
{
if
touch
.
view
==
self
{
return
true
}
return
false
}
}
extension
YHSelectFileSheetView
:
UITableViewDelegate
,
UITableViewDataSource
{
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
return
dataSource
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHSelectFileCell
.
self
)
cell
.
updateModel
(
dataSource
[
indexPath
.
row
])
cell
.
editBlock
=
{
[
weak
self
]
model
in
guard
let
self
=
self
else
{
return
}
for
item
in
dataSource
{
if
item
.
fileUrl
==
model
.
fileUrl
{
item
.
isSelect
=
!
item
.
isSelect
}
}
}
return
cell
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
69
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
let
view
=
UIView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
7
))
return
view
}
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
return
0.01
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
heightForFooterInSection
section
:
Int
)
->
CGFloat
{
return
0.01
}
}
class
YHSelectFileCell
:
UITableViewCell
{
static
let
cellReuseIdentifier
=
"YHSelectFileCell"
var
editBlock
:((
YHWorkExperienceFileModel
)
->
())?
var
whiteView
:
UIView
!
var
iconImgV
:
UIImageView
!
var
nameLabel
:
UILabel
!
var
timeLabel
:
UILabel
!
var
editBtn
:
UIButton
!
var
contentItem
:
YHWorkExperienceFileModel
!
required
init
?(
coder
:
NSCoder
)
{
super
.
init
(
coder
:
coder
)
}
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
setupUI
()
}
func
updateModel
(
_
model
:
YHWorkExperienceFileModel
)
{
contentItem
=
model
nameLabel
.
text
=
model
.
fileName
timeLabel
.
text
=
"上传于
\(
model
.
uploadedAt
)
"
let
suffix
=
model
.
fileUrl
.
pathExtension
.
lowercased
()
var
iconImgName
=
""
if
suffix
==
"jpeg"
{
iconImgName
=
"my_cer_type_jpg"
}
else
if
suffix
==
"jpg"
{
iconImgName
=
"my_cer_type_jpg"
}
else
if
suffix
==
"png"
{
iconImgName
=
"my_cer_type_png"
}
else
if
suffix
==
"pdf"
{
iconImgName
=
"my_cer_type_pdf"
}
else
if
suffix
==
"doc"
||
suffix
==
"docx"
{
iconImgName
=
"my_cer_type_word"
}
else
if
suffix
==
"ppt"
||
suffix
==
"pptx"
{
iconImgName
=
"my_cer_type_ppt"
}
else
if
suffix
==
"bmp"
{
iconImgName
=
"my_cer_type_bmp"
}
else
if
suffix
==
"tiff"
{
iconImgName
=
"my_cer_type_tiff"
}
iconImgV
.
image
=
UIImage
(
named
:
iconImgName
)
editBtn
.
isSelected
=
model
.
isSelect
}
@objc
func
didEditBtnClicked
()
{
editBtn
.
isSelected
=
!
editBtn
.
isSelected
if
let
editBlock
=
editBlock
{
editBlock
(
contentItem
)
}
}
func
setupUI
()
{
self
.
selectionStyle
=
.
none
contentView
.
backgroundColor
=
.
white
whiteView
=
UIView
()
contentView
.
addSubview
(
whiteView
)
iconImgV
=
UIImageView
(
image
:
UIImage
(
named
:
"my_cer_type_jpg"
))
whiteView
.
addSubview
(
iconImgV
)
nameLabel
=
UILabel
()
nameLabel
.
textColor
=
UIColor
.
mainTextColor
nameLabel
.
textAlignment
=
.
left
nameLabel
.
numberOfLines
=
0
nameLabel
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
whiteView
.
addSubview
(
nameLabel
)
timeLabel
=
UILabel
()
timeLabel
.
textColor
=
UIColor
.
labelTextColor2
timeLabel
.
textAlignment
=
.
left
timeLabel
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
11
)
whiteView
.
addSubview
(
timeLabel
)
editBtn
=
UIButton
()
editBtn
.
setImage
(
UIImage
(
named
:
"main_time_normal"
),
for
:
.
normal
)
editBtn
.
setImage
(
UIImage
(
named
:
"login_privacy_agree"
),
for
:
.
selected
)
editBtn
.
YH_clickEdgeInsets
=
UIEdgeInsets
(
top
:
30
,
left
:
30
,
bottom
:
30
,
right
:
30
)
editBtn
.
addTarget
(
self
,
action
:
#selector(
didEditBtnClicked
)
,
for
:
.
touchUpInside
)
whiteView
.
addSubview
(
editBtn
)
whiteView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
20
)
make
.
right
.
equalToSuperview
()
make
.
top
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
14
)
}
iconImgV
.
snp
.
makeConstraints
{
make
in
make
.
width
.
height
.
equalTo
(
31
)
make
.
centerY
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
6
)
}
nameLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
iconImgV
.
snp
.
right
)
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
7
)
make
.
right
.
equalTo
(
editBtn
.
snp
.
left
)
}
timeLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalTo
(
nameLabel
)
make
.
top
.
equalTo
(
nameLabel
.
snp
.
bottom
)
.
offset
(
2
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
7
)
make
.
height
.
equalTo
(
20
)
}
editBtn
.
snp
.
makeConstraints
{
make
in
make
.
width
.
height
.
equalTo
(
16
)
make
.
centerY
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
.
offset
(
-
37
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHWorkFileItemView.swift
View file @
af6644fd
...
@@ -16,9 +16,11 @@ enum YHWorkFileClickType {
...
@@ -16,9 +16,11 @@ enum YHWorkFileClickType {
class
YHWorkFileItemView
:
UIView
{
class
YHWorkFileItemView
:
UIView
{
typealias
ItemBlock
=
(
_
model
:
YHWorkExperienceFileModel
,
_
type
:
YHWorkFileClickType
)
->
()
typealias
ItemBlock
=
(
_
model
:
YHWorkExperienceFileModel
,
_
type
:
YHWorkFileClickType
)
->
()
var
block
:
ItemBlock
?
var
block
:
ItemBlock
?
var
titleLabel
:
UIButton
!
var
whiteView
:
UIButton
!
var
deleteButton
:
UIButton
!
var
iconImgV
:
UIImageView
!
var
nameLabel
:
UILabel
!
var
timeLabel
:
UILabel
!
var
editBtn
:
UIButton
!
var
dataSource
:
YHWorkExperienceFileModel
?
{
var
dataSource
:
YHWorkExperienceFileModel
?
{
didSet
{
didSet
{
updateAllViews
()
updateAllViews
()
...
@@ -35,43 +37,97 @@ class YHWorkFileItemView: UIView {
...
@@ -35,43 +37,97 @@ class YHWorkFileItemView: UIView {
}
}
func
setUpView
()
{
func
setUpView
()
{
titleLabel
=
{
whiteView
=
UIButton
()
let
label
=
UIButton
(
type
:
.
custom
)
whiteView
.
addTarget
(
self
,
action
:
#selector(
itemClick
)
,
for
:
.
touchUpInside
)
label
.
setTitleColor
(
UIColor
.
mainTextColor
,
for
:
.
normal
)
addSubview
(
whiteView
)
label
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
label
.
addTarget
(
self
,
action
:
#selector(
itemClick
)
,
for
:
.
touchUpInside
)
iconImgV
=
UIImageView
(
image
:
UIImage
(
named
:
"my_cer_type_jpg"
))
label
.
contentHorizontalAlignment
=
.
left
whiteView
.
addSubview
(
iconImgV
)
return
label
}()
nameLabel
=
UILabel
()
addSubview
(
titleLabel
)
nameLabel
.
textColor
=
UIColor
.
mainTextColor
titleLabel
.
snp
.
makeConstraints
{
make
in
nameLabel
.
textAlignment
=
.
left
make
.
left
.
equalToSuperview
()
nameLabel
.
numberOfLines
=
0
make
.
top
.
equalTo
(
16
)
nameLabel
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
make
.
width
.
equalTo
(
200
)
whiteView
.
addSubview
(
nameLabel
)
timeLabel
=
UILabel
()
timeLabel
.
textColor
=
UIColor
.
labelTextColor2
timeLabel
.
textAlignment
=
.
left
timeLabel
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
11
)
whiteView
.
addSubview
(
timeLabel
)
editBtn
=
UIButton
()
editBtn
.
setImage
(
UIImage
(
named
:
"my_cer_btn_edit"
),
for
:
.
normal
)
editBtn
.
YH_clickEdgeInsets
=
UIEdgeInsets
(
top
:
30
,
left
:
30
,
bottom
:
30
,
right
:
30
)
editBtn
.
addTarget
(
self
,
action
:
#selector(
deleteClick
)
,
for
:
.
touchUpInside
)
whiteView
.
addSubview
(
editBtn
)
whiteView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
right
.
equalTo
(
-
18
)
make
.
centerY
.
equalToSuperview
()
make
.
height
.
equalTo
(
55
)
}
iconImgV
.
snp
.
makeConstraints
{
make
in
make
.
width
.
height
.
equalTo
(
31
)
make
.
centerY
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
6
)
}
nameLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
iconImgV
.
snp
.
right
)
.
offset
(
18
)
make
.
top
.
equalToSuperview
()
.
offset
(
7
)
make
.
right
.
equalTo
(
editBtn
.
snp
.
left
)
}
timeLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalTo
(
nameLabel
)
make
.
top
.
equalTo
(
nameLabel
.
snp
.
bottom
)
.
offset
(
2
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
7
)
make
.
height
.
equalTo
(
20
)
make
.
height
.
equalTo
(
20
)
}
}
deleteButton
=
{
editBtn
.
snp
.
makeConstraints
{
make
in
let
button
=
UIButton
(
type
:
.
custom
)
make
.
width
.
height
.
equalTo
(
16
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
make
.
centerY
.
equalToSuperview
()
button
.
contentHorizontalAlignment
=
.
right
button
.
setTitle
(
"删除"
,
for
:
.
normal
)
button
.
setTitleColor
(
.
red
,
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
deleteClick
)
,
for
:
.
touchUpInside
)
return
button
}()
addSubview
(
deleteButton
)
deleteButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
20
)
make
.
width
.
equalTo
(
28
)
make
.
centerY
.
equalTo
(
titleLabel
.
snp
.
centerY
)
}
}
}
}
func
updateAllViews
()
{
func
updateAllViews
()
{
guard
let
dataSource
=
dataSource
else
{
return
}
guard
let
dataSource
=
dataSource
else
{
return
}
titleLabel
.
setTitle
(
dataSource
.
fileName
,
for
:
.
normal
)
nameLabel
.
text
=
dataSource
.
fileName
timeLabel
.
text
=
"上传于
\(
dataSource
.
uploadedAt
)
"
let
suffix
=
dataSource
.
fileUrl
.
pathExtension
.
lowercased
()
var
iconImgName
=
""
if
suffix
==
"jpeg"
{
iconImgName
=
"my_cer_type_jpg"
}
else
if
suffix
==
"jpg"
{
iconImgName
=
"my_cer_type_jpg"
}
else
if
suffix
==
"png"
{
iconImgName
=
"my_cer_type_png"
}
else
if
suffix
==
"pdf"
{
iconImgName
=
"my_cer_type_pdf"
}
else
if
suffix
==
"doc"
||
suffix
==
"docx"
{
iconImgName
=
"my_cer_type_word"
}
else
if
suffix
==
"ppt"
||
suffix
==
"pptx"
{
iconImgName
=
"my_cer_type_ppt"
}
else
if
suffix
==
"bmp"
{
iconImgName
=
"my_cer_type_bmp"
}
else
if
suffix
==
"tiff"
{
iconImgName
=
"my_cer_type_tiff"
}
iconImgV
.
image
=
UIImage
(
named
:
iconImgName
)
}
}
@objc
func
itemClick
()
{
@objc
func
itemClick
()
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHWorkFileSyncTableViewCell.swift
View file @
af6644fd
...
@@ -14,10 +14,13 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
...
@@ -14,10 +14,13 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
typealias
AddIntroductionBlock
=
()
->
()
typealias
AddIntroductionBlock
=
()
->
()
var
experienceListBlock
:
ExperienceListBlock
?
var
experienceListBlock
:
ExperienceListBlock
?
var
addIntroductionBlock
:
AddIntroductionBlock
?
var
addIntroductionBlock
:
AddIntroductionBlock
?
var
selectIntroductionBlock
:
AddIntroductionBlock
?
var
centerView
:
UIView
!
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
titleLabel
:
UILabel
!
var
subTitleLabel
:
UILabel
!
var
mainItemView
:
UIView
!
var
mainItemView
:
UIView
!
var
bottomView
:
YHWorkItemAddView
!
var
bottomView
:
YHWorkItemAddView
!
var
selectbottomView
:
YHWorkItemAddView
!
var
dataSource
:
[
YHWorkExperienceFileModel
]?{
var
dataSource
:
[
YHWorkExperienceFileModel
]?{
didSet
{
didSet
{
updateAllViews
()
updateAllViews
()
...
@@ -62,15 +65,9 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
...
@@ -62,15 +65,9 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
titleLabel
=
{
titleLabel
=
{
let
label
=
UILabel
()
let
label
=
UILabel
()
let
str
=
"*"
+
"上传文件"
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
17
)
let
attributes
:
[
NSAttributedString
.
Key
:
Any
]
=
[
label
.
text
=
"工作相关文件"
.
font
:
UIFont
.
PFSC_R
(
ofSize
:
17
),
label
.
textColor
=
UIColor
.
mainTextColor
.
foregroundColor
:
UIColor
.
mainTextColor
]
let
questionAttrStr
=
NSMutableAttributedString
(
string
:
str
,
attributes
:
attributes
)
let
starRange
=
NSRange
(
location
:
0
,
length
:
1
)
questionAttrStr
.
addAttribute
(
NSAttributedString
.
Key
.
foregroundColor
,
value
:
UIColor
.
failColor
,
range
:
starRange
)
label
.
attributedText
=
questionAttrStr
return
label
return
label
}()
}()
centerView
.
addSubview
(
titleLabel
)
centerView
.
addSubview
(
titleLabel
)
...
@@ -81,22 +78,46 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
...
@@ -81,22 +78,46 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
make
.
right
.
equalTo
(
-
18
)
make
.
right
.
equalTo
(
-
18
)
}
}
subTitleLabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
12
)
label
.
text
=
"快捷导入简历等文件,提升文书定制的丰富度和完善度"
label
.
textColor
=
UIColor
.
labelTextColor2
return
label
}()
centerView
.
addSubview
(
subTitleLabel
)
subTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
42
)
make
.
height
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
18
)
}
let
line
=
UIView
()
line
.
backgroundColor
=
UIColor
.
separatorColor
centerView
.
addSubview
(
line
)
line
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
78
)
make
.
height
.
equalTo
(
0.5
)
make
.
right
.
equalTo
(
-
18
)
}
mainItemView
=
{
mainItemView
=
{
let
view
=
UIView
()
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
kCornerRadius6
return
view
return
view
}()
}()
centerView
.
addSubview
(
mainItemView
)
centerView
.
addSubview
(
mainItemView
)
mainItemView
.
snp
.
makeConstraints
{
make
in
mainItemView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalTo
(
-
65
)
make
.
bottom
.
equalTo
(
-
79
)
make
.
top
.
equalTo
(
52
)
make
.
top
.
equalTo
(
79
)
}
}
bottomView
=
{
bottomView
=
{
let
view
=
YHWorkItemAddView
()
let
view
=
YHWorkItemAddView
()
view
.
addBtn
.
setTitle
(
"上传"
.
local
,
for
:
.
normal
)
view
.
addBtn
.
setTitle
(
"
新增
上传"
.
local
,
for
:
.
normal
)
view
.
clickBlock
=
{[
weak
self
]
in
view
.
clickBlock
=
{[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
if
let
block
=
self
.
addIntroductionBlock
{
if
let
block
=
self
.
addIntroductionBlock
{
...
@@ -107,24 +128,34 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
...
@@ -107,24 +128,34 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
}()
}()
centerView
.
addSubview
(
bottomView
)
centerView
.
addSubview
(
bottomView
)
bottomView
.
snp
.
makeConstraints
{
make
in
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
right
.
bottom
.
equalTo
(
-
18
)
make
.
bottom
.
equalTo
(
-
18
)
make
.
left
.
equalTo
(
18
)
make
.
left
.
equalTo
(
18
)
make
.
height
.
equalTo
(
45
)
make
.
height
.
equalTo
(
45
)
make
.
right
.
equalTo
(
centerView
.
snp
.
centerX
)
.
offset
(
-
5
)
}
selectbottomView
=
{
let
view
=
YHWorkItemAddView
()
view
.
addBtn
.
setTitle
(
"选择已有"
.
local
,
for
:
.
normal
)
view
.
clickBlock
=
{[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
if
let
block
=
self
.
selectIntroductionBlock
{
block
()
}
}
return
view
}()
centerView
.
addSubview
(
selectbottomView
)
selectbottomView
.
snp
.
makeConstraints
{
make
in
make
.
right
.
bottom
.
equalTo
(
-
18
)
make
.
left
.
equalTo
(
centerView
.
snp
.
centerX
)
.
offset
(
5
)
make
.
height
.
equalTo
(
45
)
}
}
}
}
func
updateAllViews
()
{
func
updateAllViews
()
{
mainItemView
.
removeSubviews
()
mainItemView
.
removeSubviews
()
for
i
in
0
..<
(
dataSource
?
.
count
??
0
)
{
for
i
in
0
..<
(
dataSource
?
.
count
??
0
)
{
let
line
=
UIView
()
line
.
backgroundColor
=
UIColor
.
separatorColor
mainItemView
.
addSubview
(
line
)
line
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
52
*
i
)
make
.
height
.
equalTo
(
1
)
make
.
right
.
equalTo
(
-
18
)
}
let
itemView
=
YHWorkFileItemView
()
let
itemView
=
YHWorkFileItemView
()
itemView
.
dataSource
=
dataSource
?[
i
]
itemView
.
dataSource
=
dataSource
?[
i
]
itemView
.
block
=
{[
weak
self
]
model
,
type
in
itemView
.
block
=
{[
weak
self
]
model
,
type
in
...
@@ -135,10 +166,9 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
...
@@ -135,10 +166,9 @@ class YHWorkFileSyncTableViewCell: UITableViewCell {
}
}
mainItemView
.
addSubview
(
itemView
)
mainItemView
.
addSubview
(
itemView
)
itemView
.
snp
.
makeConstraints
{
make
in
itemView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
52
*
i
+
1
)
make
.
top
.
equalTo
(
69
*
i
)
make
.
height
.
equalTo
(
51
)
make
.
height
.
equalTo
(
69
)
make
.
right
.
equalTo
(
-
18
)
}
}
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/ViewModel/YHWorkExperienceViewModel.swift
View file @
af6644fd
...
@@ -13,6 +13,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
...
@@ -13,6 +13,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
var
mainModel
:
YHWorkExperienceDetailModel
=
YHWorkExperienceDetailModel
()
var
mainModel
:
YHWorkExperienceDetailModel
=
YHWorkExperienceDetailModel
()
var
exampleModels
:
[
YHWorkExampleModel
]?
var
exampleModels
:
[
YHWorkExampleModel
]?
var
projectModels
:
[
YHWorkExperienceProjectModel
]?
var
projectModels
:
[
YHWorkExperienceProjectModel
]?
var
fileList
:
[
YHWorkExperienceFileModel
]
=
[]
override
init
()
{
override
init
()
{
super
.
init
()
super
.
init
()
}
}
...
@@ -409,6 +410,30 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
...
@@ -409,6 +410,30 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
}
}
}
}
func
requestFileList
(
_
orderId
:
Int
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
fileList
let
params
:
[
String
:
Any
]
=
[
"order_id"
:
orderId
]
let
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
params
)
{
[
weak
self
]
json
,
code
in
//1. json字符串 转 对象
guard
let
self
=
self
else
{
return
}
if
json
.
code
==
200
{
let
dic
=
json
.
data
guard
let
result
=
[
YHWorkExperienceFileModel
]
.
deserialize
(
from
:
dic
as?
[
Any
])
else
{
callBackBlock
(
false
,
nil
)
return
}
let
last
=
result
.
compactMap
{
$0
}
self
.
fileList
=
last
callBackBlock
(
true
,
nil
)
}
else
{
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBackBlock
(
false
,
error
)
}
}
failBlock
:
{
err
in
callBackBlock
(
false
,
err
)
}
}
func
isCanNext
(
_
step
:
Int
)
->
Bool
{
func
isCanNext
(
_
step
:
Int
)
->
Bool
{
if
step
==
0
{
if
step
==
0
{
let
companyName
=
mainModel
.
company_name
//公司名称
let
companyName
=
mainModel
.
company_name
//公司名称
...
@@ -455,35 +480,9 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
...
@@ -455,35 +480,9 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
guard
message
.
count
>
0
else
{
return
false
}
guard
message
.
count
>
0
else
{
return
false
}
return
true
return
true
}
else
if
step
==
3
{
}
else
if
step
==
3
{
//todo
return
true
let
message
=
mainModel
.
is_project_introduction
let
file
=
mainModel
.
file
let
uploadFile
=
mainModel
.
not_need_upload_file
if
message
==
1
{
return
true
}
else
{
if
uploadFile
==
1
{
return
true
}
else
{
if
file
.
count
!=
0
{
return
true
}
else
{
return
false
}
}
}
}
else
{
}
else
{
let
file
=
mainModel
.
file
return
true
let
uploadFile
=
mainModel
.
not_need_upload_file
if
uploadFile
==
1
{
return
true
}
else
{
if
file
.
count
!=
0
{
return
true
}
else
{
return
false
}
}
}
}
}
}
}
}
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
af6644fd
...
@@ -159,6 +159,8 @@ class YHAllApiName {
...
@@ -159,6 +159,8 @@ class YHAllApiName {
static
let
projectDel
=
"infoflow/work/delWorkProject"
static
let
projectDel
=
"infoflow/work/delWorkProject"
//识别附件
//识别附件
static
let
ocrFileContent
=
"infoflow/work/getOcrFileContent"
static
let
ocrFileContent
=
"infoflow/work/getOcrFileContent"
//已上传文件列表
static
let
fileList
=
"infoflow/work/file-list"
}
}
//登录
//登录
...
...
galaxy/galaxy/Res/Info.plist
View file @
af6644fd
...
@@ -77,7 +77,10 @@
...
@@ -77,7 +77,10 @@
<
string
>
weixinURLParamsAPI
<
/string
>
<
string
>
weixinURLParamsAPI
<
/string
>
<
/
a
rr
a
y
>
<
/
a
rr
a
y
>
<
k
e
y
>
NSAppTransportSecurity
<
/k
e
y
>
<
k
e
y
>
NSAppTransportSecurity
<
/k
e
y
>
<
d
i
c
t/
>
<
d
i
c
t
>
<
k
e
y
>
NSAllowsArbitraryLoads
<
/k
e
y
>
<
fa
ls
e
/
>
<
/
d
i
c
t
>
<
k
e
y
>
UIAppFonts
<
/k
e
y
>
<
k
e
y
>
UIAppFonts
<
/k
e
y
>
<
a
rr
a
y
>
<
a
rr
a
y
>
<
string
>
DIN
Alternate
Bold
<
/string
>
<
string
>
DIN
Alternate
Bold
<
/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