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
b6d94429
Commit
b6d94429
authored
Nov 19, 2024
by
Steven杜宇
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'qmas-1130' of
http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS
into qmas-1130
parents
369465a5
5124b1c1
Changes
31
Show whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
1524 additions
and
746 deletions
+1524
-746
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+28
-8
YHIncomeRecordViewController.swift
...)/IncomeRecord(收入记录)/C/YHIncomeRecordViewController.swift
+111
-14
YHIncomeRecordWorkExperienceViewController.swift
...(收入记录)/C/YHIncomeRecordWorkExperienceViewController.swift
+158
-14
YHIncomeTypeSelectViewController.swift
...comeRecord(收入记录)/C/YHIncomeTypeSelectViewController.swift
+12
-20
YHIncomeCompanyDetailModel.swift
...流程)/IncomeRecord(收入记录)/M/YHIncomeCompanyDetailModel.swift
+23
-0
YHIncomeRecordCompleteModel.swift
...程)/IncomeRecord(收入记录)/M/YHIncomeRecordCompleteModel.swift
+34
-0
YHIncomeRecordUtilType.swift
...我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeRecordUtilType.swift
+25
-0
YHIncomeType.swift
...ceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeType.swift
+116
-0
YHIncomeTypeSelectModel.swift
...的信息流程)/IncomeRecord(收入记录)/M/YHIncomeTypeSelectModel.swift
+3
-3
YHIncomeRecordSummaryCell.swift
...息流程)/IncomeRecord(收入记录)/V/YHIncomeRecordSummaryCell.swift
+4
-3
YHIncomeTypesCell.swift
...cess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeTypesCell.swift
+2
-0
YHInfoConsentForHKTravelCell.swift
...)/IncomeRecord(收入记录)/V/YHInfoConsentForHKTravelCell.swift
+2
-1
YHIncomeRecordViewModel.swift
...信息流程)/IncomeRecord(收入记录)/VM/YHIncomeRecordViewModel.swift
+100
-0
YHImageResultViewController.swift
.../WorkExperience(工作经验)/C/YHImageResultViewController.swift
+0
-4
YHWorkExperienceListViewController.swift
...perience(工作经验)/C/YHWorkExperienceListViewController.swift
+14
-0
YHWorkExperienceViewController.swift
...rkExperience(工作经验)/C/YHWorkExperienceViewController.swift
+10
-7
YHWorkIntroductionViewController.swift
...Experience(工作经验)/C/YHWorkIntroductionViewController.swift
+0
-431
YHWorkExperienceDetailModel.swift
...kExperience(工作经验)/Model/YHWorkExperienceDetailModel.swift
+4
-3
YHWorkExperienceModel.swift
...程)/WorkExperience(工作经验)/Model/YHWorkExperienceModel.swift
+1
-0
YHWorkExperiencePositionModel.swift
...xperience(工作经验)/Model/YHWorkExperiencePositionModel.swift
+28
-0
YHWorkItemListModel.swift
...息流程)/WorkExperience(工作经验)/Model/YHWorkItemListModel.swift
+2
-0
YHWorkExperienceCompanySelectView.swift
...xperience(工作经验)/V/YHWorkExperienceCompanySelectView.swift
+737
-0
YHWorkExperienceItemView.swift
...流程)/WorkExperience(工作经验)/V/YHWorkExperienceItemView.swift
+6
-0
YHWorkExperienceListReasonTableViewCell.swift
...nce(工作经验)/V/YHWorkExperienceListReasonTableViewCell.swift
+24
-0
YHWorkExperiencePositionTableViewCell.swift
...ience(工作经验)/V/YHWorkExperiencePositionTableViewCell.swift
+2
-2
YHWorkExperienceSelectView.swift
...)/WorkExperience(工作经验)/V/YHWorkExperienceSelectView.swift
+22
-11
YHWorkExperienceTableViewCell.swift
...orkExperience(工作经验)/V/YHWorkExperienceTableViewCell.swift
+10
-17
YHWorkExperienceViewModel.swift
...xperience(工作经验)/ViewModel/YHWorkExperienceViewModel.swift
+8
-113
YHWorkIntroductionViewModel.swift
...erience(工作经验)/ViewModel/YHWorkIntroductionViewModel.swift
+0
-89
YHWorkItemListViewModel.swift
...kExperience(工作经验)/ViewModel/YHWorkItemListViewModel.swift
+24
-4
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+14
-2
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
b6d94429
...
...
@@ -18,6 +18,8 @@
040AE9802CE8340000310241
/* YHWorkExperiencePositionReasonTableViewCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
040AE97F2CE8340000310241
/* YHWorkExperiencePositionReasonTableViewCell.swift */
;
};
040AE9822CE8810200310241
/* YHWorkExperienceSelectView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
040AE9812CE8810200310241
/* YHWorkExperienceSelectView.swift */
;
};
040AE9842CE893CC00310241
/* YHWorkExperiencePositionItemView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
040AE9832CE893CC00310241
/* YHWorkExperiencePositionItemView.swift */
;
};
040AE9862CEB09ED00310241
/* YHWorkExperienceCompanySelectView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
040AE9852CEB09ED00310241
/* YHWorkExperienceCompanySelectView.swift */
;
};
040AE9882CEB6DAC00310241
/* YHWorkExperiencePositionModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
040AE9872CEB6DAC00310241
/* YHWorkExperiencePositionModel.swift */
;
};
04129E862CD0C8490072F87B
/* YHAliYunLogManager.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04129E852CD0C8490072F87B
/* YHAliYunLogManager.swift */
;
};
041390692C1081FA0098CB8A
/* YHFileListEmptyView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
041390682C1081FA0098CB8A
/* YHFileListEmptyView.swift */
;
};
0414708B2C88627B00B7B688
/* YHButlerServiceManager.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0414708A2C88627B00B7B688
/* YHButlerServiceManager.swift */
;
};
...
...
@@ -325,7 +327,6 @@
045EEE972B9F171A0022A143
/* YHPreviewInfoWorkExpView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDBB2B9F171A0022A143
/* YHPreviewInfoWorkExpView.swift */
;
};
045EEE982B9F171A0022A143
/* YHPreviewInfoQuestionAndAnswerItemsView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDBC2B9F171A0022A143
/* YHPreviewInfoQuestionAndAnswerItemsView.swift */
;
};
045EEE992B9F171A0022A143
/* YHPreviewInfoHoldView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDBD2B9F171A0022A143
/* YHPreviewInfoHoldView.swift */
;
};
045EEE9A2B9F171A0022A143
/* YHWorkIntroductionViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDC02B9F171A0022A143
/* YHWorkIntroductionViewModel.swift */
;
};
045EEE9B2B9F171A0022A143
/* YHWorkExperienceViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDC12B9F171A0022A143
/* YHWorkExperienceViewModel.swift */
;
};
045EEE9C2B9F171A0022A143
/* YHCompanyViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDC22B9F171A0022A143
/* YHCompanyViewModel.swift */
;
};
045EEE9D2B9F171A0022A143
/* YHWorkItemListViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDC32B9F171A0022A143
/* YHWorkItemListViewModel.swift */
;
};
...
...
@@ -339,7 +340,6 @@
045EEEA52B9F171A0022A143
/* YHImageViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDCD2B9F171A0022A143
/* YHImageViewController.swift */
;
};
045EEEA62B9F171A0022A143
/* YHCompanySelectViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDCE2B9F171A0022A143
/* YHCompanySelectViewController.swift */
;
};
045EEEA72B9F171A0022A143
/* YHWorkExperienceViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDCF2B9F171A0022A143
/* YHWorkExperienceViewController.swift */
;
};
045EEEA82B9F171A0022A143
/* YHWorkIntroductionViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDD02B9F171A0022A143
/* YHWorkIntroductionViewController.swift */
;
};
045EEEA92B9F171A0022A143
/* YHWorkExperienceListViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDD12B9F171A0022A143
/* YHWorkExperienceListViewController.swift */
;
};
045EEEAA2B9F171A0022A143
/* YHWorkExampleViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDD22B9F171A0022A143
/* YHWorkExampleViewController.swift */
;
};
045EEEAB2B9F171A0022A143
/* YHImageClipperViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045EEDD32B9F171A0022A143
/* YHImageClipperViewController.swift */
;
};
...
...
@@ -636,6 +636,11 @@
04B401EA2CE848E6005C61A9
/* YHIncomeTypeSelectViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401E92CE848E6005C61A9
/* YHIncomeTypeSelectViewController.swift */
;
};
04B401EC2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401EB2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift */
;
};
04B401EE2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401ED2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift */
;
};
04B401F02CEB0C78005C61A9
/* YHIncomeRecordViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401EF2CEB0C78005C61A9
/* YHIncomeRecordViewModel.swift */
;
};
04B401F22CEB19C1005C61A9
/* YHIncomeRecordCompleteModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401F12CEB19C1005C61A9
/* YHIncomeRecordCompleteModel.swift */
;
};
04B401F42CEB1C51005C61A9
/* YHIncomeCompanyDetailModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401F32CEB1C51005C61A9
/* YHIncomeCompanyDetailModel.swift */
;
};
04B401F62CEB239C005C61A9
/* YHIncomeRecordUtilType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401F52CEB239C005C61A9
/* YHIncomeRecordUtilType.swift */
;
};
04B401F82CEB3E2B005C61A9
/* YHIncomeType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B401F72CEB3E2A005C61A9
/* YHIncomeType.swift */
;
};
04B4B8D52C89CE5E00ED82BC
/* YHButlerServiceMessage.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8D42C89CE5E00ED82BC
/* YHButlerServiceMessage.swift */
;
};
04B4B8D72C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8D62C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift */
;
};
04B4B8DC2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B4B8DB2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift */
;
};
...
...
@@ -1035,6 +1040,8 @@
040AE97F2CE8340000310241
/* YHWorkExperiencePositionReasonTableViewCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExperiencePositionReasonTableViewCell.swift
;
sourceTree
=
"<group>"
;
};
040AE9812CE8810200310241
/* YHWorkExperienceSelectView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExperienceSelectView.swift
;
sourceTree
=
"<group>"
;
};
040AE9832CE893CC00310241
/* YHWorkExperiencePositionItemView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExperiencePositionItemView.swift
;
sourceTree
=
"<group>"
;
};
040AE9852CEB09ED00310241
/* YHWorkExperienceCompanySelectView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExperienceCompanySelectView.swift
;
sourceTree
=
"<group>"
;
};
040AE9872CEB6DAC00310241
/* YHWorkExperiencePositionModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExperiencePositionModel.swift
;
sourceTree
=
"<group>"
;
};
04129E852CD0C8490072F87B
/* YHAliYunLogManager.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHAliYunLogManager.swift
;
sourceTree
=
"<group>"
;
};
041390682C1081FA0098CB8A
/* YHFileListEmptyView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHFileListEmptyView.swift
;
sourceTree
=
"<group>"
;
};
0414708A2C88627B00B7B688
/* YHButlerServiceManager.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHButlerServiceManager.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -1341,7 +1348,6 @@
045EEDBB2B9F171A0022A143
/* YHPreviewInfoWorkExpView.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPreviewInfoWorkExpView.swift
;
sourceTree
=
"<group>"
;
};
045EEDBC2B9F171A0022A143
/* YHPreviewInfoQuestionAndAnswerItemsView.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPreviewInfoQuestionAndAnswerItemsView.swift
;
sourceTree
=
"<group>"
;
};
045EEDBD2B9F171A0022A143
/* YHPreviewInfoHoldView.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPreviewInfoHoldView.swift
;
sourceTree
=
"<group>"
;
};
045EEDC02B9F171A0022A143
/* YHWorkIntroductionViewModel.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkIntroductionViewModel.swift
;
sourceTree
=
"<group>"
;
};
045EEDC12B9F171A0022A143
/* YHWorkExperienceViewModel.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExperienceViewModel.swift
;
sourceTree
=
"<group>"
;
};
045EEDC22B9F171A0022A143
/* YHCompanyViewModel.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCompanyViewModel.swift
;
sourceTree
=
"<group>"
;
};
045EEDC32B9F171A0022A143
/* YHWorkItemListViewModel.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkItemListViewModel.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -1355,7 +1361,6 @@
045EEDCD2B9F171A0022A143
/* YHImageViewController.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHImageViewController.swift
;
sourceTree
=
"<group>"
;
};
045EEDCE2B9F171A0022A143
/* YHCompanySelectViewController.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCompanySelectViewController.swift
;
sourceTree
=
"<group>"
;
};
045EEDCF2B9F171A0022A143
/* YHWorkExperienceViewController.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExperienceViewController.swift
;
sourceTree
=
"<group>"
;
};
045EEDD02B9F171A0022A143
/* YHWorkIntroductionViewController.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkIntroductionViewController.swift
;
sourceTree
=
"<group>"
;
};
045EEDD12B9F171A0022A143
/* YHWorkExperienceListViewController.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExperienceListViewController.swift
;
sourceTree
=
"<group>"
;
};
045EEDD22B9F171A0022A143
/* YHWorkExampleViewController.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHWorkExampleViewController.swift
;
sourceTree
=
"<group>"
;
};
045EEDD32B9F171A0022A143
/* YHImageClipperViewController.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHImageClipperViewController.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -1655,6 +1660,11 @@
04B401E92CE848E6005C61A9
/* YHIncomeTypeSelectViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeTypeSelectViewController.swift
;
sourceTree
=
"<group>"
;
};
04B401EB2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeTypePopViewSelectCell.swift
;
sourceTree
=
"<group>"
;
};
04B401ED2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeTypeSelectModel.swift
;
sourceTree
=
"<group>"
;
};
04B401EF2CEB0C78005C61A9
/* YHIncomeRecordViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRecordViewModel.swift
;
sourceTree
=
"<group>"
;
};
04B401F12CEB19C1005C61A9
/* YHIncomeRecordCompleteModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRecordCompleteModel.swift
;
sourceTree
=
"<group>"
;
};
04B401F32CEB1C51005C61A9
/* YHIncomeCompanyDetailModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeCompanyDetailModel.swift
;
sourceTree
=
"<group>"
;
};
04B401F52CEB239C005C61A9
/* YHIncomeRecordUtilType.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeRecordUtilType.swift
;
sourceTree
=
"<group>"
;
};
04B401F72CEB3E2A005C61A9
/* YHIncomeType.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHIncomeType.swift
;
sourceTree
=
"<group>"
;
};
04B4B8D42C89CE5E00ED82BC
/* YHButlerServiceMessage.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHButlerServiceMessage.swift
;
sourceTree
=
"<group>"
;
};
04B4B8D62C8AE77C00ED82BC
/* YHButlerServiceMessageHandler.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHButlerServiceMessageHandler.swift
;
sourceTree
=
"<group>"
;
};
04B4B8DB2C90696E00ED82BC
/* YHResignDocumentManagementVC.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHResignDocumentManagementVC.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -2905,7 +2915,6 @@
045EEDBF2B9F171A0022A143
/* ViewModel */
=
{
isa
=
PBXGroup
;
children
=
(
045EEDC02B9F171A0022A143
/* YHWorkIntroductionViewModel.swift */
,
045EEDC12B9F171A0022A143
/* YHWorkExperienceViewModel.swift */
,
045EEDC22B9F171A0022A143
/* YHCompanyViewModel.swift */
,
045EEDC32B9F171A0022A143
/* YHWorkItemListViewModel.swift */
,
...
...
@@ -2923,6 +2932,7 @@
045EEDC82B9F171A0022A143
/* YHWorkExperienceDetailModel.swift */
,
045EEDC92B9F171A0022A143
/* YHWorkExperienceProjectModel.swift */
,
045EEDCA2B9F171A0022A143
/* YHCompanyModel.swift */
,
040AE9872CEB6DAC00310241
/* YHWorkExperiencePositionModel.swift */
,
);
path
=
Model
;
sourceTree
=
"<group>"
;
...
...
@@ -2934,7 +2944,6 @@
045EEDCD2B9F171A0022A143
/* YHImageViewController.swift */
,
045EEDCE2B9F171A0022A143
/* YHCompanySelectViewController.swift */
,
045EEDCF2B9F171A0022A143
/* YHWorkExperienceViewController.swift */
,
045EEDD02B9F171A0022A143
/* YHWorkIntroductionViewController.swift */
,
045EEDD12B9F171A0022A143
/* YHWorkExperienceListViewController.swift */
,
045EEDD22B9F171A0022A143
/* YHWorkExampleViewController.swift */
,
045EEDD32B9F171A0022A143
/* YHImageClipperViewController.swift */
,
...
...
@@ -2974,6 +2983,7 @@
040AE97F2CE8340000310241
/* YHWorkExperiencePositionReasonTableViewCell.swift */
,
040AE9812CE8810200310241
/* YHWorkExperienceSelectView.swift */
,
040AE9832CE893CC00310241
/* YHWorkExperiencePositionItemView.swift */
,
040AE9852CEB09ED00310241
/* YHWorkExperienceCompanySelectView.swift */
,
);
path
=
V
;
sourceTree
=
"<group>"
;
...
...
@@ -4002,6 +4012,10 @@
isa
=
PBXGroup
;
children
=
(
04B401ED2CE8709A005C61A9
/* YHIncomeTypeSelectModel.swift */
,
04B401F72CEB3E2A005C61A9
/* YHIncomeType.swift */
,
04B401F12CEB19C1005C61A9
/* YHIncomeRecordCompleteModel.swift */
,
04B401F32CEB1C51005C61A9
/* YHIncomeCompanyDetailModel.swift */
,
04B401F52CEB239C005C61A9
/* YHIncomeRecordUtilType.swift */
,
);
path
=
M
;
sourceTree
=
"<group>"
;
...
...
@@ -4032,6 +4046,7 @@
04B401CF2CE6E6C8005C61A9
/* VM */
=
{
isa
=
PBXGroup
;
children
=
(
04B401EF2CEB0C78005C61A9
/* YHIncomeRecordViewModel.swift */
,
);
path
=
VM
;
sourceTree
=
"<group>"
;
...
...
@@ -5754,7 +5769,6 @@
A5EF21352BA6E05E005027E6
/* YHQuestionAndAnswerViewController.swift in Sources */
,
A5EF213B2BA6EC98005027E6
/* YHQuestionAndAnswerCell.swift in Sources */
,
04912F702CB765FE00CC3105
/* YHResignAppointTimeViewController.swift in Sources */
,
045EEEA82B9F171A0022A143
/* YHWorkIntroductionViewController.swift in Sources */
,
044D0BFC2C21635B00C5CF5E
/* YHInformationAuthorizationStepOneViewController.swift in Sources */
,
045EEEBF2B9F171A0022A143
/* YHWorkFileItemView.swift in Sources */
,
04AF58C42B4FC51C0066011A
/* YHLocalizable.swift in Sources */
,
...
...
@@ -5914,6 +5928,7 @@
0457921B2CBE0C3F00EBD99B
/* YHLookResignResultModel.swift in Sources */
,
045EEEB92B9F171A0022A143
/* YHWorkMessageSelectTableViewCell.swift in Sources */
,
04FA8B302C0874CA00ABE43F
/* YHOneKeyLoginViewModel.swift in Sources */
,
04B401F82CEB3E2B005C61A9
/* YHIncomeType.swift in Sources */
,
04256E112C75BD2700A37BA4
/* YHVisaPaymentListModel.swift in Sources */
,
04A7BD0F2BA41C9800BD35A2
/* YHMyDocumentsModel.swift in Sources */
,
044EE24A2C9434D400A2FE3A
/* YHResignCertificateDetailPassPortViewController.swift in Sources */
,
...
...
@@ -5927,6 +5942,7 @@
A567E5B82BD7643D00D5D5A0
/* YHSearchItemLayout.swift in Sources */
,
A567E5A02BD7643D00D5D5A0
/* YHHomeWebViewController.swift in Sources */
,
044D0BF42C21247100C5CF5E
/* YHUserInfoSettingViewController.swift in Sources */
,
040AE9862CEB09ED00310241
/* YHWorkExperienceCompanySelectView.swift in Sources */
,
A567E5942BD7643D00D5D5A0
/* YHHomeListModel.swift in Sources */
,
047F3DDB2CE6DE91001B2A6D
/* YHEducationMarkView.swift in Sources */
,
04CE1AD82C2AD91F001CB80A
/* YHActivityListViewController.swift in Sources */
,
...
...
@@ -6040,7 +6056,6 @@
04256DD02C7041C700A37BA4
/* YHInfoItemView.swift in Sources */
,
A5ACE9312B4564F7002C94D2
/* YHPersonalCenterCell.swift in Sources */
,
0430E6562C7342AB000511E2
/* YHAdopterIncomeFileCountTableViewCell.swift in Sources */
,
045EEE9A2B9F171A0022A143
/* YHWorkIntroductionViewModel.swift in Sources */
,
0449EEEB2C8EF2B700A397FD
/* YHResignMaterialListVC.swift in Sources */
,
044D0C1C2C22C30B00C5CF5E
/* YHEditSchoolViewController.swift in Sources */
,
044E31C92CBD2AA400500F8E
/* YHResignInfoConfirmIViewModel.swift in Sources */
,
...
...
@@ -6124,6 +6139,7 @@
04256E002C7440A500A37BA4
/* YHFamilyWarmTipsCell.swift in Sources */
,
042B20DA2CEB337100655093
/* YHImproveSchemeTemplateListCell.swift in Sources */
,
0445E6AF2BE9CFF6003C52F9
/* YHAppVersionForceUpdateView.swift in Sources */
,
040AE9882CEB6DAC00310241
/* YHWorkExperiencePositionModel.swift in Sources */
,
04213B272C48C95E00797900
/* YHHomeIdentityCell.swift in Sources */
,
041892262C91BDF500B9FB94
/* YHResignDocumentHeaderCell.swift in Sources */
,
0449EEE92C8EEB1E00A397FD
/* YHResinMaterialManageContainerVC.swift in Sources */
,
...
...
@@ -6178,6 +6194,7 @@
048787D92BCF68530036E221
/* YHProgressView.swift in Sources */
,
04256DEE2C73338200A37BA4
/* YHGrabingNumberListCell.swift in Sources */
,
047F3DF02CE88380001B2A6D
/* YHMaterialListCell.swift in Sources */
,
04B401F02CEB0C78005C61A9
/* YHIncomeRecordViewModel.swift in Sources */
,
04B401E62CE83C74005C61A9
/* YHIncomeRemarkCell.swift in Sources */
,
045EEEEC2B9F171A0022A143
/* YHBrotherInfoVC.swift in Sources */
,
0477E17A2BA41C7E00436346
/* YHCertificateModel.swift in Sources */
,
...
...
@@ -6282,6 +6299,7 @@
045EEE882B9F171A0022A143
/* YHPreviewAcademicAndProfessionalQualificationViewController.swift in Sources */
,
0435FA7F2BA178C100024EAE
/* YHCommonAlertView.swift in Sources */
,
A5ACE9382B4564F7002C94D2
/* UIApplication+Extension.swift in Sources */
,
04B401F22CEB19C1005C61A9
/* YHIncomeRecordCompleteModel.swift in Sources */
,
0468D42B2B55019900CFB916
/* YHAnalytics.swift in Sources */
,
04912F842CB7D14D00CC3105
/* YHResignScheduleLineCollectCell.swift in Sources */
,
0445E6B12BE9E15C003C52F9
/* YHFindAppNewVersionView.swift in Sources */
,
...
...
@@ -6466,6 +6484,7 @@
A554A5122B99715000EA5973
/* YHConstantArrayData.swift in Sources */
,
045EEE962B9F171A0022A143
/* YHPreviewInfoCertificatePictureItemsView.swift in Sources */
,
044EE2362C92916600A2FE3A
/* YHResignCertificateListViewController.swift in Sources */
,
04B401F62CEB239C005C61A9
/* YHIncomeRecordUtilType.swift in Sources */
,
04F243412C9AFBAB00DF2C74
/* YHHKRecordItemDetailType.swift in Sources */
,
04256DDE2C72DA3B00A37BA4
/* YHCertificateAppointViewController.swift in Sources */
,
A592FE912BA6CC010062FACA
/* YHCertificateEntryHeadView.swift in Sources */
,
...
...
@@ -6520,6 +6539,7 @@
04912F942CB921C300CC3105
/* YHResignAppointContainerViewController.swift in Sources */
,
045EEE972B9F171A0022A143
/* YHPreviewInfoWorkExpView.swift in Sources */
,
04B401EC2CE84CBD005C61A9
/* YHIncomeTypePopViewSelectCell.swift in Sources */
,
04B401F42CEB1C51005C61A9
/* YHIncomeCompanyDetailModel.swift in Sources */
,
044BACC72BCFA58E00184C64
/* YHNoDataTipsView.swift in Sources */
,
04D5C5662B8ED92600190021
/* YHBaseModel.swift in Sources */
,
A5F8AC082B9F414000A21EFA
/* YHCustomTextView.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHIncomeRecordViewController.swift
View file @
b6d94429
...
...
@@ -13,13 +13,16 @@ import UIKit
class
YHIncomeRecordViewController
:
YHBaseViewController
{
enum
TableRow
{
case
incomeSummary
(
_
isEditing
:
Bool
=
false
,
_
isEditEnable
:
Bool
=
false
)
case
incomeItem
(
_
isEditState
:
Bool
=
false
,
_
company
:
String
,
_
money
:
String
,
_
timeStr
:
String
)
case
incomeItem
(
_
isEditState
:
Bool
=
false
,
_
company
:
String
,
_
money
:
String
,
_
timeStr
:
String
,
_
incomeId
:
Int
)
case
totalIncome
(
_
money
:
ASAttributedString
)
case
consentForHKTravel
(
_
title
:
String
,
_
detail
:
ASAttributedString
,
_
question
:
String
,
_
isSelectSureBtn
:
Bool
=
true
)
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
lazy
var
viewModel
=
YHIncomeRecordViewModel
()
private
var
incomeModel
=
YHIncomeRecordCompleteModel
()
private
lazy
var
saveButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
...
...
@@ -77,10 +80,20 @@ class YHIncomeRecordViewController: YHBaseViewController {
return
view
}()
private
let
orderId
:
Int
init
(
orderId
:
Int
)
{
self
.
orderId
=
orderId
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
@MainActor
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
setupData
(
)
requestData
(
isNeedLoading
:
true
)
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
...
...
@@ -96,11 +109,11 @@ class YHIncomeRecordViewController: YHBaseViewController {
extension
YHIncomeRecordViewController
{
@objc
private
func
clickSaveButton
()
{
//
updateIncome
(
.
save
)
}
@objc
private
func
clickSubmitButton
()
{
//
updateIncome
(
.
submit
)
}
private
func
setupUI
()
{
...
...
@@ -145,12 +158,36 @@ extension YHIncomeRecordViewController {
private
func
setupData
()
{
let
detail
:
ASAttributedString
=
.
init
(
string
:
"备注:全年收入是指应课税(应纳所得税)的就业或业务收入,包括工资薪金、津贴、股票期权及从其拥有的公司所得的利润。由个人投资所产生的收入不会计算在内。"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)),
.
foreground
(
UIColor
(
hexString
:
"#8993A2"
)
??
.
gray
))
let
firstSection
:
[
TableRow
]
=
[
.
consentForHKTravel
(
"收入情况"
,
detail
,
"您在前一年,全年收入是否达港币100万元或以上"
,
true
)]
let
totalMoney
:
ASAttributedString
=
.
init
(
string
:
"约 "
,
.
font
(
.
PFSC_R
(
ofSize
:
14
)))
+
.
init
(
string
:
"1,351,517"
,
.
font
(
UIFont
(
name
:
"DINAlternate-Bold"
,
size
:
20
)
??
UIFont
.
systemFont
(
ofSize
:
20
)))
+
.
init
(
string
:
" 港币"
,
.
font
(
.
PFSC_R
(
ofSize
:
14
)))
let
secondSection
:
[
TableRow
]
=
[
.
incomeSummary
(
false
,
false
),
.
incomeItem
(
false
,
"华为有限公司"
,
"约1,234,234港币"
,
"已填写"
),
.
incomeItem
(
false
,
"腾讯有限公司"
,
"约1,234,234港币"
,
"有5项未填写"
),
.
totalIncome
(
totalMoney
)]
let
firstSection
:
[
TableRow
]
=
[
.
consentForHKTravel
(
"收入情况"
,
detail
,
"您在前一年,全年收入是否达港币100万元或以上"
,
incomeModel
.
income_over_100
==
YHIncomeOver100
.
true
.
rawValue
)]
guard
incomeModel
.
income_over_100
==
YHIncomeOver100
.
true
.
rawValue
else
{
datas
=
[
firstSection
]
tableView
.
reloadData
()
return
}
let
hkdFormatter
=
currencyFormat
(
""
)
var
money
:
Double
=
0
var
secondSection
:
[
TableRow
]
=
[
.
incomeSummary
(
false
,
false
)]
incomeModel
.
list
.
forEach
{
companyModel
in
money
+=
companyModel
.
income_money
let
moneyStr
=
"约"
+
(
hkdFormatter
.
string
(
from
:
NSNumber
(
value
:
companyModel
.
income_money
))
??
"0"
)
+
"港币"
let
timeStr
:
String
=
companyModel
.
fill_status
?
"已填写"
:
"有
\(
companyModel
.
unfilled_count
)
项未填写"
let
incomeItem
:
TableRow
=
.
incomeItem
(
false
,
companyModel
.
company_name
,
moneyStr
,
timeStr
,
companyModel
.
income_id
)
secondSection
.
append
(
incomeItem
)
}
let
totalNum
=
hkdFormatter
.
string
(
from
:
NSNumber
(
value
:
money
))
??
"0"
let
totalMoney
:
ASAttributedString
=
.
init
(
string
:
"约 "
,
.
font
(
.
PFSC_R
(
ofSize
:
14
)))
+
.
init
(
string
:
totalNum
,
.
font
(
UIFont
(
name
:
"DINAlternate-Bold"
,
size
:
20
)
??
UIFont
.
systemFont
(
ofSize
:
20
)))
+
.
init
(
string
:
" 港币"
,
.
font
(
.
PFSC_R
(
ofSize
:
14
)))
secondSection
.
append
(
.
totalIncome
(
totalMoney
))
datas
=
[
firstSection
,
secondSection
]
tableView
.
reloadData
()
}
private
func
currencyFormat
(
_
currencySymbol
:
String
)
->
NumberFormatter
{
let
formatter
=
NumberFormatter
()
formatter
.
numberStyle
=
.
currency
formatter
.
currencySymbol
=
currencySymbol
formatter
.
maximumFractionDigits
=
0
return
formatter
}
}
extension
YHIncomeRecordViewController
:
UITableViewDelegate
,
UITableViewDataSource
{
...
...
@@ -182,7 +219,7 @@ extension YHIncomeRecordViewController: UITableViewDelegate, UITableViewDataSour
cell
.
setupCellInfo
(
isEditState
,
isEditEnable
,
showRightButton
:
false
)
return
cell
}
case
let
.
incomeItem
(
isEditState
,
company
,
money
,
timeStr
):
case
let
.
incomeItem
(
isEditState
,
company
,
money
,
timeStr
,
_
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeRecordItemCell
.
cellReuseIdentifier
)
as?
YHIncomeRecordItemCell
{
cell
.
setupCellInfo
(
title
:
company
,
detail
:
money
,
rightText
:
timeStr
,
isEditing
:
isEditState
,
showBottomLine
:
false
)
return
cell
...
...
@@ -190,16 +227,24 @@ extension YHIncomeRecordViewController: UITableViewDelegate, UITableViewDataSour
case
let
.
totalIncome
(
money
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHTotalIncomeCell
.
cellReuseIdentifier
)
as?
YHTotalIncomeCell
{
cell
.
setupCellInfo
(
detail
:
money
)
cell
.
didClickInfoButton
=
{
YHHUD
.
flash
(
message
:
"注:按1港币≈0.92人民币计算,实际金额按递交时入境处给出的汇率为准"
)
cell
.
didClickInfoButton
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
let
rate
=
self
.
incomeModel
.
rate
>
0
?
self
.
incomeModel
.
rate
:
0.92
YHHUD
.
flash
(
message
:
"注:按1港币≈
\(
rate
)
人民币计算,实际金额按递交时入境处给出的汇率为准"
)
}
return
cell
}
case
let
.
consentForHKTravel
(
title
,
detail
,
question
,
isSelectSureBtn
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHInfoConsentForHKTravelCell
.
cellReuseIdentifier
)
as?
YHInfoConsentForHKTravelCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
question
:
question
)
cell
.
didSelectSureButton
=
{
_
in
//
cell
.
didSelectSureButton
=
{
[
weak
self
]
selected
in
guard
let
self
=
self
else
{
return
}
self
.
incomeModel
.
income_over_100
=
selected
?
YHIncomeOver100
.
true
.
rawValue
:
YHIncomeOver100
.
false
.
rawValue
self
.
setupData
()
}
cell
.
selectedSureButton
=
isSelectSureBtn
return
cell
...
...
@@ -231,9 +276,61 @@ extension YHIncomeRecordViewController: UITableViewDelegate, UITableViewDataSour
return
}
let
tableRow
=
sectionArr
[
indexPath
.
row
]
if
case
.
incomeItem
=
tableRow
{
let
ctl
=
YHIncomeRecordWorkExperienceViewController
()
if
case
let
.
incomeItem
(
_
,
_
,
_
,
_
,
incomeId
)
=
tableRow
{
let
ctl
=
YHIncomeRecordWorkExperienceViewController
(
incomeId
:
incomeId
)
ctl
.
submitSuccess
=
{
[
weak
self
]
in
self
?
.
requestData
(
isNeedLoading
:
true
)
}
navigationController
?
.
pushViewController
(
ctl
,
animated
:
true
)
}
}
}
extension
YHIncomeRecordViewController
{
private
func
requestData
(
isNeedLoading
:
Bool
=
false
)
{
if
isNeedLoading
{
YHHUD
.
show
(
.
progress
(
message
:
"加载中..."
))
}
viewModel
.
getIncomeList
(
orderId
:
orderId
)
{
[
weak
self
]
incomeModel
,
error
in
guard
let
self
=
self
else
{
return
}
if
isNeedLoading
{
YHHUD
.
hide
()
}
guard
let
incomeModel
=
incomeModel
else
{
printLog
(
"YHIncomeRecordViewController: 请求失败"
)
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
YHHUD
.
flash
(
message
:
errorMsg
)
}
self
.
datas
=
[]
self
.
tableView
.
reloadData
()
return
}
self
.
incomeModel
=
incomeModel
self
.
setupData
()
}
}
private
func
updateIncome
(
_
type
:
YHIncomeRecordUpdateType
)
{
let
incomeOver100
:
YHIncomeOver100
=
YHIncomeOver100
(
rawValue
:
incomeModel
.
income_over_100
)
??
.
true
let
msg
=
type
==
.
save
?
"保存中..."
:
"提交中..."
YHHUD
.
show
(
.
progress
(
message
:
msg
))
viewModel
.
incomeUpdate
(
orderId
:
orderId
,
incomeOver100
:
incomeOver100
,
type
:
type
)
{
[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
YHHUD
.
hide
()
if
success
{
let
msg
=
type
==
.
save
?
"保存成功"
:
"提交成功"
YHHUD
.
flash
(
message
:
msg
)
if
type
==
.
submit
{
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
}
}
else
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
YHHUD
.
flash
(
message
:
errorMsg
)
}
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHIncomeRecordWorkExperienceViewController.swift
View file @
b6d94429
...
...
@@ -14,17 +14,22 @@ class YHIncomeRecordWorkExperienceViewController: YHBaseViewController {
case
header
(
_
title
:
String
)
case
incomeFrom
(
_
title
:
String
,
_
detail
:
String
)
case
incomeTypeSelect
(
_
title
:
String
,
_
detail
:
String
,
_
isSelectedOne
:
Bool
)
case
incomeTypes
(
_
types
:
[
String
])
case
inputMoney
(
_
title
:
String
,
_
detail
:
String
?,
_
inputStr
:
String
?,
_
showBottomLine
:
Bool
,
_
showStar
:
Bool
)
case
incomeTypes
(
_
types
:
[
YHIncomeType
])
case
inputMoney
(
_
title
:
String
,
_
detail
:
String
?,
_
inputStr
:
String
?,
_
showBottomLine
:
Bool
,
_
showStar
:
Bool
,
_
isIncomeMoney
:
Bool
)
case
inputRemark
(
_
detail
:
String
)
case
documentComfirm
(
_
title
:
String
,
_
question
:
String
,
_
isSelectedSure
:
Bool
,
_
docs
:
[
String
])
}
private
lazy
var
datas
:
[[
TableRow
]]
=
[]
private
var
selectedTypes
:
[
String
]
=
[]
private
var
selectedTypes
:
[
YHIncomeType
]
=
[]
private
let
currencyRate
=
0.92
private
var
isSaving
=
false
var
submitSuccess
:
(()
->
Void
)?
private
lazy
var
viewModel
=
YHIncomeRecordViewModel
()
private
var
companyModel
=
YHIncomeCompanyDetailModel
()
private
lazy
var
submitButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
...
...
@@ -72,10 +77,20 @@ class YHIncomeRecordWorkExperienceViewController: YHBaseViewController {
return
view
}()
private
let
incomeId
:
Int
init
(
incomeId
:
Int
)
{
self
.
incomeId
=
incomeId
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
@MainActor
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
setupData
(
)
requestData
(
isNeedLoading
:
true
)
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
...
...
@@ -87,11 +102,33 @@ class YHIncomeRecordWorkExperienceViewController: YHBaseViewController {
super
.
viewWillDisappear
(
animated
)
IQKeyboardManager
.
shared
.
enable
=
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
YHIncomeRecordWorkExperienceViewController
{
@objc
private
func
clickSubmitButton
()
{
//
submitIncome
(
.
submit
,
complete
:
{
_
in
})
}
private
func
setupUI
()
{
...
...
@@ -127,15 +164,32 @@ extension YHIncomeRecordWorkExperienceViewController {
}
private
func
setupData
()
{
selectedTypes
=
[
"工资薪金所得及全年一次性奖金"
,
"个体工商户/合伙企业/独资企业经营所得收入"
,
"其他境外公司收入(持股50%及以上)"
]
let
firstSection
:
[
TableRow
]
=
[
.
header
(
"收入信息"
),
.
incomeFrom
(
"收入来源公司"
,
"华为科技有限公司"
),
.
incomeTypeSelect
(
"收入类型(多选)"
,
"请选择"
,
selectedTypes
.
count
>
0
),
.
incomeTypes
(
selectedTypes
),
.
inputMoney
(
"公司营业额(近一年)"
,
"约10,869,564港币"
,
"¥9,999,999"
,
true
,
false
),
.
inputMoney
(
"收入金额"
,
"约10,869,564港币"
,
"¥9,999,999"
,
false
,
true
),
.
inputRemark
(
"注:按1港币≈0.92人民币计算,实际金额按递交时入境处给出的汇率为准"
)]
let
secondSection
:
[
TableRow
]
=
[
.
documentComfirm
(
"证件提供确认"
,
"您是否可以提供以下所有证明文件"
,
true
,
[
"验资报告"
,
"审计报告"
,
"绝对实益拥有人声明书"
,
"国家企业信用信息公示系统报告"
,
"企业所得税月(季)度预缴纳税申报表(A类)"
,
"企业所得税完税证明"
,
"企业所得税年度纳税申报表(A类)"
])]
selectedTypes
=
companyModel
.
income_type
.
compactMap
{
YHIncomeType
(
rawValue
:
$0
)
}
var
firstSection
:
[
TableRow
]
=
[
.
header
(
"收入信息"
),
.
incomeFrom
(
"收入来源公司"
,
companyModel
.
company_name
),
.
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
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
))
}
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
))
firstSection
.
append
(
.
inputRemark
(
"注:按1港币≈
\(
rate
)
人民币计算,实际金额按递交时入境处给出的汇率为准"
))
let
set
=
Set
(
selectedTypes
.
map
{
$0
.
docsArray
()
}
.
flatMap
{
$0
})
var
arr
=
Array
(
set
)
if
set
.
count
==
0
{
arr
=
YHIncomeType
.
defaultDocs
()
}
let
secondSection
:
[
TableRow
]
=
[
.
documentComfirm
(
"证件提供确认"
,
"您是否可以提供以下所有证明文件"
,
companyModel
.
has_all_file
==
YHIncomeRecordHasAllFile
.
true
.
rawValue
,
arr
)]
datas
=
[
firstSection
,
secondSection
]
tableView
.
reloadData
()
}
private
func
showSelectIncomeTypePopVC
(
selectedTypes
:
[
String
])
{
private
func
showSelectIncomeTypePopVC
(
selectedTypes
:
[
YHIncomeType
])
{
let
ctl
=
YHIncomeTypeSelectViewController
(
selectedTypes
:
selectedTypes
)
let
bpc
=
YHBottomPresentationController
(
presentedViewController
:
ctl
,
presenting
:
self
)
bpc
.
customRadius
=
8.0
...
...
@@ -151,8 +205,10 @@ extension YHIncomeRecordWorkExperienceViewController {
}
private
func
updateSelectTypes
()
{
companyModel
.
income_type
=
selectedTypes
.
map
{
$0
.
rawValue
}
var
incomeTypesIndexPath
:
IndexPath
?
var
incomeTypeSelectIndexPath
:
IndexPath
?
var
docIndexPath
:
IndexPath
?
datas
=
datas
.
enumerated
()
.
map
{
section
,
sectionArr
in
sectionArr
.
enumerated
()
.
map
{
row
,
tableRow
in
switch
tableRow
{
...
...
@@ -162,6 +218,14 @@ extension YHIncomeRecordWorkExperienceViewController {
case
let
.
incomeTypeSelect
(
title
,
detail
,
_
):
incomeTypeSelectIndexPath
=
IndexPath
(
row
:
row
,
section
:
section
)
return
.
incomeTypeSelect
(
title
,
detail
,
selectedTypes
.
count
>
0
)
case
let
.
documentComfirm
(
title
,
question
,
isSelectSure
,
docs
):
docIndexPath
=
IndexPath
(
row
:
row
,
section
:
section
)
let
set
=
Set
(
selectedTypes
.
map
{
$0
.
docsArray
()
}
.
flatMap
{
$0
})
if
set
.
count
>
0
{
return
.
documentComfirm
(
title
,
question
,
isSelectSure
,
Array
(
set
))
}
else
{
return
.
documentComfirm
(
title
,
question
,
isSelectSure
,
YHIncomeType
.
defaultDocs
())
}
default
:
return
tableRow
}
...
...
@@ -184,11 +248,18 @@ extension YHIncomeRecordWorkExperienceViewController {
sectionArr
.
remove
(
at
:
incomeTypesIndexPath
.
row
)
datas
[
incomeTypesIndexPath
.
section
]
=
sectionArr
}
if
let
secondSection
=
docIndexPath
?
.
section
{
tableView
.
performBatchUpdates
{
[
weak
tableView
]
in
tableView
?
.
reloadSections
(
IndexSet
(
arrayLiteral
:
incomeTypeSelectIndexPath
.
section
,
secondSection
),
with
:
.
automatic
)
}
}
else
{
tableView
.
performBatchUpdates
{
[
weak
tableView
]
in
tableView
?
.
reloadSections
(
IndexSet
(
integer
:
incomeTypeSelectIndexPath
.
section
),
with
:
.
automatic
)
}
}
}
private
func
currencyFormat
(
_
currencySymbol
:
String
)
->
NumberFormatter
{
let
formatter
=
NumberFormatter
()
formatter
.
numberStyle
=
.
currency
...
...
@@ -238,7 +309,7 @@ extension YHIncomeRecordWorkExperienceViewController: UITableViewDelegate, UITab
}
case
let
.
incomeTypes
(
types
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeTypesCell
.
cellReuseIdentifier
)
as?
YHIncomeTypesCell
{
cell
.
setupCellInfo
(
types
:
types
)
cell
.
setupCellInfo
(
types
:
types
.
map
{
$0
.
nameString
()
}
)
cell
.
didClickTypeView
=
{
[
weak
self
]
index
in
guard
let
self
=
self
else
{
return
...
...
@@ -248,7 +319,7 @@ extension YHIncomeRecordWorkExperienceViewController: UITableViewDelegate, UITab
}
return
cell
}
case
let
.
inputMoney
(
title
,
detail
,
inputStr
,
showBottomLine
,
showStar
):
case
let
.
inputMoney
(
title
,
detail
,
inputStr
,
showBottomLine
,
showStar
,
isIncomeMoney
):
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeInputMoneyCell
.
cellReuseIdentifier
)
as?
YHIncomeInputMoneyCell
{
cell
.
setupCellInfo
(
title
:
title
,
detail
:
detail
,
inputValue
:
inputStr
,
showBottomLine
:
showBottomLine
,
showStarIcon
:
showStar
)
cell
.
didBeginEditing
=
{
textField
in
...
...
@@ -268,6 +339,12 @@ extension YHIncomeRecordWorkExperienceViewController: UITableViewDelegate, UITab
let
number
=
Double
(
text
)
??
0
// 格式化为带货币符号和千分位
let
detail
=
number
/
self
.
currencyRate
if
isIncomeMoney
{
self
.
companyModel
.
income_money
=
number
}
else
{
self
.
companyModel
.
corporate_turnover
=
number
}
let
rmbFormatter
=
self
.
currencyFormat
(
"¥"
)
let
hkdFormatter
=
self
.
currencyFormat
(
""
)
if
let
formattedString
=
rmbFormatter
.
string
(
from
:
NSNumber
(
value
:
number
))
{
...
...
@@ -277,8 +354,8 @@ extension YHIncomeRecordWorkExperienceViewController: UITableViewDelegate, UITab
let
sectionArr
=
self
.
datas
[
indexPath
.
section
]
if
sectionArr
.
count
>
indexPath
.
row
{
let
currentRow
=
sectionArr
[
indexPath
.
row
]
if
case
let
.
inputMoney
(
title
,
detail
,
inputStr
,
showBottomLine
,
showStar
)
=
currentRow
{
self
.
datas
[
indexPath
.
section
][
indexPath
.
row
]
=
.
inputMoney
(
title
,
detailStr
,
formattedString
,
showBottomLine
,
showStar
)
if
case
let
.
inputMoney
(
title
,
_
,
_
,
showBottomLine
,
showStar
,
isIncomeMoney
)
=
currentRow
{
self
.
datas
[
indexPath
.
section
][
indexPath
.
row
]
=
.
inputMoney
(
title
,
detailStr
,
formattedString
,
showBottomLine
,
showStar
,
isIncomeMoney
)
self
.
tableView
.
reloadRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
}
}
...
...
@@ -296,6 +373,17 @@ extension YHIncomeRecordWorkExperienceViewController: UITableViewDelegate, UITab
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeDocumentationConfirmationCell
.
cellReuseIdentifier
)
as?
YHIncomeDocumentationConfirmationCell
{
cell
.
setupCellInfo
(
title
:
title
,
question
:
question
,
documents
:
docs
)
cell
.
selectedSureButton
=
isSelectedSure
cell
.
didSelectSureButton
=
{
[
weak
self
]
flag
in
guard
let
self
=
self
else
{
return
}
if
flag
{
self
.
companyModel
.
has_all_file
=
YHIncomeRecordHasAllFile
.
true
.
rawValue
}
else
{
self
.
companyModel
.
has_all_file
=
YHIncomeRecordHasAllFile
.
false
.
rawValue
}
}
return
cell
}
}
...
...
@@ -330,3 +418,59 @@ extension YHIncomeRecordWorkExperienceViewController: UITableViewDelegate, UITab
}
}
}
extension
YHIncomeRecordWorkExperienceViewController
{
private
func
requestData
(
isNeedLoading
:
Bool
=
false
)
{
if
isNeedLoading
{
YHHUD
.
show
(
.
progress
(
message
:
"加载中..."
))
}
viewModel
.
getIncomeDetail
(
incomeId
:
incomeId
)
{
[
weak
self
]
companyModel
,
error
in
guard
let
self
=
self
else
{
return
}
if
isNeedLoading
{
YHHUD
.
hide
()
}
guard
let
companyModel
=
companyModel
else
{
printLog
(
"YHIncomeRecordWorkExperienceViewController: 请求失败"
)
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
YHHUD
.
flash
(
message
:
errorMsg
)
}
self
.
datas
=
[]
self
.
tableView
.
reloadData
()
return
}
self
.
companyModel
=
companyModel
self
.
setupData
()
}
}
private
func
submitIncome
(
_
type
:
YHIncomeRecordUpdateType
,
complete
:
@escaping
(
Bool
)
->
Void
)
{
let
msg
=
type
==
.
save
?
"保存中..."
:
"提交中..."
YHHUD
.
show
(
.
progress
(
message
:
msg
))
let
hasFile
:
YHIncomeRecordHasAllFile
=
companyModel
.
has_all_file
==
YHIncomeRecordHasAllFile
.
true
.
rawValue
?
.
true
:
.
false
viewModel
.
updateDetail
(
incomeId
:
incomeId
,
incomeMoney
:
companyModel
.
income_money
,
corporateTurnover
:
companyModel
.
corporate_turnover
,
incomeType
:
companyModel
.
income_type
,
hasAllFile
:
hasFile
)
{
[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
complete
(
false
)
return
}
YHHUD
.
hide
()
complete
(
success
)
if
success
{
let
msg
=
type
==
.
save
?
"保存成功"
:
"提交成功"
YHHUD
.
flash
(
message
:
msg
)
self
.
submitSuccess
?()
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
}
else
{
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(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/C/YHIncomeTypeSelectViewController.swift
View file @
b6d94429
...
...
@@ -66,23 +66,15 @@ class YHIncomeTypeSelectViewController: YHBaseViewController {
}()
private
lazy
var
datas
:
[
YHIncomeTypeSelectModel
]
=
{
[
"工资薪金所得及全年一次性奖金"
,
"上市公司股票期权或股权收入"
,
"持股公司分红收入"
,
"个体工商户/合伙企业/独资企业经营所得收入"
,
"股权转让收入"
,
"内地公司收入(持股50%及以上)"
,
"香港公司收入(持股50%及以上)"
,
"澳门公司收入(持股50%及以上)"
,
"其他境外公司收入(持股50%及以上)"
]
.
map
{
YHIncomeTypeSelectModel
(
title
:
$0
,
isSelected
:
false
)
YHIncomeType
.
allCases
.
map
{
YHIncomeTypeSelectModel
(
type
:
$0
,
isSelected
:
false
)
}
}()
var
sureButtonEvent
:
(([
String
])
->
Void
)?
var
sureButtonEvent
:
(([
YHIncomeType
])
->
Void
)?
private
var
selectedTypes
:
[
String
]
=
[]
init
(
selectedTypes
:
[
String
])
{
private
var
selectedTypes
:
[
YHIncomeType
]
=
[]
init
(
selectedTypes
:
[
YHIncomeType
])
{
self
.
selectedTypes
=
selectedTypes
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
...
...
@@ -98,7 +90,7 @@ class YHIncomeTypeSelectViewController: YHBaseViewController {
}
@objc
private
func
clickSureButton
()
{
sureButtonEvent
?(
selectedTypes
)
sureButtonEvent
?(
selectedTypes
.
sorted
(
by
:
{
$0
.
rawValue
<
$1
.
rawValue
})
)
dismiss
(
animated
:
true
)
}
...
...
@@ -162,7 +154,7 @@ class YHIncomeTypeSelectViewController: YHBaseViewController {
guard
let
self
=
self
else
{
return
}
if
self
.
selectedTypes
.
contains
(
model
.
t
itl
e
)
{
if
self
.
selectedTypes
.
contains
(
model
.
t
yp
e
)
{
model
.
isSelected
=
true
}
}
...
...
@@ -187,7 +179,7 @@ extension YHIncomeTypeSelectViewController: UITableViewDelegate, UITableViewData
}
let
model
=
datas
[
indexPath
.
section
]
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHIncomeTypePopViewSelectCell
.
cellReuseIdentifier
)
as?
YHIncomeTypePopViewSelectCell
{
cell
.
setupCellInfo
(
title
:
model
.
t
itle
,
isSelected
:
model
.
isSelected
)
cell
.
setupCellInfo
(
title
:
model
.
t
ype
.
nameString
()
,
isSelected
:
model
.
isSelected
)
return
cell
}
return
UITableViewCell
()
...
...
@@ -221,12 +213,12 @@ extension YHIncomeTypeSelectViewController: UITableViewDelegate, UITableViewData
let
model
=
datas
[
indexPath
.
section
]
model
.
isSelected
.
toggle
()
if
model
.
isSelected
{
if
!
selectedTypes
.
contains
(
model
.
t
itl
e
)
{
selectedTypes
.
append
(
model
.
t
itl
e
)
if
!
selectedTypes
.
contains
(
model
.
t
yp
e
)
{
selectedTypes
.
append
(
model
.
t
yp
e
)
}
}
else
{
if
let
index
=
selectedTypes
.
firstIndex
(
where
:
{
t
itl
e
in
t
itle
==
model
.
titl
e
if
let
index
=
selectedTypes
.
firstIndex
(
where
:
{
t
yp
e
in
t
ype
==
model
.
typ
e
})
{
selectedTypes
.
remove
(
at
:
index
)
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeCompanyDetailModel.swift
0 → 100644
View file @
b6d94429
//
// YHIncomeCompanyDetailModel.swift
// galaxy
//
// Created by alexzzw on 2024/11/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
Foundation
import
SmartCodable
class
YHIncomeCompanyDetailModel
:
SmartCodable
{
var
company_name
:
String
=
""
var
income_money
:
Double
=
0
var
corporate_turnover
:
Double
=
0
var
income_type
:
[
Int
]
=
[]
var
template_id
:
[
Int
]
=
[]
var
has_all_file
:
Int
=
0
var
rate
:
Double
=
0
required
init
()
{
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeRecordCompleteModel.swift
0 → 100644
View file @
b6d94429
//
// YHIncomeRecordCompleteModel.swift
// galaxy
//
// Created by alexzzw on 2024/11/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
Foundation
import
SmartCodable
class
YHIncomeRecordCompleteModel
:
SmartCodable
{
var
income_over_100
:
Int
=
-
1
var
rate
:
Double
=
0
var
list
:
[
YHIncomeRecordListModel
]
=
[]
required
init
()
{
}
}
class
YHIncomeRecordListModel
:
SmartCodable
{
var
income_id
:
Int
=
0
var
company_name
:
String
=
""
var
income_money
:
Double
=
0
var
fill_status
:
Bool
=
false
var
unfilled_count
:
Int
=
0
required
init
()
{
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeRecordUtilType.swift
0 → 100644
View file @
b6d94429
//
// YHIncomeRecordUtilType.swift
// galaxy
//
// Created by alexzzw on 2024/11/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
enum
YHIncomeRecordHasAllFile
:
Int
{
case
unknown
=
0
case
`
true
`
=
1
case
`
false
`
=
2
}
enum
YHIncomeOver100
:
Int
{
case
`
true
`
=
1
case
`
false
`
=
2
}
enum
YHIncomeRecordUpdateType
:
Int
{
case
save
=
1
case
submit
=
2
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeType.swift
0 → 100644
View file @
b6d94429
//
// YHIncomeType.swift
// galaxy
//
// Created by alexzzw on 2024/11/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
Foundation
enum
YHIncomeType
:
Int
,
CaseIterable
{
case
incomeOfMainland
=
1
case
incomeOfHKCompanies
=
2
case
incomeOfMacauCompanies
=
3
case
stockOrEquityIncome
=
4
case
salaryIncomeAndBonus
=
5
case
dividendIncome
=
6
case
equityTransferIncome
=
7
case
businessIncome
=
8
case
incomeOfOtherOverseasCompanies
=
9
static
func
defaultDocs
()
->
[
String
]
{
return
[
"纳税记录"
,
"纳税清单"
,
"工作证明"
]
}
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%及以上"
}
}
func
docsArray
()
->
[
String
]
{
switch
self
{
case
.
incomeOfMainland
:
return
[
"验资报告"
,
"审计报告"
,
"绝对实益拥有人声明书"
,
"企业所得税月(季)度预缴纳税申报表(A类)(前4个季度/前12个月)"
,
"企业所得税完税证明(表格式)"
,
"企业所得税年度纳税申报表(A类)(近一年度)"
]
case
.
incomeOfHKCompanies
:
return
[
"周年申报表"
,
"审计报告"
,
"利得税申请表"
,
"利得税缴纳通知书"
,
"缴税凭证"
,
"绝对实益拥有人声明书"
,
"工作签证"
,
"工作证明"
]
case
.
incomeOfMacauCompanies
:
return
[
"商业登记证明"
,
"审计报告"
,
"所得补充税B组──收益申报书(M1)"
,
"所得补充税—收益评定通知书(M5)"
,
"缴税凭证"
,
"绝对实益拥有人声明书"
,
"工作签证"
,
"工作证明"
]
case
.
stockOrEquityIncome
:
return
[
"纳税记录"
,
"纳税清单"
,
"股票或期权的发放证明(能看到个人的发放股数和每股价值)"
,
"工作证明"
]
case
.
salaryIncomeAndBonus
:
return
[
"纳税记录"
,
"纳税清单"
,
"工作证明"
]
case
.
dividendIncome
:
return
[
"纳税记录"
,
"纳税清单"
,
"持股证明"
,
"股东分红决议"
,
"分红入账记录(银行回单)"
,
"工作证明(持股公司开具)"
]
case
.
equityTransferIncome
:
return
[
"纳税记录"
,
"纳税清单"
,
"股权转让相关入账记录(银行回单)"
,
"股权转让协议"
,
"股权交割证明&股权变更登记表(显示公司股权占比更改)"
,
"完税证明(表格式)"
,
"工作证明"
]
case
.
businessIncome
:
return
[
"纳税记录"
,
"纳税清单"
,
"个人所得税经营所得纳税申报表(A表)(前4个季度/前12个月)"
,
"个人所得税经营所得纳税申报表(A表&B表)(最新年度)"
,
"个人所得税经营所得纳税申报表(C表)"
,
"工作证明"
]
case
.
incomeOfOtherOverseasCompanies
:
return
[
"财务报表"
,
"合法纳税及完税证明"
,
"公司所有权官方证明文件"
]
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/M/YHIncomeTypeSelectModel.swift
View file @
b6d94429
...
...
@@ -9,11 +9,11 @@
import
UIKit
class
YHIncomeTypeSelectModel
:
NSObject
{
var
title
:
String
=
""
var
isSelected
:
Bool
=
false
var
type
:
YHIncomeType
=
.
businessIncome
init
(
t
itle
:
String
,
isSelected
:
Bool
)
{
self
.
t
itle
=
titl
e
init
(
t
ype
:
YHIncomeType
,
isSelected
:
Bool
)
{
self
.
t
ype
=
typ
e
self
.
isSelected
=
isSelected
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeRecordSummaryCell.swift
View file @
b6d94429
...
...
@@ -50,7 +50,8 @@ class YHIncomeRecordSummaryCell: YHResignDocumentCell {
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
_
isEditing
:
Bool
,
_
isEditEnable
:
Bool
,
showRightButton
:
Bool
)
{
func
setupCellInfo
(
_
isEditing
:
Bool
,
_
isEditEnable
:
Bool
,
showRightButton
:
Bool
,
showBottomLine
:
Bool
=
true
)
{
bottomLineView
.
isHidden
=
!
showBottomLine
rightButton
.
isHidden
=
!
showRightButton
rightButton
.
isEnabled
=
isEditEnable
updateRightButtonState
(
isEditing
)
...
...
@@ -100,8 +101,8 @@ extension YHIncomeRecordSummaryCell {
bottomLineView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
left
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
infoDetailLabel
.
snp
.
bottom
)
.
offset
(
16
)
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHIncomeTypesCell.swift
View file @
b6d94429
...
...
@@ -51,6 +51,8 @@ class YHIncomeTypesCell: YHResignDocumentCell {
return
}
let
typeView
=
YHIncomeTypeView
()
typeView
.
clipsToBounds
=
true
typeView
.
layer
.
cornerRadius
=
3
typeView
.
setupInfo
(
title
)
typeView
.
closeButtonEvent
=
{
[
weak
self
]
in
guard
let
self
=
self
else
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/V/YHInfoConsentForHKTravelCell.swift
View file @
b6d94429
...
...
@@ -95,7 +95,8 @@ class YHInfoConsentForHKTravelCell: YHResignDocumentCell {
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setupCellInfo
(
title
:
String
,
detail
:
ASAttributedString
,
question
:
String
)
{
func
setupCellInfo
(
title
:
String
,
detail
:
ASAttributedString
,
question
:
String
,
showBottomLine
:
Bool
=
false
)
{
bottomLineView
.
isHidden
=
!
showBottomLine
infoTitleLabel
.
text
=
title
infoDetailLabel
.
attributed
.
text
=
detail
infoQuestionLabel
.
text
=
question
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/IncomeRecord(收入记录)/VM/YHIncomeRecordViewModel.swift
0 → 100644
View file @
b6d94429
//
// YHIncomeRecordViewModel.swift
// galaxy
//
// Created by alexzzw on 2024/11/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHIncomeRecordViewModel
:
YHBaseViewModel
{
func
getIncomeList
(
orderId
:
Int
,
callback
:
@escaping
(
_
incomeModel
:
YHIncomeRecordCompleteModel
?,
_
error
:
YHErrorModel
?)
->
Void
)
{
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
IncomeRecord
.
incomeList
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
[
"order_id"
:
orderId
])
{
json
,
_
in
// 1. json字符串 转 对象
printLog
(
"model 是 ==>
\(
json
)
"
)
if
json
.
code
==
200
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
String
:
Any
],
let
resultModel
=
YHIncomeRecordCompleteModel
.
deserialize
(
from
:
dic
)
else
{
let
err
=
YHErrorModel
(
errorCode
:
YHErrorCode
.
dictParseError
.
rawValue
,
errorMsg
:
YHErrorCode
.
dictParseError
.
description
())
callback
(
nil
,
err
)
return
}
callback
(
resultModel
,
nil
)
}
else
{
let
err
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
.
isEmpty
?
""
:
json
.
msg
)
callback
(
nil
,
err
)
}
}
failBlock
:
{
err
in
callback
(
nil
,
err
)
}
}
func
getIncomeDetail
(
incomeId
:
Int
,
callback
:
@escaping
(
_
companyDetail
:
YHIncomeCompanyDetailModel
?,
_
error
:
YHErrorModel
?)
->
Void
)
{
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
IncomeRecord
.
incomeDetail
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
[
"income_id"
:
incomeId
])
{
json
,
_
in
// 1. json字符串 转 对象
printLog
(
"model 是 ==>
\(
json
)
"
)
if
json
.
code
==
200
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
String
:
Any
],
let
resultModel
=
YHIncomeCompanyDetailModel
.
deserialize
(
from
:
dic
)
else
{
let
err
=
YHErrorModel
(
errorCode
:
YHErrorCode
.
dictParseError
.
rawValue
,
errorMsg
:
YHErrorCode
.
dictParseError
.
description
())
callback
(
nil
,
err
)
return
}
callback
(
resultModel
,
nil
)
}
else
{
let
err
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
.
isEmpty
?
""
:
json
.
msg
)
callback
(
nil
,
err
)
}
}
failBlock
:
{
err
in
callback
(
nil
,
err
)
}
}
func
updateDetail
(
incomeId
:
Int
,
incomeMoney
:
Double
,
corporateTurnover
:
Double
,
incomeType
:
[
Int
],
hasAllFile
:
YHIncomeRecordHasAllFile
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
Void
)
{
let
params
:
[
String
:
Any
]
=
[
"income_id"
:
incomeId
,
"income_money"
:
incomeMoney
,
"corporate_turnover"
:
corporateTurnover
,
"income_type"
:
incomeType
,
"has_all_file"
:
hasAllFile
.
rawValue
]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
IncomeRecord
.
updateDetail
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
params
)
{
json
,
_
in
// 1. json字符串 转 对象
printLog
(
"model 是 ==>
\(
json
)
"
)
if
json
.
code
==
200
{
callBackBlock
(
true
,
nil
)
}
else
{
let
err
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
.
isEmpty
?
""
:
json
.
msg
)
callBackBlock
(
false
,
err
)
}
}
failBlock
:
{
err
in
callBackBlock
(
false
,
err
)
}
}
func
incomeUpdate
(
orderId
:
Int
,
incomeOver100
:
YHIncomeOver100
,
type
:
YHIncomeRecordUpdateType
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
Void
)
{
let
params
:
[
String
:
Any
]
=
[
"order_id"
:
orderId
,
"income_over_100"
:
incomeOver100
.
rawValue
,
"type"
:
type
.
rawValue
]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
IncomeRecord
.
incomeUpdate
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
params
)
{
json
,
_
in
// 1. json字符串 转 对象
printLog
(
"model 是 ==>
\(
json
)
"
)
if
json
.
code
==
200
{
callBackBlock
(
true
,
nil
)
}
else
{
let
err
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
.
isEmpty
?
""
:
json
.
msg
)
callBackBlock
(
false
,
err
)
}
}
failBlock
:
{
err
in
callBackBlock
(
false
,
err
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/C/YHImageResultViewController.swift
View file @
b6d94429
...
...
@@ -60,10 +60,6 @@ class YHImageResultViewController: YHBaseViewController {
if
controller
.
isKind
(
of
:
YHWorkExperienceViewController
.
self
)
{
targetVC
=
controller
}
if
controller
.
isKind
(
of
:
YHWorkIntroductionViewController
.
self
)
{
targetVC
=
controller
}
}
if
let
targetVC
=
targetVC
{
self
.
navigationController
?
.
popToViewController
(
targetVC
,
animated
:
true
)
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/C/YHWorkExperienceListViewController.swift
View file @
b6d94429
...
...
@@ -113,12 +113,17 @@ class YHWorkExperienceListViewController: YHBaseViewController {
return
}
}
viewModel
?
.
requestWorkTimeRemarkWorkExperience
(
"
\(
orderId
)
"
,
callBackBlock
:
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
})
viewModel
?
.
requestSaveAllWorkExperience
(
"
\(
orderId
)
"
,
callBackBlock
:
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
??
false
{
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
}
})
}
func
showDeleteAlert
(
_
model
:
YHWorkItemListModel
)
{
...
...
@@ -188,6 +193,15 @@ extension YHWorkExperienceListViewController: UITableViewDelegate, UITableViewDa
return
cell
}
else
if
indexPath
.
row
==
2
{
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHWorkExperienceListReasonTableViewCell
.
self
)
cell
.
model
=
viewModel
?
.
mainModel
cell
.
clickBlock
=
{
[
weak
self
]
value
,
index
in
guard
let
self
=
self
else
{
return
}
if
index
==
0
{
self
.
viewModel
?
.
mainModel
.
work_time_empty_remark
=
value
}
else
{
self
.
viewModel
?
.
mainModel
.
work_time_overlap_remark
=
value
}
}
cell
.
backgroundColor
=
.
clear
cell
.
contentView
.
backgroundColor
=
.
clear
return
cell
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/C/YHWorkExperienceViewController.swift
View file @
b6d94429
...
...
@@ -25,6 +25,7 @@ class YHWorkExperienceViewController: YHBaseViewController {
var
isShowMessageSelect
:
Bool
=
true
var
isKeyboardShow
:
Bool
=
false
var
selectEditItem
=
YHWorkExperienceFileModel
()
var
fileMessageArray
:
[
String
]
=
[
"签字盖章的推荐信"
,
"盖章的工作证明+签字的推荐信"
,
"其他证明(退工单或合同+社保等证明)"
,
"以上均不能提供"
]
var
renameInputView
:
YHFileRenameInputView
=
{
let
view
=
YHFileRenameInputView
.
inputView
(
defalutText
:
"请输入名称"
)
return
view
...
...
@@ -103,13 +104,13 @@ class YHWorkExperienceViewController: YHBaseViewController {
viewModel
.
requestWorkExample
{
success
,
error
in
}
viewModel
.
requestWorkDetail
(
workExperienceID
??
""
)
{[
weak
self
]
success
,
error
in
viewModel
.
requestWorkDetail
(
"
\(
orderID
)
"
,
workExperienceID
??
""
)
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
self
.
stepView
.
currentIndex
=
self
.
viewModel
.
mainModel
.
step
self
.
stepView
.
maxIndex
=
self
.
viewModel
.
mainModel
.
step
self
.
updateDataSource
()
self
.
stepView
.
dataSource
=
[
"基本信息"
,
"工作职责"
,
"工作亮点"
,
"简历/工作总结"
]
self
.
viewModel
.
requestWorkInfoProject
(
"
\(
self
.
viewModel
.
mainModel
.
id
)
"
)
{[
weak
self
]
success
,
error
in
self
.
viewModel
.
requestWorkInfoProject
(
"
\(
self
.
viewModel
.
mainModel
.
word_id
)
"
)
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
self
.
introductionDataSource
=
success
self
.
fileDataSource
=
self
.
viewModel
.
mainModel
.
file
...
...
@@ -162,6 +163,9 @@ class YHWorkExperienceViewController: YHBaseViewController {
self
.
getTextWithType
(
type
:
3
)]
}
func
getSelectCompany
()
->
Int
{
return
fileMessageArray
.
firstIndex
(
where
:
{
$0
==
viewModel
.
mainModel
.
work_certificate
})
??
5
}
func
setView
()
{
stepView
=
{
...
...
@@ -673,21 +677,20 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
}
else
{
if
indexPath
.
row
==
0
{
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHWorkExperienceTableViewCell
.
self
)
cell
.
country
=
self
.
viewModel
.
mainModel
.
location
.
country
cell
.
selectDataSource
=
getTipsWithType
()
cell
.
selectItem
=
getSelectCompany
()
cell
.
dataSource
=
baseDataSource
?[
indexPath
.
row
]
cell
.
workExperienceBlock
=
{[
weak
self
]
model
in
guard
let
self
=
self
else
{
return
}
self
.
viewModel
.
updateModel
(
model
)
let
id
=
model
.
id
if
id
!=
.
id1
&&
id
!=
.
id3
&&
id
!=
.
id4
&&
id
!=
.
id7
&&
id
!=
.
id8
&&
id
!=
.
id12
&&
id
!=
.
id14
&&
id
!=
.
id16
&&
id
!=
.
id17
&&
id
!=
.
id18
{
if
id
!=
.
id1
{
self
.
updateDataSource
()
}
}
cell
.
companyBlock
=
{[
weak
self
]
company
in
cell
.
selectBlock
=
{[
weak
self
]
index
in
guard
let
self
=
self
else
{
return
}
self
.
viewModel
.
updateModel
(
company
)
self
.
updateDataSource
()
self
.
viewModel
.
mainModel
.
work_certificate
=
fileMessageArray
[
index
.
first
??
0
]
}
return
cell
}
else
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/C/YHWorkIntroductionViewController.swift
deleted
100644 → 0
View file @
369465a5
//
// YHWorkIntroductionViewController.swift
// galaxy
//
// Created by EDY on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHWorkIntroductionViewController
:
YHBaseViewController
{
typealias
SaveBlock
=
()
->
()
var
saveBlock
:
SaveBlock
?
var
nameTextField
:
UITextField
!
var
startTextField
:
UITextField
!
var
endTextField
:
UITextField
!
// var longTimeButton: UIButton!
var
messageTextField
:
UITextView
!
var
startButton
:
UIButton
!
var
endButton
:
UIButton
!
var
promptsLabel
:
UILabel
!
var
actionView
:
YHWorkActionView
!
var
bottomView
:
UIView
!
var
bottomButton
:
UIButton
!
var
viewModel
:
YHWorkIntroductionViewModel
!
var
workModel
:
YHWorkExperienceDetailModel
?
var
dataSource
:
YHWorkExperienceProjectModel
=
YHWorkExperienceProjectModel
()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
gk_navTitle
=
"工作经验信息填写"
gk_navBackgroundColor
=
.
white
gk_navBarAlpha
=
1.0
viewModel
=
YHWorkIntroductionViewModel
()
setView
()
getData
()
isShowPromptsLabel
()
// Do any additional setup after loading the view.
}
func
getData
()
{
viewModel
?
.
requestIntroducetionExample
(
callBackBlock
:
{
success
,
error
in
})
}
func
setView
()
{
view
.
backgroundColor
=
.
white
let
array
=
[
"项目名称"
,
"项目开始时间"
,
"项目结束时间"
,
"项目业绩/亮点"
]
for
i
in
0
..<
array
.
count
{
let
label
=
UILabel
()
label
.
textColor
=
UIColor
.
mainTextColor
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
label
.
text
=
array
[
i
]
view
.
addSubview
(
label
)
label
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
CGFloat
(
51
*
i
)
+
k_Height_NavigationtBarAndStatuBar
)
make
.
width
.
equalTo
(
100
)
make
.
height
.
equalTo
(
51
)
}
if
i
!=
array
.
count
-
1
{
let
line
=
UIView
()
line
.
backgroundColor
=
UIColor
.
separatorColor
view
.
addSubview
(
line
)
line
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
CGFloat
(
51
*
(
i
+
1
))
+
k_Height_NavigationtBarAndStatuBar
)
make
.
right
.
equalTo
(
-
18
)
make
.
height
.
equalTo
(
1
)
}
}
}
nameTextField
=
{
let
textField
=
UITextField
()
textField
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
textField
.
placeholder
=
"如方便提供,请填写"
textField
.
text
=
dataSource
.
project_name
textField
.
delegate
=
self
return
textField
}()
view
.
addSubview
(
nameTextField
)
nameTextField
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
18
)
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
left
.
equalTo
(
117
)
make
.
height
.
equalTo
(
51
)
}
startTextField
=
{
let
textField
=
UITextField
()
textField
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
textField
.
placeholder
=
"开始时间"
textField
.
isEnabled
=
false
textField
.
isUserInteractionEnabled
=
false
textField
.
text
=
dataSource
.
project_start_time
return
textField
}()
view
.
addSubview
(
startTextField
)
startTextField
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
+
52
)
make
.
left
.
equalTo
(
117
)
make
.
height
.
equalTo
(
51
)
make
.
right
.
equalTo
(
-
18
)
}
startButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
addTarget
(
self
,
action
:
#selector(
startClick
)
,
for
:
.
touchUpInside
)
return
button
}()
view
.
addSubview
(
startButton
)
startButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
+
52
)
make
.
left
.
equalTo
(
117
)
make
.
height
.
equalTo
(
51
)
make
.
right
.
equalTo
(
-
18
)
}
endTextField
=
{
let
textField
=
UITextField
()
textField
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
textField
.
placeholder
=
"结束时间"
textField
.
isEnabled
=
false
textField
.
isUserInteractionEnabled
=
false
if
dataSource
.
project_end_time
!=
"至今"
{
textField
.
text
=
dataSource
.
project_end_time
}
else
{
textField
.
text
=
""
}
return
textField
}()
view
.
addSubview
(
endTextField
)
endTextField
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
+
104
)
make
.
left
.
equalTo
(
117
)
make
.
height
.
equalTo
(
51
)
make
.
right
.
equalTo
(
-
18
)
}
endButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
addTarget
(
self
,
action
:
#selector(
endClick
)
,
for
:
.
touchUpInside
)
return
button
}()
view
.
addSubview
(
endButton
)
endButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
+
104
)
make
.
left
.
equalTo
(
117
)
make
.
height
.
equalTo
(
51
)
make
.
right
.
equalTo
(
-
18
)
}
// longTimeButton = {
// let button = UIButton(type: .custom)
// button.setImage(UIImage(named: "main_time_normal"), for: .normal)
// button.setImage(UIImage(named: "login_privacy_agree"), for: .selected)
// button.setTitleColor(UIColor.mainTextColor, for: .normal)
// button.setTitle("至今", for: .normal)
// button.titleLabel?.font = UIFont.PFSC_M(ofSize: 14)
// button.contentHorizontalAlignment = .right
// button.addTarget(self, action: #selector(longTimeButtonClick), for: .touchUpInside)
// if dataSource.project_end_time == "至今" {
// button.isSelected = true
// } else {
// button.isSelected = false
// }
// return button
// }()
// view.addSubview(longTimeButton)
// if dataSource.project_end_time != "至今" {
// longTimeButton.snp.makeConstraints { make in
// make.right.equalTo(-18)
// make.centerY.equalTo(endTextField.snp.centerY)
// make.height.equalTo(32)
// make.width.equalTo(43)
// }
endTextField
.
isHidden
=
false
endButton
.
isHidden
=
false
// }
// else {
// longTimeButton.snp.makeConstraints { make in
// make.left.equalTo(117)
// make.centerY.equalTo(endTextField.snp.centerY)
// make.height.equalTo(32)
// make.width.equalTo(43)
// }
// endTextField.isHidden = true
// endButton.isHidden = true
// }
// longTimeButton.iconInLeft(spacing: 3)
messageTextField
=
{
let
textField
=
UITextView
()
textField
.
backgroundColor
=
UIColor
.
contentBkgColor
textField
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
textField
.
layer
.
cornerRadius
=
kCornerRadius6
textField
.
delegate
=
self
textField
.
text
=
dataSource
.
project_highlights
return
textField
}()
view
.
addSubview
(
messageTextField
)
messageTextField
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
right
.
equalTo
(
-
18
)
make
.
top
.
equalTo
(
208
+
k_Height_NavigationtBarAndStatuBar
)
make
.
bottom
.
equalTo
(
-
k_Height_safeAreaInsetsBottom
()
-
124
)
}
promptsLabel
=
{
let
prompts
=
UILabel
()
prompts
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
prompts
.
textColor
=
UIColor
(
hex
:
0xc0c0c0
)
prompts
.
text
=
"在职期间负责的核心项目,如果负责过多个项目,请分段描述:
\n\n
例子:
\n\n
模式1、本人对XX项目展开深入研究,通过对XX方法/方式,研究出XX。此外,她还指出XX问题,反映了XX。XX的研究成果对XX产生了重要性,为XX领域/方面提供参考依据;
\n\n
模式2、本人在司参与了XX项目,该项目具有XX突出意义。在此项目中,XX是个难点,本人通过XX方法,实现了XX成果。在XX方面,本人通过XX方式,完成了XX工作。本人凭借在XX领域的丰富经验,推动项目在中国/海外市场取得XX成果。"
prompts
.
numberOfLines
=
0
return
prompts
}()
view
.
addSubview
(
promptsLabel
)
promptsLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
22
)
make
.
right
.
equalTo
(
-
22
)
make
.
top
.
equalTo
(
220
+
k_Height_NavigationtBarAndStatuBar
)
}
actionView
=
{
let
view
=
YHWorkActionView
()
view
.
exampleBlock
=
{[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
self
.
view
.
endEditing
(
true
)
let
mainVc
=
YHWorkExampleViewController
()
mainVc
.
dataSource
=
self
.
viewModel
?
.
introducetionExampleModels
mainVc
.
type
=
.
introduction
mainVc
.
exampleBlock
=
{[
weak
self
]
message
in
guard
let
self
=
self
else
{
return
}
self
.
dataSource
.
project_highlights
=
message
self
.
messageTextField
.
text
=
message
self
.
isShowPromptsLabel
()
}
let
vc
=
UINavigationController
(
rootVC
:
mainVc
)
vc
.
modalPresentationStyle
=
.
pageSheet
self
.
navigationController
?
.
present
(
vc
,
animated
:
true
)
}
view
.
photoBlock
=
{[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
self
.
view
.
endEditing
(
true
)
YHImagePickerView
.
show
()
{[
weak
self
]
image
in
guard
let
self
=
self
else
{
return
}
let
clipperVC
=
YHImageClipperViewController
()
clipperVC
.
setBaseImg
(
image
,
resultImgSize
:
CGSize
(
width
:
image
.
size
.
width
,
height
:
image
.
size
.
height
),
type
:
.
Stay
)
clipperVC
.
successClippedHandler
=
{[
weak
self
]
result
in
guard
let
self
=
self
else
{
return
}
self
.
dataSource
.
project_highlights
=
result
self
.
messageTextField
.
text
=
result
self
.
isShowPromptsLabel
()
}
self
.
navigationController
?
.
pushViewController
(
clipperVC
,
animated
:
true
)
}
}
return
view
}()
view
.
addSubview
(
actionView
)
actionView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
44
)
make
.
bottom
.
equalTo
(
-
k_Height_safeAreaInsetsBottom
()
-
64
)
}
bottomView
=
{
let
bottom
=
UIView
()
bottom
.
backgroundColor
=
.
white
return
bottom
}()
view
.
addSubview
(
bottomView
)
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalToSuperview
()
make
.
height
.
equalTo
(
k_Height_safeAreaInsetsBottom
()
+
64
)
}
bottomButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
UIColor
.
brandMainColor
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
16
)
button
.
contentHorizontalAlignment
=
.
center
button
.
setTitle
(
"保存"
,
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
(
hex
:
0xffffff
),
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
addTarget
(
self
,
action
:
#selector(
submit
)
,
for
:
.
touchUpInside
)
return
button
}()
bottomView
.
addSubview
(
bottomButton
)
bottomButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
8
)
make
.
height
.
equalTo
(
48
)
make
.
left
.
equalTo
(
16
)
}
}
// @objc func longTimeButtonClick() {
// longTimeButton.isSelected = !longTimeButton.isSelected
// if longTimeButton.isSelected {
// longTimeButton.snp.remakeConstraints { make in
// make.left.equalTo(117)
// make.centerY.equalTo(endTextField.snp.centerY)
// make.height.equalTo(32)
// make.width.equalTo(43)
// }
// endTextField.isHidden = true
// endButton.isHidden = true
// } else {
// longTimeButton.snp.remakeConstraints { make in
// make.right.equalTo(-18)
// make.centerY.equalTo(endTextField.snp.centerY)
// make.height.equalTo(32)
// make.width.equalTo(43)
// }
// endTextField.isHidden = false
// endButton.isHidden = false
// }
// }
@objc
func
submit
()
{
// if longTimeButton.isSelected {
// dataSource.project_end_time = "至今"
// }
guard
let
name
=
dataSource
.
project_name
,
name
.
count
!=
0
else
{
YHHUD
.
flash
(
message
:
"您还有信息未填写"
)
return
}
guard
let
_
=
dataSource
.
project_start_time
else
{
YHHUD
.
flash
(
message
:
"您还有信息未填写"
)
return
}
guard
let
_
=
dataSource
.
project_end_time
else
{
YHHUD
.
flash
(
message
:
"您还有信息未填写"
)
return
}
guard
let
_
=
dataSource
.
project_highlights
else
{
YHHUD
.
flash
(
message
:
"您还有信息未填写"
)
return
}
viewModel
?
.
saveWorkProjectDetail
(
workModel
??
YHWorkExperienceDetailModel
(),
projectModel
:
dataSource
,
callBackBlock
:
{[
weak
self
]
success
,
error
in
guard
let
self
=
self
else
{
return
}
if
success
{
if
let
block
=
self
.
saveBlock
{
block
()
}
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
}
else
{
YHHUD
.
flash
(
message
:
error
?
.
errorMsg
??
""
)
}
})
}
@objc
func
startClick
()
{
view
.
endEditing
(
true
)
YHDatePickView
.
show
(
type
:
.
yyyymmdd
,
title
:
"选择开始时间"
,
lastIsTaday
:
true
,
currentDay
:
dataSource
.
project_start_time
??
""
)
{
date
in
if
date
>
self
.
dataSource
.
project_end_time
??
""
&&
self
.
dataSource
.
project_end_time
?
.
count
??
0
>
0
&&
self
.
dataSource
.
project_end_time
!=
"至今"
{
YHHUD
.
flash
(
message
:
"开始时间不能晚于结束时间"
)
}
else
{
let
format
=
DateFormatter
()
format
.
dateFormat
=
"yyyy-MM-dd"
if
let
selectDate
=
format
.
date
(
from
:
date
)
{
let
selectTimeInterval
=
selectDate
.
timeIntervalSince1970
let
currentTimeInterval
=
Date
()
.
timeIntervalSince1970
if
selectTimeInterval
>
currentTimeInterval
{
YHHUD
.
flash
(
message
:
"开始时间不能晚于当前时间"
)
}
else
{
self
.
startTextField
.
text
=
date
self
.
dataSource
.
project_start_time
=
date
}
}
}
}
}
@objc
func
endClick
()
{
view
.
endEditing
(
true
)
YHDatePickView
.
show
(
type
:
.
yyyymmdd
,
title
:
"请选择结束时间"
,
lastIsTaday
:
true
,
currentDay
:
dataSource
.
project_end_time
??
""
)
{
date
in
if
date
<
self
.
dataSource
.
project_start_time
??
""
{
YHHUD
.
flash
(
message
:
"结束时间不能早于开始时间"
)
}
else
{
self
.
endTextField
.
text
=
date
self
.
dataSource
.
project_end_time
=
date
}
}
}
func
isShowPromptsLabel
()
{
if
messageTextField
.
text
.
count
!=
0
{
promptsLabel
.
isHidden
=
true
}
else
{
promptsLabel
.
isHidden
=
false
}
}
}
extension
YHWorkIntroductionViewController
:
UITextViewDelegate
{
func
textViewDidChange
(
_
textView
:
UITextView
)
{
self
.
dataSource
.
project_highlights
=
textView
.
text
if
textView
.
text
.
count
!=
0
{
promptsLabel
.
isHidden
=
true
}
else
{
promptsLabel
.
isHidden
=
false
}
}
func
textView
(
_
textView
:
UITextView
,
shouldChangeTextIn
range
:
NSRange
,
replacementText
text
:
String
)
->
Bool
{
let
newLength
=
(
textView
.
text
as
NSString
)
.
length
+
text
.
count
-
range
.
length
return
newLength
<=
2000
}
}
extension
YHWorkIntroductionViewController
:
UITextFieldDelegate
{
func
textFieldDidEndEditing
(
_
textField
:
UITextField
)
{
}
func
textField
(
_
textField
:
UITextField
,
shouldChangeCharactersIn
range
:
NSRange
,
replacementString
string
:
String
)
->
Bool
{
let
newText
=
(
textField
.
text
!
as
NSString
)
.
replacingCharacters
(
in
:
range
,
with
:
string
)
if
newText
.
count
>
15
{
return
false
}
dataSource
.
project_name
=
newText
return
true
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/Model/YHWorkExperienceDetailModel.swift
View file @
b6d94429
...
...
@@ -10,9 +10,12 @@ import Foundation
import
SmartCodable
class
YHWorkExperienceDetailModel
:
SmartCodable
{
var
id
:
Int
=
0
var
word_
id
:
Int
=
0
var
order_id
:
Int
=
0
var
company_name
:
String
=
""
var
professional_level
:
Int
=
0
var
work_certificate
:
String
=
""
var
is_famous_enterprise
:
Int
=
0
var
duty
:
String
=
""
var
entry_time
:
String
=
""
...
...
@@ -20,7 +23,6 @@ class YHWorkExperienceDetailModel: SmartCodable {
var
industry
:
String
=
""
var
location
:
YHAddressModel
=
YHAddressModel
()
var
location_aboard
:
Int
=
0
var
professional_level
:
Int
=
0
var
professional_other
:
String
=
""
var
position
:
String
=
""
var
remark
:
String
=
""
...
...
@@ -32,7 +34,6 @@ class YHWorkExperienceDetailModel: SmartCodable {
var
operator_name
:
String
=
""
var
operator_english_name
:
String
=
""
var
operator_id
:
Int
=
0
var
work_certificate
:
String
=
""
var
executives_certificate
:
String
=
""
var
is_executives
:
Int
=
0
var
wduty
:
String
=
""
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/Model/YHWorkExperienceModel.swift
View file @
b6d94429
...
...
@@ -19,6 +19,7 @@ enum YHWorkExperienceSelectType: Int {
case
structure
=
7
case
level
=
8
case
prove
=
9
case
company
=
10
}
enum
YHWorkExperienceID
:
Int
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/Model/YHWorkExperiencePositionModel.swift
0 → 100644
View file @
b6d94429
//
// YHWorkExperiencePositionModel.swift
// galaxy
//
// Created by EDY on 2024/11/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
SmartCodable
class
YHWorkExperiencePositionModel
:
SmartCodable
{
var
position_id
:
Int
=
0
var
order_id
:
Int
=
0
var
work_id
:
Int
=
0
var
position_name
:
String
=
""
var
wduty
:
String
=
""
var
entry_time
:
String
=
""
var
departure_time
:
String
=
""
var
experience_scope
:
String
=
""
var
experience_sub_scope
:
String
=
""
var
is_international_work_experience
:
Int
=
0
var
provide_certificate_type
:
Int
=
0
var
work_country
:
String
?
var
work_city
:
String
?
required
init
()
{
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/Model/YHWorkItemListModel.swift
View file @
b6d94429
...
...
@@ -11,6 +11,8 @@ import SmartCodable
class
YHWorkModel
:
SmartCodable
{
var
count
:
Int
?
var
work_time_overlap_remark
:
String
=
""
//重叠期
var
work_time_empty_remark
:
String
=
""
//空窗期
var
list
:
[
YHWorkItemListModel
]?
required
init
()
{
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHWorkExperienceCompanySelectView.swift
0 → 100644
View file @
b6d94429
//
// YHWorkExperienceCompanySelectIView.swift
// galaxy
//
// Created by EDY on 2024/11/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
AttributedString
class
YHWorkExperienceCompanySelectView
:
UIView
{
var
backDate
:
(([
YHWorkExperienceFileModel
])
->
Void
)?
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
closeButton
:
UIButton
!
var
sureButton
:
UIButton
!
var
tableView
:
UITableView
!
var
dataSource
:
[
YHWorkExperienceFileModel
]
=
[]
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
:
0x000000
,
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
(
724
)
}
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
()
}
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
)
}
tableView
=
{
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
tableView
.
estimatedSectionHeaderHeight
=
14
tableView
.
contentInsetAdjustmentBehavior
=
.
never
tableView
.
backgroundColor
=
.
contentBkgColor
tableView
.
separatorStyle
=
.
none
tableView
.
delegate
=
self
tableView
.
dataSource
=
self
tableView
.
register
(
cellWithClass
:
YHCompanySelectFileCell
.
self
)
tableView
.
register
(
cellWithClass
:
YHCompanyReasonFileCell
.
self
)
return
tableView
}()
centerView
.
addSubview
(
tableView
)
tableView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
53
)
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
(
kCornerRadius6
,
kCornerRadius6
))
let
layer
=
CAShapeLayer
()
layer
.
frame
=
centerView
.
bounds
layer
.
path
=
path
.
cgPath
centerView
.
layer
.
mask
=
layer
}
@objc
private
func
handleTap
(
_
sender
:
AnyObject
?)
{
dismiss
()
}
static
func
show
(
callBack
:
@escaping
(([
YHWorkExperienceFileModel
])
->
Void
))
{
let
view
=
YHWorkExperienceCompanySelectView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
KScreenHeight
))
view
.
backDate
=
callBack
let
window
=
UIApplication
.
shared
.
yhKeyWindow
()
window
?
.
addSubview
(
view
)
}
@objc
func
dismiss
()
{
removeFromSuperview
()
}
@objc
func
sure
()
{
if
let
block
=
backDate
{
// block(array)
}
dismiss
()
}
}
extension
YHWorkExperienceCompanySelectView
:
UIGestureRecognizerDelegate
{
func
gestureRecognizer
(
_
gestureRecognizer
:
UIGestureRecognizer
,
shouldReceive
touch
:
UITouch
)
->
Bool
{
if
touch
.
view
==
self
{
return
true
}
return
false
}
}
extension
YHWorkExperienceCompanySelectView
:
UITableViewDelegate
,
UITableViewDataSource
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
return
2
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
return
1
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
if
indexPath
.
section
==
1
{
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHCompanyReasonFileCell
.
self
)
cell
.
selectData
=
[]
return
cell
}
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHCompanySelectFileCell
.
self
)
cell
.
selectData
=
[]
return
cell
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
UITableView
.
automaticDimension
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
let
view
=
UIView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
14
))
return
view
}
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
return
14
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
heightForFooterInSection
section
:
Int
)
->
CGFloat
{
return
0.01
}
}
class
YHCompanySelectFileCell
:
UITableViewCell
{
typealias
SelectBlock
=
(
_
selectIndex
:
[
Int
])
->
()
var
selectBlock
:
SelectBlock
?
var
selectItem
:
[
Int
]
=
[]
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
subTitleLabel
:
UILabel
!
var
mainItemView
:
UIView
!
var
dataSource
:
[
String
]
=
[
"内地"
,
"香港"
,
"澳门"
,
"境外"
]
var
selectData
:
[
Int
]?
{
didSet
{
updateAllViews
()
}
}
var
messageDataSource
:
[
String
]
=
[
"公司是否为上市公司"
,
"您目前是否拥有此公司10%以上股权"
,
"您目前是否拥有此公司50%以上股权"
,
"公司全年盈利达港币 500 万元或以上(或等值外币)"
,
"请选择您的公司所在地:"
]
override
func
awakeFromNib
()
{
super
.
awakeFromNib
()
// Initialization code
}
override
func
setSelected
(
_
selected
:
Bool
,
animated
:
Bool
)
{
super
.
setSelected
(
selected
,
animated
:
animated
)
// Configure the view for the selected state
}
required
init
?(
coder
:
NSCoder
)
{
super
.
init
(
coder
:
coder
)
}
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
selectionStyle
=
.
none
setupUI
()
}
func
setupUI
()
{
backgroundColor
=
.
clear
centerView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
kCornerRadius6
return
view
}()
contentView
.
addSubview
(
centerView
)
centerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
top
.
bottom
.
equalToSuperview
()
}
titleLabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"主申请人公司"
return
label
}()
centerView
.
addSubview
(
titleLabel
)
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
16
)
make
.
height
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
18
)
}
// lineView = {
// let label = UIView()
// label.backgroundColor = UIColor.separatorColor
// return label
// }()
// centerView.addSubview(lineView)
// lineView.snp.makeConstraints { make in
// make.height.equalTo(1)
// make.top.equalTo(52)
// make.left.right.equalToSuperview()
// }
//
mainItemView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
centerView
.
addSubview
(
mainItemView
)
mainItemView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
52
)
}
}
func
updateAllViews
()
{
mainItemView
.
removeSubviews
()
for
j
in
0
..<
messageDataSource
.
count
{
let
lineView
=
{
let
label
=
UIView
()
label
.
backgroundColor
=
UIColor
.
separatorColor
return
label
}()
centerView
.
addSubview
(
lineView
)
lineView
.
snp
.
makeConstraints
{
make
in
make
.
height
.
equalTo
(
1
)
make
.
left
.
equalTo
(
18
)
make
.
right
.
equalTo
(
-
18
)
if
j
==
0
{
make
.
top
.
equalTo
(
52
)
}
else
{
let
view
=
mainItemView
.
viewWithTag
(
2000
+
j
-
1
)
make
.
top
.
equalTo
(
view
?
.
snp
.
bottom
??
mainItemView
.
snp
.
bottom
)
.
offset
(
15
)
}
}
let
titleLabel
=
{
let
label
=
UILabel
()
// label.attributed.text = dataSource?[i]
label
.
numberOfLines
=
0
let
str
=
"*"
+
messageDataSource
[
j
]
let
attributes
:
[
NSAttributedString
.
Key
:
Any
]
=
[
.
font
:
UIFont
.
PFSC_R
(
ofSize
:
14
),
.
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
label
.
tag
=
2000
+
j
return
label
}()
mainItemView
.
addSubview
(
titleLabel
)
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
lineView
.
snp
.
bottom
)
.
offset
(
15
)
make
.
left
.
equalTo
(
18
)
make
.
width
.
equalTo
(
106
)
if
j
==
4
{
make
.
width
.
equalTo
(
400
)
}
}
if
j
==
4
{
for
i
in
0
..<
dataSource
.
count
{
let
bgviewButton
=
{
let
view
=
UIButton
()
view
.
backgroundColor
=
UIColor
.
contentBkgColor
view
.
layer
.
cornerRadius
=
3
view
.
layer
.
borderColor
=
UIColor
.
brandMainColor
.
cgColor
view
.
addTarget
(
self
,
action
:
#selector(
agreeClick(sender:)
)
,
for
:
.
touchUpInside
)
view
.
tag
=
20000
+
i
return
view
}()
mainItemView
.
addSubview
(
bgviewButton
)
let
agreeButton
=
{
let
button
=
UIImageView
()
button
.
image
=
UIImage
(
named
:
"login_privacy_disagree_glay"
)
button
.
tag
=
10000
+
i
if
selectItem
.
contains
(
i
)
{
button
.
image
=
UIImage
(
named
:
"login_privacy_agree"
)
}
else
{
button
.
image
=
UIImage
(
named
:
"login_privacy_disagree_glay"
)
}
button
.
isUserInteractionEnabled
=
false
return
button
}()
mainItemView
.
addSubview
(
agreeButton
)
agreeButton
.
snp
.
makeConstraints
{
make
in
if
i
==
0
{
make
.
top
.
equalTo
(
titleLabel
.
snp
.
bottom
)
.
offset
(
32
)
}
else
{
let
view
=
mainItemView
.
viewWithTag
(
1000
+
i
-
1
)
make
.
top
.
equalTo
(
view
?
.
snp
.
bottom
??
mainItemView
.
snp
.
bottom
)
.
offset
(
48
)
}
make
.
left
.
equalTo
(
34
)
make
.
height
.
equalTo
(
13
)
make
.
width
.
equalTo
(
13
)
}
let
subTitleLabel
=
{
let
label
=
UILabel
()
label
.
text
=
dataSource
[
i
]
label
.
numberOfLines
=
0
label
.
tag
=
1000
+
i
label
.
textColor
=
UIColor
.
mainTextColor
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
label
.
isUserInteractionEnabled
=
false
return
label
}()
mainItemView
.
addSubview
(
subTitleLabel
)
subTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
agreeButton
.
snp
.
top
)
.
offset
(
-
3
)
make
.
left
.
equalTo
(
56
)
make
.
right
.
equalTo
(
-
35
)
if
i
==
(
dataSource
.
count
)
-
1
{
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
}
}
bgviewButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
subTitleLabel
.
snp
.
top
)
.
offset
(
-
16
)
make
.
bottom
.
equalTo
(
subTitleLabel
.
snp
.
bottom
)
.
offset
(
16
)
make
.
left
.
equalTo
(
18
)
make
.
right
.
equalTo
(
-
18
)
}
}
}
else
{
let
rightButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
UIColor
.
brandMainColor
.
withAlphaComponent
(
0.08
)
button
.
setTitleColor
(
UIColor
.
brandMainColor
,
for
:
.
selected
)
button
.
setTitleColor
(
UIColor
.
mainTextColor
,
for
:
.
normal
)
button
.
setTitle
(
"否"
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
16
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
13
)
button
.
addTarget
(
self
,
action
:
#selector(
rightClick(sender:)
)
,
for
:
.
touchUpInside
)
button
.
tag
=
3000
+
j
return
button
}()
addSubview
(
rightButton
)
rightButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
18
)
make
.
centerY
.
equalTo
(
titleLabel
.
snp
.
centerY
)
make
.
height
.
equalTo
(
32
)
make
.
width
.
equalTo
(
74
)
}
let
leftButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
UIColor
.
contentBkgColor
button
.
setTitleColor
(
UIColor
.
brandMainColor
,
for
:
.
selected
)
button
.
setTitleColor
(
UIColor
.
mainTextColor
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
16
button
.
setTitle
(
"是"
,
for
:
.
normal
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
13
)
button
.
addTarget
(
self
,
action
:
#selector(
leftClick(sender:)
)
,
for
:
.
touchUpInside
)
button
.
tag
=
4000
+
j
return
button
}()
addSubview
(
leftButton
)
leftButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
rightButton
.
snp
.
left
)
.
offset
(
-
12
)
make
.
centerY
.
equalTo
(
titleLabel
.
snp
.
centerY
)
make
.
height
.
equalTo
(
32
)
make
.
width
.
equalTo
(
74
)
}
}
}
}
@objc
func
agreeClick
(
sender
:
UIButton
)
{
sender
.
isSelected
=
!
sender
.
isSelected
if
sender
.
isSelected
{
sender
.
layer
.
borderWidth
=
1
sender
.
backgroundColor
=
UIColor
(
hex
:
0xebf0f9
)
selectItem
.
append
(
sender
.
tag
-
20000
)
let
view
=
mainItemView
.
viewWithTag
(
sender
.
tag
-
20000
+
10000
)
as!
UIImageView
view
.
image
=
UIImage
(
named
:
"login_privacy_agree"
)
}
else
{
sender
.
layer
.
borderWidth
=
0
sender
.
backgroundColor
=
UIColor
.
contentBkgColor
selectItem
.
removeAll
(
where
:
{
$0
==
sender
.
tag
-
20000
})
let
view
=
mainItemView
.
viewWithTag
(
sender
.
tag
-
20000
+
10000
)
as!
UIImageView
view
.
image
=
UIImage
(
named
:
"login_privacy_disagree_glay"
)
}
if
let
block
=
selectBlock
{
block
(
selectItem
)
}
}
@objc
func
leftClick
(
sender
:
UIButton
)
{
}
@objc
func
rightClick
(
sender
:
UIButton
)
{
}
}
class
YHCompanyReasonFileCell
:
UITableViewCell
{
typealias
SelectBlock
=
(
_
selectIndex
:
[
Int
])
->
()
var
selectBlock
:
SelectBlock
?
var
selectItem
:
[
Int
]
=
[]
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
subTitleLabel
:
UILabel
!
var
mainItemView
:
UIView
!
var
dataSource
:
[
String
]
=
[
"验资报告"
,
"审计报告"
,
"绝对实益拥有人声明书"
,
"企业所得税月(季)度预缴纳税申报表(A类)(前4个季度/前12个月)"
,
"企业所得税完税证明(表格式)"
,
"企业所得税年度纳税申报表(A类) (近一年度)"
,
"工作证明"
]
var
selectData
:
[
Int
]?
{
didSet
{
updateAllViews
()
}
}
var
messageDataSource
:
[
String
]
=
[
"您是否可以提供以下所有证明文件"
]
override
func
awakeFromNib
()
{
super
.
awakeFromNib
()
// Initialization code
}
override
func
setSelected
(
_
selected
:
Bool
,
animated
:
Bool
)
{
super
.
setSelected
(
selected
,
animated
:
animated
)
// Configure the view for the selected state
}
required
init
?(
coder
:
NSCoder
)
{
super
.
init
(
coder
:
coder
)
}
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
selectionStyle
=
.
none
setupUI
()
}
func
setupUI
()
{
backgroundColor
=
.
clear
centerView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
kCornerRadius6
return
view
}()
contentView
.
addSubview
(
centerView
)
centerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
top
.
bottom
.
equalToSuperview
()
}
titleLabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"证件提供确认"
return
label
}()
centerView
.
addSubview
(
titleLabel
)
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
16
)
make
.
height
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
18
)
}
mainItemView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
centerView
.
addSubview
(
mainItemView
)
mainItemView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
52
)
}
}
func
updateAllViews
()
{
mainItemView
.
removeSubviews
()
for
j
in
0
..<
messageDataSource
.
count
{
let
lineView
=
{
let
label
=
UIView
()
label
.
backgroundColor
=
UIColor
.
separatorColor
return
label
}()
centerView
.
addSubview
(
lineView
)
lineView
.
snp
.
makeConstraints
{
make
in
make
.
height
.
equalTo
(
1
)
make
.
left
.
right
.
equalToSuperview
()
if
j
==
0
{
make
.
top
.
equalTo
(
52
)
}
else
{
let
view
=
mainItemView
.
viewWithTag
(
2000
+
j
-
1
)
make
.
top
.
equalTo
(
view
?
.
snp
.
bottom
??
mainItemView
.
snp
.
bottom
)
.
offset
(
15
)
}
}
let
titleLabel
=
{
let
label
=
UILabel
()
// label.attributed.text = dataSource?[i]
label
.
numberOfLines
=
0
let
str
=
"*"
+
messageDataSource
[
j
]
let
attributes
:
[
NSAttributedString
.
Key
:
Any
]
=
[
.
font
:
UIFont
.
PFSC_R
(
ofSize
:
14
),
.
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
label
.
tag
=
2000
+
j
return
label
}()
mainItemView
.
addSubview
(
titleLabel
)
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
lineView
.
snp
.
bottom
)
.
offset
(
15
)
make
.
left
.
equalTo
(
18
)
make
.
width
.
equalTo
(
106
)
}
let
rightButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
UIColor
.
brandMainColor
.
withAlphaComponent
(
0.08
)
button
.
setTitleColor
(
UIColor
.
brandMainColor
,
for
:
.
selected
)
button
.
setTitleColor
(
UIColor
.
mainTextColor
,
for
:
.
normal
)
button
.
setTitle
(
"否"
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
16
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
13
)
button
.
addTarget
(
self
,
action
:
#selector(
rightClick(sender:)
)
,
for
:
.
touchUpInside
)
button
.
tag
=
3000
+
j
return
button
}()
addSubview
(
rightButton
)
rightButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
18
)
make
.
centerY
.
equalTo
(
titleLabel
.
snp
.
centerY
)
make
.
height
.
equalTo
(
32
)
make
.
width
.
equalTo
(
74
)
}
let
leftButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
UIColor
.
contentBkgColor
button
.
setTitleColor
(
UIColor
.
brandMainColor
,
for
:
.
selected
)
button
.
setTitleColor
(
UIColor
.
mainTextColor
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
16
button
.
setTitle
(
"是"
,
for
:
.
normal
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
13
)
button
.
addTarget
(
self
,
action
:
#selector(
leftClick(sender:)
)
,
for
:
.
touchUpInside
)
button
.
tag
=
4000
+
j
return
button
}()
addSubview
(
leftButton
)
leftButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
rightButton
.
snp
.
left
)
.
offset
(
-
12
)
make
.
centerY
.
equalTo
(
titleLabel
.
snp
.
centerY
)
make
.
height
.
equalTo
(
32
)
make
.
width
.
equalTo
(
74
)
}
let
bgviewButton
=
{
let
view
=
UIButton
()
view
.
backgroundColor
=
UIColor
.
contentBkgColor
view
.
layer
.
cornerRadius
=
3
view
.
layer
.
borderColor
=
UIColor
.
brandMainColor
.
cgColor
return
view
}()
mainItemView
.
addSubview
(
bgviewButton
)
for
i
in
0
..<
dataSource
.
count
{
let
agreeButton
=
{
let
button
=
UIView
()
button
.
tag
=
10000
+
i
button
.
backgroundColor
=
UIColor
(
hex
:
0xb3c8e9
)
return
button
}()
mainItemView
.
addSubview
(
agreeButton
)
agreeButton
.
snp
.
makeConstraints
{
make
in
if
i
==
0
{
make
.
top
.
equalTo
(
titleLabel
.
snp
.
bottom
)
.
offset
(
32
)
}
else
{
let
view
=
mainItemView
.
viewWithTag
(
1000
+
i
-
1
)
make
.
top
.
equalTo
(
view
?
.
snp
.
bottom
??
mainItemView
.
snp
.
bottom
)
.
offset
(
18
)
}
make
.
left
.
equalTo
(
34
)
make
.
height
.
equalTo
(
5
)
make
.
width
.
equalTo
(
5
)
}
let
subTitleLabel
=
{
let
label
=
UILabel
()
label
.
text
=
dataSource
[
i
]
label
.
numberOfLines
=
0
label
.
tag
=
1000
+
i
label
.
textColor
=
UIColor
.
mainTextColor
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
label
.
isUserInteractionEnabled
=
false
return
label
}()
mainItemView
.
addSubview
(
subTitleLabel
)
subTitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
agreeButton
.
snp
.
top
)
.
offset
(
-
3
)
make
.
left
.
equalTo
(
56
)
make
.
right
.
equalTo
(
-
35
)
if
i
==
(
dataSource
.
count
)
-
1
{
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
16
)
}
}
if
i
==
dataSource
.
count
-
1
{
bgviewButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
titleLabel
.
snp
.
bottom
)
.
offset
(
16
)
make
.
bottom
.
equalTo
(
subTitleLabel
.
snp
.
bottom
)
.
offset
(
16
)
make
.
left
.
equalTo
(
18
)
make
.
right
.
equalTo
(
-
18
)
}
}
}
}
}
@objc
func
agreeClick
(
sender
:
UIButton
)
{
sender
.
isSelected
=
!
sender
.
isSelected
if
sender
.
isSelected
{
sender
.
layer
.
borderWidth
=
1
sender
.
backgroundColor
=
UIColor
(
hex
:
0xebf0f9
)
selectItem
.
append
(
sender
.
tag
-
20000
)
let
view
=
mainItemView
.
viewWithTag
(
sender
.
tag
-
20000
+
10000
)
as!
UIImageView
view
.
image
=
UIImage
(
named
:
"login_privacy_agree"
)
}
else
{
sender
.
layer
.
borderWidth
=
0
sender
.
backgroundColor
=
UIColor
.
contentBkgColor
selectItem
.
removeAll
(
where
:
{
$0
==
sender
.
tag
-
20000
})
let
view
=
mainItemView
.
viewWithTag
(
sender
.
tag
-
20000
+
10000
)
as!
UIImageView
view
.
image
=
UIImage
(
named
:
"login_privacy_disagree_glay"
)
}
if
let
block
=
selectBlock
{
block
(
selectItem
)
}
}
@objc
func
leftClick
(
sender
:
UIButton
)
{
}
@objc
func
rightClick
(
sender
:
UIButton
)
{
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHWorkExperienceItemView.swift
View file @
b6d94429
...
...
@@ -247,6 +247,8 @@ class YHWorkExperienceItemView: UIView {
}
case
.
prove
:
break
case
.
company
:
break
}
}
nextStepImageView
.
isHidden
=
false
...
...
@@ -500,6 +502,10 @@ class YHWorkExperienceItemView: UIView {
block
(
self
.
dataSource
??
YHWorkExperienceModel
())
}
}
case
.
company
:
YHWorkExperienceCompanySelectView
.
show
{
array
in
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHWorkExperienceListReasonTableViewCell.swift
View file @
b6d94429
...
...
@@ -10,6 +10,8 @@ import UIKit
import
AttributedString
class
YHWorkExperienceListReasonTableViewCell
:
UITableViewCell
{
typealias
ExperienceListBlock
=
(
_
value
:
String
,
_
index
:
Int
)
->
()
var
clickBlock
:
ExperienceListBlock
?
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
lineView
:
UIView
!
...
...
@@ -24,6 +26,20 @@ class YHWorkExperienceListReasonTableViewCell: UITableViewCell {
var
promptsTwoLabel
:
UILabel
!
var
messageTwoNumberLabel
:
UILabel
!
var
model
:
YHWorkModel
?
{
didSet
{
messageTextField
.
text
=
model
?
.
work_time_empty_remark
if
messageTextField
.
text
.
count
!=
0
{
promptsLabel
.
isHidden
=
true
messageNumberLabel
.
text
=
"
\(
messageTextField
.
text
.
count
)
/1000"
}
messageTwoTextField
.
text
=
model
?
.
work_time_overlap_remark
if
messageTwoTextField
.
text
.
count
!=
0
{
promptsTwoLabel
.
isHidden
=
true
messageTwoNumberLabel
.
text
=
"
\(
messageTwoTextField
.
text
.
count
)
/1000"
}
}
}
override
func
awakeFromNib
()
{
super
.
awakeFromNib
()
// Initialization code
...
...
@@ -249,22 +265,30 @@ class YHWorkExperienceListReasonTableViewCell: UITableViewCell {
extension
YHWorkExperienceListReasonTableViewCell
:
UITextViewDelegate
{
func
textViewDidChange
(
_
textView
:
UITextView
)
{
let
number
=
textView
.
text
.
count
var
numberIndex
=
0
if
textView
.
text
.
count
!=
0
{
if
textView
==
messageTextField
{
promptsLabel
.
isHidden
=
true
messageNumberLabel
.
text
=
"
\(
number
)
/1000"
numberIndex
=
0
}
else
{
promptsTwoLabel
.
isHidden
=
true
messageTwoNumberLabel
.
text
=
"
\(
number
)
/1000"
numberIndex
=
1
}
}
else
{
if
textView
==
messageTextField
{
promptsLabel
.
isHidden
=
false
messageNumberLabel
.
text
=
"
\(
number
)
/1000"
numberIndex
=
0
}
else
{
promptsTwoLabel
.
isHidden
=
false
messageTwoNumberLabel
.
text
=
"
\(
number
)
/1000"
numberIndex
=
1
}
}
if
let
block
=
clickBlock
{
block
(
textView
.
text
,
numberIndex
)
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHWorkExperiencePositionTableViewCell.swift
View file @
b6d94429
...
...
@@ -69,7 +69,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell {
titleLabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
17
)
label
.
text
=
"
主申请人工作经历
"
label
.
text
=
"
职位信息
"
label
.
textColor
=
UIColor
.
mainTextColor
return
label
}()
...
...
@@ -84,7 +84,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell {
subTitleLabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
12
)
label
.
text
=
"(从
最近一份全职工作开始,直至毕业后的第一份工作
)"
label
.
text
=
"(从
该公司第一个职位开始, 直至最后一个职位
)"
label
.
textColor
=
UIColor
.
labelTextColor2
return
label
}()
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHWorkExperienceSelectView.swift
View file @
b6d94429
...
...
@@ -90,6 +90,13 @@ class YHWorkExperienceSelectView: UIView {
view
.
layer
.
borderColor
=
UIColor
.
brandMainColor
.
cgColor
view
.
addTarget
(
self
,
action
:
#selector(
agreeClick(sender:)
)
,
for
:
.
touchUpInside
)
view
.
tag
=
20000
+
i
if
selectItem
.
contains
(
i
)
{
view
.
layer
.
borderWidth
=
1
view
.
backgroundColor
=
UIColor
(
hex
:
0xebf0f9
)
}
else
{
view
.
layer
.
borderWidth
=
0
view
.
backgroundColor
=
UIColor
.
contentBkgColor
}
return
view
}()
mainItemView
.
addSubview
(
bgviewButton
)
...
...
@@ -145,19 +152,23 @@ class YHWorkExperienceSelectView: UIView {
}
@objc
func
agreeClick
(
sender
:
UIButton
)
{
sender
.
isSelected
=
!
sender
.
isSelected
if
sender
.
isSelected
{
sender
.
layer
.
borderWidth
=
1
sender
.
backgroundColor
=
UIColor
(
hex
:
0xebf0f9
)
selectItem
.
removeAll
()
selectItem
.
append
(
sender
.
tag
-
20000
)
let
view
=
mainItemView
.
viewWithTag
(
sender
.
tag
-
20000
+
10000
)
as!
UIImageView
view
.
image
=
UIImage
(
named
:
"login_privacy_agree"
)
sender
.
isSelected
=
!
sender
.
isSelected
for
i
in
0
..<
(
dataSource
?
.
count
??
0
)
{
if
i
==
sender
.
tag
-
20000
{
let
view
=
mainItemView
.
viewWithTag
(
i
+
20000
)
view
?
.
layer
.
borderWidth
=
1
view
?
.
backgroundColor
=
UIColor
(
hex
:
0xebf0f9
)
let
subview
=
mainItemView
.
viewWithTag
(
i
+
10000
)
as!
UIImageView
subview
.
image
=
UIImage
(
named
:
"login_privacy_agree"
)
}
else
{
sender
.
layer
.
borderWidth
=
0
sender
.
backgroundColor
=
UIColor
.
contentBkgColor
selectItem
.
removeAll
(
where
:
{
$0
==
sender
.
tag
-
20000
})
let
view
=
mainItemView
.
viewWithTag
(
sender
.
tag
-
20000
+
10000
)
as!
UIImageView
view
.
image
=
UIImage
(
named
:
"login_privacy_disagree_glay"
)
let
view
=
mainItemView
.
viewWithTag
(
i
+
20000
)
view
?
.
layer
.
borderWidth
=
0
view
?
.
backgroundColor
=
UIColor
.
contentBkgColor
let
subview
=
mainItemView
.
viewWithTag
(
i
+
10000
)
as!
UIImageView
subview
.
image
=
UIImage
(
named
:
"login_privacy_disagree_glay"
)
}
}
if
let
block
=
selectBlock
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/V/YHWorkExperienceTableViewCell.swift
View file @
b6d94429
...
...
@@ -12,12 +12,14 @@ import AttributedString
class
YHWorkExperienceTableViewCell
:
UITableViewCell
{
typealias
WorkExperienceBlock
=
(
_
model
:
YHWorkExperienceModel
)
->
()
typealias
CompanyBlock
=
(
_
model
:
YHCompanyModelListModel
)
->
()
typealias
SelectBlock
=
(
_
selectIndex
:
[
Int
])
->
()
var
companyBlock
:
CompanyBlock
?
var
workExperienceBlock
:
WorkExperienceBlock
?
var
selectBlock
:
SelectBlock
?
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
mainItemView
:
UIView
!
var
country
:
String
=
""
var
selectItem
:
Int
=
5
var
dataSource
:
YHSectionWorkExperienceModel
?{
didSet
{
updateAllViews
()
...
...
@@ -107,27 +109,17 @@ class YHWorkExperienceTableViewCell: UITableViewCell {
let
isShow
=
data
?
.
isShowPrompts
??
false
let
message
=
data
?
.
message
??
""
var
h
=
51
if
data
?
.
id
==
.
id13
{
h
=
71
}
if
isShow
&&
message
.
count
==
0
{
h
=
h
+
20
}
let
itemView
=
YHWorkExperienceItemView
()
itemView
.
dataSource
=
data
itemView
.
country
=
country
itemView
.
block
=
{[
weak
self
]
model
in
guard
let
self
=
self
else
{
return
}
if
let
block
=
self
.
workExperienceBlock
{
block
(
model
)
}
}
itemView
.
companyBlock
=
{[
weak
self
]
company
in
guard
let
self
=
self
else
{
return
}
if
let
block
=
self
.
companyBlock
{
block
(
company
)
}
}
mainItemView
.
addSubview
(
itemView
)
itemView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
...
...
@@ -138,14 +130,15 @@ class YHWorkExperienceTableViewCell: UITableViewCell {
y
=
y
+
h
if
i
==
1
{
let
view
=
YHWorkExperienceSelectView
(
frame
:
CGRect
(
x
:
0
,
y
:
y
,
width
:
Int
(
KScreenWidth
)
-
32
,
height
:
386
))
view
.
selectItem
=
[
selectItem
]
view
.
dataSource
=
selectDataSource
view
.
selectBlock
=
{
[
weak
self
]
index
in
guard
let
self
=
self
else
{
return
}
if
let
block
=
self
.
selectBlock
{
block
(
index
)
}
}
mainItemView
.
addSubview
(
view
)
// itemView.snp.makeConstraints { make in
// make.left.equalTo(18)
// make.top.equalTo(y)
// make.height.equalTo(386)
// make.right.equalTo(-18)
// }
y
=
y
+
386
}
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/ViewModel/YHWorkExperienceViewModel.swift
View file @
b6d94429
...
...
@@ -20,8 +20,8 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
func
getBaseDataSource
(
_
isShowPrompt
:
Bool
)
->
[
YHSectionWorkExperienceModel
]
{
let
item
=
YHWorkExperienceModel
(
id
:
.
id1
,
isNeed
:
true
,
title
:
"用人单位"
,
isUserKeyBoard
:
true
,
prompts
:
"请输入"
,
message
:
mainModel
.
company_name
,
isShowPrompts
:
isShowPrompt
,
alertMessage
:
"请输入"
)
let
item1
=
YHWorkExperienceModel
(
id
:
.
id2
,
isNeed
:
true
,
title
:
"公司基本情况"
,
isUserKeyBoard
:
false
,
prompts
:
"请选择"
,
message
:
mainModel
.
industry
,
type
:
.
nature
,
isShowPrompts
:
isShowPrompt
,
alertMessage
:
"请选择"
)
let
item2
=
YHWorkExperienceModel
(
id
:
.
id
19
,
isNeed
:
true
,
title
:
"职位水平类别"
,
isUserKeyBoard
:
false
,
prompts
:
"请选择"
,
message
:
"
\(
mainModel
.
professional_level
)
"
,
type
:
.
level
,
isShowPrompts
:
isShowPrompt
,
alertMessage
:
"请选择"
)
let
item1
=
YHWorkExperienceModel
(
id
:
.
id2
,
isNeed
:
true
,
title
:
"公司基本情况"
,
isUserKeyBoard
:
false
,
prompts
:
"请选择"
,
message
:
mainModel
.
industry
,
type
:
.
company
,
isShowPrompts
:
isShowPrompt
,
alertMessage
:
"请选择"
)
let
item2
=
YHWorkExperienceModel
(
id
:
.
id
3
,
isNeed
:
true
,
title
:
"职位水平类别"
,
isUserKeyBoard
:
false
,
prompts
:
"请选择"
,
message
:
"
\(
mainModel
.
professional_level
)
"
,
type
:
.
level
,
isShowPrompts
:
isShowPrompt
,
alertMessage
:
"请选择"
)
var
section
=
YHSectionWorkExperienceModel
()
section
=
YHSectionWorkExperienceModel
(
title
:
"企业信息"
,
models
:
[
item
,
item1
,
item2
])
return
[
section
]
...
...
@@ -35,115 +35,10 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
mainModel
.
company_name
=
item
.
message
??
""
case
.
id2
:
// 用人单位性质
mainModel
.
industry
=
item
.
message
??
""
case
.
id3
:
// 用人单位介绍
mainModel
.
company_introduce
=
item
.
message
??
""
case
.
id4
:
// 用人单位官网
mainModel
.
company_website
=
item
.
message
??
""
case
.
id5
:
// 工作地区国家
mainModel
.
location
.
country
=
item
.
message
??
""
case
.
id6
:
// 工作城市 国内
mainModel
.
location
.
area
=
item
.
value
??
[]
case
.
id7
:
// 工作城市国外
mainModel
.
location
.
foreign
=
item
.
message
??
""
case
.
id8
:
// 职位
mainModel
.
position
=
item
.
message
??
""
case
.
id9
:
// 入职年月
let
format
=
DateFormatter
()
format
.
dateFormat
=
"yyyy-MM"
if
let
selectDate
=
format
.
date
(
from
:
item
.
message
??
""
)
{
let
selectTimeInterval
=
selectDate
.
timeIntervalSince1970
let
currentTimeInterval
=
Date
()
.
timeIntervalSince1970
if
selectTimeInterval
>
currentTimeInterval
{
YHHUD
.
flash
(
message
:
"入职日期不能晚于当前日期"
)
}
else
{
guard
let
endDate
=
format
.
date
(
from
:
mainModel
.
departure_time
)
else
{
mainModel
.
entry_time
=
item
.
message
??
""
return
}
let
endTimeInterval
=
endDate
.
timeIntervalSince1970
if
selectTimeInterval
>
endTimeInterval
{
YHHUD
.
flash
(
message
:
"入职日期不能晚于离职日期"
)
}
else
{
mainModel
.
entry_time
=
item
.
message
??
""
}
}
}
case
.
id10
:
// 离职年月
let
format
=
DateFormatter
()
format
.
dateFormat
=
"yyyy-MM"
if
let
selectDate
=
format
.
date
(
from
:
item
.
message
??
""
),
let
startDate
=
format
.
date
(
from
:
mainModel
.
entry_time
)
{
let
selectTimeInterval
=
selectDate
.
timeIntervalSince1970
let
startTimeInterval
=
startDate
.
timeIntervalSince1970
if
selectTimeInterval
<
startTimeInterval
{
YHHUD
.
flash
(
message
:
"离职日期不能早于入职日期"
)
}
else
{
mainModel
.
departure_time
=
item
.
message
??
""
}
}
else
{
mainModel
.
departure_time
=
item
.
message
??
""
}
case
.
id11
:
// 工作证明文件
mainModel
.
work_certificate
=
item
.
message
??
""
case
.
id12
:
// 职责性质
mainModel
.
duty
=
item
.
message
??
""
case
.
id13
:
// 是否国际工作经验
mainModel
.
international_work_experience
=
Int
(
item
.
value
?
.
first
??
"0"
)
??
0
case
.
id14
:
// 企业人数规模
mainModel
.
company_member_total
=
Int
(
item
.
message
??
"0"
)
??
0
case
.
id15
:
// 行政架构层级
mainModel
.
administrative_level
=
Int
(
item
.
value
?
.
first
??
"0"
)
??
0
case
.
id16
:
// 下属管理人数
mainModel
.
company_manage_total
=
Int
(
item
.
message
??
"0"
)
??
0
case
.
id17
:
// 公司营业额/港元
mainModel
.
turnover
=
Int
(
item
.
message
??
"0"
)
??
0
case
.
id18
:
// 公司性质/范畴/所属行业
mainModel
.
business_nature
=
item
.
message
??
""
case
.
id19
:
// 职位水平类型
case
.
id3
:
// 职位水平类型
mainModel
.
professional_level
=
Int
(
item
.
value
?
.
first
??
"0"
)
??
0
case
.
id20
:
// 高管证明文件
mainModel
.
executives_certificate
=
item
.
message
??
""
case
.
id21
:
// 高管在职开始时间
let
format
=
DateFormatter
()
format
.
dateFormat
=
"yyyy-MM"
if
let
selectDate
=
format
.
date
(
from
:
item
.
message
??
""
)
{
let
selectTimeInterval
=
selectDate
.
timeIntervalSince1970
let
currentTimeInterval
=
Date
()
.
timeIntervalSince1970
if
selectTimeInterval
>
currentTimeInterval
{
YHHUD
.
flash
(
message
:
"高管在职开始时间不能晚于当前日期"
)
}
else
{
guard
let
endDate
=
format
.
date
(
from
:
mainModel
.
top_manager_end_at
)
else
{
mainModel
.
top_manager_start_at
=
item
.
message
??
""
return
default
:
break
}
let
endTimeInterval
=
endDate
.
timeIntervalSince1970
if
selectTimeInterval
>
endTimeInterval
{
YHHUD
.
flash
(
message
:
"高管在职开始时间不能晚于离职日期"
)
}
else
{
mainModel
.
top_manager_start_at
=
item
.
message
??
""
}
}
}
case
.
id22
:
// 高管在职结束时间
let
format
=
DateFormatter
()
format
.
dateFormat
=
"yyyy-MM"
if
let
selectDate
=
format
.
date
(
from
:
item
.
message
??
""
),
let
startDate
=
format
.
date
(
from
:
mainModel
.
top_manager_start_at
)
{
let
selectTimeInterval
=
selectDate
.
timeIntervalSince1970
let
startTimeInterval
=
startDate
.
timeIntervalSince1970
if
selectTimeInterval
<
startTimeInterval
{
YHHUD
.
flash
(
message
:
"高管在职结束时间不能早于开始日期"
)
}
else
{
mainModel
.
top_manager_end_at
=
item
.
message
??
""
}
}
else
{
mainModel
.
top_manager_end_at
=
item
.
message
??
""
}
}
}
func
updateModel
(
_
item
:
YHCompanyModelListModel
)
{
mainModel
.
company_name
=
item
.
company_name
??
""
mainModel
.
company_introduce
=
item
.
company_introduce
??
""
mainModel
.
company_website
=
item
.
company_link
??
""
}
func
updateWduty
(
_
value
:
String
)
{
...
...
@@ -180,10 +75,10 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
}
}
func
requestWorkDetail
(
_
workId
:
String
,
callBackBlock
:
@escaping
(
_
success
:
Bool
?,
_
error
:
YHErrorModel
?)
->
())
{
func
requestWorkDetail
(
_
orderId
:
String
,
_
workId
:
String
,
callBackBlock
:
@escaping
(
_
success
:
Bool
?,
_
error
:
YHErrorModel
?)
->
())
{
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.detail + "?id=\(workId)"
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
detail
let
param
:
[
String
:
Any
]
=
[
"
id"
:
work
Id
]
let
param
:
[
String
:
Any
]
=
[
"
work_id"
:
workId
,
"order_id"
:
order
Id
]
let
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
param
)
{
[
weak
self
]
json
,
code
in
//1. json字符串 转 对象
...
...
@@ -242,7 +137,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
"executives_certificate"
:
mainModel
.
executives_certificate
,
"file"
:
file
,
"highlights"
:
mainModel
.
highlights
,
"id"
:
mainModel
.
id
,
//
"id": mainModel.id,
"order_id"
:
orderID
,
"industry"
:
mainModel
.
industry
,
"international_work_experience"
:
mainModel
.
international_work_experience
,
...
...
@@ -282,7 +177,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
callBackBlock
(
false
,
nil
)
return
}
self
.
mainModel
.
id
=
result
.
id
//
self.mainModel.id = result.id
callBackBlock
(
true
,
nil
)
}
else
{
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/ViewModel/YHWorkIntroductionViewModel.swift
deleted
100644 → 0
View file @
369465a5
//
// YHWorkIntroductionViewModel.swift
// galaxy
//
// Created by EDY on 2024/2/21.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
Alamofire
class
YHWorkIntroductionViewModel
:
YHBaseViewModel
{
var
introducetionExampleModels
:
[
YHWorkExampleModel
]?
override
init
()
{
super
.
init
()
}
func
requestIntroducetionExample
(
callBackBlock
:
@escaping
(
_
success
:
Bool
?,
_
error
:
YHErrorModel
?)
->
())
{
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
projectExample
let
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
)
{
[
weak
self
]
json
,
code
in
//1. json字符串 转 对象
guard
let
self
=
self
else
{
return
}
if
json
.
code
==
200
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
Any
],
let
result
=
[
YHWorkExampleModel
]
.
deserialize
(
from
:
dic
)
else
{
callBackBlock
(
false
,
nil
)
return
}
self
.
introducetionExampleModels
=
result
as?
[
YHWorkExampleModel
]
callBackBlock
(
true
,
nil
)
}
else
{
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBackBlock
(
false
,
error
)
}
}
failBlock
:
{
err
in
callBackBlock
(
false
,
err
)
}
}
// 0保存 1下一步
func
saveWorkProjectDetail
(
_
workModel
:
YHWorkExperienceDetailModel
,
projectModel
:
YHWorkExperienceProjectModel
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
let
params
:
[
String
:
Any
]
=
[
"id"
:
projectModel
.
id
??
0
,
"order_id"
:
workModel
.
order_id
,
"work_id"
:
workModel
.
id
,
"project_name"
:
projectModel
.
project_name
??
""
,
"project_start_time"
:
projectModel
.
project_start_time
??
""
,
"project_end_time"
:
projectModel
.
project_end_time
??
""
,
"project_highlights"
:
projectModel
.
project_highlights
??
0
,
"create_from_appid"
:
projectModel
.
create_from_appid
??
2
,
"update_from_appid"
:
projectModel
.
create_from_appid
??
2
]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
saveProject
let
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
params
)
{
[
weak
self
]
json
,
code
in
guard
let
self
=
self
else
{
return
}
if
json
.
code
==
200
{
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
requestFileMessage
(
_
url
:
String
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
model
:
YHFileContent
?,
_
error
:
YHErrorModel
?)
->
())
{
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.ocrFileContent + "?file_url=\(url)"
let
strUrl
=
YHBaseUrlManager
.
shared
.
curOssURL
()
+
YHAllApiName
.
OCR
.
normal
let
param
:
[
String
:
Any
]
=
[
"url"
:
url
]
let
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
param
)
{
[
weak
self
]
json
,
code
in
//1. json字符串 转 对象
guard
let
self
=
self
else
{
return
}
if
json
.
code
==
200
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
String
:
Any
],
let
result
=
YHFileContent
.
deserialize
(
from
:
dic
)
else
{
callBackBlock
(
false
,
nil
,
nil
)
return
}
callBackBlock
(
true
,
result
,
nil
)
}
else
{
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBackBlock
(
false
,
nil
,
error
)
}
}
failBlock
:
{
err
in
callBackBlock
(
false
,
nil
,
err
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/ServiceProcess(我的信息流程)/WorkExperience(工作经验)/ViewModel/YHWorkItemListViewModel.swift
View file @
b6d94429
...
...
@@ -9,8 +9,8 @@
import
UIKit
class
YHWorkItemListViewModel
:
YHBaseViewModel
{
var
main
Model
:
[
YHWorkItemListModel
]?
var
mainModel
:
YHWorkModel
=
YHWorkModel
()
var
list
Model
:
[
YHWorkItemListModel
]?
override
init
()
{
super
.
init
()
...
...
@@ -29,8 +29,9 @@ class YHWorkItemListViewModel: YHBaseViewModel {
callBackBlock
([],
nil
)
return
}
self
.
mainModel
=
result
.
list
callBackBlock
(
self
.
mainModel
,
nil
)
self
.
mainModel
=
result
self
.
listModel
=
result
.
list
callBackBlock
(
self
.
listModel
,
nil
)
}
else
{
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBackBlock
([],
error
)
...
...
@@ -73,4 +74,23 @@ class YHWorkItemListViewModel: YHBaseViewModel {
callBackBlock
(
false
,
err
)
}
}
func
requestWorkTimeRemarkWorkExperience
(
_
orderId
:
String
,
callBackBlock
:
@escaping
(
_
success
:
Bool
?,
_
error
:
YHErrorModel
?)
->
())
{
let
params
:
[
String
:
Any
]
=
[
"order_id"
:
orderId
,
"work_time_overlap_remark"
:
self
.
mainModel
.
work_time_overlap_remark
,
"work_time_empty_remark"
:
self
.
mainModel
.
work_time_empty_remark
]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
WorkExperience
.
saveWorkTimeRemark
let
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
params
)
{
[
weak
self
]
json
,
code
in
//1. json字符串 转 对象
guard
let
self
=
self
else
{
return
}
if
json
.
code
==
200
{
callBackBlock
(
true
,
nil
)
}
else
{
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBackBlock
(
false
,
error
)
}
}
failBlock
:
{
err
in
callBackBlock
(
false
,
err
)
}
}
}
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
b6d94429
...
...
@@ -225,12 +225,13 @@ class YHAllApiName {
struct
WorkExperience
{
//工作经验列表
static
let
list
=
"infoflow/work/list"
static
let
list
=
"infoflow/work/
v1/
list"
//工作经验详情
static
let
detail
=
"infoflow/work/
d
etail"
static
let
detail
=
"infoflow/work/
v1/workD
etail"
//工作经验保存
static
let
save
=
"infoflow/work/save"
static
let
saveAll
=
"infoflow/work/save-all"
static
let
saveWorkTimeRemark
=
"infoflow/work/v1/saveWorkTimeRemark"
//公司列表
static
let
company
=
"infoflow/company/search"
//工作经历删除
...
...
@@ -631,4 +632,15 @@ class YHAllApiName {
static
let
result
=
"super-app/renewal/renewal-result"
}
struct
IncomeRecord
{
// 收入信息
static
let
incomeList
=
"infoflow/order/income/get-income-work-company-list"
// 公司收入详情
static
let
incomeDetail
=
"infoflow/order/income/detail"
// 收入信息编辑
static
let
updateDetail
=
"infoflow/order/income/update-detail"
// 收入情况保存和提交
static
let
incomeUpdate
=
"infoflow/order/income/update"
}
}
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