Commit 18173aff authored by Steven杜宇's avatar Steven杜宇

Merge branch 'qmas-1130' into AI-1212

parents 561d4e73 2b984c03
......@@ -284,6 +284,7 @@
044F396B2CBA7D3F007CA277 /* YHHKVisaRenewalPaymentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F396A2CBA7D3F007CA277 /* YHHKVisaRenewalPaymentViewModel.swift */; };
044F396D2CBA7FD1007CA277 /* YHHKVisaRenewalPaymentList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F396C2CBA7FD1007CA277 /* YHHKVisaRenewalPaymentList.swift */; };
04506F552C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */; };
04564D592CF470B2004456E4 /* YHIncomeRecordCompanyTipsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04564D582CF470B2004456E4 /* YHIncomeRecordCompanyTipsCell.swift */; };
0457920B2CBCE7B200EBD99B /* YHResignUploadTravelCardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0457920A2CBCE7B200EBD99B /* YHResignUploadTravelCardViewModel.swift */; };
0457920D2CBCE8A800EBD99B /* YHResignUploadTravelCardListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0457920C2CBCE8A800EBD99B /* YHResignUploadTravelCardListModel.swift */; };
0457920F2CBCE9D000EBD99B /* YHResignUploadTravelCardListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0457920E2CBCE9D000EBD99B /* YHResignUploadTravelCardListTableViewCell.swift */; };
......@@ -1322,6 +1323,7 @@
044F396A2CBA7D3F007CA277 /* YHHKVisaRenewalPaymentViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHKVisaRenewalPaymentViewModel.swift; sourceTree = "<group>"; };
044F396C2CBA7FD1007CA277 /* YHHKVisaRenewalPaymentList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHKVisaRenewalPaymentList.swift; sourceTree = "<group>"; };
04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyMemberInfoCell.swift; sourceTree = "<group>"; };
04564D582CF470B2004456E4 /* YHIncomeRecordCompanyTipsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHIncomeRecordCompanyTipsCell.swift; sourceTree = "<group>"; };
0457920A2CBCE7B200EBD99B /* YHResignUploadTravelCardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelCardViewModel.swift; sourceTree = "<group>"; };
0457920C2CBCE8A800EBD99B /* YHResignUploadTravelCardListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelCardListModel.swift; sourceTree = "<group>"; };
0457920E2CBCE9D000EBD99B /* YHResignUploadTravelCardListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelCardListTableViewCell.swift; sourceTree = "<group>"; };
......@@ -4119,6 +4121,7 @@
04B401E12CE746F4005C61A9 /* YHIncomeTypesCell.swift */,
04B401E32CE76B10005C61A9 /* YHIncomeInputMoneyCell.swift */,
04B401E52CE83C74005C61A9 /* YHIncomeRemarkCell.swift */,
04564D582CF470B2004456E4 /* YHIncomeRecordCompanyTipsCell.swift */,
04B401E72CE83FBD005C61A9 /* YHIncomeDocumentationConfirmationCell.swift */,
04B401C62CE6E6C8005C61A9 /* YHEmploymentVerificationAvailableCell.swift */,
04B401C72CE6E6C8005C61A9 /* YHIncomeItemOccupyingCell.swift */,
......@@ -6192,6 +6195,7 @@
047F3DEC2CE84BD5001B2A6D /* YHImproveRequireItemView.swift in Sources */,
0430E65A2C7436CD000511E2 /* YHAdopterNewPeopleViewModel.swift in Sources */,
04256E1D2C75C74200A37BA4 /* YHAppointHKResultModel.swift in Sources */,
04564D592CF470B2004456E4 /* YHIncomeRecordCompanyTipsCell.swift in Sources */,
047F3DE62CE83A0F001B2A6D /* YHHKRequiredItemView.swift in Sources */,
04CE1ADB2C2AD91F001CB80A /* YHActivityTitleItemView.swift in Sources */,
042B20E32CEC92C400655093 /* YHMajorNameCell.swift in Sources */,
......@@ -6767,11 +6771,9 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = galaxy/galaxyTestEnv.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7;
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
......@@ -6800,7 +6802,6 @@
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = com.dev.profile;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = TESTENV;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/$(TARGET_NAME)/Res/galaxy-Bridge-Header.h";
......@@ -6912,11 +6913,9 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = galaxy/galaxy.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7;
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
......@@ -6945,7 +6944,6 @@
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = com.dev.profile;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = UATENV;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/$(TARGET_NAME)/Res/galaxy-Bridge-Header.h";
......@@ -7120,11 +7118,9 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = galaxy/galaxyDebug.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7;
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
......@@ -7153,7 +7149,6 @@
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = com.dev.profile;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/$(TARGET_NAME)/Res/galaxy-Bridge-Header.h";
SWIFT_VERSION = 5.0;
......@@ -7170,11 +7165,9 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = galaxy/galaxy.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7;
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
......@@ -7203,7 +7196,6 @@
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = com.dev.profile;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/$(TARGET_NAME)/Res/galaxy-Bridge-Header.h";
SWIFT_VERSION = 5.0;
......
......@@ -21,8 +21,9 @@ class YHInformationPerfectListVC: YHBaseViewController {
submitBtn.isHidden = hasSubmitFlag
submitHoldView.isHidden = !hasSubmitFlag
if hasSubmitFlag == true {
if hasSubmitFlag {
headerTitleDesLable.text = "您已提交信息表"
myDeslable.text = "您已提交个人信息表,我的方案详情和个人信息表可点击底部按钮进行查看"
} else {
var name = ""
if let applicant = serviceCenterMainReqVM.informationFillStepModel {
......@@ -40,6 +41,7 @@ class YHInformationPerfectListVC: YHBaseViewController {
}
}
headerTitleDesLable.text = "您好," + name
myDeslable.text = "此表由主申请人填写,我们将会根据您的个人信息制作资料清单,请按顺序填写,提交后1-2个工作日内联系您哦~"
}
}
}
......@@ -90,7 +92,16 @@ class YHInformationPerfectListVC: YHBaseViewController {
return view
}()
var myDeslable : UILabel!
//提交按钮
var submitBtn: UIButton!
//提交按钮2
var submitBtn2: UIButton!
//我的方案
var mySchemeBtn : UIButton!
//信息预览
var preInforBtn : UIButton!
override func viewDidLoad() {
super.viewDidLoad()
......@@ -194,34 +205,58 @@ extension YHInformationPerfectListVC {
func loadData() {
guard let orderId = orderId else { return}
self.serviceCenterMainReqVM.getPersonInfoFillStep(params: ["orderId":orderId]) { success, error in
if success == true {
if success {
if self.serviceCenterMainReqVM.myInfoFillStep == 7 {
self.hasSubmitFlag = true
} else {
self.hasSubmitFlag = false
if self.serviceCenterMainReqVM.informationFillStepModel?.step == 6 {
self.submitBtn.layer.opacity = 1
self.submitBtn.isEnabled = true
let retValue = self.serviceCenterMainReqVM.informationFillStepModel?.policy_switch ?? false
if retValue {
self.hasSubmitFlag = true
self.submitBtn.isHidden = true
self.submitHoldView.isHidden = false
self.submitBtn2.isHidden = false
self.preInforBtn.isHidden = true
if self.serviceCenterMainReqVM.informationFillStepModel?.step == 6 {
//提交按钮可点击
self.submitBtn2.layer.opacity = 1
self.submitBtn2.isEnabled = true
} else {
//提交按钮不点击
self.submitBtn2.layer.opacity = 0.4
self.submitBtn2.isEnabled = false
}
} else {
self.submitBtn.layer.opacity = 0.4
self.submitBtn.isEnabled = false
self.hasSubmitFlag = false
self.submitBtn.isHidden = true
self.submitHoldView.isHidden = false
if self.serviceCenterMainReqVM.informationFillStepModel?.step == 6 {
self.submitBtn.layer.opacity = 1
self.submitBtn.isEnabled = true
} else {
self.submitBtn.layer.opacity = 0.4
self.submitBtn.isEnabled = false
}
}
}
// self.checkSubmitTips()
}
self.homeTableView.reloadData()
}
}
//我的评分 -> 我的方案
@objc func goScoreVC() {
// //我的评分
// let vc = YHScoreDetailViewController()
// vc.orderId = orderId
// vc.model = serviceCenterMainReqVM.allInfoScoreModel
// navigationController?.pushViewController(vc)
//我的方案
@objc func goMySchemeVC() {
YHMyNewSchemeViewController.shared.goToSchemePage()
}
......@@ -252,7 +287,7 @@ extension YHInformationPerfectListVC {
}
}
func submitAllInfo() {
@objc func submitAllInfo() {
guard let orderId = orderId else {
printLog("error: orderId 为空")
return
......@@ -271,7 +306,7 @@ extension YHInformationPerfectListVC {
//2、跳转其他界面
if agree == true {
self?.goScoreVC()
self?.goMySchemeVC()
}
}
//1、刷新当前界面
......@@ -335,8 +370,8 @@ extension YHInformationPerfectListVC {
make.height.equalTo(48)
}
//我的积分 -> 我的方案
let scoreButton = {
//我的方案
let mySchemeBtn = {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor(hex:0xffffff)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
......@@ -346,16 +381,17 @@ extension YHInformationPerfectListVC {
button.layer.cornerRadius = kCornerRadius3
button.layer.borderWidth = 1
button.layer.borderColor = UIColor.brandMainColor.cgColor
button.addTarget(self, action: #selector(goScoreVC), for: .touchUpInside)
button.addTarget(self, action: #selector(goMySchemeVC), for: .touchUpInside)
return button
}()
submitHoldView.addSubview(scoreButton)
scoreButton.snp.makeConstraints { make in
submitHoldView.addSubview(mySchemeBtn)
mySchemeBtn.snp.makeConstraints { make in
make.left.top.bottom.equalToSuperview()
make.right.equalTo(submitHoldView.snp.centerX).offset(-6)
}
self.mySchemeBtn = mySchemeBtn
let infoButton = {
let preInforBtn = {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor.brandMainColor
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
......@@ -367,13 +403,40 @@ extension YHInformationPerfectListVC {
button.addTarget(self, action: #selector(goInfoListVC), for: .touchUpInside)
return button
}()
submitHoldView.addSubview(infoButton)
infoButton.snp.makeConstraints { make in
self.preInforBtn = preInforBtn
submitHoldView.addSubview(preInforBtn)
preInforBtn.snp.makeConstraints { make in
make.right.top.bottom.equalToSuperview()
make.left.equalTo(submitHoldView.snp.centerX).offset(6)
}
preInforBtn.layoutIfNeeded()
preInforBtn.addYinHeGradualLayer()
let submitBtn2 = {
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(.white, for: .normal)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.addTarget(self, action: #selector(submitAllInfo), for: .touchUpInside)
button.isHidden = true
return button
}()
self.submitBtn2 = submitBtn2
submitHoldView.addSubview(submitBtn2)
submitBtn2.snp.makeConstraints { make in
make.right.top.bottom.equalToSuperview()
make.left.equalTo(submitHoldView.snp.centerX).offset(6)
}
infoButton.layoutIfNeeded()
infoButton.addYinHeGradualLayer()
submitBtn2.layoutIfNeeded()
submitBtn2.addYinHeGradualLayer()
homeTableView.delegate = self
homeTableView.dataSource = self
......@@ -397,6 +460,7 @@ extension YHInformationPerfectListVC {
desLable.numberOfLines = 0
desLable.textColor = UIColor.mainTextColor
desLable.lineBreakMode = .byWordWrapping
self.myDeslable = desLable
myHeadView.addSubview(desLable)
desLable.snp.makeConstraints { make in
......
......@@ -13,9 +13,10 @@ 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, _ incomeId: Int)
case incomeItem(_ isEditState: Bool = false, _ company: String, _ money: String, _ timeStr: String, _ incomeId: Int, _ showBottomLine: Bool)
case totalIncome(_ money: ASAttributedString)
case consentForHKTravel(_ title: String, _ detail: ASAttributedString, _ question: String)
case incomeCompanyTips(_ detail: String)
}
private lazy var datas: [[TableRow]] = []
......@@ -80,6 +81,7 @@ class YHIncomeRecordViewController: YHBaseViewController {
view.register(YHIncomeRecordItemCell.self, forCellReuseIdentifier: YHIncomeRecordItemCell.cellReuseIdentifier)
view.register(YHInfoConsentForHKTravelCell.self, forCellReuseIdentifier: YHInfoConsentForHKTravelCell.cellReuseIdentifier)
view.register(YHTotalIncomeCell.self, forCellReuseIdentifier: YHTotalIncomeCell.cellReuseIdentifier)
view.register(YHIncomeRecordCompanyTipsCell.self, forCellReuseIdentifier: YHIncomeRecordCompanyTipsCell.cellReuseIdentifier)
view.keyboardDismissMode = .onDrag
return view
}()
......@@ -173,13 +175,14 @@ extension YHIncomeRecordViewController {
}
let hkdFormatter = currencyFormat("")
var money: Double = 0
var secondSection: [TableRow] = [.incomeSummary(false, false)]
var secondSection: [TableRow] = [.incomeSummary(false, false), .incomeCompanyTips("备注:此处有收入记录的公司为近1年您工作的公司,若需修改公司名称需返回上一节点【工作经验】处修改")]
let rate = self.incomeModel.rate > 0 ? self.incomeModel.rate : 0.92
incomeModel.list.forEach { companyModel in
let listCount = incomeModel.list.count
incomeModel.list.enumerated().forEach { index, companyModel in
money += companyModel.income_money
let moneyStr = "约" + (hkdFormatter.string(from: NSNumber(value: companyModel.income_money / rate)) ?? "0") + "港币"
let moneyStr = companyModel.income_money == 0 ? "" : "约" + (hkdFormatter.string(from: NSNumber(value: companyModel.income_money / rate)) ?? "0") + "港币"
let timeStr: String = companyModel.fill_status ? "已填写" : "有\(companyModel.unfilled_count)项未填写"
let incomeItem: TableRow = .incomeItem(false, companyModel.company_name, moneyStr, timeStr, companyModel.income_id)
let incomeItem: TableRow = .incomeItem(false, companyModel.company_name, moneyStr, timeStr, companyModel.income_id, index != listCount - 1)
secondSection.append(incomeItem)
}
let totalNum = hkdFormatter.string(from: NSNumber(value: money / rate)) ?? "0"
......@@ -227,20 +230,23 @@ 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, _, showBottomLine):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHIncomeRecordItemCell.cellReuseIdentifier) as? YHIncomeRecordItemCell {
cell.setupCellInfo(title: company, detail: money, rightText: timeStr, isEditing: isEditState, showBottomLine: false)
cell.setupCellInfo(title: company, detail: money, rightText: timeStr, isEditing: isEditState, showBottomLine: showBottomLine)
return cell
}
case let .totalIncome(money):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHTotalIncomeCell.cellReuseIdentifier) as? YHTotalIncomeCell {
cell.setupCellInfo(detail: money)
cell.didClickInfoButton = { [weak self] in
cell.didClickInfoButton = { [weak self, weak cell] in
guard let self = self else {
return
}
guard let cell = cell else {
return
}
let rate = self.incomeModel.rate > 0 ? self.incomeModel.rate : 0.92
YHHUD.flash(message: "注:按1港币≈\(rate)人民币计算,实际金额按递交时入境处给出的汇率为准")
YHWholeScreenTipsView.show(type: .hkdToRmbRateTips("注:按1港币≈\(rate)人民币计算,实际金额按递交时入境处给出的汇率为准"), targetView: cell.infoButton)
}
return cell
}
......@@ -278,6 +284,11 @@ extension YHIncomeRecordViewController: UITableViewDelegate, UITableViewDataSour
return cell
}
case let .incomeCompanyTips(detail):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHIncomeRecordCompanyTipsCell.cellReuseIdentifier) as? YHIncomeRecordCompanyTipsCell {
cell.setupCellInfo(detail: detail)
return cell
}
}
return UITableViewCell()
}
......@@ -304,7 +315,7 @@ extension YHIncomeRecordViewController: UITableViewDelegate, UITableViewDataSour
return
}
let tableRow = sectionArr[indexPath.row]
if case let .incomeItem(_, _, _, _, incomeId) = tableRow {
if case let .incomeItem(_, _, _, _, incomeId, _) = tableRow {
let ctl = YHIncomeRecordWorkExperienceViewController(incomeId: incomeId)
ctl.submitSuccess = { [weak self] in
guard let self = self else {
......
......@@ -145,7 +145,7 @@ extension YHIncomeRecordWorkExperienceViewController {
}
private func setupUI() {
gk_navTitle = "工作经验信息填写"
gk_navTitle = "收入记录信息填写"
gk_navBarAlpha = 1.0
gk_navBackgroundColor = .white
......@@ -453,8 +453,8 @@ extension YHIncomeRecordWorkExperienceViewController: UITableViewDelegate, UITab
case let .documentComfirm(title, question, docs):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHIncomeDocumentationConfirmationCell.cellReuseIdentifier) as? YHIncomeDocumentationConfirmationCell {
hasAllFileIndexPath = indexPath
cell.setupCellInfo(title: title, question: question, documents: docs, needShowFailButton: !isHasAllFileOK)
cell.selectedSureButton = YHIncomeRecordHasAllFile(rawValue: companyModel.has_all_file) ?? .unknown
cell.setupCellInfo(title: title, question: question, documents: docs, needShowFailButton: !isHasAllFileOK)
cell.didSelectSureButton = { [weak self] flag in
guard let self = self else {
return
......@@ -559,6 +559,7 @@ extension YHIncomeRecordWorkExperienceViewController {
}
private func submitIncome(_ type: YHIncomeRecordUpdateType, complete: @escaping (Bool) -> Void) {
view.endEditing(true)
let msg = type == .save ? "保存中..." : "提交中..."
if type == .submit {
if checkInput() == false {
......
......@@ -56,7 +56,8 @@ enum YHIncomeType: Int, CaseIterable {
"绝对实益拥有人声明书",
"企业所得税月(季)度预缴纳税申报表(A类)(前4个季度/前12个月)",
"企业所得税完税证明(表格式)",
"企业所得税年度纳税申报表(A类)(近一年度)"]
"企业所得税年度纳税申报表(A类)(近一年度)",
"工作证明"]
case .incomeOfHKCompanies:
return ["周年申报表",
"审计报告",
......@@ -109,7 +110,9 @@ enum YHIncomeType: Int, CaseIterable {
case .incomeOfOtherOverseasCompanies:
return ["财务报表",
"合法纳税及完税证明",
"公司所有权官方证明文件"]
"公司所有权官方证明文件",
"工作签证",
"工作证明"]
}
}
......
......@@ -6,6 +6,7 @@
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import AttributedString
import UIKit
class YHIncomeDocumentationConfirmationCell: YHResignDocumentCell {
......@@ -82,6 +83,8 @@ class YHIncomeDocumentationConfirmationCell: YHResignDocumentCell {
label.font = .PFSC_R(ofSize: 12)
label.textColor = .failColor
label.text = "请选择"
label.numberOfLines = 0
label.lineBreakMode = .byCharWrapping
return label
}()
......@@ -135,8 +138,9 @@ class YHIncomeDocumentationConfirmationCell: YHResignDocumentCell {
extension YHIncomeDocumentationConfirmationCell {
private func updateFailLabel(_ needShowFailButton: Bool) {
if needShowFailButton {
if needShowFailButton || selectedSureButton == .false {
infoFailLabel.isHidden = false
infoFailLabel.attributed.text = selectedSureButton.selectedTips()
containerView.snp.remakeConstraints { make in
make.left.equalTo(infoTitleLabel.snp.left)
make.right.equalToSuperview().offset(-18)
......@@ -149,8 +153,10 @@ extension YHIncomeDocumentationConfirmationCell {
make.right.lessThanOrEqualToSuperview().offset(-18)
make.bottom.equalToSuperview().offset(-16)
}
} else {
infoFailLabel.isHidden = true
infoFailLabel.attributed.text = selectedSureButton.selectedTips()
containerView.snp.remakeConstraints { make in
make.left.equalTo(infoTitleLabel.snp.left)
make.right.equalToSuperview().offset(-18)
......@@ -336,3 +342,19 @@ class YHIncomeDocumentationView: UIView {
}
}
}
private extension YHIncomeRecordHasAllFile {
func selectedTips() -> ASAttributedString? {
switch self {
case .unknown:
return .init(string: "请选择", .font(UIFont.PFSC_R(ofSize: 12)), .foreground(UIColor.failColor))
case .true:
return nil
case .false:
let first: ASAttributedString = .init(string: "若不能提供以上证明材料,将导致您的该收入", .font(UIFont.PFSC_R(ofSize: 12)), .foreground(UIColor(hexString: "#8993A2") ?? .gray))
let second: ASAttributedString = .init(string: "不被认可不予加分", .font(UIFont.PFSC_R(ofSize: 12)), .foreground(UIColor.failColor))
let third: ASAttributedString = .init(string: ",请尽可能准备以上材料并修改此选项。", .font(UIFont.PFSC_R(ofSize: 12)), .foreground(UIColor(hexString: "#8993A2") ?? .gray))
return first + second + third
}
}
}
//
// YHIncomeRecordCompanyTipsCell.swift
// galaxy
//
// Created by alexzzw on 2024/11/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHIncomeRecordCompanyTipsCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHIncomeRecordCompanyTipsCell"
private lazy var infoDetailLabel: UILabel = {
let label = UILabel()
label.font = .PFSC_R(ofSize: 13)
label.textColor = UIColor(hexString: "#8993A2")
label.numberOfLines = 0
label.lineBreakMode = .byCharWrapping
return label
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setupCellInfo(detail: String) {
infoDetailLabel.text = detail
}
private func setupUI() {
updateCellCorner(.mid)
subContainerView.addSubview(infoDetailLabel)
infoDetailLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(18)
make.top.equalToSuperview().offset(16)
make.bottom.equalToSuperview()
make.right.lessThanOrEqualToSuperview().offset(-18)
}
}
}
......@@ -61,7 +61,7 @@ class YHIncomeRecordItemCell: YHResignDocumentCell {
fatalError("init(coder:) has not been implemented")
}
func setupCellInfo(title: String, detail: String, rightText: String, isEditing: Bool, showBottomLine: Bool) {
func setupCellInfo(title: String, detail: String, rightText: String, isEditing: Bool, showBottomLine: Bool, needHideDetail: Bool = false) {
infoTitleLabel.text = title
infoDetailLabel.text = detail
rightLabel.text = rightText
......@@ -70,7 +70,9 @@ class YHIncomeRecordItemCell: YHResignDocumentCell {
rightArrowIcon.isHidden = true
deleteButton.isHidden = true
bottomLineView.snp.remakeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.bottom.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(0.5)
make.top.equalTo(infoDetailLabel.snp.bottom).offset(16)
}
......@@ -79,7 +81,9 @@ class YHIncomeRecordItemCell: YHResignDocumentCell {
rightArrowIcon.isHidden = false
deleteButton.isHidden = true
bottomLineView.snp.remakeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.bottom.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(0.5)
make.top.equalTo(infoDetailLabel.snp.bottom).offset(16)
}
......@@ -140,7 +144,9 @@ extension YHIncomeRecordItemCell {
}
bottomLineView.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.bottom.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(0.5)
make.top.equalTo(infoDetailLabel.snp.bottom).offset(16)
}
......
......@@ -12,6 +12,12 @@ import UIKit
class YHTotalIncomeCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHTotalIncomeCell"
var didClickInfoButton: (() -> Void)?
private lazy var topLineView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(hexString: "#E9ECF0")
return view
}()
private lazy var infoTitleLabel: UILabel = {
let label = UILabel()
......@@ -29,10 +35,15 @@ class YHTotalIncomeCell: YHResignDocumentCell {
return label
}()
private lazy var infoButton: UIButton = {
lazy var infoButton: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "other_info_warning"), for: .normal)
button.addTarget(self, action: #selector(infoButtonDidClick(_:)), for: .touchUpInside)
let padding: CGFloat = 4
button.contentEdgeInsets = UIEdgeInsets(top: padding,
left: padding,
bottom: padding,
right: padding)
return button
}()
......@@ -57,12 +68,20 @@ extension YHTotalIncomeCell {
private func setupUI() {
updateCellCorner(.bottom)
subContainerView.addSubview(topLineView)
subContainerView.addSubview(infoTitleLabel)
subContainerView.addSubview(infoDetailLabel)
subContainerView.addSubview(infoButton)
infoTitleLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
infoButton.setContentCompressionResistancePriority(.required, for: .horizontal)
infoDetailLabel.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
topLineView.snp.makeConstraints { make in
make.left.equalToSuperview()
make.right.equalToSuperview()
make.height.equalTo(0.5)
make.top.equalToSuperview()
}
infoTitleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(18)
......@@ -71,9 +90,9 @@ extension YHTotalIncomeCell {
}
infoButton.snp.makeConstraints { make in
make.left.equalTo(infoTitleLabel.snp.right).offset(4)
make.left.equalTo(infoTitleLabel.snp.right)
make.centerY.equalTo(infoTitleLabel)
make.width.height.equalTo(16)
make.width.height.equalTo(24)
}
infoDetailLabel.snp.makeConstraints { make in
......
......@@ -36,7 +36,7 @@ class YHOtherInfoFillViewModel: YHBaseViewModel {
'child' => [
['id' => 99, "name" => "均不能提供", "select" => 0,],
['id' => 1, "name" => "母语(不用任何证明)", "select" => 0,],
['id' => 2, "name" => "雅思(ELTS)考试取得7.0或以上成绩的成绩单", "select" => 0,],
['id' => 2, "name" => "雅思(IELTS)考试取得7.0或以上成绩的成绩单", "select" => 0,],
['id' => 3, "name" => "托福(TOEFL)网上考试取得94分或以上成绩的成绩单", "select" => 0,],
['id' => 4, "name" => "全国大学英语六级考试(CET-6)取得520分或以上成绩的证书", "select" => 0,],
['id' => 5, "name" => "英语授课证明", "select" => 0,],
......@@ -88,7 +88,7 @@ class YHOtherInfoFillViewModel: YHBaseViewModel {
"highlight" : ""],
["id" : 4,
"name" : "其他证",
"name" : "其他证",
"select" : 0,
"subname" : "(仅可尝试加分,此类文件加分以港府审批为准)",
"highlight" : ""],
......@@ -113,7 +113,7 @@ class YHOtherInfoFillViewModel: YHBaseViewModel {
"highlight" : ""],
["id" : 2,
"name" : "雅思(ELTS)考试取得7.0或以上成绩的成绩单",
"name" : "雅思(IELTS)考试取得7.0或以上成绩的成绩单",
"select" : 0,
"subname" : "",
"highlight" : ""],
......@@ -187,15 +187,15 @@ class YHOtherInfoFillViewModel: YHBaseViewModel {
"highlight" : ""],
["id" : 4,
"name" : "其他证件",
"name" : "该语言相关专业学位证 、 毕业证、 学位认证报告",
"select" : 0,
"subname" : "该语言相关专业学位证 、 毕业证、 学位认证报告",
"subname" : "",
"highlight" : ""],
["id" : 5,
"name" : "其他证件",
"name" : "官方语言成绩单",
"select" : 0,
"subname" : "官方语言成绩单",
"subname" : "",
"highlight" : ""],
......
......@@ -970,13 +970,17 @@ private extension YHPreviewViewModel {
var findFirstFlag : Bool = false
for(i,t) in arrCompare.enumerated() {
for(_,t) in arrCompare.enumerated() {
if t.id == firstID {
firstName = t.name + (t.other_instructions.isEmpty ? "" : ("=" + t.other_instructions))
findFirstFlag = true
if t.id == 3 {
firstName = firstName + "-" + item.other_instructions
}
var findSecondFlag : Bool = false
for(ii,tt) in t.options.enumerated() {
for(_,tt) in t.options.enumerated() {
if tt.id == secondID {
secondName = tt.name
findSecondFlag = true
......
......@@ -82,7 +82,10 @@ class YHWorkExperienceListViewController: YHBaseViewController {
return
}
}
if (self.viewModel?.mainModel.has_work_time_empty == 1 && self.viewModel?.mainModel.work_time_empty_remark.count == 0) || (self.viewModel?.mainModel.has_work_time_overlap == 1 && self.viewModel?.mainModel.work_time_overlap_remark.count == 0){
YHHUD.flash(message: "您的工作经验未全部填写完成,请先填写完成再提交")
return
}
viewModel?.requestWorkTimeRemarkWorkExperience("\(orderId)", 1, callBackBlock: {[weak self] success, error in
guard let self = self else { return }
if success ?? false {
......
......@@ -421,32 +421,34 @@ class YHWorkExperienceViewController: YHBaseViewController {
@objc func nextStep() {
self.view.endEditing(true)
if self.viewModel.isCanNext(self.stepView.currentIndex) {
if self.stepView.currentIndex == 1 {
self.viewModel.saveWorkDuty(workId: workId) {[weak self] success, error in
guard let self = self else { return }
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
if self.viewModel.isCanNext(self.stepView.currentIndex) {
if self.stepView.currentIndex == 1 {
self.viewModel.saveWorkDuty(workId: self.workId) {[weak self] success, error in
guard let self = self else { return }
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
}
} else if self.stepView.currentIndex == 2 {
self.viewModel.saveWorkHighlights(workId: workId) {[weak self] success, error in
guard let self = self else { return }
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
} else if self.stepView.currentIndex == 2 {
self.viewModel.saveWorkHighlights(workId: self.workId) {[weak self] success, error in
guard let self = self else { return }
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
}
} else {
self.isShowPrompt = true
self.updateDataSource()
YHHUD.flash(message: "您还有信息未填写")
}
} else {
self.isShowPrompt = true
self.updateDataSource()
YHHUD.flash(message: "您还有信息未填写")
}
}
......
......@@ -184,6 +184,8 @@ class YHWorkExperienceListReasonTableViewCell: UITableViewCell {
promptsTwoLabel.isHidden = true
messageTwoNumberLabel.text = "\(messageTwoTextField.text.count)/1000"
}
self.setNeedsLayout()
self.layoutIfNeeded()
}
}
override func awakeFromNib() {
......
......@@ -63,7 +63,7 @@ class YHWorkExperiencePositionViewModel: YHBaseViewModel {
let selectTimeInterval = selectDate.timeIntervalSince1970
let currentTimeInterval = Date().timeIntervalSince1970
if selectTimeInterval > currentTimeInterval {
YHHUD.flash(message: "入职日期不能晚于当前日期")
YHHUD.flash(message: "开始就职年月不能晚于当前日期")
} else {
guard let endDate = format.date(from: position.departure_time) else {
position.entry_time = item.message ?? ""
......@@ -71,7 +71,7 @@ class YHWorkExperiencePositionViewModel: YHBaseViewModel {
}
let endTimeInterval = endDate.timeIntervalSince1970
if selectTimeInterval > endTimeInterval {
YHHUD.flash(message: "入职日期不能晚于离职日期")
YHHUD.flash(message: "开始就职年月不能晚于结束就职年月")
} else {
position.entry_time = item.message ?? ""
}
......@@ -84,7 +84,7 @@ class YHWorkExperiencePositionViewModel: YHBaseViewModel {
let selectTimeInterval = selectDate.timeIntervalSince1970
let startTimeInterval = startDate.timeIntervalSince1970
if selectTimeInterval < startTimeInterval {
YHHUD.flash(message: "离职日期不能早于入职日期")
YHHUD.flash(message: "结束就职年月不能早于开始就职年月")
} else {
position.departure_time = item.message ?? ""
}
......
......@@ -8,7 +8,7 @@
import UIKit
enum YHWholeScreenTipsViewType : Int {
enum YHWholeScreenTipsViewType {
case unKnow //默认情况
case residenceInfo //居住信息
case degreeType //学位类型
......@@ -26,6 +26,7 @@ enum YHWholeScreenTipsViewType : Int {
case hkPlanQ7 //赴港计划书问题7
case renewTimeTips //选择预约在港递交时间
case hkdToRmbRateTips(_ title: String) // 港元到人民币汇率换算
}
......@@ -113,6 +114,8 @@ class YHWholeScreenTipsView: UIView {
return ""
case .renewTimeTips:
return "入境处网址18:00之后可能会存在系统更新,为避免预约时间无法递交,请尽量选择18:00之前的时间"
case let .hkdToRmbRateTips(title):
return title
default:
return "--"
}
......@@ -148,7 +151,7 @@ class YHWholeScreenTipsView: UIView {
left = left - offset - 16
}
if curType == .renewTimeTips {
if case .renewTimeTips = curType {
//目标控件的上方
let otherTop = rrrrr.origin.y - 5
addSubview(fakeLine)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment