Commit 22c42aa0 authored by Steven杜宇's avatar Steven杜宇

Merge branch 'qmas-1130' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into qmas-1130

parents 3e37a608 78c360da
...@@ -248,6 +248,8 @@ class YHOtherPickerView: UIView { ...@@ -248,6 +248,8 @@ class YHOtherPickerView: UIView {
return "选择星座" return "选择星座"
case .selectAddress: case .selectAddress:
return "选择国家地区" return "选择国家地区"
case .field:
return "选择经验领域"
default: default:
return "请选择" return "请选择"
} }
...@@ -275,7 +277,7 @@ extension YHOtherPickerView: UIPickerViewDelegate, UIPickerViewDataSource { ...@@ -275,7 +277,7 @@ extension YHOtherPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat { func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
switch type { switch type {
case .nature,.certificate,.structure,.level,.prove,.idType,.sex,.marry,.constellation: case .nature,.certificate,.structure,.level,.prove,.idType,.sex,.marry,.constellation,.field:
return 50 return 50
default: default:
return 70 return 70
...@@ -285,7 +287,7 @@ extension YHOtherPickerView: UIPickerViewDelegate, UIPickerViewDataSource { ...@@ -285,7 +287,7 @@ extension YHOtherPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
switch type { switch type {
case .nature,.certificate,.structure,.level,.prove,.idType,.travelIdType,.sex,.marry,.constellation,.selectAddress: case .nature,.certificate,.structure,.level,.prove,.idType,.travelIdType,.sex,.marry,.constellation,.selectAddress,.field:
let label = UILabel() let label = UILabel()
label.textColor = UIColor.mainTextColor label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize: 14) label.font = UIFont.PFSC_M(ofSize: 14)
...@@ -450,6 +452,14 @@ extension YHOtherPickerView { ...@@ -450,6 +452,14 @@ extension YHOtherPickerView {
arrData.append(model) arrData.append(model)
} }
title = getTitle(type: type) title = getTitle(type: type)
case .field:
let arr = YHConstantArrayData.arrSelectField
arrData.removeAll()
arr.forEach { item in
let model = YHOtherPickerViewItemData(title: item["title"] ?? "-", subTitle: "", index: item["id"] ?? "-")
arrData.append(model)
}
title = getTitle(type: type)
default: default:
return return
} }
......
...@@ -17,11 +17,14 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController { ...@@ -17,11 +17,14 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController {
var introductionDataSource: [YHWorkExperienceProjectModel]? var introductionDataSource: [YHWorkExperienceProjectModel]?
var fileDataSource: [YHWorkExperienceFileModel]? var fileDataSource: [YHWorkExperienceFileModel]?
var workExperienceID: String? var workExperienceID: String?
var workID: Int = 0
var orderID: Int = 0 var orderID: Int = 0
var positionId: Int = 0
var isMore: Bool = false var isMore: Bool = false
var isShowPrompt: Bool = false var isShowPrompt: Bool = false
var isShowMessageSelect: Bool = true var isShowMessageSelect: Bool = true
var isKeyboardShow: Bool = false var isKeyboardShow: Bool = false
var selectReasonIndex: Int = 5
var selectEditItem = YHWorkExperienceFileModel() var selectEditItem = YHWorkExperienceFileModel()
override func viewDidLoad() { override func viewDidLoad() {
...@@ -36,8 +39,17 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController { ...@@ -36,8 +39,17 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController {
} }
func getData() { func getData() {
self.baseDataSource = self.viewModel.getBaseDataSource(false) viewModel.requestWorkPositionDetail(workID, positionId) {[weak self] success, error in
updateDataSource() guard let self = self else { return }
if success ?? false {
self.selectReasonIndex = self.viewModel.position.provide_certificate_type - 1
updateDataSource()
} else {
self.viewModel.position.work_id = workID
self.viewModel.position.order_id = orderID
updateDataSource()
}
}
} }
func getTextWithType(type: Int) -> ASAttributedString { func getTextWithType(type: Int) -> ASAttributedString {
...@@ -75,7 +87,7 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController { ...@@ -75,7 +87,7 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController {
func updateDataSource() { func updateDataSource() {
bottomView.nextButton.setTitle("提交", for: .normal) bottomView.nextButton.setTitle("提交", for: .normal)
self.baseDataSource = self.viewModel.getBaseDataSource(false)
self.tableView.reloadData() self.tableView.reloadData()
} }
...@@ -85,6 +97,7 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController { ...@@ -85,6 +97,7 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController {
if #available(iOS 11.0, *) { if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never tableView.contentInsetAdjustmentBehavior = .never
} }
tableView.sectionHeaderHeight = 16
tableView.backgroundColor = .clear tableView.backgroundColor = .clear
tableView.separatorStyle = .none tableView.separatorStyle = .none
tableView.delegate = self tableView.delegate = self
...@@ -105,41 +118,35 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController { ...@@ -105,41 +118,35 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController {
bottom.nextblock = { [weak self] in bottom.nextblock = { [weak self] in
bottom.nextButton.isEnabled = false bottom.nextButton.isEnabled = false
guard let self = self else { return } guard let self = self else { return }
// if self.viewModel.isCanNext(self.stepView.currentIndex) { if self.viewModel.isCanNext() {
// self.viewModel.mainModel.step = self.stepView.currentIndex self.viewModel.saveWorkPosition(callBackBlock: {[weak self] flag, error in
// self.viewModel.saveWorkDetail(1, orderID: self.orderID, callBackBlock: {[weak self] flag, error in guard let self = self else { return }
// guard let self = self else { return } bottom.nextButton.isEnabled = true
// bottom.nextButton.isEnabled = true if let error = error {
// if let error = error { YHHUD.flash(message: error.errorMsg )
// YHHUD.flash(message: error.errorMsg ) } else {
// } else { YHHUD.hideFlashMessage()
// YHHUD.hideFlashMessage() YHHUD.flash(message: "提交成功")
// if self.stepView.currentIndex == 3 { self.navigationController?.popViewController()
// YHHUD.flash(message: "提交成功") }
// self.navigationController?.popViewController() })
// } else { } else {
// self.stepView.currentIndex = self.stepView.currentIndex + 1 bottom.nextButton.isEnabled = true
// self.updateDataSource() self.isShowPrompt = true
// } self.updateDataSource()
// } YHHUD.flash(message: "您还有信息未填写")
// }) }
// } else {
// bottom.nextButton.isEnabled = true
// self.isShowPrompt = true
// self.updateDataSource()
// YHHUD.flash(message: "您还有信息未填写")
// }
} }
bottom.saveBlock = { [weak self] in bottom.saveBlock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
// self.viewModel.saveWorkDetail(0, orderID: self.orderID, callBackBlock: {[weak self] flag, error in self.viewModel.saveWorkPosition(callBackBlock: {[weak self] flag, error in
// guard let self = self else { return } guard let _ = self else { return }
// if let error = error { if let error = error {
// YHHUD.flash(message: error.errorMsg ) YHHUD.flash(message: error.errorMsg )
// } else { } else {
// YHHUD.flash(message: "保存成功") YHHUD.flash(message: "保存成功")
// } }
// }) })
} }
return bottom return bottom
}() }()
...@@ -159,26 +166,6 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController { ...@@ -159,26 +166,6 @@ class YHWorkExperiencePositionViewViewController: YHBaseViewController {
} }
} }
func showDeleteAlert(_ model: YHWorkExperienceFileModel) {
YHCommonAlertView.show("", "确定要删除吗?", "取消", "确认") {[weak self] in
guard let self = self else { return }
for i in 0..<(self.fileDataSource?.count ?? 0) {
let data = self.fileDataSource?[i]
if data?.fileName == model.fileName {
self.fileDataSource?.remove(at: i)
self.tableView.reloadData()
self.viewModel.mainModel.file = self.fileDataSource ?? []
return
}
}
}
}
deinit {
NotificationCenter.default.removeObserver(self)
}
} }
extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITableViewDataSource { extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITableViewDataSource {
...@@ -190,13 +177,12 @@ extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITab ...@@ -190,13 +177,12 @@ extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITab
if indexPath.row == 0 { if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkExperiencePositionListTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkExperiencePositionListTableViewCell.self)
cell.country = self.viewModel.mainModel.location.country
cell.dataSource = baseDataSource?[indexPath.row] cell.dataSource = baseDataSource?[indexPath.row]
cell.workExperienceBlock = {[weak self] model in cell.workExperienceBlock = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
self.viewModel.updateModel(model) self.viewModel.updateModel(model)
let id = model.id 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 && id != .id2 && id != .id6 && id != .id10 {
self.updateDataSource() self.updateDataSource()
} }
} }
...@@ -208,7 +194,13 @@ extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITab ...@@ -208,7 +194,13 @@ extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITab
return cell return cell
} else { } else {
let cell = tableView.dequeueReusableCell(withClass: YHWorkExperiencePositionReasonTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkExperiencePositionReasonTableViewCell.self)
cell.selectItem = [self.selectReasonIndex]
cell.dataSource = getTipsWithType() cell.dataSource = getTipsWithType()
cell.selectBlock = {[weak self] index in
guard let self = self else { return }
self.selectReasonIndex = index.first ?? 5
self.viewModel.position.provide_certificate_type = self.selectReasonIndex + 1
}
cell.backgroundColor = .clear cell.backgroundColor = .clear
cell.contentView.backgroundColor = .clear cell.contentView.backgroundColor = .clear
return cell return cell
...@@ -223,7 +215,7 @@ extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITab ...@@ -223,7 +215,7 @@ extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITab
let data = array[i] let data = array[i]
let message = data.message ?? "" let message = data.message ?? ""
let isShow = data.isShowPrompts ?? false let isShow = data.isShowPrompts ?? false
if data.id == .id13 { if data.id == .id7 {
h = h + 72 h = h + 72
} else { } else {
h = h + 52 h = h + 52
...@@ -244,7 +236,7 @@ extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITab ...@@ -244,7 +236,7 @@ extension YHWorkExperiencePositionViewViewController: UITableViewDelegate, UITab
} }
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 7 return 16
} }
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
......
...@@ -51,7 +51,6 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -51,7 +51,6 @@ class YHWorkExperienceViewController: YHBaseViewController {
setView() setView()
getData()
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIResponder.keyboardDidShowNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIResponder.keyboardDidShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIResponder.keyboardDidHideNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIResponder.keyboardDidHideNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(handleKeyboardNotification(_:)), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(handleKeyboardNotification(_:)), name: UIResponder.keyboardWillShowNotification, object: nil)
...@@ -77,10 +76,15 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -77,10 +76,15 @@ class YHWorkExperienceViewController: YHBaseViewController {
} }
} }
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
getData()
}
@objc func handleKeyboardNotification(_ notification: Notification) { @objc func handleKeyboardNotification(_ notification: Notification) {
if notification.userInfo != nil { if notification.userInfo != nil {
if stepView.currentIndex == 4 || stepView.currentIndex == 3 { if stepView.currentIndex == 3 {
guard let keyboardFrame = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as AnyObject).cgRectValue else {return } guard let keyboardFrame = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as AnyObject).cgRectValue else {return }
let isKeyboardShow = notification.name == UIResponder.keyboardWillShowNotification let isKeyboardShow = notification.name == UIResponder.keyboardWillShowNotification
...@@ -103,6 +107,10 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -103,6 +107,10 @@ class YHWorkExperienceViewController: YHBaseViewController {
func getData() { func getData() {
viewModel.requestWorkExample { success, error in viewModel.requestWorkExample { success, error in
}
viewModel.requestWorkPositionList("\(orderID)", workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return }
self.updateDataSource()
} }
viewModel.requestWorkDetail("\(orderID)", workExperienceID ?? "") {[weak self] success, error in viewModel.requestWorkDetail("\(orderID)", workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
...@@ -117,6 +125,7 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -117,6 +125,7 @@ class YHWorkExperienceViewController: YHBaseViewController {
self.updateDataSource() self.updateDataSource()
} }
} }
updateDataSource() updateDataSource()
} }
...@@ -339,10 +348,10 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -339,10 +348,10 @@ class YHWorkExperienceViewController: YHBaseViewController {
} }
} }
func showDeleteAlert(_ model: YHWorkExperienceProjectModel) { func showDeleteAlert(_ model: YHWorkExperiencePositionModel) {
YHCommonAlertView.show("", "确定要删除该项目介绍吗?", "取消", "确认") {[weak self] in YHCommonAlertView.show("", "确定要删除该职位信息吗?", "取消", "确认") {[weak self] in
guard let self = self else { return } guard let self = self else { return }
self.viewModel?.requestDeleteWorkExperienceProject("\(model.id ?? 0)", callBackBlock: {[weak self] success, error in self.viewModel?.requestDeleteWorkPosition(model, callBackBlock: {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.getData() self.getData()
}) })
...@@ -696,7 +705,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -696,7 +705,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
} else { } else {
let cell = tableView.dequeueReusableCell(withClass: YHWorkExperiencePositionTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkExperiencePositionTableViewCell.self)
cell.showPrompt = isShowPrompt cell.showPrompt = isShowPrompt
// cell.dataSource = dataSource cell.dataSource = self.viewModel.positionList
if isMore { if isMore {
cell.more() cell.more()
} else { } else {
...@@ -704,19 +713,15 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -704,19 +713,15 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
} }
cell.clickBlock = {[weak self] model in cell.clickBlock = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
// let firstModel = self.dataSource?.first let vc = YHWorkExperiencePositionViewViewController()
// let vc = YHWorkExperienceViewController() vc.workID = model.work_id
// vc.workExperienceID = "\(model.id ?? 0)" vc.orderID = model.order_id
// vc.orderID = self.orderId vc.positionId = model.position_id
// vc.isShowMessageSelect = true self.navigationController?.pushViewController(vc, animated: true)
// if firstModel?.id == model.id {
// vc.isShowMessageSelect = false
// }
// self.navigationController?.pushViewController(vc, animated: true)
} }
cell.deleteBlock = {[weak self] model in cell.deleteBlock = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
// self.showDeleteAlert(model) self.showDeleteAlert(model)
} }
cell.isMoreBlock = {[weak self] isMore in cell.isMoreBlock = {[weak self] isMore in
guard let self = self else { return } guard let self = self else { return }
...@@ -733,6 +738,8 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -733,6 +738,8 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
// self.navigationController?.pushViewController(vc, animated: true) // self.navigationController?.pushViewController(vc, animated: true)
// } // }
let vc = YHWorkExperiencePositionViewViewController() let vc = YHWorkExperiencePositionViewViewController()
vc.workID = workExperienceID?.intValue() ?? 0
vc.orderID = orderID
self.navigationController?.pushViewController(vc, animated: true) self.navigationController?.pushViewController(vc, animated: true)
} }
cell.backgroundColor = .clear cell.backgroundColor = .clear
...@@ -763,31 +770,30 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -763,31 +770,30 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
} }
return CGFloat(h + 52 + 14 + 386) return CGFloat(h + 52 + 14 + 386)
} else { } else {
// let number = dataSource?.count ?? 0 let number = viewModel.positionList.count
var height = 23 + 154 var height = 23 + 154
// if let data = dataSource { for item in viewModel.positionList {
// for item in data { if item.position_name == "" {
// if item.company_name == "" { height = height + 52
// height = height + 52 } else {
// } else { let text = item.position_name // 要显示的文本内容
// let text = item.company_name // 要显示的文本内容 let font = UIFont.PFSC_B(ofSize: 14) // 字体大小
// let font = UIFont.PFSC_B(ofSize: 14) // 字体大小 let maxWidth = 143.0 // 最大宽度限制
// let maxWidth = 143.0 // 最大宽度限制
// // 创建NSAttributedString对象并设置属性
// // 创建NSAttributedString对象并设置属性 let attributes = [NSAttributedString.Key.font : font] as [NSAttributedString.Key : Any]
// let attributes = [NSAttributedString.Key.font : font] as [NSAttributedString.Key : Any] _ = NSMutableAttributedString(string: text, attributes: attributes)
// _ = NSMutableAttributedString(string: text ?? "", attributes: attributes)
// // 根据指定的最大宽度和字体大小计算文本的高度
// // 根据指定的最大宽度和字体大小计算文本的高度 let size = (text as NSString).boundingRect(with: CGSize(width: maxWidth, height: .greatestFiniteMagnitude), options: .usesLineFragmentOrigin, attributes: attributes, context: nil).size
// let size = (text! as NSString).boundingRect(with: CGSize(width: maxWidth, height: .greatestFiniteMagnitude), options: .usesLineFragmentOrigin, attributes: attributes, context: nil).size if size.height > 20 {
// if size.height > 20 { height = height + 96
// height = height + 96 } else {
// } else { height = height + 76
// height = height + 76 }
// } }
// } }
// }
// }
return CGFloat(height) return CGFloat(height)
} }
} }
......
...@@ -15,6 +15,7 @@ class YHWorkExperienceDetailModel: SmartCodable { ...@@ -15,6 +15,7 @@ class YHWorkExperienceDetailModel: SmartCodable {
var company_name: String = "" var company_name: String = ""
var professional_level: Int = 0 var professional_level: Int = 0
var work_certificate: String = "" var work_certificate: String = ""
var has_finish_basic_question: Int = 0
var is_famous_enterprise: Int = 0 var is_famous_enterprise: Int = 0
var duty: String = "" var duty: String = ""
......
...@@ -19,7 +19,8 @@ enum YHWorkExperienceSelectType: Int { ...@@ -19,7 +19,8 @@ enum YHWorkExperienceSelectType: Int {
case structure = 7 case structure = 7
case level = 8 case level = 8
case prove = 9 case prove = 9
case company = 10 case company = 10
case field = 11
} }
enum YHWorkExperienceID: Int { enum YHWorkExperienceID: Int {
......
...@@ -21,8 +21,9 @@ class YHWorkExperiencePositionModel: SmartCodable { ...@@ -21,8 +21,9 @@ class YHWorkExperiencePositionModel: SmartCodable {
var experience_sub_scope: String = "" var experience_sub_scope: String = ""
var is_international_work_experience: Int = 0 var is_international_work_experience: Int = 0
var provide_certificate_type: Int = 0 var provide_certificate_type: Int = 0
var work_country: String? var work_country: String = ""
var work_city: String? var work_city: String = ""
var missing_item_num: Int = 0
required init() { required init() {
} }
} }
...@@ -248,6 +248,12 @@ class YHWorkExperienceItemView: UIView { ...@@ -248,6 +248,12 @@ class YHWorkExperienceItemView: UIView {
case .prove: case .prove:
break break
case .company: case .company:
if dataSource.message == "0" {
messageTextField.text = "未选择"
} else {
messageTextField.text = "已选择"
}
case .field:
break break
} }
} }
...@@ -506,6 +512,15 @@ class YHWorkExperienceItemView: UIView { ...@@ -506,6 +512,15 @@ class YHWorkExperienceItemView: UIView {
YHWorkExperienceCompanySelectView.show { array in YHWorkExperienceCompanySelectView.show { array in
} }
case .field:
YHOtherPickerView.show(type: .field, selectTitle: self.dataSource?.message ?? "") {[weak self] data in
guard let self = self else { return }
self.dataSource?.message = data.title
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHWorkExperienceModel())
}
}
} }
} }
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
import UIKit import UIKit
class YHWorkExperiencePositionItemView: UIView { class YHWorkExperiencePositionItemView: UIView {
typealias ItemBlock = (_ model: YHWorkItemListModel) -> () typealias ItemBlock = (_ model: YHWorkExperiencePositionModel) -> ()
var clickBlock: ItemBlock? var clickBlock: ItemBlock?
var deleteBlock: ItemBlock? var deleteBlock: ItemBlock?
var titleLabel: UILabel! var titleLabel: UILabel!
...@@ -21,19 +21,21 @@ class YHWorkExperiencePositionItemView: UIView { ...@@ -21,19 +21,21 @@ class YHWorkExperiencePositionItemView: UIView {
var showPrompt: Bool = false { var showPrompt: Bool = false {
didSet { didSet {
if showPrompt { if showPrompt {
if dataSource?.vacant_num != 0 { subTitleLabel.isHidden = false
subTitleLabel.text = "有" + "\(dataSource?.vacant_num ?? 0)" + "项未填写" if dataSource?.missing_item_num != 0 {
subTitleLabel.text = "有" + "\(dataSource?.missing_item_num ?? 0)" + "项未填写"
subTitleLabel.textColor = UIColor.failColor subTitleLabel.textColor = UIColor.failColor
} else { } else {
subTitleLabel.textColor = UIColor.labelTextColor2 subTitleLabel.textColor = UIColor.labelTextColor2
} }
} else { } else {
subTitleLabel.isHidden = true
subTitleLabel.textColor = UIColor.labelTextColor2 subTitleLabel.textColor = UIColor.labelTextColor2
} }
} }
} }
var dataSource: YHWorkItemListModel? { var dataSource: YHWorkExperiencePositionModel? {
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -64,6 +66,20 @@ class YHWorkExperiencePositionItemView: UIView { ...@@ -64,6 +66,20 @@ class YHWorkExperiencePositionItemView: UIView {
make.width.equalTo(143) make.width.equalTo(143)
} }
subTitleLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 14)
label.textAlignment = .left
label.textColor = UIColor.labelTextColor2
return label
}()
addSubview(subTitleLabel)
subTitleLabel.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.height.equalTo(20)
make.bottom.equalTo(-16)
}
explainLabel = { explainLabel = {
let label = UILabel() let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 14) label.font = UIFont.PFSC_R(ofSize: 14)
...@@ -125,27 +141,27 @@ class YHWorkExperiencePositionItemView: UIView { ...@@ -125,27 +141,27 @@ class YHWorkExperiencePositionItemView: UIView {
func updateAllViews() { func updateAllViews() {
guard let dataSource = dataSource else { return } guard let dataSource = dataSource else { return }
titleLabel.text = dataSource.company_name titleLabel.text = dataSource.position_name
if dataSource.vacant_num != 0 { if dataSource.missing_item_num != 0 {
explainLabel.text = "有" + "\(dataSource.vacant_num ?? 0)" + "项未填写" explainLabel.text = "有" + "\(dataSource.missing_item_num ?? 0)" + "项未填写"
} else { } else {
explainLabel.text = (dataSource.entry_time ?? "") + " ~ " + (dataSource.departure_time ?? "") explainLabel.text = (dataSource.entry_time ?? "") + " ~ " + (dataSource.departure_time ?? "")
} }
if dataSource.company_name?.count == 0 { if dataSource.position_name.count == 0 {
titleLabel.text = "工作经验\(tag - 4000 + 1)" titleLabel.text = "职位\(tag - 4000 + 1)"
} }
} }
@objc func centerClick() { @objc func centerClick() {
if let block = clickBlock { if let block = clickBlock {
block(self.dataSource ?? YHWorkItemListModel()) block(self.dataSource ?? YHWorkExperiencePositionModel())
} }
} }
@objc func deleteClick() { @objc func deleteClick() {
if let block = deleteBlock { if let block = deleteBlock {
block(self.dataSource ?? YHWorkItemListModel()) block(self.dataSource ?? YHWorkExperiencePositionModel())
} }
} }
......
...@@ -107,7 +107,7 @@ class YHWorkExperiencePositionListTableViewCell: UITableViewCell { ...@@ -107,7 +107,7 @@ class YHWorkExperiencePositionListTableViewCell: UITableViewCell {
let message = data?.message ?? "" let message = data?.message ?? ""
var h = 51 var h = 51
if data?.id == .id13 { if data?.id == .id7 {
h = 71 h = 71
} }
if isShow && message.count == 0 { if isShow && message.count == 0 {
...@@ -122,12 +122,6 @@ class YHWorkExperiencePositionListTableViewCell: UITableViewCell { ...@@ -122,12 +122,6 @@ class YHWorkExperiencePositionListTableViewCell: UITableViewCell {
block(model) block(model)
} }
} }
itemView.companyBlock = {[weak self] company in
guard let self = self else { return }
if let block = self.companyBlock {
block(company)
}
}
mainItemView.addSubview(itemView) mainItemView.addSubview(itemView)
itemView.snp.makeConstraints { make in itemView.snp.makeConstraints { make in
make.left.equalTo(18) make.left.equalTo(18)
......
...@@ -134,6 +134,13 @@ class YHWorkExperiencePositionReasonTableViewCell: UITableViewCell { ...@@ -134,6 +134,13 @@ class YHWorkExperiencePositionReasonTableViewCell: UITableViewCell {
view.layer.borderColor = UIColor.brandMainColor.cgColor view.layer.borderColor = UIColor.brandMainColor.cgColor
view.addTarget(self, action: #selector(agreeClick(sender:)), for: .touchUpInside) view.addTarget(self, action: #selector(agreeClick(sender:)), for: .touchUpInside)
view.tag = 20000 + i 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 return view
}() }()
mainItemView.addSubview(bgviewButton) mainItemView.addSubview(bgviewButton)
...@@ -192,21 +199,25 @@ class YHWorkExperiencePositionReasonTableViewCell: UITableViewCell { ...@@ -192,21 +199,25 @@ class YHWorkExperiencePositionReasonTableViewCell: UITableViewCell {
} }
@objc func agreeClick(sender: UIButton) { @objc func agreeClick(sender: UIButton) {
selectItem.removeAll()
selectItem.append(sender.tag - 20000)
sender.isSelected = !sender.isSelected sender.isSelected = !sender.isSelected
if sender.isSelected { for i in 0..<(dataSource?.count ?? 0) {
sender.layer.borderWidth = 1 if i == sender.tag - 20000 {
sender.backgroundColor = UIColor(hex: 0xebf0f9) let view = mainItemView.viewWithTag(i + 20000)
selectItem.append(sender.tag - 20000) view?.layer.borderWidth = 1
let view = mainItemView.viewWithTag(sender.tag - 20000 + 10000) as! UIImageView view?.backgroundColor = UIColor(hex: 0xebf0f9)
view.image = UIImage(named: "login_privacy_agree") let subview = mainItemView.viewWithTag(i + 10000) as! UIImageView
} else { subview.image = UIImage(named: "login_privacy_agree")
sender.layer.borderWidth = 0 } else {
sender.backgroundColor = UIColor.contentBkgColor let view = mainItemView.viewWithTag(i + 20000)
selectItem.removeAll(where: {$0 == sender.tag - 20000}) view?.layer.borderWidth = 0
let view = mainItemView.viewWithTag(sender.tag - 20000 + 10000) as! UIImageView view?.backgroundColor = UIColor.contentBkgColor
view.image = UIImage(named: "login_privacy_disagree_glay") let subview = mainItemView.viewWithTag(i + 10000) as! UIImageView
subview.image = UIImage(named: "login_privacy_disagree_glay")
}
} }
if let block = selectBlock { if let block = selectBlock {
block(selectItem) block(selectItem)
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
import UIKit import UIKit
class YHWorkExperiencePositionTableViewCell: UITableViewCell { class YHWorkExperiencePositionTableViewCell: UITableViewCell {
typealias ExperienceListBlock = (_ model: YHWorkItemListModel) -> () typealias ExperienceListBlock = (_ model: YHWorkExperiencePositionModel) -> ()
typealias IsMoreBlock = (_ isMore: Bool) -> () typealias IsMoreBlock = (_ isMore: Bool) -> ()
typealias NewWorkBlock = () -> () typealias NewWorkBlock = () -> ()
var clickBlock: ExperienceListBlock? var clickBlock: ExperienceListBlock?
...@@ -24,7 +24,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell { ...@@ -24,7 +24,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell {
var mainItemView: UIView! var mainItemView: UIView!
var bottomView: YHWorkItemAddView! var bottomView: YHWorkItemAddView!
var showPrompt: Bool = false var showPrompt: Bool = false
var dataSource: [YHWorkItemListModel]?{ var dataSource: [YHWorkExperiencePositionModel]?{
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -144,7 +144,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell { ...@@ -144,7 +144,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell {
bottomView = { bottomView = {
let view = YHWorkItemAddView() let view = YHWorkItemAddView()
view.addBtn.setTitle("新增工作经验".local, for: .normal) view.addBtn.setTitle("新增职位".local, for: .normal)
view.clickBlock = {[weak self] in view.clickBlock = {[weak self] in
guard let self = self else { return } guard let self = self else { return }
if let block = self.newWorkBlock { if let block = self.newWorkBlock {
...@@ -215,19 +215,19 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell { ...@@ -215,19 +215,19 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell {
itemView.dataSource = dataSource[i] itemView.dataSource = dataSource[i]
itemView.showPrompt = showPrompt itemView.showPrompt = showPrompt
var h = 0 var h = 0
if model.company_name == "" { if model.position_name == "" {
h = 51 h = 51
} else { } else {
let text = model.company_name // 要显示的文本内容 let text = model.position_name // 要显示的文本内容
let font = UIFont.PFSC_B(ofSize: 14) // 字体大小 let font = UIFont.PFSC_B(ofSize: 14) // 字体大小
let maxWidth = 143.0 // 最大宽度限制 let maxWidth = 143.0 // 最大宽度限制
// 创建NSAttributedString对象并设置属性 // 创建NSAttributedString对象并设置属性
let attributes = [NSAttributedString.Key.font : font] as [NSAttributedString.Key : Any] let attributes = [NSAttributedString.Key.font : font] as [NSAttributedString.Key : Any]
_ = NSMutableAttributedString(string: text ?? "", attributes: attributes) _ = NSMutableAttributedString(string: text, attributes: attributes)
// 根据指定的最大宽度和字体大小计算文本的高度 // 根据指定的最大宽度和字体大小计算文本的高度
let size = (text! as NSString).boundingRect(with: CGSize(width: maxWidth, height: .greatestFiniteMagnitude), options: .usesLineFragmentOrigin, attributes: attributes, context: nil).size let size = (text as NSString).boundingRect(with: CGSize(width: maxWidth, height: .greatestFiniteMagnitude), options: .usesLineFragmentOrigin, attributes: attributes, context: nil).size
if size.height > 20 { if size.height > 20 {
h = 95 h = 95
} else { } else {
...@@ -249,7 +249,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell { ...@@ -249,7 +249,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell {
moreButton.isHidden = false moreButton.isHidden = false
cannalButton.isHidden = true cannalButton.isHidden = true
for i in 0..<(dataSource?.count ?? 0) { for i in 0..<(dataSource?.count ?? 0) {
let view = mainItemView.viewWithTag(4000 + i) as! YHWorkItemView let view = mainItemView.viewWithTag(4000 + i) as! YHWorkExperiencePositionItemView
view.isShowDelete(i, isShow: false) view.isShowDelete(i, isShow: false)
} }
if let block = isMoreBlock { if let block = isMoreBlock {
...@@ -261,7 +261,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell { ...@@ -261,7 +261,7 @@ class YHWorkExperiencePositionTableViewCell: UITableViewCell {
moreButton.isHidden = true moreButton.isHidden = true
cannalButton.isHidden = false cannalButton.isHidden = false
for i in 0..<(dataSource?.count ?? 0) { for i in 0..<(dataSource?.count ?? 0) {
let view = mainItemView.viewWithTag(4000 + i) as! YHWorkItemView let view = mainItemView.viewWithTag(4000 + i) as! YHWorkExperiencePositionItemView
view.isShowDelete(i, isShow: true) view.isShowDelete(i, isShow: true)
} }
if let block = isMoreBlock { if let block = isMoreBlock {
......
...@@ -14,13 +14,14 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -14,13 +14,14 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
var exampleModels: [YHWorkExampleModel]? var exampleModels: [YHWorkExampleModel]?
var projectModels: [YHWorkExperienceProjectModel]? var projectModels: [YHWorkExperienceProjectModel]?
var fileList: [YHWorkExperienceFileModel] = [] var fileList: [YHWorkExperienceFileModel] = []
var positionList: [YHWorkExperiencePositionModel] = []
override init() { override init() {
super.init() super.init()
} }
func getBaseDataSource(_ isShowPrompt: Bool) -> [YHSectionWorkExperienceModel] { func getBaseDataSource(_ isShowPrompt: Bool) -> [YHSectionWorkExperienceModel] {
let item = YHWorkExperienceModel(id: .id1, isNeed: true, title: "用人单位", isUserKeyBoard: true, prompts: "请输入", message: mainModel.company_name, isShowPrompts: isShowPrompt, alertMessage:"请输入") 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: .company, isShowPrompts: isShowPrompt, alertMessage:"请选择") let item1 = YHWorkExperienceModel(id: .id2, isNeed: true, title: "公司基本情况", isUserKeyBoard: false, prompts: "请选择", message: "\(mainModel.has_finish_basic_question)", type: .company, isShowPrompts: isShowPrompt, alertMessage:"请选择")
let item2 = YHWorkExperienceModel(id: .id3, isNeed: true, title: "职位水平类别", isUserKeyBoard: false, prompts: "请选择", message: "\(mainModel.professional_level)", type: .level, isShowPrompts: isShowPrompt, alertMessage:"请选择") let item2 = YHWorkExperienceModel(id: .id3, isNeed: true, title: "职位水平类别", isUserKeyBoard: false, prompts: "请选择", message: "\(mainModel.professional_level)", type: .level, isShowPrompts: isShowPrompt, alertMessage:"请选择")
var section = YHSectionWorkExperienceModel() var section = YHSectionWorkExperienceModel()
section = YHSectionWorkExperienceModel(title: "企业信息", models: [item, item1, item2]) section = YHSectionWorkExperienceModel(title: "企业信息", models: [item, item1, item2])
...@@ -212,9 +213,9 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -212,9 +213,9 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
} }
} }
func requestDeleteWorkExperienceProject(_ orderId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) { func requestDeleteWorkPosition(_ model: YHWorkExperiencePositionModel, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["id": orderId] let params: [String : Any] = ["position_id": model.position_id, "work_id": model.work_id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.projectDel let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.deleteWorkPosition
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象 //1. json字符串 转 对象
guard let self = self else { return } guard let self = self else { return }
...@@ -326,4 +327,27 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -326,4 +327,27 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
return true return true
} }
} }
func requestWorkPositionList(_ orderId: String, _ workId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let param: [String: Any] = ["work_id": workId, "order_id": orderId]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.workPositionList
let _ = YHNetRequest.getRequest(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? [Any], let result = [YHWorkExperiencePositionModel].deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.positionList = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
} }
...@@ -41,6 +41,8 @@ enum YHOtherPickerViewType: Int { ...@@ -41,6 +41,8 @@ enum YHOtherPickerViewType: Int {
case constellation case constellation
//选择国家地区 //选择国家地区
case selectAddress case selectAddress
//选择经验领域
case field
} }
...@@ -473,6 +475,25 @@ class YHConstantArrayData { ...@@ -473,6 +475,25 @@ class YHConstantArrayData {
"title" : "海外地区", "title" : "海外地区",
] ]
] ]
static let arrSelectField = [
[
"id": "0",
"title" : "创新及科技",
],
[
"id" : "1",
"title" : "金融",
],
[
"id" : "2",
"title" : "国际贸易(包括跨境海运及空运,以及供应链管理)",
],
[
"id": "3",
"title" : "其他",
]
]
//通过 id 获取 title //通过 id 获取 title
static func getShowNameBy(indexStr:String,type : YHOtherPickerViewType) -> String { static func getShowNameBy(indexStr:String,type : YHOtherPickerViewType) -> String {
if indexStr.isEmpty { if indexStr.isEmpty {
...@@ -500,6 +521,8 @@ class YHConstantArrayData { ...@@ -500,6 +521,8 @@ class YHConstantArrayData {
arrData = YHConstantArrayData.arrDegreeConstellation arrData = YHConstantArrayData.arrDegreeConstellation
case .selectAddress: case .selectAddress:
arrData = YHConstantArrayData.arrSelectAddress arrData = YHConstantArrayData.arrSelectAddress
case .field:
arrData = YHConstantArrayData.arrSelectField
default: default:
arrData = [[:]] arrData = [[:]]
} }
......
...@@ -251,6 +251,11 @@ class YHAllApiName { ...@@ -251,6 +251,11 @@ class YHAllApiName {
static let ocrFileContent = "infoflow/work/getOcrFileContent" static let ocrFileContent = "infoflow/work/getOcrFileContent"
//已上传文件列表 //已上传文件列表
static let fileList = "infoflow/work/file-list" static let fileList = "infoflow/work/file-list"
//职位列表
static let workPositionList = "infoflow/work/v1/workPositionList"
static let workPositionDetail = "infoflow/work/v1/workPositionDetail"
static let saveWorkPosition = "infoflow/work/v1/SaveWorkPosition"
static let deleteWorkPosition = "infoflow/work/v1/deleteWorkPosition"
} }
//登录 //登录
......
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