Commit f193870a authored by Steven杜宇's avatar Steven杜宇

// 覆盖优才文件夹

parent 8bb53f71
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -20,8 +20,8 @@ enum HKFormItemCellType: Int {
case degreeDetailInfo = 7
case onlyTwoChoice = 8
case question = 9
case educationCerUpload = 10
case cerConfirm = 11
case cerConfirm = 10
}
......
......@@ -70,8 +70,6 @@ enum YHFormTitleItemType:Int, CaseIterable {
case mainApplicantProfessionalQualification
// 学历证书姓名及出生日期正确性
case edutionalCertificateNameAndBirthday
// 学历证件(选填)
case educationCertificate
......@@ -194,6 +192,7 @@ enum YHFormDetailItemType:Int {
case educationCity
// 证件提供确认
case cerConfirm
// 证书信息
case certificateInfo
// 资格证书名称
......@@ -297,8 +296,7 @@ class YHFormTitleItem : YHFormItemProtocol {
return "主申请人专业资格及会员资格".local
case .edutionalCertificateNameAndBirthday:
return "学历证书姓名及出生日期正确性".local
case .educationCertificate:
return "学历证件(选填)".local
}
}
......@@ -318,8 +316,6 @@ class YHFormTitleItem : YHFormItemProtocol {
return "(如有,非必填)".local
case .edutionalCertificateNameAndBirthday:
return "".local
case .educationCertificate:
return "".local
case .isPreviousMarriageChild:
return "".local
case .accompany:
......@@ -532,6 +528,8 @@ class YHFormDetailItem : YHFormItemProtocol {
case .cerConfirm:
return "证件提供确认".local
}
}
func getSubTitle() -> String {
......
......@@ -203,34 +203,12 @@ class YHFormItemDoubleChoiceCell: UITableViewCell {
make.top.equalTo(titleLabel.snp.bottom)
make.bottom.equalToSuperview().offset(-16).priority(.medium)
}
setTips("", isShow: false)
}
func setTips(_ tips:String?, isShow:Bool) {
tipsLabel.text = tips
tipsLabel.isHidden = !isShow
if isShow {
tipsLabel.snp.remakeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.top.equalTo(titleLabel.snp.bottom)
make.bottom.equalToSuperview().offset(-16)
}
} else {
tipsLabel.snp.remakeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.top.equalTo(titleLabel.snp.bottom)
make.height.equalTo(0)
make.bottom.equalToSuperview().offset(-16)
}
}
self.setNeedsLayout()
self.layoutIfNeeded()
}
// 更新答案按钮选中状态
......
//
// YHIncomeRecordAndWorkExperienceVC.swift
// galaxy
//
// Created by alexzzw on 2024/11/13.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import IQKeyboardManagerSwift
import AttributedString
import UIKit
class YHIncomeRecordAndWorkExperienceVC: YHBaseViewController {
enum TableRow {
case incomeSummary(_ isEditing: Bool = false, _ isEditEnable: Bool = false)
case incomeItem(_ isEditState: Bool = false, _ company: String, _ money: String, _ timeStr: String)
case incomeOccupyingItem(_ title: String, _ detail: String)
case addItem
case totalImcome(_ money: ASAttributedString)
case consentForHKTravel(_ isSelectSureBtn: Bool = true)
case currentCompany(_ company: String?)
case timeHeader
case timeStatement(_ placeholder: String, _ remark: String?, _ detail: ASAttributedString)
}
private lazy var datas: [[TableRow]] = []
private lazy var saveButton: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 15)
button.setTitle("保存", for: .normal)
button.setTitle("保存", for: .highlighted)
button.setTitleColor(.mainTextColor, for: .normal)
button.setTitleColor(.mainTextColor, for: .highlighted)
button.addTarget(self, action: #selector(clickSaveButton), for: .touchUpInside)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.backgroundColor = .contentBkgColor
return button
}()
private lazy var submitButton: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 15)
button.setTitle("提交", for: .normal)
button.setTitle("提交", for: .highlighted)
button.setTitleColor(UIColor(hex: 0xFFFFFF), for: .normal)
button.setTitleColor(UIColor(hex: 0xFFFFFF), for: .highlighted)
button.addTarget(self, action: #selector(clickSubmitButton), for: .touchUpInside)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.backgroundColor = .brandMainColor
return button
}()
private lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
private lazy var tableView: UITableView = {
let view = UITableView(frame: .zero, style: .grouped)
view.estimatedSectionHeaderHeight = 16.0
view.estimatedSectionFooterHeight = 0.01
view.sectionHeaderHeight = 16.0
view.sectionFooterHeight = 0.01
view.contentInsetAdjustmentBehavior = .never
view.showsVerticalScrollIndicator = false
view.separatorStyle = .none
view.delegate = self
view.dataSource = self
view.backgroundColor = .clear
view.tableFooterView = UITableViewHeaderFooterView()
view.rowHeight = UITableView.automaticDimension
view.register(YHIncomeRecordSummaryCell.self, forCellReuseIdentifier: YHIncomeRecordSummaryCell.cellReuseIdentifier)
view.register(YHIncomeRecordItemCell.self, forCellReuseIdentifier: YHIncomeRecordItemCell.cellReuseIdentifier)
view.register(YHAddIncomeRecordCell.self, forCellReuseIdentifier: YHAddIncomeRecordCell.cellReuseIdentifier)
view.register(YHInfoConsentForHKTravelCell.self, forCellReuseIdentifier: YHInfoConsentForHKTravelCell.cellReuseIdentifier)
view.register(YHTotalIncomeCell.self, forCellReuseIdentifier: YHTotalIncomeCell.cellReuseIdentifier)
view.register(YHEmploymentVerificationAvailableCell.self, forCellReuseIdentifier: YHEmploymentVerificationAvailableCell.cellReuseIdentifier)
view.register(YHWorkingHoursStatementCell.self, forCellReuseIdentifier: YHWorkingHoursStatementCell.cellReuseIdentifier)
view.register(YHIncomeItemOccupyingCell.self, forCellReuseIdentifier: YHIncomeItemOccupyingCell.cellReuseIdentifier)
view.register(YHWorkingHourHeaderCell.self, forCellReuseIdentifier: YHWorkingHourHeaderCell.cellReuseIdentifier)
view.keyboardDismissMode = .onDrag
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
setupData()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
IQKeyboardManager.shared.isEnabled = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
IQKeyboardManager.shared.isEnabled = false
}
}
extension YHIncomeRecordAndWorkExperienceVC {
@objc private func clickSaveButton() {
//
}
@objc private func clickSubmitButton() {
//
}
private func setupUI() {
gk_navTitle = "收入记录/工作经验填写"
gk_navBarAlpha = 1.0
gk_navBackgroundColor = .white
view.backgroundColor = UIColor.contentBkgColor
view.addSubview(tableView)
view.addSubview(bottomView)
bottomView.addSubview(saveButton)
bottomView.addSubview(submitButton)
bottomView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalToSuperview()
make.top.equalTo(view.safeAreaLayoutGuide.snp.bottom).offset(-64)
}
saveButton.snp.makeConstraints { make in
make.left.equalToSuperview().offset(16)
make.top.equalToSuperview().offset(10)
make.height.equalTo(44)
make.width.equalTo(86)
}
submitButton.snp.makeConstraints { make in
make.left.equalTo(saveButton.snp.right).offset(10)
make.right.equalToSuperview().offset(-16)
make.top.equalToSuperview().offset(10)
make.height.equalTo(44)
}
tableView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(bottomView.snp.top)
}
tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 44))
}
private func setupData() {
let totalMoney: ASAttributedString = .init(string: "约", .font(.PFSC_R(ofSize: 14))) + .init(string: "1,351,517", .font(UIFont(name: "DINAlternate-Bold", size: 16) ?? UIFont.systemFont(ofSize: 16))) + .init(string: "港币", .font(.PFSC_R(ofSize: 14)))
let firstSection: [TableRow] = [.incomeSummary(false, false), .incomeItem(false, "华为有限公司", "约1,234,234港币", "2019.07-至今"), .incomeItem(false, "腾讯有限公司", "约1,234,234港币", "2015.07-2019.06"), .totalImcome(totalMoney), .addItem]
let secondSection: [TableRow] = [.timeHeader, .timeStatement("如:工作时间灵活,可自由安排", nil, getOverlappingTimeAttributedTips())]
let thirdSection: [TableRow] = [.consentForHKTravel(true), .currentCompany("华为科技有限公司")]
datas = [firstSection, secondSection, thirdSection]
tableView.reloadData()
}
private func getOverlappingTimeAttributedTips() -> ASAttributedString {
let starStr: ASAttributedString = .init(.image(UIImage(named: "gc_red_dot") ?? UIImage(), bounds: CGRect(x: 0, y: 0, width: 6, height: 6)))
let indentStr: ASAttributedString = .init(.image(UIImage(), bounds: CGRect(x: 0, y: 0, width: 5, height: 5)))
let firstStr: ASAttributedString = .init(string: "检测到您的", .font(UIFont.PFSC_R(ofSize: 13)), .foreground(UIColor(hexString: "#8993A2") ?? .gray))
let secondStr: ASAttributedString = .init(string: "工作时间有重叠", .font(UIFont.PFSC_B(ofSize: 13)), .foreground(UIColor.failColor))
let thirdStr: ASAttributedString = .init(string: "。请确认是否正确填报,若填报无误请在此处说明工作时间重叠的原因~", .font(UIFont.PFSC_R(ofSize: 13)), .foreground(UIColor(hexString: "#8993A2") ?? .gray))
let attributedText = (starStr + indentStr + firstStr + secondStr + thirdStr)
return attributedText
}
}
extension YHIncomeRecordAndWorkExperienceVC: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return datas.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
guard datas.count > section else {
return 0
}
let sectionArr = datas[section]
return sectionArr.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard datas.count > indexPath.section else {
return UITableViewCell()
}
let sectionArr = datas[indexPath.section]
guard sectionArr.count > indexPath.row else {
return UITableViewCell()
}
let tableRow = sectionArr[indexPath.row]
switch tableRow {
case let .incomeSummary(isEditState, isEditEnable):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHIncomeRecordSummaryCell.cellReuseIdentifier) as? YHIncomeRecordSummaryCell {
// cell.setupCellInfo(isEditState, isEditEnable)
return cell
}
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
}
case .addItem:
if let cell = tableView.dequeueReusableCell(withIdentifier: YHAddIncomeRecordCell.cellReuseIdentifier) as? YHAddIncomeRecordCell {
cell.addButtonClickEvent = {
//
}
return cell
}
case let .totalImcome(money):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHTotalIncomeCell.cellReuseIdentifier) as? YHTotalIncomeCell {
cell.setupCellInfo(detail: money)
cell.didClickInfoButton = {
YHHUD.flash(message: "注:按1港币≈0.92人民币计算,实际金额按递交时入境处给出的汇率为准")
}
return cell
}
case let .consentForHKTravel(isSelectSureBtn):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHInfoConsentForHKTravelCell.cellReuseIdentifier) as? YHInfoConsentForHKTravelCell {
// cell.textClicked = {
// //
// }
cell.didSelectSureButton = { _ in
//
}
// cell.selectedSureButton = isSelectSureBtn
return cell
}
case let .currentCompany(company):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHEmploymentVerificationAvailableCell.cellReuseIdentifier) as? YHEmploymentVerificationAvailableCell {
cell.setupCellInfo(detail: company)
return cell
}
case let .timeStatement(placeholder, remark, detail):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHWorkingHoursStatementCell.cellReuseIdentifier) as? YHWorkingHoursStatementCell {
cell.setupCellInfo(placeholder: placeholder, remark: remark, detail: detail, isShowBottomLine: false)
return cell
}
case let .incomeOccupyingItem(title, detail):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHIncomeItemOccupyingCell.cellReuseIdentifier) as? YHIncomeItemOccupyingCell {
cell.setupCellInfo(title: title, rightText: detail)
return cell
}
case .timeHeader:
if let cell = tableView.dequeueReusableCell(withIdentifier: YHWorkingHourHeaderCell.cellReuseIdentifier) as? YHWorkingHourHeaderCell {
return cell
}
}
return UITableViewCell()
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
//
}
}
......@@ -214,6 +214,7 @@ class YHOtherInfoFillViewModel: YHBaseViewModel {
]
],
]
}
extension YHOtherInfoFillViewModel {
......@@ -231,7 +232,7 @@ extension YHOtherInfoFillViewModel {
callBackBlock(false,nil)
return
}
// if resultModel.residences.isEmpty {
// resultModel.residences.append(Residence())
// }
......@@ -240,6 +241,7 @@ extension YHOtherInfoFillViewModel {
//根据返回值 组装 真实的数据
handleData()
callBackBlock(true,nil)
} else {
......@@ -277,7 +279,6 @@ extension YHOtherInfoFillViewModel {
extension YHOtherInfoFillViewModel {
func handleData() {
// if let language = self.otherInfoFillData?.language_detail {
// if language.level > 0 {
// let target = String(language.level)
......@@ -319,6 +320,7 @@ extension YHOtherInfoFillViewModel {
self.otherInfoFillData?.language_detail_new_data = []
}
if let profession = self.otherInfoFillData?.profession {
if profession.option > 0 {
let target = String(profession.option)
......
......@@ -42,7 +42,6 @@ class YHPreviewInfoNameAndSubNameItemView: UIView {
private func setupUI() {
addSubview(nameLable)
nameLable.snp.makeConstraints { make in
// make.top.equalToSuperview().offset(18)
make.top.equalToSuperview()
make.left.equalToSuperview()
......@@ -50,7 +49,8 @@ class YHPreviewInfoNameAndSubNameItemView: UIView {
// make.height.equalTo(20)
make.bottom.lessThanOrEqualToSuperview()
}
addSubview(subtitleLable)
subtitleLable.snp.makeConstraints { make in
make.top.equalTo(nameLable.snp.top)
......@@ -68,6 +68,7 @@ extension YHPreviewInfoNameAndSubNameItemView {
func update(title : String,subtitle : String) {
nameLable.text = title
subtitleLable.text = subtitle
nameLable.snp.removeConstraints()
subtitleLable.snp.removeConstraints()
......
......@@ -18,7 +18,6 @@ class YHPreviewInfoWorkExpView: UIView {
private extension YHPreviewInfoWorkExpView {
func updateUI() {
guard let model = dataModel,let mmodel = model.cellData4,!mmodel.isEmpty else { return }
if model.cellType == .workExp {
removeSubviews()
......@@ -35,7 +34,6 @@ private extension YHPreviewInfoWorkExpView {
}
var lastTagView : UIView = sessionView
for(_,item) in mmodel.enumerated() {
if !item.title.isEmpty,!item.title.contains("简历/工作总结") {
let label = UILabel()
......
......@@ -9,7 +9,6 @@
import UIKit
class YHWorkExperienceListViewController: YHBaseViewController {
var bottomView: YHBottomNextView!
var tableView: UITableView!
var dataSource: [YHWorkItemListModel]?
......@@ -17,7 +16,7 @@ class YHWorkExperienceListViewController: YHBaseViewController {
var isMore: Bool = false
var orderId: Int = 0
var showPrompt: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
viewModel = YHWorkItemListViewModel()
......@@ -70,7 +69,6 @@ class YHWorkExperienceListViewController: YHBaseViewController {
}
bottomView = {
let bottom = YHBottomNextView()
bottom.nextButton.setTitle("提交", for: .normal)
bottom.nextblock = { [weak self] in
......@@ -218,7 +216,6 @@ extension YHWorkExperienceListViewController: UITableViewDelegate, UITableViewDa
for item in data {
if item.company_name == "" {
height = height + 76
} else {
let text = item.company_name // 要显示的文本内容
let font = UIFont.PFSC_B(ofSize: 14) // 字体大小
......
//
// 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
}
}
......@@ -10,7 +10,6 @@ import Foundation
import SmartCodable
class YHWorkExperienceDetailModel: SmartCodable {
var work_id: Int = 0
var order_id: Int = 0
var company_name: String = ""
......@@ -19,6 +18,7 @@ class YHWorkExperienceDetailModel: SmartCodable {
var has_finish_basic_question: Int = 0
var work_duty: String = ""
var work_highlights: String = ""
var file: [YHWorkExperienceFileModel] = []
required init() {
......@@ -40,3 +40,4 @@ class YHWorkExperienceStepModel: SmartCodable {
required init() {
}
}
......@@ -10,19 +10,6 @@ import UIKit
import SmartCodable
class YHWorkExperienceProjectModel: SmartCodable {
var id: Int?
var order_id: Int?
var work_id: Int?
var project_name: String?
var project_start_time: String?
var project_end_time: String?
var project_highlights: String?
var update_from_appid: Int?
var create_from_appid: Int?
var customer_center_id: Int?
var created_at: String?
var updated_at: String?
var deleted_at: String?
var list: [YHWorkExperienceFileModel] = []
required init() {
}
......
......@@ -34,6 +34,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
func updateModel(_ item: YHWorkExperienceModel) {
guard let type = item.id else { return }
switch type {
case .id1: // 用人单位
mainModel.company_name = item.message ?? ""
case .id2: // 用人单位性质
......@@ -131,7 +132,6 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
"uploadedAt": item.uploadedAt]
file.append(fileDic)
}
let params: [String : Any] = ["next_step": 0,
"work_id": workId,
"file_list": file
......@@ -144,6 +144,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
callBackBlock(false,nil)
return
}
// self.mainModel.id = result.id
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
......@@ -178,7 +179,6 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
}
}
func requestDeleteWorkPosition(_ model: YHWorkExperiencePositionModel, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["position_id": model.position_id, "work_id": model.work_id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.deleteWorkPosition
......
//
// 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.work_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)
}
}
}
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