Commit 0203b170 authored by Steven杜宇's avatar Steven杜宇

// 学历

parent b9f28cd8
......@@ -116,6 +116,8 @@
042B20DA2CEB337100655093 /* YHImproveSchemeTemplateListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042B20D92CEB337100655093 /* YHImproveSchemeTemplateListCell.swift */; };
042B20DC2CEB69CB00655093 /* YHSchemeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042B20DB2CEB69CB00655093 /* YHSchemeModel.swift */; };
042B20DF2CEB6A8F00655093 /* YHSchemeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042B20DE2CEB6A8F00655093 /* YHSchemeViewModel.swift */; };
042B20E12CEC91CD00655093 /* YHMajorSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042B20E02CEC91CD00655093 /* YHMajorSearchViewController.swift */; };
042B20E32CEC92C400655093 /* YHMajorNameCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042B20E22CEC92C400655093 /* YHMajorNameCell.swift */; };
0430E63B2C6DA106000511E2 /* CGFloat+Extention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0430E63A2C6DA106000511E2 /* CGFloat+Extention.swift */; };
0430E6422C72E120000511E2 /* YHAddAdoptersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0430E6412C72E120000511E2 /* YHAddAdoptersViewController.swift */; };
0430E6442C72E6A1000511E2 /* YHAdopterMainTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0430E6432C72E6A1000511E2 /* YHAdopterMainTableViewCell.swift */; };
......@@ -1141,6 +1143,8 @@
042B20D92CEB337100655093 /* YHImproveSchemeTemplateListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHImproveSchemeTemplateListCell.swift; sourceTree = "<group>"; };
042B20DB2CEB69CB00655093 /* YHSchemeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeModel.swift; sourceTree = "<group>"; };
042B20DE2CEB6A8F00655093 /* YHSchemeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeViewModel.swift; sourceTree = "<group>"; };
042B20E02CEC91CD00655093 /* YHMajorSearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMajorSearchViewController.swift; sourceTree = "<group>"; };
042B20E22CEC92C400655093 /* YHMajorNameCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMajorNameCell.swift; sourceTree = "<group>"; };
0430E63A2C6DA106000511E2 /* CGFloat+Extention.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGFloat+Extention.swift"; sourceTree = "<group>"; };
0430E6412C72E120000511E2 /* YHAddAdoptersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAddAdoptersViewController.swift; sourceTree = "<group>"; };
0430E6432C72E6A1000511E2 /* YHAdopterMainTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAdopterMainTableViewCell.swift; sourceTree = "<group>"; };
......@@ -3139,6 +3143,7 @@
045EEE102B9F171A0022A143 /* YHEducationDetailVC.swift */,
045EEE112B9F171A0022A143 /* YHEducationInfoListVC.swift */,
045EEE122B9F171A0022A143 /* YHCollegeSearchViewController.swift */,
042B20E02CEC91CD00655093 /* YHMajorSearchViewController.swift */,
045EEE132B9F171A0022A143 /* YHQualificationDetailVC.swift */,
);
path = C;
......@@ -3148,6 +3153,7 @@
isa = PBXGroup;
children = (
045EEE152B9F171A0022A143 /* YHCollegeNameCell.swift */,
042B20E22CEC92C400655093 /* YHMajorNameCell.swift */,
045EEE162B9F171A0022A143 /* YHEducationInfoCell.swift */,
047F3DD82CE601D1001B2A6D /* YHEducationCertificateConfirmCell.swift */,
047F3DDA2CE6DE91001B2A6D /* YHEducationMarkView.swift */,
......@@ -6103,6 +6109,7 @@
04256E1D2C75C74200A37BA4 /* YHAppointHKResultModel.swift in Sources */,
047F3DE62CE83A0F001B2A6D /* YHHKRequiredItemView.swift in Sources */,
04CE1ADB2C2AD91F001CB80A /* YHActivityTitleItemView.swift in Sources */,
042B20E32CEC92C400655093 /* YHMajorNameCell.swift in Sources */,
A5FD63BF2B6250BC00D1D9DA /* YHInformationPerfectCell.swift in Sources */,
04CA2C2F2CBA5C9E00F36DE7 /* YHLookResignGuideLineView.swift in Sources */,
045792172CBD046E00EBD99B /* YHResignUploadTravelPassportTableViewCell.swift in Sources */,
......@@ -6376,6 +6383,7 @@
A517A4E52BB6C4BB000DEECD /* YHDocumentFileItemView.swift in Sources */,
045EEEFE2B9F171A0022A143 /* YHFormItemInputTextCell.swift in Sources */,
0419A0A42C49184300A5FCFA /* YHInvitationNumberItemView.swift in Sources */,
042B20E12CEC91CD00655093 /* YHMajorSearchViewController.swift in Sources */,
045EEEDD2B9F171A0022A143 /* YHCollegeNameCell.swift in Sources */,
04F2432D2C94645000DF2C74 /* YHResignDocumentStatusCell.swift in Sources */,
04256DFA2C742A1500A37BA4 /* YHFamilyGroupModel.swift in Sources */,
......
......@@ -298,10 +298,10 @@ class YHMyNewSchemeViewController: YHBaseViewController {
}
}
func getIndustryDetail(id: Int, industryOther: String) -> String {
let target = "\(id)"
func getIndustryDetail() -> String {
let target = viewModel.schemeModel.industry_positioning
if target == "15" {
return "其他(\(industryOther))"
return "其他(\(viewModel.schemeModel.industry_positioning_other))"
}
for(_, item) in YHConstantArrayData.arrSkill.enumerated() {
if target == item["value"] {
......@@ -350,6 +350,7 @@ extension YHMyNewSchemeViewController : UITableViewDelegate, UITableViewDataSour
if item.type == .industryLocation {
let cell = tableView.dequeueReusableCell(withIdentifier: YHIndustryLocationCell.cellReuseIdentifier, for: indexPath) as! YHIndustryLocationCell
cell.industry = self.getIndustryDetail()
targetCell = cell
}
......
......@@ -12,6 +12,12 @@ class YHIndustryLocationCell: UITableViewCell {
static let cellReuseIdentifier = "YHIndustryLocationCell"
var industry: String = "" {
didSet {
tips2Label.text = industry
}
}
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
......
......@@ -107,7 +107,11 @@ class YHEducationDetailVC: YHBaseViewController {
let title0 = YHFormTitleItem(type: .mainApplicantEducation)
let item00 = YHFormDetailItem(type: .universityFullName)
item00.tips = "请选择学校".local
if detailInfo.degree.contains("学士学位") {
item00.tips = "请输入学校全称".local
} else {
item00.tips = "请选择学校".local
}
item00.value = detailInfo.college
let item01 = YHFormDetailItem(type: .educationStyle)
......@@ -124,7 +128,7 @@ class YHEducationDetailVC: YHBaseViewController {
item03.value = detailInfo.graduateTime
let item04 = YHFormDetailItem(type: .educationMajor)
item04.tips = "请输入专业".local
item04.tips = "请选择专业".local
item04.value = detailInfo.major
let item05 = YHFormDetailItem(type: .educationDegree)
......@@ -239,6 +243,12 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
} else {
detailInfo.major = ""
}
} else if detailItem.type == .universityFullName {
if let text = text, !text.isEmpty {
detailInfo.college = text
} else {
detailInfo.college = ""
}
}
if isEditEnd {
loadInfo()
......@@ -416,7 +426,14 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .educationDegree { // 学位
YHSheetPickerView.show(type:.educationDegree, selectTitle:detailInfo.degree) {
if detailItem.type == .universityFullName { // 学校全称
if detailInfo.degree.contains("学士学位") {
// 此时学位是输入
return
}
}
YHSheetPickerView.show(type:.degree, selectTitle:detailInfo.degree) {
[weak self] item in
guard let self = self else { return }
detailInfo.degree = item.title
......@@ -467,6 +484,24 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
saveInfoSilent()
}
self.present(vc, animated: true)
} else if detailItem.type == .educationMajor { // 专业
let vc = YHMajorSearchViewController()
vc.orderId = self.orderId
vc.searchMajorName = detailInfo.major
vc.selectBlock = {
[weak self] text in
guard let self = self else { return }
if let text = text, !text.isEmpty {
detailInfo.major = text
} else {
detailInfo.major = ""
}
loadInfo()
saveInfoSilent()
}
self.navigationController?.pushViewController(vc)
}
}
}
......@@ -514,6 +549,19 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
return .cerConfirm
}
// 学位选择:学士学位,
// 学习全称:直接输入学校名称,不需要进入搜索页面
//
// 学位选择:硕士学位/博士学位,
// 学习全称:需要进入名校库搜索页面,模糊搜索名校,若搜不到直接输入
if detailItem.type == .universityFullName { // 学校全称
if detailInfo.degree.contains("学士学位") {
return .inputText
}
return .selectSheet
}
if detailItem.type == .educationCity {
if detailInfo.isSchoolInAboard() {
return .inputText
......@@ -522,10 +570,6 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
}
if detailItem.type == .educationMajor
{
return .inputText
}
if detailItem.type == .universityFullName
|| detailItem.type == .educationStyle
|| detailItem.type == .educationTime
|| detailItem.type == .graduateTime
......
//
// YHMajorSearchViewController.swift
// galaxy
//
// Created by Dufet on 2024/11/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHMajorSearchViewController: YHBaseViewController {
var orderId:Int = 0
var searchMajorName:String?
var selectBlock:((String?)->Void)?
var majors:[YHMajorInfo] = []
let educationRequest:YHEducationRequestViewModel = YHEducationRequestViewModel()
lazy var searchBar: YHCollegeSearchBar = {
let bar = YHCollegeSearchBar.createBar()
bar.placeHolder = "请输入专业"
return bar
}()
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.plain)
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
tableView.showsVerticalScrollIndicator = false
tableView.backgroundColor = .white
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHMajorNameCell.self, forCellReuseIdentifier: YHMajorNameCell.cellReuseIdentifier)
tableView.backgroundView = emptyDataTipsView
return tableView
}()
lazy var emptyDataTipsView: YHEmptyDataView = {
let view = YHEmptyDataView.createView("无搜索结果", kEmptySearchBgName)
view.topMargin = 130
view.isHidden = true
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
createUI()
if searchMajorName != nil {
searchMajor()
}
}
func createUI() {
self.view.backgroundColor = .white
self.gk_navTitle = "学校名称".local
view.addSubview(tableView)
view.addSubview(searchBar)
if let searchMajorName = searchMajorName {
searchBar.textField.text = searchMajorName
}
searchBar.textChange = {
[weak self] text in
guard let self = self else { return }
searchMajorName = text
self.searchMajor()
}
searchBar.confirmBlock = {
[weak self] in
guard let self = self else { return }
if let selectBlock = selectBlock {
selectBlock(searchBar.textField.text)
self.navigationController?.popViewController(animated: true)
}
}
searchBar.snp.makeConstraints { make in
make.left.equalToSuperview().offset(16)
make.right.equalToSuperview().offset(-16)
make.height.equalTo(YHCollegeSearchBar.height)
make.top.equalToSuperview().offset(k_Height_NavigationtBarAndStatuBar+16)
}
tableView.snp.makeConstraints { make in
make.top.equalTo(searchBar.snp.bottom).offset(8)
make.left.right.bottom.equalToSuperview()
}
}
func searchMajor() {
let param:[String:Any] = ["order_id": orderId,
"name":searchMajorName ?? "",
"page":1,
"page_size":15,
]
self.educationRequest.searchMajorInfoList(params: param) {
[weak self] success, error in
guard let self = self else { return }
if success {
if let list = self.educationRequest.majorList {
majors = list
} else {
majors = []
}
emptyDataTipsView.isHidden = majors.count > 0
}
self.tableView.reloadData()
}
}
}
extension YHMajorSearchViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return majors.count
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHMajorNameCell.cellReuseIdentifier, for: indexPath) as! YHMajorNameCell
if indexPath.row < majors.count {
let college:YHMajorInfo = majors[indexPath.row]
var name = ""
if !isEmptyString(college.ch_name) {
name += college.ch_name
}
if !isEmptyString(college.en_name) && !isEmptyString(college.en_name) {
name += "/"
}
if !isEmptyString(college.en_name) {
name += college.en_name
}
cell.titleLabel.text = name
}
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let selectBlock = selectBlock {
if indexPath.row < majors.count {
let major:YHMajorInfo = majors[indexPath.row]
selectBlock(major.getMajorName())
self.navigationController?.popViewController(animated: true)
}
}
}
}
......@@ -205,5 +205,24 @@ class YHCollegeInfo: SmartCodable {
}
}
class YHMajorInfo: SmartCodable {
var id: Int = 0
var ch_name: String = ""
var en_name: String = ""
func getMajorName() -> String {
if !ch_name.isEmpty {
return ch_name
}
return en_name
}
required init() {
}
}
......@@ -17,7 +17,9 @@ class YHEducationRequestViewModel {
var qualificationDetailInfo: YHQualificationDetailInfo?
// 搜索学校数组
var collegeList: [YHCollegeInfo]?
// 搜索专业数组
var majorList: [YHMajorInfo]?
// 请求学历和专业证书信息列表
func requestEducationInfoList(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
......@@ -294,4 +296,35 @@ class YHEducationRequestViewModel {
}
}
// 搜索专业
func searchMajorInfoList(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Education.searchMajorNameApi
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
guard let dic = json.data?.peel as? [Any], let results = [YHMajorInfo].deserialize(from: dic) else {
let error = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false, error)
return
}
majorList = results
callBackBlock(true, nil)
} else {
let error = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
YHHUD.hide()
callBackBlock(false, err)
}
}
}
//
// YHMajorNameCell.swift
// galaxy
//
// Created by Dufet on 2024/11/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHMajorNameCell: UITableViewCell {
static let cellReuseIdentifier = "YHMajorNameCell"
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_B(ofSize: 14)
return label
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
contentView.backgroundColor = .white
contentView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(21)
make.right.equalToSuperview().offset(-21)
make.top.equalToSuperview().offset(8)
make.bottom.equalToSuperview().offset(-8)
}
}
}
......@@ -184,7 +184,8 @@ class YHAllApiName {
static let saveAllEduAndQuaInfoApi = "infoflow/submitEducert"
// 搜索大学名称
static let searchCollegeNameApi = "infoflow/getSchools"
// 搜索大学名称
static let searchMajorNameApi = "infoflow/getStemByName"
}
struct Qualification {
......
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